Share via


フォルダーの既定のメッセージ クラスを取得する

この例では、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 ブロックから FolderDefaultMessageClass プロパティが返されます。

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;
    }
}

関連項目