ReactOS 0.4.16-dev-117-g38f21f9
connpt.c File Reference
#include <assert.h>
#include <stdarg.h>
#include <string.h>
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "ole2.h"
#include "olectl.h"
#include "connpt.h"
#include "wine/debug.h"
Include dependency graph for connpt.c:

Go to the source code of this file.

Classes

struct  ConnectionPointImpl
 
struct  EnumConnectionsImpl
 

Macros

#define COBJMACROS
 
#define MAXSINKS   10
 

Typedefs

typedef struct ConnectionPointImpl ConnectionPointImpl
 
typedef struct EnumConnectionsImpl EnumConnectionsImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ole)
 
static EnumConnectionsImplEnumConnectionsImpl_Construct (IUnknown *pUnk, DWORD nSinks, CONNECTDATA *pCD)
 
static ConnectionPointImplimpl_from_IConnectionPoint (IConnectionPoint *iface)
 
static EnumConnectionsImplimpl_from_IEnumConnections (IEnumConnections *iface)
 
static void ConnectionPointImpl_Destroy (ConnectionPointImpl *Obj)
 
static HRESULT WINAPI ConnectionPointImpl_QueryInterface (IConnectionPoint *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI ConnectionPointImpl_AddRef (IConnectionPoint *iface)
 
static ULONG WINAPI ConnectionPointImpl_Release (IConnectionPoint *iface)
 
static HRESULT WINAPI ConnectionPointImpl_GetConnectionInterface (IConnectionPoint *iface, IID *piid)
 
static HRESULT WINAPI ConnectionPointImpl_GetConnectionPointContainer (IConnectionPoint *iface, IConnectionPointContainer **ppCPC)
 
static HRESULT WINAPI ConnectionPointImpl_Advise (IConnectionPoint *iface, IUnknown *lpUnk, DWORD *pdwCookie)
 
static HRESULT WINAPI ConnectionPointImpl_Unadvise (IConnectionPoint *iface, DWORD dwCookie)
 
static HRESULT WINAPI ConnectionPointImpl_EnumConnections (IConnectionPoint *iface, LPENUMCONNECTIONS *ppEnum)
 
static void EnumConnectionsImpl_Destroy (EnumConnectionsImpl *Obj)
 
static HRESULT WINAPI EnumConnectionsImpl_QueryInterface (IEnumConnections *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI EnumConnectionsImpl_AddRef (IEnumConnections *iface)
 
static ULONG WINAPI EnumConnectionsImpl_Release (IEnumConnections *iface)
 
static HRESULT WINAPI EnumConnectionsImpl_Next (IEnumConnections *iface, ULONG cConn, LPCONNECTDATA pCD, ULONG *pEnum)
 
static HRESULT WINAPI EnumConnectionsImpl_Skip (IEnumConnections *iface, ULONG cSkip)
 
static HRESULT WINAPI EnumConnectionsImpl_Reset (IEnumConnections *iface)
 
static HRESULT WINAPI EnumConnectionsImpl_Clone (IEnumConnections *iface, LPENUMCONNECTIONS *ppEnum)
 
HRESULT CreateConnectionPoint (IUnknown *pUnk, REFIID riid, IConnectionPoint **pCP)
 

Variables

static const IConnectionPointVtbl ConnectionPointImpl_VTable
 
static const IEnumConnectionsVtbl EnumConnectionsImpl_VTable
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 29 of file connpt.c.

◆ MAXSINKS

#define MAXSINKS   10

Definition at line 44 of file connpt.c.

Typedef Documentation

◆ ConnectionPointImpl

◆ EnumConnectionsImpl

Function Documentation

◆ ConnectionPointImpl_AddRef()

static ULONG WINAPI ConnectionPointImpl_AddRef ( IConnectionPoint iface)
static

Definition at line 169 of file connpt.c.

170{
172 ULONG refCount = InterlockedIncrement(&This->ref);
173
174 TRACE("(%p)->(ref before=%d)\n", This, refCount - 1);
175
176 return refCount;
177}
#define InterlockedIncrement
Definition: armddk.h:53
static ConnectionPointImpl * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: connpt.c:94
#define TRACE(s)
Definition: solgame.cpp:4
uint32_t ULONG
Definition: typedefs.h:59

◆ ConnectionPointImpl_Advise()

static HRESULT WINAPI ConnectionPointImpl_Advise ( IConnectionPoint iface,
IUnknown lpUnk,
DWORD pdwCookie 
)
static

Definition at line 232 of file connpt.c.

235{
236 DWORD i;
238 IUnknown *lpSink;
239 TRACE("(%p)->(%p, %p)\n", This, lpUnk, pdwCookie);
240
241 *pdwCookie = 0;
242 if(FAILED(IUnknown_QueryInterface(lpUnk, &This->iid, (void**)&lpSink)))
244
245 for(i = 0; i < This->maxSinks; i++) {
246 if(This->sinks[i] == NULL)
247 break;
248 }
249 if(i == This->maxSinks) {
250 This->maxSinks += MAXSINKS;
252 This->maxSinks * sizeof(IUnknown *));
253 }
254 This->sinks[i] = lpSink;
255 This->nSinks++;
256 *pdwCookie = i + 1;
257 return S_OK;
258}
#define MAXSINKS
Definition: connpt.c:44
#define NULL
Definition: types.h:112
#define GetProcessHeap()
Definition: compat.h:736
#define HeapReAlloc
Definition: compat.h:734
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define CONNECT_E_CANNOTCONNECT
Definition: olectl.h:253

◆ ConnectionPointImpl_Destroy()

static void ConnectionPointImpl_Destroy ( ConnectionPointImpl Obj)
static

Definition at line 107 of file connpt.c.

108{
109 DWORD i;
110 for(i = 0; i < Obj->maxSinks; i++) {
111 if(Obj->sinks[i]) {
112 IUnknown_Release(Obj->sinks[i]);
113 Obj->sinks[i] = NULL;
114 }
115 }
116 HeapFree(GetProcessHeap(), 0, Obj->sinks);
118 return;
119}
#define HeapFree(x, y, z)
Definition: compat.h:735

Referenced by ConnectionPointImpl_Release().

◆ ConnectionPointImpl_EnumConnections()

static HRESULT WINAPI ConnectionPointImpl_EnumConnections ( IConnectionPoint iface,
LPENUMCONNECTIONS *  ppEnum 
)
static

Definition at line 285 of file connpt.c.

288{
290 CONNECTDATA *pCD;
291 DWORD i, nextslot;
292 EnumConnectionsImpl *EnumObj;
293 HRESULT hr;
294
295 TRACE("(%p)->(%p)\n", This, ppEnum);
296
297 *ppEnum = NULL;
298
299 if(This->nSinks == 0) return OLE_E_NOCONNECTION;
300
301 pCD = HeapAlloc(GetProcessHeap(), 0, sizeof(CONNECTDATA) * This->nSinks);
302
303 for(i = 0, nextslot = 0; i < This->maxSinks; i++) {
304 if(This->sinks[i] != NULL) {
305 pCD[nextslot].pUnk = This->sinks[i];
306 pCD[nextslot].dwCookie = i + 1;
307 nextslot++;
308 }
309 }
310 assert(nextslot == This->nSinks);
311
312 /* Bump the ref count of this object up by one. It gets Released in
313 IEnumConnections_Release */
314 IConnectionPoint_AddRef(iface);
315
316 EnumObj = EnumConnectionsImpl_Construct((IUnknown*)iface, This->nSinks, pCD);
317 hr = IEnumConnections_QueryInterface(&EnumObj->IEnumConnections_iface,
318 &IID_IEnumConnections, (void**)ppEnum);
319 IEnumConnections_Release(&EnumObj->IEnumConnections_iface);
320
321 HeapFree(GetProcessHeap(), 0, pCD);
322 return hr;
323}
static EnumConnectionsImpl * EnumConnectionsImpl_Construct(IUnknown *pUnk, DWORD nSinks, CONNECTDATA *pCD)
Definition: connpt.c:343
#define HeapAlloc
Definition: compat.h:733
#define assert(x)
Definition: debug.h:53
const GUID IID_IEnumConnections
HRESULT hr
Definition: shlfolder.c:183
IEnumConnections IEnumConnections_iface
Definition: connpt.c:74
#define OLE_E_NOCONNECTION
Definition: winerror.h:2618

◆ ConnectionPointImpl_GetConnectionInterface()

static HRESULT WINAPI ConnectionPointImpl_GetConnectionInterface ( IConnectionPoint iface,
IID piid 
)
static

Definition at line 204 of file connpt.c.

207{
209 TRACE("(%p)->(%p) returning %s\n", This, piid, debugstr_guid(&(This->iid)));
210 *piid = This->iid;
211 return S_OK;
212}
#define debugstr_guid
Definition: kernel32.h:35

◆ ConnectionPointImpl_GetConnectionPointContainer()

static HRESULT WINAPI ConnectionPointImpl_GetConnectionPointContainer ( IConnectionPoint iface,
IConnectionPointContainer **  ppCPC 
)
static

Definition at line 218 of file connpt.c.

221{
223 TRACE("(%p)->(%p)\n", This, ppCPC);
224
225 return IUnknown_QueryInterface(This->Obj, &IID_IConnectionPointContainer, (void**)ppCPC);
226}
const GUID IID_IConnectionPointContainer

◆ ConnectionPointImpl_QueryInterface()

static HRESULT WINAPI ConnectionPointImpl_QueryInterface ( IConnectionPoint iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 126 of file connpt.c.

130{
132 TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppvObject);
133
134 /*
135 * Perform a sanity check on the parameters.
136 */
137 if (!ppvObject)
138 return E_INVALIDARG;
139
140 /*
141 * Initialize the return parameter.
142 */
143 *ppvObject = 0;
144
145
147 *ppvObject = iface;
148
149 /*
150 * Check that we obtained an interface.
151 */
152 if ((*ppvObject)==0)
153 {
154 FIXME("() : asking for unsupported interface %s\n", debugstr_guid(riid));
155 return E_NOINTERFACE;
156 }
157
158 IUnknown_AddRef((IUnknown*)*ppvObject);
159
160 return S_OK;
161}
#define FIXME(fmt,...)
Definition: precomp.h:53
const GUID IID_IUnknown
#define E_INVALIDARG
Definition: ddrawi.h:101
REFIID riid
Definition: atlbase.h:39
const GUID IID_IConnectionPoint
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ ConnectionPointImpl_Release()

static ULONG WINAPI ConnectionPointImpl_Release ( IConnectionPoint iface)
static

Definition at line 184 of file connpt.c.

186{
188 ULONG refCount = InterlockedDecrement(&This->ref);
189
190 TRACE("(%p)->(ref before=%d)\n", This, refCount + 1);
191
192 /*
193 * If the reference count goes down to 0, perform suicide.
194 */
195 if (!refCount) ConnectionPointImpl_Destroy(This);
196
197 return refCount;
198}
#define InterlockedDecrement
Definition: armddk.h:52
static void ConnectionPointImpl_Destroy(ConnectionPointImpl *Obj)
Definition: connpt.c:107

◆ ConnectionPointImpl_Unadvise()

static HRESULT WINAPI ConnectionPointImpl_Unadvise ( IConnectionPoint iface,
DWORD  dwCookie 
)
static

Definition at line 265 of file connpt.c.

267{
269 TRACE("(%p)->(%d)\n", This, dwCookie);
270
271 if(dwCookie == 0 || dwCookie > This->maxSinks) return E_INVALIDARG;
272
273 if(This->sinks[dwCookie-1] == NULL) return CONNECT_E_NOCONNECTION;
274
275 IUnknown_Release(This->sinks[dwCookie-1]);
276 This->sinks[dwCookie-1] = NULL;
277 This->nSinks--;
278 return S_OK;
279}
#define CONNECT_E_NOCONNECTION
Definition: olectl.h:251

◆ CreateConnectionPoint()

HRESULT CreateConnectionPoint ( IUnknown pUnk,
REFIID  riid,
IConnectionPoint **  pCP 
)

Definition at line 572 of file connpt.c.

574{
576
577 TRACE("(%p %s %p)\n", pUnk, debugstr_guid(riid), pCP);
578
579 *pCP = NULL;
580 Obj = HeapAlloc(GetProcessHeap(), 0, sizeof(*Obj));
581 if (!Obj)
582 return E_OUTOFMEMORY;
583
584 Obj->IConnectionPoint_iface.lpVtbl = &ConnectionPointImpl_VTable;
585 Obj->Obj = pUnk;
586 Obj->ref = 1;
587 Obj->iid = *riid;
588 Obj->maxSinks = MAXSINKS;
590 Obj->nSinks = 0;
591
592 *pCP = &Obj->IConnectionPoint_iface;
593 return S_OK;
594}
Obj()
Definition: swap_test.cpp:67
static const IConnectionPointVtbl ConnectionPointImpl_VTable
Definition: connpt.c:325
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

Referenced by OLEFontImpl_Clone(), OLEFontImpl_Construct(), and OLEPictureImpl_Construct().

◆ EnumConnectionsImpl_AddRef()

static ULONG WINAPI EnumConnectionsImpl_AddRef ( IEnumConnections iface)
static

Definition at line 426 of file connpt.c.

427{
429 ULONG refCount = InterlockedIncrement(&This->ref);
430
431 TRACE("(%p)->(ref before=%d)\n", This, refCount - 1);
432
433 IUnknown_AddRef(This->pUnk);
434 return refCount;
435}
static EnumConnectionsImpl * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: connpt.c:99

◆ EnumConnectionsImpl_Clone()

static HRESULT WINAPI EnumConnectionsImpl_Clone ( IEnumConnections iface,
LPENUMCONNECTIONS *  ppEnum 
)
static

Definition at line 533 of file connpt.c.

535{
537 EnumConnectionsImpl *newObj;
538 TRACE("(%p)->(%p)\n", This, ppEnum);
539
540 newObj = EnumConnectionsImpl_Construct(This->pUnk, This->nConns, This->pCD);
541 newObj->nCur = This->nCur;
542 *ppEnum = &newObj->IEnumConnections_iface;
543 IUnknown_AddRef(This->pUnk);
544 return S_OK;
545}

◆ EnumConnectionsImpl_Construct()

static EnumConnectionsImpl * EnumConnectionsImpl_Construct ( IUnknown pUnk,
DWORD  nSinks,
CONNECTDATA *  pCD 
)
static

Definition at line 343 of file connpt.c.

346{
348 DWORD i;
349
350 Obj->IEnumConnections_iface.lpVtbl = &EnumConnectionsImpl_VTable;
351 Obj->ref = 1;
352 Obj->pUnk = pUnk;
353 Obj->pCD = HeapAlloc(GetProcessHeap(), 0, nSinks * sizeof(CONNECTDATA));
354 Obj->nConns = nSinks;
355 Obj->nCur = 0;
356
357 for(i = 0; i < nSinks; i++) {
358 Obj->pCD[i] = pCD[i];
359 IUnknown_AddRef(Obj->pCD[i].pUnk);
360 }
361 return Obj;
362}
static const IEnumConnectionsVtbl EnumConnectionsImpl_VTable
Definition: connpt.c:338

Referenced by ConnectionPointImpl_EnumConnections(), and EnumConnectionsImpl_Clone().

◆ EnumConnectionsImpl_Destroy()

static void EnumConnectionsImpl_Destroy ( EnumConnectionsImpl Obj)
static

Definition at line 367 of file connpt.c.

368{
369 DWORD i;
370
371 for(i = 0; i < Obj->nConns; i++)
372 IUnknown_Release(Obj->pCD[i].pUnk);
373
374 HeapFree(GetProcessHeap(), 0, Obj->pCD);
376 return;
377}

Referenced by EnumConnectionsImpl_Release().

◆ EnumConnectionsImpl_Next()

static HRESULT WINAPI EnumConnectionsImpl_Next ( IEnumConnections iface,
ULONG  cConn,
LPCONNECTDATA  pCD,
ULONG pEnum 
)
static

Definition at line 463 of file connpt.c.

466{
468 DWORD nRet = 0;
469 TRACE("(%p)->(%d, %p, %p)\n", This, cConn, pCD, pEnum);
470
471 if(pEnum == NULL) {
472 if(cConn != 1)
473 return E_POINTER;
474 } else
475 *pEnum = 0;
476
477 if(This->nCur >= This->nConns)
478 return S_FALSE;
479
480 while(This->nCur < This->nConns && cConn) {
481 *pCD++ = This->pCD[This->nCur];
482 IUnknown_AddRef(This->pCD[This->nCur].pUnk);
483 This->nCur++;
484 cConn--;
485 nRet++;
486 }
487
488 if(pEnum)
489 *pEnum = nRet;
490
491 return S_OK;
492}
#define S_FALSE
Definition: winerror.h:2357
#define E_POINTER
Definition: winerror.h:2365

◆ EnumConnectionsImpl_QueryInterface()

static HRESULT WINAPI EnumConnectionsImpl_QueryInterface ( IEnumConnections iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 384 of file connpt.c.

388{
390 TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppvObject);
391
392 /*
393 * Perform a sanity check on the parameters.
394 */
395 if (!ppvObject)
396 return E_INVALIDARG;
397
398 /*
399 * Initialize the return parameter.
400 */
401 *ppvObject = 0;
402
404 *ppvObject = iface;
405
406 /*
407 * Check that we obtained an interface.
408 */
409 if ((*ppvObject)==0)
410 {
411 FIXME("() : asking for unsupported interface %s\n", debugstr_guid(riid));
412 return E_NOINTERFACE;
413 }
414
415 IUnknown_AddRef((IUnknown*)*ppvObject);
416
417 return S_OK;
418}

◆ EnumConnectionsImpl_Release()

static ULONG WINAPI EnumConnectionsImpl_Release ( IEnumConnections iface)
static

Definition at line 442 of file connpt.c.

443{
445 ULONG refCount = InterlockedDecrement(&This->ref);
446
447 TRACE("(%p)->(ref before=%d)\n", This, refCount + 1);
448
449 IUnknown_Release(This->pUnk);
450
451 /*
452 * If the reference count goes down to 0, perform suicide.
453 */
454 if (!refCount) EnumConnectionsImpl_Destroy(This);
455
456 return refCount;
457}
static void EnumConnectionsImpl_Destroy(EnumConnectionsImpl *Obj)
Definition: connpt.c:367

◆ EnumConnectionsImpl_Reset()

static HRESULT WINAPI EnumConnectionsImpl_Reset ( IEnumConnections iface)
static

Definition at line 518 of file connpt.c.

519{
521 TRACE("(%p)\n", This);
522
523 This->nCur = 0;
524
525 return S_OK;
526}

◆ EnumConnectionsImpl_Skip()

static HRESULT WINAPI EnumConnectionsImpl_Skip ( IEnumConnections iface,
ULONG  cSkip 
)
static

Definition at line 499 of file connpt.c.

501{
503 TRACE("(%p)->(%d)\n", This, cSkip);
504
505 if(This->nCur + cSkip >= This->nConns)
506 return S_FALSE;
507
508 This->nCur += cSkip;
509
510 return S_OK;
511}

◆ impl_from_IConnectionPoint()

◆ impl_from_IEnumConnections()

static EnumConnectionsImpl * impl_from_IEnumConnections ( IEnumConnections iface)
inlinestatic

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ole  )

