[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]
SAMPLE1
とDISPATCH_SAMPLE1
は,Microsoft Pressが出版しているDale Rogerson
著『Inside COM』から抜粋したものです。
このサンプルでは,COMクライアントとサーバを実装します。コンポーネントは
IX
とIY
という2つのインタフェースを提供します。
また,クライアントはコンポーネントに対して3番目のインタフェース
IZ
を問い合わせていますが,これはコンポーネントが提供していないインタフェースです。
このサンプルでは,2つのOpenVMSシステム間の接続,2つのWindows NTシステム間の接続,OpenVMS システムとWindows NTシステムの間の接続を示しています。
ここでは,OpenVMSシステムでアプリケーションを構築する方法について説明します。
ファイルをDCOM
examplesディレクトリからローカル・ディレクトリにコピーします。
次の例を参照してください。
$ set default mydisk:[mydirectory] $ copy dcom$examples:[sample1]*.* []
アプリケーションを構築するには,次のコマンド・プロシージャを実行します。
$ @build_sample1
MMSがある場合は,次に示すように,インクルードされた説明ファイルを使用できます。
$ MMS/DESCRIPTION=BUILD_SAMPLE1.MMS
BUILD
ファイルは,プロセス内サーバとプロセス外サーバの両方を構築し,
登録します。
ビルド・プロシージャは,CMPNT$SHR.EXE
とCMPNT.EXE
の両方を自動的に登録します。コンポーネントを手動で登録するには,
次の操作を行います。
REGSVR32
ユーティリティを使用します。
次の例を参照してください。
$ regsvr32 :== $DCOM$REGSVR32.EXE $ regsvr32 path-nameCMPNT$SHR.EXE
REGSVR32
ユーティリティを使用します。次の例を参照してください。
$ regsvr32 /u path-nameCMPNT$SHR.EXE
$ cmpnt :== $path-nameCMPNT.EXE $ cmpnt /regserver
$ cmpnt /unregserver
REGSVR32
ユーティリティを使用します。
次の例を参照してください。
$ regsvr32 path-namePROXY$SHR.EXE
REGSVR32
ユーティリティを使用します。次の例を参照してください。
$ regsvr32 /u path-namePROXY$SHR.EXE
コンポーネントがプロセス外サーバであるサンプルを実行するには,
CMPNT.EXE
を実行します。コンポーネントから
Server: Waiting
というメッセージが表示されたら,クライアントを別のウィンドウまたは端末セッションで実行します。
$ run cmpnt
$ client :== $path-nameCLIENT.EXE For OutProc: $ client 2 $
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
2
と入力して,プロセス外サーバを選択します。
リモート・マシン(またはサーバ・システム)として指定したシステムで
CMPNT.EXE
を実行します。リモート・システムはWindows
NTシステムでもかまいません。コンポーネントからServer:
Waiting
メッセージが返された場合は,ローカル・マシン(またはクライアント・
システム)として指定したシステムでクライアントを実行します。
次の例を参照してください。
$ client :== $path-nameCLIENT.EXE $ client remote-system-name 2 $
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
2
と入力して,リモート・サーバ,つまりプロセス外サーバの実行を選択します。
コンポーネントがプロセス内サーバであるサンプルを実行するには,クライアントだけを実行します。 次の例を参照してください。
For InProc: $ client 1 $
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
1
と入力して,プロセス内サーバを選択します。
ここでは,Windows NTシステムでアプリケーションを構築する方法について説明します。
README-SAMPLE1.TXT
ファイルと次のファイルをCOM
examplesディレクトリからWindows NTシステムにコピーします。
CLIENT.CXX CMPNT.CXX CMPNT.DEF GUIDS.CXX MAKE-ONE. MAKEFILE.BAT PROXY.DEF REGISTRY.CXX REGISTRY.H SERVER.IDL
MAKEFILE.BAT
ファイルを使用して,サンプルを構築します。
次の例を参照してください。
> MAKEFILE
Makefileはプロセス内サーバとプロセス外サーバの両方を構築し,登録します。
ビルド・プロシージャmake-one
はCMPNT.DLL
,
PROXY.DLL
,CMPNT.EXE
を自動的に登録します。次の例を参照してください。
regsvr32 -s Cmpnt.dll regsvr32 -s Proxy.dll Cmpnt /RegServer
アプリケーションの登録を解除するには,次のコマンドを入力します。
regsvr32 -u Cmpnt.dll regsvr32 -u Proxy.dll Cmpnt /UnRegServer
CLIENT
を実行します。OpenVMSでイン・プロセス・
サーバとしてアプリケーションを実行する手順(第C.1.1.5項),
およびプロセス外サーバとしてアプリケーションを実行する手順(
第C.1.1.3項)と同じ手順を実行します。
リモート・マシンの名前(UNCまたはDNS)を引数として使用して,リモート・ マシンでオブジェクトのインスタンスを作成します。次の例を参照してください。
>Client hostname ! point the client at the remote system 2 ! means outproc invocation >
この例では,デュアル・インタフェースとしてオートメーション・コンポーネント・
サーバを実装します。この例には,ディスク・インタフェースを介してデュアル・
インタフェースに接続するDclient
と,IUnknown
インタフェース(v-tableを使用)を介して接続するCOM
クライアント実装であるClient
の2つのクライアントがあります。
このサンプルでは,2つのOpenVMSシステムの間の接続,2つのWindows NT システムの間の接続,OpenVMSシステムとWindows NTシステムの間の接続を示します。
ここでは,OpenVMSシステムでアプリケーションを構築する方法について説明します。
ファイルをDCOM
examplesディレクトリからローカル・ディレクトリにコピーします。
次の例を参照してください。
$ set default mydisk:[mydirectory] $ copy dcom$examples:[dispatch_sample1]*.* []
アプリケーションを構築するには,次のコマンド・プロシージャを実行します。
$ @build_dispatch_sample1
MMSがある場合は,次の例に示すように,インクルードされた説明ファイルを使用できます。
$ MMS/DESCRIPTION=BUILD_DISPATCH_SAMPLE1.MMS
BUILD
ファイルはプロセス内サーバとプロセス外サーバの両方を構築し,
登録します。
ビルド・プロシージャはCMPNT$SHR.EXE
とCMPNT.EXE
の両方を自動的に登録します。コンポーネントを手動で登録するには,
次の操作を行います。
REGSVR32
ユーティリティを使用します。
次の例を参照してください。
$ regsvr32 :== $DCOM$REGSVR32.EXE $ regsvr32 path-nameCMPNT$SHR.EXE
REGSVR32
ユーティリティを使用します。次の例を参照してください。
$ regsvr32 /u path-nameCMPNT$SHR.EXE
$ cmpnt :== $path-nameCMPNT.EXE $ cmpnt /regserver
$ cmpnt /unregserver
コンポーネントがプロセス外サーバであるサンプルを実行するには,
CMPNT.EXE
を実行します。
コンポーネントからServer: Waiting
メッセージが表示されたら,
別のウィンドウまたは端末セッションでクライアントを実行します。
$ run cmpnt
$ run dclient
$ run client
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
2
と入力して,プロセス外サーバを選択します。
リモート・マシン(またはサーバ・システム)として指定したシステムで
CMPNT.EXE
を実行します。リモート・システムはWindows
NTシステムでもかまいません。Server: Waiting
メッセージがコンポーネントから表示されたら,
ローカル・マシン(またはクライアント・
システム)として指定したシステムでクライアントを実行します。
次の例を参照してください。
COMクライアントを使用するには,次のように入力します。
$ client :== $path-nameCLIENT.EXE $ client remote-system-name To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
2
と入力して,リモート・サーバ実行,つまりサーバ外プロセスを選択します。
コンポーネントがプロセス内サーバであるサンプルを実行するには,クライアントだけを実行します。 次の例を参照してください。
$ run dclient
$ run client
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server :
1
と入力して,プロセス内サーバを選択します。
ここでは,Windows NTシステムでアプリケーションを構築する方法について説明します。
README-DISPATCH-SAMPLE1.TXT
ファイルと次のファイルをCOM examples
ディレクトリからWindows NTシステムにコピーします。
CLIENT.CXX DCLIENT.CXX CMPNT.CXX CMPNT.DEF MAKE-ONE. MAKEFILE.BAT REGISTRY.CXX REGISTRY.H SERVER.IDL
MAKEFILE.BAT
ファイルを使用してサンプルを構築します。
次の例を参照してください。
C:> MAKEFILE
Makefileはプロセス内サーバとプロセス外サーバの両方を構築し,登録します。
ビルド・プロシージャmake-one
はCMPNT.DLL
,
PROXY.DLL
,CMPNT.EXE
を自動的に登録します。次の例を参照してください。
regsvr32 -s Cmpnt.dll Cmpnt /RegServer
アプリケーションの登録を解除するには,次のコマンドを入力します。
regsvr32 -u Cmpnt.dll Cmpnt /UnRegServer
DCLIENT
またはCLIENT
を実行します。
OpenVMSでプロセス内サーバとしてアプリケーションを実行する手順(第C.2.1.5項),
およびプロセス外サーバとして実行する手順(
第C.2.1.3
項)と同じ手順を実行します。
リモート・マシンの名前(UNCまたはDNS)を引数として使用して,リモート・ マシンでオブジェクトのインスタンスを作成します。
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]