接口是COM中的關鍵詞,在c++中並沒有這個概念。接口是一種極度的抽象。接口用在COM組件中有自己的GUID值,因此定義接口時一定要指定它的GUID值。
實際上接口就是struct,即#define interface struct
一、接口的定義步驟:
0.包含頭文件:#include "afxtempl.h"
1.定義一個GUID值:static const IID IID_IFunction={guid value}
2.聲明一個接口:DECLARE_INTERFACE_(IFunction,IUnknwon),該宏表示:struct _declspec(novtable) IFunction:public IUnknown
3.寫接口中定義的函數。
總之就是:
static const IID IID_IFunction ={guid value};
DECLARE_INTERFACE_(IFunction,IUnknown)
{
STEMETHOD(show)(CString str,int a) PURE;//你要定義的接口方法
}
這樣一個接口就定義好了。