0

現在、特定のアーカイブ フォルダーを作成する Outlook アドインを作成することを目的としています。通常のものとの違いは、アイテムの移動中または移動中にアイテムのコンテンツを完全に制御できることです。

手短に言えば、実際にフォルダーに移動したり、フォルダーから削除したりする前に、アイテムのバイナリ コンテンツをスキャンできるはずです。そのアイテムの一部をネットワーク プレースにコピーします。

私の状況に適したドキュメントまたはサンプルをアドバイスしてください

4

1 に答える 1

1

Visual Studio 2010 を使用していると仮定すると、最初に Visual Studio Tools for Office (VSTO) プロジェクトを作成してアドインを作成することになります。VSTO と Visual Studio の詳細については、こちらを参照してください。

これを起動して実行すると、アドインへの "メイン エントリ ポイント" を含む ThisAddIn.cs というソース ファイルが作成されます。そこから、特定のイベントが発生したときに Outlook が発生させるイベントにフックできます。次のイベントに関心がある可能性が高いです。

  • BeforeFolderSwitch
  • フォルダースイッチ

コードは次のようになります。

private void ThisAddIn_Startup(object sender, EventArgs e)
{
    var explorer = this.Application.ActiveExplorer();
    explorer.BeforeFolderSwitch += new ExplorerEvents_10_BeforeFolderSwitchEventHandler(explorer_BeforeFolderSwitch);
    explorer.FolderSwitch += new ExplorerEvents_10_FolderSwitchEventHandler(explorer_FolderSwitch);
}

/// <summary>
/// Handler for Outlook's "BeforeFolderSwitch" event. This event fires before the explorer goes to
/// a new folder, either as a result of user action or through program code.
/// </summary>
/// <param name="NewlySelectedFolderAsObject">
/// The new folder to which navigation is taking place. If, for example, the user moves from "Inbox"
/// to "MyMailFolder", the new current folder is a reference to the "MyMailFolder" folder.
/// </param>
/// <param name="Cancel">
/// A Boolean describing whether or not the operation should be canceled.
/// </param>
void explorer_BeforeFolderSwitch(object NewlySelectedFolderAsObject, ref bool Cancel)
{
    if (NewlySelectedFolderAsObject == null)
        return;
    var newlySelectedFolderAsMapiFolder = NewlySelectedFolderAsObject as MAPIFolder; 
}

void explorer_FolderSwitch()
{
}

作業を実行するには、これらのイベント ハンドラーにコードを配置する必要があります。

于 2012-05-03T15:52:19.950 に答える