DCOM95 1.3 リリース ノート 最終更新日: 1998年11月13日 DCOM95 は、Microsoft(R) Windows(R) 95 で分散 COM (DCOM) をサポートし ます。DCOM ワイヤ プロトコルによって、LAN、WAN、またはインターネット 上の異なるコンピュータにある ActiveX(R) コントロール、スクリプト、お よび Java アプレットなどのコンポーネント オブジェクト モデル (COM) コンポーネン間の通信の信頼性、安全性、および効率を高めます。DCOM に よって、異なる場所にいるユーザーやアプリケーションに対して、アプリケ ーションを配布できます。 目次 ==== I. 新しい機能 II. 解決された問題 III. 既知の問題 IV. Windows NT 上の DCOM との違い V. 再配布 VI. サポート情報 VII. ファイル一覧 I. 新しい機能 ------------- DCOM95 を古いバージョンに置き換えることはできない DOM95 の以前のリリースでは、DCOM95 の新しいバージョンを、古いバージ ョンに置き換えることができました。現在は、インストールでバージョン番 号が確認され、新しいバージョンに古いバージョンを上書きすることはでき ません。この変更によって、DLL のバージョンが違うことによる問題を回避 できます。 Visual Studio 6.0 プロセスの監視をサポート Visual Studio 6.0 サポートとして、DCOM95 は開発者がアプリケーション の動作、パフォーマンス、および構造を理解できるように情報の監視を行い ます。Windows 95 を実行中のコンピュータで Visual Studio Analyzer を 使用する場合、常に DCOM95 のこのバージョンを使用する必要があります。 セットアップ プログラムが作成する新しいディレクトリ セットアップ プログラムは、システム ディレクトリの下に DCOM95 という 名前のディレクトリを作成します。『使用許諾契約書』およびほかのファイ ルは、このディレクトリに格納されます。また、セットアップ プログラム は、OLDOLE という名前のディレクトリを DCOM95 の下に作成します。この ディレクトリには、古い DCOM95 または OLE のバイナリが保存されます。 これらのファイルは、DCOM95 をアンインストールすると、元に戻されます。 COM インターネット サービス COM インターネット サービス (CIS) によって、クライアントとサーバーは COM を使ってインターネット上で接続することができます。CIS は、次の 機能を提供します。 * 新しい DCOM プロトコル、Tunneled TCP * 新しいタイプのモニカ、OBJREF モニカ * 新しい CISCNFG ユーティリティ Windows 95 の CIS クライアント サポートのために、DCOM95 および DCOMCFG の両方をインストールする必要があります。次に DCOMCFG ユーテ ィリティをインストールしたときにインストールされた CISCNFG ツールを 使って、リモート プロセスを使うためのプロトコルを定義するレジストリ キーを変更します。コマンド プロンプトで次のコマンドを入力します。 ciscnfg <プロトコル> <プロトコル> は、次のいずれかを指定します。 * RPC を使用する場合は rpc * HTTP を使用する場合は http * 最初に TCP を試し、サーバーがタイム アウトになった場合は HTTP を 試す場合は tcp_http ciscnfg コマンドには、使い方を表示する引数はありません。 Tunneled TCP プロトコルを使用するために、SDK を更新する必要はありま せん。 OBJREF モニカは、更新されました。 CreateObjrefMoniker オブジェクトへのポインタに基づき OBJREF モニカを作成します。 WINOLEAPI CreateObjrefMoniker( LPUNKNOWN pUnk, //Pointer to the object LPMONIKER *ppMk //Address of pointer to OBJREF moniker ); パラメータ pUnk モニカがあるオブジェクトの IUnknown インターフェイスへのポインタ。 ppMk 作成された OBJREF モニカの IMoniker インターフェイスへのポインタの アドレス。 戻り値 この関数は、次の戻り値と同様に標準の戻り値 E_OUTOFMEMORY および E_UNEXPECTED をサポートします。 S_OK OBJREF モニカは正常に作成されました。 備考 クライアントは OBJREF モニカを使用して、サーバーのアドレス空間で実行 中のオブジェクトへのマーシャリングされたポイントを取得します。通常、 サーバーは CreateObjrefMoniker を呼び出して OBJREF モニカを作成し、 次に IMoniker::GetDisplayName を呼び出し、最後にモニカを解放します。 OBJREF モニカに対する表示名は、次の形式です。 OBJREF:nnnnnnnn nnnnnnnn は、コンピュータの場所、プロセスのエンドポイント、および実 行中のオブジェクトのインターフェイス ポインタ ID (IPID) をカプセル化 する任意の 64 ビットのエンコーディングです。 表示名は、テキストとしてクライアントへ転送できます。たとえば、表示名 はクライアントがダウンロードする HTML ページに存在することができます。 クライアントは、表示名を MkParseDisplayName に渡すことができます。 MkParseDisplayName は、表示名に基づき OBJREF モニカを作成します。次 に、モニカの IMoniker::BindToObject メソッドへの呼び出しが、サーバー で実行中のインスタンスへのマーシャリングされたポインタを取得します。 たとえば、アクティブ サーバー ページに含まれるサーバー側の COM コン ポーネントは、OBJREF モニカを作成し、その表示名を取得し、クライアン トのブラウザに送られる HTML 出力への表示名を書き込みます。クライアン ト側で実行するスクリプトは、表示名を使って実行中のオブジェクトをアク セスできます。たとえば、クライアント側の Visual Basic スクリプトは、 表示名を strMyName と呼ばれる変数に格納して次の行に含めることができ ます。 objMyInstance = GetObject(strMyName) スクリプト エンジンは、内部的には MkParseDisplayName および IMoniker::BindToObject を呼び出し、次に objMyInstance を使用して実行 中のオブジェクトを直接参照します。 実行中のオブジェクトが静的 IPID を使用し、サーバー プロセスが常によ く知られているエンドポイントで同じコンピュータを実行する場合、OBJREF モニカの表示名は常に同じになります。その場合、サーバーはオブジェクト に対する要求を受信する度に計算する代わりに、表示名を格納することがで きます。 IMoniker - OBJREF モニカのインプリメント OBJREF モニカは、ローカルでもリモートでもプロセス外サーバーで実行中 のオブジェクト インスタンスへの参照を表します。モニカは、オブジェク ト インスタンスと、オブジェクトを実行中のコンピュータを識別します。 OBJREF モニカは、実行中のオブジェクトがプロセス外にあるという点を除 いて、多くの点でポインタ モニカに類似しています。クライアントは、 OBJREF モニカの IMoniker::BindToObject を呼び出し、その場所にかかわ りなく実行中のオブジェクトをアクセスするためにポインタを使用すること ができます。 ポインタ モニカとの重要な相違は、OBJREF モニカの表示名は HTML ページ に埋め込むことができ、モニカが表す実行中のオブジェクトは、クライアン トのスクリプト、アプレット、および ActiveX コントロールによってバイ ンドすることができることです。 使用目的 OBJREF モニカを使用する主な目的は、インターネットを介して実行中のオ ブジェクト インスタンスへのアクセスを取得することです。アクティブ サ ーバー ページまたはダイナミック HTML コンテンツを生成するほかの方法 は、アプレットまたは ActiveX コントロールへのパラメータに OBJREF モ ニカの表示名を指定します。アプレットまたはコントロールのコードは、 CreateObjrefMoniker を呼び出して表示名に基づき OBJREF モニカを作成し ます。次に作成された OBJREF モニカで IMoniker::BindToObject を呼び出 して、実行中のオブジェクト インスタンスへのアクセスを取得します。ア クティブ サーバー ページは、ページのクライアントへ戻す、実行中のオブ ジェクトへのポインタをマーシャリングします。 備考 IMoniker::BindToObject OBJREF モニカに対する pmkToLeft パラメータ は、NULL を指定する必要があります。OBJREF モニカは実行中のオブジェク トを表すため、何らかのアクティベーションを行うことはできません。オブ ジェクトが実行中ではない場合、BindToObject は E_UNEXPECTED を返して 失敗します。 IMoniker::BindToStorage このメソッドは、実行中のオブジェクトを含む ストレージの要求されたインターフェイスへのマーシャリングされたポイン タを取得します。OBJREF モニカは実行中のオブジェクトを表すため、何ら かのアクティベーションを行うことはできません。オブジェクトが実行中で ない場合、BindToStorage は E_UNEXPECTED を返して失敗します。 IMoniker::Reduce このメソッドは MK_S_REDUCED_TO_SELF を返し、同じモ ニカを渡します。 IMoniker::ComposeWith pmkRight が非モニカの場合、返されるモニカは NULL です。pmkRight が複合モニカで、その左端のコンポーネントが非モニ カの場合、返されるモニカは左端の非モニカが削除された複合モニカです。 pmkRight が非モニカでも、左端に非モニカをもつ複合モニカでもない場 合、メソッドは fOnlyIfNotGeneric パラメータを確認します。パラメータ が FALSE の場合、メソッドは 2 つのモニカを結合して汎用の複合モニカを 生成します。パラメータが TRUE の場合、メソッドは *ppmkComposite に NULL を設定して MK_E_NEEDGENERIC を返します。 IMoniker::Enum このメソッドは、S_OK を返して ppenumMoniker に NULL を設定します。 IMoniker::IsEqual *pmkOther が OBJREF モニカで、両方のモニカへのパ スが (状況に依存しない比較によって) 同一の場合、このメソッドは S_OK を返します。さもなければ、メソッドは S_FALSE を返します。 IMoniker::Hash このメソッドは、モニカに対するハッシュ値を計算します。 IMoniker::IsRunning OBJREF モニカは実行中のオブジェクト インスタン スを表すため、最新の呼び出しが失敗してこのオブジェクトが実行中でない 場合を除き、このメソッドは TRUE を返します。メソッドは、pmkToLeft を 無視します。 IMoniker::GetTimeOfLastChange このメソッドは、E_NOTIMPL を返します。 IMoniker::Inverse このメソッドは、非モニカを返します (たとえば、 CreateAntiMoniker を呼び出した結果)。 IMoniker::CommonPrefixWith 2 つのモニカが等しい場合、このメソッドは MK_S_US を返し、*ppmkPrefix に NULL を設定します。一方のモニカが OBJREF モニカでない場合、このメソッドは両方のモニカを MonikerCommonPrefixWith 関数に渡します。この関数は、一方のモニカが汎 用の複合モニカである状況を正しく処理します。 共通のプレフィックスがない場合、メソッドは MK_E_ を返します。 IMoniker::RelativePathTo このメソッドは E_NOTIMPL を返します。 IMoniker::GetDisplayName このメソッドは、OBJREF モニカに対する表示 名を取得します。表示名は、コンピュータの場所、プロセスのエンドポイン ト、および実行中のオブジェクトのインターフェイス ポインタ ID (IPID) をカプセル化する 64 ビットのエンコーディングです。将来の互換性のため に、表示名は URL の一部として指定できる文字に制限されています。 IMoniker::ParseDisplayName pmkToLeft が NULL の場合、このメソッドは MK_E_SYNTAX を返します。 IMoniker::IsSystemMoniker このメソッドは S_OK を返し、 MKSYS_OBJREFMONIKER を渡します。 VB6.0 データ型のサポート Visual Basic(R) 6.0 では、ユーザーが定義したデータ構造を Visual Basic 変数に含めることができます。DCOM95 は、これらの変数のリ モート処理をサポートします。 II. 解決された問題 ------------------ 複数モジュールのアンロードでの競合状態 複数のモジュールを同時にアンロードする場合、DCOM95 の以前のバージョ ンでは競合状態が発生しました。アンロードするモジュールの順序によって は、アクセス違反が発生します。この問題は、DCOM95 のこのリリースで修 正されました。 RPC プロトコルにネゴシエートする間デスクトップは応答しない DCOM95 の以前のバージョンでは、RPC プロトコルにネゴシエートする間は メッセージのディスパッチは行われません。このような場合、RPC プロトコ ルへのネゴシエート中にユーザーが別のアプリケーションを起動すると、コ ンピュータは応答しなくなる可能性があります。30 秒経過すると、メッセ ージの処理が再開されます。この動作は DCOM95 の最新のリリースで変更さ れ、RPC プロトコルへのネゴシエート中でもアプリケーションを起動できま す。 新しいアプリケーションを起動するとデスクトップが応答しない RPC は、マルチスレッド アパートメント (MTA) に非表示ウィンドウを作成 します。MTA は、DCOM の仕様ではメッセージをディスパッチする必要はあ りません。ユーザーがデスクトップから新しいアプリケーションを起動する 場合、Windows はこのイベントを通知するメッセージをほかのすべてのウィ ンドウへ送信し、返信を期待します。DCOM95 の以前のバージョンでは、非 表示 RPC ウィンドウは返信を返さず、Windows はハングする可能性があり ます。DCOM95 のこのバージョンはこの問題を解決し、RPC ウィンドウは新 しいアプリケーションが起動されたときに、Windows が応答のないメッセー ジを送信することはありません。 複数の IP アドレス ヒープが壊れる ある特定の状況で 2 つ以上の IP アドレスを持つコンピュータで DCOM95 の以前のバージョンを実行すると、IP アドレス バッファがオーバーランし てヒープが壊れる可能性があります。この問題は、DCOM95 の最新のバージ ョンで解決されました。 最初の IP アドレスのみ使用される 2 つのネットワーク アダプタ カードを持つ (つまり 2 つの IP アドレス が異なるアドレス カードに割り当てられている) コンピュータで DCOM95 の以前のバージョンを実行すると、DCOM95 は 1 つのネットワーク アダプ タのみ使用します。DCOM95 のこのリリースでは、1 つめが機能しない場合 は 2 つめのネットワーク アダプタを使用します。 RPC は複数の IP アドレスを試みる 複数の IP アドレスを持つコンピュータにリモート プロシージャ コールを 行う場合、1 つめの IP アドレスへの接続に失敗すると、残りの IP アドレ スへの接続を試みます。 ファイル モニカは新たなパスの構文をサポートする ファイル モニカは、"C:\bug\bug\..\..\foo.jpg." のように、<開始ディレ クトリ><相対パス> 形式の引数を作成することができます。DCOM95 1.1 で は、相対パス (たとえば "..\..\foo.jpg") または絶対パス (たとえば "C:\foo.jpg") だけが指定できます。 Oleaut32.dll をアンロードするときの一般保護違反 DCOM95 の以前のバージョンでは、CoUninitialize を呼び出す前に Oleaut32.dll をアンロードすると一般保護違反が発生します。この問題は、 VB アプリケーションが Oleaut32.dll に静的にリンクするコントロールを 作成し、CoUninitialize を呼び出す前にコントロールを解放した場合に、 最も頻繁に発生します。DCOM95 の最新のリリースでは、一般保護違反は発 生しません。 Visual Basic データ型のマーシャリングおよびマーシャリング解除 Visual Basic の特定のデータ型のマーシャリングおよびマーシャリング解 除は、解決されました。64K より大きい配列パラメータが使用できるように なりました。型の別名を使用して定義した構造体は、正しくマーシャリング および非マーシャリングを行えるようになりました。 OleUninitialize でアトムが何回も削除される この問題は、OleInitialize および OleUninitialize を何回も呼び出すア プリケーションで発生します。初期化中に OLE は多くのアトムを DDE PRC のために追加します。アトムが別のスレッドによってすでに追加されている 場合、再度追加されます。ただし、初期化の解除中にアトムは常に削除され ますが、ハンドルは無効にはなりません。したがって、アトムが削除されて OLE が再度追加されなくても、次に OleInitialize が呼び出されたときに は古いハンドルが存在します。このため、OleInitialize および OleUninitialize を何回も呼び出した後は、すべての OLE アトムは無効に なります。この問題は、DCOM95 のこのリリースで解決されました。 ADO サーバーの正しいシャット ダウン アクティブ データ オブジェクト (ADO) は、ポインタ モニカを使ってサー バー プロセスを開始します。DCOM95 の以前のバージョンには、ポインタ モニカの参照カウンタが初期値を 0 ではなく 1 として作成されるという 問題がありました。したがって、ポインタ モニカの参照カウンタは決して 0 にはならず、ポインタ モニカは解放されません。結果として、ADO サー バーへの最後のポインタが解放されても、サーバーはシャット ダウンされ ません。この問題は、DCOM95 のこのリリースで解決されました。 CoCreateInstance は DNS 名とともに機能する DCOM95 の以前のバージョンでは、ローカル コンピュータの修飾名を使った CoCreateInstance 呼び出しは、正しく機能しません。この問題は、DCOM95 のこのリリースで解決され、CoCreateInstance はローカル コンピュータで 正しくインスタンスを作成します。 非常に大きい複合ファイルによってルート ストレージのコミットが遅くなる DCOM95 の以前のバージョンでは、STGM_TRANSACTED モードで開かれたルート ストレージのコミット時間は、複合ファイルが非常に大きくなる (たとえば 400M) ため非常に遅くなります。内部ページ テーブルの制限が増加したた め、これは問題にはなりません。 再作成された MTA からのオブジェクトのエクスポート DCOM95 の以前のバージョンでは、マルチスレッド アパートメント (MTA) が初めてプロセスに作成された場合でなければ、サーバーは MTA からオブ ジェクトをエクスポートすることはできません。この問題は解決されました。 サーバーが MTA を作成し、これを破棄して MTA を再作成した場合、オブジ ェクトは MTA からエクスポートできます。 Visual Basic 4 実行可能ファイルの複数インスタンス DCOM95 v1.1 で、Visual Basic 4 の同じ実行可能ファイルの複数のインス タンスを開始して LIFO (後入れ先出し) 以外の順序でインスタンスをシャ ット ダウンすると、最後の実行可能ファイルが停止する可能性があります。 これは、Microsoft Exchange の E-Forms でも同様です。この問題は、 DCOM95 の最新のリリースで解決されました。Visual Basic 4 の実行可能フ ァイルは、どのような順番でもシャット ダウンできます。 Visual Basic ファイル名の拡張文字 指定された言語の拡張文字を使って Visual Basic モジュールまたはクラス に名前を付けた場合、別のロケール用に設定されたコンピュータでは開けな い可能性があります。この問題は解決されました。 III. 既知の問題 --------------- Corel WordPerfect Suite 7: インストールが無効なページ フォールトを引 き起こす DCOM95 を実行中の Windows 95 システムに Corel WordPerfect Suite 7 を インストールする場合、インストール中に PfOd70.pfc で無効なページ フ ォールトが発生する可能性があります。このエラーが発生した場合、エラー メッセージ ダイアログ ボックスを閉じてください。セットアップは、正し く続行されます。 Microsoft Access95: データベースのレプリケーションが機能しない DCOM95 がインストールされたコンピュータで Microsoft Access 95 を使っ て Access データベースのレプリケーションを行った場合、次のエラー メ ッセージが表示される可能性があります。 エラー メッセージ: MSJTRCLR.DLL を見つけることができないか、 初期化できないため、この操作を完了できません。 これは、Microsoft Access 95 の問題です。レプリケーション ツールを使 うよりも、Access のオブジェクト モデルを使用するプログラムを作成して 解決できます。または、レプリケーション用のブリーフケースを使用します。 Microsoft Access 97 は、この問題は影響しません。 WordPerfect WordPerfect 文書が埋め込み Corel スプレッドシートおよびほかの埋め込 みオブジェクト (たとえば、ビットマップ) を含むスプレッドシートの場合、 「最も内側のオブジェクトを閉じたときにネットワーク接続を失います。」 という意味の警告ダイアログが表示される可能性があります。このような警 告は、4〜5 種類ありますが、すべて問題ありません。ダイアログを閉じて、 継続します。 BSTR 変換ルーチンを使用するマルチスレッド アパートメント (MTA) クラ イアントは DDE メッセージを妨害する可能性がある 自動 BSTR 変換ルーチン (たとえば、BstrFromR4) は、非表示ウィンドウを 作成して型変換を容易にします。これらのウィンドウは、Windows メッセー ジ キューを提供しません。このようなウィンドウが MTA クライアント内で 作成された場合、DDE メッセージは妨害される可能性があります。クライア ント スレッドは、MTA プログラミング モデルではメッセージ キューを提 供しません。そうでない場合、最上位ウィンドウは、グローバル ブロード キャスト メッセージを妨害します。 この問題を解決する方法は、2 つあります。シングルスレッド アパートメ ント (STA) クライアントから BSTR 変換ルーチンを呼び出すか、クライア ントの MTS スレッドを STA スレッドのように機能させるかです。STA スレ ッドは、メッセージ キューを提供する必要があります。スレッドが Win32 ハンドルで妨害する場合、MsgWaitForMultipleObjects 関数を呼び出して Windows メッセージを同時にディスパッチする必要があります。 127 文字より長い DLL パス名ではエラーが発生する DLL を 128 文字以上のパス名で登録すると登録は成功しますが、この DLL がサポートするオブジェクトをアクセスしたときに CoCreateInstance また は CoGetClassObject はエラー (REGDB_E_CLASSNOTREG) を返します。 IV. Windows NT 上の DCOM との違い --------------------------------- DCOM95 のセキュリティ機能 DCOM95 の主要な機能およびアプリケーション プログラミング インターフ ェイス (API) は、Windows 95 および Windows NT 4.0/5.0 で同じです。た だし、オペレーティング システムのセキュリティの基盤が異なるため、セ キュリティに関連する特定の機能が異なります。システムのセキュリティの 既定の設定を使用することをお勧めします。また、ファイルシステムで "ユ ーザー レベル" セキュリティを有効にすることが必要です (以下を参照)。 次のサービスを使用して、既定のセキュリティを変更できます。 * CoInitializeSecurity * CoQueryAuthenticationService * CoQueryProxyBlanket * CoSetProxyBlanket * CoQueryClientBlanket * IClientSecurity インターフェイス * IServerSecurity インターフェイス ただし、Windows 95 のセキュリティの基盤が異なるため、DCOM for Windows NT の一部の機能は Windows 95 では利用できません。 特に、スレッドやプロセス トークンに関連するセキュリティ コンテキスト がないだけでなく、(アクセス制御リスト (ACL) を作成するような) Win32 API のセキュリティ関数や AccessCheck 関数がないことを考慮する必要が あります。このため、DCOM95 は偽装 (特に、IServerSecurity インターフ ェイスへの CoImpersonateClient および CoRevertToSelf ヘルパー機能) をサポートしません。偽装は、Windows NT 4.0 ではスレッド トークンおよ びプロセス トークン セキュリティに基づいています。偽装は、通常ファイ ル システム、ほかのプロセス、およびネットワークのような制限付きのシ ステム リソースへのアクセスを制御するために自動的に使用されます。こ れらのリソースは、Windows 95 では制限されません。 ただし、DCOM95 は、ACL およびアクセス チェック機能を提供するためのさ まざまなヘルパー オブジェクトを開発者のために用意しています。これら のオブジェクトは、システムおよびユーザーが定義したリソースまたはデー タへのアクセスを、リモート クライアントが明示的に制御するために使用 できます。これらのヘルパー オブジェクトは、IAccessControl インターフ ェイスをインプリメントするシステム オブジェクト CLSID_DCOMAccessControl によって提供されます。 Windows 95/98 および Windows NT 間の移植性を考慮する場合は、 IAccessControl を使ってセキュリティ権限をプログラムで管理する必要が あります。CLSID_DCOMAccessControl オブジェクトは、DCOM95 のすべての リリースおよび Windows NT 4.0 SP2 以降のバージョンで使用できます。 IAccessControl の詳細については、Platform SDK ドキュメントを参照して ください。 セキュリティの起動およびアクセス DCOM95 では起動サーバーがサポートされていないため、誰がサーバークラ ス コードを起動するかを制御することはできません。サーバー/クラスは、 リモート クライアントへ接続するために実行中である必要があります。ま た、これらのサーバーを使用する必要があります。 DCOM95 は、すでに実行中のクラス/サーバーへ接続することはできません。 アクセス セキュリティは、\APPID\{.}\AccessPermissions レジストリ キ ーを介してサポートされ、DCOMCNFG ツール、インストール、サーバー コー ドのセットアップによって調整されます。認証されないユーザーは、(設定 ツールによって静的に、または CoInitializeSecurity 関数によって動的に) 認証されない接続をサポートするクラスを設定した場合にサーバーを使用す ることができます。また、任意の ACL を作成して、どのユーザーまたはグ ループが特定のサーバーへアクセスできるかを定義することができます。 認証レベル DCOM95 クライアントは、認証レベルを使用して DCOM 呼び出しを作成でき ます。コールバックを受け取る DCOM95 サーバーまたはクライアントは、 RPC_C_AUTHN_LEVEL_NONE または RPC_C_AUTHN_LEVEL_CONNECT 認証レベルを 使用した場合のみ、DCOM 呼び出しを受け取ることができます。 トランスポート DCOM95 は、TCP 接続のみサポートします。TCP/IP をインストールしていな い場合は、DCOM95 はコンピュータをまたがって COM をサポートすることは できません。 レジストリの設定 HKEY_LOCAL_MACHINE\Software\Microsoft\OLE の下の次のレジストリ キー は、DCOM95 によって作成されます。 EnableDCOM (既定値は "Y") そのコンピュータの DCOM を使用可能にします。 "N" を設定した場合、コンピュータはリモート コンピュータのオブジェク トへ接続したり、起動したりできません。また、リモート コンピュータは、 ローカル コンピュータのオブジェクトへ接続することができません。"Y" を設定した場合、(次に説明するように EnableRemoteConnect='N' の場合) クライアントとしてリモート オブジェクトへ接続、または (次に説明する ように EnableRemoteConnect='Y' の場合) クライアント/サーバーの完全な 接続を行うことができます。 EnableRemoteConnect (既定値は "N") COM サーバーを使用可能にして、 リモート クライアントをサポートします。"Y" を設定した場合、ローカル オブジェクトのインターフェイスへの参照はリモート クライアントへ渡さ れ、リモート クライアントは実行中のオブジェトに接続できます。"N" を 設定した場合、このコンピュータはリモート オブジェクトへ接続できます が、サーバーとして機能することはできません。このコンピュータは、実行 中のオブジェトへ接続できません。 さらに、HKEY_CLASSES_ROOT\CLSID の下には次のレジストリ キーがあります。 {bdc67890-4fc0-11d0-a805-00aa006d2ea4}\InstalledVersion DCOM95 のバージョン番号を、"a,b,c,d" の形式で含みます。この値は、イ ンターネット コンポーネント ダウンロードが使用して、DCOM95 がインス トールされているかどうかを判断します。この値は、セットアップ中に追加 されて変更できません。 リモート サーバー ホストとして Windows 95 を使用する Windows 95 は、次の条件の場合にリモート サーバー ホストになることが できます。 * 起動は行いません。クライアントが接続できるように、サーバー プロ セスが実行されている必要があります。 * 保護された接続が必要な場合、サーバー (およびコールバックの場合は クライアント) は、セキュリティ プロバイダ セット名とともにユーザ ー レベルのアクセス制御を行う必要があります。 * レジストリ値 "EnableRemoteConnect" には、"Y" を設定する必要があ ります。 DCOM95 は、Windows NT ドメイン セキュリティ プロバイダを使って広範囲 にテストされました。ほかのセキュリティ プロバイダを使用すると、問題 が発生する可能性があります。 ユーザー レベルのアクセス制御を行うには、Filesec.vxd をインストール する必要があります。このファイルは、通常、ファイルおよび印刷共有をイ ンストールした場合に Windows 95 コンピュータにインストールされます。 ユーザー レベルのアクセス制御を使用可能にするには、コントロール パネ ルの [ネットワーク] ダイアログ ボックスを開きます。[アクセスの制御] タブをクリックし、[ユーザー レベルでアクセスを制御する] チェック ボ ックスをオンにして、セキュリティ ドメイン名を入力します。これは、ユ ーザーのコンピュータからネットワーク上のディレクトリを共有する方法に 影響します。詳細については、オンライン ドキュメントを参照してくださ い。コントロール パネルの [ネットワーク] の [アクセスの制御] タブが 表示されない場合は、ネットワーク クライアント サービスをインストール する必要があります。オンライン ヘルプのキーワードで [ネットワーク ク ライアント] の下の [セットアップ] を選択して、表示されたトピックの [ここをクリック] をクリックします。 V. 再配布 --------- DCOM95 の再配布については、『使用許諾契約書』(license.txt) の再配布 の条件をお読みください。 VI. サポート情報 ---------------- DCOM95 アプリケーション開発は、マイクロソフト テクニカル サポートに よってサポートされます。スタンダードサポートによって、質問していただ くことができます。また、年間契約プライオリティサポート、または個別に スポット サポート (本来は 1 つの質問につき 1 インシデント) を契約し て、質問していただくこともできます。 マイクロソフトのサポート オプションの詳細については、サポート契約セ ンター (03-5354-4700 9:30 - 12:00 13:00 - 17:30 土日祝日を除く) に お問い合わせください。または、http://www.asia.microsoft.com/japan /support/supportnet/refguide/phone.htm を参照してください。 なお、サポート契約センターでは、テクニカル サポートを行っていない点 をご了承ください。 マイクロソフトのサポート技術情報については、次のページを参照してくだ さい。 http://www.asia.microsoft.com/japan/support/ VII. ファイル一覧 ----------------- 次の表は、DCOM95 とともに配布されるファイルのバージョン番号を示しま す。 oleaut32.dll 2.40.4273 secur32.dll 4.10.1999 compobj.dll 2.3.2 ole2.dll 2.3.2 ole32.dll 4.71.2900 olecnv32.dll 4.71.2900 olethk32.dll 4.71.2900 rpcltc1.dll 4.71.2900 rpcltc5.dll 4.71.2900 rpcltccm.dll 4.71.2900 rpclts5.dll 4.71.2900 rpcltscm.dll 4.71.2900 rpcns4.dll 4.71.2900 rpcrt4.dll 4.71.2900 rpcss.exe 4.71.2900 storage.dll 2.3.2 stdole2.tlb 2.40.4273 stdole32.tlb 2.1 imagehlp.dll 4.00 dllhost.exe 4.71.2900 comcat.dll 5.0 iprop.dll 4.00 rpcmqcl.dll 4.71.2900 rpcmqsvr.dll 4.71.2900 olepro32.dll 5.0.4273 asycfilt.dll 2.40.4273 dcom2w98.dll 2.10.35.35 次の表は、DCM95CFG とともに配布されるファイルのバージョン番号を示し ます。 dcomcnfg.exe 5.00.1603.0 ciscnfg.exe 4.71.2618