[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ 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 ]