Skapa egenskapssidor för komponenten
Ett meddelandeobjekt skapar anpassade egenskapssidor efter att undersystemet för nätverkskonfiguration anropar aviseringsobjektets INetCfgComponentPropertyUi::MergePropPages-metoden. Anpassade egenskapssidor kan sammanfogas till standarduppsättningen med sidor på komponentens egenskapsblad med hjälp av metoden MergePropPages. MergePropPages- returnerar lämpligt antal standardsidor där de anpassade sidorna kan sammanfogas.
Om du vill skapa anpassade egenskapssidor anropar MergePropPages COM CoTaskMemAlloc-funktionen för att allokera minne för hanterare till PROPSHEETPAGE-strukturer. Var och en av dessa handtag representerar en egenskapssida som skapas. Om CoTaskMemAlloc framgångsrikt allokerar minne för handtag, kommer MergePropPages att deklarera och fylla i PROPSHEETPAGE- strukturer för varje egenskapsida. När MergePropPages fyller dessa strukturer anropas funktionen Win32 CreatePropertySheetPage för varje egenskapssida. I det här anropet skickar MergePropPages adressen till PROPSHEETPAGE-strukturen som ska skapas.
En dialogruteåteranropsfunktion bör också implementeras för varje egenskapssida som MergePropPages skapar. En dialogruta för återanrop bearbetar meddelanden som operativsystemet skickar till egenskapssidan som är associerad med den dialogrutefunktionen. Om du vill associera en egenskapssida med en dialogrutefunktion ska MergePropPages peka pfnDlgProc medlem i varje PROPSHEETPAGE-struktur för varje sida till dialogrutan för sidan.
En dialogrutefunktion bearbetar följande meddelanden:
WM_INITDIALOG-meddelandet, som skickas till dialogrutefunktionen strax innan operativsystemet visar sin tillhörande egenskapssida. Dialogrutefunktioner använder vanligtvis det här meddelandet för att initiera egenskapssidan och för att utföra uppgifter som påverkar utseendet på egenskapssidan.
WM_NOTIFY-meddelandet, som skickas till dialogrutanfunktionen efter att en händelse inträffar på egenskapssidan. Annan information som skickas med det här meddelandet identifierar vilken händelse som har inträffat. Den här händelseinformationen finns i en pekare till en NMHDR-struktur. Information som NMHDR kan innehålla för ett egenskapsblad innehåller till exempel:
Händelsen PSN_APPLY, som anger att en användare klickar på OK, Stäng eller Använd på egenskapssidan. Om användaren klickar på OK, Stäng eller Tillämpa kan dialogrutan anropa PropSheet_Changed makrot för att informera egenskapsbladet om att informationen på sidan har ändrats. I det här anropet skickar dialogrutans funktion referenser till egenskapsbladet och sidan. Dialogrutans funktion kan anropa funktionen Win32 GetParent och skicka handtaget till sidan för att hämta handtaget till egenskapsbladet.
När dialogrutefunktionen meddelar egenskapsbladet om ändringen anropar undersystemet för nätverkskonfiguration INetCfgComponentPropertyUi::ValidateProperties metod för att kontrollera giltigheten för alla ändringar. Om alla ändringar är giltiga anropar undersystemet aviseringsobjektets INetCfgComponentPropertyUi::ApplyProperties metod för att få alla ändringar att börja gälla. Undersystemet för nätverkskonfiguration anropar ApplyProperties innan operativsystemet stänger dialogrutan.
Metoden ApplyProperties kan implementeras för att hämta information som användaren anger och för att ange informationen till meddela-objektets datamedlemmar.
Händelsen PSN_RESET, som anger att operativsystemet håller på att förstöra en egenskapssida. En användare kan klicka på Avbryt på egenskapssidan för att initiera den här åtgärden. Om användaren klickar på Avbryt anropar undersystemet för nätverkskonfiguration INetCfgComponentPropertyUi::CancelProperties metod för att göra så att alla ändringar ignoreras. Undersystemet för nätverkskonfiguration anropar CancelProperties innan dialogrutan stängs.
Händelsen PSN_KILLACTIVE, som anger att en egenskapssida håller på att bli inaktiv. Den här händelsen inträffar när en användare aktiverar en annan sida eller klickar på OK.
funktioner för återanrop på egenskapssidan kan också implementeras för varje egenskapssida som MergePropPages skapar. En återanropsfunktion för egenskapssidan utför initierings- och rensningsåtgärder för sidan. Om du vill associera en egenskapssida med en återanropsfunktion för egenskapssidan bör MergePropPages peka pfnCallback medlem i varje PROPSHEETPAGE-struktur för varje sida till funktionen för återanrop på egenskapssidan för den sidan.
Mer information om finns i Microsoft Windows SDK-dokumentation:
skapa egenskapssidor och strukturer, funktioner och meddelanden för egenskapssidor
dialogruta för återanropsprocedurer, meddelanden och strukturer