次の方法で共有


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

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

IAMCopyCaptureFileProgress インターフェイスは、ICaptureGraphBuilder2::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++
CProgress オブジェクト { CProgress Prog; // pBuilder が初期化された ICaptureGraphBuilder2 ポインターであると仮定します。
    hr = pBuilder->CopyCaptureFile(szCaptureFile, szDestFile, TRUE, static_cast

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー strmif.h (Dshow.h を含む)

関連項目

インターフェイス