IMAPIProp::GetIDsFromNames

Gilt für: Outlook 2013 | Outlook 2016

Stellt die Eigenschaftenbezeichner bereit, die einem oder mehreren Eigenschaftennamen entsprechen.

HRESULT GetIDsFromNames(
  ULONG cPropNames,
  LPMAPINAMEID FAR * lppPropNames,
  ULONG ulFlags,
  LPSPropTagArray FAR * lppPropTags
);

Parameter

cPropNames

[in] Die Anzahl der Eigenschaftennamen, auf die der lppPropNames-Parameter verweist. Wenn lppPropNames NULL ist, muss der cPropNames-Parameter 0 sein.

lppPropNames

[in] Ein Zeiger auf ein Array von Eigenschaftennamen oder NULL. Die Übergabe von NULL fordert Eigenschaftenbezeichner für alle Eigenschaftennamen in allen Eigenschaftensätzen an, zu denen das Objekt Informationen enthält. Der lppPropNames-Parameter darf nicht NULL sein, wenn das MAPI_CREATE-Flag im ulFlags-Parameter festgelegt ist.

ulFlags

[in] Eine Bitmaske von Flags, die angibt, wie die Eigenschaftenbezeichner zurückgegeben werden sollen. Das folgende Flag kann festgelegt werden:

MAPI_CREATE

Weist einem oder mehreren namen im Eigenschaftennamenarray, auf das von lppPropNames verwiesen wird, einen Eigenschaftsbezeichner zu, sofern noch keiner zugewiesen wurde. Dieses Flag registriert den Bezeichner intern in der Zuordnungstabelle name-to-identifier.

lppPropTags

[out] Ein Zeiger auf einen Zeiger auf ein Array von Eigenschaftstags, das vorhandene oder neu zugewiesene Eigenschaftenbezeichner enthält. Die Eigenschaftentypen für die Eigenschaftstags in diesem Array sind auf PT_UNSPECIFIED festgelegt.

Rückgabewert

S_OK

Die Bezeichner für die angegebenen Eigenschaftennamen wurden erfolgreich zurückgegeben.

MAPI_E_NO_SUPPORT

Das -Objekt unterstützt keine benannten Eigenschaften.

MAPI_E_NOT_ENOUGH_MEMORY

Es war nicht genügend Arbeitsspeicher verfügbar, um die Bezeichner abzurufen.

MAPI_E_TOO_BIG

Der Vorgang kann nicht ausgeführt werden, da zu viele Eigenschaftstags zurückgegeben werden müssen.

MAPI_W_ERRORS_RETURNED

Der Aufruf war insgesamt erfolgreich, aber mindestens ein Eigenschaftsbezeichner konnte nicht zurückgegeben werden. Der entsprechende Eigenschaftstyp für jede nicht verfügbare Eigenschaft wird auf PT_ERROR und sein Bezeichner auf 0 (null) festgelegt. Wenn diese Warnung zurückgegeben wird, behandeln Sie den Aufruf als erfolgreich. Verwenden Sie zum Testen auf diese Warnung das Makro HR_FAILED . Weitere Informationen finden Sie unter Verwenden von Makros für die Fehlerbehandlung.

Hinweise

Die IMAPIProp::GetIDsFromNames-Methode ruft ein Array von Eigenschaftstags ab, die die Eigenschaftenbezeichner für eine oder mehrere benannte Eigenschaften enthalten. IMAPIProp::GetIDsFromNames kann aufgerufen werden, um die folgenden Aktionen auszuführen:

  • Erstellen Sie Bezeichner für neue Namen.

  • Ruft Bezeichner für bestimmte Namen ab.

  • Ruft Bezeichner für alle benannten Eigenschaften ab, die in der Zuordnung des Objekts enthalten sind.

