0

2016 年 3 月 3 日

C++ を使用して、Microsoft Outlook/Office 用の純粋で必要最低限​​の管理されていない COM アドインを作成したいと考えています。Visual Studio では、Active Template Library の使用が強制され、ホスト (Outlook) がアドインに接続する方法の基本的な実装がすべて非表示になります。ここに私がこれまでに知っていることの背景を少し示します。

  1. COM の基本的な基礎とそのしくみを知っています。アーキテクチャに関する私の理解から、Outlook は COM の上に書かれているので、そのインターフェイスを照会してアプリケーションを操作できるはずであると結論付けました。

  2. オフィス アプリケーションに接続するには、IDTExtensibility2 インターフェイスを使用する必要があることはわかっています。このインターフェイスの定義が存在するヘッダー ファイルの名前を知っている人はいますか?

  3. アドインをレジストリに登録する必要があることはわかっています。これはCOMサーバーなので、これは予想されます。

これらの点を超えて、私は迷っています。ステップ 1 を知る必要があります。誰かが任意のタイプのリファレンスまたはコードを提供できますか?

記録として、アドインをゼロから作成する方法を知りたいので、VS を使用したくありません。パッケージで提供されているものではなく、必要なコンポーネントを知りたいです。

2016 年 3 月 4 日編集

だから私はMSDNのこのリンクに出くわしました:

https://msdn.microsoft.com/en-us/library/office/ff867268.aspx

どうして見逃したのかはわかりませんが、良い出発点のようです。私の唯一のハングアップは、使用するヘッダーだと思います。これは、基本的なアドインに必要なものを見つけるために私が取らなければならない冒険かもしれません. いろいろ調べて、このスレに報告します。

4

1 に答える 1

0
  1. はい。
  2. _IDTExtensibility2、ATL プロジェクトにインポートする DLL を参照してください。IDTExtensibility2 インターフェイス定義用
  3. はい。Outlook にアドインを読み込ませるための Outlook 固有のキーがあることに注意してください。HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins

IDTExtensibility2 インターフェイスの Delphi 定義は次のとおりです。 // *********************************************************************// // Interface: _IDTExtensibility2 // Flags: (4432) Hidden Dual OleAutomation Dispatchable // GUID: {B65AD801-ABAF-11D0-BB8B-00A0C90F2744} // *********************************************************************// _IDTExtensibility2 = interface(IDispatch) ['{B65AD801-ABAF-11D0-BB8B-00A0C90F2744}'] procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode; const AddInInst: IDispatch; var custom: PSafeArray); safecall; procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall; procedure OnAddInsUpdate(var custom: PSafeArray); safecall; procedure OnStartupComplete(var custom: PSafeArray); safecall; procedure OnBeginShutdown(var custom: PSafeArray); safecall; end;

于 2016-03-03T22:33:09.620 に答える