MAPI_E_NOT_FOUND on OpenMsgStore

Posted by Jan Gressmann on Stack Overflow See other posts from Stack Overflow or by Jan Gressmann
Published on 2010-03-19T17:41:54Z Indexed on 2010/03/24 3:53 UTC
Read the original article Hit count: 521

Filed under:
|
|

Hi,

I'm trying to open the MessageStore of a user using MAPI. The weird thing is, when I run this a console application, while I'm logged with the user, everything works fine.

But when I run this as a Windows Service I get MAPI_E_NOT_FOUND when trying to open the MessageStore.

I already configured the service to run as the user.

MapiLogonEx seems to work fine and GetMsgStoreTables also gives me the correct results (I verfied that the EntryID of the MessageStore is correct).

Here's my code:

LPMAPITABLE     pStoresTbl = NULL;
m_lpMAPISession->GetMsgStoresTable(0, &pStoresTbl);

// Query Collumns
LPSPropTagArray pTags = NULL;
LPSRowSet pRows = NULL;
pStoresTbl->SeekRow(BOOKMARK_BEGINNING,0,NULL);
pStoresTbl->QueryRows(
                LONG_MAX,
                NULL,
                &pRows);


LPSBinary lpEntryID = NULL; 
ULONG iprops;
for (iprops = 0; iprops < pRows->aRow[0].cValues; iprops++)
{               
    SPropValue sProp = pRows->aRow[0].lpProps[iprops];
    if (PROP_ID(sProp.ulPropTag) == PROP_ID(PR_ENTRYID))
    {
        lpEntryID = &sProp.Value.bin;
        break;
    }
}


lpMDB = NULL;
HRESULT hres = m_lpMAPISession->OpenMsgStore(NULL,
    lpEntryID->cb,
    (LPENTRYID) lpEntryID->lpb,
    NULL,
        MDB_NO_DIALOG |
        MDB_NO_MAIL |       // spooler not notified of our presence
        MDB_TEMPORARY |  // message store not added to MAPI profile
        MAPI_BEST_ACCESS,
    &lpMDB);    

© Stack Overflow or respective owner

Related posts about c++

Related posts about mapi