foobar2000のwsh panel modのサンプルコード番外編-資料1 インターフェイス



// Global objects:
// window - IFbWindow
// gdi - IGdiUtils
// fb - IFbUtils
// utils - IWSHUtils
// plman - IFbPlaylistManager

// gr - IGdiGraphics


*2016/01/28追記
wsh_panel_modのdocsフォルダにあるInterfaces.txtから、説明を取っ払って眺めやすくしたものです。パラメータの順番をド忘れしたとかならともかく(私か)、調べ物はむしろInterfaces.txtやCallbacks.txtなどのドキュメントを見た方が効率は良いと思われます。

*2016/04/10追記
注釈付き
JScript PanelのInterfaces.txt和訳(ver.1.1.3) {+ foobar2000::資料}


window.ID
window.Width
window.Height
window.InstanceType
window.MinWidth
window.MinHeight
window.MaxWidth
window.MaxHeight
window.DlgCode
window.IsTransparent
window.IsVisible
window.Repaint([force])
window.RepaintRect(x, y, w, h[, force])
window.CreatePopupMenu()
window.CreateTimerTimeout(timeout)
window.CreateTimerInterval(delay)
window.KillTimer(ITimerObj)
window.SetInterval(func, delay)
window.ClearInterval(timerID)
window.SetTimeout(func, delay)
window.ClearTimeout(timerID)
window.NotifyOthers(name, info)
window.WatchMetadb(IFbMetadbHandle)
window.UnWatchMetadb()
window.CreateTooltip()
window.ShowConfigure()
window.ShowProperties()
window.GetProperty(name[, defaultval])
window.SetProperty(name, val)
window.GetBackgroundImage()
window.SetCursor(id)
window.GetColorCUI(type[, client_guid])
window.GetFontCUI(type[, client_guid])
window.GetColorDUI(type)
window.GetFontDUI(type)
window.CreateThemeManager(classlist)

gdi.Font(name, ptSize[, style])
gdi.Image(path)
gdi.CreateImage(w, h)
gdi.CreateStyleTextRender([pngmode])
gdi.LoadImageAsync(window_id, path)

fb.ComponentPath
fb.FoobarPath
fb.ProfilePath
fb.IsPlaying
fb.PlaybackLength
fb.IsPaused
fb.PlaybackTime
fb.PlaybackOrder
fb.StopAfterCurrent
fb.CursorFollowPlayback
fb.PlaybackFollowCursor
fb.Volume
fb.PlaylistCount
fb.ActivePlaylist
fb.PlayingPlaylist
fb.trace(...)
fb.ShowPopupMessage(msg[, title, iconid])
fb.CreateProfiler([name])
fb.TitleFormat(expression)
fb.GetNowPlaying()
fb.GetFocusItem([force])
fb.GetSelection()
fb.GetSelectionType()
fb.GetSelections([flags])
fb.AcquireUiSelectionHolder()
fb.Exit()
fb.Play()
fb.Stop()
fb.Pause()
fb.PlayOrPause()
fb.Next()
fb.Prev()
fb.Random()
fb.VolumeDown()
fb.VolumeUp()
fb.VolumeMute()
fb.AddDirectory()
fb.AddFiles()
fb.ShowConsole()
fb.ShowPreferences()
fb.ClearPlaylist()
fb.LoadPlaylist()
fb.SavePlaylist()
fb.RunMainMenuCommand(command)
fb.RunContextCommand(command[, flags])
fb.RunContextCommandWithMetadb(command, handle_or_handles[, flags])
fb.CreateContextMenuManager()
fb.CreateMainMenuManager()
fb.IsMetadbInMediaLibrary(metadb)
fb.GetPlaylistName(idx)
fb.CreatePlaylist(idx, name)
fb.RemovePlaylist(idx)
fb.MovePlaylist(from, to)
fb.RenamePlaylist(idx, name)
fb.DuplicatePlaylist(from, name)
fb.IsAutoPlaylist(idx)
fb.CreateAutoPlaylist(idx, name, query[, sort, flags])
fb.ShowAutoPlaylistUI(idx)
fb.PlaylistItemCount(idx)

