IAMCopyCaptureFileProgress 介面 (strmif.h)

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine音訊/視訊擷取,而不是 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)

另請參閱

介面