Как побороть этт эррор?
----
error C2555: 'Cieobj::SetSite' : overriding virtual function differs from 'ATL::IObjectWithSiteImpl<class Cieobj>::SetSite' only by return type or calling convention
-----
Возникает в проекте ATL при переопределении ф-ции HRESULT SetSite(IUnknown *pUnkSite);
Вот описалово класса
--
class ATL_NO_VTABLE Cieobj :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Cieobj, &CLSID_ieobj>,
public IObjectWithSiteImpl<Cieobj>,
public IDispatchImpl<Iieobj, &IID_Iieobj, &LIBID_BHOTEST1Lib>
{
public:
Cieobj()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_IEOBJ)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(Cieobj)
COM_INTERFACE_ENTRY(Iieobj)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()
// Iieobj
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC;
HRESULT SetSite(IUnknown *pUnkSite);
};
----
Не могу переопределить ф-цию SetSite()! В чем дело. Помогите плз.
Цитата:
Originally posted by Caesarus
Эррор:
----
error C2555: 'Cieobj::SetSite' : overriding virtual function differs from 'ATL::IObjectWithSiteImpl<class Cieobj>::SetSite' only by return type or calling convention
-----
Возникает в проекте ATL при переопределении ф-ции HRESULT SetSite(IUnknown *pUnkSite);
Вот описалово класса
--
class ATL_NO_VTABLE Cieobj :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Cieobj, &CLSID_ieobj>,
public IObjectWithSiteImpl<Cieobj>,
public IDispatchImpl<Iieobj, &IID_Iieobj, &LIBID_BHOTEST1Lib>
{
public:
Cieobj()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_IEOBJ)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(Cieobj)
COM_INTERFACE_ENTRY(Iieobj)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()
// Iieobj
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC;
HRESULT SetSite(IUnknown *pUnkSite);
};
----
Не могу переопределить ф-цию SetSite()! В чем дело. Помогите плз.
Эррор:
----
error C2555: 'Cieobj::SetSite' : overriding virtual function differs from 'ATL::IObjectWithSiteImpl<class Cieobj>::SetSite' only by return type or calling convention
-----
Возникает в проекте ATL при переопределении ф-ции HRESULT SetSite(IUnknown *pUnkSite);
Вот описалово класса
--
class ATL_NO_VTABLE Cieobj :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Cieobj, &CLSID_ieobj>,
public IObjectWithSiteImpl<Cieobj>,
public IDispatchImpl<Iieobj, &IID_Iieobj, &LIBID_BHOTEST1Lib>
{
public:
Cieobj()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_IEOBJ)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(Cieobj)
COM_INTERFACE_ENTRY(Iieobj)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()
// Iieobj
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC;
HRESULT SetSite(IUnknown *pUnkSite);
};
----
Не могу переопределить ф-цию SetSite()! В чем дело. Помогите плз.
Вместо
HRESULT SetSite(IUnknown *pUnkSite);
попробуй
STDMETHOD SetSite(IUnknown *pUnkSite);
Цитата:
Originally posted by _const_
Вместо
HRESULT SetSite(IUnknown *pUnkSite);
попробуй
STDMETHOD SetSite(IUnknown *pUnkSite);
Вместо
HRESULT SetSite(IUnknown *pUnkSite);
попробуй
STDMETHOD SetSite(IUnknown *pUnkSite);
РАзобрался. Надо так:
HRESULT __stdcall SetSite(IUnknown *pUnkSite);
Всем сенкс. Тема закрыта.