COM オブジェクトを登録する

提供: RAD Studio
移動先: 案内検索

単純な COM サーバーの作成:インデックス への移動


サーバー オブジェクトは、インプロセス サーバーまたはアウトオブプロセス サーバーとして登録できます。 サーバーの種類の詳細は、「インプロセス、アウトオブプロセス、およびリモート サーバー」を参照してください。

メモ: IDE は 32 ビット プロセスなので、64 ビットのインプロセス/DLL サーバーを登録できません(32 ビット プロセスには 64 ビット DLL を読み込めません)。 64 ビット インプロセス サーバーを登録するには、$(BDS)\bin64\TRegSvr.exe にある 64 ビット版 TRegSvr.exe を使用する必要があります。


レジストリ エントリの管理

COM オブジェクトを登録すると、Windows システム ディレクトリにエントリが追加されます。 オブジェクトに関連付けられているレジストリ エントリを登録解除できるのは、関連先オブジェクトの内部のコードを使った場合だけです。 つまり、オブジェクトがもう存在していなければ、登録解除には使用できません。 そのため、レジストリが "孤立した" 登録項目で雑然とした状態になるおそれがあります。

  • 次のように、登録解除が重要な場合があります。
    • システムから COM オブジェクトを削除する場合は、その前にその登録を解除しなければなりません。
    • アプリケーションの開発中に COM オブジェクトを登録したものの、後になってアプリケーションを保存しないことにした場合は、アプリケーションを破棄する前に常にその COM オブジェクトの登録を解除しなければなりません。

ActiveX サーバーの登録

  • インプロセスまたはアウトオブプロセスの ActiveX サーバー(DLL、OCX、または EXE)を登録するには、次のいずれかを選択します。
    • [実行|ActiveX サーバー|登録]
    • [実行|ActiveX サーバー|現在のユーザーとして登録]
  • ActiveX サーバーを登録解除するには、次のように選択します。
    • [実行|ActiveX サーバー|登録解除]
    • [登録解除]は、ユーザーごと、および、すべてのユーザーの両方について ActiveX サーバーの登録を解除します。

ActiveX サーバーの登録/登録解除」を参照してください。

[実行]コマンド オプションの使用

登録用または登録解除用のコマンドライン オプションを付けてサーバーを実行することで、サーバーを登録または登録解除することもできます (コマンドライン オプションは、[デバッガ]オプション ページで設定できます)。

メモ: "アウトオブプロセス"(EXE)サーバーを登録すると、その実行可能ファイルが適切なコマンドラインで正常に起動した場合には "成功" が報告されます。 つまり、たとえ "ActiveX サーバー 'xxxx.exe' が正常に登録されました" というメッセージが出力されたとしても、そのサーバーは、登録や登録解除の成否に関する情報を IDE に伝えることはできません。

アウトオブプロセス サーバー

  • アウトオブプロセス(EXE)サーバーを登録するには、次のいずれかを使用してサーバーを実行します。
    • /regserver コマンドライン オプション
    • /RegServerPerUser コマンドライン オプション
  • アウトオブプロセス(EXE)サーバーを登録解除するには、次のいずれかを使用してサーバーを実行します。
    • /unregserver コマンドライン オプション
    • /UnregServerPerUser コマンドライン オプション

インプロセス サーバー

tregsvr ユーティリティ、またはオペレーティング システムで提供されている regsvr32 コマンドを使用することができます。

  • インプロセス(DLL)サーバーを登録するには、次のいずれかを指定します。
    • regsvr32.exe /n <dllname>.dll
    • regsvr32.exe /n /i:user <dllname>.dll
  • インプロセス(DLL)サーバーを登録解除するには、次のいずれかを指定します。
    • regsvr32.exe /u /n <dllname>.dll
    • regsvr32.exe /u /n /i:user <dllname>.dll

関連項目