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. A seleção desse item inicia uma folha de propriedades que permite ao usuário exibir e, em alguns casos, modificar 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 Shell. Este documento se concentra nos aspetos da implementação que são específicos para manipuladores de folha de propriedades.
- Como funcionam os manipuladores de folha de propriedades
- Registrando e implementando um manipulador de folha de propriedades para uma unidade montada
- Tópicos relacionados
Como funcionam os manipuladores de folha de propriedades
A ilustração a seguir mostra a folha de propriedades de um arquivo de texto do Windows XP.
Esta ilustração mostra a folha de 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 da classe. Essas páginas geralmente dão aos usuários acesso a propriedades específicas para o tipo de arquivo específico. Um tipo de arquivo que consiste em documentos de texto pode, por exemplo, exibir uma página que listou 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 de uma unidade montada.
O outro uso para manipuladores de folha de propriedades é substituir páginas nas folhas de propriedades exibidas por aplicativos do Painel de Controle. Um fabricante de mouse, por exemplo, pode usar um manipulador de folha de propriedades para substituir a página Botões de na folha de propriedades Propriedades do Mouse do Painel de Controle por uma página personalizada para as características de seu 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 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 lista de identificadores de item (PIDL) 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 Implementing IShellExtInit de Creating Shell Extension Handlers.
O restante da operação ocorre através da interfaceIShellPropSheetExtdo 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 do 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 de propriedades que pode ser exibida pelo usuário. A ilustração a seguir mostra uma folha de propriedades de uma unidade CD-ROM.
Há uma grande 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 do manipulador IShellExtInit::Initialize método 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 de unidade. O formato CFSTR_MOUNTEDVOLUME é usado com sistemas de arquivos NTFS quando o dispositivo remoto é montado em uma pasta em vez de uma letra de unidade.
- O GUID do manipulador é registrado sob a chaveHKEY_CLASSES_ROOT\Drive\shellex\ PropertySheetHandlers.
Tópicos relacionados