none
[VSTO]アドインをポップアップした新規ウィンドウだけではなく初期で読み込む画面にも適用したい RRS feed

  • 質問

  • いつもお世話になっております。

    現在作成している[VSTO]を使用したOutlook2013,2016向けアドイン開発で

    下記の機能を実装しました。

    ・添付ファイルがある場合送信時に自動で鍵付きのZIPに圧縮

    ・ZIPのパスワードを5分後に送信

    ですが、作成したアドインは新規メール作成時、(新規ウィンドウでメール作成)は正常に動作しますが、

    受信したメールに対してファイルを添付して送信した場合エラーが発生し、メールが送信できません。

    この原因を調べた結果、新規ウィンドウでは表示されている[アドイン]タブがメインウィンドウ(Inboxとか表示されている初期画面)

    では表示されておらず、プレビュー表示されている画面からファイルを添付して送信した際に発生していることがわかりました。

    現在の実装ではリボンが表示されている画面(つまりRibbon1クラス)がファイルを添付した際のAttachmentオブジェクトを検知し、

    Attachmentから添付ファイルのオリジナル名や一時ファイルの保管場所などを抽出しています。

    そして送信時にAttachmntオブジェクトの個数と一時ファイルのパスの個数、添付ファイルのオリジナル名(送信されるファイルは一度リネームされるため)が一致している必要があります。

    そのためアドインタブが表示されていない初期で表示されるメイン画面ではファイル添付時に発生するイベントが検知できずAttachmentの情報を取得できないということになります。

    ↓こんなイメージです。実画面はヒューマンエラーによる情報漏えいのリスクも考慮して使えないため雑なペイントですがご理解お願い致します。

      ・新規メール作成時や返信時にポップアウトすると表示されるウィンドウ

      ・Outlook立ち上げ時に表示されるメインウィンドウ

    その為、Outlook立ち上げ時に表示される画面にアドインタブと作成済みのRibbonを追加したいのですが、どうすればいいのでしょうか?

    どうかよろしくお願いいたします。


    • 編集済み tomy-7 2017年4月14日 7:05 OutlookとOfficeの文言が間違っていたので修正しました
    2017年4月14日 6:57

すべての返信

  • 立ち上げ時の画面に自作したリボンを表示したい場合は、Outlook のリボンのカスタマイズメイン アプリケーション UI へのカスタム リボンの追加に書かれているように、RibbonTypeの一覧でMicrosoft.Outlook.Exploreにチェックを入れます。
    他のウィンドウの場合もチェックを入れれば表示されるようになるでしょう。
    #RiboonTypeプロパティは、デザイナではリボン全体を選択するか、プロパティウィンドウの上部のドロップダウンでリボンを選ぶと表示できます。

    プレビュー部でのファイル添付のイベントはリボンとは無関係に検出できます。
    例えば下書きのメールを表示させた場合はApplication.ItemLoadイベントが発生します。このイベントをThisAddInのStartupで登録して、派生したイベントの引数ItemをOutlook.MailItemにキャストできたらMailItem.AttachmentAddイベントを登録してやればよいのではないでしょうか。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2017年4月14日 9:28
  • tomy-7 さん、こんにちは
    フォーラム オペレーターの立花楓です。
     
    本件についてその後いかがでしょうか。
    gekka さんから情報をお寄せいただいておりますので、ご確認いただき、ご返信をいただけましたら幸いです。
     
    また、参考になる情報がありましたら、投稿者からの [回答としてマーク] をお願いします。
     
    宜しくお願いします。

    MSDN/TechNet Community Support 立花楓

    2017年5月9日 7:08
    モデレータ