フォルダーの既定のメッセージ クラスを取得する
この例では、DefaultMessageClass プロパティを使用してフォルダーの既定のメッセージ クラスを取得する方法を示します。
例
注:
次のコード サンプルは、『Programming Applications for Microsoft Office Outlook 2007』からの抜粋です。
フォルダーの既定のメッセージ クラスを取得するには、MAPIFolder オブジェクトの DefaultMessageClass プロパティを使用します。 たとえば、Folder オブジェクトの DefaultMessageClass が IPM.Contact であれば、Contact フォルダーを表します。 しかし、フォルダーの既定のフォームがカスタム フォームまたは代替フォームの場合は、 PropertyAccessor オブジェクトを使用して既定のフォームのメッセージ クラスを決定する必要があります。 DefaultMessageClass プロパティはフォルダーの既定のフォームのメッセージ クラスを返しません。
次のコード例では、GetDefaultMessageClass プロシージャが PropertyAccessor を使用してフォルダーの既定のフォームを決定します。 フォルダーのプロパティ PR_DEF_POST_MSGCLASS(PidTagDefaultPostMessageClass) が見つからず、Outlook でエラーが発生すると、 try…catch ブロックから Folder の DefaultMessageClass プロパティが返されます。
Visual Studio を使用してこのコード例をテストする場合、Microsoft.Office.Interop.Outlook 名前空間をインポートするときに、まず Microsoft Outlook 15.0 オブジェクト ライブラリ コンポーネントへの参照を追加し、Outlook 変数を指定します。 using ステートメントは、コード例の関数の前に直接置くことはできません。パブリッククラス宣言の前に追加する必要があります。 次のコード行は、C# でインポートおよび割り当てを行う方法を示しています。
using Outlook = Microsoft.Office.Interop.Outlook;
private string GetDefaultMessageClass(Outlook.Folder folder)
{
if (folder == null)
throw new ArgumentNullException();
try
{
const string PR_DEF_POST_MSGCLASS =
@"http://schemas.microsoft.com/mapi/proptag/0x36E5001E";
string messageClass =
folder.PropertyAccessor.GetProperty(
PR_DEF_POST_MSGCLASS).ToString();
return messageClass;
}
catch
{
return folder.DefaultMessageClass;
}
}