アプリケーションへの Microsoft エージェント機能の追加
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない可能性があります。]
Microsoft エージェントのサーバー インターフェイスにアクセスするには、エージェントがターゲット システムに既にインストールされている必要があります。 エージェントコンポーネントファイルのコピーや登録など、エージェントの自己インストール実行可能ファイルを使用する以外のインストールはサポートされていません。 これにより、一貫性のある完全なインストールが保証されます。 Microsoft エージェントの自己インストール ファイルは、Microsoft Windows 2000 以降のオペレーティング システムにはインストールされないことに注意してください。これらのバージョンのオペレーティング システムには、独自のバージョンのエージェントが既に含まれているためです。
以前の Microsoft Windows オペレーティング システムを使用してターゲット システムにエージェントを正常にインストールするには、ターゲット システムに最新バージョンの Microsoft Visual C++ ランタイム (Msvcrt.dll)、Microsoft 登録ツール (Regsvr32.dll)、および Microsoft COM dll があることを確認する必要もあります。 必要なコンポーネントがターゲット システム上にあることを確認する最も簡単な方法は、Microsoft Internet Explorer 3.02 以降のインストールを要求することです。 または、Microsoft Visual C++ の一部として使用できる最初の 2 つのコンポーネントをインストールすることもできます。 必要な COM dll は、Microsoft Web サイトで入手できる Microsoft DCOM 更新プログラムの一部としてインストールできます。 これらのコンポーネントの詳細情報とライセンス情報は、Microsoft Web サイトで確認できます。
エージェントの言語コンポーネントは、同じ方法でインストールできます。 同様に、この手法を使用して、Microsoft エージェント Web サイトから配布できる Microsoft 文字の ACS 形式をインストールできます。 文字ファイルは、Microsoft Agent \Chars サブディレクトリに自動的にインストールされます。
Microsoft エージェントのコンポーネントはオペレーティング システム コンポーネントとして設計されているため、エージェントをアンインストールできない場合があります。 同様に、エージェントが Windows オペレーティング システムの一部として既にインストールされている場合、エージェントのセルフインストール キャビネットがインストールされない場合があります。
インストールが完了したら、エージェントのインターフェイスを呼び出すには、サーバーのインスタンスを作成し、標準の COM 規則を使用してサーバーがサポートする特定のインターフェイスへのポインターを要求します。 特に、COM ライブラリには、オブジェクトのインスタンスを作成し、オブジェクトの要求されたインターフェイスへのポインターを返す、CoCreateInstanceAPI 関数が用意されています。 CoCreateInstance 呼び出し、または後続の QueryInterface呼び出しで、IAgent または IAgentEx インターフェイスへのポインターを要求してください。
次のコードは、C/C++ でこれを示しています。
hRes = CoCreateInstance(CLSID_AgentServer,
NULL,
CLSCTX_SERVER,
IID_IAgentEx,
(LPVOID *)&pAgentEx);
Microsoft エージェント サーバーが実行されている場合、この関数はサーバーに接続します。それ以外の場合は、サーバーを起動します。
Microsoft エージェント サーバー インターフェイスには、多くの場合、"Ex" サフィックスを含む拡張インターフェイスが含まれています。 これらのインターフェイスは、Ex 以外の対応するインターフェイスから派生しているため、すべての機能が含まれます。 拡張機能のいずれかを使用する場合は、Ex インターフェイスを使用します。
BSTR へのポインターを受け取る関数は、SysAllocStringを使用してメモリを割り当てます。 呼び出し元は、SysFreeStringを使用して、このメモリを解放する責任があります。