2009-05-02 40 views
3

Outlookの予定アイテムのデフォルトのインスペクタフォームの代わりにカスタムフォームを表示する必要があります。私はC#でこれをやりたいVSTO - C#のOutlookイベントハンドラ

devxについてのチュートリアルはありますが、VBを使用しており、C#を使いたいと思います。そこでコードをC#に翻訳しましたが、AppointmentItem(と呼ばれています)のOpenイベントハンドラをオーバーライドする必要がある問題が発生しています。上記tuteでは、彼らは、VBで次の操作を実行するために言う:

私にと変換さ
Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open 
    Cancel = True 
End Sub 

private void mcAI_Open(out bool Cancel) 
{ 
    Cancel = true; 
} 

(私はoutrefパラメータでとせずにこれを試してみた注意してください、および/とあまりにも最初のparam)

は、しかし、我々はこのイベントであることを登録する必要がありますようにオブジェクトのないので、私はこのコードを入れてきました:

mcAI.Open += 
    new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open); 

しかし、私はエラーを取得するように私はこれをコンパイルすることはできません。

No overload for 'mcAI_Open' matches delegate 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'

私はAppointmentItemOpenイベントのために私の関数を登録することが出来るのですか上の任意のアイデア?前もって感謝します。

は(ちなみに私のコードは動作するはず示唆MSDN QAありますし、まだ私はまだこだわっている。)

答えて

5

を理論的には、この作業をする必要があります:

private void mcAI_Open(ref bool Cancel) 
{ 
    Cancel = true; 
} 
+0

おかげで、はい、これはあまりにも、実際に作業を行います!私はrefパラメータを試してみたと思いました。私はoutパラメータを使用していました。なぜなら、ドキュメントの中で何かが見つかったからですが、今はチェックすることができません。 – Marcin

関連する問題