Função CoRegisterDeviceCatalog (combaseapi.h)

Permite que uma DLL baixada registre suas interfaces de catálogo de dispositivos MFT (Media Foundation Transform) em seu processo de execução para que o código de marshaling possa realizar marshaling dessas interfaces.

Sintaxe

HRESULT CoRegisterDeviceCatalog(
  PCWSTR                   deviceInstanceId,
  CO_DEVICE_CATALOG_COOKIE *cookie
);

Parâmetros

deviceInstanceId

Tipo: _In_ PCWSTR

Uma cadeia de caracteres terminada em nulo que contém o identificador de instância do dispositivo a ser registrado.

cookie

Tipo: _Out_ CO_DEVICE_CATALOG_COOKIE*

Retorna uma instância de CO_DEVICE_CATALOG_COOKIE. Você pode usar esse valor para revogar o catálogo de dispositivos usando CoRevokeDeviceCatalog.

Valor retornado

Essa função pode retornar os valores de retorno padrão E_INVALIDARG, E_OUTOFMEMORY e S_OK.

Comentários

Exemplos

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;
}

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 2004 (10.0; Build 19041)
Servidor mínimo com suporte Windows Server, versão 2004 (10.0; Build 19041)
Plataforma de Destino Windows
Cabeçalho combaseapi.h (inclua Objbase.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também