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

IWMPContentPartnerCallback

COM
IID9e8f7da2-0695-403c-b697-da10fafaa676継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

メソッド 13

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Notify(WMPCallbackNotification type, VARIANT* pContext)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

typeWMPCallbackNotificationin行われる通知の種類。WMPCallbackNotification 列挙体のメンバーとして指定します。
pContextVARIANT*in通知に対するコンテキスト固有のデータ。「解説」を参照してください。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

type パラメーターに指定できる値と、それに対応する pContext パラメーターの値を次の一覧に示します。

wmpcnLoginStateChange

pContext パラメーターの意味は、その型によって異なります。型は呼び出し元が pContextvt メンバーで指定します。

pContext パラメーターの型が VT_BOOL の場合、この呼び出しはログインまたはログアウトの試行が成功したことを Windows Media Player に通知します。pContextboolVal メンバーには、試行が成功した後のユーザーのログイン状態を指定します。VARIANT_TRUE はログインの試行が成功し、ユーザーがログインしていることを示します。VARIANT_FALSE はログアウトの試行が成功し、ユーザーがログアウトしていることを示します。

pContext パラメーターの型が VT_UI4 の場合、この呼び出しはログインの試行が失敗したことを Windows Media Player に通知します。pContextulVal メンバーには、その失敗を処理する Web ページのインデックス(オンラインストアが提供)を指定します。Player は、このインデックスをオンラインストアのプラグインが実装する IWMPContentPartner::GetItemInfo に渡すことで、Web ページの URL を取得します。この Web ページのインデックスは Windows Media Player では解釈されず、オンラインストアにとってのみ意味を持つことに注意してください。

ログインおよびログアウトの詳細については、ログインの管理を参照してください。

wmpcnAuthResult

pContext パラメーターの型は VT_BOOL です。この呼び出しは、ユーザーの認証の試行が成功したか失敗したかを Windows Media Player に通知します。VARIANT_TRUE は認証の試行が成功したことを示します。VARIANT_FALSE は認証の試行が失敗したことを示します。

Windows Media Player は、事前に IWMPContentPartner::Authenticate を呼び出して認証の試行を要求しています。

wmpcnNewCatalogAvailable

pContext パラメーターの型は VT_EMPTY です。この呼び出しは、オンラインストアで新しいカタログが利用可能になったことを Windows Media Player に通知します。

wmpcnNewPluginAvailable

pContext パラメーターの型は VT_BOOL です。この呼び出しは、オンラインストアで新しいプラグインが利用可能になったことを Windows Media Player に通知します。pContextboolVal メンバーには、新しいプラグインが必須かどうかを指定します。VARIANT_TRUE は新しいプラグインが必須であることを示します。VARIANT_FALSE は新しいプラグインが省略可能であることを示します。

wmpcnDisableRadioSkipping

pContext パラメーターの型は VT_EMPTY です。この呼び出しは、現在再生中のメタファイルプレイリスト(ASX ファイル)のスキップを無効にするよう Windows Media Player に通知します。

Windows Media Player は、タイプ 1 のオンラインストアから取得した ASX ファイルを再生する際、トラックがスキップされるたびにオンラインストアに通知します。スキップされたトラック数が許可される最大数に達すると、オンラインストアは wmpcnDisableRadioSkipping を渡して IWMPContentPartnerCallback::Notify を呼び出し、現在再生中の ASX ファイルでこれ以上トラックをスキップしてはならないことを Player に指示します。ASX ファイルに対して許可されるスキップの最大数は、オンラインストアによって決定されます。

Windows Media Player は、bstrStationEventType パラメーターに g_szStationEvent_Skipped を渡して IWMPContentPartner::StationEvent を呼び出すことで、トラックがスキップされたことをオンラインストアに通知します。

vtbl 4 HRESULT BuyComplete(HRESULT hrResult, DWORD dwBuyCookie)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

