4 * Copyright 1998 Eric Kohl
12 #include "wine/obj_base.h"
13 #include "wine/obj_storage.h"
14 #include "wine/obj_moniker.h"
15 #include "wine/obj_dataobject.h"
20 /**************************************************************************
21 * IOleAdviseHolder Implementation
23 static HRESULT WINAPI
IOleAdviseHolder_QueryInterface(LPOLEADVISEHOLDER
,REFIID
,LPVOID
*);
24 static ULONG WINAPI
IOleAdviseHolder_AddRef(LPOLEADVISEHOLDER
);
25 static ULONG WINAPI
IOleAdviseHolder_Release(LPOLEADVISEHOLDER
);
26 static HRESULT WINAPI
IOleAdviseHolder_Advise(LPOLEADVISEHOLDER
, IAdviseSink
*, DWORD
*);
27 static HRESULT WINAPI
IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER
, DWORD
);
28 static HRESULT WINAPI
IOleAdviseHolder_EnumAdvise (LPOLEADVISEHOLDER
, IEnumSTATDATA
**);
29 static HRESULT WINAPI
IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER
, IMoniker
*);
30 static HRESULT WINAPI
IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER
this);
31 static HRESULT WINAPI
IOleAdviseHolder_SendOnClose (LPOLEADVISEHOLDER
this);
34 /**************************************************************************
35 * IOleAdviseHolder_VTable
37 static IOleAdviseHolder_VTable oahvt
=
39 IOleAdviseHolder_QueryInterface
,
40 IOleAdviseHolder_AddRef
,
41 IOleAdviseHolder_Release
,
42 IOleAdviseHolder_Advise
,
43 IOleAdviseHolder_Unadvise
,
44 IOleAdviseHolder_EnumAdvise
,
45 IOleAdviseHolder_SendOnRename
,
46 IOleAdviseHolder_SendOnSave
,
47 IOleAdviseHolder_SendOnClose
50 /**************************************************************************
51 * IOleAdviseHolder_Constructor
54 LPOLEADVISEHOLDER
IOleAdviseHolder_Constructor()
56 LPOLEADVISEHOLDER lpoah
;
58 lpoah
= (LPOLEADVISEHOLDER
)HeapAlloc(GetProcessHeap(),0,sizeof(IOleAdviseHolder
));
60 lpoah
->lpvtbl
= &oahvt
;
61 FIXME (ole
, "(%p)->()\n", lpoah
);
66 /**************************************************************************
67 * IOleAdviseHolder_QueryInterface
70 IOleAdviseHolder_QueryInterface (LPOLEADVISEHOLDER
this, REFIID riid
, LPVOID
*ppvObj
)
73 WINE_StringFromCLSID((LPCLSID
)riid
,xriid
);
74 FIXME (ole
, "(%p)->(\n\tIID:\t%s)\n", this, xriid
);
78 if(IsEqualIID(riid
, &IID_IUnknown
)) {
82 else if(IsEqualIID(riid
, &IID_IOleAdviseHolder
)) {
83 /* IOleAdviseHolder */
84 *ppvObj
= (IOleAdviseHolder
*) this;
88 (*(LPOLEADVISEHOLDER
*)ppvObj
)->lpvtbl
->fnAddRef(this);
89 FIXME (ole
, "-- Interface: (%p)->(%p)\n", ppvObj
, *ppvObj
);
93 FIXME (ole
, "-- Interface: E_NOINTERFACE\n");
97 /******************************************************************************
98 * IOleAdviseHolder_AddRef
101 IOleAdviseHolder_AddRef (LPOLEADVISEHOLDER
this)
103 FIXME (ole
, "(%p)->(count=%lu)\n", this, this->ref
);
104 return ++(this->ref
);
107 /******************************************************************************
108 * IOleAdviseHolder_Release
111 IOleAdviseHolder_Release (LPOLEADVISEHOLDER
this)
113 FIXME (ole
, "(%p)->(count=%lu)\n", this, this->ref
);
114 if (!--(this->ref
)) {
115 FIXME (ole
, "-- destroying IOleAdviseHolder(%p)\n", this);
116 HeapFree(GetProcessHeap(),0,this);
122 /******************************************************************************
123 * IOleAdviseHolder_Advise
125 static HRESULT WINAPI
126 IOleAdviseHolder_Advise (LPOLEADVISEHOLDER
this,
127 IAdviseSink
*pAdvise
, DWORD
*pdwConnection
)
129 FIXME (ole
, "(%p)->(%p %p)\n", this, pAdvise
, pdwConnection
);
136 /******************************************************************************
137 * IOleAdviseHolder_Unadvise
139 static HRESULT WINAPI
140 IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER
this, DWORD dwConnection
)
142 FIXME (ole
, "(%p)->(%lu)\n", this, dwConnection
);
147 /******************************************************************************
148 * IOleAdviseHolder_EnumAdvise
150 static HRESULT WINAPI
151 IOleAdviseHolder_EnumAdvise (LPOLEADVISEHOLDER
this, IEnumSTATDATA
**ppenumAdvise
)
153 FIXME (ole
, "(%p)->(%p)\n", this, ppenumAdvise
);
155 *ppenumAdvise
= NULL
;
160 /******************************************************************************
161 * IOleAdviseHolder_SendOnRename
163 static HRESULT WINAPI
164 IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER
this, IMoniker
*pmk
)
166 FIXME (ole
, "(%p)->(%p)\n", this, pmk
);
172 /******************************************************************************
173 * IOleAdviseHolder_SendOnSave
175 static HRESULT WINAPI
176 IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER
this)
178 FIXME (ole
, "(%p)\n", this);
184 /******************************************************************************
185 * IOleAdviseHolder_SendOnClose
187 static HRESULT WINAPI
188 IOleAdviseHolder_SendOnClose (LPOLEADVISEHOLDER
this)
190 FIXME (ole
, "(%p)\n", this);
196 /***********************************************************************
200 /***********************************************************************
201 * CreateOleAdviseHolder [OLE32.59]
203 HRESULT WINAPI
CreateOleAdviseHolder (LPOLEADVISEHOLDER
*ppOAHolder
)
205 FIXME(ole
,"(%p): stub!\n", ppOAHolder
);
207 *ppOAHolder
= IOleAdviseHolder_Constructor ();
212 return E_OUTOFMEMORY
;