次の方法で共有


IAMCopyCaptureFileProgress インターフェイス (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

インターフェイスは IAMCopyCaptureFileProgressICaptureGraphBuilder2::CopyCaptureFile メソッドによって使用されるコールバック インターフェイスです。

CopyCaptureFile メソッドの完了には時間がかかる場合があるため、アプリケーションはこのインターフェイスを実装して、コピー操作の進行状況に関する定期的な通知を受け取ることができます。 アプリケーションがこの情報を受け取る必要がない場合は、 インターフェイスを実装する必要はありません。

継承

IAMCopyCaptureFileProgress インターフェイスは、IUnknown インターフェイスから継承します。 IAMCopyCaptureFileProgress には、次の種類のメンバーもあります。

メソッド

IAMCopyCaptureFileProgress インターフェイスには、これらのメソッドがあります。

 
IAMCopyCaptureFileProgress::P rogress

Progress メソッドは、ファイルのコピー中に ICaptureGraphBuilder2::CopyCaptureFile メソッドによって定期的に呼び出されます。

注釈

このインターフェイスを使用するには、インターフェイスを継承し、 IUnknown のメソッドを含むすべてのメソッドを実装するクラスを実装します。 アプリケーションで、 クラスのインスタンスを作成し、 それを CopyCaptureFile メソッドに渡します。 CopyCaptureFile メソッドが返される前にオブジェクトが削除されないことが保証されている限り、クラスに COM 参照カウントを実装する必要はありません。

次の例は、 インターフェイスを実装するクラスを示しています。

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++
// Scope for CProgress object
{
    CProgress Prog;
    // Assume pBuilder is an initialized ICaptureGraphBuilder2 pointer.
    hr = pBuilder->CopyCaptureFile(szCaptureFile, szDestFile, TRUE,
        static_cast<IAMCopyCaptureFileProgress*>(&Prog));
}

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)

関連項目

インターフェイス