ICaptureGraphBuilder2::CopyCaptureFile 方法 (strmif.h)

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

方法 CopyCaptureFile 从捕获文件复制有效的媒体数据。

语法

HRESULT CopyCaptureFile(
  [in] LPOLESTR                   lpwstrOld,
  [in] LPOLESTR                   lpwstrNew,
  [in] int                        fAllowEscAbort,
  [in] IAMCopyCaptureFileProgress *pCallback
);

参数

[in] lpwstrOld

指向包含源文件名称的宽字符字符串的指针。

[in] lpwstrNew

指向包含目标文件名的宽字符字符串的指针。 将有效数据复制到此文件。

[in] fAllowEscAbort

指定按 ESC 键是否取消复制操作的布尔值。 如果值为 TRUE ,并且用户按 ESC 键,则操作将停止。 如果值为 FALSE,该方法将忽略 ESC 键。

[in] pCallback

指向用于显示进度信息的 IAMCopyCaptureFileProgress 接口的指针,或 为 NULL。 有关更多信息,请参见备注。

返回值

返回 HRESULT 值。 可能的值包括以下值。

返回代码 说明
S_FALSE
用户在操作完成之前取消了该操作。
S_OK
成功。
E_FAIL
失败。
E_INVALIDARG
无法打开源文件或目标文件。
E_OUTOFMEMORY
内存不足。
E_POINTER
NULL 指针参数。

备注

通常,将首先捕获到预分配的大型文件。 此方法仅将有效数据复制到新文件。 因此,新文件可能比原始文件小得多。

源文件和目标文件必须是 AVI 文件。 不支持其他文件类型。

若要显示复制操作的进度,请实现 IAMCopyCaptureFileProgress 接口,并在 pCallback 参数中传递指向 接口的指针。 如果 pCallback 为非 NULL,此方法会定期调用 IAMCopyCaptureFileProgress::P rogress 方法,其整数介于 0 和 100 之间,指定完成百分比。

要求

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

另请参阅

错误和成功代码

ICaptureGraphBuilder2 接口