- fixed missing stdlib.h and string.h includes everywhere
[wine.git] / ole / oleobj.c
blob361c41217584ac8c63d2d0326e5038579bd758e6
1 /*
2 * OLE2 COM objects
4 * Copyright 1998 Eric Kohl
5 */
8 #include <string.h>
9 #include "ole.h"
10 #include "ole2.h"
11 #include "winerror.h"
12 #include "wine/obj_base.h"
13 #include "wine/obj_storage.h"
14 #include "wine/obj_moniker.h"
15 #include "wine/obj_dataobject.h"
16 #include "oleobj.h"
17 #include "debug.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));
59 lpoah->ref = 1;
60 lpoah->lpvtbl = &oahvt;
61 FIXME (ole, "(%p)->()\n", lpoah);
63 return lpoah;
66 /**************************************************************************
67 * IOleAdviseHolder_QueryInterface
69 static HRESULT WINAPI
70 IOleAdviseHolder_QueryInterface (LPOLEADVISEHOLDER this, REFIID riid, LPVOID *ppvObj)
72 char xriid[50];
73 WINE_StringFromCLSID((LPCLSID)riid,xriid);
74 FIXME (ole, "(%p)->(\n\tIID:\t%s)\n", this, xriid);
76 *ppvObj = NULL;
78 if(IsEqualIID(riid, &IID_IUnknown)) {
79 /* IUnknown */
80 *ppvObj = this;
82 else if(IsEqualIID(riid, &IID_IOleAdviseHolder)) {
83 /* IOleAdviseHolder */
84 *ppvObj = (IOleAdviseHolder*) this;
87 if(*ppvObj) {
88 (*(LPOLEADVISEHOLDER*)ppvObj)->lpvtbl->fnAddRef(this);
89 FIXME (ole, "-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
90 return S_OK;
93 FIXME (ole, "-- Interface: E_NOINTERFACE\n");
94 return E_NOINTERFACE;
97 /******************************************************************************
98 * IOleAdviseHolder_AddRef
100 static ULONG WINAPI
101 IOleAdviseHolder_AddRef (LPOLEADVISEHOLDER this)
103 FIXME (ole, "(%p)->(count=%lu)\n", this, this->ref);
104 return ++(this->ref);
107 /******************************************************************************
108 * IOleAdviseHolder_Release
110 static ULONG WINAPI
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);
117 return 0;
119 return this->ref;
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);
131 *pdwConnection = 0;
133 return S_OK;
136 /******************************************************************************
137 * IOleAdviseHolder_Unadvise
139 static HRESULT WINAPI
140 IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER this, DWORD dwConnection)
142 FIXME (ole, "(%p)->(%lu)\n", this, dwConnection);
144 return S_OK;
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;
157 return S_OK;
160 /******************************************************************************
161 * IOleAdviseHolder_SendOnRename
163 static HRESULT WINAPI
164 IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER this, IMoniker *pmk)
166 FIXME (ole, "(%p)->(%p)\n", this, pmk);
169 return S_OK;
172 /******************************************************************************
173 * IOleAdviseHolder_SendOnSave
175 static HRESULT WINAPI
176 IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER this)
178 FIXME (ole, "(%p)\n", this);
181 return S_OK;
184 /******************************************************************************
185 * IOleAdviseHolder_SendOnClose
187 static HRESULT WINAPI
188 IOleAdviseHolder_SendOnClose (LPOLEADVISEHOLDER this)
190 FIXME (ole, "(%p)\n", this);
193 return S_OK;
196 /***********************************************************************
197 * API functions
200 /***********************************************************************
201 * CreateOleAdviseHolder [OLE32.59]
203 HRESULT WINAPI CreateOleAdviseHolder (LPOLEADVISEHOLDER *ppOAHolder)
205 FIXME(ole,"(%p): stub!\n", ppOAHolder);
207 *ppOAHolder = IOleAdviseHolder_Constructor ();
208 if (*ppOAHolder)
209 return S_OK;
211 *ppOAHolder = 0;
212 return E_OUTOFMEMORY;