utils.CheckComponent(name[, is_dll])
utils.CheckFont(name)
utils.GetAlbumArt(rawpath[, art_id, need_stub])
utils.GetAlbumArtV2(metadb[, art_id, need_stub])
utils.GetAlbumArtEmbedded(rawpath[, art_id])
utils.GetAlbumArtAsync(window_id, IFbMetadbHandle[, art_id, need_stub, only_embed])
utils.ReadINI(filename, section, key[, defaultval])
utils.WriteINI(filename, section, key, val)
utils.IsKeyPressed(vkey)
utils.PathWildcardMatch(pattern, str)
utils.ReadTextFile(filename[, codepage])
utils.GetSysColor(index)
utils.GetSystemMetrics(index)
utils.Glob(pattern[, exc_mask, inc_mask])
utils.FileTest(path, mode)

plman.PlaybackOrder
plman.ActivePlaylist
plman.PlayingPlaylist
plman.PlaylistCount
plman.PlaylistItemCount
plman.PlaylistRecyclerManager
plman.InsertPlaylistItems(playlistIndex, base, handles[, select])
plman.InsertPlaylistItemsFilter(playlistIndex, base, handles[, select])
plman.MovePlaylistSelection(playlistIndex, delta)
plman.RemovePlaylistSelection(playlistIndex[, crop])
plman.GetPlaylistSelectedItems(playlistIndex)
plman.GetPlaylistItems(playlistIndex)
plman.SetPlaylistSelectionSingle(playlistIndex, itemIndex, state)
plman.SetPlaylistSelection(playlistIndex, affectedItems, state)
plman.ClearPlaylistSelection(playlistIndex)
plman.GetPlaylistFocusItemIndex(playlistIndex)
plman.GetPlaylistFocusItemHandle()
plman.SetPlaylistFocusItem(playlistIndex, itemIndex)
plman.SetPlaylistFocusItemByHandle(playlistIndex, itemHandle)
plman.GetPlaylistName(idx)
plman.CreatePlaylist(idx, name)
plman.RemovePlaylist(idx)
plman.MovePlaylist(from, to)
plman.RenamePlaylist(idx, name)
plman.DuplicatePlaylist(from, name)
plman.EnsurePlaylistItemVisible(playlistIndex, itemIndex)
plman.GetPlayingItemLocation()
plman.ExecutePlaylistDefaultAction(playlistIndex, playlistItemIndex)
plman.CreatePlaybackQueueItem()
plman.RemoveItemFromPlaybackQueue(index)
plman.RemoveItemsFromPlaybackQueue(affectedItems)
plman.AddPlaylistItemToPlaybackQueue(playlistIndex, playlistItemIndex)
plman.AddItemToPlaybackQueue(IFbMetadbHandle)
plman.GetPlaybackQueueCount()
plman.GetPlaybackQueueContents()
plman.FindPlaybackQueueItemIndex(handle, playlistIndex, playlistItemIndex)
plman.FlushPlaybackQueue()
plman.IsPlaybackQueueActive()
plman.IsPlaylistItemSelected(playlistIndex, itemIndex)
plman.SortByFormat(playlistIndex, pattern[, selOnly])
plman.SortByFormatV2(playlistIndex, pattern[, direction])

