国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 弥渡县| 虎林市| 吴旗县| 太谷县| 南木林县| 平罗县| 富宁县| 原平市| 湖南省| 琼中| 许昌县| 两当县| 买车| 阿克陶县| 崇明县| 东港市| 崇礼县| 新津县| 西峡县| 朔州市| 临沭县| 固原市| 赤峰市| 边坝县| 临江市| 错那县| 武胜县| 外汇| 昌平区| 嘉兴市| 明溪县| 濮阳县| 罗田县| 信丰县| 从化市| 措美县| 平安县| 贺州市| 恭城| 长乐市| 枣庄市|