开源Aplayer开源
功能说明:这是一个用于调用COM组件DLL接口的易语言程序。程序主要功能包括:
1. **COM组件初始化**:通过载入窗口并执行临时子程序来初始化COM组件环境
2. **DLL类工厂操作**:DllGetClassObject_子程序用于获取DLL的类工厂对象,通过汇编代码直接调用Windows API的DllGetClassObject函数,实现COM对象的创建
3. **实例创建功能**:CreateInstance子程序实现了IClassFactory接口的CreateInstance方法,用于创建COM对象实例,使用汇编指令处理接口调用
4. **接口管理**:包含IUnknown_对象、Release等子程序,用于处理COM对象的引用计数和生命周期管理
5. **字符编码转换**:提供A2W(ANSI转Unicode)和W2A_整数(Unicode转ANSI)转换功能,处理不同字符编码间的转换
6. **连接点事件处理**:QueryInterface_事件和FindConnectionPoint子程序用于处理COM事件接口,支持事件驱动编程模式
整个程序通过直接的汇编代码调用和COM接口操作,为上层应用提供了访问底层COM组件的功能框架,适用于需要深度集成Windows COM组件的应用场景。
======功能程序集
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ DllGetClassObject_
| |
| |------ CreateInstance
| |
| |------ IUnknown_对象
| |
| |------ Release
| |
| |------ A2W
| |
| |------ W2A_整数
| |
| |------ QueryInterface_事件
| |
| |------ FindConnectionPoint
| |
| |------ QueryInterface
| |
| |------ IUnknown指针_对象
| |
| |------ Advise
| |
| |------ UnAdvise
| |
| |------ AtlAxAttachControl_
| |
| |------ 寻找用户事件
| |
| |------ 取地址_IDispatch_event
| |
| |------ 查找事件成员
| |
| |
======APlayerUI
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 销毁
| |
| |------ 创建com
| |
| |------ 附加窗口
| |
| |------ 挂接事件
| |
| |------ 取消挂接
| |
| |------ 置对象
| |
| |------ 取对象
| |
| |------ 窗口移动
| |
| |------ 取对象_Aplayer
| |
| |------ 获取全屏状态
| |
| |------ 设置全屏状态
| |
| |------ 添加广告元素
| |
| |------ 删除广告元素
| |
| |------ 设置广告元素是否可见
| |
| |------ 设置广告元素位置
| |
| |------ 获取广告元素对象
| |
| |------ 设置广告元素可用
| |
| |------ 获取广告元素可用
| |
| |------ 设置元素透明度
| |
| |------ 调用Flash函数
| |
| |------ 广告元素置顶
| |
| |------ 设置所有广告元素可用
| |
| |------ 获取广告元素是否可见
| |
| |------ 设置所有广告元素可见
| |
| |------ 获取广告元素数量
| |
| |------ 获取元素透明度
| |
| |------ 设置默认控制条可见
| |
| |------ 设置Flash调用返回值
| |
| |------ 版本
| |
| |------ 设置光标可见
| |
| |------ 设置双击全屏
| |
| |------ 设置控制条配置
| |
| |------ 获取控制条配置
| |
| |
======IDispatch_event
| |
| |------ event_QueryInterface
| |
| |------ event_AddRef
| |
| |------ event_Release
| |
| |------ event_GetTypeInfoCount
| |
| |------ event_GetTypeInfo
| |
| |------ event_GetIDsOfNames
| |
| |------ event_Invoke
| |
| |
======窗口程序集1
| |
| |------ _窗口1_创建完毕
| |
| |------ 子程序1
| |
| |------ 子程序2
| |
| |------ _按钮1_被单击
| |
| |------ 异步调用完成
| |
| |------ 异常处理子程序
| |
| |------ VEH异常处理
| |
| |------ _按钮2_被单击
| |
| |------ _窗口1_可否被关闭
| |
| |
======APlayer
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 销毁
| |
| |------ 创建com
| |
| |------ 附加窗口
| |
| |------ 挂接事件
| |
| |------ 取消挂接
| |
| |------ 置对象
| |
| |------ 取对象
| |
| |------ 窗口移动
| |
| |------ 打开
| |
| |------ 关闭
| |
| |------ 播放
| |
| |------ 暂停
| |
| |------ 版本
| |
| |------ Logo图片
| |
| |------ 当前状态
| |
| |------ 获取时长
| |
| |------ 获取播放位置
| |
| |------ 设置播放位置
| |
| |------ 获取视频宽度
| |
| |------ 获取视频高度
| |
| |------ 获取音量值
| |
| |------ 设置音量值
| |
| |------ 是否正在设置进度
| |
| |------ 获取缓冲进度
| |
| |------ 获取设置参数
| |
| |------ 设置参数
| |
| |
======调用的Dll
| |
| |---[dll]------ LoadLibrary
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ FreeLibrary
| |
| |---[dll]------ CoLoadLibrary
| |
| |---[dll]------ CLSIDFromString
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ CreateWindowEx
| |
| |---[dll]------ IsWindow
| |
| |---[dll]------ AtlAxAttachControl
| |
| |---[dll]------ SetWindowPos
| |
| |---[dll]------ AtlAdvise
| |
| |---[dll]------ CoInitialize
| |
| |---[dll]------ AtlAxWinInit
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ MoveWindow
| |
| |---[dll]------ AddVectoredExceptionHandler
| |
| |---[dll]------ DestroyWindow
| |
| |---[dll]------ CoUninitialize
======功能程序集
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ DllGetClassObject_
| |
| |------ CreateInstance
| |
| |------ IUnknown_对象
| |
| |------ Release
| |
| |------ A2W
| |
| |------ W2A_整数
| |
| |------ QueryInterface_事件
| |
| |------ FindConnectionPoint
| |
| |------ QueryInterface
| |
| |------ IUnknown指针_对象
| |
| |------ Advise
| |
| |------ UnAdvise
| |
| |------ AtlAxAttachControl_
| |
| |------ 寻找用户事件
| |
| |------ 取地址_IDispatch_event
| |
| |
======APlayer
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建com
| |
| |------ 附加窗口
| |
| |------ 挂接事件
| |
| |------ 取消挂接
| |
| |------ 窗口移动
| |
| |------ 打开
| |
| |------ 关闭
| |
| |------ 播放
| |
| |------ 暂停
| |
| |------ 版本
| |
| |------ Logo图片
| |
| |------ 当前状态
| |
| |------ 获取时长
| |
| |------ 获取播放位置
| |
| |------ 设置播放位置
| |
| |------ 获取视频宽度
| |
| |------ 获取视频高度
| |
| |------ 获取音量值
| |
| |------ 设置音量值
| |
| |------ 是否正在设置进度
| |
| |------ 获取缓冲进度
| |
| |------ 获取设置参数
| |
| |------ 设置参数
| |
| |
======IDispatch_event
| |
| |------ event_QueryInterface
| |
| |------ event_AddRef
| |
| |------ event_Release
| |
| |------ event_GetTypeInfoCount
| |
| |------ event_GetTypeInfo
| |
| |------ event_GetIDsOfNames
| |
| |------ event_Invoke
| |
| |
======窗口程序集1
| |
| |------ _窗口1_创建完毕
| |
| |------ 子程序1
| |
| |------ 子程序2
| |
| |------ _按钮1_被单击
| |
| |------ 异步调用完成
| |
| |------ 异常处理子程序
| |
| |
======调用的Dll
| |
| |---[dll]------ LoadLibrary
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ FreeLibrary
| |
| |---[dll]------ CoLoadLibrary
| |
| |---[dll]------ CLSIDFromString
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ CreateWindowEx
| |
| |---[dll]------ IsWindow
| |
| |---[dll]------ AtlAxAttachControl
| |
| |---[dll]------ SetWindowPos
| |
| |---[dll]------ AtlAdvise
| |
| |---[dll]------ CoInitialize
| |
| |---[dll]------ AtlAxWinInit
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ MoveWindow
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ SEH_异常处理开始
| |
| |------ SEH_异常处理结束
| |
| |------ 异常处理
| |
| |------ 子程序1
| |
| |
======调用的Dll
| |
| |---[dll]------ RtlMoveMemory_EXCEPTION_RECORD结构
| |
| |---[dll]------ RtlMoveMemory_CONTEXT结构
| |
| |---[dll]------ LocalSize_lpexceptionrecord
| |
| |---[dll]------ LocalSize_CONTEXT
| |
| |---[dll]------ AddVectoredExceptionHandler
| |
| |---[dll]------ RemoveVectoredExceptionHandler
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。