OpenVMS Alpha オペレーティング・システム

OpenVMS Alpha
オペレーティング・システム

コネクティビティ開発者ガイド

-- COM for OpenVMS,OpenVMS Registry,OpenVMS Events について --

AA-RGLUA-TE


1999 年 9 月

本書は,COM for OpenVMS,OpenVMS Registry,OpenVMS Events logging についての説明書です。また,OpenVMS と Windows NT の認証および相互運用についても説明しています。

改訂/更新情報: 本書は改訂マニュアルです。

ソフトウェア・バージョン: OpenVMS Alpha Version 7.2-1
Microsoft Windows NT 4.0 SP3


1999 年 9 月

Copyright ©1999

本製品は Microsoft 社からライセンスされたソフトウェアを含みます。
Copyright © Microsoft Corporation, 1991-1998. All rights reserved.

本製品は Bristol Technology 社からライセンスされたソフトウェアを含みます。
Copyright © Bristol Technology, Inc, 1990-1998. All rights reserved.

以下は,米国 Compaq Computer Corporation の商標です。

Alpha, AlphaServer, AlphaStation, DEC, DIGITAL, OpenVMS, POLYCENTER, Tru64, VAX, VMS, COMPAQ, Compaq ロゴ,および DIGITAL ロゴ。

以下は,他社の商標です。

ActiveX, Microsoft, MS, MS-DOS, Win32, Windows, Windows NT, NT, Windows 95, and Windows 98 は Microsoft 社の商標です。
Adobe, Display POSTSCRIPT および POSTSCRIPT は Adobe Systems 社の商標です。
Apple, Mac, Macintosh, Power Macintosh は Apple Computer 社の商標です。
AT&T は American Telephone and Telegraph 社の商標です。
Motif, OSF/1, UNIX, "X" device, IT DialTone, X/Open, The Open Group は米国および他国の Open Group の商標です。
Unicode は Unicode 社の商標です。
Wind/U は Bristol Technology 社の商標です。

その他のすべての商標および登録商標は,それぞれの所有者が保有しています。

本書にある COM コードの例は,Dale Rogerson 著『Inside COM』 (Microsoft Press, 1997) からの引用です。

原典:OpenVMS Connectivity Developer Guide
Copyright ©1999 Compaq Computer Corporation

本書は CD-ROM でも提供しています。

次へ 目次 索引 DOC HOME


まえがき

対象読者

本書は主に,OpenVMS インフラストラクチャを使用して,OpenVMS 環境と Windows NT 環境の間で簡単に移動できるアプリケーションの開発者を対象にしています。特に,次の開発者を対象にしています。

本書は COM やレジストリの入門書ではありません。本書では,読者はオブジェクト指向 (OO) の概念や COM 開発手法を十分理解しており,レジストリが Windows NT システムでどのように動作するかも理解しているものと想定しています。本書では,COM とレジストリに関するオンライン情報の参照先を示し,COM,OO 開発,レジストリに関する参考文献も示しています。

本書の構成

本書には,COM for OpenVMS アプリケーションの開発や OpenVMS Registry の使用に必要なすべての情報が網羅されています。本書の構成は次のとおりです。

サンプル・コードに示されている Win32 API 呼び出し

本書で参照しているサンプル・コードは COM for OpenVMS キットに添付されています。これらのサンプル・コードに示されている Win32® API 呼び出しは,説明のためのサンプルとしてのみ提供されています。

COM for OpenVMS には,COM for OpenVMS ソフトウェアで必要とされる Win32 API だけが添付されています。これらの COM API は 付録 E, 相違点,API,インタフェースの一覧 に示されています。

付録 E には示されていないものの,本書のサンプルで使用されていて,COM for OpenVMS キットのサンプル・コードに含まれている Win32 API 呼び出しは,Compaq 以外のソフトウェア・ベンダから提供されている呼び出しです。付録 E に示されていない Win32 API を OpenVMS で使用する場合は,たとえば Bristol Technologies (www.bristol.com) などの独立系ソフトウェア・ベンダからインタフェースを購入する必要があります。

関連資料

Open Systems Software Group (OSSG) の製品とサービスの詳細については,Compaq OpenVMS の World Wide Web サイトを参照してください。アドレスは次のとおりです。


     www.compaq.com/openvms 

本書で使用する表記法

製品名について

本書では,「OpenVMS Alpha」は「OpenVMS Alpha オペレーティング・システム」を,「OpenVMS VAX」は「OpenVMS VAX オペレーティング・システム」を指します。また特に明記しない限り,「OpenVMS」は,「OpenVMS Alpha オペレーティング・システム」および「OpenVMS VAX オペレーティング・システム」の両方を指します。

