DllGetClassObject
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 |