次の方法で共有


IPDRIVE サンプル : オートメーション クライアント アプリケーションの例

更新 : 2007 年 11 月

IPDRIVE サンプルは、INPROC サンプル アプリケーションを呼び出す、単純なオートメーション (以前の OLE オートメーション) クライアント アプリケーションです。このサンプルは、オートメーション インプロセス サーバーである INPROC に用意されている機能をテストします。IPDRIVE は、インプロセスの INPROC だけでなく、アウトプロセスやローカル サーバーの INPROC も呼び出すことができ、インプロセス コンポーネントのパフォーマンスの利点を示します。詳細については、「INPROC サンプル : インプロセス オートメーション サーバー アプリケーションの例」を参照してください。

xw260f0s.alert_note(ja-jp,VS.90).gifメモ :

IPDRIVE を実行する前に、INPROC サンプル アプリケーションを実行して INPROC 自体をレジストリに登録する必要があります。

xw260f0s.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

IPDRIVE サンプルをビルドおよび実行するには

  1. 手順に従って、INPROC サンプルの実行、ビルド、および登録を行います。

  2. ソリューション ファイル ipdrive.sln を開きます。

  3. [ビルド] メニューの [ビルド] をクリックします。

  4. システムに登録するために、IPDRIVE をスタンドアロン アプリケーションとして実行します。

    IPDRIVE を実行すると、INPROC サンプルが読み込まれ、IPDRIVE のインターフェイスを使用して操作できるバリアント マップ オブジェクトが作成されます。

バリアント マップ オブジェクトは MFC CMap コレクションによく似ています。このオブジェクトは、任意の値を別の任意の値に変換するために使用します。各値は VARIANT であり、型と値で構成されます。IPDRIVE ユーザー インターフェイスを使用すると、型と値の両方にアクセスできます。変換できる型と値の組み合わせは任意です。

また、IPDRIVE には [Test1] および [Test2] という 2 つのボタンが用意されています。これらを使用すると、INPROC サーバー アプリケーションのパフォーマンスをテストできます。ほとんどの部分では、これらの関数はオートメーションの関数呼び出しのオーバーヘッドをテストします。関数呼び出しのオーバーヘッドは、インプロセスの INPROC よりもローカル サーバーの INPROC の方が大きくなると予想されます。ローカル サーバーは、独自のアドレス空間で個別の実行可能ファイルとして実行します。このため、オブジェクトのメソッドやプロパティにアクセスするためにリモート プロシージャ コール (RPC) が必要です。ただし、インプロセス サーバーはクライアントのアドレス空間に DLL として読み込まれるため、RPC は不要です。[Test1] ボタンと [Test2] ボタンは両方ともちょうど 5 秒間実行し、呼び出し回数を表示します。呼び出し回数が多いほど、パフォーマンスが優れています。

INPROC には、さらに単純なコレクション (文字列配列) も含まれています。これは IPDRIVE では実行されません。

キーワード

このサンプルでは、次のキーワードを使用します。

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

xw260f0s.alert_note(ja-jp,VS.90).gifメモ :

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

MFC サンプル