CoRegisterDeviceCatalog 関数 (combaseapi.h)

ダウンロードした DLL が実行中のプロセス内に Media Foundation Transform (MFT) デバイス カタログ インターフェイスを登録して、マーシャリング コードがそれらのインターフェイスをマーシャリングできるようにします。

構文

HRESULT CoRegisterDeviceCatalog(
  PCWSTR                   deviceInstanceId,
  CO_DEVICE_CATALOG_COOKIE *cookie
);

パラメーター

deviceInstanceId

型: _In_ PCWSTR

登録するデバイスのインスタンス識別子を含む null で終わる文字列。

cookie

型: _Out_ CO_DEVICE_CATALOG_COOKIE*

CO_DEVICE_CATALOG_COOKIEのインスタンスを返します。 この値を使用すると、 CoRevokeDeviceCatalog を使用してデバイス カタログを取り消すことができます。

戻り値

この関数は、E_INVALIDARG、 E_OUTOFMEMORYS_OKの標準戻り値 返すことができます。

解説

std::vector<CO_DEVICE_CATALOG_COOKIE> g_deviceCatalogsCookies;

HRESULT MFStartup(ULONG Version, DWORD dwFlags)
{
    // current MFStartup code elided.
    std::wstring devices{ /* set of device IDs of interest */ };
    for (const auto& device : devices)
    {
        CO_DEVICE_CATALOG_COOKIE cookie{};
        RETURN_IF_FAILED(CoRegisterDeviceCatalog(device.c_str(), &cookie));
        g_deviceCatalogsCookies.push_back(cookie);
    }

    return S_OK;
}

HRESULT STDMETHODCALLTYPE MFShutdown()
{
    // current MFShutdown code elided
    for (auto catalogCookie : g_deviceCatalogsCookies)
    {
        CoRevokeDeviceCatalog(catalogCookie);
    }

    return S_OK;
}

要件

   
サポートされている最小のクライアント Windows 10バージョン 2004 (10.0;ビルド 19041)
サポートされている最小のサーバー Windows Server バージョン 2004 (10.0;ビルド 19041)
対象プラットフォーム Windows
ヘッダー combaseapi.h (Objbase.h を含む)
Library Ole32.lib
[DLL] Ole32.dll

関連項目