Win32 API 日本語リファレンス
ホームMedia.MediaPlayer › IWMPMediaCollection

IWMPMediaCollection

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID8363bc22-b4b4-4b19-989d-1cd765749dd1継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IWMPMediaCollection インターフェイスは、大量のメディア項目のコレクションを整理するために使用できるメソッドを提供します。

メソッド 12

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT add(LPWSTR bstrURL, IWMPMedia** ppItem)

add メソッドは、新しいメディア項目またはプレイリストをライブラリに追加します。

bstrURLLPWSTRinメディア項目またはプレイリストの場所を指定する URL を格納した文字列。
ppItemIWMPMedia**out追加された項目またはプレイリストの IWMPMedia インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドは、指定されたパスに基づいて既存のメディア項目またはプレイリストをライブラリに読み込みます。このメソッドはファイルの移動や変更を行いません。無効なローカル パスが指定された場合、このメソッドは失敗しますが、メディア項目自体がライブラリに追加される前にその有効性が確認されることはありません。

このメソッドは、静的プレイリスト ファイルと自動プレイリスト ファイルの両方を受け付けます。IWMPPlaylistCollection::importPlaylist メソッドを使用して静的プレイリストをライブラリに追加することもできます。

このメソッドを呼び出す前に、ライブラリへのフル アクセス権が必要です。詳細については、Library Access を参照してください。

vtbl 8 HRESULT getAll(IWMPPlaylist** ppMediaItems)

getAll メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスは、ライブラリ内のすべてのメディア項目を含むプレイリストに対応します。

ppMediaItemsIWMPPlaylist**out要求されたすべてのメディア項目を含むプレイリストの IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getAll メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getAll メソッドはライブラリ内のすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getAll メソッドはライブラリ内のオーディオ項目のみを返します。

vtbl 9 HRESULT getByName(LPWSTR bstrName, IWMPPlaylist** ppMediaItems)

getByName メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスには、指定された名前を持つメディア項目が含まれます。

bstrNameLPWSTRin指定された名前を格納した文字列。
ppMediaItemsIWMPPlaylist**out取得されたメディア項目の IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getByName メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByName メソッドはライブラリ内で指定された名前を持つすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByName メソッドはライブラリ内で指定された名前を持つオーディオ項目のみを返します。

vtbl 10 HRESULT getByGenre(LPWSTR bstrGenre, IWMPPlaylist** ppMediaItems)

getByGenre メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスには、指定されたジャンルを持つメディア項目が含まれます。

bstrGenreLPWSTRinジャンルを格納した文字列。
ppMediaItemsIWMPPlaylist**out取得されたメディア項目の IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getByGenre メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByGenre メソッドはライブラリ内で指定されたジャンルに属するすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByGenre メソッドはライブラリ内で指定されたジャンルに属するオーディオ項目のみを返します。

vtbl 11 HRESULT getByAuthor(LPWSTR bstrAuthor, IWMPPlaylist** ppMediaItems)

getByAuthor メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスには、指定された作成者のメディア項目が含まれます。

bstrAuthorLPWSTRin指定された作成者を格納した文字列。
ppMediaItemsIWMPPlaylist**out取得されたメディア項目の IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getByAuthor メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAuthor メソッドはライブラリ内で指定された作成者を持つすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAuthor メソッドはライブラリ内で指定された作成者を持つオーディオ項目のみを返します。

vtbl 12 HRESULT getByAlbum(LPWSTR bstrAlbum, IWMPPlaylist** ppMediaItems)

getByAlbum メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスには、指定されたアルバムのメディア項目が含まれます。

bstrAlbumLPWSTRinアルバムを格納した文字列。
ppMediaItemsIWMPPlaylist**out取得されたメディア項目の IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getByAlbum メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAlbum メソッドはライブラリ内で指定されたアルバムに属するすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAlbum メソッドはライブラリ内で指定されたアルバムに属するオーディオ項目のみを返します。

vtbl 13 HRESULT getByAttribute(LPWSTR bstrAttribute, LPWSTR bstrValue, IWMPPlaylist** ppMediaItems)

getByAttribute メソッドは、IWMPPlaylist インターフェイスへのポインターを取得します。このインターフェイスは、指定された属性が指定された値を持つメディア項目に対応します。

bstrAttributeLPWSTRin指定された属性を格納した文字列。
bstrValueLPWSTRin指定された値を格納した文字列。
ppMediaItemsIWMPPlaylist**out取得されたメディア項目の IWMPPlaylist インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドは、データベース内の属性の値に一致するメディア項目を検索する汎用的なクエリを作成するために使用できます。これは、ユーザー定義属性の場合に便利です。属性が存在しない場合はエラーになります。

このメソッドを使用して、特定の種類のすべてのメディア項目を取得できます。属性名 "MediaType" と次のいずれかの値を使用します。

