国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

COM組件接口繼承的實現(xiàn)

2019-11-17 05:18:01
字體:
供稿:網(wǎng)友

  這是根據(jù)”Dr. GUI and ATL” 的文章自己做的例子程序,主要是在原有接口上繼續(xù)新的接口,這樣在保留原接口的基礎(chǔ)上可以擴展新的功能.  

  功能介紹:  

  1.創(chuàng)建Calculate組件,添加IFun接口(注重:本例我們在Attributes中我們選擇Apartment,Custom,Yes).在IFun接口中添加函數(shù)Add實現(xiàn)兩數(shù)相加的功能(參數(shù)為[in] long n1, [in] long n2, [out, retval] long *pVal).代碼如下:  

  STDMETHODIMP CCalCulate::Add(long n1, long n2, long *pVal)

  {

   // TODO: Add your implementation code here

   *pVal = n1 + n2;

   return S_OK;

  }

  2.添加IFun2接口,繼續(xù)IFun接口.步驟如下:

  (1)修改.idl文件:

  在

  interface IFun : IUnknown

  {

   [helpstring("method Add")] HRESULT Add([in] long n1, [in] long n2, [out, retval] long *pVal);

  };

  下添加代碼:

  [

   object,

   uuid(B9D75722-1950-405b-8BB6-9788A6DB1DB2), //是接口IFun2的標(biāo)志數(shù),可由VS的GUIDGEN.exe產(chǎn)生

   helpstring("IFun2 Interface"),

   pointer_default(unique)

  ]

  interface IFun2 : IFun

  {

  };

  同時將末尾coclass CalCulate函數(shù)改為

  coclass CalCulate

  {

   interface IFun;

   [default] interface IFun2;

  };

  (2) 修改CalCulate.h文件

  將

  class ATL_NO_VTABLE CCalCulate :

  public CComObjectRootEx,

   public CComCoClass,

   public IFun  

  改為

  class ATL_NO_VTABLE CCalCulate :

  public CComObjectRootEx,

   public CComCoClass,

   public IFun2

  在

  BEGIN_COM_MAP(CCalCulate)

   COM_INTERFACE_ENTRY(IFun)

  END_COM_MAP()

  中添加

  COM_INTERFACE_ENTRY(IFun2)

  (3) 在IFun2接口中添加Sub函數(shù),方法同添加Add函數(shù)不再重復(fù),只是實現(xiàn)時改為

  *pVal = n1 - n2; // 返回兩數(shù)差.

  (4) 編寫客戶端代碼,調(diào)用IFun2接口的Add和Sub函數(shù).  

  開發(fā)環(huán)境: VC6 windows 2000/XP

  測試環(huán)境:Windows 2000 WindowsXP

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万源市| 镇坪县| 郯城县| 锡林浩特市| 雅安市| 黄浦区| 西乌| 东乡族自治县| 平遥县| 廊坊市| 株洲县| 买车| 盱眙县| 芜湖县| 武川县| 吉木乃县| 文成县| 安阳市| 辽源市| 丰宁| 霍林郭勒市| 金寨县| 台山市| 临潭县| 安陆市| 阿拉善盟| 卢氏县| 环江| 兴和县| 正镶白旗| 卢湾区| 聂拉木县| 苏尼特左旗| 高密市| 晋江市| 庆云县| 平乐县| 镇赉县| 辽阳市| 巴彦县| 孝感市|