CN119415294A 组件调用方法、装置、电子设备及存储介质 (中科方德软件有限公司)_第1页
CN119415294A 组件调用方法、装置、电子设备及存储介质 (中科方德软件有限公司)_第2页
CN119415294A 组件调用方法、装置、电子设备及存储介质 (中科方德软件有限公司)_第3页
CN119415294A 组件调用方法、装置、电子设备及存储介质 (中科方德软件有限公司)_第4页
CN119415294A 组件调用方法、装置、电子设备及存储介质 (中科方德软件有限公司)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

以实现Wine中对COM2接收应用程序针对目标函数的调用请求,所述目标函数的调用参数包括目标COM组件的类标识符、所述目标COM组件的目标接口的接口标识符、以及创建标志和远程服务器信若解析到所述创建标志为远程创建标志,则从所述远程服务根据所述地址信息,向所述远程服务器发送远程创建对象请求消息符对所述目标COM组件创建COM对象实例,以及根据所述接口标识符获取所述COM对象实例接收所述远程服务器针对所述远程创建对象请求消息发送的返在Wine的源码中增加远程创建对象方法的定义,并重新编译及运行调用第一函数,所述第一函数的调用参数包括指定向所述远程服务器发送授权信息验证请求,所述授权信息验证请求携带所述授权信接收所述远程服务器返回的授权信息验证结果,若所述授权信根据所述目标接口的定义信息,创建与所述目标接口具有映射3理接口中各方法的具体实现为将本方法的调用请求进行转换并发送至所述远所述应用程序通过调用所述代理接口中的方法远程调用所述目标接口中的方法,包接收所述应用程序针对所述代理接口中第一方构建远程调用请求消息,所述远程调用请求消息务器调用所述COM对象实例执行所述目标接口中的第二方法;所述第二方法与所述第一方调用接收模块,用于接收应用程序针对目标函数的调参数解析模块,用于若解析到所述创建标志为远程创建标志请求消息发送模块,用于根据所述地址信息,向所述远程服务代理接口构建模块,用于接收所述远程服务器针对所述远接口指针操作模块,用于向所述应用程序返回所述代理接口序通过调用所述代理接口中的方法远程调用定义模块,用于在Wine的源码中增加远程创建对象方法的或指令被处理器执行时实现如权利要求1至6任一所述4接收应用程序针对目标函数的调用请求,所述目标函数的调用参数包括目标COM标识符对所述目标COM组件创建COM对象实例,以及根据所述接口标识符获取所述COM对象5标识符获取所述COM对象实例中所述目标接务器的返回消息构建代理接口,以使Wine中运行的Windows应用程序通过调用代理接口中6象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互[0021]图1示出了本申请的一种组件调用方法实施例的步骤流程图,所述方法可以应用7所述代理接口中的方法远程调用所述目标接[0022]本申请提供的组件调用方法可应用于基于Linux操作系统的电子设备。所述电子III)播放器、MP4(动态影像专家压缩标准音频层面4,MovingPictureExpertsGroup提供的组件调用方法可以在Wine中实现对COM组件远程调用的支持,进而使得使用DCOM技术的Windows应用程序在Wine中可以正常使用。[0025]本申请对Wine的源码进行修改,在Wine的源码中增加关于远程创建对象产生RemoteCreateInstance方法,以使修改后的Wine可以通过调用RemoteCreateInstance方法构建RemoteCreateInstance请求消息,并向远程服务器发送所述RemoteCreateInstance请求消息,以请求远程服务器创建COM对象实例。此外,本申请在Wine中增加对远程服务器的返回消息进行解析的功能,根据远程服务器的返回消息构建代程服务器上COM对象实例的目标接口中的方法,由此实现Wine中对COM组件远程调用的支[0027]在具体实施中,当应用程序需要使用某个远程服务器中某个COM组件(称为目标8[0030]目标接口指的是应用程序需要使用的目标COM组件的某个接口,应用程序需要使用程序需要使用该图形处理COM组件的图形绘制功能时,该图形处理COM组件为目标COM组[0035]目标函数指的是CoCreateInstanceEx函数,该函数是Windows系统提供的API传入的IID,获取该COM对象实例中目标接口的指针。应用程序通过该目标接口的指针[0036]Wine中模拟实现了CoCreateInstanceEx函数。相关技术中,Wine中实现的9[0039]示例性地,本申请在Wine的源码中添加.idl文件,在.idl文件中添加关于RemoteCreateInstance方法RemoteCreateInstance方法。修改后的Wine在执行所述目标函数的过程中,通过调用务器发送所述RemoteCreateInstHRESULTRemoteCreateInstance([out]ORPCTHAT*orp[in,unique]MInterfacePointer*pUnk[in,unique]MInterfacePointer*pActProp);程服务器接收到RemoteCreateInstance请求消息后返回时[0041]数据结构pActProperties用于存储发送RemoteCreateInstance请求消息时携带[0042]数据结构ppActProperties用于存储远程服务器对RemoteCreateInstance请求消[0044]进一步地,ppActProperties可以包括如下数据结构:ScmReplyInfoData和到所述创建标志为远程创建标志CLSCTX_REMOTE_SERVER,表明要在远程服务器上创建COMCoCreateInstanceEx内部自动调用RemoteCreateInstance方法,通过新增的该处理逻辑,实现Wine可以向远程服务器发送RemoteCreateInstance请求消息,以请求远程创建COM对[0049]所述第一函数可以为get_rpc_handle函数,该函数可用于获取远程过程调用protseq)、所述远程服务器的地址信息(如记为NetworkAddr)和第一端口号(如记为求远程创建对象实例以及请求远程调用COM对象实例[0054]本申请实施例通过调用第一函数实现在Wine中通过指定的传输协议发送远程创述授权信息验证结果指示验证成功,则所述远程服务器允许基于所述RPC连接的句柄接收[0058]所述第二函数的调用参数可以包括所述RPC连接的句柄和授权信息。所述授权信[0059]本申请实施例通过调用第一函数get_rpc_handle建立客户端与远程服务器之间[0060]在绑定授权信息之后,Wine在向远程服务器发送与调用COM组件相关的消息时会相关的消息例如请求创建COM对象实例的消息以及请求调用COM对象实例的接口方法的消中的DCOM应用(客户端)指的是Wine中运行的,需要使用远程服务器中COM组件功能的建标志为CLSCTX_REMOTE_SE信息(serverInfo)中获取远程服务器的地址信息和授权信息。由于解析到创建标志为CLSCTX_REMOTE_SERVER,表明要在远程服务器上创建COM对象实例,因此目标函数连接绑定授权信息,并向远程服务器发送授权信息验证请求,若授权信息验证成功,入的CLSID和IID构建RemoteCreateInstance请求消息,通过已建立的RPC连接发送至远程[0065]远程服务器通过网络通信层监听第一端口(如135端口接收来自客户端的请求[0067]Wine接收到所述远程服务器针对所述远程创建对象请求消根据所述目标接口的定义信息,创建与所述目标接口具有映射关系的代理接口,述代理接口中各方法的具体实现为将本方法的调用请求进行转换并发送至所述远程服务[0070]除了标识符信息外,还可以从远程服务器获取或已经预先得知远程服务器中COM中的方法时,代理接口将传入的参数以及要调用的接口所在COM组件等信息打包发送至远系统提供的API函数,与CoMarshalInterface函数执行相对应的操作。当远程服务器使用CoMarshalInterface函数将一个COM对象实例的接口指针序列化后并通过指定的传输协议求所述远程服务器调用所述COM对象实例执行所述目标接口中的第二方法;所述第二方法[0074]远程服务器针对RemoteCreateInstance请求消息返回的返回消息中至少包括标[0078]第二端口号为目标组件对应的监听端口号。WindowsDCOM服务为每个COM组件开发送至远程服务器上的IDatabaseAccess接口。若解析到所述创建标志为本地创建标志,则将COM调用相关数据发送至指定的管[0084]其中,本地创建标志表示需要在本地创建COM对象实例,本地创建标志可以包括CLSCTX_INPROC_SERVER或CLSCTX_LO[0085]CLSCTX_INPROC_SERVER表示要创建的COM对象与客户端应用程序在同一个进程空[0086]CLSCTX_LOCAL_SERVER表示表示要创建的COM对象与客户端应用程序处于不同[0089]示例性地,若解析到的创建标志为CLSCTX_INPROC_SERVER或CLSCTX_LOCAL_据远程服务器的返回消息构建代理接口,以使Wine中运行的Windows应用程序通过调用代口标识符获取所述COM对象实例中所述目标代理接口构建模块304,用于接收所述远程服务器针对所述远程创建对象请求消应用程序通过调用所述代理接口中的方法远程调用所述目服务器的所述第一端口号发送所述远程创息验证结果指示验证失败,则所述远程服务器拒绝基于所述RPC连接的句柄接收到的后续根据所述目标接口的定义信息,创建与所述目标接口具有映射关系的代理接口,述代理接口中各方法的具体实现为将本方法的调用请求进行转换并发送至所述远程服务器创建COM对象实例。此外,本申请在Wine中增加对远程服务器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论