Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
In questo esempio vengono illustrati l'utilizzo e l'implementazione dei punti di connessione, le interfacce IConnectionPointContainer e IConnectionPoint, in un ambiente con multithreading.
Nota: |
|---|
Questo esempio è il risultato di una modifica dell'esempio Connect ATL ed è finalizzato a illustrare il supporto COM del compilatore per i sink di punti di connessione. Il client Drive è un'implementazione nativa, mentre il client MDrive si basa di più sulla correttezza COM nell'utilizzo di una ClassFactory per creare oggetti sink. Né Drive né MDrive dipendono da ATL o MFC per il supporto COM. |
Nota sulla sicurezza: |
|---|
Il codice di esempio viene fornito per illustrare un concetto e non deve essere utilizzato in applicazioni o siti Web in quanto potrebbe non rappresentare le procedure di codifica più sicure. Microsoft esclude qualsiasi responsabilità di danni diretti o indiretti qualora il codice di esempio venga utilizzato per scopi diversi da quelli a cui è destinato. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu Guida.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Readme vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Per generare ed eseguire l'esempio
Aprire il file di soluzione connect.sln.
Scegliere Genera soluzione dal menu Genera.
Selezionare il client che si desidera eseguire, Drive o MDrive, quindi impostarlo come progetto di avvio. A tale scopo, fare clic con il pulsante destro del mouse sulla cartella del progetto e scegliere Imposta come progetto di avvio. Maggiori informazioni sui client sono fornite nella sezione Funzionamento dell'esempio.
Scegliere Avvia senza eseguire debug dal menu Debug.
Funzionamento dell'esempio
Il server è implementato in Connect.dll. Questa DLL consente la creazione di un oggetto COM CoRandom, implementato dalla classe C++ CRandom. L'oggetto COM supporta IConnectionPointContainer e l'interfaccia duale IRandom e accetta connessioni per l'interfaccia IRandomEvent.
L'interfaccia IRandom supporta i metodi riportati di seguito.
Start Avvia un thread all'interno dell'oggetto.
Stop Arresta un thread all'interno dell'oggetto.
StopAll Arresta tutti i thread in esecuzione.
Durante l'esecuzione, dai thread secondari all'interno dell'oggetto vengono continuamente generati eventi tramite il punto di connessione.
Vengono forniti due client, Drive e MDrive, che si trovano nelle sottodirectory Drive e MDrive.
Drive.exe costituisce una semplice applicazione console dalla quale viene fornito un unico oggetto che implementa l'interfaccia IRandomEvent. Consente di creare un oggetto CoRandom, di chiamare Advise e Unadvise sul punto di connessione e di generare eventi nell'oggetto dell'unità mediante l'oggetto CoRandom.
Mdrive.exe è un'applicazione MFC basata su finestre di dialogo, in grado di creare più sink di notifica e di controllare il numero di thread creati dal server. Quando si esegue Mdrive.exe, scegliere Start almeno una volta, quindi scegliere più volte Advise. Ogni volta che si sceglie il pulsante Advise viene aggiunto un punto di connessione e viene quindi estesa la visualizzazione. Se non si sceglie Advise, non verrà visualizzata alcuna attività.
Nota:
Nota sulla sicurezza: