使用 VC6 ,创建了个 ocx 控件,添加了个带参数的方法,但是 exe 程序死活调用不了这个方法,注册、创建对象等过程都没问题的,调用时  com exception 提示 致命错误,百思不得其解,误打误撞,知道了解决方案,需要在控件的ctrl类里重载 IsInvokeAllowed 方法返回 TRUE 即可。

.h 里添加

1
BOOL IsInvokeAllowed (DISPID);

.cpp 里添加

1
2
3
4
5
6
BOOL CNetworkCtrl::IsInvokeAllowed (DISPID) 
{
// You can check to see if COleControl::m_bInitialized is FALSE
// in your automation functions to limit access.
return TRUE;
}

参见:http://bbs.csdn.net/topics/390847591