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: };