Condividi tramite


Funzione CoRegisterDeviceCatalog (combaseapi.h)

Consente a una DLL scaricata di registrare le interfacce del catalogo di dispositivi MFT (Media Foundation Transform) all'interno del processo in esecuzione, in modo che il codice di marshalling sia in grado di effettuare il marshalling di tali interfacce.

Sintassi

HRESULT CoRegisterDeviceCatalog(
  PCWSTR                   deviceInstanceId,
  CO_DEVICE_CATALOG_COOKIE *cookie
);

Parametri

deviceInstanceId

Tipo: _In_ PCWSTR

Stringa con terminazione Null contenente l'identificatore di istanza del dispositivo da registrare.

cookie

Tipo: _Out_ CO_DEVICE_CATALOG_COOKIE*

Restituisce un'istanza di CO_DEVICE_CATALOG_COOKIE. È possibile usare questo valore per revocare il catalogo dispositivi usando CoRevokeDeviceCatalog.

Valore restituito

Questa funzione può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e S_OK.

Commenti

Esempi

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

Requisiti

   
Client minimo supportato Windows 10 versione 2004 (10.0; Build 19041)
Server minimo supportato Windows Server, versione 2004 (10.0; Build 19041)
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche