如何在ATL控件中获取另一个ATL控件对象的窗口句柄?

yaojr21 2006-04-11 04:55:01
在一个ATL控件(甲)中需要调用另一个ATL控件(乙)对象,所以调用CoCreateInstance获取(乙)COM对象的指针,如何获取该ATL控件(乙)窗口的句柄?(发现该窗口未能被创建!!!)
...全文
194 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pomelowu 2006-04-12
  • 打赏
  • 举报
回复
未创建应该句柄无效啊
yaojr21 2006-04-12
  • 打赏
  • 举报
回复
是没有创建窗口句柄,是不是用CreateWindow进行创建啊,那得到的HWND怎么与COM对象相联系,因为我需要调用COM对象的接口方法实现功能。请指教!
hdj8311 2006-04-12
  • 打赏
  • 举报
回复
通过CWnd 创建后查询QueryInterface出来控件接口指针.
_DGisqSurveyCOMPtr pGisCom =NULL;
CWnd *pWnd = new CWnd;
CRect rect(0,0,0,0);
bResult=pWnd->CreateControl("GISQSURVEYCOM.GisqSurveyCOMCtrl.1","GisqSurveyCOMCtrl",WS_VISIBLE|WS_CHILD,rect,this,IDC_GisqSurveyCOMCtrl);
if(bResult)
{
// 引入中间介
IUnknown * pUn = pWndGSCom->GetControlUnknown();
if(pUn)
{
pUn->QueryInterface(IID_IDispatch,(void **)&pGisCom);
if(pGisCom == NULL)
{
return FALSE;
}
}
}

3,248

社区成员

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

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