COMインターフェイスを既存のアプリケーションに追加するつもりです(ちなみに、これはWin32を使用してC ++で記述されています)。COMオブジェクトの使用経験があるので、インターフェイスなどの基本的なCOMの概念は知っていますが、実際にコンポーネントを実装するのはこれが初めてです。
最終的には、COMインターフェイスを使用して、VBなどのスクリプトからアプリケーションを自動化できるようにしたいと考えています。私は2つのステップがあることを理解しています:
- アプリケーションはアウトプロセスサーバーとして機能する必要があります(つまり、MIDLを使用して、プロキシDLLとスタブDLLのコードを生成する必要があります)。
- サーバーを入手したら、IDispatchインターフェイスを実装することで自動化機能を追加できます。
MIDLを使用するServer-in-an-EXEの機能とそうでないものはすでに少し急勾配であるため、IDispatchに進む前に、まずそれらすべてを把握したいと思いました。
DaleRogersonの「InsideCOM」という本を読んでいて、EXEのサーバーに関する章を完了しました(次の章では自動化について説明します)。
「EXE内のサーバー」の章では、サーバーとクライアントを実装するサンプルコードを提供します。ただし、サーバーを手動で起動する必要があります。これは私を混乱させます。明らかに、私のアプリケーション(=サーバー)がクライアントプロセスによって使用されている場合、この追加の手動手順は必要ありません。サーバーを自動的に起動するメカニズムはありませんか?それとも、それを達成するために自動化が必要ですか?現時点では、サーバーを手動で起動しなければならない可能性があるため(サーバーが1つでもある場合)、正しい方向に進んでいるのではないかと疑っています。
うまくいけば、これについてもっと知識のある人が、私が見逃している情報を見て、正しい方向に私を向けることができます。