(gr)
FillSolidRect(x, y, w, h, color)
FillGradRect(x, y, w, h, angle, color1, color2, focus = 1.0)
FillRoundRect(x, y, w, h, arc_width, arc_height, color)
FillEllipse(x, y, w, h, color)
FillPolygon(color, fillmode, points)
DrawLine(x1, y1, x2, y2, line_width, color)
DrawRect(x, y, w, h, line_width, color)
DrawRoundRect(x, y, w, h, arc_width, arc_height, line_width, color)
DrawEllipse(x, y, w, h, line_width, color)
DrawPolygon(color, line_width, points)
DrawString(str, IGdiFont, color, x, y, w, h, flags = 0)
GdiDrawText(str, IGdiFont, color, x, y, w, h, format = 0)
DrawImage(IGdiBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH, angle = 0, alpha = 255)
GdiDrawBitmap(IGdiRawBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH)
MeasureString(str, IGdiFont, x, y, w, h, flags = 0)
CalcTextWidth(str, IGdiFont)
CalcTextHeight(str, IGdiFont)
EstimateLineWrap(str, IGdiFont, max_width)
SetTextRenderingHint(mode)
SetSmoothingMode(mode)
SetInterpolationMode(mode)
GdiAlphaBlend(IGdiRawBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH, alpha = 255)


# Callback function prototypes
on_mouse_lbtn_down(x, y, mask)
on_mouse_lbtn_up(x, y, mask)
on_mouse_lbtn_dblclk(x, y, mask)
on_mouse_rbtn_down(x, y, mask)
on_mouse_rbtn_up(x, y, mask)
on_mouse_rbtn_dblclk(x, y, mask)
on_mouse_mbtn_down(x, y, mask)
on_mouse_mbtn_up(x, y, mask)
on_mouse_mbtn_dblclk(x, y, mask)
on_mouse_move(x, y)
on_mouse_leave()
on_mouse_wheel(step)
on_key_down(vkey)
on_key_up(vkey)
on_char(code)
on_focus(is_focused)
on_paint(gr)
on_playlist_stop_after_current_changed(state)
on_cursor_follow_playback_changed(state)
on_playback_follow_cursor_changed(state)
on_notify_data(name, info)
on_get_album_art_done(metadb, art_id, image, image_path)
on_load_image_done(tid, image)
on_refresh_background_done()
on_item_played(metadb)
on_playback_starting(cmd, is_paused)
on_playback_new_track(metadb)
on_playback_stop(reason)
on_playback_seek(time)
on_playback_pause(state)
on_playback_edited()
on_playback_dynamic_info()
on_playback_dynamic_info_track()
on_playback_time(time)
on_playback_queue_changed(origin)
on_size()
on_volume_change(val)
on_playback_order_changed(new_order_index)
on_timer(timer_id)
on_item_focus_change(playlist, from, to)
on_metadb_changed(metadb, fromhook)
on_colors_changed()
on_font_changed()
on_playlist_switch()
on_script_unload()
on_playlists_changed()
on_selection_changed(metadb)
on_playlist_item_ensure_visible(playlist, item)
on_playlist_items_added(playlist)
on_playlist_items_reordered(playlist)
on_playlist_items_removed(playlist, new_count)
on_playlist_items_selection_change()
on_drag_enter(action, x, y, mask)
on_drag_over(action, x, y, mask)
on_drag_leave()
on_drag_drop(action, x, y, mask)
on_tooltip_custom_paint(gr)





interface IGdiFont {
Properties:
  (readonly) int Height;
  (readonly) String Name(langid = 0);
  (readonly) float Size;
  (readonly) int Style;
Methods:
  void Dispose();
}


interface IGdiBitmap {
Properties:
  (readonly) int Width;
  (readonly) int Height;
Methods:
  IGdiBitmap Clone(x, y, w, h);
  void RotateFlip(mode);
  IGdiBitmap ApplyAlpha(alpha);
  boolean ApplyMask(IGdiBitmap);
  IGdiRawBitmap CreateRawBitmap();
  IGdiGraphics GetGraphics();
  void ReleaseGraphics(IGdiGraphics);
  void BoxBlur(radius, iteration = 1);
  IGdiBitmap Resize(w, h, interpolationMode = 0);
  VBArray GetColorScheme(max_count);
  void Dispose();
}
  

interface IGdiRawBitmap {
Properties:
  (readonly) int Width;
  (readonly) int Height;
Methods:
  void Dispose();
}

