Condividi tramite


Informazioni sulle estensioni dello spazio dei nomi della shell

Esplora risorse fornisce una rappresentazione grafica dello spazio dei nomi shell combinata con strumenti che consentono agli utenti di interagire con gli oggetti shell. Con un'estensione dello spazio dei nomi, è possibile accettare qualsiasi corpo di dati e presentarlo all'utente come cartella virtuale. Quando un utente accede a questa cartella, i dati vengono presentati come una gerarchia strutturata ad albero di cartelle e file, in modo analogo al resto dello spazio dei nomi shell. Gli utenti e le applicazioni possono interagire con il contenuto di questa cartella virtuale in modo molto simile a quello di qualsiasi altro oggetto spazio dei nomi. Questo documento illustra come creare un'estensione dello spazio dei nomi.

Funzionamento di un'estensione dello spazio dei nomi

Dietro le quinte, ogni cartella visualizzata da Esplora risorse è rappresentata da un oggetto COM (Component Object Model) denominato oggetto folder. Ogni volta che l'utente interagisce con una cartella o il relativo contenuto, shell comunica con l'oggetto cartella associato tramite una delle diverse interfacce standard. L'oggetto cartella esegue quindi qualsiasi operazione necessaria per rispondere all'azione dell'utente e shell aggiorna la visualizzazione di Esplora risorse.

La maggior parte dei file e delle cartelle con cui gli utenti interagiscono fanno parte del file system o di una cartella virtuale di sistema, ad esempio il Cestino. Altre documentazioni hanno illustrato come personalizzare il comportamento di queste cartelle standard per soddisfare i requisiti dell'applicazione modificando il Registro di sistema o implementando i gestori di estensione shell. Tuttavia, l'estensione della shell in questi modi è più utile quando le informazioni possono essere facilmente incluse in un pacchetto sotto forma di normali file system o cartelle.

Esistono diverse situazioni in cui l'archiviazione dei dati come raccolta di cartelle e file di file system potrebbe essere indesiderata o persino impossibile. Alcuni esempi di questo tipo di dati includono:

  • Raccolta di elementi inseriti in un unico file, ad esempio un database.
  • Raccolta di elementi archiviati in un computer remoto che non dispone di un file system Windows standard. Un esempio di tali dati è costituito dalle informazioni archiviate in un assistente digitale personale (PDA) o in una fotocamera digitale.
  • Raccolta di elementi che non rappresentano i dati archiviati. Un esempio di tali dati è costituito dai collegamenti della stampante contenuti nella cartella Stampanti standard.

Un modo per presentare questo tipo di dati a un utente consiste nel scrivere un'applicazione per consentire agli utenti di visualizzare e interagire con i vari elementi. Tuttavia, se i dati possono essere presentati come gerarchia di cartelle/file, gran parte delle funzionalità che sarà necessario implementare potrebbe essere servizi dell'interfaccia utente già forniti da Esplora risorse. Un approccio molto più efficiente potrebbe essere quello di scrivere un'estensione dello spazio dei nomi e consentire a Esplora risorse di diventare l'interfaccia utente grafica.

Per implementare un'estensione dello spazio dei nomi, le informazioni devono essere organizzate come spazio dei nomi strutturato ad albero. La radice dello spazio dei nomi viene presentata come cartella virtuale nello spazio dei nomi shell. La cartella radice e tutte le sottocartelle e gli elementi di dati diventano parte dello spazio dei nomi shell e Esplora risorse diventa l'interfaccia utente. È quindi possibile presentare le informazioni all'utente in modo familiare e facilmente accessibile con una programmazione molto inferiore all'interfaccia utente rispetto a quanto sarebbe necessario per un'applicazione personalizzata.

Un'estensione dello spazio dei nomi è costituita da due componenti di base:

  • Un gestore dati
  • Interfaccia tra Gestione dati e Esplora risorse

Il primo componente dell'elenco dipende interamente dall'utente. È possibile archiviare e gestire i dati in qualsiasi modo sia più efficace. Il secondo componente è il codice necessario per creare un pacchetto dei dati come oggetti cartella e gestire l'interazione con Esplora risorse. Esplora risorse può quindi chiamare questi oggetti per consentire agli utenti di visualizzare e interagire con i dati come se fosse una raccolta di cartelle e file. Gli oggetti cartella dell'estensione dello spazio dei nomi devono interagire con Esplora risorse come se fossero cartelle normali. Prima di tentare di implementare un'estensione dello spazio dei nomi, è necessario comprendere come Esplora risorse gestisce un oggetto cartella.

