Я ищу способ открыть папку «Finder» почтового ящика делегата с помощью Outlook MAPI.
Я создал EntryID почтового ящика делегата, вызвав CreateStoreEntryID. Используя этот EntryID, я вызываю OpenMsgStore, что удалось. Теперь я пытаюсь открыть папку «Finder», которая завершается ошибкой MAPI_E_INVALID_PARAMETER. Я могу получить другие папки, такие как «Входящие», «Отправленные» и т. д.
enum {
ePR_VALID_FOLDER_MASK,
ePR_IPM_FOLDER_ENTRYID,
FOLDER_NUMCOLS
};
SizedSPropTagArray(FOLDER_NUMCOLS, cols) = {
FOLDER_NUMCOLS,
{
PR_VALID_FOLDER_MASK,
PR_FINDER_ENTRYID,
}
};
ULONG pcount;
SPropValue *props;
hRes = pMapi_msgstore->GetProps((SPropTagArray *)&cols, 0, &pcount, &props);
if (hRes == S_OK || hRes == MAPI_W_ERRORS_RETURNED) {
LONG mask;
if (props[ePR_VALID_FOLDER_MASK].ulPropTag != PT_ERROR)
mask = props[ePR_VALID_FOLDER_MASK].Value.ul;
else
mask = 0;
if ((mask & FOLDER_FINDER_VALID) &&
props[ePR_IPM_FOLDER_ENTRYID].ulPropTag != PT_ERROR)
{
hRes = **pMapi_msgstore->OpenEntry**(props[ePR_IPM_FOLDER_ENTRYID].Value.bin.cb,
(LPENTRYID)props[ePR_IPM_FOLDER_ENTRYID].Value.bin.lpb,
NULL,
MAPI_MODIFY,
&ulType,
(LPUNKNOWN*)&m_lpFinderFolder);
Здесь вызов OpenEntry завершается с ошибкой MAPI_E_INVALID_PARAMETER. Вызов pMapi_msgstore -> GetProps((SPropTagArray *)&cols, 0, &pcount, &props) не завершается ошибкой, но &props заполняется неправильно. Невозможно открыть папку Finder почтового ящика делегата?
Спасибо.