1

ユーザーが指定した特定の条件 (年齢、件名、コンテンツSaveAs)に基づいて、Outlook フォルダーを調べてアイテム ( ) を保存しようとしています。私が直面している問題は、フォルダー内の特定のアイテムの種類を特定できないことです。私は使用しています

if( currentItem is MailItem )
  // do something
else if (currentItem is AppointmentItem)
  // do something else
// etc.

タイプを決定し、そのアイテムを適切に処理しようとします。残念ながら、私がテストしたリストされたタイプのいずれにも一致しないと思われるタイプがいくつか見つかりました。OutlookSpyを使用すると、タイプ 53 として表示される問題のオブジェクトを表示できますOlObjectClass.olMeetingRequestMeetingItemこれはどちらとも一致せずAppointmentItem、可能性が高いと思われる他のタイプがリストされていないようです。MeetingRequestItem私が見つけることができる同等のものはありません。のような明らかなメソッドGetTypeは、COM オブジェクトであるとしか言いようがなく、これまでに見つけた他のメソッドはうまく機能していないようです。

Office 2007 の VSTO を読みましたが、見つけることができたガイダンスも提供されませんでした。私は MSDN を検索しました。別のユーザーから同様の質問が投稿されましたが、回答がありませんでした。VS2010 は、ウォッチ リストに動的キャストを追加してオブジェクト情報を表示できるため、それを理解することができますが、それが何であるかはわかりません。

私には初歩的な質問のように思えて申し訳ありませんが、相互運用型マッピングへのオブジェクトを見つけようとしました。Outlook オブジェクトの種類を動的に決定する方法を誰かが持っている場合、これは本当に役に立ちます。私はこれであまり運がありませんでした...

4

1 に答える 1

0

会議出席依頼、返信、または更新は として送信されますOutlook.MeetingItemAppointmentItemを使用して、基になるものにアクセスできますMeetingItem.GetAssociatedAppointment()

からにアクセスする方法について、MSDN から引用した例を次に示します。AppointmentItemMeetingItem

Outlook.Folder folder = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
string filter = "[MessageClass] = 'IPM.Schedule.Meeting.Request'";
Outlook.Items items = folder.Items.Restrict(filter);
foreach (Outlook.MeetingItem request in items)
{
    Outlook.AppointmentItem appt =  request.GetAssociatedAppointment(false);
    if (appt != null)   
        Debug.WriteLine(appt.Subject);
}
于 2012-08-20T13:53:59.663 に答える