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

IWMPEffects

COM
IIDd3984c13-c3cb-48e2-8be5-5168340b4f35継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMPEffects インターフェイス

メソッド 11

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

vtbl 3 HRESULT Render(TimedLevel* pLevels, HDC hdc, RECT* prc)

Render メソッドはビジュアライゼーションを描画します。

pLevelsTimedLevel*inoutTimedLevel 構造体へのポインター。
hdcHDCinデバイスコンテキストへのハンドルを指定します。
prcRECT*inoutビジュアライゼーションを描画する矩形を指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドによってデバイスコンテキストは正規化されます。

vtbl 4 HRESULT MediaInfo(INT lChannelCount, INT lSampleRate, LPWSTR bstrTitle)

MediaInfo メソッドは、チャネルとサンプルレートのデータをビジュアライゼーションに送信します。

lChannelCountINTinチャネル数を格納する Long 整数(モノラルの場合は 1、ステレオの場合は 2)。
lSampleRateINTinサンプルレートをヘルツ(Hz)単位で格納する Long 整数。たとえば、値 22500 は 22.5KHz のレートを指定します。
bstrTitleLPWSTRinタイトルを指定する String

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT GetCapabilities(DWORD* pdwCapabilities)

GetCapabilities メソッドはビジュアライゼーションの機能を取得します。

pdwCapabilitiesDWORD*inout

機能を格納する DWORD

現在の値は次のとおりです。

説明
EFFECT_CANGOFULLSCREEN = 0x00000001; ビジュアライゼーションは全画面描画が可能です。
EFFECT_HASPROPERTYPAGE = 0x00000002; ビジュアライゼーションにはプロパティページがあります。
EFFECT_VARIABLEFREQSTEP = 0x00000004; ビジュアライゼーションは可変サイズのステップで周波数データを使用します。このビットが設定されている場合、ステップサイズはメディアのサンプリング周波数を BUFFER_SIZE で割った値に基づきます。このビットが設定されておらず、低い周波数でサンプリングされたメディアを再生した場合、上位のセルは空になります。たとえば、8KHz でサンプリングされたファイルを再生し、このビットが設定されていない場合、周波数配列の上半分(8KHz から 22KHz まで)は空になります。このビットが設定されていて 8KHz でサンプリングされたファイルを再生した場合、周波数配列は 20Hz から 8KHz までの範囲を BUFFER_SIZE ステップで表します。
EFFECT_WINDOWED_ONLY = 0x00000008 ビジュアライゼーションはウィンドウモードでのみ描画します。
EFFECT2_FULLSCREENEXCLUSIVE = 0x00000010 ビジュアライゼーションは全画面描画時に排他モードを使用します。プレーヤーはウィンドウを画面いっぱいにリサイズしません。ビジュアライゼーションはトップレベルウィンドウを作成し、解像度の切り替えを処理する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。

vtbl 6 HRESULT GetTitle(LPWSTR* bstrTitle)

GetTitle メソッドはビジュアライゼーションの表示タイトルを取得します。

bstrTitleLPWSTR*inoutタイトルを格納する String

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドを使用すると、ビジュアライゼーション自体が表示されるときに、アプリケーションがユーザーにタイトルを表示できます。タイトルはできるだけ一意にする必要があります。Windows Media Player に含まれるビジュアライゼーションのタイトルは、ユーザーの混乱を招くため使用しないでください。

vtbl 7 HRESULT GetPresetTitle(INT nPreset, LPWSTR* bstrPresetTitle)

GetPresetTitle メソッドは現在のプリセットのタイトルを取得します。

nPresetINTinLong のプリセット番号。
bstrPresetTitleLPWSTR*inoutBSTR のプリセットタイトル。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

指定されたプリセットのタイトルを取得するために Windows Media Player から呼び出されます。

vtbl 8 HRESULT GetPresetCount(INT* pnPresetCount)

GetPresetCount メソッドはプリセット数を取得します。

pnPresetCountINT*inoutプリセット数を指定する Long 値。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

ビジュアライゼーションが保持するプリセットの数を取得するために Windows Media Player から呼び出されます。

vtbl 9 HRESULT SetCurrentPreset(INT nPreset)

SetCurrentPreset メソッドは、Windows Media Player から現在のプリセットを取得し、それをビジュアライゼーションに設定します。

nPresetINTin新しいプリセットのインデックスを指定する Long 値。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

これは、指定されたプリセットを表示するよう要求するために Windows Media Player から呼び出されます。

vtbl 10 HRESULT GetCurrentPreset(INT* pnPreset)

GetCurrentPreset メソッドは、ビジュアライゼーションから現在のプリセットを番号で取得し、それを Windows Media Player に提供します。

pnPresetINT*inout現在のプリセットを番号で指定する Long 値。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT DisplayPropertyPage(HWND hwndOwner)

DisplayPropertyPage メソッドは、ビジュアライゼーションのプロパティページが存在する場合、それを表示します。

hwndOwnerHWNDin表示されるダイアログへのハンドル。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

ビジュアライゼーションの値を調整するためのプロパティページをユーザーに表示したい場合は、このメソッドを実装してください。

vtbl 12 HRESULT GoFullscreen(BOOL fFullScreen)

GoFullscreen メソッドは、ビジュアライゼーションに全画面モードへ切り替えるよう指示します。

fFullScreenBOOLin全画面モードに切り替えるかどうかを示す Boolean

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、ビジュアライゼーションが全画面に移行するとき、または全画面を終了するときに呼び出されます。全画面機能フラグが GetCapabilities を通じて返されない場合、ビジュアライゼーションが全画面に移行したり全画面で描画したりするよう要求されることはありません。このメソッドは RenderFullScreen が呼び出される前に呼び出されます。

このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。

vtbl 13 HRESULT RenderFullScreen(TimedLevel* pLevels)

RenderFullScreen メソッドは、ビジュアライゼーションを全画面モードで描画します。

pLevelsTimedLevel*inoutTimedLevel 構造体へのポインター。

戻り値

メソッドが成功した場合、実装は S_OK を返す必要があります。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

RenderFullScreen を呼び出す前に、GoFullscreen メソッドを True の値で呼び出す必要があります。

ユーザーは Alt キーと Enter キーを同時に押すことで、全画面モードに入ったり出たりできます。

このメソッドの既定の実装はビジュアライゼーションウィザードには含まれていません。

実装がこのメソッドからエラーを返した場合、ビジュアライゼーションに全画面モードから抜けるよう要求するために GoFullscreen(False) が呼び出されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。