ICaptureGraphBuilder2::AllocCapFile メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
メソッドは AllocCapFile
、キャプチャ ファイルを指定したサイズに事前割り当てします。 最良の結果を得るには、常に、キャプチャ データのサイズよりも大きい、最適化された事前割り当て済みのキャプチャ ファイルにキャプチャします。
構文
HRESULT AllocCapFile(
[in] LPCOLESTR lpstr,
[in] DWORDLONG dwlSize
);
パラメーター
[in] lpstr
作成またはサイズ変更するファイルの名前を含むワイド文字列へのポインター。
[in] dwlSize
割り当てるファイルのサイズ (バイト単位)。
戻り値
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
ファイルが読み取り専用の場合、このメソッドは失敗します。
できるだけ多くの領域を割り当てることが最善です。理想的には、必要以上です。 ただし、これにより、比較的少ないデータを含む非常に大きなファイルが生成される可能性があります。 たとえば、1 ギガバイト (GB) のキャプチャ ファイルには、数メガバイトのキャプチャビデオが含まれている場合があります。 データを新しいファイルにコピーするには、 ICaptureGraphBuilder2::CopyCaptureFile メソッドを使用します。 このメソッドは、データのみをコピーし、元のファイルの空の部分を無視します。
このメソッドを使用してファイルを事前割り当てする場合は、ファイル ライター フィルターで値 0 を指定して IFileSinkFilter2::SetMode を呼び出します。 フィルターが AM_FILE_OVERWRITE に設定されている場合、事前割り当て済みファイルが削除されます。 一部のファイル ライター フィルターではモード 0 がサポートされないことに注意してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |