0

リモートサーバーからダウンロードした、タブ付きの既存のフォームを拡張できるOutlook拡張機能を開発する必要があります。たとえば、予約フォームに追加のタブが表示されます。このタブのフォーム定義は、Webサービスからダウンロードされ、たとえばWPFを使用してレンダリングされます。このタブのデータもサーバーから取得され、フォームフィールドにバインドされます。最後に、フォームを保存するときに、このリモートサーバーにも送信する必要があります。

Outlook2003および2007で機能するはずです。

主な質問は次のとおりです。

  1. それは可能ですか?
  2. それをより速く把握するために何を読むべきですか?MSDNは大きく、Outlook開発者セクションですらあります。
  3. サンプルはありますか?

アップデート

答えてくれてありがとう!確かに、質問が多すぎるので、いくつかの部分に分解する必要があります。回答を読んで宿題をした後、再開したいと思います。

  1. はい、可能です。でも、後で水中の岩を見つけるかもしれません。
  2. 最善の方法は、VS 2008を使用して、拡張を試みることです。
4

2 に答える 2

5

あなたの投稿にはたくさんの質問があります。答えはいくつかあると思いますが、すべてではありません。とにかく、あなたの質問には、1つの投稿ですべてをカバーするには多すぎることがあります。

最初に知っておくべきことは、Outlook2007には以前のバージョンとは異なる方法があるということです。したがって、Outlook 2003と2007の両方を使用するには、おそらく2回実行する必要があります。

最初に知っておくべきことは、必要なものを検索するのに役立つ語彙です。Outlook 2003では、カスタムフォームを使用してフォームを作成または拡張します。Outlook 2007では、新しいフォーム領域を使用します。概念は似ていますが、2つの異なるものです。

私はOutlook2007でしか作業していないので、次に言うことはそれにのみ当てはまります。Visual Studio 2005を用意してVSTO(Visual Studio Tools for Office)をダウンロードするか、VisualStudio2008をダウンロードする必要があります。

フォーム領域には、隣接、分離、置換、または置換-すべての4つのタイプのいずれかがあります。隣接とは、デフォルトのフォームの下部に表示されることを意味します。個別とは、フォーム内の新しい「ページ」であることを意味します。置換とは、デフォルトフォームの最初のページを置き換えることを意味し、すべて置換とは、デフォルトフォームのすべてのページを置き換えることを意味します。

タブを使いたいとおっしゃいました。Outlook 2007では、そうすべきではありません。Outlook 2007のUI原則を尊重するために、個別のページを使用する必要があります。タブを作成することはできますが、タブが非常に見苦しく表示されることがわかります。一方、リボンには個別のページが表示されるため、あるページから別のページに簡単に切り替えることができます。

フォーム領域を設計する方法は2つあります。最初の推奨される方法は、Outlook2007内のデザイナーです。「ツール>フォーム>リージョンフォームの作成」のようなものです。この内部でデザインし、フォームを.ofsファイルとして保存してから、VisualStudioにインポートします。

利点:

  • Microsoftが推奨しているため、Outlook2007のカスタマイズに関するほとんどすべてのリソースでこの方法が使用されています。
  • Outlook用の既製のコントロール(たとえば、メールアドレスを保持するように設計されたフィールド)。
  • メール内のUserPropertyへの自動バインド。

欠点:

  • 粗野なデザイナー(物事を適切に調整するのは難しい)。
  • フォームを更新する場合は常に、Outlookでフォームを変更し、Visual Studioに再度アップロードする必要があります。これにより、以前のコードが消去されます。
  • 使用するのがひどい古いCOMコントロール。

もう1つの方法は、VisualStudioで新しいリージョンフォームをデザインすることです。

利点:

  • あなたはあなたが望むすべての最新の、強力な、winformsコントロールを持っています。
  • より良いデザイナー。
  • 更新が簡単です。

欠点:

  • ほとんどの本の著者はOutlookデザイナのみを使用しているため、これに関する多くの情報は見つかりません。
  • Outlookで当然のことと思われる多くの動作(複数のメールアドレスを保持およびチェックできるテキストボックスの作成など)を自分でコーディングする必要がありますが、これは非常に面倒で実行が難しい場合があります。

カスタムフォーム(少なくともOutlookで設計されたもの)をメールで送信できると思いますが、自分で試したことがないのでわかりません。

バインディングに関しては、おそらくイベントでこれを行うことができるでしょう。たとえば、メッセージを保存または送信する前にトリガーされるイベントがあります。

今のところこれですべてです。私が長い答えで話題から外れていないこと、そしてそれがあなたがやりたいことを正確に決定するのに役立つことを願っています。Outlookで何ができるかを理解してから、各ポイントについてより具体的な質問をする必要があります。

于 2009-06-22T13:38:09.820 に答える
1

あなたが説明するようにこれは不可能ですが、あなたはそこにいくらかの方法を得ることができます。また、Ksempacは、Outlook 2007で物事を行う方法について、賛否両論について多くの良い点を指摘しています。

2003年と2007年にこれを稼働させるには、独自の予約フォームを設計するのが最善の方法だと思います。タブの1つを拡張して、Webサービスから動的フォームを表示するブラウザーコントロールを設定できます。その結果は、後でレンダリング/処理するために、新しいOutlookフォームで送信または保存できます。

例:

フォームのデザイン例: http ://www.msexchange.org/articles/Designing-Outlook-Forms-Part1.html

デフォルトのフォームを上書きします: http ://support.microsoft.com/?kbid = 241235

Outlookフォームの設計については、こことネット上にたくさんの良いものがあり、ここであらゆる方法で質問することができます。フォームに関する優れた本もいくつかあります。

スーモッシャーの本とサイトは、始めるのに良い場所です。Outlookcode.com

Microsoft Outlookプログラミング:管理者、開発者、およびパワーユーザー向けのジャンプスタート(ISBN 1-555-58286-9、Digital Press)

Microsoft Outlook 2007プログラミング:パワーユーザーおよび管理者向けのジャンプスタート(ISBN 1-55558-346-6、デジタルプレス)

Ksempacとして、あなたはおそらくあなたの質問を分解し、あなたが行くときに尋ねる必要があります..

更新予算がある場合は、Add-in Express http://www.add-in-express.com/を使用すると、2つのバージョンのOutlookに展開する手間が省け、手作業で行うよりも生産性が向上する可能性があります。 。

于 2009-06-22T13:53:17.607 に答える