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

IWMPRemoteMediaServices

COM
IIDcbb92747-741f-44fe-ab5b-f1a48f3b2a59継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMPRemoteMediaServices インターフェイスには、Player コントロールをホストするプログラムから Windows Media Player にサービスを提供するメソッドが含まれています。これらのメソッドは C++ で使用するように設計されており、一部のメソッドはリモート処理でのみ使用できます。

メソッド 4

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

vtbl 3 HRESULT GetServiceType(LPWSTR* pbstrType)

GetServiceType メソッドは、ホストプログラムが埋め込みコントロールをリモートで実行したいかどうかを判断するために、Windows Media Player によって呼び出されます。

pbstrTypeLPWSTR*inout

次の値のうち 1 つ以上を含む BSTR へのポインター。

説明
Local Windows Media Player コントロールがローカルモードで埋め込まれています。
NoDeviceSupport Windows Media Player コントロールがリモートモードで埋め込まれており、デバイス同期インターフェイスをサポートしません。このモードでコード内でデバイス同期機能を使用しようとすると、次のエラーコードが返されます: NS_E_PDA_DEVICESUPPORTDISABLED (0xC00D1190L)。Windows Media Player 10 が必要です。
NoDialogs Windows Media Player 10: Windows Media Player コントロールがリモートモードで埋め込まれており、ダイアログボックスを表示しません。「解説」を参照してください。Windows Media Player 11: Windows Media Player コントロールがローカルモードまたはリモートモードのいずれかで埋め込まれており、ダイアログボックスを表示しません。
Remote Windows Media Player コントロールがリモートモードで埋め込まれています。
RemoteNoDialogs Windows Media Player コントロールがリモートモードで埋め込まれており、ダイアログボックスを表示しません。この値を使用するには、Windows Media Player 9 シリーズ更新プログラム 819756 以降が必要です。「解説」を参照してください。
ExclusiveService:keyname Windows Media Player コントロールがリモートモードで埋め込まれており、オンラインストアのサービスセレクターが無効になっています。ユーザーが利用できるオンラインストアは、keyname で識別されるもののみです。この値をこの表の他の値と組み合わせる場合は、組み合わせの最後の値にする必要があります。Windows Media Player 11 が必要です。

戻り値

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

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

解説(Remarks)

コントロールが使用されていないときに、リモート化された Player のインスタンスをバックグラウンドで実行し続けることは避けてください。リモート化された Player コントロールのインスタンスは、その再生エンジンをフルモードの Player と共有するため、バックグラウンドインスタンスを実行し続けると予期しない動作が発生する可能性があります。たとえば、ファイルの再生中にユーザーがフルモードの Player を閉じることがあります。ユーザーは Player を閉じたときにファイルの再生が完全に停止することを期待しますが、再生エンジンがまだアクティブであるため、オーディオの再生が続く可能性があります。

Windows Media Player 10 では、pbstrType の値をスペースで区切って複数連結することで組み合わせて使用できます。たとえば、ダイアログボックスを表示せずにデジタルメディアコンテンツを検索する Windows Media Player 10 のリモート化されたインスタンスを使用するには、pbstrType の値として "Remote NoDialogs FindFolders" を使用します。

Windows Media Player 11 では、Player コントロールをリモートで埋め込むアプリケーションは、専用のオンラインストアを指定できます。その場合、サービスセレクターは無効になり、指定されたオンラインストアのみがユーザーに提供されます。詳細については、Remoting the Windows Media Player Control の「Specifying an Exclusive Online Store」を参照してください。

NoDialogs、FindFolders、および Exclusive:keyname は、Remote と組み合わせた場合にのみ有効です。これらの値は Local と組み合わせた場合はサポートされません。

RemoteNoDialogs 値は、Windows Media Player 9 シリーズとの下位互換性のためにサポートされています。(詳細については、Microsoft サポート技術情報 - 819756 を参照してください。) Windows Media Player 10 では、推奨される使用方法は "Remote NoDialogs" です。

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

vtbl 4 HRESULT GetApplicationName(LPWSTR* pbstrName)

GetApplicationName メソッドは、リモート化されたコントロールをホストしているプログラムの名前を取得するために、Windows Media Player によって呼び出されます。

pbstrNameLPWSTR*inoutホストプログラムの名前を含む BSTR へのポインター。

戻り値

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

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

解説(Remarks)

このメソッドは、Windows Media Player コントロールをリモート化する場合にのみ使用されます。

Windows Media Player のフルモードでは、表示 メニューの 別のプログラムに切り替え の下にプログラム名が表示されます。

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

vtbl 5 HRESULT GetScriptableObject(LPWSTR* pbstrName, IDispatch** ppDispatch)

GetScriptableObject メソッドは、スキン内のスクリプトコードから呼び出すことができるオブジェクトの名前とインターフェイスポインターを取得するために、Windows Media Player によって呼び出されます。

pbstrNameLPWSTR*inoutスクリプト可能なオブジェクトの名前を含む BSTR へのポインター。
ppDispatchIDispatch**outスクリプト可能なオブジェクトの IDispatch インターフェイスへのポインターへのポインター。

戻り値

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

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

解説(Remarks)

埋め込みコントロールのユーザーインターフェイスは、Windows Media Player のスキンテクノロジを使用してカスタマイズできます。IWMPRemoteMediaServices::GetCustomUIMode メソッドを使用して、スキンファイルの場所を指定する必要があります。この方法で使用されるスキンは、IWMPRemoteMediaServices::GetScriptableObject メソッドを通じて Windows Media Player によって自動的に取得されるスクリプト可能なオブジェクトを介して、コントロールのホストと通信できます。

このメソッドを使用するために、埋め込みの Windows Media Player コントロールをリモート化する必要はありません。

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

vtbl 6 HRESULT GetCustomUIMode(LPWSTR* pbstrFile)

GetCustomUIMode メソッドは、Windows Media Player コントロールに適用するスキンファイルの場所を取得するために、Windows Media Player によって呼び出されます。

pbstrFileLPWSTR*inoutスキンファイルの場所を含む BSTR へのポインター。

戻り値

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

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

解説(Remarks)

このメソッドを使用すると、Windows Media Player のスキンテクノロジを使用して、埋め込みコントロールのユーザーインターフェイスをカスタマイズできます。この方法で使用されるスキンは、IWMPRemoteMediaServices::GetScriptableObject メソッドを通じて Windows Media Player によって自動的に取得されるスクリプト可能なオブジェクトを介して、コントロールのホストと通信できます。

埋め込みコントロールにスキンファイルを適用するには、値 "custom" を指定して IWMPPlayer.put_uiMode を呼び出す必要があります。GetCustomUIMode の実装では、"file://" にローカルコンピューター上にあるスキン定義ファイルのパスとファイル名を続けた値も返す必要があります。

このメソッドを使用するために、埋め込みの Windows Media Player コントロールをリモート化する必要はありません。

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_IWMPRemoteMediaServices "{CBB92747-741F-44FE-AB5B-F1A48F3B2A59}"
#usecom global IWMPRemoteMediaServices IID_IWMPRemoteMediaServices "{}"
#comfunc global IWMPRemoteMediaServices_GetServiceType       3 var
#comfunc global IWMPRemoteMediaServices_GetApplicationName   4 var
#comfunc global IWMPRemoteMediaServices_GetScriptableObject  5 var,sptr
#comfunc global IWMPRemoteMediaServices_GetCustomUIMode      6 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。