interface IGdiGraphics {
Methods:
  void FillSolidRect(x, y, w, h, color);
  void FillGradRect(x, y, w, h, angle, color1, color2, focus = 1.0);
  void FillRoundRect(x, y, w, h, arc_width, arc_height, color);
  void FillEllipse(x, y, w, h, color);
  void FillPolygon(color, fillmode, points);
  void DrawLine(x1, y1, x2, y2, line_width, color);
  void DrawRect(x, y, w, h, line_width, color);
  void DrawRoundRect(x, y, w, h, arc_width, arc_height, line_width, color);
  void DrawEllipse(x, y, w, h, line_width, color);
  void DrawPolygon(color, line_width, points);
  void DrawString(str, IGdiFont, color, x, y, w, h, flags = 0);
  VBArray GdiDrawText(str, IGdiFont, color, x, y, w, h, format = 0);
  void DrawImage(IGdiBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH, angle = 0, alpha = 255);
  void GdiDrawBitmap(IGdiRawBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH);
  IMeasureStringInfo MeasureString(str, IGdiFont, x, y, w, h, flags = 0);
  uint CalcTextWidth(str, IGdiFont);
  uint CalcTextHeight(str, IGdiFont);
  VBArray EstimateLineWrap(str, IGdiFont, max_width);
  void SetTextRenderingHint(mode);
  void SetSmoothingMode(mode);
  void SetInterpolationMode(mode);
  void GdiAlphaBlend(IGdiRawBitmap, dstX, dstY, dstW, dstH, srcX, srcY, srcW, srcH, alpha = 255);
}


interface IMeasureStringInfo {
Properties:
  (readonly) float x;
  (readonly) float y;
  (readonly) float Width;
  (readonly) float Height;
  (readonly) int lines;
  (readonly) int chars;
}


interface IGdiUtils {
Methods:
  IGdiFont Font(name, ptSize, style = 0);
  IGdiBitmap Image(path);
  IGdiBitmap CreateImage(w, h);
  IStyleTextRender CreateStyleTextRender(pngmode = false);
  uint LoadImageAsync(window_id, path);
}


interface IStyleTextRender {
Methods:
  void OutLineText(text_color, outline_color, outline_width);
  void DoubleOutLineText(text_color, outline_color1, outline_color2, outline_width1, outline_width2);
  void GlowText(text_color, glow_color, glow_width);
  void EnableShadow(enable);
  void ResetShadow();
  void Shadow(color, thickness, offset_x, offset_y);
  void DiffusedShadow(color, thickness, offset_x, offset_y);
  void SetShadowBackgroundColor(color, width, height);
  void SetShadowBackgroundImage(img);
  boolean RenderStringPoint(g, str, font, x, y[, flags]);
  boolean RenderStringRect(g, str, font, x, y, w, h[, flags]);
  void SetPngImage(IGdiBitmap);
}


interface IFbFileInfo {
Properties:
  (readonly) int MetaCount;
  (readonly) int InfoCount;
Methods:
  int MetaValueCount(idx);
  int MetaFind(name);
  int InfoFind(name);
  String MetaName(idx);
  String MetaValue(idx, vidx);
  void MetaRemoveField(name);
  int MetaAdd(name, value);
  void MetaInsertValue(idx, vidx, value);
  String InfoName(idx);
  String InfoValue(idx);
  void MetaSet(name, value);
  void Dispose();
}


interface IFbMetadbHandle {
Properties:
  (readonly) String Path;
  (readonly) String RawPath;
  (readonly) int SubSong;
  (readonly) int64 FileSize;
  (readonly) double Length;
Methods:
  IFbFileInfo GetFileInfo();
  void UpdateFileInfo(IFbFileInfo);
  void UpdateFileInfoSimple(field1, value1 [, filed2, value2 [,...] ] [, multivalue_fields]);
  boolean Compare(IFbMetadbHandle);
  void Dispose();
}


