基于构件复用的软件方法与COM支持[2]

发表于:2008-10-28来源:作者:点击数: 标签:COM复用构件软件
关键字: 中间件 virtual HRESULT GetIDsOfNames(REFIID riid,LPOLESTR * rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) = 0; virtual HRESULT Invoke(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams, VARI ANT *pVa
关键字:中间件

  virtual HRESULT GetIDsOfNames(REFIID riid,LPOLESTR *

  rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) = 0;

  virtual HRESULT Invoke(DISPID dispIdMember,REFIID

  riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,

  VARIANT *pVarResult,EXCEINFO *pExcepInfo,

  UINT *puArgErr) = 0;

  };

  在自动化对象中,每一个成员函数均对应一个分发ID(DISPID),服务导航器InVoke就是通过此分发ID建立与目标函数的连接.可以用GetIDsofName实现符号(函数名)到ID的映射.因此,应用程序就有了一个统一的界面来使用组件提供的各项服务.

  对于数据类型的兼容性问题,微软提供了一个生硬的解决方法.定义一个尽可能"包罗万象"的大的数据结构VARIANT

原文转自:http://www.ltesting.net