HOWTO: Retrieve the PR_PROVIDER_DISPLAY Property
ID: Q181732
|
The information in this article applies to:
-
Extended Messaging Application Programming Interface (MAPI), version 1.0
SUMMARY
This article describes how to determine the message store provider name.
MORE INFORMATION
The following code sample illustrates how to retrieve the
PR_PROVIDER_DISPLAY property of a given message store. This can be useful
in determining the type of information store you are working with.
Here is the code:
#include <windows.h>
#include <mapiutil.h>
// NOTE: You will need to include Mapi32.lib as an additional
// library in the Link tab of the Project Settings dialog box.
HRESULT MsgStoreType ( LPMAPISESSION pSession, LPSBinary pMsgStoreID )
{
HRESULT hRes = S_OK;
LPMAPITABLE pTable = NULL;
LPSRowSet pRows = NULL;
SRestriction sRes;
SPropValue spvStoreID;
SizedSPropTagArray ( 2, spta ) =
{ 2, PR_ENTRYID, PR_PROVIDER_DISPLAY };
ZeroMemory ( &sRes, sizeof ( SRestriction ));
spvStoreID.ulPropTag = PR_ENTRYID;
spvStoreID.Value.bin.cb = pMsgStoreID -> cb;
spvStoreID.Value.bin.lpb = pMsgStoreID -> lpb;
// Open the message stores table.
hRes = pSession -> GetMsgStoresTable ( 0l, &pTable ) ) );
if ( FAILED ( hRes ) )
goto Cleanup;
sRes.rt = RES_PROPERTY;
sRes.res.resProperty.relop = RELOP_EQ;
sRes.res.resProperty.ulPropTag = PR_ENTRYID;
sRes.res.resProperty.lpProp = &spvStoreID;
// Find the row that matches the passed in message store ID.
hRes = HrQueryAllRows ( pTable,
(LPSPropTagArray)&spta,
&sRes,
NULL,
0l,
&pRows ) ) )
goto Cleanup;
// PR_PROVIDER_DISPLAY is in pRows -> aRow -> lpProps[1].Value.lpszA
MessageBox ( m_hWnd,
pRows -> aRow -> lpProps[1].Value.lpszA,
"Information Store",
MB_OK );
Cleanup:
if ( pTable )
{
pTable -> Release ( );
pTable = NULL;
}
if ( pRows )
FreeProws ( pRows );
return hRes;
}
Additional query words:
Keywords : kbcode kbMsg kbMAPI100 MAPIIMS
Version : WINDOWS:1.0
Platform : WINDOWS
Issue type : kbhowto