[편집] 상태로, 왜 당신은 분명 호출하지 않습니다
inspect.Close(OlInspectorClose.olDiscard);
이미 관리자를 가지고 있기 때문에?
이것은 C++이 (불완전하게 보이는) 것입니다. 액세스는 다음과 같이 보인다, 스마트 래퍼를 활용
#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\mso.dll" no_namespace
#import "C:\Program Files\Microsoft Office\OFFICE14\msoutl.olb" rename_namespace("Outlook")
:에 의해 수입
virtual HRESULT __stdcall get_Inspectors (/*[out,retval]*/ struct _Inspectors * * Inspectors) = 0;
: 형식 라이브러리 정보는 get_Inspectors이 사찰의 목록을 반환 보여줍니다
_ApplicationPtr app("Outlook.Application");
_InspectorsPtr list = app->GetInspectors();
_InspectorPtr i = list->Item(0);
i->Close(OlInspectorClose::olDiscard);
공지 사항을 그 Item 함수에 정수 인덱스를 전달하고 있습니다. 는 C# 래퍼에서 인터페이스 선언은 다음과 같습니다 인덱서 값은 객체를 선언하는 것이
[DispId(0)]
Inspector this[[MarshalAs(UnmanagedType.Struct), In] object Index] { [DispId(0)] get; }
주의 사항 :
[DispId(282)]
Inspectors _Application.Inspectors { [DispId(282)] get;
사찰 구현의이 인덱서는 것 같습니다. Interop 래퍼를 사용하면 Inspector를 int로 전달할 수 있습니다. 실제로, 인덱서가 int로 정렬 할 수있는 가능성이있는 시나리오로 보입니다. 귀하의 오류를 기반으로, 나는 그렇지 않을 수도 있습니다 생각합니다.
해당 구성 요소를 모르지만 디스패치 인터페이스에서 지원하는 열거 형입니까? –
그건 MailItem 용이고, 위의 코드에서 Inspector를 닫으려고합니다. 이것은 아마 그 페이지입니다. 그러나 왜 형식이 일치하지 않는지 설명하지 못합니다. http://msdn.microsoft.com/en-us/library/ff869503.aspx – Cat
수 있습니다. * Inspect * 인덱서가 될 수 있습니다. 게다가. 이것을 부셔 라. –