hrResultHRESULTinトランザクションの成功または失敗を示す HRESULT の戻り値コード。
dwBuyCookieDWORDin購入トランザクションを表すクッキー。この値は、Player が IWMPContentPartner::Buy を呼び出したときに提供されたものです。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

IWMPContentPartner::Buy の呼び出しごとに、BuyComplete を必ず 1 回だけ呼び出す必要があります。何らかの理由で失敗した場合でも、トランザクションが完了したときに BuyComplete を呼び出してください。

購入に関連するすべてのライセンスが配信された後にのみ、成功コードを返してください。

vtbl 5 HRESULT DownloadTrack(DWORD cookie, LPWSTR bstrTrackURL, DWORD dwServiceTrackID, LPWSTR bstrDownloadParams, HRESULT hrDownload)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

cookieDWORDinダウンロードセッションを識別するクッキー。Windows Media Player は、事前に IWMPContentPartner::Download を呼び出して、このクッキーをコンテンツパートナープラグインに提供しています。
bstrTrackURLLPWSTRinダウンロードするトラックの URL。
dwServiceTrackIDDWORDin対象となるトラックの ID。
bstrDownloadParamsLPWSTRinオンラインストアが対象のトラックに関連付けたいデータ。Windows Media Player はこのデータを解釈せず、オンラインストアにとってのみ意味を持ちます。Windows Media Player は、IWMPContentPartner::DownloadTrackComplete を呼び出すときに、このデータをオンラインストアに返します。
hrDownloadHRESULTinトラックをダウンロードするかどうかを指定する HRESULT。成功コードは Player がトラックをダウンロードすべきであることを、失敗コードは Player がトラックをダウンロードすべきでないことを示します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

Player とプラグインが連携して一連のトラックをダウンロードする仕組みについては、メディアコンテンツのダウンロードを参照してください。

このメソッドは、ファイルのライセンスが事前に配信された後にのみ呼び出す必要があります。ダウンロードが完了すると、ファイルはユーザーの [ミュージック] フォルダーに配置され、自動的にライブラリに追加されます。

vtbl 6 HRESULT GetCatalogVersion(DWORD* pdwVersion, DWORD* pdwSchemaVersion, DWORD* plcid)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

pdwVersionDWORD*outカタログのバージョンを受け取る DWORD のアドレス。
pdwSchemaVersionDWORD*outスキーマのバージョンを受け取る DWORD のアドレス。
plcidDWORD*outカタログのロケール ID を受け取る LCID のアドレス。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 7 HRESULT UpdateDeviceComplete(LPWSTR bstrDeviceName)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

bstrDeviceNameLPWSTRinデバイス名を格納した文字列。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、デバイスの更新が完了した後、UpdateDevice への応答として呼び出す必要があります。

vtbl 8 HRESULT ChangeView(LPWSTR bstrType, LPWSTR bstrID, LPWSTR bstrFilter)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。オンラインストアのコンテキスト以外でこの機能を使用することはサポートされていません。ChangeView メソッドは、Windows Media Player のビューを変更します。

bstrTypeLPWSTRin新しいライブラリビューの種類を指定する ライブラリの場所の定数。たとえば、定数 g_szGenreID は、新しいビューに特定のジャンルを表示することを指定します。
bstrIDLPWSTRin新しいビューに表示する特定の項目の ID。たとえば、bstrType が g_szGenreID の場合、このパラメーターは新しいビューに表示する特定のジャンルの ID を指定します。
bstrFilterLPWSTRin新しいビューのフィルター。ユーザーが Player のワードホイールコントロールにこのテキストを入力した場合と同じようにビューがフィルター処理されます。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、ユーザーがコンテキストメニュー項目をクリックしてコマンドを実行した場合など、ユーザーの要求に応答する場合にのみ呼び出す必要があります。

vtbl 9 HRESULT AddListContents(DWORD dwListCookie, DWORD cItems, DWORD* prgItems)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。オンラインストアのコンテキスト以外でこの機能を使用することはサポートされていません。AddListContents メソッドは、一連のメディア項目をリストに追加します。

