Article ID: 200181
Article Last Modified on 8/25/2005
#include <Windows.h>
#include <edk.h>
#include <edkdebug.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR pszCmd, int nCmdShow)
{
// Load strings, and register window classes.
LPMAPISESSION lpSession = NULL;
LPMDB lpStore = NULL;
CHAR szStore[MAX_PATH + 1] = {0};
ULONG cbEIDStore = 0;
LPENTRYID lpEIDStore = NULL;
CHAR szFolder[MAX_PATH + 1] = {0};
LPMAPIFOLDER lpFolder = NULL;
ULONG cbEIDFolder = 0;
LPENTRYID lpEIDFolder = NULL;
LONG lStateFlags = ST_ENABLED;
HRESULT hr = NULL;
ULONG ulFlags = MAPI_BEST_ACCESS;
LPSTR pszStore = NULL;
LPSTR lpszExplicitClass = "";
ULONG ulObjType = 0;
LPMAPITABLE lpTable = NULL;
LPSRowSet lppRows = NULL;
SRestriction sRes;
SPropValue spvSubj;
hr = MAPIInitialize(NULL);
if (FAILED(hr))
{
return 1;
}
hr = MAPILogonEx(0,
"",
NULL,
MAPI_LOGON_UI | MAPI_NEW_SESSION | MAPI_EXPLICIT_PROFILE,
&lpSession);
if (FAILED(hr))
{
MessageBox(NULL,"MAPI Logon failed",NULL,MB_OK);
goto cleanup;
}
hr = HrOpenExchangePrivateStore(lpSession, &lpStore);
if (FAILED(hr))
{
MessageBox(NULL,"Message Store Not Opened",NULL,MB_OK);
goto cleanup;
}
strcpy(szFolder, "Top of Information Store\\Inbox");
hr = HrMAPIFindFolderEx(lpStore,
'\\',
szFolder,
&cbEIDFolder,
&lpEIDFolder);
if (FAILED(hr))
{
MessageBox(NULL,"Inbox Not Found",NULL,MB_OK);
goto cleanup;
}
hr = lpStore->OpenEntry(cbEIDFolder,
lpEIDFolder,
NULL,
MAPI_BEST_ACCESS | MAPI_DEFERRED_ERRORS,
&ulObjType,
(LPUNKNOWN FAR *)&lpFolder);
if (FAILED(hr))
{
MessageBox(NULL,"Inbox Could Not Be Opened",NULL,MB_OK);
goto cleanup;
}
spvSubj.ulPropTag = PR_SUBJECT;
spvSubj.Value.lpszA = "Test";
sRes.rt = RES_CONTENT;
sRes.res.resContent.ulFuzzyLevel = FL_SUBSTRING | FL_IGNORECASE | FL_LOOSE;
sRes.res.resContent.ulPropTag = PR_SUBJECT;
sRes.res.resContent.lpProp = &spvSubj;
hr = lpFolder->GetContentsTable(MAPI_DEFERRED_ERRORS, &lpTable);
if (FAILED(hr))
printf("GetContentsTable Failed\n");
else
printf("Table Returned\n");
hr = HrQueryAllRows(lpTable,NULL,&sRes,NULL,0L,&lppRows);
if (FAILED(hr))
printf("HrQueryAllRows Failed\n");
else
printf("HrQueryAllRows Succeeded\n");
cleanup:
if (lppRows)
FREEPROWS(lppRows);
if (lpSession)
{
lpSession->Logoff(0, 0, 0);
ULRELEASE(lpSession);
}
MAPIUninitialize();
return 0;
}
back to the top
177622 HOWTO: How to Create a Restriction
Additional query words: kbDSupport kbXchge kbMsg kbEDK kbMAPI100
Keywords: kbhowtomaster kbmsg KB200181