Variable Documentation

◆ ConnectionPointImpl_VTable

const IConnectionPointVtbl ConnectionPointImpl_VTable
static
Initial value:
=
{
}
static HRESULT WINAPI ConnectionPointImpl_Advise(IConnectionPoint *iface, IUnknown *lpUnk, DWORD *pdwCookie)
Definition: connpt.c:232
static HRESULT WINAPI ConnectionPointImpl_GetConnectionInterface(IConnectionPoint *iface, IID *piid)
Definition: connpt.c:204
static ULONG WINAPI ConnectionPointImpl_AddRef(IConnectionPoint *iface)
Definition: connpt.c:169
static HRESULT WINAPI ConnectionPointImpl_Unadvise(IConnectionPoint *iface, DWORD dwCookie)
Definition: connpt.c:265
static HRESULT WINAPI ConnectionPointImpl_QueryInterface(IConnectionPoint *iface, REFIID riid, void **ppvObject)
Definition: connpt.c:126
static HRESULT WINAPI ConnectionPointImpl_EnumConnections(IConnectionPoint *iface, LPENUMCONNECTIONS *ppEnum)
Definition: connpt.c:285
static ULONG WINAPI ConnectionPointImpl_Release(IConnectionPoint *iface)
Definition: connpt.c:184
static HRESULT WINAPI ConnectionPointImpl_GetConnectionPointContainer(IConnectionPoint *iface, IConnectionPointContainer **ppCPC)
Definition: connpt.c:218