dwListCookieDWORDinリスト取得セッションを識別するクッキー。Windows Media Player は、事前に IWMPContentPartner::GetListContents を呼び出して、このクッキーをコンテンツパートナープラグインに提供しています。
cItemsDWORDinリストに追加する項目の数。これは prgItems 配列の要素数です。
prgItemsDWORD*inメディア項目 ID の配列へのポインター。これらは、リストに追加されるメディア項目の ID です。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 10 HRESULT ListContentsComplete(DWORD dwListCookie, HRESULT hrSuccess)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

dwListCookieDWORDinリスト取得セッションを識別するクッキー。Windows Media Player は、事前に IWMPContentPartner::GetListContents を呼び出して、このクッキーをコンテンツパートナープラグインに提供しています。
hrSuccessHRESULTinリストコンテンツ全体の転送が成功したかどうかを示す HRESULT。成功コードは転送が成功したことを、エラーコードは転送が失敗したことを示します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

Windows Media Player は、IWMPContentPartner::GetListContents を呼び出してリストコンテンツの取得を開始します。これにより非同期操作が開始され、オンラインストアのプラグインは IWMPContentPartnerCallback::AddListContents を 1 回以上呼び出して、要求されたデータを Player に渡す必要があります。最後にプラグインは ListContentsComplete を呼び出して、すべてのデータが提供されたことを Player に通知する必要があります。

vtbl 11 HRESULT SendMessageComplete(LPWSTR bstrMsg, LPWSTR bstrParam, LPWSTR bstrResult)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

bstrMsgLPWSTRinメッセージを格納した BSTR。「解説」を参照してください。
bstrParamLPWSTRinメッセージのパラメーターを格納した BSTR
bstrResultLPWSTRin結果を格納した BSTR

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

SendMessageComplete メソッドは、ディスカバリーページからコンテンツパートナープラグインへメッセージを渡すために呼び出される一連のメソッドの一部です。呼び出しの連鎖を次の一覧に示します。

  1. ディスカバリーページは、2 つの文字列パラメーター MsgParam を持つ External.sendMessage を呼び出します。これら 2 つの文字列はオンラインストアにとってのみ意味を持ち、Windows Media Player では解釈されません。
  2. Windows Media Player は、IWMPContentPartner::SendMessage を呼び出して、2 つの文字列(MsgParam)をプラグインに渡します。
  3. オンラインストアがメッセージの処理を終えると、同じ 2 つの文字列を IWMPContentPartnerCallback::SendMessageComplete を呼び出して Windows Media Player に返します。また、メッセージ処理の試行結果を示す 3 つ目の文字列も SendMessageComplete に渡します。
  4. Windows Media Player は、External.OnSendMessageComplete イベントを発生させて、3 つの文字列すべてをディスカバリーページに返します。
vtbl 12 HRESULT GetContentIDsInLibrary(DWORD* pcContentIDs, DWORD** pprgIDs)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

pcContentIDsDWORD*outpprgIDs 配列の要素数を受け取ります。
pprgIDsDWORD**outコンテンツ ID の配列へのポインターを受け取ります。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは ULONG の配列を割り当て、その配列にコンテンツ ID を格納し、配列のアドレスを出力パラメーター pprgIDs に返します。呼び出し元は、配列の使用が終わったら、CoTaskMemFree を呼び出して配列を解放する必要があります。

vtbl 13 HRESULT RefreshLicenseComplete(DWORD dwCookie, DWORD contentID, HRESULT hrRefresh)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

dwCookieDWORDinメディアファイルのライセンスを更新する要求を表すクッキー。Windows Media Player は、事前に IWMPContentPartner::RefreshLicense を呼び出して、このクッキーをオンラインストアのプラグインに提供しています。
contentIDDWORDinライセンスの更新が要求されたメディアファイルのコンテンツ ID。
hrRefreshHRESULTinライセンスの更新が成功したかどうかを示す HRESULT。成功コードは更新が成功したことを、失敗コードは更新が失敗したことを示します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

