Updated.
[wine] / dlls / ole32 / ole2stubs.c
1 /*
2  * Temporary place for ole2 stubs.
3  *
4  * Copyright (C) 1999 Corel Corporation
5  * Move these functions to dlls/ole32/ole2impl.c when you implement them.
6  */
7
8 #include "windef.h"
9 #include "winbase.h"
10 #include "wingdi.h"
11 #include "winuser.h"
12 #include "ole2.h"
13 #include "debugtools.h"
14
15 DEFAULT_DEBUG_CHANNEL(ole);
16
17 /******************************************************************************
18  *               OleCreateLinkToFile        [OLE32.96]
19  */
20 HRESULT WINAPI  OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid,
21                         DWORD renderopt, LPFORMATETC lpFormatEtc,
22                         LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
23 {
24     FIXME("(%p,%p,%li,%p,%p,%p,%p), stub!\n",lpszFileName, riid, renderopt, lpFormatEtc, pClientSite, pStg, ppvObj);
25     return S_OK;
26 }
27
28
29 /******************************************************************************
30  *              OleDuplicateData        [OLE32.102]
31  */
32 HRESULT WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat,
33                                   UINT uiFlags)
34 {
35     FIXME("(%x,%x,%x), stub!\n", hSrc, cfFormat, uiFlags);
36     return S_OK;
37 }
38
39  
40 /***********************************************************************
41  *               WriteFmtUserTypeStg (OLE32.160)
42  */
43 HRESULT WINAPI WriteFmtUserTypeStg(
44           LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
45 {
46     FIXME("(%p,%x,%s) stub!\n",pstg,cf,debugstr_w(lpszUserType));
47     return S_OK;
48 }
49
50 /***********************************************************************
51  *             OleTranslateAccelerator [OLE32.130]
52  */
53 HRESULT WINAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
54                    LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg)
55 {
56     FIXME("(%p,%p,%p),stub!\n", lpFrame, lpFrameInfo, lpmsg);
57     return S_OK;
58 }
59
60 /******************************************************************************
61  *              CoTreatAsClass        [OLE32.46]
62  */
63 HRESULT WINAPI CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew)
64 {
65   FIXME("(%p,%p), stub!\n", clsidOld, clsidNew);
66   return S_OK;
67 }
68
69 /******************************************************************************
70  *              IsAccelerator        [OLE32.75]
71  */
72 BOOL WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg, WORD* lpwCmd)
73 {
74   FIXME("(%x,%i,%p,%p), stub!\n", hAccel, cAccelEntries, lpMsg, lpwCmd);
75   return TRUE;
76 }
77
78 /******************************************************************************
79  *              SetConvertStg        [OLE32.142]
80  */
81 HRESULT WINAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert)
82 {
83   FIXME("(%p,%x), stub!\n", pStg, fConvert);
84   return S_OK;
85 }
86
87 /******************************************************************************
88  *              OleCreate        [OLE32.80]
89  *
90  */
91 HRESULT WINAPI OleCreate(
92         REFCLSID rclsid,
93         REFIID riid,
94         DWORD renderopt,
95         LPFORMATETC pFormatEtc,
96         LPOLECLIENTSITE pClientSite,
97         LPSTORAGE pStg,
98         LPVOID* ppvObj)
99 {
100   HRESULT hres, hres1;
101   IUnknown * pUnk = NULL;
102     
103   FIXME("\n\t%s\n\t%s stub!\n", debugstr_guid(rclsid), debugstr_guid(riid));
104
105   if (SUCCEEDED((hres = CoCreateInstance(rclsid, 0, CLSCTX_INPROC_SERVER, riid, (LPVOID*)&pUnk))))
106   {
107     if (pClientSite)
108     {
109       IOleObject * pOE;
110       IPersistStorage * pPS;
111       if (SUCCEEDED((hres = IUnknown_QueryInterface( pUnk, &IID_IOleObject, (LPVOID*)&pOE))))
112       {
113         TRACE("trying to set clientsite %p\n", pClientSite);
114         hres1 = IOleObject_SetClientSite(pOE, pClientSite);
115         TRACE("-- result 0x%08lx\n", hres1);
116         IOleObject_Release(pOE);
117       }
118       if (SUCCEEDED((hres = IUnknown_QueryInterface( pUnk, &IID_IPersistStorage, (LPVOID*)&pPS))))
119       {
120         TRACE("trying to set stg %p\n", pStg);
121         hres1 = IPersistStorage_InitNew(pPS, pStg);
122         TRACE("-- result 0x%08lx\n", hres1);
123         IPersistStorage_Release(pPS);
124       }
125     }
126   }
127
128   *ppvObj = pUnk;
129
130   TRACE("-- %p \n", pUnk);
131   return hres;
132 }
133
134 /******************************************************************************
135  *              OleCreateLink        [OLE32.94]
136  */
137 HRESULT WINAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
138                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
139 {
140   FIXME("(not shown), stub!\n");
141   return S_OK;
142 }
143
144 /******************************************************************************
145  *              OleCreateFromFile        [OLE32.93]
146  */
147 HRESULT WINAPI OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
148             DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
149 {
150   FIXME("(not shown), stub!\n");
151   return S_OK;
152 }
153
154
155 /******************************************************************************
156  *              OleGetIconOfClass        [OLE32.106]
157  */
158 HGLOBAL WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel)
159 {
160   FIXME("(%p,%p,%x), stub!\n", rclsid, lpszLabel, fUseTypeAsLabel);
161   return S_OK;
162 }
163
164 /******************************************************************************
165  *              ReadFmtUserTypeStg        [OLE32.136]
166  */
167 HRESULT WINAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* lplpszUserType)
168 {
169   FIXME("(%p,%p,%p), stub!\n", pstg, pcf, lplpszUserType);
170   return S_OK;
171 }
172
173 /******************************************************************************
174  *              OleCreateStaticFromData        [OLE32.98]
175  */
176 HRESULT     WINAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
177                 DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
178                 LPSTORAGE pStg, LPVOID* ppvObj)
179 {
180   FIXME("(not shown), stub!\n");
181   return S_OK;
182 }
183
184 /******************************************************************************
185  *              OleCreateLinkFromData        [OLE32.95]
186  */
187
188 HRESULT WINAPI  OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
189                 DWORD renderopt, LPFORMATETC pFormatEtc,
190                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
191                 LPVOID* ppvObj)
192 {
193   FIXME("(not shown), stub!\n");
194   return S_OK;
195 }
196
197 /******************************************************************************
198  *              OleIsRunning        [OLE32.111]
199  */
200 BOOL WINAPI OleIsRunning(LPOLEOBJECT pObject)
201 {
202   FIXME("(%p), stub!\n", pObject);
203   return TRUE;
204 }
205
206 /***********************************************************************
207  *           OleRegEnumVerbs    [OLE32.120]
208  */
209 HRESULT WINAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB* ppenum)
210 {
211     FIXME("(%p,%p), stub!\n", clsid, ppenum);
212     return OLEOBJ_E_NOVERBS;
213 }
214
215 /***********************************************************************
216  *           OleRegEnumFormatEtc    [OLE32.119]
217  */
218 HRESULT     WINAPI OleRegEnumFormatEtc (
219   REFCLSID clsid, 
220   DWORD    dwDirection,
221   LPENUMFORMATETC* ppenumFormatetc)
222 {
223     FIXME("(%p, %ld, %p), stub!\n", clsid, dwDirection, ppenumFormatetc);
224
225     return S_OK;
226 }
227
228 /***********************************************************************
229  *           PropVariantClear                       [OLE32.166]
230  */
231 HRESULT WINAPI PropVariantClear(void *pvar) /* [in/out] FIXME: PROPVARIANT * */
232 {
233         FIXME("(%p): stub:\n", pvar);
234
235         *(LPWORD)pvar = 0;
236         /* sets at least the vt field to VT_EMPTY */
237         return S_OK;
238 }
239
240 /***********************************************************************
241  *           PropVariantCopy                        [OLE32.246]
242  */
243 HRESULT WINAPI PropVariantCopy(void *pvarDest,      /* [out] FIXME: PROPVARIANT * */
244                                const void *pvarSrc) /* [in] FIXME: const PROPVARIANT * */
245 {
246         FIXME("(%p, %p): stub:\n", pvarDest, pvarSrc);
247
248         return S_OK;
249 }
250
251 /***********************************************************************
252  *           FreePropVariantArray                           [OLE32.195]
253  */
254 HRESULT WINAPI FreePropVariantArray(ULONG cVariants, /* [in] */
255                                     void *rgvars)    /* [in/out] FIXME: PROPVARIANT * */
256 {
257         FIXME("(%lu, %p): stub:\n", cVariants, rgvars);
258
259         return S_OK;
260 }
261
262 /***********************************************************************
263  *           CoIsOle1Class                              [OLE32]
264  */
265 BOOL WINAPI CoIsOle1Class(REFCLSID clsid)
266 {
267   FIXME("%s\n", debugstr_guid(clsid));
268   return FALSE;
269 }