IWMPUserEventSink
COM公式ドキュメント
IWMPUserEventSink インターフェイスは、カスタムビデオプレゼンターからのイベント通知を受け取ります。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
NotifyUserEvent メソッドは、アプリケーションが Enhanced Video Renderer (EVR) に提供したカスタムビデオプレゼンターによって生成されたイベントを、アプリケーションに通知します。
| EventCode | INT | in | アプリケーションとカスタムビデオレンダラーにのみ意味を持つイベントコード。イベントコードは、wmpservices.h で定義されている WMPUE_EC_USER 以上の値でなければなりません。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示す値が含まれますが、これらに限定されません。
| 値 | 説明 |
|---|---|
| S_OK | メソッドは成功しました。 |
解説(Remarks)
Windows Media Player コントロールを埋め込むアプリケーションは、IWMPVideoRenderConfig::put_presenterActivate を呼び出すことで、EVR 用のカスタムビデオレンダラーを提供できます。カスタムビデオレンダラーは、実行中に IMediaEventSink::Notify を呼び出して EVR にイベントを通知できます。カスタムビデオレンダラーが指定したイベントコードが WMPUE_EC_USER 以上である場合、EVR は NotifyUserEvent を呼び出してそのイベント通知をアプリケーションに渡します。
WMPUE_EC_USER の定義は、evcode.h で定義されている EC_USER の定義に依存します。
Windows Media Player 10 Mobile: このメソッドはサポートされていません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPUserEventSink "{CFCCFA72-C343-48C3-A2DE-B7A4402E39F2}"
#usecom global IWMPUserEventSink IID_IWMPUserEventSink "{}"
#comfunc global IWMPUserEventSink_NotifyUserEvent 3 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。