Função SHSetInstanceExplorer (shlobj_core.h)

Fornece uma interface que permite que extensões do Shell hospedadas e outros componentes impeçam que o processo de host seja fechado prematuramente. Normalmente, o processo de host é Explorer do Windows ou Explorer da Internet do Windows, mas essa função também pode ser usada por outros aplicativos.

Sintaxe

void SHSetInstanceExplorer(
  [in, optional] IUnknown *punk
);

Parâmetros

[in, optional] punk

Tipo: IUnknown*

Um ponteiro para um IUnknown de thread livre. Os componentes podem usar essa interface (por meio de SHGetInstanceExplorer) para impedir que o processo de host seja encerrado. Esse valor pode ser NULL, caso em que a referência do processo não é mais disponibilizada para componentes.

Retornar valor

Nenhum

Comentários

O Windows Explorer e os Explorer da Internet podem usar SHSetInstanceExplorer para permitir que componentes como extensões do Shell estendam o tempo de vida do processo. Outros aplicativos também podem usar SHSetInstanceExplorer para permitir a mesma funcionalidade. Por exemplo, o loop de mensagens do navegador e a área de trabalho proxy usam SHSetInstanceExplorer para permitir que outros threads estendam seu tempo de vida.

Aplicativos diferentes do Windows Explorer e Explorer da Internet que chamam essa função podem encontrar problemas de compatibilidade porque alguns componentes usam SHGetInstanceExplorer para detectar se estão sendo hospedados de dentro do Windows Explorer ou Explorer da Internet.

O ponteiro de interface passado para SHSetInstanceExplorer deve referenciar um objeto de thread livre.

Sempre que um componente chama SHGetInstanceExplorer, o sistema chama o método AddRef antes de retornar o ponteiro de interface para o componente de chamada. Em seguida, o componente chama o método IUnknown::Release quando o processamento é concluído. O processo que chama SHSetInstanceExplorer não deve terminar enquanto a contagem de referência do ponteiro de interface fornecido for diferente de zero.

Para obter mais informações sobre como os componentes usam as referências de processo, consulte SHGetInstanceExplorer.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlobj_core.h (inclua Shlobj.h)
Biblioteca Shell32.lib
DLL Shell32.dll (versão 5.0 ou posterior)
Conjunto de APIs ext-ms-win-shell-shell32-l1-2-1 (introduzido no Windows 10, versão 10.0.10240)

Confira também

SHGetInstanceExplorer