If using the default values, also set dwType to REG_SZ as our default
[wine] / dlls / olesvr / olesvr_main.c
1 /*
2  *      OLESVR library
3  *
4  *      Copyright 1995  Martin von Loewis
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 /*      At the moment, these are only empty stubs.
22  */
23
24 #include "config.h"
25
26 #include <stdarg.h>
27
28 #include "windef.h"
29 #include "winbase.h"
30 #include "wine/windef16.h"
31 #include "objbase.h"
32 #include "wine/debug.h"
33
34 WINE_DEFAULT_DEBUG_CHANNEL(ole);
35
36 typedef enum
37 {
38     OLE_OK,
39     OLE_WAIT_FOR_RELEASE,
40     OLE_BUSY,
41     OLE_ERROR_PROTECT_ONLY,
42     OLE_ERROR_MEMORY,
43     OLE_ERROR_STREAM,
44     OLE_ERROR_STATIC,
45     OLE_ERROR_BLANK,
46     OLE_ERROR_DRAW,
47     OLE_ERROR_METAFILE,
48     OLE_ERROR_ABORT,
49     OLE_ERROR_CLIPBOARD,
50     OLE_ERROR_FORMAT,
51     OLE_ERROR_OBJECT,
52     OLE_ERROR_OPTION,
53     OLE_ERROR_PROTOCOL,
54     OLE_ERROR_ADDRESS,
55     OLE_ERROR_NOT_EQUAL,
56     OLE_ERROR_HANDLE,
57     OLE_ERROR_GENERIC,
58     OLE_ERROR_CLASS,
59     OLE_ERROR_SYNTAX,
60     OLE_ERROR_DATATYPE,
61     OLE_ERROR_PALETTE,
62     OLE_ERROR_NOT_LINK,
63     OLE_ERROR_NOT_EMPTY,
64     OLE_ERROR_SIZE,
65     OLE_ERROR_DRIVE,
66     OLE_ERROR_NETWORK,
67     OLE_ERROR_NAME,
68     OLE_ERROR_TEMPLATE,
69     OLE_ERROR_NEW,
70     OLE_ERROR_EDIT,
71     OLE_ERROR_OPEN,
72     OLE_ERROR_NOT_OPEN,
73     OLE_ERROR_LAUNCH,
74     OLE_ERROR_COMM,
75     OLE_ERROR_TERMINATE,
76     OLE_ERROR_COMMAND,
77     OLE_ERROR_SHOW,
78     OLE_ERROR_DOVERB,
79     OLE_ERROR_ADVISE_NATIVE,
80     OLE_ERROR_ADVISE_PICT,
81     OLE_ERROR_ADVISE_RENAME,
82     OLE_ERROR_POKE_NATIVE,
83     OLE_ERROR_REQUEST_NATIVE,
84     OLE_ERROR_REQUEST_PICT,
85     OLE_ERROR_SERVER_BLOCKED,
86     OLE_ERROR_REGISTRATION,
87     OLE_ERROR_ALREADY_REGISTERED,
88     OLE_ERROR_TASK,
89     OLE_ERROR_OUTOFDATE,
90     OLE_ERROR_CANT_UPDATE_CLIENT,
91     OLE_ERROR_UPDATE,
92     OLE_ERROR_SETDATA_FORMAT,
93     OLE_ERROR_STATIC_FROM_OTHER_OS,
94     OLE_WARN_DELETE_DATA = 1000
95 } OLESTATUS;
96
97 typedef enum {
98     OLE_SERVER_MULTI,
99     OLE_SERVER_SINGLE
100 } OLE_SERVER_USE;
101
102 typedef LONG LHSERVER;
103 typedef LONG LHSERVERDOC;
104
105 typedef struct _OLESERVERDOC *LPOLESERVERDOC;
106
107 struct _OLESERVERDOCVTBL;
108 typedef struct _OLESERVERDOC
109 {
110     struct _OLESERVERDOCVTBL *lpvtbl;
111     /* server provided state info */
112 } OLESERVERDOC;
113
114 typedef struct _OLESERVER *LPOLESERVER;
115 typedef struct _OLESERVERVTBL
116 {
117     OLESTATUS (CALLBACK *Open)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPOLESERVERDOC *);
118     OLESTATUS (CALLBACK *Create)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC*);
119     OLESTATUS (CALLBACK *CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
120     OLESTATUS (CALLBACK *Edit)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
121     OLESTATUS (CALLBACK *Exit)(LPOLESERVER);
122     OLESTATUS (CALLBACK *Release)(LPOLESERVER);
123     OLESTATUS (CALLBACK *Execute)(LPOLESERVER);
124 } OLESERVERVTBL, *LPOLESERVERVTBL;
125
126 typedef struct _OLESERVER
127 {
128     LPOLESERVERVTBL lpvtbl;
129     /* server specific data */
130 } OLESERVER;
131
132 static LONG OLE_current_handle;
133
134 /******************************************************************************
135  *              OleRegisterServer       [OLESVR.2]
136  */
137 OLESTATUS WINAPI OleRegisterServer16( LPCSTR name, LPOLESERVER serverStruct,
138                                       LHSERVER *hRet, HINSTANCE16 hServer,
139                                       OLE_SERVER_USE use )
140 {
141     FIXME("(%s,...): stub\n",name);
142     *hRet=++OLE_current_handle;
143     /* return OLE_ERROR_MEMORY, OLE_ERROR_PROTECT_ONLY if you want it fail*/
144     return OLE_OK;
145 }
146
147 /******************************************************************************
148  *              OleBlockServer  [OLESVR.4]
149  */
150 OLESTATUS WINAPI OleBlockServer16(LHSERVER hServer)
151 {
152     FIXME("(%ld): stub\n",hServer);
153     return OLE_OK;
154 }
155
156 /******************************************************************************
157  *              OleBlockServer  [OLESVR32.4]
158  */
159 OLESTATUS WINAPI OleBlockServer(LHSERVER hServer)
160 {
161     FIXME("(%ld): stub\n",hServer);
162     return OLE_OK;
163 }
164
165 /******************************************************************************
166  *              OleUnblockServer        [OLESVR.5]
167  */
168 OLESTATUS WINAPI OleUnblockServer16(LHSERVER hServer, BOOL16 *block)
169 {
170     FIXME("(%ld): stub\n",hServer);
171     /* no more blocked messages :) */
172     *block=FALSE;
173     return OLE_OK;
174 }
175
176 /******************************************************************************
177  *              OleUnblockServer        [OLESVR32.5]
178  */
179 OLESTATUS WINAPI OleUnblockServer(LHSERVER hServer, BOOL *block)
180 {
181     FIXME("(%ld): stub\n",hServer);
182     /* no more blocked messages :) */
183     *block=FALSE;
184     return OLE_OK;
185 }
186
187 /***********************************************************************
188  *              OleRegisterServerDoc    [OLESVR.6]
189  */
190 OLESTATUS WINAPI OleRegisterServerDoc16( LHSERVER hServer, LPCSTR docname,
191                                          LPOLESERVERDOC document,
192                                          LHSERVERDOC *hRet)
193 {
194     FIXME("(%ld,%s): stub\n",hServer, docname);
195     *hRet=++OLE_current_handle;
196     return OLE_OK;
197 }
198
199 /******************************************************************************
200  *              OleRevokeServerDoc      [OLESVR.7]
201  */
202 OLESTATUS WINAPI OleRevokeServerDoc16(LHSERVERDOC hServerDoc)
203 {
204     FIXME("%ld  - stub\n",hServerDoc);
205     return OLE_OK;
206 }
207
208 /******************************************************************************
209  *              OleRevokeServerDoc      [OLESVR32.7]
210  */
211 OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC hServerDoc)
212 {
213     FIXME("(%ld): stub\n",hServerDoc);
214     return OLE_OK;
215 }
216
217 /******************************************************************************
218  *              OleRevokeServer [OLESVR.3]
219  */
220 OLESTATUS WINAPI OleRevokeServer16(LHSERVER hServer)
221 {
222     FIXME("%ld - stub\n",hServer);
223     return OLE_OK;
224 }
225
226 /******************************************************************************
227  * OleRegisterServer [OLESVR32.2]
228  */
229 OLESTATUS WINAPI OleRegisterServer(LPCSTR svrname,LPOLESERVER olesvr,LHSERVER* hRet,HINSTANCE hinst,OLE_SERVER_USE osu) {
230         FIXME("(%s,%p,%p,%p,%d): stub!\n",svrname,olesvr,hRet,hinst,osu);
231         *hRet=++OLE_current_handle;
232         return OLE_OK;
233 }
234
235 /******************************************************************************
236  * OleRegisterServerDoc [OLESVR32.6]
237  */
238 OLESTATUS WINAPI OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname,
239                                          LPOLESERVERDOC document,
240                                          LHSERVERDOC *hRet)
241 {
242     FIXME("(%ld,%s): stub\n", hServer, docname);
243     *hRet=++OLE_current_handle;
244     return OLE_OK;
245 }
246
247 /******************************************************************************
248  *              OleRenameServerDoc      [OLESVR.8]
249  *
250  */
251 OLESTATUS WINAPI OleRenameServerDoc16(LHSERVERDOC hDoc, LPCSTR newName)
252 {
253     FIXME("(%ld,%s): stub.\n", hDoc, newName);
254     return OLE_OK;
255 }
256
257 /******************************************************************************
258  *              OleRenameServerDoc      [OLESVR32.8]
259  *
260  */
261 OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC hDoc, LPCSTR newName)
262 {
263     FIXME("(%ld,%s): stub.\n",hDoc, newName);
264     return OLE_OK;
265 }
266
267 /******************************************************************************
268  *              OleRevertServerDoc      [OLESVR.9]
269  *
270  */
271 OLESTATUS WINAPI OleRevertServerDoc16(LHSERVERDOC hDoc)
272 {
273     FIXME("(%ld): stub.\n", hDoc);
274     return OLE_OK;
275 }
276
277 /******************************************************************************
278  *              OleRevertServerDoc      [OLESVR32.9]
279  *
280  */
281 OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC hDoc)
282 {
283     FIXME("(%ld): stub.\n", hDoc);
284     return OLE_OK;
285 }
286
287 /******************************************************************************
288  *              OleSavedServerDoc       [OLESVR.10]
289  *
290  */
291 OLESTATUS WINAPI OleSavedServerDoc16(LHSERVERDOC hDoc)
292 {
293     FIXME("(%ld): stub.\n", hDoc);
294     return OLE_OK;
295 }
296
297 /******************************************************************************
298  *              OleSavedServerDoc       [OLESVR32.10]
299  *
300  */
301 OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC hDoc)
302 {
303     FIXME("(%ld): stub.\n", hDoc);
304     return OLE_OK;
305 }