IMSVidStreamBufferRecordingControl
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IMSVidStreamBufferRecordingControl インターフェイスは、Video Control を通じて stream buffer の recording オブジェクトをアプリケーションが管理できるようにします。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidStreamBufferRecordingControl)。
メソッド 8
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_StartTime メソッドは、recording の開始時刻を取得します。
| rtStart | INT* | out | 開始時刻を 1/100 秒単位で受け取る変数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| NULL ポインター引数です。 | |
| メソッドは成功しました。 |
put_StartTime メソッドは、recording の開始時刻を設定します。
| rtStart | INT | in | 開始時刻を 1/100 秒単位で指定します。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| 引数が無効です。 | |
| メソッドは成功しました。 |
get_StopTime メソッドは、recording の停止時刻を取得します。
| rtStop | INT* | out | 停止時刻を 1/100 秒単位で受け取る変数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| NULL ポインター引数です。 | |
| メソッドは成功しました。 |
put_StopTime メソッドは、recording の停止時刻を設定します。
| rtStop | INT | in | 停止時刻を 1/100 秒単位で指定します。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| 引数が無効です。 | |
| メソッドは成功しました。 |
get_RecordingStopped メソッドは、recording が停止したかどうかを問い合わせます。
| phResult | VARIANT_BOOL* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
get_RecordingStarted メソッドは、recording が開始したかどうかを問い合わせます。
| phResult | VARIANT_BOOL* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
get_RecordingType メソッドは、recording の種類 (content recording または reference recording のいずれか) を取得します。
| dwType | RecordingType* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
get_RecordingAttribute メソッドは、このインターフェイスによって制御される stream buffer の Recording オブジェクトを取得します。
| pRecordingAttribute | IUnknown** | out | Recording オブジェクトの IUnknown インターフェイスへのポインターを受け取る変数のアドレス。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次のものがあります。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
呼び出し側は、返された IUnknown ポインターを解放する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMSVidStreamBufferRecordingControl "{160621AA-BBBC-4326-A824-C395AEBC6E74}" #usecom global IMSVidStreamBufferRecordingControl IID_IMSVidStreamBufferRecordingControl "{CAAFDD83-CEFC-4E3D-BA03-175F17A24F91}" #comfunc global IMSVidStreamBufferRecordingControl_get_StartTime 7 var #comfunc global IMSVidStreamBufferRecordingControl_put_StartTime 8 int #comfunc global IMSVidStreamBufferRecordingControl_get_StopTime 9 var #comfunc global IMSVidStreamBufferRecordingControl_put_StopTime 10 int #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingStopped 11 var #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingStarted 12 var #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingType 13 var #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingAttribute 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IMSVidStreamBufferRecordingControl "{160621AA-BBBC-4326-A824-C395AEBC6E74}" #usecom global IMSVidStreamBufferRecordingControl IID_IMSVidStreamBufferRecordingControl "{CAAFDD83-CEFC-4E3D-BA03-175F17A24F91}" #comfunc global IMSVidStreamBufferRecordingControl_get_StartTime 7 sptr #comfunc global IMSVidStreamBufferRecordingControl_put_StartTime 8 int #comfunc global IMSVidStreamBufferRecordingControl_get_StopTime 9 sptr #comfunc global IMSVidStreamBufferRecordingControl_put_StopTime 10 int #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingStopped 11 sptr #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingStarted 12 sptr #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingType 13 sptr #comfunc global IMSVidStreamBufferRecordingControl_get_RecordingAttribute 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。