Anmelden bei einem Anbieter von umschlossenem PST-Speicher
Gilt für: Outlook 2013 | Outlook 2016
Bevor Sie mapI bei einem umschlossenen PST-Speicheranbieter anmelden können, müssen Sie den umschlossenen PST-Speicheranbieter (Personal Folders File) initialisieren und konfigurieren. Weitere Informationen finden Sie unter Initialisieren eines umschlossenen PST-Speicheranbieters.
Nachdem Sie einen umschlossenen PST-Speicheranbieter initialisiert und konfiguriert haben, müssen Sie zwei Anmelderoutinen implementieren. Die Funktion IMSProvider::Logon protokolliert die MAPI beim umschlossenen PST-Speicheranbieter. Die Funktion IMSProvider::SpoolerLogon protokolliert den MAPI-Spooler mit dem umschlossenen PST-Speicheranbieter.
In diesem Thema werden die Funktion IMSProvider::Logon und die Funktion IMSProvider::SpoolerLogon anhand von Codebeispielen aus dem Beispiel für umschlossenen PST-Speicheranbieter veranschaulicht. Das Beispiel implementiert einen umschlossenen PST-Anbieter, der zusammen mit der Replikations-API verwendet werden soll. Weitere Informationen zum Herunterladen und Installieren des Beispielanbieters für umschlossenen PST-Speicher finden Sie unter Installieren des Beispielanbieters für umschlossenen PST-Speicher. Weitere Informationen zur Replikations-API finden Sie unter Informationen zur Replikations-API.
Nachdem MAPI und der MAPI-Spooler beim umschlossenen PST-Speicheranbieter angemeldet sind, kann er verwendet werden. Weitere Informationen finden Sie unter Verwenden eines umschlossenen PST-Speicheranbieters.
MAPI-Anmelderoutine
Nachdem der umschlossene PST-Speicheranbieter initialisiert wurde, müssen Sie die FUNKTION IMSProvider::Logon implementieren, um die MAPI beim umschlossenen PST-Speicher anzumelden. Diese Funktion überprüft Benutzeranmeldeinformationen und ruft die Konfigurationseigenschaften für den Anbieter ab. Sie müssen auch die SetOLFIInOST
-Funktion implementieren, um die Offlinedateiinformationen (OLFI ) festzulegen.
OLFI ist eine Warteschlange mit langfristigen ID-Strukturen, die vom umschlossenen PST-Speicheranbieter verwendet wird, um eine Eintrags-ID für eine neue Nachricht oder einen neuen Ordner im Offlinemodus zuzuweisen. Schließlich gibt die FUNKTION IMSProvider::Logon ein Nachrichtenspeicherobjekt zurück, bei dem sich der MAPI-Spooler und die Clientanwendungen im ppMDB
Parameter anmelden können.
CMSProvider::Logon()-Beispiel
STDMETHODIMP CMSProvider::Logon(
LPMAPISUP pSupObj,
ULONG ulUIParam,
LPTSTR pszProfileName,
ULONG cbEntryID,
LPENTRYID pEntryID,
ULONG ulFlags,
LPCIID pInterface,
ULONG * pcbSpoolSecurity,
LPBYTE * ppbSpoolSecurity,
LPMAPIERROR * ppMAPIError,
LPMSLOGON * ppMSLogon,
LPMDB * ppMDB)
{
HRESULT hRes = S_OK;
LPMDB lpPSTMDB = NULL;
CMsgStore* pWrappedMDB = NULL;
Log(true,"CMSProvider::Logon Pst logon Called\n");
LPPROFSECT lpProfSect = NULL;
CSupport * pMySup = NULL;
hRes = GetGlobalProfileObject(pSupObj,&lpProfSect);
pMySup = new CSupport(pSupObj, lpProfSect);
if (!pMySup)
{
Log(true,"CMSProvider::Logon: Failed to allocate new CSupport object\n");
hRes = E_OUTOFMEMORY;
}
if (SUCCEEDED(hRes))
{
ulFlags = (ulFlags & ~MDB_OST_LOGON_ANSI) | MDB_OST_LOGON_UNICODE;
hRes = m_pPSTMS->Logon(
pMySup,
ulUIParam,
pszProfileName,
cbEntryID,
pEntryID,
ulFlags,
pInterface,
pcbSpoolSecurity,
ppbSpoolSecurity,
ppMAPIError,
ppMSLogon,
&lpPSTMDB);
}
Log(true,"CMSProvider::Logon returned 0x%08X\n", hRes);
// Set up the MDB to allow synchronization
if (SUCCEEDED(hRes))
{
hRes = SetOLFIInOST(lpPSTMDB);
Log(true,"SetOLFIInOST returned 0x%08X\n", hRes);
}
// Wrap the outgoing MDB
pWrappedMDB = new CMsgStore (lpPSTMDB);
if (NULL == pWrappedMDB)
{
Log(true,"CMSProvider::Logon: Failed to allocate new CMsgStore object\n");
hRes = E_OUTOFMEMORY;
}
// Copy pointer to the allocated object back into the return LPMDB object pointer
*ppMDB = pWrappedMDB;
if (lpProfSect) lpProfSect->Release();
return hRes;
}
MAPI-Spooler-Anmelderoutine
Ähnlich wie BEI IMSProvider::Logon müssen Sie die FUNKTION IMSProvider::SpoolerLogon implementieren, um den MAPI-Spooler im umschlossenen PST-Speicher zu protokollieren. Ein Nachrichtenspeicherobjekt, bei dem sich der MAPI-Spooler und die Clientanwendungen anmelden können, wird im ppMDB
-Parameter zurückgegeben.
CMSProvider::SpoolerLogon()-Beispiel
STDMETHODIMP CMSProvider::SpoolerLogon (
LPMAPISUP pSupObj,
ULONG ulUIParam,
LPTSTR pszProfileName,
ULONG cbEntryID,
LPENTRYID pEntryID,
ULONG ulFlags,
LPCIID pInterface,
ULONG cbSpoolSecurity,
LPBYTE pbSpoolSecurity,
LPMAPIERROR * ppMAPIError,
LPMSLOGON * ppMSLogon,
LPMDB * ppMDB)
{
HRESULT hRes = S_OK;
Log(true,"CMSProvider::SpoolerLogon\n");
LPPROFSECT lpProfSect = NULL;
CSupport * pMySup = NULL;
hRes = GetGlobalProfileObject(pSupObj,&lpProfSect);
pMySup = new CSupport(pSupObj, lpProfSect);
if (!pMySup)
{
Log(true,"CMSProvider::SpoolerLogon: " +
"Failed to allocate new CSupport object\n");
hRes = E_OUTOFMEMORY;
}
if (SUCCEEDED(hRes))
{
hRes = m_pPSTMS->SpoolerLogon(
pMySup,//pSupObj,
ulUIParam,
pszProfileName,
cbEntryID,
pEntryID,
ulFlags,
pInterface,
cbSpoolSecurity,
pbSpoolSecurity,
ppMAPIError,
ppMSLogon,
ppMDB);
}
Log(true,"CMSProvider::SpoolerLogon returned 0x%08X\n", hRes);
return hRes;
}
Siehe auch
- Informationen zum Beispiel für umschlossenen PST-Speicheranbieter
- Installieren des Beispielanbieters für den umschlossenen PST-Speicher
- Initialisieren eines umschlossenen PST-Speicheranbieters
- Verwenden eines umschlossenen PST-Speicheranbieters
- Herunterfahren eines umschlossenen PST-Speicheranbieters