IWMPPlayer
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWMPPlayer インターフェイスは、Windows Media Player コントロールのユーザーインターフェイスの基本的な動作を変更するためのメソッドを提供します。これらのメソッドは IWMPCore インターフェイスを補完します。
メソッド 8
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_enabled メソッドは、Windows Media Player コントロールが有効かどうかを示す値を取得します。
| pbEnabled | VARIANT_BOOL* | inout | Windows Media Player コントロールが有効かどうかを示す VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
get_enabled から受け取った VARIANT_BOOL が FALSE の場合、Windows Media Player は全画面再生中にユーザーコントロールを非表示にします。
put_enabled メソッドは、Windows Media Player コントロールが有効かどうかを示す値を設定します。
| bEnabled | VARIANT_BOOL | in | Windows Media Player コントロールが有効かどうかを示す VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
put_enabled で指定した VARIANT_BOOL が FALSE に設定されている場合、Windows Media Player は全画面再生中にユーザーコントロールを非表示にします。
get_fullScreen メソッドは、ビデオコンテンツが全画面モードで再生されるかどうかを示す値を取得します。
| pbFullScreen | VARIANT_BOOL* | inout | ビデオコンテンツが全画面モードで再生されるかどうかを示す VARIANT_BOOL へのポインター。既定値は FALSE です。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Windows Media Player コントロールを埋め込む際に全画面モードが正しく動作するためには、ビデオ表示領域の高さと幅が少なくとも 1 ピクセルなければなりません。IWMPPlayer::put_uiMode で指定する BSTR が "mini" または "full" に設定されている場合、ユーザーインターフェイスに加えてビデオ表示領域を確保するために、コントロール自体の高さが 65 ピクセル以上でなければなりません。
IWMPPlayer::put_uiMode で指定する BSTR が "invisible" に設定されている場合、get_fullScreen で VARIANT_BOOL を TRUE に指定するとエラーが発生し、コントロールの動作には影響しません。
全画面再生中、IWMPPlayer::get_enableContextMenu から取得した VARIANT_BOOL が FALSE で、かつ IWMPPlayer::get_uiMode から取得した BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
IWMPPlayer::put_uiMode で指定する BSTR が "full" または "mini" に設定されている場合、Windows Media Player はマウスカーソルが動くと全画面モードで再生コントロールを表示します。マウスがしばらく動かないと、再生コントロールは非表示になります。IWMPPlayer::put_uiMode で指定する BSTR が "none" に設定されている場合、全画面モードではコントロールは表示されません。
メモ
全画面モードで再生コントロールを表示するには Windows XP オペレーティングシステムが必要です。
全画面モードで再生コントロールが表示されない場合、Windows Media Player は再生が停止すると自動的に全画面モードを終了します。
put_fullScreen メソッドは、ビデオコンテンツが全画面モードで再生されるかどうかを示す値を設定します。
| bFullScreen | VARIANT_BOOL | in | ビデオコンテンツが全画面モードで再生されるかどうかを示す VARIANT_BOOL。既定値は FALSE です。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
Windows Media Player コントロールを埋め込む際に全画面モードが正しく動作するためには、ビデオ表示領域の高さと幅が少なくとも 1 ピクセルなければなりません。IWMPPlayer::put_uiMode で指定する BSTR が "mini" または "full" に設定されている場合、ユーザーインターフェイスに加えてビデオ表示領域を確保するために、コントロール自体の高さが 65 ピクセル以上でなければなりません。
IWMPPlayer::put_uiMode で指定する BSTR が "invisible" に設定されている場合、IWMPPlayer::get_fullScreen で VARIANT_BOOL を TRUE に指定するとエラーが発生し、コントロールの動作には影響しません。
全画面再生中、IWMPPlayer::get_enableContextMenu から取得した VARIANT_BOOL が FALSE で、かつ IWMPPlayer::get_uiMode から取得した BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
IWMPPlayer::put_uiMode で指定する BSTR が "full" または "mini" に設定されている場合、Windows Media Player はマウスカーソルが動くと全画面モードで再生コントロールを表示します。マウスがしばらく動かないと、再生コントロールは非表示になります。IWMPPlayer::put_uiMode で指定する BSTR が "none" に設定されている場合、全画面モードではコントロールは表示されません。
メモ
全画面モードで再生コントロールを表示するには Windows XP オペレーティングシステムが必要です。
全画面モードで再生コントロールが表示されない場合、Windows Media Player は再生が停止すると自動的に全画面モードを終了します。
get_enableContextMenu メソッドは、マウスの右ボタンをクリックしたときに表示されるコンテキストメニューを有効にするかどうかを示す値を取得します。
| pbEnableContextMenu | VARIANT_BOOL* | inout | コンテキストメニューを有効にするかどうかを示す VARIANT_BOOL へのポインター。既定値は TRUE です。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
全画面再生中、get_enableContextMenu で取得した VARIANT_BOOL が FALSE で、かつ IWMPPlayer::get_uiMode で取得した BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
Windows Media Player 10 Mobile: このメソッドは常に FALSE に設定された VARIANT_BOOL を取得します。
put_enableContextMenu メソッドは、マウスの右ボタンをクリックしたときに表示されるコンテキストメニューを有効にするかどうかを示す値を設定します。
| bEnableContextMenu | VARIANT_BOOL | in | コンテキストメニューを有効にするかどうかを示す VARIANT_BOOL。既定値は TRUE です。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
全画面再生中、IWMPPlayer::get_enableContextMenu で取得した VARIANT_BOOL が FALSE で、かつ IWMPPlayer::get_uiMode で取得した BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
Windows Media Player 10 Mobile: このメソッドは常に E_INVALIDARG を返します。
put_uiMode メソッドは、ユーザーインターフェイスに表示するコントロールを示す値を設定します。
| bstrMode | LPWSTR | in | BSTR。次のいずれかの値を含みます。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、埋め込まれた Windows Media Player の外観を指定します。put_uiMode で指定する BSTR が "none"、"mini"、または "full" に設定されている場合、ビデオクリップやオーディオの視覚エフェクトを表示するためのウィンドウが存在します。mini または full モードでは、OBJECT タグの height 属性を 40 に設定することでこのウィンドウを非表示にできます。これは下端から測定され、ユーザーインターフェイスのコントロール部分は表示されたままになります。埋め込みインターフェイスが不要な場合は、width 属性と height 属性の両方を 0 に設定します。
put_uiMode で指定する BSTR が "invisible" に設定されている場合、ユーザーインターフェイスは表示されませんが、width と height で指定されたスペースはページ上に確保されたままになります。これは、UI モードが変わってもページレイアウトを維持するのに役立ちます。さらに、確保されたスペースは透明なので、コントロールの背後に重ねられた要素はすべて表示されます。
put_uiMode で指定する BSTR が "full" または "mini" に設定されている場合、Windows Media Player は全画面モードで再生コントロールを表示します。put_uiMode で指定する BSTR が "none" に設定されている場合、全画面モードではコントロールは表示されません。
ウィンドウが表示されていてオーディオコンテンツが再生されている場合、表示される視覚エフェクトは Windows Media Player で最後に使用されたものになります。
IWMPRemoteMediaServices を実装する C++ プログラムで put_uiMode に指定する BSTR が "custom" に設定されている場合、IWMPRemoteMediaServices::GetCustomUIMode で示されるスキンファイルが表示されます。
全画面再生中、IWMPPlayer::get_enableContextMenu から取得した VARIANT_BOOL が FALSE で、かつ IWMPPlayer::get_uiMode から取得した BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
Windows Media Player 10 Mobile: このメソッドは "none" または "full" に設定された BSTR のみを指定します。スマートフォンデバイスでは、uiMode を "full" に設定すると、再生ステータスとカウンターのみが表示されます。
get_uiMode メソッドは、ユーザーインターフェイスに表示するコントロールを示す値を取得します。
| pbstrMode | LPWSTR* | inout | 次のいずれかの値を含む BSTR へのポインター。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、埋め込まれた Windows Media Player の外観を取得します。get_uiMode から取得した BSTR が "none"、"mini"、または "full" の場合、ビデオクリップやオーディオの視覚エフェクトを表示するためのウィンドウが存在します。mini または full モードでは、OBJECT タグの height 属性を 40 に設定することでこのウィンドウを非表示にできます。これは下端から測定され、ユーザーインターフェイスのコントロール部分は表示されたままになります。埋め込みインターフェイスが不要な場合は、width 属性と height 属性の両方を 0 に設定します。
get_uiMode から取得した BSTR が "invisible" の場合、ユーザーインターフェイスは表示されませんが、width と height で指定されたスペースはページ上に確保されたままになります。これは、UI モードが変わってもページレイアウトを維持するのに役立ちます。さらに、確保されたスペースは透明なので、コントロールの背後に重ねられた要素はすべて表示されます。
get_uiMode から取得した BSTR が "full" または "mini" の場合、Windows Media Player は全画面モードで再生コントロールを表示します。get_uiMode から取得した BSTR が "none" の場合、全画面モードではコントロールは表示されません。
ウィンドウが表示されていてオーディオコンテンツが再生されている場合、表示される視覚エフェクトは Windows Media Player で最後に使用されたものになります。
IWMPRemoteMediaServices を実装する C++ プログラムで get_uiMode から取得した BSTR が "custom" の場合、IWMPRemoteMediaServices::GetCustomUIMode で示されるスキンファイルが表示されます。
全画面再生中、IWMPPlayer::get_enableContextMenu から受け取った VARIANT_BOOL が FALSE で、かつ get_uiMode から受け取った BSTR が "none" の場合、Windows Media Player はマウスカーソルを非表示にします。
Windows Media Player 10 Mobile: このメソッドは "none" または "full" に設定された BSTR のみを取得します。スマートフォンデバイスでは、uiMode が "full" に設定されている場合、再生ステータスとカウンターのみが表示されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPPlayer "{6BF52A4F-394A-11D3-B153-00C04F79FAA6}" #usecom global IWMPPlayer IID_IWMPPlayer "{}" #comfunc global IWMPPlayer_get_enabled 28 var #comfunc global IWMPPlayer_put_enabled 29 int #comfunc global IWMPPlayer_get_fullScreen 30 var #comfunc global IWMPPlayer_put_fullScreen 31 int #comfunc global IWMPPlayer_get_enableContextMenu 32 var #comfunc global IWMPPlayer_put_enableContextMenu 33 int #comfunc global IWMPPlayer_put_uiMode 34 wstr #comfunc global IWMPPlayer_get_uiMode 35 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWMPPlayer "{6BF52A4F-394A-11D3-B153-00C04F79FAA6}" #usecom global IWMPPlayer IID_IWMPPlayer "{}" #comfunc global IWMPPlayer_get_enabled 28 sptr #comfunc global IWMPPlayer_put_enabled 29 int #comfunc global IWMPPlayer_get_fullScreen 30 sptr #comfunc global IWMPPlayer_put_fullScreen 31 int #comfunc global IWMPPlayer_get_enableContextMenu 32 sptr #comfunc global IWMPPlayer_put_enableContextMenu 33 int #comfunc global IWMPPlayer_put_uiMode 34 wstr #comfunc global IWMPPlayer_get_uiMode 35 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。





