如何打开" Finder"使用Outlook MAPI的委派邮箱文件夹

时间:2015-06-04 14:25:16

标签: office365 mapi outlook-2013

我正在寻找一种使用Outlook MAPI打开代理邮箱的“Finder”文件夹的方法。

我通过调用CreateStoreEntryID创建了委托邮箱的EntryID。使用此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文件夹?

感谢。

1 个答案:

答案 0 :(得分:0)

该行

props[ePR_IPM_FOLDER_ENTRYID].ulPropTag != PT_ERROR)

需要更改为

(props[ePR_IPM_FOLDER_ENTRYID].ulPropTag & PROP_TYPE_MASK) != PT_ERROR)