VMScluster システムは OpenVMS Cluster システムのことを指します。特に指定のないかぎり,OpenVMS Cluster またはクラスタは VMScluster と同意語です。

本書では,DECwindows および DECwindows Motif はすべて DECwindows Motif for OpenVMS ソフトウェアを意味します。

また,本書では次の表記法も使用しています。

表記法 意味
Ctrl/x Ctrl/x という表記は,Ctrl キーを押しながら別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
PF1x PF1x という表記は,PF1 に定義されたキーを押してから,別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
[Return] 例の中で,キー名が四角で囲まれている場合には,キーボード上でそのキーを押すことを示します。テキストの中では,キー名は四角で囲まれていません。

HTML 形式のドキュメントでは,キー名は四角ではなく,括弧で囲まれています。

... 例の中の水平方向の反復記号は,次のいずれかを示します。

  • 文中のオプションの引数が省略されている。

  • 前出の 1 つまたは複数の項目を繰り返すことができる。

  • パラメータや値などの情報をさらに入力できる。

.
.
.
垂直方向の反復記号は,コードの例やコマンド形式の中の項目が省略されていることを示します。このように項目が省略されるのは,その項目が説明している内容にとって重要ではないからです。
( ) コマンドの形式の説明において,括弧は,複数のオプションを選択した場合に,選択したオプションを括弧で囲まなければならないことを示しています。
[ ] コマンドの形式の説明において,大括弧で囲まれた要素は任意のオプションです。オプションをすべて選択しても,いずれか1つを選択しても,あるいは1つも選択しなくても構いません。ただし,OpenVMS ファイル指定のディレクトリ名の構文や,割り当て文の部分文字列指定の構文の中では,大括弧に囲まれた要素は省略できません。
[|] コマンド形式の説明では,括弧内の要素を分けている垂直棒線はオプションを 1 つまたは複数選択するか,または何も選択しないことを意味します。
{ } コマンドの形式の説明において,中括弧で囲まれた要素は必須オプションです。いずれか 1 つのオプションを指定しなければなりません。
太字 太字のテキストは,新しい用語,引数,属性,条件を示しています。
italic text イタリック体のテキストは,重要な情報を示します。また,システム・メッセージ (たとえば内部エラーnumber),コマンド・ライン(たとえば /PRODUCER=name),コマンド・パラメータ(たとえばdevice-name) などの変数を示す場合にも使用されます。
UPPERCASE TEXT 英大文字のテキストは,コマンド,ルーチン名,ファイル名,ファイル保護コード名,システム特権の短縮形を示します。
Monospace type モノスペース・タイプの文字は,コード例および会話型の画面表示を示します。

C プログラミング言語では,テキスト中のモノスペース・タイプの文字は,キーワード,別々にコンパイルされた外部関数およびファイルの名前,構文の要約,または例に示される変数または識別子への参照などを示します。

- コマンド形式の記述の最後,コマンド・ライン,コード・ラインにおいて,ハイフンは,要求に対する引数がその後の行に続くことを示します。
数字 特に明記しない限り,本文中の数字はすべて 10 進数です。10 進数以外 (2 進数,8 進数,16 進数) は,その旨を明記してあります。


第 1 章
COM for OpenVMS に関するリリース・ノート

1.1 リリース・ノート

ここで説明する情報は本リリースに適用されます。

1.1.1 COM Version 1.0 for OpenVMS から COM Version 1.1 for OpenVMS へのアップグレード

COM Version 1.0 for OpenVMS から COM Version 1.1 for OpenVMS にアップグレードする場合は,付録 D第 4.3 節 に示すアップグレードの手順に従ってください。

1.1.2 DCOM$RPCSS プロセス・リソース全部の消費

COM for OpenVMS 実行時環境では,DCOM$RPCSSプロセスが常に実行されている必要があります。

DCOM$RPCSSが多くの COM for OpenVMS アプリケーション・サーバを作成または削除した後, DCOM$RPCSSがリソースをすべて消費してしまうことがあることがテスト中にわかりました。この状況になると, DCOM$RPCSSは自動的に再起動しようとします。 DCOM$RPCSSがシステムで実行されていない場合や,ハングしているように見える場合は,次のコマンドを使用して DCOM$RPCSSをいったん停止した後,再起動してください。


  $ @SYS$STARTUP:DCOM$SHUTDOWN 
  $ @SYS$STARTUP:DCOM$STARTUP 

