IAMCopyCaptureFileProgress 接口 (strmif.h)

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

IAMCopyCaptureFileProgress 接口是 ICaptureGraphBuilder2::CopyCaptureFile 方法使用的回调接口。

由于 CopyCaptureFile 方法可能需要很长时间才能完成,因此应用程序可以实现此接口来接收有关复制操作进度的定期通知。 如果应用程序不需要接收此信息,则无需实现接口。

遗产

IAMCopyCaptureFileProgress 接口继承自 IUnknown 接口。 IAMCopyCaptureFileProgress 也有以下类型的成员:

方法

IAMCopyCaptureFileProgress 接口具有这些方法。

 
IAMCopyCaptureFileProgress::P rogress

在复制文件时,ICaptureGraphBuilder2::CopyCaptureFile 方法定期调用 Progress 方法。

言论

若要使用此接口,请实现一个继承接口并实现其所有方法的类,包括 IUnknown中的方法。 在应用程序中,创建类的实例并将其传递给 CopyCaptureFile 方法。 无需在类中实现 COM 引用计数,只要保证对象在 CopyCaptureFile 方法返回之前不会被删除。

以下示例演示实现接口的类:

C++
class CProgress : public IAMCopyCaptureFileProgress 
{
public:
    STDMETHODIMP_(ULONG) AddRef() { return 1; }
    STDMETHODIMP_(ULONG) Release() { return 0; }
    STDMETHODIMP QueryInterface(REFIID iid, void **ppv) 
    {
        if  (ppv == NULL) 
        {
            return E_POINTER;
        }
        else if (iid == __uuidof(IUnknown))
        {
            *ppv = static_cast<IUnknown*>(this);
        }
        else if (iid == IID_IAMCopyCaptureFileProgress) 
        {
            *ppv = static_cast<IAMCopyCaptureFileProgress*>(this);
        }
        else
        {
            return E_NOINTERFACE;
        }
        return S_OK;
    }
    STDMETHODIMP Progress(int iPercent) 
    {
        if (iPercent < 0 || iPercent > 100) 
        {
            return E_INVALIDARG;
        }

        TCHAR szMsg[32];
        StringCchPrintf(szMsg, 32, TEXT("Progress: %d%%"), iPercent);
        // Assume g_hwndStatus is a valid HWND.
        SetWindowText(g_hwndStatus, szMsg);  

        return S_OK;
    };
};
以下示例在 CopyCaptureFile 方法中使用此类:
C++
CProgress 对象的作用域 { CProgress Prog; // 假设 pBuilder 是初始化的 ICaptureGraphBuilder2 指针。
    hr = pBuilder->CopyCaptureFile(szCaptureFile、szDestFile、TRUE、static_cast

要求

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

另请参阅

接口