Share via


Abrufen der Standardnachrichtenklasse eines Ordners

In diesem Beispiel wird gezeigt, wie die DefaultMessageClass-Eigenschaft verwendet wird, um die Standardnachrichtenklasse eines Ordners abzurufen.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

Verwenden Sie die DefaultMessageClass-Eigenschaft des MAPIFolder-Objekts, um die Standardnachrichtenklasse eines Ordners abzurufen. Ein Folder-Objekt mit der DefaultMessageClass „IPM.Contact“ bedeutet beispielsweise, dass es einen Ordner „Kontakte“ darstellt. Wenn der Ordner jedoch ein benutzerdefiniertes Formular aufweist oder ein Ersatzformular ein Standardformular aufweist, müssen Sie das PropertyAccessor-Objekt verwenden, um die Nachrichtenklasse des Standardformulars zu ermitteln. Die DefaultMessageClass-Eigenschaft gibt nicht die Nachrichtenklasse des Standardformulars für den Ordner zurück.

Im folgenden Codebeispiel ermittelt die GetDefaultMessageClass-Prozedur anhand der PropertyAccessor-Klasse das Standardformular für einen Ordner. Wenn die Ordnereigenschaft PR_DEF_POST_MSGCLASS(PidTagDefaultPostMessageClass) nicht gefunden wird und in Outlook ein Fehler ausgelöst wird, gibt der try…catch-Block die DefaultMessageClass-Eigenschaft für das Folder-Objekt zurück.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

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

Siehe auch