説明
audio 音楽やその他のオーディオのみの項目
other .asf ファイルやストリームの URL など、その他の項目。
photo 写真項目。Windows Media Player 10 が必要です。
playlist メディア項目として表されるプレイリスト。
radio ラジオ局の項目。Windows Media Player 10 では使用されません。
video ビデオ項目。

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

IWMPMediaCollection インターフェイスを取得する方法は 2 つあり、getByAttribute メソッドの動作は、そのどちらの方法を使用したかによって異なります。IWMPCore::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAttribute メソッドはライブラリ内で指定された属性と値を持つすべてのメディア項目を返します。IWMPLibrary::get_mediaCollection を呼び出してインターフェイスを取得した場合、getByAttribute メソッドはライブラリ内で指定された属性と値を持つオーディオ項目のみを返します。

vtbl 14 HRESULT remove(IWMPMedia* pItem, VARIANT_BOOL varfDeleteFile)

remove メソッドは、指定された項目をメディア コレクションから削除します。

pItemIWMPMedia*in削除する項目を識別する IWMPMedia インターフェイスへのポインター。
varfDeleteFileVARIANT_BOOLin指定された項目をメソッドが削除するかどうかを指定します。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドは、ライブラリから項目を削除します。このメソッドは、ユーザーのコンピューターからファイルを削除することはありません。

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

vtbl 15 HRESULT getAttributeStringCollection(LPWSTR bstrAttribute, LPWSTR bstrMediaType, IWMPStringCollection** ppStringCollection)

getAttributeStringCollection メソッドは、IWMPStringCollection インターフェイスへのポインターを取得します。このインターフェイスは、指定されたメディアの種類における、指定された属性のすべての値のセットを表します。

bstrAttributeLPWSTRin値を取得する対象の属性を格納した文字列。
bstrMediaTypeLPWSTRin値を取得する対象のメディアの種類を格納した文字列。
ppStringCollectionIWMPStringCollection**out取得された値の IWMPStringCollection インターフェイスへのポインターへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

Windows Media Player でサポートされている属性については、Attribute Reference のセクションを参照してください。

vtbl 16 HRESULT getMediaAtom(LPWSTR bstrItemName, INT* plAtom)

getMediaAtom メソッドは、利用可能な属性のセット内で指定された属性が存在するインデックスを取得します。

bstrItemNameLPWSTRinインデックスを取得する対象の項目の名前を格納した文字列。
plAtomINT*inoutインデックスを格納する long へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドで取得したインデックス番号を IWMPMedia::getItemInfoByAtom に渡すことで、属性値にアクセスできます。この手法は、大きなプレイリストを扱う場合、IWMPMedia::getItemInfo を通じて属性値を名前でアクセスするよりも、一般的により効率的です。

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

vtbl 17 HRESULT setDeleted(IWMPMedia* pItem, VARIANT_BOOL varfIsDeleted)

setDeleted メソッドは、指定されたメディア項目を削除済み項目フォルダーに移動します。

pItemIWMPMedia*in移動する項目の IWMPMedia インターフェイスへのポインター。
varfIsDeletedVARIANT_BOOLin項目を移動するかどうかを指定します。この値は常に true でなければなりません。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドは、ユーザーのコンピューターからファイルを削除することはありません。

このメソッドを呼び出す前に、ライブラリへの読み取りアクセス権が必要です。詳細については、Library Access を参照してください。

Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。

vtbl 18 HRESULT isDeleted(IWMPMedia* pItem, VARIANT_BOOL* pvarfIsDeleted)
pItemIWMPMedia*in状態を確認するメディア項目の IWMPMedia。
pvarfIsDeletedVARIANT_BOOL*inout項目が削除済みかを受け取る。VARIANT_TRUE で削除済み。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWMPMediaCollection "{8363BC22-B4B4-4B19-989D-1CD765749DD1}"
#usecom global IWMPMediaCollection IID_IWMPMediaCollection "{}"
#comfunc global IWMPMediaCollection_add                           7 wstr,sptr
#comfunc global IWMPMediaCollection_getAll                        8 sptr
#comfunc global IWMPMediaCollection_getByName                     9 wstr,sptr
#comfunc global IWMPMediaCollection_getByGenre                    10 wstr,sptr
#comfunc global IWMPMediaCollection_getByAuthor                   11 wstr,sptr
#comfunc global IWMPMediaCollection_getByAlbum                    12 wstr,sptr
#comfunc global IWMPMediaCollection_getByAttribute                13 wstr,wstr,sptr
#comfunc global IWMPMediaCollection_remove                        14 sptr,int
#comfunc global IWMPMediaCollection_getAttributeStringCollection  15 wstr,wstr,sptr
#comfunc global IWMPMediaCollection_getMediaAtom                  16 wstr,var
#comfunc global IWMPMediaCollection_setDeleted                    17 sptr,int
#comfunc global IWMPMediaCollection_isDeleted                     18 sptr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。