DCOM サンプル : 複数のクライアントからの Windows サービスの COM オブジェクトの呼び出し
更新 : 2007 年 11 月
DCOM サンプルでは、複数のクライアントが各自のコンピュータから Windows サービスに実装されている COM オブジェクトを呼び出す方法を示します。サンプルは複数の部分で構成されています。
DrawServ COM オブジェクトを実装する Windows サービス。
ATLDraw DrawServ COM オブジェクトに接続するクライアント。
DrawCtl ATLDraw のコントロール バージョン。コンピュータ名の文字列パラメータをとる Connect、Disconnect、および Clear の各メソッドがあります。
MFCCont DrawCtl の MFC コンテナ。二重引用符やスラッシュを付けずにサーバー (リモート サーバー可) の名前を入力します。
ATLCont DrawCtl の ATL コンテナ。二重引用符やスラッシュを付けずにサーバー (リモート サーバー可) の名前を入力します。
このサンプルを動作させるには、すべてのコンピュータで Windows 2000 以降を実行する必要があります。
このサンプルと、ATL DCOM サンプルを比較してください。
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないため、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。 |
サンプルとそのインストール手順を取得するには
Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。
詳細については、「サンプル ファイルの格納場所」を参照してください。
使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。
サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。
サンプルのビルドと実行
このサンプルをビルドして実行するには
ソリューション ファイル dcom.sln を開きます。
DrawServ サンプルと ATLDraw サンプルをビルドします。
サンプルを実行する各コンピュータに、Drawserv.exe と Atldraw.exe をコピーします。/RegServer または -RegServer (大文字と小文字は区別しない) コマンド ライン引数を指定して DrawServ を実行し、各コンピュータのサーバーを登録します。次に例を示します。
DrawServ /RegServer
サーバーを登録するには、Register.dll が登録されている必要があります。サーバーの CLSID とサーバー タイプ ライブラリをクライアントに登録する必要があるため、各クライアントにサーバーをコピーする必要があります。
コントロール パネルの [管理ツール] の [サービス] を使用して、サーバーのサービスを開始します。
各クライアントの DCOMCNFG を使用して、DrawServ クラスのプロパティを選択します。[場所] タブの [次のコンピュータ上でアプリケーションを実行する] を選択し、サーバー オブジェクトを実行するコンピュータ名を入力します。[次のコンピュータ上でアプリケーションを実行する] チェック ボックスをオフにします。
ATLDraw を実行し、[Server] をクリックします。各クライアントのメニューから接続します。クライアント ウィンドウで、マウスの左ボタンを押しながら、線をドラッグしてください。引いた線は、同じサーバーに接続された各クライアントに表示されます。[View] メニューの [Color] をクリックして、各クライアントの色を変更することもできます。
リモート サーバーとの接続に問題がある (たとえば、Tstcon32.exe が CoInitializeSecurity を呼び出さない) 場合は、クライアントで DCOMCNFG を実行し、[既定のプロパティ] タブを開きます。[既定の認証レベル] を [なし]、[既定の偽装レベル] を [匿名] に設定します。
参照
処理手順
DCOM サンプル : COM オブジェクトのリモート呼び出し