IWMPPlaylistCollection
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWMPPlaylistCollection インターフェイスは、IWMPPlaylist および IWMPPlaylistArray インターフェイスを操作するためのメソッドを提供します。
メソッド 7
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
newPlaylist メソッドは、ライブラリ内に新しい空のプレイリストを作成します。
| bstrName | LPWSTR | in | 新しいプレイリストの名前を含む文字列。 |
| ppItem | IWMPPlaylist** | out | 新しいプレイリストの IWMPPlaylist インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、ライブラリ内に空のプレイリストを作成します。プレイリストにメディア項目を追加するには、IWMPPlaylist::appendItem または IWMPPlaylist::insertItem を使用します。
ライブラリ内では、同じ名前を持つ複数のプレイリストが許可されます。このメソッドで重複したプレイリスト名を作成しないようにするには、getByName メソッドと IWMPPlaylistArray::count を使用して、特定の名前を持つプレイリストが既に存在するかどうかを判断します。
プレイリスト名では先頭および末尾のスペースは許可されておらず、bstrName パラメーターに指定された値からは自動的に削除されます。
このメソッドを呼び出す前に、ライブラリへのフルアクセス権が必要です。詳細については、Library Access を参照してください。
getAll メソッドは、ライブラリ内のすべてのプレイリストを表す IWMPPlaylistArray インターフェイスへのポインターを取得します。
| ppPlaylistArray | IWMPPlaylistArray** | out | 取得したプレイリストの配列を表す IWMPPlaylistArray インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。
getByName メソッドは、指定された名前を持つプレイリストが存在する場合、それらのプレイリストを含むオブジェクト上の IWMPPlaylistArray インターフェイスへのポインターを取得します。
| bstrName | LPWSTR | in | 名前を含む文字列。 |
| ppPlaylistArray | IWMPPlaylistArray** | out | 取得したプレイリストの配列を表す IWMPPlaylistArray インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
プレイリストが存在するかどうかを判断するには、IWMPPlaylistArray::count を使用します。count が 0 の場合、配列は空です。
このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。
remove メソッドは、ライブラリからプレイリストを削除します。
| pItem | IWMPPlaylist* | in | このメソッドが削除するプレイリストの IWMPPlaylist インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを呼び出す前に、ライブラリへのフルアクセス権が必要です。詳細については、Library Access を参照してください。
| pItem | IWMPPlaylist* | in | 削除済みフラグを変更するプレイリスト IWMPPlaylist。 |
| varfIsDeleted | VARIANT_BOOL | in | 削除済み状態にするかを指定する。VARIANT_TRUE で削除済み。 |
isDeleted メソッドは、指定されたプレイリストが削除済み項目フォルダーに入っているかどうかを示す値を取得します。
| pItem | IWMPPlaylist* | in | 照会対象のプレイリストの IWMPPlaylist インターフェイスへのポインター。 |
| pvarfIsDeleted | VARIANT_BOOL* | inout | 指定されたプレイリストが削除されたかどうかを示す VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Windows Media Player 10 Mobile: このメソッドは常に FALSE に設定された VARIANT_BOOL を取得します。
importPlaylist メソッドは、静的プレイリストをライブラリに追加します。
| pItem | IWMPPlaylist* | in | このメソッドが追加するプレイリストの IWMPPlaylist インターフェイスへのポインター。 |
| ppImportedItem | IWMPPlaylist** | out | 追加されたプレイリストの IWMPPlaylist インターフェイスへのポインターへのポインター。 |
戻り値
このメソッドは HRESULT を返します。使用可能な値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
メディア項目を含まないプレイリストは、このメソッドではライブラリに追加できません。ライブラリ内に空のプレイリストを作成するには、newPlaylist メソッドを使用します。その後、IWMPPlaylist::appendItem または IWMPPlaylist::insertItem を使用して、作成されたプレイリストにメディア項目を追加できます。
このメソッドに自動プレイリストを渡すと、クエリが一度実行され、その結果が静的プレイリストとしてライブラリに追加されます。自動プレイリストをライブラリに追加し、その自動的な動作を保持するには、IWMPMediaCollection::add を使用します。詳細については、Static and Auto Playlists を参照してください。
このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPPlaylistCollection "{10A13217-23A7-439B-B1C0-D847C79B7774}" #usecom global IWMPPlaylistCollection IID_IWMPPlaylistCollection "{}" #comfunc global IWMPPlaylistCollection_newPlaylist 7 wstr,sptr #comfunc global IWMPPlaylistCollection_getAll 8 sptr #comfunc global IWMPPlaylistCollection_getByName 9 wstr,sptr #comfunc global IWMPPlaylistCollection_remove 10 sptr #comfunc global IWMPPlaylistCollection_setDeleted 11 sptr,int #comfunc global IWMPPlaylistCollection_isDeleted 12 sptr,var #comfunc global IWMPPlaylistCollection_importPlaylist 13 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWMPPlaylistCollection "{10A13217-23A7-439B-B1C0-D847C79B7774}" #usecom global IWMPPlaylistCollection IID_IWMPPlaylistCollection "{}" #comfunc global IWMPPlaylistCollection_newPlaylist 7 wstr,sptr #comfunc global IWMPPlaylistCollection_getAll 8 sptr #comfunc global IWMPPlaylistCollection_getByName 9 wstr,sptr #comfunc global IWMPPlaylistCollection_remove 10 sptr #comfunc global IWMPPlaylistCollection_setDeleted 11 sptr,int #comfunc global IWMPPlaylistCollection_isDeleted 12 sptr,sptr #comfunc global IWMPPlaylistCollection_importPlaylist 13 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。