Condividi tramite


Esempio IPDRIVE: dimostrazione di un'applicazione client di automazione

Aggiornamento: novembre 2007

L'esempio IPDRIVE rappresenta una semplice applicazione client di automazione (precedentemente nota come automazione OLE) con cui si che controlla l'applicazione di esempio INPROC. Nell'esempio viene eseguito il test delle funzionalità fornite da INPROC, un server di automazione in-process. IPDRIVE è in grado di controllare la versione in-process, quella out-of-process o la versione server locale di INPROC, dimostrando i vantaggi che è possibile ottenere in termini di prestazioni con i componenti in-process. Per ulteriori informazioni, vedere l'esempio INPROC.

Nota:

Prima di IPDRIVE, è necessario eseguire l'applicazione di esempio INPROC in modo da consentire la registrazione di INPROC nel Registro di sistema.

Nota sulla sicurezza:

Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti.

Per ottenere gli esempi e le istruzioni per l'installazione:

  • In Visual Studio scegliere Esempi dal menu ?.

    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 Leggimi 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 IPDRIVE

  1. Seguire le istruzioni per eseguire, generare e registrare l'esempio INPROC.

  2. Aprire la soluzione ipdrive.sln.

  3. Scegliere Genera dal menu Genera.

  4. Eseguire IPDRIVE come applicazione autonoma per consentirne la registrazione sul sistema.

    Durante l'esecuzione di IPDRIVE, viene caricato l'esempio INPROC e viene creato un oggetto mappa variant che è possibile modificare tramite l'interfaccia di IPDRIVE.

Un oggetto mappa variant è molto simile all'insieme CMap di MFC e viene utilizzato per eseguire il mapping di un valore arbitrario a un altro valore arbitrario. Ogni valore è un VARIANT, costituito da un tipo e da un valore. Mediante l'interfaccia utente di IPDRIVE è possibile accedere sia al tipo che al valore. Per tutte le coppie tipo/valore è possibile eseguire il mapping a qualsiasi altra coppia tipo/valore.

In IPDRIVE sono inoltre disponibili due pulsanti, Test1 e Test2, che consentono di verificare le prestazioni dell'applicazione server INPROC. Tramite questi pulsanti viene eseguito il test dell'overhead delle chiamate di funzioni di automazione. Generalmente l'overhead delle chiamate di funzioni è molto maggiore nella versione server locale di INPROC rispetto alla versione in-process. Il server locale, infatti, viene eseguito come EXE separato nello spazio degli indirizzi del server e richiede una chiamata di procedura remota (RPC) per accedere ai metodi e alle proprietà degli oggetti. Al contrario, il server in-process viene caricato come DLL nello spazio degli indirizzi del client e non richiede alcuna RPC. L'esecuzione dei pulsanti Test1 e Test2 ha una durata di cinque secondi e al termine viene visualizzato il numero di chiamate. Maggiore è il numero di chiamate, migliori sono le prestazioni.

INPROC contiene anche un insieme più semplice, una matrice di stringhe, non utilizzato da IPDRIVE.

Parole chiave

Nell'esempio vengono illustrate le seguenti parole chiave:

AfxMessageBox; AfxOleInit; AfxThrowUserException; CArchive::IsStoring; CComboBox::GetCurSel; CComboBox::SetCurSel; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::OnNewDocument; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CObject::AssertValid; CObject::Dump; CObject::Serialize; COleDispatchDriver::GetProperty; COleDispatchDriver::InvokeHelper; COleDispatchDriver::SetProperty; CScrollView::ResizeParentToFit; CStatusBar::Create; CStatusBar::SetIndicators; CString::AllocSysString; CString::Format; CString::GetBuffer; CString::LoadString; CString::ReleaseBuffer; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnInitialUpdate; CWinApp::AddDocTemplate; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnFileNew; CWnd::DoDataExchange; CWnd::GetDlgItem; CWnd::GetParentFrame; CWnd::GetWindowText; CWnd::OnCreate; CWnd::SetDlgItemText; CWnd::SetWindowText; DragAcceptFiles; GetKeyState; GetTickCount; max; wsprintf

Nota:

Alcuni esempi, tra cui il presente, non sono stati cambiati per riflettere le modifiche apportate alle procedure guidate, alle librerie e al compilatore di Visual C++, tuttavia forniscono comunque le istruzioni per completare l'attività desiderata.

Vedere anche

Altre risorse

Esempi relativi ad MFC