interface IFbMetadbHandleList{
Properties:
  (readonly) uint Count;
  (read, write) IFbMetadbHandle Item(idx);
Methods:
  IFbMetadbHandleList Clone();
  uint Insert(index, handle);
  uint InsertRange(index, handles);
  uint Add(handle);
  void AddRange(handles);
  void RemoveById(UINT idx);
  void Remove(handle);
  void RemoveRange(from, num);
  void RemoveAll();
  void Sort();
  uint Find(handle);
  uint BSearch(handle);
  void MakeIntersection(handles);
  void MakeUnion(handles);
  void MakeDifference(handles);
  void Dispose();
  void OrderByFormat(titleformatObject, direction);
  void OrderByPath();
  void OrderByRelativePath();
}

interface IFbTitleFormat {
Methods:
  String Eval(force = false);
  String EvalWithMetadb(IFbMetadbHandle);
  void Dispose();
}


interface IMenuObj {
Properties:
  (readonly) uint ID;
Methods:
  void AppendMenuItem(flags, item_id, text);
  void AppendMenuSeparator();
  void EnableMenuItem(id_or_pos, enable, bypos = false);
  void CheckMenuItem(id_or_pos, check, bypos = false);
  void CheckMenuRadioItem(first, last, check, bypos = false);
  int TrackPopupMenu(x, y, flags = 0);
  void AppendTo(parentMenu, flags, text);
  void Dispose();
}


interface IContextMenuManager {
Methods:
  void InitContext(handle_or_handles);
  void InitNowPlaying();
  void BuildMenu(IMenuObj, base_id, max_id);
  boolean ExecuteByID(id);
  void Dispose();
}


interface IMainMenuManager {
Methods:
  void Init(root_name);
  void BuildMenu(IMenuObj, base_id, count);
  boolean ExecuteByID(id);
  void Dispose();
}


interface IFbProfiler {
Properties:
  int Time;
Methods:
  void Reset();
  void Print();
}


interface IFbUiSelectionHolder{
Methods:
  void Dispose();
  void SetSelection(handles);
  void SetPlaylistSelectionTracking();
  void SetPlaylistTracking();
}

interface IFbUtils {
Properties:
  (readonly) String ComponentPath;
  (readonly) String FoobarPath;
  (readonly) String ProfilePath;
  (readonly) boolean IsPlaying;
  (readonly) double PlaybackLength;
  (readonly) boolean IsPaused;
  (read, write) double PlaybackTime;
  (read, write) uint PlaybackOrder;
  (read, write) boolean StopAfterCurrent;
  (read, write) boolean CursorFollowPlayback;
  (read, write) boolean PlaybackFollowCursor;
  (read, write) float Volume;
  (readonly) uint PlaylistCount;
  (read, write) uint ActivePlaylist;
  (read, write) uint PlayingPlaylist;
  (readonly) uint PlaylistItemCount(idx);
Methods:
  void trace(...);
  void ShowPopupMessage(msg, title = "WSH Panel Mod", iconid = 0);
  IFbProfiler CreateProfiler(name = "");
  IFbTitleFormat TitleFormat(expression);
  IFbMetadbHandle GetNowPlaying();
  IFbMetadbHandle GetFocusItem(force = true);
  IFbMetadbHandle GetSelection();
  IFbMetadbHandleList GetSelections(flags = 0);
  uint GetSelectionType();
  IFbUiSelectionHolder AcquireUiSelectionHolder();
  
  void Exit();
  void Play();
  void Stop();
  void Pause();
  void PlayOrPause();
  void Next();
  void Prev();
  void Random();
  void VolumeDown();
  void VolumeUp();
  void VolumeMute();
  void AddDirectory();
  void AddFiles();
  void ShowConsole();
  void ShowPreferences();
  void ClearPlaylist();
  void LoadPlaylist();
  void SavePlaylist();
  boolean RunMainMenuCommand(command);
  boolean RunContextCommand(command, flags = 0);
  boolean RunContextCommandWithMetadb(command, handle_or_handles, flags = 0);
  IContextMenuManager CreateContextMenuManager();
  boolean IsMetadbInMediaLibrary(metadb);
  String GetPlaylistName(idx);
  uint CreatePlaylist(idx, name);
  boolean RemovePlaylist(idx);
  boolean MovePlaylist(from, to);
  boolean RenamePlaylist(idx, name);
  uint DuplicatePlaylist(from, name = "");
  boolean IsAutoPlaylist(idx);
  boolean CreateAutoPlaylist(idx, name, query, sort = "", flags = 0);
  boolean ShowAutoPlaylistUI(idx);
}



