Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os manipuladores definem a parte de software da Reprodução Automática. Eles definem o ícone e o nome amigável do software, bem como o componente COM (Component Object Model) a ser instanciado e como inicializar o componente em resposta a um evento. Cada manipulador de um evento específico regista-se como um valor na chave EventHandler apropriada. Quando esse evento é detetado, o usuário é solicitado a escolher um manipulador de uma lista de todos os manipuladores registrados para esse evento.
Instruções
Os manipuladores e seus valores associados são definidos sob a chave AutoplayHandlers\Handlers. As subchaves diferem dependendo se o sistema pode ler o conteúdo do dispositivo diretamente ou se o dispositivo fornece conteúdo ao sistema através de uma interface proprietária.
O exemplo a seguir mostra as subchaves e os valores usados para um dispositivo, como uma câmera de vídeo digital ou .mp3 player, que fornece seu conteúdo ao sistema por meio de uma interface proprietária. O manipulador de exemplo é chamado MyHandler.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
Handlers
MyHandler
Action [REG_SZ] = Play music
CLSID [REG_SZ] = {a51f2ed3-634e-4a97-9d55-efcf08e7b32f}
DefaultIcon [REG_EXPAND_SZ] = %ProgramFiles%\Windows Media Player\wmplayer.exe,0
InitCmdLine [REG_SZ] = /Play
ProgID [REG_SZ] = WMP.PlayMusicFiles
Provider [REG_SZ] = Windows Media Player
Observação
Embora o exemplo mostre um valor ProgID e um identificador de classe (CLSID), na prática esses valores são mutuamente exclusivos, de modo que apenas um ou outro está presente. O valor ProgID é preferido. Seja qual for o usado, ele deve apontar para um componente COM que implemente a interface IHWEventHandler.
Você pode inserir o valor Action como um valor literal, por exemplo, "Reproduzir música", como mostrado neste exemplo, ou como um nome de arquivo com uma cadeia de caracteres de recurso. Você também pode inserir o valor Provider como um valor literal ou como um nome de arquivo com uma cadeia de caracteres de recurso. A Reprodução Automática combina o valor Action e o valor Provider com a palavra "using" para criar uma legenda amigável que é exibida na interface do usuário. No exemplo, a legenda resultante é "Reproduzir música usando o Windows Media Player".
O valor DefaultIcon aponta para um arquivo .ico ou um recurso em um arquivo binário. Se o valor numérico que segue o nome do arquivo binário for zero ou maior, então é o valor de índice do ícone nesse arquivo binário. Se for um valor negativo, então é o ID do recurso do ícone. Recomendam-se valores de índice negativos. Nenhum valor é necessário no caso de um arquivo .ico. É recomendável usar variáveis de ambiente no caminho.
O valor InitCmdLine passa inalterado pelo método IHWEventHandler::Initialize antes de qualquer outro método ser chamado.
O exemplo a seguir mostra as subchaves e os valores usados para um dispositivo que pode ser lido diretamente, como uma unidade CD-ROM ou outro disco removível. Novamente, o manipulador de exemplo é chamado MyHandler.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
Handlers
MyHandler
Action [REG_SZ] = @%systemroot%\System32\wiaacmgr.exe,-276
DefaultIcon [REG_EXPAND_SZ] = %systemroot%\System32\wiaacmgr.exe,-2
InvokeProgID [REG_SZ] = WIA.AutoPlayDropHandler
InvokeVerb [REG_SZ] = open
Provider [REG_SZ] = @%systemroot%\System32\wiaacmgr.exe,-101
Neste exemplo, os valores Action e Provider são mostrados como um nome de arquivo com uma cadeia de caracteres de recurso em vez de valores literais, mas as cadeias de caracteres às quais eles fazem referência são usadas da mesma maneira. Eles são combinados com a palavra "usando" para formar uma legenda amigável, como explicado anteriormente.
Os valores InvokeProgID e InvokeVerb substituem CLSID, InitCmdLine e ProgID. Os valores InvokeProgID e InvokeVerb correspondem aos nomes de chave encontrados em HKEY_CLASSES_ROOT, conforme mostrado na seguinte entrada do Registro. Este conjunto de chaves de exemplo corresponde ao exemplo específico de Handler descrito anteriormente.
HKEY_CLASSES_ROOT
WIA.AutoplayDropHandler
shell
open
DropTarget
Clsid = {F1ABE2B5-C073-4dba-B6EB-FD7A5111DD8F}
A funçãoCoCreateInstance usa o CLSID para implementar o aplicativo apropriado.
Depois de definir o manipulador de qualquer uma dessas duas maneiras, você precisa registrá-lo para um evento específico. Para fazer isso, forneça o nome do manipulador como um valor para a chave desse evento em EventHandlers. O exemplo a seguir mostra como registrar MyHandler como um manipulador para o GenericVolumeArrival evento. Não tem valor de dados atribuído.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
EventHandlers
GenericVolumeArrival
MyHandler [REG_SZ]
Tópicos relacionados