CoRegisterPSClsid
9/8/2008
Essa função permite que um DLL baixado para registrar seu personalizado interfaces dentro sua execução processo para que a codificar empacotamento será possam para empacotar as interfaces.
Syntax
WINOLEAPI CoRegisterPSCLsid(
REFIID riid,
REFCLSID rclsid
);
Parameters
- riid
[no] Aponta para o IID da interface a ser registrado.
- rclsid
[no] Aponta para o CLSID de DLL que contém o proxy/stub codificar para o personalizado especificado pela interface riid.
Return Value
- S_OK
O personalizado interface foi registrado com êxito.
- E_INVALIDARG
Um dos parâmetros é inválido.
- E_OUTOFMEMORY
Não há memória suficiente para completo esta operação.
Remarks
Normalmente o codificar responsável empacotamento um ponteiro interface para o atual execução processo lê a seção HKEY_CLASSES_ROOT\Interfaces do Registro para obter a CLSID de DLL que contém a codificar ProxyStub a ser carregado. Para obter os CLSIDs ProxyStub para uma interface existente, as chamadas codificar o CoGetPSClsid função.
Em alguns casos, no entanto, ele pode ser desejável ou necessário para um in-processo manipulador ou in-process server para tornar seu personalizado interfaces disponível sem gravar para o Registro.
Um DLL baixada em uma rede pode não mesmo ter permissão para acessar o local Registro, e porque a codificar se originou em outra máquina, o usuário, para fins de segurança, poderá desejar para executar em um ambiente restrito.
Ou um DLL pode ter personalizado interfaces que ele usa para falar com um servidor remoto e também pode incluir a codificar ProxyStub para essas interfaces. Em tais casos, um DLL precisa um alternativo maneira para registrar suas interfaces. CoRegisterPSClsid, usado em conjunto com CoRegisterClassObject, oferece essa alternativo.
Um DLL normalmente chamar CoRegisterPSClsid Conforme o seguinte fragmento de código.
HRESULT RegisterMyCustomInterface(DWORD *pdwRegistrationKey)
{
HRESULT hr = CoRegisterClassObject(CLSID_MyProxyStubClsid,
pIPSFactoryBuffer,
CLSCTX_INPROC_SERVER,
REGCLS_MULTIPLEUSE
pdwRegistrationKey);
if(SUCCEEDED)(hr))
{
hr = CoRegisterPSClsid(IID_MyCustomInterface, CLSID_MyProxyStubClsid);
}
return hr;
}
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
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 |