Freigeben über


IAMCopyCaptureFileProgress-Schnittstelle (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

Die IAMCopyCaptureFileProgress-Schnittstelle ist eine Rückrufschnittstelle, die von der ICaptureGraphBuilder2::CopyCaptureFile-Methode verwendet wird.

Da die CopyCaptureFile- Methode lange dauern kann, kann eine Anwendung diese Schnittstelle implementieren, um regelmäßige Benachrichtigungen über den Fortschritt des Kopiervorgangs zu erhalten. Wenn die Anwendung diese Informationen nicht empfangen muss, müssen Sie die Schnittstelle nicht implementieren.

Erbschaft

Die IAMCopyCaptureFileProgress Schnittstelle erbt von der IUnknown Schnittstelle. IAMCopyCaptureFileProgress hat auch folgende Typen von Membern:

Methodik

Die IAMCopyCaptureFileProgress Schnittstelle hat diese Methoden.

 
IAMCopyCaptureFileProgress::P rogress

Die Progress-Methode wird regelmäßig von der ICaptureGraphBuilder2::CopyCaptureFile-Methode aufgerufen, während sie die Datei kopiert.

Bemerkungen

Um diese Schnittstelle zu verwenden, implementieren Sie eine Klasse, die die Schnittstelle erbt, und implementiert alle methoden, einschließlich der Methoden in IUnknown. Erstellen Sie in Ihrer Anwendung eine Instanz der Klasse, und übergeben Sie sie an die CopyCaptureFile--Methode. Sie müssen keine COM-Verweiszählung in Ihrer Klasse implementieren, solange das Objekt garantiert nicht gelöscht werden soll, bevor die CopyCaptureFile--Methode zurückgegeben wird.

Das folgende Beispiel zeigt eine Klasse, die die Schnittstelle implementiert:

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;
    };
};
Im folgenden Beispiel wird diese Klasse in der CopyCaptureFile--Methode verwendet:
C++
Scope for CProgress object { CProgress Prog; // Assume pBuilder is an initialized ICaptureGraphBuilder2 pointer.
    hr = pBuilder->CopyCaptureFile(szCaptureFile, szDestFile, TRUE, static_cast 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- strmif.h (include Dshow.h)

Siehe auch

Schnittstellen