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

IWMPPluginUI

COM
IID4c5e8f9f-ad3e-4bf9-9753-fcd30d6d38dd継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMPPluginUI インターフェイスは、Windows Media Player への接続を管理します。

メソッド 7

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

vtbl 3 HRESULT SetCore(IWMPCore* pCore)

SetCore メソッドは、プラグインがコア Windows Media Player API にアクセスできるようにするために Windows Media Player によって呼び出されます。

pCoreIWMPCore*inIWMPCore インターフェイスへのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

このメソッドは、プラグインが IWMPCore インターフェイスへのポインターを設定または解放できるようにするために Windows Media Player によって呼び出されます。pCoreNULL の場合、プラグインはシャットダウンされる状態にあり、コアへの格納済みの参照はすべて解放する必要があります。

このメソッドは、Windows Media Player がプロパティ ページを表示する目的でプラグインをインスタンス化するときには呼び出されません。したがって、このメソッドは、プラグインが有効化され、Windows Media Player が通常どおりロードしたときにのみ呼び出されるエントリ ポイントとして使用できます。

vtbl 4 HRESULT Create(HWND hwndParent, HWND* phwndWindow)

Create メソッドは、プラグインのユーザー インターフェイスをインスタンス化するために Windows Media Player によって呼び出されます。このメソッドには、プラグイン ウィンドウの親ウィンドウへのハンドルが渡されます。新しく作成されたウィンドウへのハンドルが、呼び出し元のメソッドに返されます。

hwndParentHWNDinプラグイン ウィンドウの親ウィンドウへの HWND ハンドル。
phwndWindowHWND*inoutコンテンツが埋め込まれた後の、プラグイン ウィンドウへの HWND ハンドルへのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

このメソッドは、バックグラウンド タイプを除くすべてのユーザー インターフェイス プラグイン タイプに対して Windows Media Player によって呼び出されます。

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

vtbl 5 HRESULT Destroy()

Destroy メソッドは、プラグインのユーザー インターフェイスをシャットダウンするために Windows Media Player によって呼び出されます。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

このメソッドは、バックグラウンド タイプを除くすべてのユーザー インターフェイス プラグイン タイプに対して Windows Media Player によって呼び出されます。

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

vtbl 6 HRESULT DisplayPropertyPage(HWND hwndParent)

DisplayPropertyPage メソッドは、プラグインにプロパティ ページを表示するよう要求するために Windows Media Player によって呼び出されます。このメソッドには、プラグインのプロパティ ページ ダイアログ ボックスの親ウィンドウへのハンドルが渡されます。

hwndParentHWNDinプロパティ ページ ダイアログ ボックスの親ウィンドウへの HWND ハンドル。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

このメソッドは、プロパティ ページを提供するプラグインに対してのみ Windows Media Player によって呼び出されます。

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

vtbl 7 HRESULT GetProperty(LPWSTR pwszName, VARIANT* pvarProperty)

GetProperty メソッドは、プラグインから名前と値のプロパティのペアを取得するために Windows Media Player によって呼び出されます。

pwszNameLPWSTRin

プロパティの名前を含む WCHARNULL 終端文字列定数へのポインター。次のいずれかの値を含みます。

説明
PLUGIN_MISC_CURRENTPRESET = L"CurrentPreset" out パラメーターには、現在のプリセットのインデックスを含む Long(VT_I4)値が設定されます。このプロパティは、プリセットを持つプラグインに対してのみ要求されます。
PLUGIN_MISC_PRESETCOUNT = L"PresetCount" out パラメーターには、プラグインで利用可能なプリセットの数を示す Long(VT_I4)値が設定されます。このプロパティは、プリセットを持つプラグインに対してのみ要求されます。
PLUGIN_MISC_PRESETNAMES = L"PresetNames" out パラメーターには、プリセットの名前を含む BSTR(VT_ARRAY | BSTR)値の配列が設定されます。このプロパティは、プリセットを持つプラグインに対してのみ要求されます。
PLUGIN_MISC_QUERYDESTROY = L"QueryDestroy" out パラメーターには、中断できない操作を実行中の別ウィンドウ プラグインまたはバックグラウンド プラグインを Windows Media Player が閉じようとするときに、ユーザーに表示される BSTR(VT_BSTR)値が設定されます。
PLUGIN_SEPARATEWINDOW_DEFAULTHEIGHT = L"DefaultHeight" out パラメーターには、プラグイン ウィンドウを開くときの既定の高さの希望値を示す Long(VT_I4)値が設定されます。このプロパティは、別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_DEFAULTWIDTH = L"DefaultWidth" out パラメーターには、プラグイン ウィンドウを開くときの既定の幅の希望値を示す Long(VT_I4)値が設定されます。このプロパティは、別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_MAXHEIGHT = L"MaxHeight" out パラメーターには、プラグイン ウィンドウの最大の高さの希望値を示す Long(VT_I4)値が設定されます。このプロパティは、サイズ変更可能な別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_MAXWIDTH = L"MaxWidth" out パラメーターには、プラグイン ウィンドウの最大の幅の希望値を示す Long(VT_I4)値が設定されます。このプロパティは、サイズ変更可能な別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_MINHEIGHT = L"MinHeight" out パラメーターには、プラグイン ウィンドウの最小の高さの希望値を示す Long(VT_I4)値が設定されます。このプロパティは、サイズ変更可能な別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_MINWIDTH = L"MinWidth" out パラメーターには、プラグイン ウィンドウの最小の幅の希望値を示す Long(VT_I4)値が設定されます。このプロパティは、サイズ変更可能な別ウィンドウのプラグインに対してのみ要求されます。
PLUGIN_SEPARATEWINDOW_RESIZABLE = L"Resizable" out パラメーターには、プラグイン ウィンドウがサイズ変更可能かどうかを示す Boolean(VT_BOOL)値が設定されます。このプロパティは、別ウィンドウのプラグインに対してのみ要求されます。
pvarPropertyVARIANT*inoutプロパティの値を格納する VARIANT へのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

