VS2003.net ActiveX控件相关

今天在VC7上开发ActiveX控件,添加函数害的我挣了一下午,现在想想真是怀恋VC6的ClassWizard啊。在网上找了很多资料,也没发现与此相关的,所以就记录下来,仅供参考啊

创建ActiveX工程后,只能靠手动添加函数,这里要注意四个地方都要修改,才能最终达到效果:
1、.h中:加入函数声明
afx_msg short display(LPCTSTR lpszData); 
2、.cpp中加入函数映射

BEGIN_DISPATCH_MAP(CtestCtrl, COleControl) 
	DISP_FUNCTION_ID(CtestCtrl,"display",2223,display,VT_I2,VTS_BSTR) 
END_DISPATCH_MAP() 
在此处注意下:DISP_FUNCTION_ID的几个参数:
I、该类的名称
II、类中扩展名同后面的函数名一样,只是多了双引号
III、显示的ID(尽量用大点的,一面和某些ID冲突)
IV、函数名
V、返回值类型:
VI、参数类型
VT_EMPTY = 0, 
VT_NULL = 1, 
VT_I2 = 2, 
VT_I4 = 3, 
VT_R4 = 4, 
VT_R8 = 5, 
VT_CY = 6, 
VT_DATE = 7, 
VT_BSTR = 8, 
VT_DISPATCH = 9, 
VT_ERROR = 10, 
VT_BOOL = 11, 
VT_VARIANT = 12, 
VT_UNKNOWN = 13, 
VT_DECIMAL = 14, 
VT_I1 = 16, 
VT_UI1 = 17, 
VT_UI2 = 18, 
VT_UI4 = 19, 
VT_I8 = 20, 
VT_UI8 = 21, 
VT_INT = 22, 
VT_UINT = 23, 
VT_VOID = 24, 
VT_HRESULT = 25, 
VT_PTR = 26, 
VT_SAFEARRAY = 27, 
VT_CARRAY = 28, 
VT_USERDEFINED = 29, 
VT_LPSTR = 30, 
VT_LPWSTR = 31, 
VT_FILETIME = 64, 
VT_BLOB = 65, 
VT_STREAM = 66, 
VT_STORAGE = 67, 
VT_STREAMED_OBJECT = 68, 
VT_STORED_OBJECT = 69, 
VT_BLOB_OBJECT = 70, 
VT_CF = 71, 
VT_CLSID = 72, 
VT_VECTOR = 0x1000, 
VT_ARRAY = 0x2000, 
VT_BYREF = 0x4000, 
VT_RESERVED = 0x8000, 
VT_ILLEGAL = 0xffff, 
VT_ILLEGALMASKED = 0xfff, 
VT_TYPEMASK = 0xfff 
VI、参数类型
3、CPP中加入函数实现:
short CtestCtrl::display(LPCTSTR lpszData) 
{ 
     AfxMessageBox(lpszData); 
} 
4、.idl 文件中还要加相关的接口调度说明
[id(2223)]short display(BSTR lpszData); 
这四个地方加好了就完工了~~




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值