Função SHChangeNotify (shlobj_core.h)

Notifica o sistema de um evento que um aplicativo executou. Um aplicativo deverá usar essa função se executar uma ação que possa afetar o Shell.

Sintaxe

void SHChangeNotify(
                 LONG    wEventId,
                 UINT    uFlags,
  [in, optional] LPCVOID dwItem1,
  [in, optional] LPCVOID dwItem2
);

Parâmetros

wEventId

Tipo: LONG

Descreve o evento que ocorreu. Normalmente, apenas um evento é especificado por vez. Se mais de um evento for especificado, os valores contidos nos parâmetros dwItem1 e dwItem2 deverão ser os mesmos, respectivamente, para todos os eventos especificados. Esse parâmetro pode usar um dos valores a seguir:

SHCNE_ALLEVENTS

Todos os eventos ocorreram.

SHCNE_ASSOCCHANGED

Uma associação de tipo de arquivo foi alterada. SHCNF_IDLIST deve ser especificado no parâmetro uFlags . dwItem1 e dwItem2 não são usados e devem ser NULL. Esse evento também deve ser enviado para protocolos registrados.

SHCNE_ATTRIBUTES

Os atributos de um item ou pasta foram alterados. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o item ou pasta que foi alterado. dwItem2 não é usado e deve ser NULL.

SHCNE_CREATE

Um item não de pasta foi criado. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o item que foi criado. dwItem2 não é usado e deve ser NULL.

SHCNE_DELETE

Um item não de pasta foi excluído. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o item que foi excluído. dwItem2 não é usado e deve ser NULL.

SHCNE_DRIVEADD

Uma unidade foi adicionada. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a raiz da unidade que foi adicionada. dwItem2 não é usado e deve ser NULL.

SHCNE_DRIVEADDGUI

Windows XP e posterior: não usado.

SHCNE_DRIVEREMOVED

Uma unidade foi removida. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a raiz da unidade que foi removida. dwItem2 não é usado e deve ser NULL.

SHCNE_EXTENDED_EVENT

Não usado no momento.

SHCNE_FREESPACE

A quantidade de espaço livre em uma unidade foi alterada. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a raiz da unidade na qual o espaço livre foi alterado. dwItem2 não é usado e deve ser NULL.

SHCNE_MEDIAINSERTED

A mídia de armazenamento foi inserida em uma unidade. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a raiz da unidade que contém a nova mídia. dwItem2 não é usado e deve ser NULL.

SHCNE_MEDIAREMOVED

A mídia de armazenamento foi removida de uma unidade. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a raiz da unidade da qual a mídia foi removida. dwItem2 não é usado e deve ser NULL.

SHCNE_MKDIR

Uma pasta foi criada. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a pasta que foi criada. dwItem2 não é usado e deve ser NULL.

SHCNE_NETSHARE

Uma pasta no computador local está sendo compartilhada por meio da rede. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a pasta que está sendo compartilhada. dwItem2 não é usado e deve ser NULL.

SHCNE_NETUNSHARE

Uma pasta no computador local não está mais sendo compartilhada por meio da rede. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a pasta que não está mais sendo compartilhada. dwItem2 não é usado e deve ser NULL.

SHCNE_RENAMEFOLDER

O nome de uma pasta foi alterado. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o PIDL anterior ou o nome da pasta. dwItem2 contém o novo PIDL ou o nome da pasta.

SHCNE_RENAMEITEM

O nome de um item não de pasta foi alterado. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o PIDL anterior ou o nome do item. dwItem2 contém o novo PIDL ou o nome do item.

SHCNE_RMDIR

Uma pasta foi removida. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a pasta que foi removida. dwItem2 não é usado e deve ser NULL.

SHCNE_SERVERDISCONNECT

O computador se desconectou de um servidor. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o servidor do qual o computador foi desconectado. dwItem2 não é usado e deve ser NULL.

SHCNE_UPDATEDIR

