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 |