Make GetModuleHandle16 only look for module names, not path names.
[wine.git] / ole / oleobj.c
blobb7bc6b9aafd72e9c1b511d27208a68086aa6dee0
1 /*
2 * OLE2 COM objects
4 * Copyright 1998 Eric Kohl
5 */
8 #include <string.h>
9 #include "winbase.h"
10 #include "winerror.h"
11 #include "oleidl.h"
12 #include "debug.h"
15 /**************************************************************************
16 * IOleAdviseHolder Implementation
18 typedef struct
20 ICOM_VTABLE(IOleAdviseHolder)* lpvtbl;
21 DWORD ref;
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));
60 lpoah->ref = 1;
61 lpoah->lpvtbl = &oahvt;
62 FIXME (ole, "(%p)->()\n", lpoah);
64 return (LPOLEADVISEHOLDER)lpoah;
67 /**************************************************************************
68 * IOleAdviseHolder_QueryInterface
70 static HRESULT WINAPI
71 IOleAdviseHolder_fnQueryInterface (LPOLEADVISEHOLDER iface, REFIID riid, LPVOID *ppvObj)
73 ICOM_THIS(IOleAdviseHolderImpl, iface);
74 char xriid[50];
75 WINE_StringFromCLSID((LPCLSID)riid,xriid);
76 FIXME (ole, "(%p)->(\n\tIID:\t%s)\n", This, xriid);
78 *ppvObj = NULL;
80 if(IsEqualIID(riid, &IID_IUnknown)) {
81 /* IUnknown */
82 *ppvObj = This;
84 else if(IsEqualIID(riid, &IID_IOleAdviseHolder)) {
85 /* IOleAdviseHolder */
86 *ppvObj = (IOleAdviseHolder*) This;
89 if(*ppvObj) {
90 (*(LPOLEADVISEHOLDER*)ppvObj)->lpvtbl->fnAddRef(iface);
91 FIXME (ole, "-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
92 return S_OK;
95 FIXME (ole, "-- Interface: E_NOINTERFACE\n");
96 return E_NOINTERFACE;
99 /******************************************************************************
100 * IOleAdviseHolder_AddRef
102 static ULONG WINAPI
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
113 static ULONG WINAPI
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);
121 return 0;
123 return This->ref;
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);
136 *pdwConnection = 0;
138 return S_OK;
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);
150 return S_OK;
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;
164 return S_OK;
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);
177 return S_OK;
180 /******************************************************************************
181 * IOleAdviseHolder_SendOnSave
183 static HRESULT WINAPI
184 IOleAdviseHolder_fnSendOnSave (LPOLEADVISEHOLDER iface)
186 ICOM_THIS(IOleAdviseHolderImpl, iface);
187 FIXME (ole, "(%p)\n", This);
190 return S_OK;
193 /******************************************************************************
194 * IOleAdviseHolder_SendOnClose
196 static HRESULT WINAPI
197 IOleAdviseHolder_fnSendOnClose (LPOLEADVISEHOLDER iface)
199 ICOM_THIS(IOleAdviseHolderImpl, iface);
200 FIXME (ole, "(%p)\n", This);
203 return S_OK;
206 /***********************************************************************
207 * API functions
210 /***********************************************************************
211 * CreateOleAdviseHolder [OLE32.59]
213 HRESULT WINAPI CreateOleAdviseHolder (LPOLEADVISEHOLDER *ppOAHolder)
215 FIXME(ole,"(%p): stub!\n", ppOAHolder);
217 *ppOAHolder = IOleAdviseHolder_Constructor ();
218 if (*ppOAHolder)
219 return S_OK;
221 *ppOAHolder = 0;
222 return E_OUTOFMEMORY;