SYS$MANAGER:DCOM$RPCSS.OUTファイル記録されているエラー・メッセージと情報メッセージを確認できます。また,正常に動作していないアプリケーション・サーバ・プロセスがないかどうか確認し,必要に応じてプロセスを停止する必要があります。

1.1.3 IDispatch インタフェースを介して値を渡すときの浮動小数点の制限事項

複数の浮動小数点パラメータ (単精度または倍精度) をIDispatchインタフェースに値で渡すときに,問題が発生することがあります。

複数の浮動小数点パラメータを使用するコンポーネント・メソッドは,IDispatchインタフェースを介してアクセスした場合,予測できない動作で終了します。浮動小数点パラメータを参照で渡した場合は,このエラーは発生しません。この制限は将来のリリースで解決される予定です。

1.1.4 COM for OpenVMS を実行するには,DECwindows Motif ® が必要

COM for OpenVMS を実行するシステムには,DECwindows Motif for OpenVMS をインストールしなければなりません。DECwindows Motif がシステムにすでにインストールされている場合は,改めてインストールする必要はありません。DECwindows Motif がシステムにインストールされていない場合は,OpenVMS Version 7.2-1 の CD-ROM の [KITS.DWMOTIF125_KIT]ディレクトリに格納されている DECwindows Motif のインストール・キットを利用してください。

注意

COM for OpenVMS を使用するためにだけ,DECwindows Motif をインストールする場合は,DW-MOTIF ライセンスは必要ありません。

1.1.5 MIDL -w スイッチ

MIDL コンパイラでは,-wまたは-warnを指定することで,コンパイラが生成する警告のレベルを下げることができます。 OpenVMS 用の MIDL コンパイラでは,-wスイッチだけがサポートされます。

1.1.6 MIDL コンパイラは wchar_t リテラルを char として取り扱う

COM for OpenVMS のこのリリースで,DEC C バージョン 5.7 またはそれ以前のバージョンを使用する場合,IDL ファイル内のワイド文字のリテラル文字列は,誤って "char" データ型として取り扱われます (DEC C バージョン 6.0 以上を使用している場合は,このリリース・ノートは適用されません)。

たとえば,IDL ファイルに次の文字列リテラルが格納されているとしましょう。


    const wchar_t * PROGRAM_ID     = L"Sample.Component"; 

Microsoft Windows NT で MIDL コンパイラを使用すると,次のマクロ定義が作成されます。


    #define PROGRAM_ID      ( L"Sample.Component" ) 

しかし,COM for OpenVMS 用の MIDL コンパイラでは,デフォルトで次のマクロ定義が作成されます。


    #define PROGRAM_ID      ( "Sample.Component" ) 

この問題を回避するには,次の操作を行います。

  1. できる限り,DEC C プリプロセッサを使用しないようにします。
    プリプロセッサを使用せずに MIDL コンパイラを実行するには,コマンド・ラインに -nocppまたは -no_cppスイッチを指定します。次の例を参照してください。


        $ midl -Oicf -nocpp -idcom$library: server.idl 
    

    重要

    IDL ソース・ファイルや,メインの IDL ソース・ファイルからインポートされた IDL ソース・ファイルに条件付きアセンブリ・スイッチ (たとえば, #ifdef" . . . "#endif") が含まれている場合は,この方法は使用しないでください。

  2. すべての文字列定数を "wchar_t" タイプではなく,"char" タイプとして定義します。
    この方法を使用すると,Microsoft Windows NT の MIDL コンパイラも OpenVMS の MIDL コンパイラも,ワイド文字ではない文字列定数を作成します。ソフトウェアでワイド文字の文字列リテラルが必要な場合は,値を使用する前に,ソフトウェアで ANSI 文字列をワイド文字の文字列に変換できます。

  3. IDL ソース・ファイル内で,ワイド文字の文字列定数をマクロ定義に置き換えます。
    たとえば,文字列リテラルを次のように定義する代わりに,


        const wchar_t * PROGRAM_ID     = L"Sample.Component"; 
    


    次に示すように,IDL cpp_quote()の内部で #defineを使用します。


        cpp_quote("#define PROGRAM_ID L\"Sample.Component\"") 
    


    DEC C プリプロセッサを使用する場合でも,Microsoft Windows NT と OpenVMS 用の MIDL コンパイラで作成される出力ヘッダ・ファイルは次のようになります。


        #define PROGRAM_ID L"Sample.Component" 
    


次へ 目次 索引