Condividi tramite


Creazione di pagine delle proprietà per il componente

Un oggetto notify crea pagine di proprietà personalizzate dopo che il sottosistema di configurazione di rete chiama il metodo INetCfgComponentPropertyUi::MergePropPages dell'oggetto notify. Le pagine delle proprietà personalizzate possono essere unite nel set predefinito di pagine nella finestra delle proprietà del componente utilizzando il metodo MergePropPages . MergePropPages restituirà il numero appropriato di pagine predefinite in cui è possibile unire le pagine personalizzate.

Per creare pagine di proprietà personalizzate, MergePropPages chiama la funzione COM CoTaskMemAlloc per allocare memoria per gli handle alle strutture PROPSHEETPAGE. Ognuno di questi handle rappresenta una pagina delle proprietà da creare. Se CoTaskMemAlloc alloca correttamente la memoria per gli handle, MergePropPages dichiarerà e riempirà le strutture PROPSHEETPAGE per ogni pagina delle proprietà. Dopo che MergePropPages riempie queste strutture, chiama la funzione Win32 CreatePropertySheetPage per ogni pagina delle proprietà. In questa chiamata MergePropPages passa l'indirizzo della struttura PROPSHEETPAGE da creare.

È necessario implementare anche una funzione di callback della finestra di dialogo per ogni pagina delle proprietà creata da MergePropPages . Una funzione di callback della finestra di dialogo elabora i messaggi inviati dal sistema operativo alla pagina delle proprietà associata alla funzione della finestra di dialogo. Per associare una pagina delle proprietà a una funzione della finestra di dialogo, MergePropPages deve puntare il membro pfnDlgProc di ogni struttura PROPSHEETPAGE per ogni pagina alla funzione della finestra di dialogo per la pagina.

Una funzione della finestra di dialogo elabora i messaggi seguenti:

  • Messaggio WM_INITDIALOG inviato alla funzione della finestra di dialogo immediatamente prima che il sistema operativo visualizzi la pagina delle proprietà associata. Le funzioni della finestra di dialogo usano in genere questo messaggio per inizializzare la pagina delle proprietà e per eseguire attività che influiscono sull'aspetto della pagina delle proprietà.

  • Messaggio WM_NOTIFY inviato alla funzione della finestra di dialogo dopo che si verifica un evento nella pagina delle proprietà. Altre informazioni inviate con questo messaggio identificano l'evento che si è verificato. Queste informazioni sull'evento sono contenute in un puntatore a una struttura NMHDR. Le informazioni che NMHDR possono contenere per una finestra delle proprietà includono, ad esempio:

    • Evento PSN_APPLY, che indica che un utente fa clic su OK, Chiudi o Applica nella pagina delle proprietà. Se l'utente fa clic su OK, Chiudi o Applica, la funzione della finestra di dialogo può chiamare la macro PropSheet_Changed per informare la finestra delle proprietà che le informazioni nella pagina sono state modificate. In questa chiamata, la funzione della finestra di dialogo passa handle alla finestra delle proprietà e alla pagina. La funzione della finestra di dialogo può chiamare la funzione GetParent Win32 e passare l'handle alla pagina per recuperare l'handle nella finestra delle proprietà.

      Dopo che la funzione della finestra di dialogo notifica alla finestra di dialogo la modifica, il sottosistema di configurazione di rete chiama il metodo INetCfgComponentPropertyUi::ValidateProperties per verificare la validità di tutte le modifiche. Se tutte le modifiche sono valide, il sottosistema chiama il metodo INetCfgComponentPropertyUi::ApplyProperties dell'oggetto notify per rendere effettive tutte le modifiche. Il sottosistema di configurazione di rete chiama ApplyProperties prima che il sistema operativo chiuda la finestra di dialogo.

      Il metodo ApplyProperties può essere implementato per recuperare le informazioni immesse dall'utente e per impostare le informazioni sui membri dati dell'oggetto notify.

    • Evento PSN_RESET, che indica che il sistema operativo sta per distruggere una pagina delle proprietà. Un utente potrebbe fare clic su Annulla nella pagina delle proprietà per avviare questa azione. Se l'utente fa clic su Annulla, il sottosistema di configurazione di rete chiama il metodo INetCfgComponentPropertyUi::CancelProperties per fare in modo che tutte le modifiche vengano ignorate. Il sottosistema di configurazione di rete chiama CancelProperties prima della chiusura della finestra di dialogo.

    • Evento PSN_KILLACTIVE, che indica che una pagina delle proprietà sta per diventare inattiva. Questo evento si verifica quando un utente attiva un'altra pagina o fa clic su OK.

Le funzioni di callback delle pagine delle proprietà possono essere implementate anche per ogni pagina delle proprietà creata da MergePropPages . Una funzione di callback della pagina delle proprietà esegue operazioni di inizializzazione e pulizia per la pagina. Per associare una pagina delle proprietà a una funzione di callback di pagina delle proprietà, MergePropPages deve puntare il membro pfnCallback di ogni struttura PROPSHEETPAGE per ogni pagina alla funzione di callback della pagina delle proprietà per tale pagina.

Per altre informazioni, vedere la documentazione di Microsoft Windows SDK:

  • creazione di pagine delle proprietà e strutture, funzioni e notifiche per le pagine delle proprietà

  • routine di callback della finestra di dialogo, messaggi e strutture