Definition at line 325 of file connpt.c.

Referenced by CreateConnectionPoint().

◆ EnumConnectionsImpl_VTable

static const IEnumConnectionsVtbl EnumConnectionsImpl_VTable
static
Initial value:
=
{
}
static HRESULT WINAPI EnumConnectionsImpl_Reset(IEnumConnections *iface)
Definition: connpt.c:518
static HRESULT WINAPI EnumConnectionsImpl_Skip(IEnumConnections *iface, ULONG cSkip)
Definition: connpt.c:499
static HRESULT WINAPI EnumConnectionsImpl_Next(IEnumConnections *iface, ULONG cConn, LPCONNECTDATA pCD, ULONG *pEnum)
Definition: connpt.c:463
static HRESULT WINAPI EnumConnectionsImpl_Clone(IEnumConnections *iface, LPENUMCONNECTIONS *ppEnum)
Definition: connpt.c:533
static HRESULT WINAPI EnumConnectionsImpl_QueryInterface(IEnumConnections *iface, REFIID riid, void **ppvObject)
Definition: connpt.c:384
static ULONG WINAPI EnumConnectionsImpl_Release(IEnumConnections *iface)
Definition: connpt.c:442
static ULONG WINAPI EnumConnectionsImpl_AddRef(IEnumConnections *iface)
Definition: connpt.c:426

Definition at line 338 of file connpt.c.

Referenced by EnumConnectionsImpl_Construct().