求各位大神指点指点!!!在线等!!!

Tonny_C 2013-07-23 11:50:06
//打开PDF文件

ModifyStyle(0, WS_CLIPCHILDREN);
// 获取对话框的客户区矩形
CRect rt;
GetClientRect(&rt);
// 利用CWnd::CreateControl创建PDF控件窗口
// Acrobat (Reader) 5.x/6.x的控件类ID为"PDF.PdfCtrl.5",7.x为"AcroPDF.PDF.1"
m_wndPDF.CreateControl((IID &)"PDF.PdfCtrl.5", NULL, WS_CHILD | WS_VISIBLE, rt, this, 0);

// 获取IDispatch接口指针
LPUNKNOWN lpUnknown = m_wndPDF.GetControlUnknown();
LPDISPATCH lpDispatch;
lpUnknown->QueryInterface(IID_IDispatch, (void**)&lpDispatch);

// 把获得的接口指针传递给组件驱动对象m_drvPDF,通过它调用控件的属性和方法
// 当m_drvPDF销毁时,会自动释放接口指针
m_drvPDF.AttachDispatch(lpDispatch);

// 弹出一个“打开”对话框,选择要显示的PDF文件
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
{
// 利用控件的方法LoadFile读取并显示PDF文件
m_drvPDF.LoadFile(dlg.GetPathName());
}

我想请问,为什么我获取IDispatch接口指针时候,lpUnknown 总是NULL。主要看一下我的获取IDispatch借口指针!!!
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2013-07-23
  • 打赏
  • 举报
回复
m_wndPDF.CreateControl 成功了吗?
Tonny_C 2013-07-23
  • 打赏
  • 举报
回复
不好意思来晚了,就是CreateControl的问题,可是参数基本没什么问题啊!!!
fishion 2013-07-23
  • 打赏
  • 举报
回复
调用CoInitialize(NULL);了么: 还有就是m_wndPDF.CreateControl(_T("PDF.PdfCtrl.5"), NULL, WS_CHILD | WS_VISIBLE, rt, this, 0);

3,245

社区成员

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

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