易语言COM类继承演示源码
系统结构:Dll入口函数,DllCanUnloadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer,ToDword,构造com函数,CLSIDToString,StringToCLSID,A2W,W2A,取文本型指针,取字节集指针,IUnknown_AddRef,IUnknown_Release,ITypeLib_GetTypeInfoOfGuid,ITypeLib_GetIDsOfNames,toCOM,GetThis,comRelease,QueryInterface,AddRef,Release,CreateInstance,LockServer,IDispatchImpl,GetTI,GetTypeInfoCount,GetTypeInfo,GetIDsOfNames,Invoke,show,GlobalFree,GlobalAlloc,GlobalSize,VirtualProtect,StringFromCLSID,CLSIDFromString,MultiByteToWideChar,WideCharToMultiByte,LoadRegTypeLib,DispInvoke,GetModuleFileName,
======程序集1
| |
| |------ _启动子程序
| |
| |------ Dll入口函数
| |
| |------ DllCanUnloadNow
| |
| |------ DllGetClassObject
| |
| |------ DllRegisterServer
| |
| |------ DllUnregisterServer
| |
| |------ ToDword
| |
| |------ 构造com函数
| |
| |------ CLSIDToString
| |
| |------ StringToCLSID
| |
| |------ A2W
| |
| |------ W2A
| |
| |------ 取文本型指针
| |
| |------ 取字节集指针
| |
| |------ IUnknown_AddRef
| |
| |------ IUnknown_Release
| |
| |------ ITypeLib_GetTypeInfoOfGuid
| |
| |------ ITypeLib_GetIDsOfNames
| |
| |
======com
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ toCOM
| |
| |------ GetThis
| |
| |------ comRelease
| |
| |
======IUnknown
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ QueryInterface
| |
| |------ AddRef
| |
| |------ Release
| |
| |
======IClassFactory
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ CreateInstance
| |
| |------ LockServer
| |
| |
======IDispatch
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ IDispatchImpl
| |
| |------ GetTI
| |
| |------ GetTypeInfoCount
| |
| |------ GetTypeInfo
| |
| |------ GetIDsOfNames
| |
| |------ Invoke
| |
| |
======ActiveX
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ show
| |
| |
======调用的Dll
| |
| |---[dll]------ GlobalFree
| |
| |---[dll]------ GlobalAlloc
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ VirtualProtect
| |
| |---[dll]------ StringFromCLSID
| |
| |---[dll]------ CLSIDFromString
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ LoadRegTypeLib
| |
| |---[dll]------ DispInvoke
| |
| |---[dll]------ GetModuleFileName
======程序集1
| |
| |------ _启动子程序
调用的DLL命令:
.DLL命令 GlobalFree, 整数型, "kernel32", "GlobalFree", , 释放全局内存块
.参数 hMem, 整数型
.DLL命令 GlobalAlloc, 整数型, "kernel32", "GlobalAlloc", , 在堆中分配内存
.参数 wFlags, 整数型
.参数 dwBytes, 整数型
.DLL命令 GlobalSize, 整数型, "Kernel32.dll", "GlobalSize"
.参数 hMem, 整数型
.DLL命令 VirtualProtect, 整数型, "kernel32", "VirtualProtect"
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址
.DLL命令 StringFromCLSID, 整数型, "ole32.dll"
.参数 rclsid, 字节集
.参数 ppsz, 整数型, 传址
.DLL命令 CLSIDFromString, 整数型, "ole32.dll"
.参数 lpsz, 字节集, 传址
.参数 pclsid, 字节集, 传址
.DLL命令 MultiByteToWideChar, 整数型
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpMultiByteStr, 文本型, 传址
.参数 cbMultiByte, 整数型
.参数 lpWideCharStr, 字节集, 传址
.参数 cchWideChar, 整数型
.DLL命令 WideCharToMultiByte, 整数型
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpWideCharStr, 整数型
.参数 cchWideChar, 整数型
.参数 lpMultiByteStr, 文本型, 传址
.参数 cbMultiByte, 整数型
.参数 lpDefaultChar, 文本型
.参数 lpUsedDefaultChar, 逻辑型
.DLL命令 LoadRegTypeLib, 整数型, "oleaut32.dll"
.参数 rguid, 字节集, 传址
.参数 wVerMajor, 短整数型
.参数 wVerMinor, 短整数型
.参数 lcid, 整数型
.参数 pptlib, 整数型, 传址
.DLL命令 DispInvoke, 整数型, "oleaut32.dll"
.参数 _this, 整数型
.参数 ptinfo, 整数型
.参数 dispidMember, 整数型
.参数 wFlags, 短整数型
.参数 pparams, 整数型
.参数 pvarResult, 整数型
.参数 pexcepinfo, 整数型
.参数 puArgErr, 整数型
.DLL命令 GetModuleFileName, 整数型, , "GetModuleFileNameA"
.参数 hModule, 整数型
.参数 lpFilename, 文本型
.参数 nSize, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。