3

すべての Outlook アイテムの本文を検索したいと思います。4 つの PIM 項目 (メモ/タスク/予定/連絡先) に対してこれを行う方法を知っています。ただし、COM オブジェクトを特定のアイテム タイプ (ContactItem、AppointmentItem など) にキャストすることを除いて、コードはすべて同じです。これらの PIM アイテムの親クラスがあるので、ループで次のようなことができます。


using Outlook = Microsoft.Office.Interop.Outlook

List SearchFolderItems( Outlook.Folder folder )
{
   List results = new List();
   foreach( object folderItem in folder.Items )
   {
      //GenericPIMItem is what I am wishing for
      Outlook.GenericPIMItem item  = (Outlook.GenericPIMItem)folderItem;
      if( item.Body.ToLower().Contains( "secret sauce" ) )
      {
         results.Add( item.Name );
      }
   }
}


Body は、取得したい 4 つの PIM 項目の共通プロパティです。そのような親アイテムはありますか?そうでない場合は、API 設計が貧弱に見えますか? 親アイテムがあるように見せるために、フォルダーアイテムを抽象化できると思います...リフレクションを使用してこれを実行しようとしましたが、そこに到達できませんでした。

何か提案はありますか?

4

2 に答える 2

1

ドキュメントを見ると、あなたが望むようなクラスは見当たりません。

Outlook 2007 の場合、Items コレクションに含めることができるオブジェクトの一覧はこちらです。本文のない配布リストのようなものが含まれているため、必要なものがありそうにありません。

于 2008-11-14T16:30:59.120 に答える
0

PIM アイテムは共通クラスから派生している可能性がありますが、com オブジェクトを介して作成することはできませんが、すべてのアイテムはクラスプロパティも返します。これはアイテムのタイプの列挙です。キャストする前に、必要な 4 種類のアイテムについてこのプロパティを確認できます。

于 2008-11-24T20:49:42.760 に答える