IWMPEffects
COM公式ドキュメント
IWMPEffects インターフェイス
メソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Render メソッドはビジュアライゼーションを描画します。
| pLevels | TimedLevel* | inout | TimedLevel 構造体へのポインター。 |
| hdc | HDC | in | デバイスコンテキストへのハンドルを指定します。 |
| prc | RECT* | inout | ビジュアライゼーションを描画する矩形を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドによってデバイスコンテキストは正規化されます。
MediaInfo メソッドは、チャネルとサンプルレートのデータをビジュアライゼーションに送信します。
| lChannelCount | INT | in | チャネル数を格納する Long 整数(モノラルの場合は 1、ステレオの場合は 2)。 |
| lSampleRate | INT | in | サンプルレートをヘルツ(Hz)単位で格納する Long 整数。たとえば、値 22500 は 22.5KHz のレートを指定します。 |
| bstrTitle | LPWSTR | in | タイトルを指定する String。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
GetCapabilities メソッドはビジュアライゼーションの機能を取得します。
| pdwCapabilities | DWORD* | inout | 機能を格納する DWORD。 現在の値は次のとおりです。
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。
GetTitle メソッドはビジュアライゼーションの表示タイトルを取得します。
| bstrTitle | LPWSTR* | inout | タイトルを格納する String。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドを使用すると、ビジュアライゼーション自体が表示されるときに、アプリケーションがユーザーにタイトルを表示できます。タイトルはできるだけ一意にする必要があります。Windows Media Player に含まれるビジュアライゼーションのタイトルは、ユーザーの混乱を招くため使用しないでください。
GetPresetTitle メソッドは現在のプリセットのタイトルを取得します。
| nPreset | INT | in | Long のプリセット番号。 |
| bstrPresetTitle | LPWSTR* | inout | BSTR のプリセットタイトル。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
指定されたプリセットのタイトルを取得するために Windows Media Player から呼び出されます。
GetPresetCount メソッドはプリセット数を取得します。
| pnPresetCount | INT* | inout | プリセット数を指定する Long 値。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
ビジュアライゼーションが保持するプリセットの数を取得するために Windows Media Player から呼び出されます。
SetCurrentPreset メソッドは、Windows Media Player から現在のプリセットを取得し、それをビジュアライゼーションに設定します。
| nPreset | INT | in | 新しいプリセットのインデックスを指定する Long 値。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
これは、指定されたプリセットを表示するよう要求するために Windows Media Player から呼び出されます。
GetCurrentPreset メソッドは、ビジュアライゼーションから現在のプリセットを番号で取得し、それを Windows Media Player に提供します。
| pnPreset | INT* | inout | 現在のプリセットを番号で指定する Long 値。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
DisplayPropertyPage メソッドは、ビジュアライゼーションのプロパティページが存在する場合、それを表示します。
| hwndOwner | HWND | in | 表示されるダイアログへのハンドル。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
ビジュアライゼーションの値を調整するためのプロパティページをユーザーに表示したい場合は、このメソッドを実装してください。
GoFullscreen メソッドは、ビジュアライゼーションに全画面モードへ切り替えるよう指示します。
| fFullScreen | BOOL | in | 全画面モードに切り替えるかどうかを示す Boolean。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、ビジュアライゼーションが全画面に移行するとき、または全画面を終了するときに呼び出されます。全画面機能フラグが GetCapabilities を通じて返されない場合、ビジュアライゼーションが全画面に移行したり全画面で描画したりするよう要求されることはありません。このメソッドは RenderFullScreen が呼び出される前に呼び出されます。
このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。
RenderFullScreen メソッドは、ビジュアライゼーションを全画面モードで描画します。
| pLevels | TimedLevel* | inout | TimedLevel 構造体へのポインター。 |
戻り値
メソッドが成功した場合、実装は S_OK を返す必要があります。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
RenderFullScreen を呼び出す前に、GoFullscreen メソッドを True の値で呼び出す必要があります。
ユーザーは Alt キーと Enter キーを同時に押すことで、全画面モードに入ったり出たりできます。
このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。
実装がこのメソッドからエラーを返した場合、ビジュアライゼーションに全画面モードから抜けるよう要求するために GoFullscreen(False) が呼び出されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPEffects "{D3984C13-C3CB-48E2-8BE5-5168340B4F35}" #usecom global IWMPEffects IID_IWMPEffects "{}" #comfunc global IWMPEffects_Render 3 var,sptr,var #comfunc global IWMPEffects_MediaInfo 4 int,int,wstr #comfunc global IWMPEffects_GetCapabilities 5 var #comfunc global IWMPEffects_GetTitle 6 var #comfunc global IWMPEffects_GetPresetTitle 7 int,var #comfunc global IWMPEffects_GetPresetCount 8 var #comfunc global IWMPEffects_SetCurrentPreset 9 int #comfunc global IWMPEffects_GetCurrentPreset 10 var #comfunc global IWMPEffects_DisplayPropertyPage 11 sptr #comfunc global IWMPEffects_GoFullscreen 12 int #comfunc global IWMPEffects_RenderFullScreen 13 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMPEffects "{D3984C13-C3CB-48E2-8BE5-5168340B4F35}" #usecom global IWMPEffects IID_IWMPEffects "{}" #comfunc global IWMPEffects_Render 3 sptr,sptr,sptr #comfunc global IWMPEffects_MediaInfo 4 int,int,wstr #comfunc global IWMPEffects_GetCapabilities 5 sptr #comfunc global IWMPEffects_GetTitle 6 sptr #comfunc global IWMPEffects_GetPresetTitle 7 int,sptr #comfunc global IWMPEffects_GetPresetCount 8 sptr #comfunc global IWMPEffects_SetCurrentPreset 9 int #comfunc global IWMPEffects_GetCurrentPreset 10 sptr #comfunc global IWMPEffects_DisplayPropertyPage 11 sptr #comfunc global IWMPEffects_GoFullscreen 12 int #comfunc global IWMPEffects_RenderFullScreen 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。