coRegisterDeviceCatalog 函数 (combaseapi.h)

允许下载的 DLL 在其运行过程中注册其媒体基础转换 (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_INVALIDARGE_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

另请参阅