// [Obsolete] Please use window.SetInterval() and/or window.SetTimeout()
interface ITimerObj {
Properties:
  (readonly) uint ID;
Methods:
  void Dispose();
}

interface IFbTooltip {
Properties:
  (read, write) Text;  (writeonly) boolean TrackActivate;
  (read, write) int Width;
  (read, write) int Width;
Methods:
  void Activate();
  void Deactivate();
  void SetMaxWidth(width);
  void Dispose();
  int GetDelayTime(type);
  void SetDelayTime(type, time);
  void TrackPosition(x, y);
}


interface IThemeManager {
Methods:
  void SetPartAndStateID(partid, stateid);
  boolean IsThemePartDefined(partid, stateid = 0);
  void DrawThemeBackground(IGdiGraphics, x, y, w, h, clip_x = 0, clip_y = 0, clip_w = 0, clip_h = 0);
}


interface IDropTargetAction {
Properties:
  (read, write) bool Parsable;
  (read, write) int Playlist;
  (read, write) boolean ToSelect;
Methods:
  void ToPlaylist();
}


interface IFbWindow {
Properties:
  (readonly) int ID;
  (readonly) int Width;
  (readonly) int Height;
  (readonly) int InstanceType;
  (read, write) int MaxWidth;
  (read, write) int MaxHeight;
  (read, write) int MinWidth;
  (read, write) int MinHeight;
  (read, write) int DlgCode;
  (readonly) boolean IsTransparent;
  (readonly) boolean IsVisible;
Methods:
  void Repaint(force = false);
  void RepaintRect(x, y, w, h, force = false);
  IMenuObj CreatePopupMenu();
  ITimerObj CreateTimerTimeout(timeout);
  ITimerObj CreateTimerInterval(delay);
  void KillTimer(ITimerObj);
  uint SetInterval(func, delay);
  uint SetTimeout(func, delay);
  void ClearTimeout(timerID);
  void ClearInterval(timerID);
  void NotifyOthers(name, info);
  void WatchMetadb(IFbMetadbHandle);
  void UnWatchMetadb();
  IFbTooltip CreateTooltip();
  void ShowConfigure();
  void ShowProperties();
  variant GetProperty(name[, defaultval]);
  void SetProperty(name, val);
  IGdiBitmap GetBackgroundImage();
  void SetCursor(id);
  uint GetColorCUI(type, client_guid = "");
  IGdiFont GetFontCUI(type, client_guid = "");
  uint GetColorDUI(type);
  IGdiFont GetFontDUI(type);
  IThemeManager CreateThemeManager(classlist);
}


interface IWSHUtils {
Methods:
  boolean CheckComponent(name, is_dll = false);
  boolean CheckFont(name);
  IGdiBitmap GetAlbumArt(rawpath, art_id = 0, need_stub = true);
  IGdiBitmap GetAlbumArtV2(metadb, art_id = 0, need_stub = true);
  IGdiBitmap GetAlbumArtEmbedded(rawpath, art_id = 0);
  uint GetAlbumArtAsync(window_id, IFbMetadbHandle, art_id = 0, need_stub = true, only_embed = false, no_load = false);
  String ReadINI(filename, section, key[, defaultval]);
  boolean WriteINI(filename, section, key, val);
  boolean IsKeyPressed(vkey);
  boolean PathWildcardMatch(pattern, str);
  String ReadTextFile(filename, codepage = 0);
  uint GetSysColor(index);
  int GetSystemMetrics(index);
  VBArray Glob(pattern, exc_mask = FILE_ATTRIBUTE_DIRECTORY, inc_mask = 0xffffffff);
  VARIANT FileTest(path, mode);
}


