Compartilhar via


Manipuladores de folha de propriedades

Quando um usuário clica com o botão direito do mouse em um objeto Shell, o menu de atalho exibido normalmente inclui um item Propriedades . Selecionar esse item inicia uma folha de propriedades que permite que o usuário exiba e, em alguns casos, modifique as propriedades do objeto. Você pode personalizar essa folha de propriedades implementando e registrando um manipulador de folha de propriedades.

Os procedimentos gerais para implementar e registrar um manipulador de extensão shell são discutidos em Criando manipuladores de extensão do Shell. Este documento se concentra nos aspectos da implementação que são específicos para manipuladores de folha de propriedades.

Como funcionam os manipuladores de folha de propriedades

A ilustração a seguir mostra a folha de propriedades Propriedades de um arquivo de texto do Windows XP.

folha de propriedades

Esta ilustração mostra a folha de propriedades propriedades padrão que é exibida para qualquer arquivo. Para muitas dessas folhas de propriedades, você pode adicionar uma ou mais páginas à folha de propriedades implementando e registrando um manipulador de folha de propriedades.

Os manipuladores de folha de propriedades são mais comumente registrados para um tipo de arquivo. Cada manipulador pode adicionar uma página personalizada à folha de propriedades Propriedades da classe . Essas páginas normalmente dão aos usuários acesso a propriedades específicas do tipo de arquivo específico. Um tipo de arquivo que consiste em documentos de texto pode, por exemplo, exibir uma página que listava o título e o autor e um resumo do documento. Um caso especial desse tipo de manipulador de folha de propriedades é usado para adicionar uma página à folha de propriedades Propriedades de uma unidade montada.

O outro uso para manipuladores de folha de propriedades é substituir páginas nas folhas de propriedades exibidas por aplicativos Painel de Controle. Um fabricante de mouse, por exemplo, pode usar um manipulador de folha de propriedades para substituir a página Botões na folha de propriedades Propriedades do Mouse do Painel de Controle por uma página personalizada para as características do mouse.

Como todos os manipuladores de extensão do Shell, os manipuladores de folha de propriedades são objetos COM (Component Object Model) em processo implementados como DLLs. Eles devem exportar duas interfaces além de IUnknown: IShellExtInit e IShellPropSheetExt.

A interface IShellExtInit é usada pelo Shell para inicializar o manipulador. Quando o Shell chama IShellExtInit::Initialize, ele passa um objeto de dados com o nome do objeto e o ponteiro para uma PIDL (lista de identificadores de item) da pasta que contém o arquivo. O parâmetro hRegKey não é usado com manipuladores de folha de propriedades. O método IShellExtInit::Initialize deve extrair o nome do arquivo do objeto de dados e armazenar o nome e o PIDL da pasta para uso posterior. Para obter mais detalhes, consulte a seção Implementando IShellExtInit de Criando manipuladores de extensão de shell.

O restante da operação ocorre por meio da interface IShellPropSheetExt do manipulador. Se a folha de propriedades estiver associada a um tipo de arquivo, o Shell chamará IShellPropSheetExt::AddPages para permitir que o manipulador adicione uma página à folha de propriedades. Se a folha de propriedades estiver associada a um aplicativo Painel de Controle, o Shell chamará IShellPropSheetExt::ReplacePage para permitir que o manipulador substitua uma página.

Registrando e implementando um manipulador de folha de propriedades para uma unidade montada

Cada unidade montada tem uma folha Propriedades que pode ser exibida pelo usuário. A ilustração a seguir mostra uma folha de propriedades Propriedades para uma unidade CD-ROM.

folha de propriedades cd-rom

Há uma ampla variedade de dispositivos que podem ser montados como unidades. Como a folha de propriedades padrão, projetada para unidades de disco, pode não ser suficiente para alguns dispositivos, um manipulador de folha de propriedades pode ser implementado para adicionar uma página específica ao dispositivo montado. A implementação básica desse tipo de manipulador de folha de propriedades é idêntica à discutida em Como registrar e implementar um manipulador de folha de propriedades para um tipo de arquivo, com duas exceções.

  • O objeto de dados passado para o método IShellExtInit::Initialize do manipulador pode conter o caminho da unidade no formato CFSTR_MOUNTEDVOLUME em vez do formato CF_HDROP . O formato CF_HDROP é usado quando o dispositivo é montado em uma letra da unidade. O formato CFSTR_MOUNTEDVOLUME é usado com sistemas de arquivos NTFS quando o dispositivo remoto é montado em uma pasta em vez de em uma letra de unidade.
  • O GUID do manipulador é registrado na\ HKEY_CLASSES_ROOT chavePropertySheetHandlers doshellex\ daunidade\.

Como registrar e implementar um manipulador de folha de propriedades para um tipo de arquivo

Como registrar e implementar um manipulador de folha de propriedades para um aplicativo Painel de Controle