ICaptureGraphBuilder2::AllocCapFile 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 AllocCapFile 将捕获文件预分配为指定大小。 为了获得最佳结果,请始终捕获到大于捕获数据大小的已碎片整理、预先分配的捕获文件。

语法

HRESULT AllocCapFile(
  [in] LPCOLESTR lpstr,
  [in] DWORDLONG dwlSize
);

参数

[in] lpstr

指向宽字符字符串的指针,该字符串包含要创建或调整其大小的文件的名称。

[in] dwlSize

要分配的文件的大小(以字节为单位)。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

如果文件为只读,此方法将失败。

最好分配尽可能多的空间,理想情况下,超出所需的空间。 但是,这可能会导致文件非常大,其中包含相对较少的数据。 例如,1 GB (GB) 捕获文件可能包含几 MB 的捕获视频。 使用 ICaptureGraphBuilder2::CopyCaptureFile 方法将数据复制到新文件中。 该方法仅复制数据,并忽略原始文件的空部分。

如果使用此方法预先分配文件,请在值为 0 的文件编写器筛选器上调用 IFileSinkFilter2::SetMode 。 如果筛选器设置为 AM_FILE_OVERWRITE,则会删除预分配的文件。 请注意,某些文件编写器筛选器不支持模式 0。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

ICaptureGraphBuilder2 接口