社区
ATL
帖子详情
ocx接口函数中的参数结构体如何封装为com对象
xumaojun
2014-09-05 02:35:14
ocx接口函数中有一个结构体需要javascript传入,结构体成员为用户名,用户密码,用户单位等等,目前不想把这个结构体拆分成一个个的单独参数,想将结构体封装成一个COM对象,然后参数直接为COM对象。在2010 的MFC ACtiveX control工程中怎么操作创建这个COM对象呢?
...全文
395
3
打赏
收藏
ocx接口函数中的参数结构体如何封装为com对象
ocx接口函数中有一个结构体需要javascript传入,结构体成员为用户名,用户密码,用户单位等等,目前不想把这个结构体拆分成一个个的单独参数,想将结构体封装成一个COM对象,然后参数直接为COM对象。在2010 的MFC ACtiveX control工程中怎么操作创建这个COM对象呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
许文君
2014-09-15
打赏
举报
回复
添加简单ATL对象
xumaojun
2014-09-10
打赏
举报
回复
ocx控件中只有add method,在哪里添加你说的接口呢?现在不知道怎么把自定义的结构体封装成接口,2010 的vc++ 开发环境。
Saleayas
2014-09-05
打赏
举报
回复
把这个结构封装成接口,然后再接口中使用 propget 属性。
VB杀手 v1.0.2007.1210(附源码)
VBKiller使用说明Killer是一个VB辅助逆向分析的工具。首先声明,它不能帮你把VB程序反编译到VB源代码,只能使得VB程序的反汇编看起来更接近VB代码。 配合IDA使用,可以建立VB程序几乎所有的类结构、方法表、函数体,并建立方法表
结构体
;可以识别VB程序
中
引用的
COM
的CLSID,并使用ProgID命名;可以建立任意
COM
程序(非VB编译的也可以)的方法表、函数体,并建立方法表
结构体
,可以在待分析的VB程序
中
使用这些
结构体
。经过这些处理,待分析的VB程序在IDA
中
就形成了多个很规范类、方法,离逆向到源码已经不远了。 说用方法: 点击浏览按钮选
中
一个
COM
程序,DLL或者Exe或者
ocx
,如果不是VB程序,要在“非VB程序”那里打勾,点击查看。左边的框框就列出了所选程序的所有
COM
接口,如果还要看类和枚举,可以选
中
“显示接口以外的所有类”。点击任意一个接口,右边就显示了该接口的所有方法,在方法表
中
地址、方法体的真实地址。如果要显示前面七个基本方法,则需要选
中
“显示基本接口的方法”。如果是非VB程序,右边有映像基址和虚拟基址,映像基址就是程序的ImageBase,而虚拟基址就是分配到内存空间里面的起始地址,程序默认大概计算了这个地址,如果不正确,就需要手工修改,因为程序得到的方法表地址是运行空间里面的,必须知道这两个基址才能转成静态文件
中
的地址,所以很重要,不能填写,否则就会识别错误。点击生成IDC,就可以生成当前选
中
的接口所对应的IDC文件,类和枚举是不能生成IDC的,把这个IDC加载到IDA
中
,就可以自动识别处理相应的方法地址了。点击全部生成,就可以生成所有接口的IDC文件(放到同一个文件里面)。选
中
“生成
结构体
”,再使用两个生成按钮,就可以生成这个
COM
对应的
结构体
建立脚本,把这个
结构体
IDC载入IDA,就会在IDA
中
生成一批对应的
结构体
,比如:分析的一个程序用到了数据库操作和加解密操作,一般要载入ADO和CAPI
COM
的
结构体
脚本。 VBKiller还有一个扫描识别
COM
的功能尚未完成。 同一个目录下,还有另外几个c文件。 其
中
,header.c是上面的IDC文件所要包含的,这是公用函数文件; vb.c是网络上流传的那个vb.idc修改后的版本,没有改多少,感觉很多地方没有起作用。可以利用该脚本建立VB程序的类结构和事件表; vboop.c是专门辅助分析VB面向
对象
功能的脚本。 里面的Do_BasicOOP方法主要是根据vb.c建立好的事件表,处理对应的函数体,如果函数没有建立,则建立函数,并把该函数改名为与事件表的名字一致,同时建立每个类的方法表
结构体
,方面以后分析。 ParseAPI用于处理VB内部函数,它将扫描所有指定的函数的交叉引用,给该函数加上可重复注释,尝试识别
参数
,并给各个
参数
加上注释,如果
参数
是寄存器,则再往上寻找寄存器数据的来源,并加上注释。扫描的函数和注释是代码里面指定的,目前指定了大多数函数,大家可以根据自己需要加上新的函数。 ParseNew方法用于扫描所有的_vbaNew和_vbaNew2的交叉引用,并尝试识别相应的CLSID,如果能识别,则修改为相应的程序名,以方便查看。识别是内置实现的,目前内置的不多,大家可以根据需要添加自己的。扫描是,如果发现无法识别的CLSID,程序将会把该CLSID写入到同目录下的UnKnown.txt
中
,分析一遍后可以去查看该文件,如果发现有未识别的CLSID,则到注册表
中
搜索该CLSID,得到程序名后,在程序相应地方加上即可。
华为软电话接续控制开发手册.doc
为方便用户进行业务的开发,INtess客户服务平台提供了ActiveX接续控件。ActiveX控件实际上是对API函数的
封装
,提供给用户更友好的开发接口。 接续控件以CccX.
ocx
文件的形式提供,具有完善的接续属性、方法和事件。 接续控件CccX.
ocx
是在Delphi 4环境下开发的(但可在其他Delphi版本环境下使用),因此本文对接续控件的阐述都采用Object Pascal语法。如无特别说明,所用到的整数类型都为32位,文
中
的代码举例,均假定接续控件
对象
实例的名字为Phone。由于ActiveX控件不支持
结构体
数据类型和指针数据类型,接续控件使用了32位整数代替指针实现相同的功能,使用时需要进行类型强制转换。
OCX
添加方法和事件 HTML调用
ocx
函数及回调
ocx
又调用dll VS2017
在
COM
中
,通常需要为自定义数据结构创建
COM
接口,并使用接口
中
的属性和方法来传递数据。需要注意的是,
COM
是一种基于二进制标准的技术,因此涉及数据类型的互操作性时,数据通常需要进行序列化和反序列化。上述类型的映射通常是针对
参数
传递和交互的一般规则,具体规则可能因
COM
接口定义和编程语言而异。
关于
com
自定义
参数
的传递
COM
深入理解(下) ——方法
参数
类型为CRuntimeClass*、void*等 本文上篇已经说明了类
对象
实际是一个结构实例,并且为了实现进程间传递类
对象
指针以达到引用的目的,需要为此类专门编写一个代理类,并在传递时例示(即实例化)其一个
对象
以实现代理
对象
。而此代理类必定分成两部分,即一部分的成员函数专门在客户进程被调用,另一部分专门在组件进程被调用以实现进程间的数据传递进
网页调用
OCX
控件总结
网页调用
OCX
控件总结关于控件注册与取消注册的两种方法:网页调用
OCX
控件方法:网页调用
OCX
方法的传参问题:MVS程序编写
OCX
控件: 关于控件注册与取消注册的两种方法: 第一种: 使用MVS程序编写
OCX
控件的时候以管理员权限运行,并且打开注册输出,如下图: 第二种: 不以管理员身份运行的话,要关闭注册输出,否则会无法生成解决方案。生成的
OCX
控件在使用的时候需要通过bat脚本命令文件注册...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章