高级软件工程(DCOM、自动化).ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级软件工程(DCOM、自动化)

DCOM 可配置性 对 服务器的变化 客户程序的自动安装 等 可以灵活配置 安全性 使用了 Windows NT 提供的 可扩展安全性框架 实现的安全性包括: 访问安全性 激发安全性 等 6、自动化 一种 客户与构件之间通信的方法 COM接口 自动化(OLE自动化) Word、Excel 及VB、Java都使用了自动化技术 特点: 使得用解释性语言和宏语言 访问COM构件更为容易 编写COM构件也将更为容易 关注运行时的类型检查 以牺牲速度与编译时类型检查为代价 自动化 自动化不独立于COM 建立在COM基础上 一个自动化服务器 是一个实现了 IDispatch 接口的COM构件 一个自动化控制器 是一个通过 IDispatch 接口 同自动化服务器进行通信的COM客户 自动化控制器不直接调用自动化服务器实现的函数 而是通过 IDispatch 接口中的成员函数 实现对服务器中函数的间接调用 自动化 内 容 IDispatch 接口 IDispatch 的使用 类型库 IDispatch 的实现 自动化 (1)IDispatch 接口 IDispatch接口是作为 VB 的一部分开发出来的 COM构件通过一个标准的接口( IDispatch ) 提供构件支持的服务 而不必提供多个特定于服务的接口 IDispatch 将接收一个函数的名称并执行它 自动化 interface IDispatch : IUnknown{ typedef [unique] IDispatch * LPDISPATCH; HRESULT GetTypeInfoCount( [out] UINT * pctinfo ); HRESULT GetTypeInfo( [in] UINT iTInfo, [in] LCID lcid, [out] ITypeInfo ** ppTInfo ); HRESULT GetIDsOfNames( [in] REFIID riid, [in, size_is(cNames)] LPOLESTR * rgszNames, [in] UINT cNames, [in] LCID lcid, [out, size_is(cNames)] DISPID * rgDispId ); 自动化 HRESULT Invoke( [in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS * pDispParams, [out] VARIANT * pVarResult, [out] EXCEPINFO * pExcepInfo, [out] UINT * puArgErr ); 自动化 执行函数时 自动化控制程序将调度标识 传给 Invoke 成员函数 自动化服务器根据调度标识 使用 case 语句执行不同的代码 Invoke 的工作方式与 vtbl 类似: 都实现一组按索引访问的函数 都可以定义接口 IDispatch :: Invoke 的一个实现所包含的函数集 被称作一个调度接口 (不是COM接口) 自动化 pVtbl QueryInterface AddRef Release GetTypeInfoCount GetTypeInfo GetIIDsOfNames Invoke Idispatch * pIDispatch FooBar 3 Bar 2 Foo 1 “FooBar” 3 “Bar” 2 “Foo” 1 Idispatch接口 调度接口 Invoke 函数 GetIIDs

您可能关注的文档

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档