Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Registra uma implementação da interface IInitializeSpy . A interface IInitializeSpy é definida para permitir que os desenvolvedores realizem a inicialização e a limpeza em apartamentos COM.
Sintaxe
HRESULT CoRegisterInitializeSpy(
[in] IInitializeSpy *pSpy,
[out] ULARGE_INTEGER *puliCookie
);
Parâmetros
[in] pSpy
Um ponteiro para uma instância da implementação IInitializeSpy .
[out] puliCookie
O endereço no qual armazenar um cookie que identifica esse registro.
Valor de retorno
Essa função pode retornar o valor de retorno padrão E_INVALIDARG, bem como os valores a seguir.
| Código de retorno | Description |
|---|---|
|
O objeto foi registrado com êxito. |
|
O objeto não dá suporte a IInitializeSpy. |
Observações
A função CoRegisterInitializeSpy registra uma implementação da interface IInitializeSpy , que define métodos a serem chamados quando CoInitializeEx (ou CoInitialize) ou CoUninitialize é invocado.
CoRegisterInitializeSpy chama QueryInterface para IID_InitializeSpy no pSpy. Ele armazena o endereço do ponteiro de interface retornado no armazenamento específico do thread que é independente do estado de inicialização COM para esse thread. Com êxito, ele armazena em puliCookie um cookie ULARGE_INTEGER que representa esse registro. Passe este cookie para CoRevokeInitializeSpy para revogar o registro.
As implementações do IInitializeSpy devem lidar com problemas de aninhamento causados pela chamada de CoInitializeEx ou CoUninitialize de dentro de um método de notificação. As notificações ocorrem somente após o registro ocorrer neste thread. Por exemplo, se CoInitializeEx for chamado antes de CoRegisterInitializeSpy, os métodos de notificação PreInitialize e PostInitialize não serão chamados.
Os métodos de notificação não devem causar a falha de CoInitializeEx ou CoUninitialize gerando exceções. As implementações do IInitializeSpy não devem propagar exceções ao código que chama CoInitializeEx ou CoUninitialize.
É imprevisível se uma chamada para CoRegisterInitializeSpy de dentro de uma chamada de método IInitializeSpy será efetivada durante a chamada de nível superior atual (não aninhada) para CoInitializeEx ou CoUninitialize. Uma implementação registrada do IInitializeSpy sempre será eficaz para futuras chamadas de nível superior para CoInitializeEx ou CoUninitialize.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows XP com SP1 [somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows Server 2003 [somente aplicativos da área de trabalho] |
| da Plataforma de Destino |
Windows |
| Header | objbase.h |
| Library | Ole32.lib |
| de DLL |
Ole32.dll |