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