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

IAMVfwCompressDialogs

COM
IIDd8d715a3-6e5e-11d0-b3f0-00aa003761c5継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IAMVfwCompressDialogs インターフェイスは、Video for Windows (VFW) コーデックが提供するダイアログ ボックスを表示します。

メソッド 4

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

vtbl 3 HRESULT ShowDialog(INT iDialog, HWND hwnd)

ShowDialog メソッドは、指定されたダイアログ ボックスを表示します。

iDialogINTin表示するダイアログ ボックス。これは VfwCompressDialogs 列挙型のメンバーです。
hwndHWNDinダイアログ ボックスの親ウィンドウのハンドル。

戻り値

インターフェイスの実装に依存する HRESULT 値を返します。

解説(Remarks)

このメソッドは、ドライバーがストリーミング中、または別のダイアログ ボックスを表示中にダイアログ ボックスの表示を要求されると、エラーを返します。ドライバーがダイアログ ボックスを表示している間は、フィルターをストリーミング (一時停止または実行) できません。

IAMVfwCompressDialogs::ShowDialog は、Video for Windows のビデオ圧縮マネージャー (VCM) 関数である ICConfigureICAboutICQueryConfigureICQueryAbout を呼び出して、適切なダイアログ ボックスを表示したり、ダイアログ ボックスが存在するかどうかを判断したりします。

VfwCompressDialogs 列挙型の VfwCompressDialog_QueryConfig メンバーと VfwCompressDialog_QueryAbout メンバーは、構成ダイアログまたはバージョン情報ダイアログが利用可能かどうかを示します。これらのフラグのいずれかを渡すと、フィルターはダイアログが存在する場合は S_OK を、存在しない場合は S_FALSE を返します。ダイアログが利用可能な場合は、ShowDialog を VfwCompressDialog_Config または VfwCompressDialog_About の値で呼び出してダイアログを表示します。

vtbl 4 HRESULT GetState(void* pState, INT* pcbState)

GetState メソッドは、現在使用されている VCM コーデックの現在の構成設定を取得します。

pStatevoid*outVCM コーデックの状態。
pcbStateINT*inout状態のサイズへのポインター。

戻り値

戻り値は、各ドライバー内の実装によって異なります。

解説(Remarks)

このメソッドは ICGetState マクロを呼び出します。

vtbl 5 HRESULT SetState(void* pState, INT cbState)

SetState メソッドは、VCM コーデックの構成を設定します。

pStatevoid*inVCM コーデックの状態。
cbStateINTin状態のサイズ。

戻り値

戻り値は、各ドライバー内の実装によって異なります。

解説(Remarks)

このメソッドは ICSetState マクロを呼び出します。このマクロは、ビデオ圧縮ドライバーに対してコンプレッサーの状態を設定するよう通知します。

vtbl 6 HRESULT SendDriverMessage(INT uMsg, INT dw1, INT dw2)

SendDriverMessage メソッドは、ドライバー固有のメッセージを送信します。(IAMVfwCompressDialogs.SendDriverMessage)

uMsgINTinドライバーに送信するメッセージ。
dw1INTinメッセージ データ。
dw2INTinメッセージ データ。

戻り値

戻り値は、各ドライバー内の実装によって異なります。

解説(Remarks)

このメソッドを使用する必要は決してないはずです。このメソッドは、任意のプライベート メッセージをビデオ コンプレッサー (コーデック) に送信できます。任意のメッセージに対する動作は未定義である可能性があります。このメソッドの使用は自己責任で行ってください。

このメソッドは、Video for Windows のビデオ圧縮マネージャー (VCM) の ICSendMessage 関数を呼び出してメッセージを送信します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAMVfwCompressDialogs "{D8D715A3-6E5E-11D0-B3F0-00AA003761C5}"
#usecom global IAMVfwCompressDialogs IID_IAMVfwCompressDialogs "{}"
#comfunc global IAMVfwCompressDialogs_ShowDialog         3 int,sptr
#comfunc global IAMVfwCompressDialogs_GetState           4 sptr,var
#comfunc global IAMVfwCompressDialogs_SetState           5 sptr,int
#comfunc global IAMVfwCompressDialogs_SendDriverMessage  6 int,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。