IWMPContentPartner
COM公式ドキュメント
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
メソッド 23
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| pCallback | IWMPContentPartnerCallback* | inoptional | IWMPContentPartnerCallback インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Windows Media Player は、コールバックポインターを提供するためにプラグインをインスタンス化する際にこの関数を呼び出します。また、Player はシャットダウン時にもこの関数を呼び出し、パラメーター値として NULL を渡します。これはプラグインに対し、前回の呼び出しで提供されたコールバックポインターを解放するように指示します。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| type | WMPPartnerNotification | in | 通知の種類。WMPPartnerNotification 列挙型のメンバーとして指定します。 |
| pContext | VARIANT* | in | 通知データを格納する VARIANT へのポインター。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
pContext のデータ型は、wmpsnCatalogDownloadFailure を除くすべての通知で VT_EMPTY です。カタログのダウンロードに失敗した場合、データ型は VT_ERROR となり、変数には HRESULT エラーコードが格納されます。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| bstrInfoName | LPWSTR | in | 情報を取得する対象の項目を指定する BSTR。有効な値については「解説」を参照してください。 |
| pContext | VARIANT* | in | 要求された情報に対するコンテキスト情報を提供する VARIANT へのポインター。 |
| pData | VARIANT* | out | 情報を受け取る VARIANT へのポインター。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
次の一覧は、bstrInfoName パラメーターに指定できる値と、それに対応する pContext および pData パラメーターの値を示しています。
g_szItemInfo_AlbumArtURL
pContext パラメーターは、オンラインストアのカタログ内のアルバムの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのアルバムに対して表示するアートの URL である VT_BSTR を受け取ります。
g_szItemInfo_ALTLoginURL
pContext パラメーターは VT_EMPTY 型で、情報を提供しません。
pData パラメーターは、標準のログインダイアログボックスの代わりに Windows Media Player が表示する Web ページの URL である VT_BSTR を受け取ります。Windows Media Player は、オンラインストアのプラグインの Capabilities レジストリエントリに SUBSCRIPTION_CAP_ALTLOGIN フラグが設定されている場合にのみ、代替ログイン URL を要求します。Capabilities レジストリエントリの詳細については、Registry Keys and Entries for a Type 1 Online Store を参照してください。
オンラインストアは、URL にパラメーター文字列 ?DlgX=width&DlgY=height を付加することで、代替ログインページをホストするウィンドウのサイズを指定できます。パラメーター文字列内の width と height は、ウィンドウの幅と高さをピクセル単位で表します。たとえば、AltLogin.htm を幅 800 ピクセル、高さ 400 ピクセルのウィンドウに表示するように指定するには、GetItemInfo は次の文字列を返すことができます。
http://proseware.com/AltLogin.htm?DlgX=800&DlgY=400
g_szItemInfo_ALTLoginCaption
pContext パラメーターは VT_EMPTY 型で、情報を提供しません。
pData パラメーターは、Windows Media Player が代替ログイン Web ページをホストするために開くウィンドウのキャプションである VT_BSTR を受け取ります。
g_szItemInfo_ArtistArtURL
pContext パラメーターは、オンラインストアのカタログ内のアーティストの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのアーティストに対して表示するアートの URL である VT_BSTR を受け取ります。
g_szItemInfo_AuthenticationSuccessURL
pContext パラメーターは、認証成功後に Windows Media Player が表示する、オンラインストアが提供する Web ページのインデックスである VT_I4 を提供します。
pData パラメーターは、その Web ページの URL である VT_BSTR を受け取ります。認証成功を表す Web ページのインデックスは Windows Media Player によって解釈されず、オンラインストアにとってのみ意味を持つことに注意してください。
g_szItemInfo_ErrorDescription
pContext パラメーターは、プラグインが以前に Player に提供した HRESULT である VT_ERROR を提供します。たとえば、プラグインは IWMPContentPartnerCallback::BuyComplete を呼び出す際に HRESULT を提供します。
pData パラメーターは、オンラインストアが作成し HRESULT に関連付けられたエラーの説明である VT_BSTR を受け取ります。Windows Media Player はこのエラーメッセージを表示しますが、解釈はしません。
g_szItemInfo_ErrorURL
pContext パラメーターは、プラグインが以前に Player に提供した HRESULT である VT_ERROR を提供します。たとえば、プラグインは IWMPContentPartnerCallback::BuyComplete を呼び出す際に HRESULT を提供します。
pData パラメーターは、ユーザーがエラー解決リンクをクリックしたときに Windows Media Player が表示する Web ページの URL である VT_BSTR を受け取ります。エラー解決リンクは Player のユーザーインターフェイスの一部です。
g_szItemInfo_ErrorURLLinkText
pContext パラメーターは、プラグインが以前に Player に提供した HRESULT である VT_ERROR を提供します。たとえば、プラグインは IWMPContentPartnerCallback::BuyComplete を呼び出す際に HRESULT を提供します。
pData パラメーターは、Windows Media Player がエラー解決リンクを表示するときに使用する、オンラインストアが作成したテキストである VT_BSTR を受け取ります。
g_szItemInfo_TreeListIconURL
pContext パラメーターは、オンラインストアのカタログ内のリストの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がツリービューコントロール内でそのリストに対して表示するアイコンの URL である VT_BSTR を受け取ります。
g_szItemInfo_CreateAccountURL
pContext パラメーターは VT_EMPTY 型で、情報を提供しません。
pData パラメーターは、ユーザーが自分のアカウントを管理できるように Windows Media Player が表示する Web ページの URL である VT_BSTR を受け取ります。
g_szItemInfo_ForgetPasswordURL
pContext パラメーターは VT_EMPTY 型で、情報を提供しません。
pData パラメーターは、ユーザーがパスワードを忘れたときに Windows Media Player が表示する Web ページの URL である VT_BSTR を受け取ります。
g_szItemInfo_GenreArtURL
pContext パラメーターは、オンラインストアのカタログ内のジャンルの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのジャンルに対して表示するアートの URL である VT_BSTR を受け取ります。
g_szItemInfo_HTMLViewURL
pContext パラメーターは、Windows Media Player が Windows Media メタファイル (ASX ファイル) 内の PARAM 要素から取得した文字列である VT_BSTR を提供します。
pData パラメーターは、Windows Media Player が表示する Web ページの URL である VT_BSTR を受け取ります。
PARAM 要素の name 属性が "HTMLFlink" の場合、Windows Media Player は PARAM 要素の value 属性をこのメソッドに渡し、再生中 機能で表示する Web ページの URL を取得します。
g_szItemInfo_ListArtURL
pContext パラメーターは、オンラインストアのカタログ内のリストの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのリストに対して表示するアートの URL である VT_BSTR を受け取ります。
g_szItemInfo_LoginFailureURL
pContext パラメーターは、ログイン失敗後に Windows Media Player が表示する、オンラインストアが提供する Web ページのインデックスである VT_UI4 を提供します。
pData パラメーターは、その Web ページの URL である VT_BSTR を受け取ります。
Windows Media Player は、オンラインストアのプラグインが type パラメーターに wmpcnLoginStateChange を渡して IWMPContentPartnerCallback::Notify を呼び出した際に、このインデックスを事前に取得しています。ログイン失敗 Web ページのインデックスは Windows Media Player によって解釈されず、オンラインストアにとってのみ意味を持ちます。
g_szItemInfo_PopupURL
pContext パラメーターは、Windows Media Player がモーダルウィンドウに表示する、オンラインストアが提供するポップアップ Web ページのインデックスである VT_I4 を提供します。
pData パラメーターは、モーダルウィンドウに表示する Web ページの URL である VT_BSTR を受け取ります。ポップアップ Web ページのインデックスは Windows Media Player によって解釈されず、オンラインストアにとってのみ意味を持ちます。
g_szItemInfo_PopupCaption
pContext パラメーターは、オンラインストアが作成したポップアップキャプションのインデックスである VT_I4 を提供します。
pData パラメーターは、Windows Media Player がポップアップ Web ページをホストするために開くウィンドウのキャプションである VT_BSTR を受け取ります。ポップアップキャプションのインデックスは Windows Media Player によって解釈されず、オンラインストアにとってのみ意味を持ちます。
g_szItemInfo_RadioArtURL
pContext パラメーターは、オンラインストアのカタログ内のラジオフィードの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのラジオフィードに対して表示するアートの URL である VT_BSTR を受け取ります。
g_szItemInfo_SubGenreArtURL
pContext パラメーターは、オンラインストアのカタログ内のサブジャンルの ID である VT_UI4 を提供します。
pData パラメーターは、Windows Media Player がそのサブジャンルに対して表示するアートの URL である VT_BSTR を受け取ります。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。GetContentPartnerInfo メソッドは、オンラインストアに関する特定の情報を取得します。
| bstrInfoName | LPWSTR | in | 取得する情報の種類を指定する BSTR。有効な値の一覧については「解説」を参照してください。 |
| pData | VARIANT* | out | 情報を受け取る VARIANT のアドレス。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
次の一覧は、bstrInfoName に指定できる値と、それに対応して pData に返される値を示しています。
g_szContentPartnerInfo_LoginState
pData パラメーターは、ユーザーが現在サインインしているかどうかを示す VT_BOOL を受け取ります。VARIANT_TRUE はユーザーがサインインしていることを示し、VARIANT_FALSE はユーザーがサインインしていないことを示します。
g_szContentPartnerInfo_MediaPlayerAccountType
pData パラメーターは、アカウントの種類を示す WMPAccountType 列挙値 (VT_UI4) を受け取ります。この値は Windows Media Player によって使用されます。
g_szContentPartnerInfo_AccountType
pData パラメーターは、オンラインストアのアカウントの種類を表す文字列を格納する VT_BSTR を受け取ります。この値は Windows Media Player では使用されませんが、ユーザーに表示される場合があります。
g_szContentPartnerInfo_HasCachedCredentials
pData パラメーターは、プラグインがユーザーの資格情報 (ユーザー名とパスワード) をキャッシュしているかどうかを示す VT_BOOL を受け取ります。VARIANT_TRUE はプラグインが資格情報をキャッシュしていることを示し、VARIANT_FALSE はプラグインが資格情報をキャッシュしていないことを示します。
g_szContentPartnerInfo_LicenseRefreshAdvanceWarning
pData パラメーターは、オンラインストアがライセンスを事前に更新できる、有効期限までの日数を示す VT_UI4 を受け取ります。たとえば、プラグインがサブスクリプションコンテンツのライセンスを有効期限の 5 日前に更新できる場合、pData は値 5 を受け取ります。
g_szContentPartnerInfo_PurchasedTrackRequiresReDownload
pData パラメーターは、購入されるトラックが過去にダウンロードされている場合でも再度ダウンロードする必要があるかどうかを示す VT_BOOL を受け取ります。VARIANT_TRUE はトラックをダウンロードする必要があることを示し、VARIANT_FALSE はトラックをダウンロードする必要がないことを示します。
g_szContentPartnerInfo_MaximumTrackPurchasePerPurchase
pData パラメーターは、オンラインストアが IWMPContentPartner::Buy の 1 回の呼び出しで処理できるトラックの最大数を示す VT_UI4 を受け取ります。最大数がない場合、pData は値 0 を受け取ります。
g_szContentPartnerInfo_AccountBalance
pData パラメーターは、ユーザーのアカウント残高を示す VT_BSTR を受け取ります。Windows Media Player はこの文字列を表示しますが、解釈はしません。
g_szContentPartnerInfo_UserName
pData パラメーターは、現在ログインしているユーザーのユーザー名を示す VT_BSTR を受け取ります。Windows Media Player はこの文字列を表示しますが、解釈はしません。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。GetCommands メソッドは、コンテキストメニューのコマンドを取得します。
| location | LPWSTR | in | ユーザーが右クリックしたライブラリビューの種類を指定する ライブラリ位置定数。たとえば、定数 g_szCPGenreID は、ユーザーが特定のジャンルのビューで右クリックしたことを示します |
| pLocationContext | VARIANT* | in | ユーザーが右クリックした特定のビューの ID。たとえば、location が g_szCPGenreID の場合、このパラメーターはユーザーが右クリックしたときに表示していた特定のジャンルの ID です。 |
| itemLocation | LPWSTR | in | ユーザーが右クリックしたときに選択されていたメディア項目の種類を示すライブラリ位置定数。たとえば、定数 g_szCPAlbumID は、1 つ以上のアルバムが選択された状態でユーザーが右クリックしたことを指定します。 |
| cItemIDs | DWORD | in | ユーザーが右クリックしたときに選択されていた項目の数。これは prgItemIDs 配列の要素数です。 |
| prgItemIDs | DWORD* | in | ユーザーが右クリックしたときに選択されていたメディア項目の ID を格納する配列。 |
| pcItemIDs | DWORD* | out | pprgItems 配列の要素数。 |
| pprgItems | WMPContextMenuInfo** | out | WMPContextMenuInfo 構造体の配列へのポインターを受け取る変数のアドレス。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、pprgItems で返す配列を割り当てるために CoTaskMemAlloc を呼び出す必要があります。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。InvokeCommand メソッドは、コンテキストメニューのコマンドを呼び出します。
| dwCommandID | DWORD | in | 呼び出すコマンドの ID。Windows Media Player は、IWMPContentPartner::GetCommands を呼び出すことによって、このコマンド ID をコンテンツパートナープラグインから事前に取得しています。 |
| location | LPWSTR | in | ユーザーが右クリックしたライブラリビューの種類を指定するライブラリ位置定数。たとえば、定数 g_szCPGenreID は、ユーザーが特定のジャンルのビューで右クリックしたことを指定します。 |
| pLocationContext | VARIANT* | in | ユーザーが右クリックした特定のビューの ID。たとえば、location が g_szCPGenreID の場合、このパラメーターはユーザーが右クリックしたときに表示していた特定のジャンルの ID です。 |
| itemLocation | LPWSTR | in | ユーザーが右クリックしたときに選択されていたメディア項目の種類を指定するライブラリ位置定数。たとえば、定数 g_szCPAlbumID は、1 つ以上のアルバムが選択された状態でユーザーが右クリックしたことを指定します。 |
| cItemIDs | DWORD | in | ユーザーが右クリックしたときに選択されていた項目の数。これは rgItemIDs 配列の要素数です。 |
| rgItemIDs | DWORD* | in | ユーザーが右クリックしたときに選択されていたメディア項目の ID を格納する配列。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| pInfo | IWMPContentContainerList* | inoptional | 購入するコンテンツを表すコンテンツコンテナーリストへのポインター。 |
| pbstrTotalPrice | LPWSTR* | out | 合計金額を受け取る BSTR へのポインター。 |
| pSilentOK | VARIANT_BOOL* | out | 購入をサイレントに (つまりダイアログボックスを表示せずに) 続行できる場合は VARIANT_TRUE を受け取ります。それ以外の場合は VARIANT_FALSE を受け取ります。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
pbstrTotalPrice で返される文字列の形式は、オンラインストアのみが把握しています。Windows Media Player は価格文字列を表示しますが、解釈はしません。Windows Media Player とコンテンツパートナープラグインが価格情報を交換する方法の詳細については、Purchasing Media Content を参照してください。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。Buy メソッドは、デジタルメディアコンテンツの購入を開始します。
| pInfo | IWMPContentContainerList* | inoptional | 購入するコンテンツを表すコンテンツコンテナーリストへのポインター。 |
| cookie | DWORD | in | トランザクションを識別するために使用される Cookie。この値を保存し、購入トランザクションの完了時に IWMPContentPartnerCallback::BuyComplete に渡す必要があります。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Buy の各呼び出しに対して、IWMPContentPartnerCallback::BuyComplete を必ず 1 回だけ呼び出す必要があります。何らかの理由で失敗した場合でも、トランザクションの完了時に BuyComplete を呼び出してください。
ユーザーが以前に購入したコンテンツのライセンスの有効期限が切れている場合は、単純にライセンスを更新できます。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。GetStreamingURL メソッドは、トラックのストリーミング URL を取得します。
| st | WMPStreamingType | in | ストリーミングするメディア項目の種類 (音楽、ビデオ、またはラジオ) を指定する WMPStreamingType 列挙型のメンバー。 |
| pStreamContext | VARIANT* | in | ストリーミングするメディア項目の ID を格納する VARIANT へのポインター。ID は VARIANT の ulVal メンバーに格納されており、その型は VT_UI4 です。 |
| pbstrURL | LPWSTR* | out | トラックの URL を受け取る BSTR のアドレス。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。Download メソッドは、一連のメディア項目のダウンロードを開始します。
| pInfo | IWMPContentContainerList* | inoptional | ダウンロードするコンテンツを記述する IWMPContentContainerList インターフェイスへのポインター。 |
| cookie | DWORD | in | ダウンロード要求を表す Cookie。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、pInfo で渡されたコンテナーリストを検査するプロセスを開始し、すぐに制御を返します。プラグインはコンテナーリストを検査しながら、コンテナーリスト内の各トラックに対して IWMPContentPartnerCallback::DownloadTrack を 1 回ずつ呼び出します。ダウンロード手順の詳細については、Downloading Media Content を参照してください。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| hrResult | HRESULT | in | ダウンロードの成功または失敗を示す HRESULT。成功コードは Player がトラックのダウンロードに成功したことを示します。失敗コードは Player がトラックのダウンロードに失敗したことを示します。 |
| contentID | DWORD | in | 対象となるトラックのコンテンツ ID。 |
| downloadTrackParam | LPWSTR | in | プラグインが以前に IWMPContentPartnerCallback::DownloadTrack に渡したパラメーター。このパラメーターはオンラインストアにとってのみ意味を持ち、Windows Media Player によって解釈されることはありません。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Player とプラグインが連携して一連のトラックをダウンロードする方法については、Downloading Media Content を参照してください。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。RefreshLicense メソッドは、指定されたメディアファイルのライセンスの更新を開始します。
| dwCookie | DWORD | in | 更新要求を識別する Cookie。オンラインストアがライセンスの更新を完了すると、この Cookie を IWMPContentPartnerCallback::RefreshLicenseComplete に渡します。 |
| fLocal | VARIANT_BOOL | in | メディアファイルがユーザーのコンピューター上にあるかどうかを指定する VARIANT_BOOL。VARIANT_TRUE はファイルがユーザーのコンピューター上にあることを指定します。VARIANT_FALSE はファイルが現在ユーザーのコンピューター上にはないが、オンラインストアのサーバーから入手できることを指定します。 |
| bstrURL | LPWSTR | inoptional | ユーザーのコンピューター上のメディアファイルの URL を格納する BSTR。メディアファイルがユーザーのコンピューター上にない場合、これは NULL です。 |
| type | WMPStreamingType | in | メディアファイルの種類 (音楽、ビデオ、またはラジオ) を指定する WMPStreamingType 列挙型のメンバー。 |
| contentID | DWORD | in | 更新されたライセンスが要求されているメディアファイルのコンテンツ ID。 |
| bstrRefreshReason | LPWSTR | in | ライセンスを更新する理由。呼び出し元 (Windows Media Player) は、このパラメーターを次のいずれかの値に設定します。 g_szRefreshLicensePlay g_szRefreshLicenseBurn g_szRefreshLicenseSync |
| pReasonContext | VARIANT* | in | デバイスへの同期のためにライセンスを更新する場合、このパラメーターは VT_BSTR 型で、デバイス名を格納します。それ以外の場合、このパラメーターは VT_EMPTY 型で、情報を提供しません。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドはユーザーインターフェイスを表示してはなりません。
このメソッドはライセンスの更新を開始し、すぐに制御を返します。オンラインストアがライセンスの更新を完了すると、オンラインストアのプラグインは IWMPContentPartnerCallback::RefreshLicenseComplete を呼び出します。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| dwCatalogVersion | DWORD | in | 現在のカタログバージョンを格納する DWORD。 |
| dwCatalogSchemaVersion | DWORD | in | 現在のカタログスキーマバージョンを格納する DWORD。 |
| catalogLCID | DWORD | in | カタログのロケール ID (LCID)。 |
| pdwNewCatalogVersion | DWORD* | out | 新しいカタログバージョンを受け取る DWORD のアドレス。 |
| pbstrCatalogURL | LPWSTR* | out | URL を受け取る BSTR のアドレス。 |
| pExpirationDate | VARIANT* | out | カタログ更新の有効期限を受け取る VARIANT (VT_DATE) のアドレス。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
カタログ URL では、パスの一部としてバージョンを指定することをお勧めします。たとえば、http://www.contoso.com/Catalogs/210/catalog.wmdb のようにします。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| task | WMPTaskType | in | アクティブなタスクペインを指定する WMPTaskType 列挙型のメンバー。 |
| location | LPWSTR | in | ユーザーが現在表示しているライブラリビューの種類を指定する ライブラリ位置定数。たとえば、定数 g_szCPListID は、ユーザーが特定のプレイリストを表示するペインを表示していることを指定します。 |
| pContext | VARIANT* | in | ユーザーが現在表示している特定の項目の ID。たとえば、location が g_szCPListID の場合、このパラメーターはユーザーが表示している特定のプレイリストの ID を指定します。 |
| clickLocation | LPWSTR | in | ユーザーが選択した項目の種類を指定するライブラリ位置定数。たとえば、定数 g_szCPTrackID は、ユーザーが特定の音楽トラックを選択したことを指定します。 |
| pClickContext | VARIANT* | in | ユーザーが選択した特定の項目の ID。たとえば、clickLocation が g_szCPTrackID の場合、このパラメーターはユーザーが選択した特定のトラックの ID を指定します。 |
| bstrFilter | LPWSTR | in | 現在のライブラリビューのフィルター。これは、ユーザーが Player のワードホイールコントロールに入力したテキストです。 |
| bstrViewParams | LPWSTR | in | 新しいライブラリ位置に関連付けられた、オンラインストアにとってのみ意味を持つパラメーター。「解説」を参照してください。 |
| pbstrTemplateURL | LPWSTR* | out | 表示するディスカバリーページの URL を受け取る BSTR へのポインター。 |
| pTemplateSize | WMPTemplateSize* | out | Player がディスカバリーページを表示するテンプレートのサイズを示す WMPTemplateSize 列挙型のメンバーを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Windows Media Player は、ライブラリ、同期、または 書き込み ペインでビューが変化したときにこのメソッドを呼び出します。また、Player はこれら 3 つのペインのいずれかがアクティブになったときにもこのメソッドを呼び出します。ペインまたはビューは、ユーザーのナビゲーションの結果として、またはディスカバリーページからの呼び出しの結果として変化することがあります。
ディスカバリーページが External.changeView を呼び出すとき、ViewParams パラメーターに、新しいビューに関連付けたい任意のコンテキストを設定します。Windows Media Player はそのコンテキストを GetTemplate の bstrViewParams パラメーターでプラグインに渡します。
ディスカバリーページが External.changeViewOnlineList を呼び出すとき、Params パラメーターに、新しいビューに関連付けたい任意のコンテキストを設定します。Windows Media Player はそのコンテキストを GetTemplate の bstrViewParams パラメーターでプラグインに渡します。
ユーザーのナビゲーションの結果としてビューが変化する場合、Windows Media Player は GetTemplate を呼び出す際に bstrParams パラメーターを NULL に設定します。
Windows Media Player は、新しいビューに表示すべきディスカバリーページの URL を取得するために GetTemplate を呼び出します。また、Player は、新しいビューのどの部分をディスカバリーページが占めるべきかを示す WMPTemplateSize 値も受け取ります。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| bstrDeviceName | LPWSTR | in | デバイス名を格納する BSTR。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
成功コードを返す UpdateDevice の各呼び出しに対して、IWMPContentPartnerCallback::UpdateDeviceComplete を必ず 1 回だけ呼び出す必要があります。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。GetListContents メソッドは、動的リストの取得を開始します。
| location | LPWSTR | in | リストが取得されるライブラリビューの種類を指定するライブラリ位置定数。たとえば、定数 g_szCPListID は、特定のリストが取得されることを指定します。 |
| pContext | VARIANT* | in | リストが取得される特定の項目の ID。たとえば、location が g_szCPListID の場合、このパラメーターは取得されるリストの ID です。 |
| bstrListType | LPWSTR | in | 個々のリスト項目の種類を指定するライブラリ位置定数。たとえば、定数 g_szCPAlbumID は、リスト内の項目がアルバムであることを指定します。 |
| bstrParams | LPWSTR | in | 取得されるリストに関連付けられた、オンラインストアにとってのみ意味を持つパラメーター。「解説」を参照してください。 |
| dwListCookie | DWORD | in | リストの取得操作を識別するために使用される Cookie。(プラグインはこの Cookie を IWMPContentPartnerCallback::AddListContents および IWMPContentPartnerCallback::ListContentsComplete に渡します。) |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
リストの内容を取得する操作は非同期操作です。このメソッドは取得を開始し、すぐに制御を返す必要があります。その後、プラグインは要求されたリストの内容を Windows Media Player に提供するために、IWMPContentPartnerCallback::AddListContents を 1 回以上呼び出す必要があります。プラグインがすべてのデータを提供したら、操作の終了を示すために IWMPContentPartnerCallback::ListContentsComplete を呼び出す必要があります。いずれの場合も、プラグインは正しいリスト取得セッションを識別するために、dwListCookie で提供された Cookie を渡します。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。Login メソッドは、ユーザーをオンラインストアにログインさせます。
| userInfo | BLOB | in | ユーザー名を格納する暗号化された BLOB。 |
| pwdInfo | BLOB | in | ユーザーのパスワードを格納する暗号化された BLOB。 |
| fUsedCachedCreds | VARIANT_BOOL | in | プラグインがキャッシュされた資格情報の使用を試みるべきかどうかを示す VARIANT_BOOL。 |
| fOkToCache | VARIANT_BOOL | in | プラグインが提供された資格情報をキャッシュすることが許可されているかどうかを示す VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
通常、このメソッドは、オンラインストアにログインするというユーザーからの明示的な要求に応じて呼び出されます。更新されたライセンスを必要とする音楽ファイルの書き込みなど、他のユーザー操作によってログインの必要性が示される場合もあります。
プラグインは、ログイン状態が変化したときに Windows Media Player に通知するために IWMPContentPartnerCallback::Notify を呼び出す必要があります。
ユーザー名とパスワードを復号化するには、CryptUnprotectData 関数を使用します。CryptUnprotectData は Platform SDK の暗号化 (Cryptography) セクションに記載されています。CryptUnprotectData の dwFlags パラメーターには CRYPTPROTECT_UI_FORBIDDEN フラグを使用する必要があります。省略可能なパラメーターと予約済みパラメーターは NULL に設定してください。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。Authenticate メソッドは、ユーザーを認証する試みを開始します。
| userInfo | BLOB | in | 暗号化されたユーザー情報を格納する BLOB。 |
| pwdInfo | BLOB | in | 暗号化されたパスワード情報を格納する BLOB。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
ディスカバリーページ上の特定のリンクには、ユーザーが認証された後にのみ表示すべきターゲットがあります。ディスカバリーページ、Windows Media Player、およびオンラインストアのプラグインは、次の手順を使用してユーザーを認証し、ターゲット Web ページを表示します。
- ディスカバリーページ上のスクリプトが External.authenticate メソッドを呼び出します。
- Windows Media Player が、ユーザー名とパスワードを取得するためのダイアログボックスを表示します。
- Windows Media Player が IWMPContentPartner::Authenticate を呼び出します。これにより認証の試みが開始され、すぐに制御が返されます。
- 認証の試みが完了すると、オンラインストアのプラグインは wmpcnAuthResult と、試みが成功したかどうかを示すブール値を渡して IWMPContentPartnerCallback::Notify を呼び出します。
- 認証の試みが成功した場合、Windows Media Player は認証成功 Web ページの URL を取得するために、g_szItemInfo_AuthenticationSuccessURL を渡して IWMPContentPartner::GetItemInfo を呼び出します。この呼び出しで、Windows Media Player は、ディスカバリーページが External.authenticate メソッドに渡したものと同じインデックスを渡します。
- Windows Media Player が認証成功 Web ページを表示します。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。Logout メソッドは、ユーザーのオンラインストアセッションを終了します。
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
プラグインは、ログイン状態が変化したときに Windows Media Player に通知するために IWMPContentPartnerCallback::Notify を呼び出す必要があります。
Logout メソッドは、キャッシュされた資格情報をすべて削除する必要があります。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。SendMessage メソッドは、ディスカバリーページがプラグインにメッセージを送信できるようにします。
| bstrMsg | LPWSTR | in | メッセージを格納する BSTR。 |
| bstrParam | LPWSTR | in | メッセージのパラメーターを格納する BSTR。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
プラグインは、メッセージが処理されたことを Windows Media Player に通知するために IWMPContentPartnerCallback::SendMessageComplete を呼び出す必要があります。これにより、ディスカバリーページで OnSendMessageComplete イベントが発生します。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| bstrStationEventType | LPWSTR | in | イベントの種類を格納する BSTR。呼び出し元 (Windows Media Player) は、このパラメーターを次のいずれかの値に設定します。
| ||||||||
| StationId | DWORD | in | ステーション ID。 | ||||||||
| PlaylistIndex | DWORD | in | プレイリストのインデックス。 | ||||||||
| TrackID | DWORD | in | トラック ID。 | ||||||||
| TrackData | LPWSTR | in | トラックデータを格納する BSTR。 | ||||||||
| dwSecondsPlayed | DWORD | in | プレイリストが再生された秒数。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、オンラインストアが作成した ASX ファイルが再生されるときに、特定の ASX イベントのログ記録を可能にするために呼び出されます。
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。この機能をオンラインストアのコンテキスト以外で使用することはサポートされていません。CompareContainerListPrices メソッドは、2 つのコンテンツコンテナーリストの価格を比較します。
| pListBase | IWMPContentContainerList* | inoptional | 基準となるコンテンツコンテナーリストを表す IWMPContentContainerList インターフェイスへのポインター。 |
| pListCompare | IWMPContentContainerList* | inoptional | 比較対象のコンテンツコンテナーリストを表す IWMPContentContainerList インターフェイスへのポインター。 |
| pResult | INT* | out | 比較結果を受け取る long のアドレス。基準価格が比較価格より小さい場合は 0 未満の値を返し、基準リストと比較リストの価格が等しい場合は 0 を返し、基準価格が比較価格より大きい場合は 0 より大きい値を返します。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
注 このセクションでは、オンラインストアでの使用を目的として設計された機能について説明します。
| bstrPermission | LPWSTR | in | 許可が要求されているアクションを指定する BSTR。有効な値の一覧については「解説」を参照してください。 |
| pContext | VARIANT* | in | 要求に関連する情報を格納する VARIANT へのポインター。「解説」を参照してください。 |
戻り値
このメソッドは HRESULT を返します。有効な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
VerifyPermission メソッドは、許可の検証を開始し、すぐに制御を返します。オンラインストアが検証を完了すると、許可が付与されたか拒否されたかを Windows Media Player に通知するために IWMPContentPartnerCallback::VerifyPermissionComplete を呼び出します。
次の一覧は、bstrPermission に指定できる値と、それに対応する pContext の意味を示しています。
g_szVerifyPermissionSync
Windows Media Player は、ポータブルデバイス上のコンテンツを同期するための許可をオンラインストアに要求しています。pContext パラメーターは、正規のデバイス名を指定する VT_BSTR です。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPContentPartner "{55455073-41B5-4E75-87B8-F13BDB291D08}" #usecom global IWMPContentPartner IID_IWMPContentPartner "{}" #comfunc global IWMPContentPartner_SetCallback 3 sptr #comfunc global IWMPContentPartner_Notify 4 int,var #comfunc global IWMPContentPartner_GetItemInfo 5 wstr,var,var #comfunc global IWMPContentPartner_GetContentPartnerInfo 6 wstr,var #comfunc global IWMPContentPartner_GetCommands 7 wstr,var,wstr,int,var,var,var #comfunc global IWMPContentPartner_InvokeCommand 8 int,wstr,var,wstr,int,var #comfunc global IWMPContentPartner_CanBuySilent 9 sptr,var,var #comfunc global IWMPContentPartner_Buy 10 sptr,int #comfunc global IWMPContentPartner_GetStreamingURL 11 int,var,var #comfunc global IWMPContentPartner_Download 12 sptr,int #comfunc global IWMPContentPartner_DownloadTrackComplete 13 int,int,wstr #comfunc global IWMPContentPartner_RefreshLicense 14 int,int,wstr,int,int,wstr,var #comfunc global IWMPContentPartner_GetCatalogURL 15 int,int,int,var,var,var #comfunc global IWMPContentPartner_GetTemplate 16 int,wstr,var,wstr,var,wstr,wstr,var,var #comfunc global IWMPContentPartner_UpdateDevice 17 wstr #comfunc global IWMPContentPartner_GetListContents 18 wstr,var,wstr,wstr,int #comfunc global IWMPContentPartner_Login 19 int,int,int,int #comfunc global IWMPContentPartner_Authenticate 20 int,int #comfunc global IWMPContentPartner_Logout 21 #comfunc global IWMPContentPartner_SendMessage 22 wstr,wstr #comfunc global IWMPContentPartner_StationEvent 23 wstr,int,int,int,wstr,int #comfunc global IWMPContentPartner_CompareContainerListPrices 24 sptr,sptr,var #comfunc global IWMPContentPartner_VerifyPermission 25 wstr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMPContentPartner "{55455073-41B5-4E75-87B8-F13BDB291D08}" #usecom global IWMPContentPartner IID_IWMPContentPartner "{}" #comfunc global IWMPContentPartner_SetCallback 3 sptr #comfunc global IWMPContentPartner_Notify 4 int,sptr #comfunc global IWMPContentPartner_GetItemInfo 5 wstr,sptr,sptr #comfunc global IWMPContentPartner_GetContentPartnerInfo 6 wstr,sptr #comfunc global IWMPContentPartner_GetCommands 7 wstr,sptr,wstr,int,sptr,sptr,sptr #comfunc global IWMPContentPartner_InvokeCommand 8 int,wstr,sptr,wstr,int,sptr #comfunc global IWMPContentPartner_CanBuySilent 9 sptr,sptr,sptr #comfunc global IWMPContentPartner_Buy 10 sptr,int #comfunc global IWMPContentPartner_GetStreamingURL 11 int,sptr,sptr #comfunc global IWMPContentPartner_Download 12 sptr,int #comfunc global IWMPContentPartner_DownloadTrackComplete 13 int,int,wstr #comfunc global IWMPContentPartner_RefreshLicense 14 int,int,wstr,int,int,wstr,sptr #comfunc global IWMPContentPartner_GetCatalogURL 15 int,int,int,sptr,sptr,sptr #comfunc global IWMPContentPartner_GetTemplate 16 int,wstr,sptr,wstr,sptr,wstr,wstr,sptr,sptr #comfunc global IWMPContentPartner_UpdateDevice 17 wstr #comfunc global IWMPContentPartner_GetListContents 18 wstr,sptr,wstr,wstr,int #comfunc global IWMPContentPartner_Login 19 int,int,int,int #comfunc global IWMPContentPartner_Authenticate 20 int,int #comfunc global IWMPContentPartner_Logout 21 #comfunc global IWMPContentPartner_SendMessage 22 wstr,wstr #comfunc global IWMPContentPartner_StationEvent 23 wstr,int,int,int,wstr,int #comfunc global IWMPContentPartner_CompareContainerListPrices 24 sptr,sptr,sptr #comfunc global IWMPContentPartner_VerifyPermission 25 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。