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

IWMPStringCollection2

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID46ad648d-53f1-4a74-92e2-2a1b68d63fd4継承元IWMPStringCollection呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl9

公式ドキュメント

IWMPStringCollection2 インターフェイスは、IWMPStringCollection インターフェイスを補完するメソッドを提供します。

メソッド 4

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

vtbl 9 HRESULT isIdentical(IWMPStringCollection2* pIWMPStringCollection2, VARIANT_BOOL* pvbool)

isIdentical メソッドは、指定されたオブジェクトが現在のオブジェクトと同一かどうかを示す値を取得します。

pIWMPStringCollection2IWMPStringCollection2*in現在のオブジェクトと比較する対象のオブジェクトを表す IWMPStringCollection2 インターフェイスへのポインター。
pvboolVARIANT_BOOL*inout比較結果を受け取る VARIANT_BOOL へのポインター。VARIANT_TRUE は、オブジェクトが同一であることを示します。

戻り値

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

Return code Description
S_OK
メソッドは成功しました。

解説(Remarks)

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

Windows Media Player 10 Mobile: このメソッドはサポートされていません。

vtbl 10 HRESULT getItemInfo(INT lCollectionIndex, LPWSTR bstrItemName, LPWSTR* pbstrValue)

getItemInfo メソッドは、指定された文字列コレクション項目のインデックスと名前に対応する文字列を取得します。

lCollectionIndexINTin属性を取得する対象の文字列コレクション項目の、0 から始まるインデックスを指定する long
bstrItemNameLPWSTRin属性名を格納する BSTR
pbstrValueLPWSTR*inout文字列を受け取る BSTR へのポインター。基になる値が Boolean である属性の場合は、文字列 "true" または "false" を返します。

戻り値

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

Return code Description
S_OK
メソッドは成功しました。

解説(Remarks)

複数の値を持つ属性や複雑な値を持つ属性を取得するには、getItemInfoByType メソッドを使用してください。

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

Windows Media Player 10 Mobile: このメソッドはサポートされていません。

vtbl 11 HRESULT getAttributeCountByType(INT lCollectionIndex, LPWSTR bstrType, LPWSTR bstrLanguage, INT* plCount)

getAttributeCountByType メソッドは、指定された文字列コレクションのインデックス、属性名、および言語に関連付けられた属性の数を取得します。

lCollectionIndexINTin属性を取得する対象の文字列コレクション項目の、0 から始まるインデックスを指定する long
bstrTypeLPWSTRin属性名を格納する BSTR
bstrLanguageLPWSTRin言語を格納する BSTR。値が null または ""(空文字列)に設定されている場合は、現在のロケール文字列が使用されます。それ以外の場合、値は "en-us" のような有効な RFC 1766 言語文字列である必要があります。
plCountINT*inout個数を受け取る long へのポインター。

戻り値

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

Return code Description
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、特定の StringCollection 項目について、ある属性名に対応する属性の数を判別するために使用します。取得したインデックス番号は、getItemInfoByType メソッドの 4 番目のパラメーターに渡すことができます。

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

Windows Media Player 10 Mobile: このメソッドはサポートされていません。

vtbl 12 HRESULT getItemInfoByType(INT lCollectionIndex, LPWSTR bstrType, LPWSTR bstrLanguage, INT lAttributeIndex, VARIANT* pvarValue)

getItemInfoByType メソッドは、指定された文字列コレクション項目のインデックス、名前、言語、および属性インデックスに対応する値を取得します。

lCollectionIndexINTin属性を取得する対象の文字列コレクション項目の、0 から始まるインデックスを指定する long
bstrTypeLPWSTRin属性名を格納する BSTR
bstrLanguageLPWSTRin言語を格納する BSTR。値が null または ""(空文字列)に設定されている場合は、現在のロケール文字列が使用されます。それ以外の場合、値は "en-us" のような有効な RFC 1766 言語文字列である必要があります。
lAttributeIndexINTin属性の、0 から始まるインデックスを格納する long
pvarValueVARIANT*inout返される値を受け取る VARIANT へのポインター。

戻り値

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

Return code Description
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、複数の値を持つ属性や複雑な値を持つ属性をサポートします。getItemInfo メソッドは、複数の値を持つ属性や複雑な値を持つ属性をサポートしません。

bstrType パラメーターに値 "ChildList" を渡すことで、親文字列コレクション内の項目の 1 つに属する子を含む新しい文字列コレクションを取得できます。たとえば、親コレクションに AlbumID の一覧が含まれている場合、このメソッドを使用して、いずれかのアルバムのすべてのトラックを含む子文字列コレクションを取得できます。この方法は、IWMPMediaCollection2::getStringCollectionByQuery メソッドを 2 回呼び出す(1 回目で AlbumID のコレクションを取得し、2 回目で特定の AlbumID に対するタイトルのコレクションを取得する)よりも高速で効率的です。ここで説明した方法で ChildList を使用するには、親文字列コレクションを IWMPCore::get_mediaCollection メソッドではなく、IWMPLibraryServices を通じてメディアコレクションから取得する必要があります。

ChildList を使用する場合は、bstrType パラメーターに値 "ChildList" を、lAttributeIndex パラメーターに値 0 を渡します。返された VARIANT に対して QueryInterface を呼び出すことで IWMPStringCollection2 インターフェイスを取得でき、そこから子リストにアクセスできます。

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

Windows Media Player 10 Mobile: このメソッドはサポートされていません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWMPStringCollection2 "{46AD648D-53F1-4A74-92E2-2A1B68D63FD4}"
#usecom global IWMPStringCollection2 IID_IWMPStringCollection2 "{}"
#comfunc global IWMPStringCollection2_isIdentical              9 sptr,var
#comfunc global IWMPStringCollection2_getItemInfo              10 int,wstr,var
#comfunc global IWMPStringCollection2_getAttributeCountByType  11 int,wstr,wstr,var
#comfunc global IWMPStringCollection2_getItemInfoByType        12 int,wstr,wstr,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。