42 *
ppv = &
This->IEnumConnections_iface;
44 *
ppv = &
This->IEnumConnections_iface;
73 IConnectionPoint_Release(&
This->cp->IConnectionPoint_iface);
85 TRACE(
"(%p)->(%d %p %p)\n",
This, cConnections, rgcd, pcFetched);
87 while(fetched < cConnections && This->iter < This->
cp->sinks_size) {
88 if(!
This->cp->sinks[
This->iter].unk) {
93 rgcd[fetched].pUnk =
This->cp->sinks[
This->iter].unk;
94 rgcd[fetched].dwCookie = ++
This->iter;
95 IUnknown_AddRef(rgcd[fetched].
pUnk);
100 *pcFetched = fetched;
107 FIXME(
"(%p)->(%d)\n",
This, cConnections);
148 *
ppv = &
This->IConnectionPoint_iface;
150 *
ppv = &
This->IConnectionPoint_iface;
164 return IConnectionPointContainer_AddRef(&
This->container->IConnectionPointContainer_iface);
170 return IConnectionPointContainer_Release(&
This->container->IConnectionPointContainer_iface);
196 *ppCPC = &
This->container->IConnectionPointContainer_iface;
197 IConnectionPointContainer_AddRef(*ppCPC);
209 TRACE(
"(%p)->(%p %p)\n",
This, pUnkSink, pdwCookie);
211 hres = IUnknown_QueryInterface(pUnkSink,
This->iid, (
void**)&
sink);
218 for(
i=0;
i<
This->sinks_size;
i++) {
219 if(!
This->sinks[
i].unk)
223 if(
i ==
This->sinks_size)
227 This->sinks_size = 1;
235 if(!
i &&
This->data &&
This->data->on_advise)
236 This->data->on_advise(
This->container->outer,
This->data);
246 if(!dwCookie || dwCookie >
This->sinks_size || !
This->sinks[dwCookie-1].unk)
249 IUnknown_Release(
This->sinks[dwCookie-1].unk);
271 IConnectionPoint_AddRef(&
This->IConnectionPoint_iface);
274 *ppEnum = &
ret->IEnumConnections_iface;
304 for(
i=0;
i<
This->sinks_size;
i++) {
305 if(
This->sinks[
i].unk)
306 IUnknown_Release(
This->sinks[
i].unk);
351 for(
i=0;
i<
cp->sinks_size;
i++) {
352 if(
cp->sinks[
i].propnotif)
353 IPropertyNotifySink_OnChanged(
cp->sinks[
i].propnotif, dispid);
366 return IUnknown_QueryInterface(
This->outer,
riid,
ppv);
372 return IUnknown_AddRef(
This->outer);
378 return IUnknown_Release(
This->outer);
397 if(
This->forward_container)
398 return IConnectionPointContainer_FindConnectionPoint(&
This->forward_container->IConnectionPointContainer_iface,
408 *ppCP = &
cp->IConnectionPoint_iface;
409 IConnectionPoint_AddRef(*ppCP);
424 This->cp_entries = cp_entries;
437 for(
i=0;
This->cp_entries[
i].riid;
i++)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#define InterlockedIncrement
#define InterlockedDecrement
static HRESULT WINAPI EnumConnections_Skip(IEnumConnections *iface, ULONG cConnections)
static ConnectionPoint * impl_from_IConnectionPoint(IConnectionPoint *iface)
static HRESULT WINAPI ConnectionPoint_Advise(IConnectionPoint *iface, IUnknown *pUnkSink, DWORD *pdwCookie)
static ULONG WINAPI EnumConnections_Release(IEnumConnections *iface)
static EnumConnections * impl_from_IEnumConnections(IEnumConnections *iface)
static void ConnectionPoint_Destroy(ConnectionPoint *This)
static ULONG WINAPI EnumConnections_AddRef(IEnumConnections *iface)
static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPointContainer *iface, REFIID riid, IConnectionPoint **ppCP)
static void ConnectionPoint_Init(ConnectionPoint *cp, ConnectionPointContainer *container, REFIID riid, cp_static_data_t *data)
void ConnectionPointContainer_Destroy(ConnectionPointContainer *This)
static ConnectionPointContainer * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
static HRESULT WINAPI ConnectionPoint_GetConnectionInterface(IConnectionPoint *iface, IID *pIID)
static HRESULT WINAPI ConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface, REFIID riid, void **ppv)
static HRESULT WINAPI ConnectionPointContainer_EnumConnectionPoints(IConnectionPointContainer *iface, IEnumConnectionPoints **ppEnum)
static HRESULT WINAPI EnumConnections_QueryInterface(IEnumConnections *iface, REFIID riid, void **ppv)
static const IConnectionPointVtbl ConnectionPointVtbl
static HRESULT WINAPI ConnectionPoint_QueryInterface(IConnectionPoint *iface, REFIID riid, LPVOID *ppv)
static HRESULT WINAPI EnumConnections_Reset(IEnumConnections *iface)
static HRESULT WINAPI ConnectionPoint_Unadvise(IConnectionPoint *iface, DWORD dwCookie)
static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl
static ULONG WINAPI ConnectionPointContainer_AddRef(IConnectionPointContainer *iface)
static const IEnumConnectionsVtbl EnumConnectionsVtbl
void ConnectionPointContainer_Init(ConnectionPointContainer *This, IUnknown *outer, const cpc_entry_t *cp_entries)
static ConnectionPoint * get_cp(ConnectionPointContainer *container, REFIID riid, BOOL do_create)
static HRESULT WINAPI ConnectionPoint_GetConnectionPointContainer(IConnectionPoint *iface, IConnectionPointContainer **ppCPC)
void call_property_onchanged(ConnectionPointContainer *container, DISPID dispid)
static HRESULT WINAPI EnumConnections_Next(IEnumConnections *iface, ULONG cConnections, CONNECTDATA *rgcd, ULONG *pcFetched)
static HRESULT WINAPI ConnectionPoint_EnumConnections(IConnectionPoint *iface, IEnumConnections **ppEnum)
static ULONG WINAPI ConnectionPoint_AddRef(IConnectionPoint *iface)
static ULONG WINAPI ConnectionPointContainer_Release(IConnectionPointContainer *iface)
static HRESULT WINAPI EnumConnections_Clone(IEnumConnections *iface, IEnumConnections **ppEnum)
static ULONG WINAPI ConnectionPoint_Release(IConnectionPoint *iface)
const char * debugstr_mshtml_guid(const GUID *iid)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum GLboolean sink
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
static VARIANTARG static DISPID
#define CONNECT_E_CANNOTCONNECT
#define CONNECT_E_NOCONNECTION
const GUID IID_IEnumConnections
const GUID IID_IConnectionPoint
const GUID IID_IPropertyNotifySink
#define IsEqualGUID(rguid1, rguid2)
#define CONTAINING_RECORD(address, type, field)