List 2-20 COMオブジェクトを生成してメソッドを呼び出す

  1: void  main(int argc, char* argv[])
  2: {
  3:     HRESULT hr;                      // メソッドの実行結果を保持する
  4:     BOOL bResult;                    // 英和辞書の検索結果を保持する
  5: 
  6:     IUnknown* pIUnknown;             // IUnknownインタフェースへのポインタ
  7:     IClassFactory* pIClassFactory;   // IClassFactoryインタフェースへのポインタ
  8:     IDictionary* pIDictionary;       // IDictionaryインタフェースへのポインタ
  9: 
 10:     char lpszEword[] = "pencil";     // 検索する英単語
 11:     char lpszJword[10];              // 和単語
 12: 
 13:     // IClassFactoryインタフェースへのポインタを取得する
 14:     GetClassObject(IID_IDictionary,IID_IClassFactory,(void**)&pIClassFactory);
 15: 
 16:     // IUnknownインタフェースへのポインタを取得する
 17:     hr = pIClassFactory->CreateInstance(NULL,IID_IUnknown,(void**)&pIUnknown);
 18:     
 19:     // IDictionaryインタフェースへのポインタをを取得する
 20:     hr = pIUnknown->QueryInterface(IID_IDictionary,(void**)&pIDictionary);
 21: 
 22:     // LookupWordメソッドを呼び出す
 23:     pIDictionary->LookupWord(lpszEword,lpszJword,&bResult);
 24:     if( bResult == FOUND )
 25:         printf("%s は %s です。\n",lpszEword,lpszJword);
 26:     else
 27:         printf("%s は見つかりません。\n",lpszEword);
 28: 
 29:     // IDictionaryインタフェースを解放する
 30:     pIDictionary->Release();
 31: 
 32:     // IUnknownインタフェースを解放する
 33:     pIUnknown->Release();
 34: 
 35:     // IClassFactoryインタフェースを解放する
 36:     pIClassFactory->Release();
 37: }