佚名通过本文主要向大家介绍了c#调用activex控件,labview调用activex,js调用activex,java 调用activex,c#调用activex等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 一个调用ActiveX的问题,急!
描述:
解决方案1:
描述:
我用atl编写一个com组件,内部需要调用一个ActiveX控件的方法。我实例化了ActiveX控件的com接口,但在调用接口方法的时候,总是失败,并报灾难性故障错误,请问这是为什么?不带界面的com组件可以直接调用有界面的ActiveX控件吗?
解决方案1:
win32程序可以调用activex方法,但是不能像调用普通com程序那样直接调用,调用程序要借助一个activex容器来容纳activex控件,然后再调用其上的接口方法就可以了。比如调用程序可以创建一个隐含的dialog窗口来容纳activex控件。
具体步骤
1、创建一个dialog资源,把activex拖进去
2、创建隐藏窗口。可以使用ATL库函数AtlAxCreateDialog来做。
3、取得窗口中activex控件窗口(它是dialog的子窗口)。
CAxWindow wndXXX = GetDlgItem(hWnd, IDC_XXX);
4、由activex控件窗口查询activex控件的接口指针
hr = wndXXX.QueryControl(__uuidof(_DXXX), (void**)&pXXX);
5、调用接口函数。