• 締切済み

IExtractIconを継承させたい

VC++を使っているのでここに書きこまさせて下さい。 ATLを使ってプログラムを組んでいるのですが、わからないことがあります。 まず「ATL COM ウィザード」で雛型を作成しました。 その後「ATLオブジェクトの新規作成」でCFooクラスを「シンプルオブジェクト」を選択して作りました。 そのCFooクラスにIExtractIconを継承させようとしているのですが、うまくいきません。 class ATL_NO_VTABLE CFoo : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CFoo,&CLSID_Foo>, public IDispatchImpl<IFoo, &IID_IFoo, &LIBID_FOOLib>, public IExtractIcon {/* 長いので省略します */}; このようにCFooを宣言しているのですが、 'CComObject<class CFoo>' : 抽象クラスあるいは構造体のオブジェクトが宣言されています。 というエラーが出てしまいます。 どのようにすれば解決できるのでしょうか? よろしくお願いします。

みんなの回答

  • hyde-la
  • ベストアンサー率28% (42/146)
回答No.1

エラーの意味はご存知の通りです。 つまり実装していないインターフェイスがあるために、抽象クラスが 抽象クラスのままなのでしょう。 IExtracticonの純粋仮想関数は実装していますでしょうか? GetIconLocationとExtractの二つを実装してみて下さい。 詳細はMSDNをどうぞ。

Sephy
質問者

補足

IExtracticonの純粋仮想関数は実装しています。 MSDNも調べましたが該当する項目を発見できませんでした。

関連するQ&A