Benannte Eigenschaften werden in der Regel von Nachrichtenspeicheranbietern für Ordner und Nachrichten verwendet. Andere Objekte, z. B. Messagingbenutzer und Profilabschnitte, unterstützen möglicherweise nicht die Zuordnung von Namen zu Eigenschaftenbezeichnern und geben möglicherweise MAPI_E_NO_SUPPORT von GetIDsFromNames zurück.

Wenn ein Fehler auftritt, der einen Bezeichner für einen bestimmten Namen zurückgibt, gibt GetIDsFromNames MAPI_W_ERRORS_RETURNED zurück und legt den Eigenschaftstyp im Eigenschaftentagarrayeintrag, der dem Namen entspricht, auf PT_ERROR und den Bezeichner auf Null fest.

Die Name-zu-Bezeichner-Zuordnung wird durch die eigenschaft PR_MAPPING_SIGNATURE (PidTagMappingSignature) eines Objekts dargestellt. PR_MAPPING_SIGNATURE enthält eine MAPIUID-Struktur , die den für das Objekt verantwortlichen Dienstanbieter angibt. Wenn die PR_MAPPING_SIGNATURE-Eigenschaft für zwei Objekte identisch ist, gehen Sie davon aus, dass diese Objekte die gleiche Zuordnung zwischen Namen und Bezeichner verwenden.

Hinweise für Implementierer

Die Bezeichner, die Sie im Eigenschaftentagarray zurückgeben, auf das der Parameter lppPropNames verweist, müssen sich im 0x8000 0xFFFE Bereichs befinden. Die Einträge in diesem Array müssen in der gleichen Reihenfolge wie die Namen sein, die im Eigenschaftennamenarray übergeben werden, auf das von lppPropNames verwiesen wird.

Wenn Sie benannte Eigenschaften für einen Container unterstützen, verwenden Sie die gleiche Zuordnung zwischen Namen und Bezeichner für alle Objekte in Ihrem Container (d. a. verwenden Sie keine andere Zuordnung für jeden Ordner in Ihrem Nachrichtenspeicher oder jede Nachricht in Ihrem Ordner).

Hinweise für Aufrufer

Da die Eigenschaftentypen für die zurückgegebenen Bezeichner im Eigenschaftentagarray, auf das von lppPropTags verwiesen wird, auf PT_UNSPECIFIED festgelegt sind, müssen Sie die IMAPIProp::SetProps-Methode aufrufen, um die genauen Typen abzurufen.

Wenn Sie Objekte mit benannten Eigenschaften verschieben oder kopieren und die Quell- und Zielobjekte unterschiedliche Zuordnungssignaturen aufweisen, wie durch die Werte ihrer PR_MAPPING_SIGNATURE Eigenschaften angegeben, müssen Sie die Namen während dieser Vorgänge beibehalten. Um Eigenschaftsnamen beizubehalten, passen Sie die entsprechenden Eigenschaftenbezeichner an die Zuordnung zwischen Name und Bezeichner des Zielobjekts an.

Bei einigen Objekten ist die Anzahl der Eigenschaftsbezeichner begrenzt, die sie benennen können. Wenn ein Aufruf von GetIDsFromNames bewirkt, dass dieser Grenzwert überschritten wird, gibt die Methode MAPI_E_TOO_BIG zurück. In diesem Fall wird die Abfrage nach Bezeichner ausgeführt.

Weitere Informationen finden Sie unter Benannte MAPI-Eigenschaften.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
SingleMAPIPropListCtrl.cpp
CSingleMAPIPropListCtrl::FindAllNamedPropsUsed
MFCMAPI verwendet die IMAPIProp::GetIDsFromNames-Methode , um Eigenschaftstags für alle benannten Eigenschaften abzurufen, die zugeordnet wurden.

Siehe auch

IMAPIProp::GetNamesFromIDs

IMAPIProp::SetProps

MAPINAMEID

MAPIUID

IMAPIProp : IUnknown

MFCMAPI (engl.) als ein Codebeispiel

Benannte Eigenschaften MAPI

Verwenden von Makros für die Fehlerbehandlung