Compartilhar via


DllGetClassObject

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função recupera o objeto classe de um manipulador objeto DLL ou objeto aplicativo. DllGetClassObject é chamado de dentro de CoGetClassObject função quando o contexto classe for um DLL.

OLE não fornece essa função. As DLLs que suporte o OLE Component Object Model (COM) deve implementar DllGetClassObject Em manipuladores objeto OLE ou DLL aplicativos.

Syntax

STDAPI DllGetClassObject(
  REFCLSID rclsid,
  REFIID riid,
  LPVOID* ppv
);

Parameters

  • rclsid
    [no] CLSID que irá associar os dados corretos e codificar.
  • riid
    [no] Referência ao identificador da interface que o chamador deve usar para se comunicar com o objeto classe. Normalmente, isso é IID_IClassFactory (definido em cabeçalhos de OLE como o identificador de interface IClassFactory).
  • PPV
    [out] Endereço do ponteiro variável que recebe o ponteiro interface solicitado em riid. Após bem-sucedido retornar *PPV Contém o ponteiro interface solicitada. Se um erro ocorrer, o ponteiro interface é NULL.

Return Value

O padrão oferece suporte a essa função retornar valores E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, bem como o seguinte:

  • S_OK
    O objeto foi recuperado com êxito.
  • CLASS_E_CLASSNOTAVAILABLE
    O DLL não suporte a classe (objeto definição).

Remarks

Se um chamar para o CoGetClassObject função localiza o objeto classe a ser carregado em um DLL, CoGetClassObject exportados do usa o DLL DllGetClassObject função.

Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.

Notas para chamadores

O aplicativo não deve chamar DllGetClassObject diretamente. Quando um objeto é definido em um DLL, CoGetClassObject Chamadas de CoLoadLibrary função para carregar o DLL, que, in TURN, chamadas DllGetClassObject.

Notas para Implementers

Você precisa implementar DllGetClassObject In (e exportá-lo) DLLs que suporte o OLE Component Object Model.

Example

Este é um exemplo (no C++) de uma implementação de DllGetClassObject. Nesse exemplo, DllGetClassObject Cria um objeto classe e chamadas seu Falha de QueryInterface método para recuperar um ponteiro para a interface solicitada em riid.

A implementação segura Libera a referência ele mantém para a IClassFactory interface porque ele retorna um ponteiro Reference-counted para IClassFactory Para o chamador.

HRESULT_export  PASCAL DllGetClassObject 
        (REFCLSID rclsid, REFIID riid, LPVOID * ppvObj) 
{ 
    HRESULT hres = E_OUTOFMEMORY; 
    *ppvObj = NULL; 
 
    CClassFactory *pClassFactory = new CClassFactory(rclsid); 
    if (pClassFactory != NULL)   { 
        hRes = pClassFactory->QueryInterface(riid, ppvObj); 
        pClassFactory->Release(); 
    } 
    return hRes; 

Requirements

Header objbase.h
Library ole32.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

COM Functions
CoGetClassObject