4 * Copyright 1998 Eric Kohl
15 /**************************************************************************
16 * IOleAdviseHolder Implementation
20 ICOM_VTABLE(IOleAdviseHolder
)* lpvtbl
;
22 } IOleAdviseHolderImpl
;
24 static HRESULT WINAPI
IOleAdviseHolder_fnQueryInterface(LPOLEADVISEHOLDER
,REFIID
,LPVOID
*);
25 static ULONG WINAPI
IOleAdviseHolder_fnAddRef(LPOLEADVISEHOLDER
);
26 static ULONG WINAPI
IOleAdviseHolder_fnRelease(LPOLEADVISEHOLDER
);
27 static HRESULT WINAPI
IOleAdviseHolder_fnAdvise(LPOLEADVISEHOLDER
, IAdviseSink
*, DWORD
*);
28 static HRESULT WINAPI
IOleAdviseHolder_fnUnadvise (LPOLEADVISEHOLDER
, DWORD
);
29 static HRESULT WINAPI
IOleAdviseHolder_fnEnumAdvise (LPOLEADVISEHOLDER
, IEnumSTATDATA
**);
30 static HRESULT WINAPI
IOleAdviseHolder_fnSendOnRename (LPOLEADVISEHOLDER
, IMoniker
*);
31 static HRESULT WINAPI
IOleAdviseHolder_fnSendOnSave (LPOLEADVISEHOLDER
);
32 static HRESULT WINAPI
IOleAdviseHolder_fnSendOnClose (LPOLEADVISEHOLDER
);
35 /**************************************************************************
36 * IOleAdviseHolder_VTable
38 static struct ICOM_VTABLE(IOleAdviseHolder
) oahvt
=
40 IOleAdviseHolder_fnQueryInterface
,
41 IOleAdviseHolder_fnAddRef
,
42 IOleAdviseHolder_fnRelease
,
43 IOleAdviseHolder_fnAdvise
,
44 IOleAdviseHolder_fnUnadvise
,
45 IOleAdviseHolder_fnEnumAdvise
,
46 IOleAdviseHolder_fnSendOnRename
,
47 IOleAdviseHolder_fnSendOnSave
,
48 IOleAdviseHolder_fnSendOnClose
51 /**************************************************************************
52 * IOleAdviseHolder_Constructor
55 LPOLEADVISEHOLDER
IOleAdviseHolder_Constructor()
57 IOleAdviseHolderImpl
* lpoah
;
59 lpoah
= (IOleAdviseHolderImpl
*)HeapAlloc(GetProcessHeap(),0,sizeof(IOleAdviseHolderImpl
));
61 lpoah
->lpvtbl
= &oahvt
;
62 FIXME (ole
, "(%p)->()\n", lpoah
);
64 return (LPOLEADVISEHOLDER
)lpoah
;
67 /**************************************************************************
68 * IOleAdviseHolder_QueryInterface
71 IOleAdviseHolder_fnQueryInterface (LPOLEADVISEHOLDER iface
, REFIID riid
, LPVOID
*ppvObj
)
73 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
75 WINE_StringFromCLSID((LPCLSID
)riid
,xriid
);
76 FIXME (ole
, "(%p)->(\n\tIID:\t%s)\n", This
, xriid
);
80 if(IsEqualIID(riid
, &IID_IUnknown
)) {
84 else if(IsEqualIID(riid
, &IID_IOleAdviseHolder
)) {
85 /* IOleAdviseHolder */
86 *ppvObj
= (IOleAdviseHolder
*) This
;
90 (*(LPOLEADVISEHOLDER
*)ppvObj
)->lpvtbl
->fnAddRef(iface
);
91 FIXME (ole
, "-- Interface: (%p)->(%p)\n", ppvObj
, *ppvObj
);
95 FIXME (ole
, "-- Interface: E_NOINTERFACE\n");
99 /******************************************************************************
100 * IOleAdviseHolder_AddRef
103 IOleAdviseHolder_fnAddRef (LPOLEADVISEHOLDER iface
)
105 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
106 FIXME (ole
, "(%p)->(count=%lu)\n", This
, This
->ref
);
107 return ++(This
->ref
);
110 /******************************************************************************
111 * IOleAdviseHolder_Release
114 IOleAdviseHolder_fnRelease (LPOLEADVISEHOLDER iface
)
116 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
117 FIXME (ole
, "(%p)->(count=%lu)\n", This
, This
->ref
);
118 if (!--(This
->ref
)) {
119 FIXME (ole
, "-- destroying IOleAdviseHolder(%p)\n", This
);
120 HeapFree(GetProcessHeap(),0,This
);
126 /******************************************************************************
127 * IOleAdviseHolder_Advise
129 static HRESULT WINAPI
130 IOleAdviseHolder_fnAdvise (LPOLEADVISEHOLDER iface
,
131 IAdviseSink
*pAdvise
, DWORD
*pdwConnection
)
133 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
134 FIXME (ole
, "(%p)->(%p %p)\n", This
, pAdvise
, pdwConnection
);
141 /******************************************************************************
142 * IOleAdviseHolder_Unadvise
144 static HRESULT WINAPI
145 IOleAdviseHolder_fnUnadvise (LPOLEADVISEHOLDER iface
, DWORD dwConnection
)
147 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
148 FIXME (ole
, "(%p)->(%lu)\n", This
, dwConnection
);
153 /******************************************************************************
154 * IOleAdviseHolder_EnumAdvise
156 static HRESULT WINAPI
157 IOleAdviseHolder_fnEnumAdvise (LPOLEADVISEHOLDER iface
, IEnumSTATDATA
**ppenumAdvise
)
159 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
160 FIXME (ole
, "(%p)->(%p)\n", This
, ppenumAdvise
);
162 *ppenumAdvise
= NULL
;
167 /******************************************************************************
168 * IOleAdviseHolder_SendOnRename
170 static HRESULT WINAPI
171 IOleAdviseHolder_fnSendOnRename (LPOLEADVISEHOLDER iface
, IMoniker
*pmk
)
173 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
174 FIXME (ole
, "(%p)->(%p)\n", This
, pmk
);
180 /******************************************************************************
181 * IOleAdviseHolder_SendOnSave
183 static HRESULT WINAPI
184 IOleAdviseHolder_fnSendOnSave (LPOLEADVISEHOLDER iface
)
186 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
187 FIXME (ole
, "(%p)\n", This
);
193 /******************************************************************************
194 * IOleAdviseHolder_SendOnClose
196 static HRESULT WINAPI
197 IOleAdviseHolder_fnSendOnClose (LPOLEADVISEHOLDER iface
)
199 ICOM_THIS(IOleAdviseHolderImpl
, iface
);
200 FIXME (ole
, "(%p)\n", This
);
206 /***********************************************************************
210 /***********************************************************************
211 * CreateOleAdviseHolder [OLE32.59]
213 HRESULT WINAPI
CreateOleAdviseHolder (LPOLEADVISEHOLDER
*ppOAHolder
)
215 FIXME(ole
,"(%p): stub!\n", ppOAHolder
);
217 *ppOAHolder
= IOleAdviseHolder_Constructor ();
222 return E_OUTOFMEMORY
;