求助:GetActiveObject

hlq83 2010-08-25 03:16:54
代码如下,在xp下运行正常,在vista下uac启用情况下,outlook已当前登陆用户身份运行,我的应用程序run as administrator,
hr = m_PtrOutlookApp.GetActiveObject(__uuidof(Application));这句调用失败,GetLastError()为1008或14007,
接下来的hr=m_PtrOutlookApp.CreateInstance(__uuidof(Application));也调用失败,但GetLastError()为0,m_PtrOutlookApp依然位空。有人研究过吗,和vista的安全机制有关。
HRESULT hr;
try
{

hr = m_PtrOutlookApp.GetActiveObject(__uuidof(Application));
if(FAILED(hr))
{
hr=m_PtrOutlookApp.CreateInstance(__uuidof(Application));
m_bNewInstance = TRUE;

}
else
m_bNewInstance = FALSE;
if (!FAILED(hr))
{
m_PtrNamespace = m_PtrOutlookApp->GetNamespace(_bstr_t("MAPI"));
m_PtrNamespace->Logon(_T(""),_T(""),FALSE,TRUE);
}
}
catch(_com_error &e)
{
CString str = _T("Outlook Connect:")+e.Description();

throw new CSyncException(str);
}

...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlq83 2010-08-26
  • 打赏
  • 举报
回复
高手出来帮忙呀^_^
hlq83 2010-08-25
  • 打赏
  • 举报
回复
对了,如果outlook run as administrator也是没有问题的

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