DCOM サンプル:Windows サービスで複数のクライアントから COM オブジェクトを呼び出します
DCOM サンプルでは、複数のクライアントが各自のコンピューターから Windows サービスに実装されている COM オブジェクトを呼び出す方法を示します。 サンプルは複数の部分で構成されています。
DrawServ COM オブジェクトを実装する Windows サービスです。
ATLDraw DrawServ の COM オブジェクトに接続するクライアント。
DrawCtl コントロールのバージョンの ATLDraw。 コンピューター名の文字列パラメーターをとる Connect、Disconnect、および Clear の各メソッドがあります。
MFCCont MFC には、DrawCtl のコンテナーです。 二重引用符やスラッシュを付けずにサーバー (リモート サーバー可) の名前を入力します。
ATLCont ATL には、DrawCtl のコンテナーです。 二重引用符やスラッシュを付けずにサーバー (リモート サーバー可) の名前を入力します。
このサンプルを動作させるには、すべてのコンピューターで Windows 2000 以降を実行する必要があります。
このサンプルと、ATL DCOM サンプルを比較してください。
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
このサンプルをビルドして実行するには
ソリューション ファイル 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 オブジェクトをリモートで呼び出しを示します