IStreamBufferConfigure
COM公式ドキュメント
IStreamBufferConfigure インターフェイスは、各種ストリームバッファーオブジェクトが使用するバッキングファイルの場所、数、およびサイズを構成します。このインターフェイスは StreamBufferConfig オブジェクトによって公開されます。このインターフェイスの Set メソッドを呼び出す前に、新しい設定を保持するレジストリキーを指定する必要があります。詳細については、IStreamBufferInitialize::SetHKEY を参照してください。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IStreamBufferConfigure)。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SetDirectory メソッドは、バッキングファイルの保存先ディレクトリを設定します。
| pszDirectoryName | LPWSTR | in | 完全修飾ディレクトリ名を格納した null 終端文字列へのポインター。指定したディレクトリが存在しない場合は作成されます。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| StreamBufferConfig オブジェクトが初期化されていません。 | |
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを呼び出す前に、IStreamBufferInitialize::SetHKEY を呼び出して、情報の格納先となるレジストリキーを指定してください。
指定したディレクトリは、バッキングファイルの格納に使用されます。ディレクトリを指定しない場合、ファイルは Temp ディレクトリ内の隠しシステムディレクトリに保存されます。このディレクトリは、Recording オブジェクトが作成するファイルの格納には使用されません。それらのファイルは、IStreamBufferSink::CreateRecorder メソッドで指定したディレクトリに格納されます。
バッキングファイルは隠しシステムファイルとして作成されます。
GetDirectory メソッドは、バッキングファイルの保存先ディレクトリを取得します。
| ppszDirectoryName | LPWSTR* | out | 完全修飾ディレクトリ名を受け取る変数へのポインター。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
呼び出し元は、CoTaskMemFree を呼び出して、返された文字列を解放する必要があります。
SetBackingFileCount メソッドは、バッキングファイルの最大数と最小数を設定します。
| dwMin | DWORD | in | バッキングファイルの最小数を指定します。有効な範囲は 4 から 100 です。 |
| dwMax | DWORD | in | バッキングファイルの最大数を指定します。有効な範囲は 6 から 102 で、値は dwMin より少なくとも 2 大きい必要があります。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| StreamBufferConfig オブジェクトが初期化されていません。 | |
| メソッドは成功しました。 |
解説(Remarks)
リーダーがライターより dwMin 個を超えるファイル分遅れると、ライターは STREAMBUFFER_EC_CONTENT_BECOMING_STALE イベントの送信を開始します。リーダーがライターより dwMax 個を超えるファイル分遅れると、ライターはファイルの上書きを開始し、STREAMBUFFER_EC_STALE_FILE_DELETED イベントを送信します。
このメソッドを呼び出す前に、IStreamBufferInitialize::SetHKEY を呼び出して、情報の格納先となるレジストリキーを指定してください。
GetBackingFileCount メソッドは、バッキングファイルの最大数と最小数を取得します。
| pdwMin | DWORD* | out | バッキングファイルの最小数を受け取る変数へのポインター。 |
| pdwMax | DWORD* | out | バッキングファイルの最大数を受け取る変数へのポインター。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
リーダーがライターより pdwMin 個を超えるファイル分遅れると、ライターは STREAMBUFFER_EC_CONTENT_BECOMING_STALE イベントの送信を開始します。リーダーがライターより pdwMax 個を超えるファイル分遅れると、ライターはファイルの上書きを開始し、STREAMBUFFER_EC_STALE_FILE_DELETED イベントを送信します。
SetBackingFileDuration メソッドは、すべてのバッキングファイルの継続時間を設定します。
| dwSeconds | DWORD | in | ファイルの継続時間を秒単位で指定します。最小値は 15 です。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| StreamBufferConfig オブジェクトが初期化されていません。 | |
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを呼び出す前に、IStreamBufferInitialize::SetHKEY を呼び出して、情報の格納先となるレジストリキーを指定してください。
GetBackingFileDuration メソッドは、各バッキングファイルの継続時間を取得します。
| pdwSeconds | DWORD* | out | ファイルの継続時間を秒単位で受け取る変数へのポインター。 |
戻り値
HRESULT を返します。とりうる値には次の表のものが含まれます。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IStreamBufferConfigure "{CE14DFAE-4098-4AF7-BBF7-D6511F835414}" #usecom global IStreamBufferConfigure IID_IStreamBufferConfigure "{}" #comfunc global IStreamBufferConfigure_SetDirectory 3 wstr #comfunc global IStreamBufferConfigure_GetDirectory 4 var #comfunc global IStreamBufferConfigure_SetBackingFileCount 5 int,int #comfunc global IStreamBufferConfigure_GetBackingFileCount 6 var,var #comfunc global IStreamBufferConfigure_SetBackingFileDuration 7 int #comfunc global IStreamBufferConfigure_GetBackingFileDuration 8 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IStreamBufferConfigure "{CE14DFAE-4098-4AF7-BBF7-D6511F835414}" #usecom global IStreamBufferConfigure IID_IStreamBufferConfigure "{}" #comfunc global IStreamBufferConfigure_SetDirectory 3 wstr #comfunc global IStreamBufferConfigure_GetDirectory 4 sptr #comfunc global IStreamBufferConfigure_SetBackingFileCount 5 int,int #comfunc global IStreamBufferConfigure_GetBackingFileCount 6 sptr,sptr #comfunc global IStreamBufferConfigure_SetBackingFileDuration 7 int #comfunc global IStreamBufferConfigure_GetBackingFileDuration 8 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。