著作一覧 |
interace Converter : IUnkneown { } coclass Original { interface Converter; }っていうようなIDLがあって。で、こいつに、皮を被せるって感じ。
interface Converter : IUnknown { } colcass Wrapper { interface Converter; }なぜ、interfaceの名前が同じかっていうと、VBな人なら
Dim x as Original.Converter Dim y as Wrapper.Converterなわけだし、実際、メソッドシグネチャは違うんだけど(じゃあ、Wrapperじゃないけど、そのあたりは、最構成してるわけだし)、だって、Converterなんだからしょうがないじゃん。
namespace Original { #include "original.h" #include "original_i.c" } namespace Wrapper { #include "wrapper.h" #include "wrapper_i.c" } #include "converter.h"とするじゃん。
class ATL_NO_VTABLE Converter : ... public IDispatchImpl<IConverter, &IID_IConverter, &LIBID_...のとこで、IConverterが無いよ、エラーになるわけ。
using Wrapper; class ATL_NO_VTALBE Converter : ...とやっても、同じ。
public IDispatchImpl<Wrapper::IConverter, &Wrapper::IID_IConverter, &LIBID_...だめだめ。
ジェズイットを見習え |