Поделиться через


Функция 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_OUTOFMEMORY и S_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)
целевая платформа Виндоус
Header combaseapi.h (include Objbase.h)
Library onecore.lib
DLL combase.dll

См. также