Oggetto Visualizzazione cartelle di sistema predefinito (DefView)

Shell fornisce un'implementazione predefinita della visualizzazione cartelle, nota in modo colloquiale come DefView, in modo da evitare gran parte del lavoro di implementazione della propria estensione dello spazio dei nomi. Poiché alcune funzionalità di visualizzazione non possono essere ottenute tramite visualizzazioni personalizzate, è spesso consigliabile utilizzare l'oggetto visualizzazione cartelle di sistema predefinito al posto di una visualizzazione personalizzata. Per altre informazioni, vedere SHCreateShellFolderView.

Interazione di Esplora risorse con un'estensione dello spazio dei nomi

Esplora risorse offre agli utenti un'interfaccia utente grafica che consente di eseguire diverse attività, tra cui:

  • Esplorazione della gerarchia dello spazio dei nomi e visualizzazione del contenuto delle cartelle.
  • Gestione del contenuto dello spazio dei nomi spostando, eliminando e copiando oggetti.
  • Recupero di un'ampia gamma di informazioni sugli oggetti.
  • Avvio di applicazioni.

L'interfaccia utente grafica di Esplora risorse include cinque componenti di base. La figura seguente denomina i componenti e mostra dove vengono in genere visualizzati in Esplora risorse.

illustrazione che mostra i componenti dell'interfaccia utente di Esplora risorse di Windows

Quando un utente visualizza una cartella appartenente a un'estensione dello spazio dei nomi in Esplora risorse, l'oggetto cartella ha almeno un controllo parziale sul contenuto di tutte e cinque le aree.

Visualizzazione ad albero

La visualizzazione albero offre una visualizzazione generale dello spazio dei nomi. Questa area ospita un controllo visualizzazione albero in grado di visualizzare ogni cartella dello spazio dei nomi e la posizione della cartella nella gerarchia dello spazio dei nomi. Un utente può eseguire diverse operazioni con l'area di visualizzazione albero, tra cui:

  • Visualizzazione o nascondere il livello successivo nello spazio dei nomi .
  • Copia, spostamento o eliminazione di cartelle.
  • Fare clic con il pulsante destro del mouse su una cartella per visualizzare un menu di scelta rapida.
  • Selezione di una cartella e visualizzazione del relativo contenuto nella visualizzazione cartelle.

La visualizzazione albero comunica con gli oggetti cartella principalmente tramite l'interfaccia IShellFolder . Ad esempio, quando un utente fa clic sul segno più (+) accanto all'icona della cartella, Esplora risorse espande la visualizzazione per visualizzare le sottocartelle della cartella. Per ottenere le informazioni necessarie per aggiornare la visualizzazione albero, shell effettua diverse chiamate all'interfaccia IShellFolder dell'oggetto cartella per:

  • Richiedere gli attributi della cartella.
  • Enumerare il contenuto della cartella.
  • Richiedere nomi visualizzati per ogni sottocartella.
  • Richiedere la visualizzazione di un'icona accanto a ogni cartella.

Esplora risorse aggiorna quindi la visualizzazione albero per visualizzare le sottocartelle della cartella selezionata. Se le sottocartelle hanno sottocartelle, accanto all'icona della cartella viene visualizzato un carattere '+'. Esistono diverse attività più sofisticate che un utente può eseguire anche con la visualizzazione albero, tra cui:

  • Utilizzando gli Appunti per tagliare o copiare una cartella e incollarla in un'altra cartella.
  • Usando il trascinamento della selezione per tagliare o copiare una cartella e rilasciarla in un'altra cartella.
  • Uso di un motore di ricerca per cercare gli elementi in una cartella o nelle relative sottocartelle.
  • Modifica delle proprietà della cartella.

Per una descrizione più dettagliata del modo in cui un'estensione dello spazio dei nomi gestisce queste azioni utente, vedere Implementazione delle interfacce oggetto cartella di base.

Visualizzazione cartelle

