Compartilhar via


CoRegisterPSClsid

Windows Mobile SupportedWindows Embedded CE Supported

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

See Also

Reference

COM Functions