List 1-7 抽象基本クラスによって実現されるIUnknownインタフェースとIDictionaryインタフェース,それらを継承したCDictionaryクラス

  1: // IUnknownインタフェースの定義
  2: class IUnknown
  3: {
  4: public:
  5:     virtual HRESULT  __stdcall    QueryInterface(REFIID riid, void** ppvObj) = 0;
  6:     virtual ULONG    __stdcall    AddRef() = 0;
  7:     virtual ULONG    __stdcall    Release() = 0;
  8: };
  9: 
 10: // IDictionaryインターフェースの定義
 11: class IDictionary  : public IUnknown
 12: {
 13: public:
 14:     virtual HRESULT  __stdcall LookupWord(char* lpszEword, char* lpszJword, BOOL* pbResult) = 0;
 15: };
 16: 
 17: // CDictionaryクラスの定義
 18: class CDictionary : public IDictionary
 19: {
 20: private:
 21:     ULONG  m_dwRef;    // 参照カウント
 22:     int    m_nWord;    // 単語数
 23: public:
 24:     HRESULT __stdcall    QueryInterface(REFIID iid, void** ppvObj);
 25:     ULONG   __stdcall    AddRef();
 26:     ULONG   __stdcall    Release();
 27:     HRESULT __stdcall    LookupWord(char* lpszEword, char* lpszJword, BOOL* pbResult);
 28:     CDictionary() : m_dwRef(0) { 
 29:         // 辞書の単語の個数を算出する
 30:         m_nWord = sizeof(dic)/sizeof(EJ_Dictionary);
 31:     }
 32:     ~CDictionary() { }
 33: };