2008-09-17 4 views
2

Es gibt eine Microsoft knowledge base article mit Beispielcode, um alle Postfächer in einem bestimmten Informationsspeicher zu öffnen. Es funktioniert so weit (erfordert ein wenig copy & pasting auf Compiler neueren als VC++ 6.0).Wie finde ich den definierten Namen des Informationsspeichers, der IEXchangeManageStore :: GetMailboxTable zugeführt werden soll?

An einem Punkt ruft es IExchangeManageStore :: GetMailboxTable mit dem definierten Name des Informationsspeichers auf. Für den Exchange-2007-Test Virtual Server Bild hat es wie folgt aussehen:

"/o=Litware Inc/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=servers/cn=DC1". 

Mit OutlookSpy und klicken auf IMsgStore und IExchangeManageStore zeigt die gewünschte Zeichenfolge neben „Server-DN:“.

Ich möchte vermeiden, den Benutzer zwingen, dies in eine Konfigurationsdatei zu setzen. Also, wenn OutlookSpy es tun kann, wie kann meine Anwendung den definierten Namen des Informationsspeichers finden, in dem sich das aktuell geöffnete Postfach befindet?

Antwort

2

Ich denke, es muss eine reine MAPI-Lösung geben, ich glaube, ich habe herausgefunden, wie OutlookSpy es macht.


Das folgende Codefragment, nachdem sie von KB194627, zeigen den Server DN

printf("Created MAPI session\n"); 

im Beispiel eingesetzt.

LPPROFSECT lpProfSect; 
hr = lpSess->OpenProfileSection((LPMAPIUID)pbGlobalProfileSectionGuid, NULL, 0, &lpProfSect); 
if(SUCCEEDED(hr)) 
{ 
    LPSPropValue lpPropValue; 
    hr = HrGetOneProp(lpProfSect, PR_PROFILE_HOME_SERVER_DN, &lpPropValue); 
    if(SUCCEEDED(hr)) 
    { 
     printf("Server DN: %s\n", lpPropValue->Value.lpszA); 
     MAPIFreeBuffer(lpPropValue); 
    } 
    lpProfSect->Release(); 
} 



Update:
Dort wird die Funktion HrGetServerDN im EDK 5.5 source code ist, extrahiert sie die Server DN aus einer gegebenen Sitzung PR_EMS_AB_HOME_MTA. Ich werde es versuchen, wenn der andere Weg sich als unzuverlässig erweist.

0

Es wird in Active Directory, so dass Sie ADSI/LDAP verwenden würde bei CN = Microsoft Exchange CN = Dienste CN = Konfiguration zu suchen, DC = Beispiel, DC = com . Nutzen Sie den ADExplorer von Sysinternals, um nach dem gesuchten Wert zu suchen.

0

Ich würde die Quelle für MFCMapi herunterladen und sehen, wie sie das tun.

Verwandte Themen