Windows Media Player は、Windows レジストリを確認することでプラグインのタイプと機能を判別し、プラグインがサポートするプロパティのみを取得します。

ユーザーが別ウィンドウまたはバックグラウンドの UI プラグインを閉じようとした場合、またはこれらのタイプのプラグインがアクティブなときに Windows Media Player を閉じようとした場合、このメソッドは PLUGIN_MISC_QUERYDESTROY プロパティを指定して呼び出されます。ファイルの読み書きや、モーダル ダイアログ ボックスでのユーザー入力の待機など、中断できない操作をプラグインが実行中の場合は、このメソッドの out パラメーターに空でない値を設定してください。この値は、問題を示すためにユーザーに表示されます。Windows Media Player を閉じようとしているユーザーには、プラグインを無視してそのまま Player を閉じるオプションが提示されます。

プラグインを閉じる準備ができたら、out パラメーターに ""(空文字列)を設定してください。Windows Media Player がこのメソッドを呼び出し、out パラメーターに空の値を受け取ると、それ以上遅延することなくプラグインを閉じます。

このメソッドは、表示領域、設定領域、またはメタデータ領域のプラグインが閉じられるときには呼び出されません。これらのタイプのプラグインは Now Playing ペインに表示されるため、ユーザーが別のペインに切り替えたときなど、いつでも閉じられる状態でなければなりません。

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

vtbl 8 HRESULT SetProperty(LPWSTR pwszName, VARIANT* pvarProperty)

SetProperty メソッドは、プラグインに名前と値のプロパティのペアを設定するために Windows Media Player によって呼び出されます。

pwszNameLPWSTRin

プロパティの名前を含む WCHARNULL 終端文字列定数へのポインター。次のいずれかの値を含みます。

説明
PLUGIN_MISC_CURRENTPRESET = L"CurrentPreset" pvarProperty パラメーターには、現在のものにするプラグイン プリセットのインデックスを指定する Long(VT_I4)値が含まれます。
PLUGIN_ALL_MEDIASENDTO = L"MediaSendTo" pvarProperty パラメーターには、Playlist コントロールからプラグインに送信される Media オブジェクトの IUnknown(VT_ARRAY | VT_UNKNOWN)ポインターの配列が含まれます。
PLUGIN_ALL_PLAYLISTSENDTO = L"PlaylistSendTo" pvarProperty パラメーターには、ライブラリからプラグインに送信される Playlist オブジェクトの IUnknown(VT_ARRAY | VT_UNKNOWN)ポインターの配列が含まれます。
pvarPropertyVARIANT*inプロパティの新しい値を含む VARIANT へのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

Windows Media Player は、Windows レジストリを確認することでプラグインのタイプと機能を判別し、プラグインがサポートするプロパティのみを指定します。

Media オブジェクトと Playlist オブジェクトは、IUnknown ポインターの配列としてプラグインに送信されます。プラグインは、これらのポインターに対して QueryInterface を呼び出すことで、IWMPMedia インターフェイスまたは IWMPPlaylist インターフェイスを取得できます。

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

vtbl 9 HRESULT TranslateAccelerator(MSG* lpmsg)

TranslateAccelerator メソッドは、プラグインがキーボード イベントをインターセプトして応答できるようにするために、Windows Media Player のメッセージ ループの一部として呼び出されます。

lpmsgMSG*inoutプラグインが応答できる、Windows Media Player からのメッセージ情報を含む LPMSG 構造体。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

プラグインは、特定のキーボード イベントを適切なハンドラー メソッドに転送するためのアクセラレータ テーブルを設定できます。プラグインがキーボード イベントに応答しないことを選択した場合は、S_FALSE を返す必要があります。

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_IWMPPluginUI "{4C5E8F9F-AD3E-4BF9-9753-FCD30D6D38DD}"
#usecom global IWMPPluginUI IID_IWMPPluginUI "{}"
#comfunc global IWMPPluginUI_SetCore               3 sptr
#comfunc global IWMPPluginUI_Create                4 sptr,sptr
#comfunc global IWMPPluginUI_Destroy               5
#comfunc global IWMPPluginUI_DisplayPropertyPage   6 sptr
#comfunc global IWMPPluginUI_GetProperty           7 wstr,var
#comfunc global IWMPPluginUI_SetProperty           8 wstr,var
#comfunc global IWMPPluginUI_TranslateAccelerator  9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。