2016-05-17 15 views
-1

VS2013を使用してOutlook 2013用のOutlookアドインを作成しています。特に、「コール」アイテムを右クリックして表示されるコンテキストメニューに追加します。あなたの受信トレイのMailItem。受信トレイにコンテキストメニューアイテムを追加するVSTOを使用してOutlook.MailItemを追加

以下は、現在選択されているMailItemを取得するためのコードです。私はいくつかのデバッグMessageBoxを投げ捨てることで、正しいハンドルを取得していることを確認できます。しかし、私は(私ははっきりcm.Items.Add(callMenuItem);ような何かをしたいと)MailItemのコンテキストメニューにアクセスするように見えることはできません。

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    //Handle the event when the selected inbox MailItem changes: 
    Globals.ThisAddIn.Application.ActiveExplorer().SelectionChange += ThisAddIn_SelectionChange; 
} 

private void ThisAddIn_SelectionChange() 
{ 
    //Get a handle to the current inbox MailItem: 
    Outlook.MailItem mailItem = ((Outlook.MailItem)Globals.ThisAddIn.Application.ActiveExplorer().Selection[1]); 

    //Verify I've got the right one by showing a popup with the subject line: 
    System.Windows.Forms.MessageBox.Show(mailItem.Subject); 

    //Now I want to add an item to the context menu: 
    // ??? Cannot find anything anywhere that shows 
    //  shows how to add items to this contextmenu. 
} 

とにかく、私はこのネタを得ることができるすべてで素晴らしいスタートになります。最終的にこのコールボタンをOutlook Homeリボン(「返信」の隣に)とメールポップアップのメッセージリボン(「返信」の隣に)に追加したいと思います。場所は私が探しているものです。

+0

@シルバラックはい私は、Outlookとコンテキストメニュー、そして過去2日間の私が考えることができるすべての順列と組み合わせてこれを試しました。同じ5または6のトップ記事が返され、返されるのはまったく役に立ちません。 – kmarks2

+0

私が提供したリンクは、あなたの質問に文字通り答えます。それについて何がうまくいかなかったのですか? –

答えて

0

Outlookでコンテキストメニューをカスタマイズする必要がある場合SelectionChangeイベントを処理する必要はありません。その代わり、あなたが流暢なUIを使用する必要があります。詳細についてはCustomizing Context Menus in Office 2010を参照してください。

あなたは記事の次直列に流暢なUI(別名リボンUI)詳細を読むことができます:

私は、次のコード行を気づいている:あなたは、イベントを保つために、グローバルスコープ(クラスレベル)でソースオブジェクトを宣言する必要が

//Handle the event when the selected inbox MailItem changes: 
Globals.ThisAddIn.Application.ActiveExplorer().SelectionChange += 

はすべて解雇時間。または、ソースオブジェクト(エクスプローラ)がガベージコレクタによってスワイプされます。

関連する問題