Handlers voor eigenschappenvensters
Wanneer een gebruiker met de rechtermuisknop op een Shell-object klikt, bevat het snelmenu dat normaal gesproken wordt weergegeven een eigenschappen item. Als u dat item selecteert, wordt een eigenschappenvenster gestart waarmee de gebruiker de eigenschappen van het object kan bekijken en in sommige gevallen kan wijzigen. U kunt dit eigenschappenvenster aanpassen door een eigenschappenvensterhandlerte implementeren en te registreren.
De algemene procedures voor het implementeren en registreren van een Shell-extensie-handler worden besproken in Shell Extension Handlers maken. Dit document richt zich op die aspecten van de implementatie die specifiek zijn voor handlers voor eigenschappenvensters.
- hoe handlers van eigenschappenvensters werken
- een handler voor een eigenschappenvenster registreren en implementeren voor een gekoppeld station
- Verwante onderwerpen
Hoe handlers van eigenschappenvensters werken
In de volgende afbeelding ziet u het eigenschappenvenster eigenschappen voor een Windows XP-tekstbestand.
In deze afbeelding ziet u het standaardeigenschappenvenster dat voor elk bestand wordt weergegeven. Voor veel van dergelijke eigenschappenbladen kunt u een of meer pagina's toevoegen aan het eigenschappenvenster door een handler voor eigenschappenvensters te implementeren en te registreren.
Handlers voor eigenschappenvensters worden meestal geregistreerd voor een bestandstype. Elke handler kan één aangepaste pagina toevoegen aan het eigenschappenvenster voor de klasse. Deze pagina's geven gebruikers doorgaans toegang tot eigenschappen die specifiek zijn voor het specifieke bestandstype. Een bestandstype dat bestaat uit tekstdocumenten, kan bijvoorbeeld een pagina weergeven met de titel en auteur en een samenvatting van het document. Een speciaal geval van dit type handler voor eigenschappenvensters wordt gebruikt om een pagina toe te voegen aan het eigenschappenvenster voor een gekoppeld station.
Het andere gebruik voor eigenschappenvensterhandlers is het vervangen van pagina's in de eigenschappenvensters die worden weergegeven door Configuratiescherm-toepassingen. Een muisfabrikant kan bijvoorbeeld een handler voor eigenschappenvensters gebruiken om de Knoppen pagina te vervangen op het eigenschappenvenster van het Configuratiescherm Muiseigenschappen eigenschappenvenster met een pagina die is aangepast voor de kenmerken van de muis.
Net als alle Shell-extensiehandlers zijn eigenschappenvensterhandlers com-objecten (Component Object Model) die zijn geïmplementeerd als DLL's. Ze moeten naast IUnknown-twee interfaces exporteren: IShellExtInit en IShellPropSheetExt.
De IShellExtInit-interface wordt door de Shell gebruikt om de handler te initialiseren. Wanneer de Shell IShellExtInit::Initializeaanroept, wordt een gegevensobject doorgegeven met de naam van het object en de aanwijzer naar een lijst met item-id's (PIDL) van de map die het bestand bevat. De parameter hRegKey wordt niet gebruikt met handlers voor eigenschappenvensters. De methode IShellExtInit::Initialize moet de bestandsnaam uit het gegevensobject extraheren en de naam en de PIDL van de map opslaan voor later gebruik. Zie de sectie IShellExtInit implementeren sectie van Shell-extensiehandlers makenvoor meer informatie.
De rest van de bewerking vindt plaats via de IShellPropSheetExt interface van de handler. Als het eigenschappenvenster is gekoppeld aan een bestandstype, roept de Shell IShellPropSheetExt::AddPages aan om de handler toe te staan een pagina toe te voegen aan het eigenschappenvenster. Als het eigenschappenvenster is gekoppeld aan een Configuratiescherm-toepassing, roept shell IShellPropSheetExt::ReplacePage aan om de handler toe te staan een pagina te vervangen.
Een handler voor een eigenschappenvenster registreren en implementeren voor een gekoppeld station
Elk gekoppeld station heeft een eigenschappenblad dat door de gebruiker kan worden weergegeven. In de volgende afbeelding ziet u een eigenschappenvenster voor een CD-ROM station.
eigenschappenvenster voor
Er zijn diverse apparaten die kunnen worden gekoppeld als stations. Omdat het standaardeigenschapsvenster, ontworpen voor schijfstations, mogelijk niet voldoende is voor sommige apparaten, kan een handler voor eigenschappenvensters worden geïmplementeerd om een pagina toe te voegen die specifiek is voor het gekoppelde apparaat. De basisuitvoering van dit type handler voor eigenschappenvensters is identiek aan die in Een eigenschappenbladhandler registreren en implementeren voor een bestandstype, met twee uitzonderingen.
- Het gegevensobject dat wordt doorgegeven aan de IShellExtInit::Initialize methode kan het stationspad in de CFSTR_MOUNTEDVOLUME-indeling bevatten in plaats van de CF_HDROP-indeling. De CF_HDROP-indeling wordt gebruikt wanneer het apparaat is gekoppeld aan een stationsletter. De CFSTR_MOUNTEDVOLUME-indeling wordt gebruikt met NTFS-bestandssystemen wanneer het externe apparaat is gekoppeld aan een map in plaats van aan een stationsletter.
- De GUID van de handler wordt geregistreerd onder de HKEY_CLASSES_ROOT\Drive\shellex\PropertySheetHandlers-sleutel.
Verwante onderwerpen
-
Een handler voor eigenschappenvensters registreren en implementeren voor een bestandstype
-
Een eigenschappenvensterhandler registreren en implementeren voor een Configuratiescherm-toepassing