duilib CActiveXUI 的问题

顾小白xx 2021-05-06 10:29:36
我在添加CActiveXUI 的控件的时候已经在xml文件下写好了cldis和控件名字,
<HorizontalLayout>
<ActiveX name="IO_OCX" clsid="{A639351F-CCAF-4587-9510-FA469A282C2D}" mouse="true"/>
</HorizontalLayout>

然后在初始化控件的时候
void CMainFrame::InitWindow()
{
//绑定控件指针
UI_BINDCONTROL(CButtonUI, m_Close, _T("Close"));
//UI_BINDCONTROL(COptionUI, m_pOptionSynUi,)
UI_BINDCONTROL(CActiveXUI, m_pCActiveXUI, "IO_OCX");
if (m_pCActiveXUI)
{
_DBIO_InjectModel* CActiveUIObject = NULL;//这是我的ocx控件 类。
m_pCActiveXUI->GetControl(IID_IUnknown, (LPVOID*)&CActiveUIObject);
if (CActiveUIObject != NULL)
{
CActiveUIObject->BIO_DNXK_SetActBtnShow(1);
}
}
//进度条
//m_pProgress->SetTimer(1, 200);


}

GetControl问题出现在这个函数里
下面是这个函数实现:
	
HRESULT CActiveXUI::GetControl(const IID iid, LPVOID* ppRet)
{
ASSERT(ppRet!=NULL);
ASSERT(*ppRet==NULL);
if( ppRet == NULL ) return E_POINTER;
if( m_pUnk == NULL ) return E_PENDING; //在这里直接返回也,m_pUnk 这个指针为空
return m_pUnk->QueryInterface(iid, (LPVOID*) ppRet);
}

不知道是我调用的顺序不对还是其他原因导致我在想显示有OCX控件的时候页面时程序崩溃。不知道大家有没有遇到过。
...全文
1096 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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