Hi,
I have an add-in project which creates toolbar written by vs 2005, now when I convert it into 2010 it doesn't work. It returns
CONNECT_E_NOCONNECTION
when I call
DispEventAdvise()
function. Could You help me?
Here is the steps of debugging :
CComQIPtr<iunknown,> spUnk(m_pButton);
hr = CCommandButt1Events::DispEventAdvise(spUnk);
1.
HRESULT DispEventAdvise(_Inout_ IUnknown* pUnk)
{
return _IDispEvent::DispEventAdvise(pUnk, pdiid);
}
2.
HRESULT DispEventAdvise(
_Inout_ IUnknown* pUnk,
_In_ const IID* piid)
{
ATLENSURE(m_dwEventCookie == 0xFEFEFEFE);
return AtlAdvise(pUnk, (IUnknown*)this, *piid, &m_dwEventCookie);
}
3.
ATLINLINE ATLAPI AtlAdvise(
_Inout_ IUnknown* pUnkCP,
_Inout_opt_ IUnknown* pUnk,
_In_ const IID& iid,
_Out_ LPDWORD pdw)
{
if(pUnkCP == NULL)
return E_INVALIDARG;
CComPtr<iconnectionpointcontainer> pCPC;
CComPtr<iconnectionpoint> pCP;
HRESULT hRes = pUnkCP->QueryInterface(__uuidof(IConnectionPointContainer), (void**)&pCPC);
if (SUCCEEDED(hRes))
hRes = pCPC->FindConnectionPoint(iid, &pCP);
if (SUCCEEDED(hRes))
hRes = pCP->Advise(pUnk, pdw);
return hRes;
}
The call of
hRes = pCPC->FindConnectionPoint(iid, &pCP)
function returns
CONNECT_E_NOCONNECTION
value.