求助:GetActiveObject

hlq83 2010-08-25 03:20:16
代码如下,在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);
}
...全文
185 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlq83 2010-08-26
  • 打赏
  • 举报
回复
高手出来帮忙呀^_^

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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