Windows Media Player は、プラグインの RefreshLicense メソッドを呼び出してライセンスの更新を要求します。このメソッドは更新を開始し、すぐに制御を返します。オンラインストアが更新要求の処理を終えると、プラグインは RefreshLicenseComplete を呼び出します。

vtbl 14 HRESULT ShowPopup(INT lIndex, LPWSTR bstrParameters)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

lIndexINTinダイアログボックスに表示する Web ページのインデックス。オンラインストアにとってのみ意味を持ちます。
bstrParametersLPWSTRinダイアログボックスに関連付けられたパラメーター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

Windows Media Player は、pContext パラメーターに lIndex の値を渡して IWMPContentPartner::GetItemInfo を呼び出し、URL を取得します。次に Windows Media Player は、bstrParameters の値を URL に追加し、追加したパラメーターを含む URL を使用して、ダイアログボックスに表示する Web ページを取得します。

bstrParameters パラメーターを使用して、ポップアップウィンドウのサイズを指定できます。たとえば、bstrParameters に "DlgX=800&DlgY=400" を設定すると、ポップアップウィンドウのサイズは 800 ピクセル × 400 ピクセルになります。

vtbl 15 HRESULT VerifyPermissionComplete(LPWSTR bstrPermission, VARIANT* pContext, HRESULT hrPermission)

メモ このセクションでは、オンラインストアでの使用を想定した機能について説明します。

bstrPermissionLPWSTRin許可が要求されたアクションを指定する BSTR。Windows Media Player は、事前に IWMPContentPartner::VerifyPermission を呼び出して、このアクションを実行する許可を要求しています。指定できる値の一覧については「解説」を参照してください。
pContextVARIANT*in通知に関連する情報を格納した VARIANT へのポインター。「解説」を参照してください。
hrPermissionHRESULTin許可が付与されたかどうかを示す HRESULT。成功コードは許可が付与されたことを、失敗コードは許可が拒否されたことを示します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

bstrPermission に指定できる値と、それに対応する pContext の意味を次の一覧に示します。

g_szVerifyPermissionSync

Windows Media Player は、事前に IWMPContentPartner::VerifyPermission を呼び出して、ポータブルデバイス上のコンテンツを同期する許可を要求しています。その呼び出しで、Windows Media Player は pContext パラメーターに正規のデバイス名を指定しました。オンラインストアは、VerifyPermissionCompletepContext パラメーターに同じ正規のデバイス名を指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWMPContentPartnerCallback "{9E8F7DA2-0695-403C-B697-DA10FAFAA676}"
#usecom global IWMPContentPartnerCallback IID_IWMPContentPartnerCallback "{}"
#comfunc global IWMPContentPartnerCallback_Notify                    3 int,var
#comfunc global IWMPContentPartnerCallback_BuyComplete               4 int,int
#comfunc global IWMPContentPartnerCallback_DownloadTrack             5 int,wstr,int,wstr,int
#comfunc global IWMPContentPartnerCallback_GetCatalogVersion         6 var,var,var
#comfunc global IWMPContentPartnerCallback_UpdateDeviceComplete      7 wstr
#comfunc global IWMPContentPartnerCallback_ChangeView                8 wstr,wstr,wstr
#comfunc global IWMPContentPartnerCallback_AddListContents           9 int,int,var
#comfunc global IWMPContentPartnerCallback_ListContentsComplete      10 int,int
#comfunc global IWMPContentPartnerCallback_SendMessageComplete       11 wstr,wstr,wstr
#comfunc global IWMPContentPartnerCallback_GetContentIDsInLibrary    12 var,var
#comfunc global IWMPContentPartnerCallback_RefreshLicenseComplete    13 int,int,int
#comfunc global IWMPContentPartnerCallback_ShowPopup                 14 int,wstr
#comfunc global IWMPContentPartnerCallback_VerifyPermissionComplete  15 wstr,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。