Quando un utente seleziona una cartella, il contenuto della cartella viene visualizzato nella visualizzazione cartelle. In alcuni casi, la normale funzionalità della visualizzazione cartelle si sovrappone alla visualizzazione albero. Gli utenti possono spostare o copiare cartelle, modificare le proprietà delle cartelle, visualizzare il contenuto di una sottocartella, visualizzare un menu di scelta rapida per una cartella e così via. Esistono tuttavia alcune differenze distinte tra la visualizzazione albero e la visualizzazione cartelle:

  • La visualizzazione cartella visualizza solo il contenuto di una singola cartella, non parte o tutta la gerarchia dello spazio dei nomi.
  • La visualizzazione cartella visualizza gli oggetti file e gli oggetti cartella.
  • La visualizzazione cartelle può visualizzare molte più informazioni sugli oggetti rispetto alla visualizzazione albero.
  • La visualizzazione cartelle consente alle estensioni dello spazio dei nomi di avere un controllo quasi completo sulle informazioni visualizzate e su come. Solo gli aspetti secondari della visualizzazione albero, ad esempio le icone delle cartelle, possono essere modificati.

A differenza della visualizzazione struttura ad albero, Esplora risorse non controlla direttamente il contenuto della visualizzazione cartelle. La visualizzazione cartelle è un'area fornita da Esplora risorse per gli oggetti cartella. La visualizzazione e la gestione del contenuto di una cartella nella visualizzazione cartelle sono responsabilità dell'oggetto cartella. Anche se la maggior parte delle visualizzazioni di cartelle segue un formato abbastanza standard, esistono in realtà poche limitazioni su ciò che può essere visualizzato o come. Un caso estremo è la cartella Internet, che è un browser completo.

Quando un utente seleziona una cartella appartenente all'estensione dello spazio dei nomi, crea una finestra e passa il relativo handle a Esplora risorse. Questa finestra diventa un elemento figlio della finestra di visualizzazione cartelle. Esplora risorse fornisce le dimensioni della finestra di visualizzazione cartelle, ma non impone restrizioni al contenuto della finestra figlio. È quindi possibile usare la finestra figlio per visualizzare la visualizzazione cartella della cartella.

Le estensioni dello spazio dei nomi usano uno dei due approcci per la creazione di una visualizzazione cartelle:

  • Usare la finestra figlio per ospitare un controllo visualizzazione elenco . Questo controllo consente di visualizzare il contenuto di una cartella in modo analogo alla visualizzazione classica di Esplora risorse.
  • Usare la finestra figlio per ospitare un controllo WebBrowser e usare un documento DHTML (Dynamic HTML) per visualizzare il contenuto della cartella.

Entrambi gli approcci visualizzano una visualizzazione cartelle molto simile a quella visualizzata per le cartelle di sistema. Tuttavia, se si desidera utilizzare uno schema di visualizzazione diverso, è possibile farlo.

Come la maggior parte delle applicazioni Windows, Esplora risorse fornisce all'utente una raccolta di strumenti. È disponibile una selezione completa degli strumenti tramite la barra dei menu. Gli strumenti più comunemente usati sono rappresentati anche da pulsanti o caselle di modifica su una barra degli strumenti. A differenza di molte applicazioni Windows, la barra dei menu di Esplora risorse è in realtà un controllo barra degli strumenti che è stato personalizzato per comportarsi come un menu convenzionale. Sia la barra dei menu che la barra degli strumenti sono incorporate in un controllo rebar per consentire agli utenti di organizzare i singoli controlli in base alle proprie esigenze.

Per impostazione predefinita, Esplora risorse supporta un set standard di pulsanti e voci di menu, ad esempio Copia e Proprietà. L'estensione dello spazio dei nomi può personalizzare la barra dei menu e le barre degli strumenti eliminando gli strumenti standard e aggiungendo strumenti personalizzati. Quando l'oggetto visualizzazione cartelle viene inizializzato, Esplora risorse passa un puntatore alla relativa interfaccia IShellBrowser . Questa interfaccia supporta diversi metodi che è possibile chiamare per personalizzare la barra dei menu e la barra degli strumenti. Quando l'utente seleziona una delle voci di menu o dei pulsanti della barra degli strumenti personalizzati, Esplora risorse inoltra i messaggi WM_COMMAND per i menu personalizzati e le voci della barra degli strumenti alla routine della finestra figlio.

Barra di stato

Nella barra di stato di Esplora risorse vengono visualizzate informazioni sull'oggetto attualmente selezionato. L'estensione dello spazio dei nomi può usare la barra di stato per visualizzare informazioni sullo stato, ad esempio una stringa di testo. È possibile personalizzare la barra di stato chiamando IShellBrowser.