Freigeben über


IAMCopyCaptureFileProgress-Schnittstelle (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet 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, ist es nicht erforderlich, die Schnittstelle zu implementieren.

Vererbung

Die IAMCopyCaptureFileProgress-Schnittstelle erbt von der IUnknown-Schnittstelle . IAMCopyCaptureFileProgress verfügt auch über folgende Membertypen:

Methoden

Die IAMCopyCaptureFileProgress-Schnittstelle verfügt über diese Methoden.

 
IAMCopyCaptureFileProgress::P rogress

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

Hinweise

Um diese Schnittstelle zu verwenden, implementieren Sie eine Klasse, die die Schnittstelle erbt und alle ihre Methoden implementiert, einschließlich der Methoden in IUnknown. Erstellen Sie in Ihrer Anwendung eine instance 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 wird, 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<IAMCopyCaptureFileProgress*>(&Prog));
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)

Siehe auch

Schnittstellen