Delphi を使用して Outlook プラグインを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/215389

  •  03-07-2019
  •  | 
  •  

質問

私はデータベース プロジェクトに取り組んでおり、現在プレビューされているメッセージをデータベースに保存する Outlook 2007 プラグインを作成する必要があります。

Delphi で Outlook プラグインを作成する方法と、それを展開する方法について、段階的なガイドを誰かが教えてくれませんか?

ありがとう

役に立ちましたか?

解決

その方法を学び理解したいだけの場合は、Google で Delphi Outlook アドインを検索してください (この文脈では、「プラグイン」よりも「アドイン」の方がはるかに関連性の高い結果が得られるはずです)。若干古いが形式的には正しいサンプル アドインの数。例:の バベルフィッシュアドイン Dmitry Streblechenko のアドイン (依存する Web サービスがもう存在しないため役に立ちませんが、基本的な部分は残っています)、または Paul Qualls のサンプル アドイン (残念ながら元のサイトからはもう入手できません) です。もあります メールホワイトリスターアドイン 完全なソースが提供されていますが、まだ見ていません。

しかし、遅かれ早かれあなたは、 意思 のような実績のあるフレームワークの使用を開始したい ADX, 、特にアドインが社外で使用される場合はそうです。私たちは Delphi でシェアウェア アドインを開発しており、アドイン内のコードの約 75% は、Outlook のさまざまなバージョン (特に Outlook XP) とさまざまなセットアップ (特に注目すべきはメッセージ編集に Word を使用するオプション) のサポートを提供するためにあります。私たちにとって主要なテーブルバイトです)。

もう 1 つの要因は、愚かな OOM セキュリティ モデルを常に回避しなければならないことです。あなたはそれなしではかなり破産します 償還 または Outlook セキュリティ マネージャー そこには。特に、償還は、セキュリティ プロンプトを回避するだけでなく、堅牢で使いやすい独自のフレームワークを使用して、膨大な退屈な日常タスクを簡素化するという点でも、十分にお勧めできません。

追加:]私たちは独自の自家製のフレームワークから始めましたが、ユーザーの数と、爆発的なサポートするさまざまな構成の数まで、すべてがうまくいきました。私たちは約 1 年前に ADX に切り替えましたが、過去を振り返ることはありませんでした。ただし、Redemption を使用することは最初から簡単でした。それを使用するか、開始する前に拡張 MAPI の学習に数か月を費やすかのどちらかでした (それでも、一度 Redemption のガイドに従って操作を進めていくと、はるかに簡単に習得できるようになる傾向があります)最初のいくつかのハードル)。

ところで:(使用するプログラミング言語に関係なく) 自尊心のあるアドイン開発者にとって、もう 1 つの不可欠なツールは次のとおりです。 アウトルックスパイ. 。これにより、Outlook (およびある程度は Exchange) 内で何が起こっているのかを実際に確認 (および操作) できるようになり、目的の効果を実現するためにアドインが何を実行する必要があるのか​​をより深く理解できるようになります。

他のヒント

アドインエクスプレスは良さそうです。

Delphiを使用してOutlookアドインを作成しました(会議室予約システムを予約フォームに統合)。

いくつかのアドバイス:

  • アドインエクスプレスを購入して使用します。時間を大幅に節約でき、インストール時にサードパーティのコンポーネントを必要としないCOMアドインを構築できます。最初に独自のコンポーネントを構築してみました。何かをするフォームにボタンを配置することはできましたが、費やされた時間は結果に対して不均衡でした。
  • 疑わしい場合は、アドインエクスプレスサポートサービスを使用します。彼らは自分のものを知っています。
  • outlookのCOMインターフェイス(delphi / ocx / servers /フォルダーにあります)はあなたの友達です。アドインエクスプレスは、この機能の(はるかに)便利なラッパーを提供するだけです。

避けるべきこと:

  • ストレートMAPI呼び出し。それはできますし、実際、送信中のメッセージストリームを変更するためにそれに頼らなければなりませんでしたが、それは実際に作業するPITAであり、文書化は非常に不十分です。
  • 1回限りのフォーム。一回限りのフォームを機能させるために多くの時間を無駄にしました。公開されたフォームのみを使用します。コードからフォームをローカルフォルダーに発行できるため、実際にはこれは大した問題ではありません。さらに良いのはフォーム領域を使用することです。これはフォームを拡張する最も堅牢な方法です。
  • DelphiのCOMのようなふりは、通常のVCLプログラミングのようなものです。 COMの経験がない場合のアドバイスは、手に入れることができるすべてのドキュメントを読むことです。一部のハードラーニングレッスンでは、関数が終了する前に常に変数をnilに設定して、オブジェクトがoutlookによって正しく解放されるようにし、キャストしようとする代わりにオブジェクトから適切なインターフェイスを常に要求するようにしました。

DelphiでExcelで使用するためのプラグインを作成しました(独自のユーザー定義関数の作成)。 必要なのは、_IDTExtensibility2インターフェイスを実装するアドインです。

今は正確な手順はわかりませんが、_IDTExtensibility2を検索すると非常に役立ちます。

良い方法については、記事をご覧ください。 _IDTExtensibility2インターフェイスのOnConnectionプロシージャは、Outlookアプリケーションへのエントリを提供します。

悪いことに、仕事はDelphiで行わなければなりません。 .NETとVSTOを使用すると、Outlookアドインを作成するのは、悪い昔に比べてはるかに簡単です。 COM(まったく面白くない)とVSTOの以前のバージョンでOfficeアドインを作成しましたが、VSTO 3はOffice開発者にとって非常に良いニュースです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top