Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Programy obsługi definiują część oprogramowania autoodtwarzania. Definiują ikonę i przyjazną nazwę oprogramowania, a także składnik Component Object Model (COM), aby utworzyć wystąpienie i jak zainicjować składnik w odpowiedzi na zdarzenie. Każda procedura obsługi dotycząca określonego zdarzenia rejestruje się jako wartość pod odpowiednim kluczem EventHandler. Po wykryciu tego zdarzenia użytkownik zostanie poproszony o wybranie programu obsługi z listy wszystkich programów obsługi zarejestrowanych dla tego zdarzenia.
Instrukcje
Programy obsługi oraz związane z nimi wartości są zdefiniowane pod kluczem AutoplayHandlers\Handlers. Podklucze różnią się w zależności od tego, czy system może odczytać zawartość urządzenia bezpośrednio, czy też urządzenie dostarcza zawartość do systemu za pośrednictwem zastrzeżonego interfejsu.
W poniższym przykładzie przedstawiono podklucze i wartości używane dla urządzenia, takie jak cyfrowy aparat wideo lub odtwarzacz .mp3, który udostępnia jego zawartość systemowi za pośrednictwem zastrzeżonego interfejsu. Przykładowa procedura obsługi nosi nazwę 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
Notatka
Chociaż w przykładzie przedstawiono zarówno wartość ProgID, jak i identyfikator klasy (CLSID), w praktyce te wartości wzajemnie się wykluczają, tak aby tylko jeden lub drugi był obecny. Preferowana jest wartość ProgID. Niezależnie od tego, którego z nich się używa, powinien wskazywać na składnik COM, który implementuje interfejs IHWEventHandler.
Wartość Akcja można wprowadzić jako wartość dosłowną, na przykład "Odtwórz muzykę", jak pokazano w tym przykładzie, lub jako nazwę pliku zawierającą ciąg zasobu. Możesz również wprowadzić wartość dostawcy jako wartość dosłowną lub nazwę pliku z ciągiem zasobu. Funkcja AutoOdtwarzanie łączy wartość akcji i wartość dostawcy ze słowem "za pomocą" w celu utworzenia przyjaznego podpisu wyświetlanego w interfejsie użytkownika. W tym przykładzie wynikowy podpis to "Odtwarzanie muzyki przy użyciu programu Windows Media Player".
Wartość DefaultIcon wskazuje plik .ico lub zasób w pliku binarnym. Jeśli wartość liczbowa zgodna z nazwą pliku binarnego ma wartość zero lub większą, jest to wartość indeksu ikony w tym pliku binarnym. Jeśli jest to wartość ujemna, jest to identyfikator zasobu ikony. Zalecane są wartości indeksów ujemnych. W przypadku pliku .ico nie jest wymagana żadna wartość. Zaleca się używanie zmiennych środowiskowych w ścieżce.
Wartość InitCmdLine przechodzi niezmieniona przez metodę IHWEventHandler::Initialize, zanim zostaną wywołane inne metody.
W poniższym przykładzie przedstawiono podklucze i wartości używane dla urządzenia, które można odczytać bezpośrednio, takie jak dysk CD-ROM lub inny dysk wymienny. Ponownie przykładowa procedura obsługi nosi nazwę 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
W tym przykładzie wartości Akcja i Dostawca są wyświetlane jako nazwa pliku z ciągiem znaków zasobu, a nie wartościami dosłownymi, ale ciągi, które referują, są używane w ten sam sposób. Są one łączone ze słowem "using" w celu utworzenia przyjaznego podpisu, jak wyjaśniono wcześniej.
Wartości InvokeProgID i InvokeVerb zastępują wartości CLSID, InitCmdLine i ProgID. Wartości InvokeProgID i InvokeVerb są zgodne z nazwami kluczy znalezionych w HKEY_CLASSES_ROOT, jak pokazano w poniższym wpisie rejestru. Ten zestaw przykładowych kluczy odpowiada specyficznemu przykładowi handlera opisanemu wcześniej.
HKEY_CLASSES_ROOT
WIA.AutoplayDropHandler
shell
open
DropTarget
Clsid = {F1ABE2B5-C073-4dba-B6EB-FD7A5111DD8F}
Funkcja CoCreateInstance używa identyfikatora CLSID do zaimplementowania odpowiedniej aplikacji.
Po zdefiniowaniu programu obsługi na jeden z tych dwóch sposobów należy go zarejestrować dla określonego zdarzenia. W tym celu należy podać nazwę programu obsługującego jako wartość dla klucza tego zdarzenia w sekcji EventHandlers. W poniższym przykładzie pokazano, jak zarejestrować MyHandler jako procedurę obsługi zdarzenia GenericVolumeArrival. Nie ma przypisanej wartości danych.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
EventHandlers
GenericVolumeArrival
MyHandler [REG_SZ]
Tematy pokrewne