interface IFbPlaybackQueueItem {
Methods:
  boolean Equals(item);
  void Dispose();
Properties:
  (read, write) IFbMetadbHandle Handle;
  (read, write) uint PlaylistIndex;
  (read, write) uint PlaylistItemIndex;
}


interface IFbPlayingItemLocation {
Properties:
  (readonly) boolean IsValid;
  (readonly) uint PlaylistIndex;
  (readonly) uint PlaylistItemIndex;
}


interface IFbPlaylistManager {
Methods:
  uint InsertPlaylistItems(playlistIndex, base, handles, select = false);
  uint InsertPlaylistItemsFilter(playlistIndex, base, handles, select = false);
  void MovePlaylistSelection(playlistIndex, delta);
  void RemovePlaylistSelection(playlistIndex, crop = false);
  IFbMetadbHandleList GetPlaylistSelectedItems(playlistIndex);
  IFbMetadbHandleList GetPlaylistItems(playlistIndex);
  void SetPlaylistSelectionSingle(playlistIndex, itemIndex, state);
  void SetPlaylistSelection(playlistIndex, affectedItems, state);
  void ClearPlaylistSelection(playlistIndex);
  int GetPlaylistFocusItemIndex(playlistIndex);
  IFbMetadbHandle GetPlaylistFocusItemHandle(force);
  void SetPlaylistFocusItem(playlistIndex, itemIndex);
  void SetPlaylistFocusItemByHandle(playlistIndex, itemHandle);
  String GetPlaylistName(idx);
  uint CreatePlaylist(idx, name);
  boolean RemovePlaylist(idx);
  boolean MovePlaylist(from, to);
  boolean RenamePlaylist(idx, name);
  uint DuplicatePlaylist(from, name = "");
  void EnsurePlaylistItemVisible(playlistIndex, itemIndex);
  IFbPlayingItemLocation GetPlayingItemLocation();
  boolean ExecutePlaylistDefaultAction(playlistIndex, playlistItemIndex);
  boolean IsPlaylistItemSelected(playlistIndex, itemIndex);
  void SetActivePlaylistContext();
  
  IFbPlaybackQueueItem CreatePlaybackQueueItem();
  void RemoveItemFromPlaybackQueue(index);
  void RemoveItemsFromPlaybackQueue(affectedItems);
  void AddPlaylistItemToPlaybackQueue(playlistIndex, playlistItemIndex);
  void AddItemToPlaybackQueue(IFbMetadbHandle);
  uint GetPlaybackQueueCount();
  VBArray GetPlaybackQueueContents();
  int FindPlaybackQueueItemIndex(IFbMetadbHandle, playlistIndex, playlistItemIndex);
  void FlushPlaybackQueue();
  boolean IsPlaybackQueueActive();
  boolean SortByFormat(playlistIndex, pattern, selOnly = false);
  boolean SortByFormatV2(playlistIndex, pattern, direction = 1);

Properties:
  (read, write) uint PlaybackOrder;
  (read, write) uint ActivePlaylist;
  (read, write) uint PlaylingPlaylist;
  (readonly) uint PlaylistCount;
  (readonly) uint PlaylistItemCount;
  (readonly) IFbPlaylistRecyclerManager PlaylistRecyclerManager;
}


interface PlaylistRecyclerManager {
Properties:
  void Purge(affectedItems);
  void Restore(index);
  void RestoreById(id);
  uint FindById(id);
Methods:
  (readonly) uint Count;
  (readonly) String Name(index);
  (readonly) IFbMetadbHandleList Content(index);
  (readonly) uint Id(index);
}


コメントは日本語でお願いします。(URLは入力禁止:Do not URL writing.) :System message: コメントを受けつけています。