質問:メールを開くようにOutlook APIを使用して、有効な.MSGファイルのように見えるものを開いたとき、私は、次のエラーメッセージが表示されます。
エラー
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063034-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
MSGファイルはOutlookでうまく開き、フォームは標準的なOutlookのメールフォームであることが保証されています。
このエラーの原因としてはどのようなものが考えられますか?
背景:私の同僚の一つは、PSTファイルとして交換局から多数のメールボックスをエクスポートし、その後で満たされ、元のメールボックスに似たファイル構造を生成するためにPSTファイルに対してツールを実行しています。 MSGファイル。例:USERNAME \
\ USERNAMEの\ \
を送ったユーザ名\のINBOX \ USERNAME
\
下書き私は、その後に.MSGファイルと試みるためにこれらのフォルダをスキャン
DELETED USERNAME \ \
Outlook APIを使用してそれらを開きます。
Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
Outlook.MailItem item = (Outlook.MailItem)ns.OpenSharedItem(EmailPath);
Subject = item.Subject;
この例外を生成したコードも参照できますか? –
代わりにOutlook.NoteItemにキャストしてみてください。助けてくれますか? –
@Davide:質問の最後のコードは例外を生成しました – Richard