描述:
最近用到一个别人写的COM组件
其中一个方法
HRESULT __fastcall InitServer(LPDISPATCH Caller/*[in]*/, long enumViewType/*[in]*/,
BSTR sUserName/*[in]*/, BSTR sPassword/*[in]*/)
于是我就
class ATL_NO_VTABLE TMyCallBack :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<TMyCallBack, &CLSID_NULL>
public IDispatchImpl<IWPAVCallBack,&IID_IWPAVCallBack,&CLSID_NULL>
{
......
}
接口IWPAVCallBack定义:
interface IWPAVCallBack:IDispatch
同时我构造了一个
template <class Base>
class TCustomSink : public Base
{
public:
TCustomSink()
{ }
~TCustomSink() { }
// IUnknown implementation:
STDMETHOD_(ULONG, AddRef)() { return 1; }
STDMETHOD_(ULONG, Release)() { return 1; }
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
{ return _InternalQueryInterface(iid, ppvObject); }
}
可是编译的时候总是说unresolved external '__Module '
请问要怎么修改?谢谢
解决方案1:
ATL: 创建一个 ATL对象,让它支持双接口就可以了
MFC: 从CCmdTarget 派生 一个类, 并构造函数里调用 EnableAutomation();