giovedì 9 aprile 2009

Microsoft Document Explorer

Interagire da codice con Microsoft Document Explorer
a cura di Alessandro Del Sole (requisiti: conoscenza intermedia di Visual Studio 2005 e .NET Framework)

Premessa
Microsoft Document Explorer (DExplore.exe) è l'applicazione a corredo di Visual Studio (sin dalla versione .NET 2002) che consente di visualizzare la documentazione installata sul proprio computer, ossia il cosiddetto insieme delle guide integrate di Visual Studio, nel formato compilato .HxS, secondo lo standard Microsoft Help 2.x. Detto insieme contiene sia la libreria MSDN sia la documentazione aggiuntiva a complemento di altre applicazioni Microsoft o di altri produttori.
Grazie a Document Explorer è possibile avere a disposizione, in un'unica istanza di questo browser, tutta la documentazione installata, senza dover aprire decine di finestre separate, e la possibilità di ricerche su internet.

Quello che forse è meno noto, è che si può interagire con Document Explorer anche tramite codice, dall'interno delle proprie applicazioni, in maniera similare a quanto avviene col servizio di Windows che consente di visualizzare i file della guida compilati in formato .chm (hh.exe). In questo secondo caso, però, si utilizzano alcune funzioni API. Per lavorare con Document Explorer esistono invece diverse possibilità, prevalentemente legate al .NET Framework.
E' possibile, infatti, richiamare Document Explorer secondo le seguenti modalità:

  1.  tramite gli assembly di Visual Studio, secondo il concetto di Visual Studio Extensibility, secondo cui è possibile lavorare con Document Explorer solo con Visual Studio in esecuzione;
  2.  tramite la libreria dei tipi VsHelp80.Olb, grazie alla quale non è necessario avere Visual Studio in esecuzione;
  3.  tramite un progetto macro;
  4.  tramite un oggetto VSPackage.

In questo articolo analizzeremo i primi tre punti, mentre tralasceremo l'ultimo, poiché questo richiede conoscenze avanzate della programmazione orientata all'ambiente di sviluppo e degli assembly che mantengono il funzionamento dell'IDE. Per ulteriori approfondimenti sul punto 4, potete scaricare il Visual Studio 2005 SDK e studiare la relativa documentazione.

In considerazione di quanto appena detto, ho predisposto tre sorgenti: un progetto in grado di interagire con Document Explorer mantenendo attivo Visual Studio (chiamato ProgrammingDExplore), un progetto per l'interazione con Document Explorer senza istanze di Visual Studio attive (chiamato ExploitDExplore) e un modulo macro, chiamato HelpModule.vb, per quanto riguarda il punto 3 che precede. Per proseguire nella lettura dell'articolo, pertanto, è consigliabile scaricare i sorgenti di esempio disponibili nell'area download di VB-T&T.

In realtà, l'argomento Document Explorer mi serve più che altro come scusa per illustrarvi tecniche diverse di programmazione, come la creazione di macro via codice e la comprensione degli assembly gestiti che stanno dietro all'IDE di Visual Studio 2005.

L'utilità
A cosa serve interagire con Document Explorer? Poniamo il caso che abbiate sviluppato e distribuito la documentazione compilata a corredo del vostro applicativo in formato .HxS. Ricordando che questo tipo di formato si preferisce qualora realizziate applicazioni o componenti dedicati all'utilizzo in Visual Studio, potreste avere la necessità di implementare il menu "?" per visualizzare tale documentazione. Affinché il vostro utente sia in grado di visualizzare tale documentazione, voi dovete essere in grado di aprirla in Document Explorer da codice.

Scopo di questo articolo, oltre a quello relativo al caso pratico appena detto, è anche quello di illustrarvi alcune tecniche di programmazione un po' più raffinate, che possano farvi capire alcuni concetti di funzionamento dell'IDE di Visual Studio 2005.

from: http://www.visual-basic.it/articoli/adsInteragireDExplore.htm

Nessun commento: