前へ | 次へ | 目次 | 索引 |
ビルド・プロシージャ 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 |
C.1.2.3 Windows NT でのアプリケーションの実行
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 > |
C.2 オートメーションの例 (Dispatch_Sample1)
この例では,デュアル・インタフェースとしてオートメーション・コンポーネント・サーバを実装します。この例には,ディスク・インタフェースを介してデュアル・インタフェースに接続する Dclientと, IUnknownインタフェース (v-table を使用) を介して接続する COM クライアント実装である Clientの 2 つのクライアントがあります。
このサンプルでは,2 つの OpenVMS システムの間の接続,2 つの Windows NT システムの間の接続,OpenVMS システムと Windows NT システムの間の接続を示します。
C.2.1 OpenVMS の場合の手順
ここでは,OpenVMS システムでアプリケーションを構築する方法について説明します。
C.2.1.1 OpenVMS でのアプリケーションの構築
ファイルを DCOMexamples ディレクトリからローカル・ディレクトリにコピーします。次の例を参照してください。
$ set default mydisk:[mydirectory] $ copy dcom$examples:[dispatch_sample1]*.* [] |
アプリケーションを構築するには,次のコマンド・プロシージャを実行します。
$ @build_dispatch_sample1 |
MMS がある場合は,次の例に示すように,インクルードされた説明ファイルを使用できます。
$ MMS/DESCRIPTION=BUILD_DISPATCH_SAMPLE1.MMS |
BUILDファイルはプロセス内サーバとプロセス外サーバの両方を構築し,登録します。
C.2.1.2 OpenVMS でのアプリケーションの登録
ビルド・プロシージャは CMPNT$SHR.EXEと CMPNT.EXEの両方を自動的に登録します。コンポーネントを手動で登録するには,次の操作を行います。
$ regsvr32 :== $DCOM$REGSVR32.EXE $ regsvr32 path-nameCMPNT$SHR.EXE |
$ regsvr32 /u path-nameCMPNT$SHR.EXE |
$ cmpnt :== $path-nameCMPNT.EXE $ cmpnt /regserver |
$ cmpnt /unregserver |
C.2.1.3 プロセス外サーバとしてのOpenVMS でのアプリケーションの実行
コンポーネントがプロセス外サーバであるサンプルを実行するには, 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と入力して,プロセス外サーバを選択します。
C.2.1.4 OpenVMS でのアプリケーションの実行とリモート・サーバの指定
リモート・マシン (またはサーバ・システム) として指定したシステムで 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と入力して,リモート・サーバ実行,つまりサーバ外プロセスを選択します。
C.2.1.5 プロセス内サーバとしての OpenVMS でのアプリケーションの実行
コンポーネントがプロセス内サーバであるサンプルを実行するには,クライアントだけを実行します。次の例を参照してください。
$ run dclient |
$ run client |
クライアントは次のメッセージを表示します。
To which server do you want to connect? 1) In-Process Server 2) Out-of-Process Server : |
1と入力して,プロセス内サーバを選択します。
C.2.2 Windows NT の場合の手順
ここでは,Windows NT システムでアプリケーションを構築する方法について説明します。
C.2.2.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 はプロセス内サーバとプロセス外サーバの両方を構築し,登録します。
C.2.2.2 Windows NT でのアプリケーションの登録
ビルド・プロシージャ make-oneは CMPNT.DLL, PROXY.DLL, CMPNT.EXEを自動的に登録します。次の例を参照してください。
regsvr32 -s Cmpnt.dll Cmpnt /RegServer |
アプリケーションの登録を解除するには,次のコマンドを入力します。
regsvr32 -u Cmpnt.dll Cmpnt /UnRegServer |
C.2.2.3 Windows NT でのアプリケーションの実行
DCLIENTまたは CLIENTを実行します。 OpenVMS でプロセス内サーバとしてアプリケーションを実行する手順 ( 付録 C.2.1.5 項 ),およびプロセス外サーバとして実行する手順 ( 付録 C.2.1.3 項 ) と同じ手順を実行します。
リモート・マシンの名前 (UNC または DNS) を引数として使用して,リモート・マシンでオブジェクトのインスタンスを作成します。
ここでは, COM for OpenVMS の以前のバージョンからアップグレードするときに必要な手順について説明します。
D.1.1 既存の COM for OpenVMS アプリケーションの再構築
COM for OpenVMS アプリケーションに次のいずれかの API に対する参照が含まれる場合は,その参照を含むモジュールを再コンパイルし,アプリケーションを再リンクしなければなりません。
LoadLibraryA
LoadLibraryW
LoadLibraryExW
LoadLibraryExA
GetModuleFileNameA
GetModuleFileNameW
GetModuleHandleW
GetProcAddress
FreeLibrary
COM Version 1.0 for OpenVMS に付属している一部のサンプル COM アプリケーションでは,REGISTY モジュールと CMPNT モジュールにこれらの API に対する参照が含まれています。サンプルを構築した場合や,これらのサンプルをもとに独自の COM アプリケーションを構築した場合は,そのアプリケーションを再コンパイルし,再リンクしなければなりません。
D.1.2 Windows NT システムの構成
COM Version 1.0 for OpenVMS (非認証 COM) の場合, COM for OpenVMS のマニュアルには,非認証 COM for OpenVMS が Windows NT と相互運用できるように, Windows NT レジストリの特定の値を変更するように説明されていました。 COM Version 1.1 for OpenVMS では,認証がサポートされるようになりました。この結果, COM Version 1.0 for OpenVMS で変更が必要だった Windows NT Registry の値をデフォルトの認証設定に戻す必要があります。 Windows NT Registry の値を設定するには,次の操作を行います。
HKEY_LOCAL_MACHINE\Software\Microsoft\Ole |
値名 | COM Version 1.0 for OpenVMS での推奨設定 | デフォルト (認証) 値データ ( COM Version 1.1 for OpenVMS の設定) | レジストリの種類 |
---|---|---|---|
ActivationSecurity | N | 削除 | REG_SZ |
PersonalClasses | N | 削除 | REG_SZ |
これらの設定を表示し,更新するには, Windows NT の Administrator 特権が必要です。 |
OpenVMS システムで, OpenVMS Registry の特定の値を設定またはリセットしなければなりません。 Windows NT Registry エディタを使用して OpenVMS Registry を変更することができ, REG$CP ユーティリティを使用することもできます。 OpenVMS Registry の値を設定するには,次の操作を行います。
HKEY_LOCAL_MACHINE\Software\Microsoft\Ole |
$ MCR REG$CP REG> LIST VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole REG> DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole ActivationSecurity REG> DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole PersonalClasses REG> DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole LegacyAuthenticationLevel REG> DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole LegacyImpersonationLevel REG> LIST VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole REG> EXIT |
D.2 Windows NT で以前に構成されたアプリケーション
Windows NT で COM Version 1.0 for OpenVMS (非認証 COM for OpenVMS ) と組み合わせて実行するようにアプリケーションを構成した場合は, COM Version 1.1 for OpenVMS (認証 COM for OpenVMS ) を利用できるように, Windows NT の設定を再構成しなければなりません。
COM Version 1.0 for OpenVMS では, COM for OpenVMS のマニュアルに,コンポーネントを登録した後,認証されていないユーザがイメージをアクティブにすることができるように,そのコンポーネントでセキュリティ・プロパティを確認するように説明されていました。次の操作を行います。
COM Version 1.0 for OpenVMS では,セキュリティ・プロパティを設定した後,アプリケーションを実行するためにアカウントの ID を設定しなければなりませんでした。
COM Version 1.1 for OpenVMS では,アカウントの ID はオプション 1 または 2 に設定できます。
「識別」タブをクリックして,ユーザ・アカウントの選択を表示します。「対話ユーザー」オプションを選択します。
前へ | 次へ | 目次 | 索引 |