2009-05-02 2 views
3

Outlook 약속 항목에 대한 기본 관리자 양식 대신 사용자 지정 양식을 표시해야합니다. C#에서이 작업을 수행하려고합니다.VSTO - C#의 Outlook 이벤트 핸들러

devx에 대한 유용한 자습서가 있지만 VB를 사용하고 있으므로 C#을 사용하고 싶습니다. 그래서 코드를 C#으로 변환했으며 AppointmentItem (mcAI)에 대한 Open 이벤트 처리기를 재정의해야하는 문제가 있습니다.

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 매개 변수없이이 시도했습니다 참고 위에서 언급 한 tute, 그들은 VB에서 다음과 같은 작업을 수행 할 말 및/너무 처음 PARAM)

그러나 우리는이 이벤트가있는 것을 등록 할 필요가 같은 개체가없는, 그래서 나는이 코드에 넣어했습니다

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

하지만 오류 얻을 나는이를 컴파일 할 수 없습니다 : I는 AppointmentItemOpen 이벤트에 대한 내 함수를 등록 해야하는 건가요 방법에

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

어떤 아이디어? 미리 감사드립니다.

은 (BTW 내 코드가 작동한다 제안하는 MSDN QA있어 아직 나는 아직도 붙어있어.)

답변

5

을 이론적으로,이 작업을해야합니다 :

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

감사합니다, 그래이 너무 실제로 작업을 수행합니다! 나는 ref 매개 변수를 시도했다고 생각했다. 내가 문서에서 그 효과에 대해 뭔가를 발견했기 때문에 out 매개 변수를 사용하고 있었지만 지금은 확인할 수 없습니다. – Marcin