为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言模块源码 正文

易语言获取COM对象的类型名称

三叶资源网 2018-12-30 16:45:03 易语言模块源码 3623 ℃ 9 评论

易语言获取COM对象的类型名称

@ybhacker

.版本 2

.子程序 _临时子程序
.局部变量 Object, 对象

Object.创建 (“WinHttp.WinHttpRequest.5.1”, )
信息框 (GetObjectClassName (Object), 0, , )

.子程序 GetObjectClassName, 文本型, 公开, 获取对象类型名称
.参数 object, 对象
.局部变量 IDispatch, 对象
.局部变量 ITypeInfo, 对象
.局部变量 pName, 整数型, , , ' 本源码来自三叶资源网(www.sanye.cx)
.局部变量 len, 整数型
.局部变量 buffer, 文本型

IDispatch.取接口 (object, #IID_IDispatch)
CallInstanceMethod (IDispatch, 4, #NULL, #NULL, P_OBJECT (ITypeInfo))
CallInstanceMethod (ITypeInfo, 12, -1, P_DWORD (pName), #NULL, #NULL, #NULL)
len = WideCharToMultiByte (936, #NULL, pName, -1, 字符 (0), #NULL, #NULL, #NULL)
buffer = 取空白文本 (len)
WideCharToMultiByte (936, #NULL, pName, -1, buffer, 取文本长度 (buffer), #NULL, #NULL)
返回 (buffer)

.子程序 CallInstanceMethod, 整数型, , 动态调用COM接口方法
.参数 Instance, 对象
.参数 Index, 整数型
.参数 arg1, 整数型, 可空
.参数 arg2, 整数型, 可空
.参数 arg3, 整数型, 可空
.参数 arg4, 整数型, 可空
.参数 arg5, 整数型, 可空
.参数 arg6, 整数型, 可空
.参数 arg7, 整数型, 可空
.参数 arg8, 整数型, 可空
.参数 arg9, 整数型, 可空
.参数 arg10, 整数型, 可空
.局部变量 This, 整数型
.局部变量 parms, 整数型, , "0"

This = pDWORD (P_OBJECT (Instance))
加入成员 (parms, This)
.计次循环首 (1, )
    .如果 (是否为空 (arg1))
        跳出循环 ()
    .否则
        加入成员 (parms, arg1)
    .如果结束
    .如果 (是否为空 (arg2))
        跳出循环 ()
    .否则
        加入成员 (parms, arg2)
    .如果结束
    .如果 (是否为空 (arg3))
        跳出循环 ()
    .否则
        加入成员 (parms, arg3)
    .如果结束
    .如果 (是否为空 (arg4))
        跳出循环 ()
    .否则
        加入成员 (parms, arg4)
    .如果结束
    .如果 (是否为空 (arg5))
        跳出循环 ()
    .否则
        加入成员 (parms, arg5)
    .如果结束
    .如果 (是否为空 (arg6))
        跳出循环 ()
    .否则
        加入成员 (parms, arg6)
    .如果结束
    .如果 (是否为空 (arg7))
        跳出循环 ()
    .否则
        加入成员 (parms, arg7)
    .如果结束
    .如果 (是否为空 (arg8))
        跳出循环 ()
    .否则
        加入成员 (parms, arg8)
    .如果结束
    .如果 (是否为空 (arg9))
        跳出循环 ()
    .否则
        加入成员 (parms, arg9)
    .如果结束
    .如果 (是否为空 (arg10))
        跳出循环 ()
    .否则
        加入成员 (parms, arg10)
    .如果结束

.计次循环尾 ()
返回 (CallWindowProcMethod ({ 85, 139, 236, 86, 139, 117, 16, 141, 78, 255, 133, 201, 124, 21, 139, 69, 12, 141, 4, 136, 65, 139, 16, 137, 85, 16, 255, 117, 16, 131, 232, 4, 73, 117, 242, 255, 85, 8, 137, 69, 12, 139, 69, 20, 133, 192, 116, 13, 141, 4, 181, 0, 0, 0, 0, 137, 69, 16, 3, 101, 16, 139, 69, 12, 94, 93, 194, 16, 0 }, pDWORD (pDWORD (This) + Index × 4), parms, 取数组成员数 (parms), 假))

.子程序 P_OBJECT, 整数型, 公开, 取对象指针
.参数 Object, 对象, 参考

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax,[ebp+8]
' mov eax,[eax]
' leave
' retn 04
返回 (0)

.子程序 P_DWORD, 整数型, 公开, 取整数型指针
.参数 DWORD, 整数型, 参考, 整数

置入代码 ({ 139, 69, 8, 137, 236, 93, 194, 4, 0 })
返回 (0)' 本源码来自三叶资源网(www.sanye.cx)

.子程序 pDWORD, 整数型, 公开, 读指针整数
.参数 Pointer, 整数型, , 指针

置入代码 ({ 49, 192, 129, 125, 8, 0, 0, 1, 0, 126, 9, 139, 69, 8, 133, 192, 116, 2, 139, 0, 137, 236, 93, 194, 4, 0 })
返回 (0)


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有9位网友发表了看法:

  • 资源网

    资源网  评论于 [2019-05-28 17:07:19]  回复

    易语言对象增强模块

  • 资源网

    资源网  评论于 [2019-05-28 17:12:49]  回复

    易语言对象操作模块

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
简单多线程易语言客户端AI文字转语音获取群成员易语言通讯MD5自效验百度AI画板源码gitsqlite3编辑框套接字网易滑块位置识别汇编中文指令模拟斗地主游戏英魂之刃黑猫论坛Flutter技术入门与实战刺激战场辅助自动打怪
最新评论