1*48a54d36SAndroid Build Coastguard Worker 2*48a54d36SAndroid Build Coastguard Worker // Wizard-generated connection point proxy class 3*48a54d36SAndroid Build Coastguard Worker // WARNING: This file may be regenerated by the wizard 4*48a54d36SAndroid Build Coastguard Worker 5*48a54d36SAndroid Build Coastguard Worker 6*48a54d36SAndroid Build Coastguard Worker #pragma once 7*48a54d36SAndroid Build Coastguard Worker 8*48a54d36SAndroid Build Coastguard Worker template<class T> 9*48a54d36SAndroid Build Coastguard Worker class CProxy_IDNSSDEvents : 10*48a54d36SAndroid Build Coastguard Worker public IConnectionPointImpl<T, &__uuidof(_IDNSSDEvents)> 11*48a54d36SAndroid Build Coastguard Worker { 12*48a54d36SAndroid Build Coastguard Worker public: Fire_DomainFound(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,BSTR domain)13*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_DomainFound( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, BSTR domain) 14*48a54d36SAndroid Build Coastguard Worker { 15*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 16*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 17*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 18*48a54d36SAndroid Build Coastguard Worker 19*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 20*48a54d36SAndroid Build Coastguard Worker { 21*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 22*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 23*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 24*48a54d36SAndroid Build Coastguard Worker 25*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 26*48a54d36SAndroid Build Coastguard Worker 27*48a54d36SAndroid Build Coastguard Worker if (pConnection) 28*48a54d36SAndroid Build Coastguard Worker { 29*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[4]; 30*48a54d36SAndroid Build Coastguard Worker avarParams[3] = service; 31*48a54d36SAndroid Build Coastguard Worker avarParams[2] = flags; 32*48a54d36SAndroid Build Coastguard Worker avarParams[1] = ifIndex; 33*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_UI4; 34*48a54d36SAndroid Build Coastguard Worker avarParams[0] = domain; 35*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_BSTR; 36*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 4, 0 }; 37*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 38*48a54d36SAndroid Build Coastguard Worker } 39*48a54d36SAndroid Build Coastguard Worker } 40*48a54d36SAndroid Build Coastguard Worker return hr; 41*48a54d36SAndroid Build Coastguard Worker } Fire_DomainLost(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,BSTR domain)42*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_DomainLost( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, BSTR domain) 43*48a54d36SAndroid Build Coastguard Worker { 44*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 45*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 46*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 47*48a54d36SAndroid Build Coastguard Worker 48*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 49*48a54d36SAndroid Build Coastguard Worker { 50*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 51*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 52*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 53*48a54d36SAndroid Build Coastguard Worker 54*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 55*48a54d36SAndroid Build Coastguard Worker 56*48a54d36SAndroid Build Coastguard Worker if (pConnection) 57*48a54d36SAndroid Build Coastguard Worker { 58*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[4]; 59*48a54d36SAndroid Build Coastguard Worker avarParams[3] = service; 60*48a54d36SAndroid Build Coastguard Worker avarParams[2] = flags; 61*48a54d36SAndroid Build Coastguard Worker avarParams[1] = ifIndex; 62*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_UI4; 63*48a54d36SAndroid Build Coastguard Worker avarParams[0] = domain; 64*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_BSTR; 65*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 4, 0 }; 66*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(2, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 67*48a54d36SAndroid Build Coastguard Worker } 68*48a54d36SAndroid Build Coastguard Worker } 69*48a54d36SAndroid Build Coastguard Worker return hr; 70*48a54d36SAndroid Build Coastguard Worker } Fire_ServiceFound(IDNSSDService * browser,DNSSDFlags flags,ULONG ifIndex,BSTR serviceName,BSTR regType,BSTR domain)71*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_ServiceFound( IDNSSDService * browser, DNSSDFlags flags, ULONG ifIndex, BSTR serviceName, BSTR regType, BSTR domain) 72*48a54d36SAndroid Build Coastguard Worker { 73*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 74*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 75*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 76*48a54d36SAndroid Build Coastguard Worker 77*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 78*48a54d36SAndroid Build Coastguard Worker { 79*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 80*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 81*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 82*48a54d36SAndroid Build Coastguard Worker 83*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 84*48a54d36SAndroid Build Coastguard Worker 85*48a54d36SAndroid Build Coastguard Worker if (pConnection) 86*48a54d36SAndroid Build Coastguard Worker { 87*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[6]; 88*48a54d36SAndroid Build Coastguard Worker avarParams[5] = browser; 89*48a54d36SAndroid Build Coastguard Worker avarParams[4] = flags; 90*48a54d36SAndroid Build Coastguard Worker avarParams[3] = ifIndex; 91*48a54d36SAndroid Build Coastguard Worker avarParams[3].vt = VT_UI4; 92*48a54d36SAndroid Build Coastguard Worker avarParams[2] = serviceName; 93*48a54d36SAndroid Build Coastguard Worker avarParams[2].vt = VT_BSTR; 94*48a54d36SAndroid Build Coastguard Worker avarParams[1] = regType; 95*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_BSTR; 96*48a54d36SAndroid Build Coastguard Worker avarParams[0] = domain; 97*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_BSTR; 98*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 6, 0 }; 99*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(3, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 100*48a54d36SAndroid Build Coastguard Worker } 101*48a54d36SAndroid Build Coastguard Worker } 102*48a54d36SAndroid Build Coastguard Worker return hr; 103*48a54d36SAndroid Build Coastguard Worker } Fire_ServiceLost(IDNSSDService * browser,DNSSDFlags flags,ULONG ifIndex,BSTR serviceName,BSTR regType,BSTR domain)104*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_ServiceLost( IDNSSDService * browser, DNSSDFlags flags, ULONG ifIndex, BSTR serviceName, BSTR regType, BSTR domain) 105*48a54d36SAndroid Build Coastguard Worker { 106*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 107*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 108*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 109*48a54d36SAndroid Build Coastguard Worker 110*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 111*48a54d36SAndroid Build Coastguard Worker { 112*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 113*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 114*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 115*48a54d36SAndroid Build Coastguard Worker 116*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 117*48a54d36SAndroid Build Coastguard Worker 118*48a54d36SAndroid Build Coastguard Worker if (pConnection) 119*48a54d36SAndroid Build Coastguard Worker { 120*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[6]; 121*48a54d36SAndroid Build Coastguard Worker avarParams[5] = browser; 122*48a54d36SAndroid Build Coastguard Worker avarParams[4] = flags; 123*48a54d36SAndroid Build Coastguard Worker avarParams[3] = ifIndex; 124*48a54d36SAndroid Build Coastguard Worker avarParams[3].vt = VT_UI4; 125*48a54d36SAndroid Build Coastguard Worker avarParams[2] = serviceName; 126*48a54d36SAndroid Build Coastguard Worker avarParams[2].vt = VT_BSTR; 127*48a54d36SAndroid Build Coastguard Worker avarParams[1] = regType; 128*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_BSTR; 129*48a54d36SAndroid Build Coastguard Worker avarParams[0] = domain; 130*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_BSTR; 131*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 6, 0 }; 132*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(4, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 133*48a54d36SAndroid Build Coastguard Worker } 134*48a54d36SAndroid Build Coastguard Worker } 135*48a54d36SAndroid Build Coastguard Worker return hr; 136*48a54d36SAndroid Build Coastguard Worker } Fire_ServiceResolved(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,BSTR fullName,BSTR hostName,USHORT port,ITXTRecord * record)137*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_ServiceResolved( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, BSTR fullName, BSTR hostName, USHORT port, ITXTRecord * record) 138*48a54d36SAndroid Build Coastguard Worker { 139*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 140*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 141*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 142*48a54d36SAndroid Build Coastguard Worker 143*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 144*48a54d36SAndroid Build Coastguard Worker { 145*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 146*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 147*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 148*48a54d36SAndroid Build Coastguard Worker 149*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 150*48a54d36SAndroid Build Coastguard Worker 151*48a54d36SAndroid Build Coastguard Worker if (pConnection) 152*48a54d36SAndroid Build Coastguard Worker { 153*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[7]; 154*48a54d36SAndroid Build Coastguard Worker avarParams[6] = service; 155*48a54d36SAndroid Build Coastguard Worker avarParams[5] = flags; 156*48a54d36SAndroid Build Coastguard Worker avarParams[4] = ifIndex; 157*48a54d36SAndroid Build Coastguard Worker avarParams[4].vt = VT_UI4; 158*48a54d36SAndroid Build Coastguard Worker avarParams[3] = fullName; 159*48a54d36SAndroid Build Coastguard Worker avarParams[3].vt = VT_BSTR; 160*48a54d36SAndroid Build Coastguard Worker avarParams[2] = hostName; 161*48a54d36SAndroid Build Coastguard Worker avarParams[2].vt = VT_BSTR; 162*48a54d36SAndroid Build Coastguard Worker avarParams[1] = port; 163*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_UI2; 164*48a54d36SAndroid Build Coastguard Worker avarParams[0] = record; 165*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 7, 0 }; 166*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(5, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 167*48a54d36SAndroid Build Coastguard Worker } 168*48a54d36SAndroid Build Coastguard Worker } 169*48a54d36SAndroid Build Coastguard Worker return hr; 170*48a54d36SAndroid Build Coastguard Worker } Fire_ServiceRegistered(IDNSSDService * service,DNSSDFlags flags,BSTR name,BSTR regType,BSTR domain)171*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_ServiceRegistered( IDNSSDService * service, DNSSDFlags flags, BSTR name, BSTR regType, BSTR domain) 172*48a54d36SAndroid Build Coastguard Worker { 173*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 174*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 175*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 176*48a54d36SAndroid Build Coastguard Worker 177*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 178*48a54d36SAndroid Build Coastguard Worker { 179*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 180*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 181*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 182*48a54d36SAndroid Build Coastguard Worker 183*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 184*48a54d36SAndroid Build Coastguard Worker 185*48a54d36SAndroid Build Coastguard Worker if (pConnection) 186*48a54d36SAndroid Build Coastguard Worker { 187*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[5]; 188*48a54d36SAndroid Build Coastguard Worker avarParams[4] = service; 189*48a54d36SAndroid Build Coastguard Worker avarParams[3] = flags; 190*48a54d36SAndroid Build Coastguard Worker avarParams[2] = name; 191*48a54d36SAndroid Build Coastguard Worker avarParams[2].vt = VT_BSTR; 192*48a54d36SAndroid Build Coastguard Worker avarParams[1] = regType; 193*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_BSTR; 194*48a54d36SAndroid Build Coastguard Worker avarParams[0] = domain; 195*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_BSTR; 196*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 5, 0 }; 197*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(6, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 198*48a54d36SAndroid Build Coastguard Worker } 199*48a54d36SAndroid Build Coastguard Worker } 200*48a54d36SAndroid Build Coastguard Worker return hr; 201*48a54d36SAndroid Build Coastguard Worker } Fire_QueryRecordAnswered(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,BSTR fullName,DNSSDRRType rrtype,DNSSDRRClass rrclass,VARIANT rdata,ULONG ttl)202*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_QueryRecordAnswered( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, BSTR fullName, DNSSDRRType rrtype, DNSSDRRClass rrclass, VARIANT rdata, ULONG ttl) 203*48a54d36SAndroid Build Coastguard Worker { 204*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 205*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 206*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 207*48a54d36SAndroid Build Coastguard Worker 208*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 209*48a54d36SAndroid Build Coastguard Worker { 210*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 211*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 212*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 213*48a54d36SAndroid Build Coastguard Worker 214*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 215*48a54d36SAndroid Build Coastguard Worker 216*48a54d36SAndroid Build Coastguard Worker if (pConnection) 217*48a54d36SAndroid Build Coastguard Worker { 218*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[8]; 219*48a54d36SAndroid Build Coastguard Worker avarParams[7] = service; 220*48a54d36SAndroid Build Coastguard Worker avarParams[6] = flags; 221*48a54d36SAndroid Build Coastguard Worker avarParams[5] = ifIndex; 222*48a54d36SAndroid Build Coastguard Worker avarParams[5].vt = VT_UI4; 223*48a54d36SAndroid Build Coastguard Worker avarParams[4] = fullName; 224*48a54d36SAndroid Build Coastguard Worker avarParams[4].vt = VT_BSTR; 225*48a54d36SAndroid Build Coastguard Worker avarParams[3] = rrtype; 226*48a54d36SAndroid Build Coastguard Worker avarParams[2] = rrclass; 227*48a54d36SAndroid Build Coastguard Worker avarParams[1] = rdata; 228*48a54d36SAndroid Build Coastguard Worker avarParams[0] = ttl; 229*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_UI4; 230*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 8, 0 }; 231*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(7, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 232*48a54d36SAndroid Build Coastguard Worker } 233*48a54d36SAndroid Build Coastguard Worker } 234*48a54d36SAndroid Build Coastguard Worker return hr; 235*48a54d36SAndroid Build Coastguard Worker } Fire_RecordRegistered(IDNSSDRecord * record,DNSSDFlags flags)236*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_RecordRegistered( IDNSSDRecord * record, DNSSDFlags flags) 237*48a54d36SAndroid Build Coastguard Worker { 238*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 239*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 240*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 241*48a54d36SAndroid Build Coastguard Worker 242*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 243*48a54d36SAndroid Build Coastguard Worker { 244*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 245*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 246*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 247*48a54d36SAndroid Build Coastguard Worker 248*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 249*48a54d36SAndroid Build Coastguard Worker 250*48a54d36SAndroid Build Coastguard Worker if (pConnection) 251*48a54d36SAndroid Build Coastguard Worker { 252*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[2]; 253*48a54d36SAndroid Build Coastguard Worker avarParams[1] = record; 254*48a54d36SAndroid Build Coastguard Worker avarParams[0] = flags; 255*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 2, 0 }; 256*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(8, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 257*48a54d36SAndroid Build Coastguard Worker } 258*48a54d36SAndroid Build Coastguard Worker } 259*48a54d36SAndroid Build Coastguard Worker return hr; 260*48a54d36SAndroid Build Coastguard Worker } Fire_AddressFound(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,BSTR hostname,DNSSDAddressFamily addressFamily,BSTR address,ULONG ttl)261*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_AddressFound( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, BSTR hostname, DNSSDAddressFamily addressFamily, BSTR address, ULONG ttl) 262*48a54d36SAndroid Build Coastguard Worker { 263*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 264*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 265*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 266*48a54d36SAndroid Build Coastguard Worker 267*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 268*48a54d36SAndroid Build Coastguard Worker { 269*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 270*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 271*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 272*48a54d36SAndroid Build Coastguard Worker 273*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 274*48a54d36SAndroid Build Coastguard Worker 275*48a54d36SAndroid Build Coastguard Worker if (pConnection) 276*48a54d36SAndroid Build Coastguard Worker { 277*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[7]; 278*48a54d36SAndroid Build Coastguard Worker avarParams[6] = service; 279*48a54d36SAndroid Build Coastguard Worker avarParams[5] = flags; 280*48a54d36SAndroid Build Coastguard Worker avarParams[4] = ifIndex; 281*48a54d36SAndroid Build Coastguard Worker avarParams[4].vt = VT_UI4; 282*48a54d36SAndroid Build Coastguard Worker avarParams[3] = hostname; 283*48a54d36SAndroid Build Coastguard Worker avarParams[3].vt = VT_BSTR; 284*48a54d36SAndroid Build Coastguard Worker avarParams[2] = addressFamily; 285*48a54d36SAndroid Build Coastguard Worker avarParams[1] = address; 286*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_BSTR; 287*48a54d36SAndroid Build Coastguard Worker avarParams[0] = ttl; 288*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_UI4; 289*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 7, 0 }; 290*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(9, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 291*48a54d36SAndroid Build Coastguard Worker } 292*48a54d36SAndroid Build Coastguard Worker } 293*48a54d36SAndroid Build Coastguard Worker return hr; 294*48a54d36SAndroid Build Coastguard Worker } Fire_MappingCreated(IDNSSDService * service,DNSSDFlags flags,ULONG ifIndex,ULONG externalAddress,DNSSDAddressFamily addressFamily,DNSSDProtocol protocol,USHORT internalPort,USHORT externalPort,ULONG ttl)295*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_MappingCreated( IDNSSDService * service, DNSSDFlags flags, ULONG ifIndex, ULONG externalAddress, DNSSDAddressFamily addressFamily, DNSSDProtocol protocol, USHORT internalPort, USHORT externalPort, ULONG ttl) 296*48a54d36SAndroid Build Coastguard Worker { 297*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 298*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 299*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 300*48a54d36SAndroid Build Coastguard Worker 301*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 302*48a54d36SAndroid Build Coastguard Worker { 303*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 304*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 305*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 306*48a54d36SAndroid Build Coastguard Worker 307*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 308*48a54d36SAndroid Build Coastguard Worker 309*48a54d36SAndroid Build Coastguard Worker if (pConnection) 310*48a54d36SAndroid Build Coastguard Worker { 311*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[9]; 312*48a54d36SAndroid Build Coastguard Worker avarParams[8] = service; 313*48a54d36SAndroid Build Coastguard Worker avarParams[7] = flags; 314*48a54d36SAndroid Build Coastguard Worker avarParams[6] = ifIndex; 315*48a54d36SAndroid Build Coastguard Worker avarParams[6].vt = VT_UI4; 316*48a54d36SAndroid Build Coastguard Worker avarParams[5] = externalAddress; 317*48a54d36SAndroid Build Coastguard Worker avarParams[5].vt = VT_UI4; 318*48a54d36SAndroid Build Coastguard Worker avarParams[4] = addressFamily; 319*48a54d36SAndroid Build Coastguard Worker avarParams[3] = protocol; 320*48a54d36SAndroid Build Coastguard Worker avarParams[2] = internalPort; 321*48a54d36SAndroid Build Coastguard Worker avarParams[2].vt = VT_UI2; 322*48a54d36SAndroid Build Coastguard Worker avarParams[1] = externalPort; 323*48a54d36SAndroid Build Coastguard Worker avarParams[1].vt = VT_UI2; 324*48a54d36SAndroid Build Coastguard Worker avarParams[0] = ttl; 325*48a54d36SAndroid Build Coastguard Worker avarParams[0].vt = VT_UI4; 326*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 9, 0 }; 327*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(10, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 328*48a54d36SAndroid Build Coastguard Worker } 329*48a54d36SAndroid Build Coastguard Worker } 330*48a54d36SAndroid Build Coastguard Worker return hr; 331*48a54d36SAndroid Build Coastguard Worker } Fire_OperationFailed(IDNSSDService * service,DNSSDError error)332*48a54d36SAndroid Build Coastguard Worker HRESULT Fire_OperationFailed( IDNSSDService * service, DNSSDError error) 333*48a54d36SAndroid Build Coastguard Worker { 334*48a54d36SAndroid Build Coastguard Worker HRESULT hr = S_OK; 335*48a54d36SAndroid Build Coastguard Worker T * pThis = static_cast<T *>(this); 336*48a54d36SAndroid Build Coastguard Worker int cConnections = m_vec.GetSize(); 337*48a54d36SAndroid Build Coastguard Worker 338*48a54d36SAndroid Build Coastguard Worker for (int iConnection = 0; iConnection < cConnections; iConnection++) 339*48a54d36SAndroid Build Coastguard Worker { 340*48a54d36SAndroid Build Coastguard Worker pThis->Lock(); 341*48a54d36SAndroid Build Coastguard Worker CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection); 342*48a54d36SAndroid Build Coastguard Worker pThis->Unlock(); 343*48a54d36SAndroid Build Coastguard Worker 344*48a54d36SAndroid Build Coastguard Worker IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); 345*48a54d36SAndroid Build Coastguard Worker 346*48a54d36SAndroid Build Coastguard Worker if (pConnection) 347*48a54d36SAndroid Build Coastguard Worker { 348*48a54d36SAndroid Build Coastguard Worker CComVariant avarParams[2]; 349*48a54d36SAndroid Build Coastguard Worker avarParams[1] = service; 350*48a54d36SAndroid Build Coastguard Worker avarParams[0] = error; 351*48a54d36SAndroid Build Coastguard Worker DISPPARAMS params = { avarParams, NULL, 2, 0 }; 352*48a54d36SAndroid Build Coastguard Worker hr = pConnection->Invoke(11, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); 353*48a54d36SAndroid Build Coastguard Worker } 354*48a54d36SAndroid Build Coastguard Worker } 355*48a54d36SAndroid Build Coastguard Worker return hr; 356*48a54d36SAndroid Build Coastguard Worker } 357*48a54d36SAndroid Build Coastguard Worker }; 358*48a54d36SAndroid Build Coastguard Worker 359