IMAPISession::QueryIdentity
Gilt für: Outlook 2013 | Outlook 2016
Gibt den Eintragsbezeichner des Objekts zurück, das die primäre Identität für die Sitzung bereitstellt.
HRESULT QueryIdentity(
ULONG FAR * lpcbEntryID,
LPENTRYID FAR * lppEntryID
);
Parameter
lpcbEntryID
[out] Ein Zeiger auf die Byteanzahl im Eintragsbezeichner, auf den der lppEntryID-Parameter verweist.
lppEntryID
[out] Ein Zeiger auf einen Zeiger auf den Eintragsbezeichner des Objekts, das die primäre Identität bereitstellt.
Rückgabewert
S_OK
Die primäre Identität wurde erfolgreich zurückgegeben.
MAPI_W_NO_SERVICE
Der Aufruf war erfolgreich, aber es gibt keine primäre Identität für die Sitzung. Wenn diese Warnung zurückgegeben wird, sollte der Aufruf als erfolgreich behandelt werden. 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 IMAPISession::QueryIdentity-Methode ruft die primäre Identität für die aktuelle Sitzung ab und gibt den Wert über den lppEntryID-Parameter zurück. Die primäre Identität ist ein Objekt, in der Regel ein Messagingbenutzer, das den Benutzer einer Sitzung darstellt. lppEntryID gibt die primäre Identität für ein IMailUser-Objekt zurück, das auch als PidTagEntryID-Eigenschaft gespeichert wird. Sie können den in lppEntryID zurückgegebenen Wert verwenden, um ein IMailUser-Objekt mithilfe von IMAPISession::OpenEntry zu öffnen.
Obwohl viele Dienstanbieter in mehreren Nachrichtendiensten die primäre Identität für eine Sitzung bereitstellen können, bestimmt MAPI einen einzelnen Dienstanbieter. Der Dienstanbieter, der die primäre Identität bereitstellt, legt die folgenden Elemente fest:
Das STATUS_PRIMARY_IDENTITY-Flag in der eigenschaft PR_RESOURCE_FLAGS (PidTagResourceFlags).
Die eigenschaft PR_IDENTITY_DISPLAY (PidTagIdentityDisplay).
Die eigenschaft PR_IDENTITY_ENTRYID (PidTagIdentityEntryId).
Die PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey)-Eigenschaft.
Wenn der Dienstanbieter, der die primäre Identität bereitstellt, zu einem Nachrichtendienst gehört, legen die anderen Dienstanbieter im Nachrichtendienst ebenfalls die PR_IDENTITY Eigenschaften fest. Diese Eigenschaften werden in der status Tabelle der Sitzung veröffentlicht.
Wenn möglich, gibt QueryIdentity den Wert für die eigenschaft PR_IDENTITY_ENTRYID aus der status Zeile zurück, die mit STATUS_PRIMARY_IDENTITY gekennzeichnet ist. Wenn die PR_IDENTITY_ENTRYID-Eigenschaft in der zeile der primären Identität fehlt, gibt QueryIdentity einen einmaligen Eintragsbezeichner zurück, der mit anderen Informationen aus dieser Zeile erstellt wurde.
Wenn das STATUS_PRIMARY_IDENTITY-Flag in allen PR_RESOURCE_FLAG Spalten in der status Tabelle fehlt, gibt QueryIdentity den ersten Gefundenen Eintragsbezeichner zurück. Wenn kein entsprechender Eintragsbezeichner für die Rückgabe vorhanden ist, ist QueryIdentity erfolgreich mit der Warnung MAPI_W_NO_SERVICE und verweist lppEntryID auf einen hartcodierten Eintragsbezeichner.
Hinweise für Aufrufer
Sie können die IMsgServiceAdmin::SetPrimaryIdentity-Methode aufrufen, um einem Nachrichtendienst die Aufgabe zuzuweisen, die primäre Identität der Sitzung bereitzustellen.
Eine weitere Möglichkeit zum Abrufen der primären Identität besteht darin, die status Tabelle nach der Zeile zu durchsuchen, in der die PR_RESOURCE_FLAGS Spalten auf STATUS_PRIMARY_IDENTITY festgelegt sind. Weitere Informationen zu dieser alternativen Methode zum Abrufen von Identitätsinformationen finden Sie unter Statustabelle und Statusobjekte.
Wenn Sie die Verwendung des Eintragsbezeichners für die primäre Identität abgeschlossen haben, die von QueryIdentity zurückgegeben wird, geben Sie den Arbeitsspeicher frei, indem Sie die MAPIFreeBuffer-Funktion aufrufen.
Weitere Informationen zur Identität im Allgemeinen finden Sie unter Primäre MAPI-Identität.
Weitere Informationen zum Abrufen der MAPI-Sitzungsidentität finden Sie unter Abrufen der primären Und Anbieteridentität.
MFCMAPI-Referenz
Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.
Datei | Funktion | Kommentar |
---|---|---|
MainDlg.cpp |
CMainDlg::OnQueryIdentity |
MFCMAPI verwendet die IMAPISession::QueryIdentity-Methode , um den Adressbucheintrag für die primäre Identität der Sitzung zu öffnen. |
Siehe auch
IMsgServiceAdmin::SetPrimaryIdentity
MFCMAPI (engl.) als ein Codebeispiel
Abrufen der primären Identität und der Anbieteridentität