Registrazione dell'oggetto COM del menu di scelta rapida in un identificatore di visualizzazione
Quando si usa COM per creare una DLL di estensione del menu di scelta rapida per un servizio directory di Active Directory, l'estensione deve essere registrata nel Registro di sistema di Windows e Dominio di Active Directory Services per notificare agli snap-in MMC amministrativi di Active Directory e alla shell di Windows dell'estensione.
Registrazione nel Registro di sistema di Windows
Come tutti i server COM, un'estensione del menu di scelta rapida deve essere registrata nel Registro di sistema. L'estensione viene registrata nella chiave seguente.
HKEY_CLASSES_ROOT
CLSID
<clsid>
<clsid> è la rappresentazione di stringa del CLSID come prodotto dalla funzione StringFromCLSID . <Nella chiave clsid> è presente una chiave InProcServer32 che identifica l'oggetto come server in-proc a 32 bit. Sotto la chiave InProcServer32 , il percorso della DLL viene specificato nel valore predefinito e il modello di threading viene specificato nel valore ThreadingModel . Tutte le estensioni del menu di scelta rapida devono usare il modello di threading "Apartment".
Registrazione con i servizi di Dominio di Active Directory
La registrazione dell'estensione del menu di scelta rapida è specifica per una sola impostazione locale. Se l'estensione del menu di scelta rapida si applica a tutte le impostazioni locali, deve essere registrata nell'oggetto displaySpecifier della classe oggetto in tutti i sottocontenitori delle impostazioni locali nel contenitore Identificatori di visualizzazione. Se l'estensione del menu di scelta rapida viene localizzata per determinate impostazioni locali, deve essere registrata nell'oggetto displaySpecifier nel sottocontenitore di tale impostazione locale. Per altre informazioni sul contenitore e le impostazioni locali degli identificatori di visualizzazione, vedere Contenitore Display Specifiers e DisplaySpecifiers.
Esistono due attributi dell'identificatore di visualizzazione in cui è possibile registrare una voce di estensione del menu di scelta rapida. Si tratta di adminContextMenu e shellContextMenu.
L'attributo adminContextMenu identifica i menu di scelta rapida amministrativi da visualizzare negli snap-in amministrativi di Active Directory. Il menu di scelta rapida viene visualizzato quando l'utente visualizza il menu di scelta rapida per gli oggetti della classe appropriata in uno degli snap-in MMC amministrativi di Active Directory.
L'attributo shellContextMenu identifica i menu di scelta rapida dell'utente finale da visualizzare nella shell di Windows. Il menu di scelta rapida viene visualizzato quando l'utente visualizza il menu di scelta rapida per gli oggetti della classe appropriata in Esplora risorse. A partire da Windows Server 2003, la shell di Windows non visualizza più oggetti di Dominio di Active Directory Services.
Tutti questi attributi sono multivalore.
Quando si registra un'estensione del menu di scelta rapida, i valori per gli attributi adminContextMenu e shellContextMenu richiedono il formato seguente.
<order number>,<clsid>
Il "<numero> ordine" è un numero senza segno che rappresenta la posizione dell'elemento nel menu di scelta rapida. Quando viene visualizzato un menu di scelta rapida, i valori vengono ordinati usando un confronto del "<numero> di ordine" di ogni valore. Se più valori hanno lo stesso "<numero> di ordine", tali estensioni del menu di scelta rapida vengono caricate nell'ordine in cui vengono lette dal server Active Directory. Se possibile, usare un "<numero> di ordine non esistente", ovvero uno che non è stato utilizzato da altri valori nella proprietà . Nella sequenza "<numero> ordine" non è consentita alcuna posizione iniziale e spazi vuoti.
"clsid" è la rappresentazione di stringa del CLSID prodotto dalla funzione StringFromCLSID.><
Nella shell di Windows sono supportate le voci di menu di scelta rapida a selezione multipla. In questo caso, viene richiamata l'estensione del menu di scelta rapida per ogni oggetto selezionato. Negli snap-in amministrativi di Active Directory sono supportate anche le voci di estensione del menu di scelta rapida a selezione multipla. In questo caso, la struttura DSOBJECTNAMES conterrà una struttura DSOBJECT per ogni oggetto directory selezionato.
Importante
Per la shell di Windows, le informazioni sull'identificatore di visualizzazione vengono recuperate all'accesso utente e memorizzate nella cache per la sessione dell'utente. Per gli snap-in amministrativi, i dati dell'identificatore di visualizzazione vengono recuperati quando lo snap-in viene caricato e memorizzato nella cache per la durata del processo. Per la shell di Windows, ciò significa che le modifiche agli identificatori di visualizzazione diventano effettive dopo che un utente si disconnette e riattiva nuovamente. Per gli snap-in amministrativi, le modifiche diventano effettive quando viene ricaricato lo snap-in o il file della console, ovvero se si avvia una nuova istanza del file della console o una nuova istanza di Mmc.exe e si aggiunge lo snap-in, vengono recuperati i dati dell'identificatore di visualizzazione più recente.
Per altre informazioni e un esempio di codice su come implementare un'estensione del menu di scelta rapida, vedere Codice di esempio per l'implementazione dell'oggetto COM del menu di scelta rapida.