ReactOS  0.4.14-dev-55-g2da92ac
conpoint.c File Reference
#include "mshtml_private.h"
Include dependency graph for conpoint.c:

Go to the source code of this file.

Classes

struct  EnumConnections
 

Functions

static EnumConnectionsimpl_from_IEnumConnections (IEnumConnections *iface)
 
static HRESULT WINAPI EnumConnections_QueryInterface (IEnumConnections *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI EnumConnections_AddRef (IEnumConnections *iface)
 
static ULONG WINAPI EnumConnections_Release (IEnumConnections *iface)
 
static HRESULT WINAPI EnumConnections_Next (IEnumConnections *iface, ULONG cConnections, CONNECTDATA *rgcd, ULONG *pcFetched)
 
static HRESULT WINAPI EnumConnections_Skip (IEnumConnections *iface, ULONG cConnections)
 
static HRESULT WINAPI EnumConnections_Reset (IEnumConnections *iface)
 
static HRESULT WINAPI EnumConnections_Clone (IEnumConnections *iface, IEnumConnections **ppEnum)
 
static ConnectionPointimpl_from_IConnectionPoint (IConnectionPoint *iface)
 
static HRESULT WINAPI ConnectionPoint_QueryInterface (IConnectionPoint *iface, REFIID riid, LPVOID *ppv)
 
static ULONG WINAPI ConnectionPoint_AddRef (IConnectionPoint *iface)
 
static ULONG WINAPI ConnectionPoint_Release (IConnectionPoint *iface)
 
static HRESULT WINAPI ConnectionPoint_GetConnectionInterface (IConnectionPoint *iface, IID *pIID)
 
static HRESULT WINAPI ConnectionPoint_GetConnectionPointContainer (IConnectionPoint *iface, IConnectionPointContainer **ppCPC)
 
static HRESULT WINAPI ConnectionPoint_Advise (IConnectionPoint *iface, IUnknown *pUnkSink, DWORD *pdwCookie)
 
static HRESULT WINAPI ConnectionPoint_Unadvise (IConnectionPoint *iface, DWORD dwCookie)
 
static HRESULT WINAPI ConnectionPoint_EnumConnections (IConnectionPoint *iface, IEnumConnections **ppEnum)
 
static void ConnectionPoint_Init (ConnectionPoint *cp, ConnectionPointContainer *container, REFIID riid, cp_static_data_t *data)
 
static void ConnectionPoint_Destroy (ConnectionPoint *This)
 
static ConnectionPointget_cp (ConnectionPointContainer *container, REFIID riid, BOOL do_create)
 
void call_property_onchanged (ConnectionPointContainer *container, DISPID dispid)
 
static ConnectionPointContainerimpl_from_IConnectionPointContainer (IConnectionPointContainer *iface)
 
static HRESULT WINAPI ConnectionPointContainer_QueryInterface (IConnectionPointContainer *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ConnectionPointContainer_AddRef (IConnectionPointContainer *iface)
 
static ULONG WINAPI ConnectionPointContainer_Release (IConnectionPointContainer *iface)
 
static HRESULT WINAPI ConnectionPointContainer_EnumConnectionPoints (IConnectionPointContainer *iface, IEnumConnectionPoints **ppEnum)
 
static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint (IConnectionPointContainer *iface, REFIID riid, IConnectionPoint **ppCP)
 
void ConnectionPointContainer_Init (ConnectionPointContainer *This, IUnknown *outer, const cpc_entry_t *cp_entries)
 
void ConnectionPointContainer_Destroy (ConnectionPointContainer *This)
 

Variables

static const IEnumConnectionsVtbl EnumConnectionsVtbl
 
static const IConnectionPointVtbl ConnectionPointVtbl
 
static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl
 

Function Documentation

◆ call_property_onchanged()

void call_property_onchanged ( ConnectionPointContainer container,
DISPID  dispid 
)

Definition at line 342 of file conpoint.c.

343 {
345  DWORD i;
346 
348  if(!cp)
349  return;
350 
351  for(i=0; i<cp->sinks_size; i++) {
352  if(cp->sinks[i].propnotif)
353  IPropertyNotifySink_OnChanged(cp->sinks[i].propnotif, dispid);
354  }
355 }
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
static ConnectionPoint * get_cp(ConnectionPointContainer *container, REFIID riid, BOOL do_create)
Definition: conpoint.c:312
unsigned long DWORD
Definition: ntddk_ex.h:95
const GUID IID_IPropertyNotifySink
POINT cp
Definition: magnifier.c:59

Referenced by HTMLDocument_put_designMode(), notif_readystate(), and parse_complete().

◆ ConnectionPoint_AddRef()

static ULONG WINAPI ConnectionPoint_AddRef ( IConnectionPoint iface)
static

Definition at line 161 of file conpoint.c.

162 {
164  return IConnectionPointContainer_AddRef(&This->container->IConnectionPointContainer_iface);
165 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135

◆ ConnectionPoint_Advise()

static HRESULT WINAPI ConnectionPoint_Advise ( IConnectionPoint iface,
IUnknown pUnkSink,
DWORD pdwCookie 
)
static

Definition at line 201 of file conpoint.c.

203 {
205  IUnknown *sink;
206  DWORD i;
207  HRESULT hres;
208 
209  TRACE("(%p)->(%p %p)\n", This, pUnkSink, pdwCookie);
210 
211  hres = IUnknown_QueryInterface(pUnkSink, This->iid, (void**)&sink);
213  hres = IUnknown_QueryInterface(pUnkSink, &IID_IDispatch, (void**)&sink);
214  if(FAILED(hres))
216 
217  if(This->sinks) {
218  for(i=0; i<This->sinks_size; i++) {
219  if(!This->sinks[i].unk)
220  break;
221  }
222 
223  if(i == This->sinks_size)
224  This->sinks = heap_realloc(This->sinks,(++This->sinks_size)*sizeof(*This->sinks));
225  }else {
226  This->sinks = heap_alloc(sizeof(*This->sinks));
227  This->sinks_size = 1;
228  i = 0;
229  }
230 
231  This->sinks[i].unk = sink;
232  if(pdwCookie)
233  *pdwCookie = i+1;
234 
235  if(!i && This->data && This->data->on_advise)
236  This->data->on_advise(This->container->outer, This->data);
237 
238  return S_OK;
239 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
#define CONNECT_E_CANNOTCONNECT
Definition: olectl.h:253
static void * heap_realloc(void *mem, size_t len)
Definition: appwiz.h:70
GLsizei GLenum GLboolean sink
Definition: glext.h:5672
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
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 TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
const GUID IID_IDispatch
#define S_OK
Definition: intsafe.h:59
const GUID IID_IPropertyNotifySink
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

◆ ConnectionPoint_Destroy()

static void ConnectionPoint_Destroy ( ConnectionPoint This)
static

Definition at line 300 of file conpoint.c.

301 {
302  DWORD i;
303 
304  for(i=0; i<This->sinks_size; i++) {
305  if(This->sinks[i].unk)
306  IUnknown_Release(This->sinks[i].unk);
307  }
308 
309  heap_free(This->sinks);
310 }
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
unsigned long DWORD
Definition: ntddk_ex.h:95
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by ConnectionPointContainer_Destroy().

◆ ConnectionPoint_EnumConnections()

static HRESULT WINAPI ConnectionPoint_EnumConnections ( IConnectionPoint iface,
IEnumConnections **  ppEnum 
)
static

Definition at line 255 of file conpoint.c.

257 {
260 
261  TRACE("(%p)->(%p)\n", This, ppEnum);
262 
263  ret = heap_alloc(sizeof(*ret));
264  if(!ret)
265  return E_OUTOFMEMORY;
266 
267  ret->IEnumConnections_iface.lpVtbl = &EnumConnectionsVtbl;
268  ret->ref = 1;
269  ret->iter = 0;
270 
271  IConnectionPoint_AddRef(&This->IConnectionPoint_iface);
272  ret->cp = This;
273 
274  *ppEnum = &ret->IEnumConnections_iface;
275  return S_OK;
276 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
static const IEnumConnectionsVtbl EnumConnectionsVtbl
Definition: conpoint.c:125
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define S_OK
Definition: intsafe.h:59

◆ ConnectionPoint_GetConnectionInterface()

static HRESULT WINAPI ConnectionPoint_GetConnectionInterface ( IConnectionPoint iface,
IID pIID 
)
static

Definition at line 173 of file conpoint.c.

174 {
176 
177  TRACE("(%p)->(%p)\n", This, pIID);
178 
179  if(!pIID)
180  return E_POINTER;
181 
182  *pIID = *This->iid;
183  return S_OK;
184 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ ConnectionPoint_GetConnectionPointContainer()

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

Definition at line 186 of file conpoint.c.

188 {
190 
191  TRACE("(%p)->(%p)\n", This, ppCPC);
192 
193  if(!ppCPC)
194  return E_POINTER;
195 
196  *ppCPC = &This->container->IConnectionPointContainer_iface;
197  IConnectionPointContainer_AddRef(*ppCPC);
198  return S_OK;
199 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ ConnectionPoint_Init()

static void ConnectionPoint_Init ( ConnectionPoint cp,
ConnectionPointContainer container,
REFIID  riid,
cp_static_data_t data 
)
static

Definition at line 290 of file conpoint.c.

291 {
292  cp->IConnectionPoint_iface.lpVtbl = &ConnectionPointVtbl;
293  cp->container = container;
294  cp->sinks = NULL;
295  cp->sinks_size = 0;
296  cp->iid = riid;
297  cp->data = data;
298 }
static const IConnectionPointVtbl ConnectionPointVtbl
Definition: conpoint.c:278
REFIID riid
Definition: precomp.h:44
struct container container
smooth NULL
Definition: ftsmooth.c:416
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
POINT cp
Definition: magnifier.c:59

Referenced by get_cp().

◆ ConnectionPoint_QueryInterface()

static HRESULT WINAPI ConnectionPoint_QueryInterface ( IConnectionPoint iface,
REFIID  riid,
LPVOID ppv 
)
static

Definition at line 140 of file conpoint.c.

142 {
144 
145  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
146 
147  if(IsEqualGUID(&IID_IUnknown, riid)) {
148  *ppv = &This->IConnectionPoint_iface;
149  }else if(IsEqualGUID(&IID_IConnectionPoint, riid)) {
150  *ppv = &This->IConnectionPoint_iface;
151  }else {
152  *ppv = NULL;
153  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
154  return E_NOINTERFACE;
155  }
156 
157  IUnknown_AddRef((IUnknown*)*ppv);
158  return S_OK;
159 }
#define E_NOINTERFACE
Definition: winerror.h:2364
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:111
REFIID LPVOID * ppv
Definition: atlbase.h:39
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:535
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
const GUID IID_IConnectionPoint
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

◆ ConnectionPoint_Release()

static ULONG WINAPI ConnectionPoint_Release ( IConnectionPoint iface)
static

Definition at line 167 of file conpoint.c.

168 {
170  return IConnectionPointContainer_Release(&This->container->IConnectionPointContainer_iface);
171 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135

◆ ConnectionPoint_Unadvise()

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

Definition at line 241 of file conpoint.c.

242 {
244  TRACE("(%p)->(%d)\n", This, dwCookie);
245 
246  if(!dwCookie || dwCookie > This->sinks_size || !This->sinks[dwCookie-1].unk)
247  return CONNECT_E_NOCONNECTION;
248 
249  IUnknown_Release(This->sinks[dwCookie-1].unk);
250  This->sinks[dwCookie-1].unk = NULL;
251 
252  return S_OK;
253 }
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: conpoint.c:135
#define CONNECT_E_NOCONNECTION
Definition: olectl.h:251
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59

◆ ConnectionPointContainer_AddRef()

static ULONG WINAPI ConnectionPointContainer_AddRef ( IConnectionPointContainer iface)
static

Definition at line 369 of file conpoint.c.

370 {
372  return IUnknown_AddRef(This->outer);
373 }
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: conpoint.c:357

◆ ConnectionPointContainer_Destroy()

void ConnectionPointContainer_Destroy ( ConnectionPointContainer This)

Definition at line 430 of file conpoint.c.

431 {
432  unsigned i;
433 
434  if(!This->cps)
435  return;
436 
437  for(i=0; This->cp_entries[i].riid; i++)
439  heap_free(This->cps);
440 }
static void ConnectionPoint_Destroy(ConnectionPoint *This)
Definition: conpoint.c:300
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
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

◆ ConnectionPointContainer_EnumConnectionPoints()

static HRESULT WINAPI ConnectionPointContainer_EnumConnectionPoints ( IConnectionPointContainer iface,
IEnumConnectionPoints **  ppEnum 
)
static

Definition at line 381 of file conpoint.c.

383 {
385  FIXME("(%p)->(%p)\n", This, ppEnum);
386  return E_NOTIMPL;
387 }
#define FIXME(fmt,...)
Definition: debug.h:110
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: conpoint.c:357
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ConnectionPointContainer_FindConnectionPoint()

static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint ( IConnectionPointContainer iface,
REFIID  riid,
IConnectionPoint **  ppCP 
)
static

Definition at line 389 of file conpoint.c.

391 {
394 
395  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppCP);
396 
397  if(This->forward_container)
398  return IConnectionPointContainer_FindConnectionPoint(&This->forward_container->IConnectionPointContainer_iface,
399  riid, ppCP);
400 
401  cp = get_cp(This, riid, TRUE);
402  if(!cp) {
403  FIXME("unsupported riid %s\n", debugstr_mshtml_guid(riid));
404  *ppCP = NULL;
405  return CONNECT_E_NOCONNECTION;
406  }
407 
408  *ppCP = &cp->IConnectionPoint_iface;
409  IConnectionPoint_AddRef(*ppCP);
410  return S_OK;
411 }
#define TRUE
Definition: types.h:120
REFIID riid
Definition: precomp.h:44
#define CONNECT_E_NOCONNECTION
Definition: olectl.h:251
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:535
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
static ConnectionPoint * get_cp(ConnectionPointContainer *container, REFIID riid, BOOL do_create)
Definition: conpoint.c:312
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: conpoint.c:357
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
POINT cp
Definition: magnifier.c:59

◆ ConnectionPointContainer_Init()

void ConnectionPointContainer_Init ( ConnectionPointContainer This,
IUnknown outer,
const cpc_entry_t cp_entries 
)

Definition at line 421 of file conpoint.c.

422 {
423  This->IConnectionPointContainer_iface.lpVtbl = &ConnectionPointContainerVtbl;
424  This->cp_entries = cp_entries;
425  This->cps = NULL;
426  This->outer = outer;
427  This->forward_container = NULL;
428 }
smooth NULL
Definition: ftsmooth.c:416
static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl
Definition: conpoint.c:413

◆ ConnectionPointContainer_QueryInterface()

static HRESULT WINAPI ConnectionPointContainer_QueryInterface ( IConnectionPointContainer iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 362 of file conpoint.c.

364 {
366  return IUnknown_QueryInterface(This->outer, riid, ppv);
367 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: conpoint.c:357

◆ ConnectionPointContainer_Release()

static ULONG WINAPI ConnectionPointContainer_Release ( IConnectionPointContainer iface)
static

Definition at line 375 of file conpoint.c.

376 {
378  return IUnknown_Release(This->outer);
379 }
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: conpoint.c:357

◆ EnumConnections_AddRef()

static ULONG WINAPI EnumConnections_AddRef ( IEnumConnections iface)
static

Definition at line 55 of file conpoint.c.

56 {
59 
60  TRACE("(%p) ref=%d\n", This, ref);
61 
62  return ref;
63 }
Definition: send.c:47
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1

◆ EnumConnections_Clone()

static HRESULT WINAPI EnumConnections_Clone ( IEnumConnections iface,
IEnumConnections **  ppEnum 
)
static

Definition at line 118 of file conpoint.c.

119 {
121  FIXME("(%p)->(%p)\n", This, ppEnum);
122  return E_NOTIMPL;
123 }
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ EnumConnections_Next()

static HRESULT WINAPI EnumConnections_Next ( IEnumConnections iface,
ULONG  cConnections,
CONNECTDATA *  rgcd,
ULONG pcFetched 
)
static

Definition at line 80 of file conpoint.c.

81 {
83  ULONG fetched = 0;
84 
85  TRACE("(%p)->(%d %p %p)\n", This, cConnections, rgcd, pcFetched);
86 
87  while(fetched < cConnections && This->iter < This->cp->sinks_size) {
88  if(!This->cp->sinks[This->iter].unk) {
89  This->iter++;
90  continue;
91  }
92 
93  rgcd[fetched].pUnk = This->cp->sinks[This->iter].unk;
94  rgcd[fetched].dwCookie = ++This->iter;
95  IUnknown_AddRef(rgcd[fetched].pUnk);
96  fetched++;
97  }
98 
99  if(pcFetched)
100  *pcFetched = fetched;
101  return fetched == cConnections ? S_OK : S_FALSE;
102 }
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
#define S_FALSE
Definition: winerror.h:2357
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
POINT cp
Definition: magnifier.c:59
unsigned int ULONG
Definition: retypes.h:1
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

◆ EnumConnections_QueryInterface()

static HRESULT WINAPI EnumConnections_QueryInterface ( IEnumConnections iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 35 of file conpoint.c.

36 {
38 
39  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
40 
42  *ppv = &This->IEnumConnections_iface;
44  *ppv = &This->IEnumConnections_iface;
45  }else {
46  WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
47  *ppv = NULL;
48  return E_NOINTERFACE;
49  }
50 
51  IUnknown_AddRef((IUnknown*)*ppv);
52  return S_OK;
53 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:111
REFIID LPVOID * ppv
Definition: atlbase.h:39
const GUID IID_IEnumConnections
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:535
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

◆ EnumConnections_Release()

static ULONG WINAPI EnumConnections_Release ( IEnumConnections iface)
static

Definition at line 65 of file conpoint.c.

66 {
69 
70  TRACE("(%p) ref=%d\n", This, ref);
71 
72  if(!ref) {
73  IConnectionPoint_Release(&This->cp->IConnectionPoint_iface);
74  heap_free(This);
75  }
76 
77  return ref;
78 }
Definition: send.c:47
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
#define InterlockedDecrement
Definition: armddk.h:52
unsigned int ULONG
Definition: retypes.h:1
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

◆ EnumConnections_Reset()

static HRESULT WINAPI EnumConnections_Reset ( IEnumConnections iface)
static

Definition at line 111 of file conpoint.c.

112 {
114  FIXME("(%p)\n", This);
115  return E_NOTIMPL;
116 }
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ EnumConnections_Skip()

static HRESULT WINAPI EnumConnections_Skip ( IEnumConnections iface,
ULONG  cConnections 
)
static

Definition at line 104 of file conpoint.c.

105 {
107  FIXME("(%p)->(%d)\n", This, cConnections);
108  return E_NOTIMPL;
109 }
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: conpoint.c:30
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ get_cp()

static ConnectionPoint* get_cp ( ConnectionPointContainer container,
REFIID  riid,
BOOL  do_create 
)
static

Definition at line 312 of file conpoint.c.

313 {
314  const cpc_entry_t *iter;
315  unsigned idx, i;
316 
317  for(iter = container->cp_entries; iter->riid; iter++) {
318  if(IsEqualGUID(iter->riid, riid))
319  break;
320  }
321  if(!iter->riid)
322  return NULL;
323  idx = iter - container->cp_entries;
324 
325  if(!container->cps) {
326  if(!do_create)
327  return NULL;
328 
329  while(iter->riid)
330  iter++;
331  container->cps = heap_alloc((iter - container->cp_entries) * sizeof(*container->cps));
332  if(!container->cps)
333  return NULL;
334 
335  for(i=0; container->cp_entries[i].riid; i++)
336  ConnectionPoint_Init(container->cps+i, container, container->cp_entries[i].riid, container->cp_entries[i].desc);
337  }
338 
339  return container->cps+idx;
340 }
const IID * riid
REFIID riid
Definition: precomp.h:44
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
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
static void ConnectionPoint_Init(ConnectionPoint *cp, ConnectionPointContainer *container, REFIID riid, cp_static_data_t *data)
Definition: conpoint.c:290
unsigned int idx
Definition: utils.c:41
smooth NULL
Definition: ftsmooth.c:416
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

Referenced by call_property_onchanged(), and ConnectionPointContainer_FindConnectionPoint().

◆ impl_from_IConnectionPoint()

static ConnectionPoint* impl_from_IConnectionPoint ( IConnectionPoint iface)
inlinestatic

Definition at line 135 of file conpoint.c.

136 {
137  return CONTAINING_RECORD(iface, ConnectionPoint, IConnectionPoint_iface);
138 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by ConnectionPoint_AddRef(), ConnectionPoint_Advise(), ConnectionPoint_EnumConnections(), ConnectionPoint_GetConnectionInterface(), ConnectionPoint_GetConnectionPointContainer(), ConnectionPoint_QueryInterface(), ConnectionPoint_Release(), and ConnectionPoint_Unadvise().

◆ impl_from_IConnectionPointContainer()

static ConnectionPointContainer* impl_from_IConnectionPointContainer ( IConnectionPointContainer iface)
inlinestatic

Definition at line 357 of file conpoint.c.

358 {
359  return CONTAINING_RECORD(iface, ConnectionPointContainer, IConnectionPointContainer_iface);
360 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by ConnectionPointContainer_AddRef(), ConnectionPointContainer_EnumConnectionPoints(), ConnectionPointContainer_FindConnectionPoint(), ConnectionPointContainer_QueryInterface(), and ConnectionPointContainer_Release().

◆ impl_from_IEnumConnections()

static EnumConnections* impl_from_IEnumConnections ( IEnumConnections iface)
inlinestatic

Definition at line 30 of file conpoint.c.

31 {
32  return CONTAINING_RECORD(iface, EnumConnections, IEnumConnections_iface);
33 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by EnumConnections_AddRef(), EnumConnections_Clone(), EnumConnections_Next(), EnumConnections_QueryInterface(), EnumConnections_Release(), EnumConnections_Reset(), and EnumConnections_Skip().

Variable Documentation

◆ ConnectionPointContainerVtbl

const IConnectionPointContainerVtbl ConnectionPointContainerVtbl
static
Initial value:
= {
}
static HRESULT WINAPI ConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface, REFIID riid, void **ppv)
Definition: conpoint.c:362
static HRESULT WINAPI ConnectionPointContainer_EnumConnectionPoints(IConnectionPointContainer *iface, IEnumConnectionPoints **ppEnum)
Definition: conpoint.c:381
static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPointContainer *iface, REFIID riid, IConnectionPoint **ppCP)
Definition: conpoint.c:389
static ULONG WINAPI ConnectionPointContainer_AddRef(IConnectionPointContainer *iface)
Definition: conpoint.c:369
static ULONG WINAPI ConnectionPointContainer_Release(IConnectionPointContainer *iface)
Definition: conpoint.c:375

Definition at line 413 of file conpoint.c.

Referenced by ConnectionPointContainer_Init().

◆ ConnectionPointVtbl

const IConnectionPointVtbl ConnectionPointVtbl
static
Initial value:
=
{
}
static HRESULT WINAPI ConnectionPoint_GetConnectionPointContainer(IConnectionPoint *iface, IConnectionPointContainer **ppCPC)
Definition: conpoint.c:186
static ULONG WINAPI ConnectionPoint_AddRef(IConnectionPoint *iface)
Definition: conpoint.c:161
static HRESULT WINAPI ConnectionPoint_QueryInterface(IConnectionPoint *iface, REFIID riid, LPVOID *ppv)
Definition: conpoint.c:140
static HRESULT WINAPI ConnectionPoint_Advise(IConnectionPoint *iface, IUnknown *pUnkSink, DWORD *pdwCookie)
Definition: conpoint.c:201
static HRESULT WINAPI ConnectionPoint_Unadvise(IConnectionPoint *iface, DWORD dwCookie)
Definition: conpoint.c:241
static HRESULT WINAPI ConnectionPoint_EnumConnections(IConnectionPoint *iface, IEnumConnections **ppEnum)
Definition: conpoint.c:255
static HRESULT WINAPI ConnectionPoint_GetConnectionInterface(IConnectionPoint *iface, IID *pIID)
Definition: conpoint.c:173
static ULONG WINAPI ConnectionPoint_Release(IConnectionPoint *iface)
Definition: conpoint.c:167

Definition at line 278 of file conpoint.c.

Referenced by ConnectionPoint_Init().

◆ EnumConnectionsVtbl

const IEnumConnectionsVtbl EnumConnectionsVtbl
static
Initial value:
= {
}
static HRESULT WINAPI EnumConnections_QueryInterface(IEnumConnections *iface, REFIID riid, void **ppv)
Definition: conpoint.c:35
static HRESULT WINAPI EnumConnections_Reset(IEnumConnections *iface)
Definition: conpoint.c:111
static HRESULT WINAPI EnumConnections_Skip(IEnumConnections *iface, ULONG cConnections)
Definition: conpoint.c:104
static ULONG WINAPI EnumConnections_AddRef(IEnumConnections *iface)
Definition: conpoint.c:55
static HRESULT WINAPI EnumConnections_Next(IEnumConnections *iface, ULONG cConnections, CONNECTDATA *rgcd, ULONG *pcFetched)
Definition: conpoint.c:80
static ULONG WINAPI EnumConnections_Release(IEnumConnections *iface)
Definition: conpoint.c:65
static HRESULT WINAPI EnumConnections_Clone(IEnumConnections *iface, IEnumConnections **ppEnum)
Definition: conpoint.c:118

Definition at line 125 of file conpoint.c.

Referenced by ConnectionPoint_EnumConnections().