O conteúdo de uma pasta existente foi alterado, mas a pasta ainda existe e não foi renomeada. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém a pasta que foi alterada. dwItem2 não é usado e deve ser NULL. Se uma pasta tiver sido criada, excluída ou renomeada, use SHCNE_MKDIR, SHCNE_RMDIR ou SHCNE_RENAMEFOLDER, respectivamente.

SHCNE_UPDATEIMAGE

Uma imagem na lista de imagens do sistema foi alterada. SHCNF_DWORD deve ser especificado em uFlags.

dwItem2 contém o índice na lista de imagens do sistema que foi alterada. dwItem1 não é usado e deve ser NULL.

SHCNE_UPDATEITEM

Um item existente (uma pasta ou uma não pasta) foi alterado, mas o item ainda existe e não foi renomeado. SHCNF_IDLIST ou SHCNF_PATH devem ser especificados em uFlags. dwItem1 contém o item que foi alterado. dwItem2 não é usado e deve ser NULL. Se um item não pasta tiver sido criado, excluído ou renomeado, use SHCNE_CREATE, SHCNE_DELETE ou SHCNE_RENAMEITEM, respectivamente.

SHCNE_DISKEVENTS

Especifica uma combinação de todos os identificadores de evento de disco.

SHCNE_GLOBALEVENTS

Especifica uma combinação de todos os identificadores de eventos globais.

SHCNE_INTERRUPT

O evento especificado ocorreu como resultado de uma interrupção do sistema. Como esse valor modifica outros valores de evento, ele não pode ser usado sozinho.

uFlags

Tipo: UINT

Sinalizadores que, quando combinados bit a bit com SHCNF_TYPE, indicam o significado dos parâmetros dwItem1 e dwItem2 . O parâmetro uFlags deve ser um dos valores a seguir.

SHCNF_DWORD

Os parâmetros dwItem1 e dwItem2 são valores DWORD .

SHCNF_IDLIST

dwItem1 e dwItem2 são os endereços das estruturas ITEMIDLIST que representam os itens afetados pela alteração. Cada ITEMIDLIST deve ser relativo à pasta da área de trabalho.

SHCNF_PATH

dwItem1 e dwItem2 são os endereços de cadeias de caracteres terminadas em nulo de comprimento máximo MAX_PATH que contêm os nomes de caminho completos dos itens afetados pela alteração.

SHCNF_PRINTER

dwItem1 e dwItem2 são os endereços de cadeias de caracteres terminadas em nulo que representam os nomes amigáveis das impressoras afetadas pela alteração.

SHCNF_FLUSH

A função não deve retornar até que a notificação seja entregue a todos os componentes afetados. Como esse sinalizador modifica outros sinalizadores de tipo de dados, ele não pode ser usado por si só.

SHCNF_FLUSHNOWAIT

A função deve começar a fornecer notificações a todos os componentes afetados, mas deve retornar assim que o processo de notificação for iniciado. Como esse sinalizador modifica outros sinalizadores de tipo de dados, ele não pode ser usado por si só. Esse sinalizador inclui SHCNF_FLUSH.

SHCNF_NOTIFYRECURSIVE

Notifique os clientes registrados para todos os filhos.

[in, optional] dwItem1

Tipo: LPCVOID

Opcional. Primeiro valor dependente de evento.

[in, optional] dwItem2

Tipo: LPCVOID

Opcional. Segundo valor dependente de evento.

Retornar valor

Nenhum

Comentários

Os aplicativos que registram novos manipuladores de qualquer tipo devem chamar SHChangeNotify com o sinalizador SHCNE_ASSOCCHANGED para instruir o Shell a invalidar o ícone e o cache em miniatura. Isso também carregará novos manipuladores de miniaturas e ícones que foram registrados. Observe, no entanto, que os manipuladores de sobreposição de ícones não são recarregados.

As cadeias de caracteres apontadas por dwItem1 e dwItem2 podem ser ANSI ou Unicode.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [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 4.0 ou posterior)
Conjunto de APIs ext-ms-win-shell-shell32-l1-2-0 (introduzido no Windows 8.1)