atl80: Added AtlComModuleRegisterServer implementation (based on AtlModuleRegisterSer...
[wine] / dlls / olesvr32 / 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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 "objbase.h"
31 #include "wine/debug.h"
32
33 WINE_DEFAULT_DEBUG_CHANNEL(ole);
34
35 typedef enum
36 {
37     OLE_OK,
38     OLE_WAIT_FOR_RELEASE,
39     OLE_BUSY,
40     OLE_ERROR_PROTECT_ONLY,
41     OLE_ERROR_MEMORY,
42     OLE_ERROR_STREAM,
43     OLE_ERROR_STATIC,
44     OLE_ERROR_BLANK,
45     OLE_ERROR_DRAW,
46     OLE_ERROR_METAFILE,
47     OLE_ERROR_ABORT,
48     OLE_ERROR_CLIPBOARD,
49     OLE_ERROR_FORMAT,
50     OLE_ERROR_OBJECT,
51     OLE_ERROR_OPTION,
52     OLE_ERROR_PROTOCOL,
53     OLE_ERROR_ADDRESS,
54     OLE_ERROR_NOT_EQUAL,
55     OLE_ERROR_HANDLE,
56     OLE_ERROR_GENERIC,
57     OLE_ERROR_CLASS,
58     OLE_ERROR_SYNTAX,
59     OLE_ERROR_DATATYPE,
60     OLE_ERROR_PALETTE,
61     OLE_ERROR_NOT_LINK,
62     OLE_ERROR_NOT_EMPTY,
63     OLE_ERROR_SIZE,
64     OLE_ERROR_DRIVE,
65     OLE_ERROR_NETWORK,
66     OLE_ERROR_NAME,
67     OLE_ERROR_TEMPLATE,
68     OLE_ERROR_NEW,
69     OLE_ERROR_EDIT,
70     OLE_ERROR_OPEN,
71     OLE_ERROR_NOT_OPEN,
72     OLE_ERROR_LAUNCH,
73     OLE_ERROR_COMM,
74     OLE_ERROR_TERMINATE,
75     OLE_ERROR_COMMAND,
76     OLE_ERROR_SHOW,
77     OLE_ERROR_DOVERB,
78     OLE_ERROR_ADVISE_NATIVE,
79     OLE_ERROR_ADVISE_PICT,
80     OLE_ERROR_ADVISE_RENAME,
81     OLE_ERROR_POKE_NATIVE,
82     OLE_ERROR_REQUEST_NATIVE,
83     OLE_ERROR_REQUEST_PICT,
84     OLE_ERROR_SERVER_BLOCKED,
85     OLE_ERROR_REGISTRATION,
86     OLE_ERROR_ALREADY_REGISTERED,
87     OLE_ERROR_TASK,
88     OLE_ERROR_OUTOFDATE,
89     OLE_ERROR_CANT_UPDATE_CLIENT,
90     OLE_ERROR_UPDATE,
91     OLE_ERROR_SETDATA_FORMAT,
92     OLE_ERROR_STATIC_FROM_OTHER_OS,
93     OLE_WARN_DELETE_DATA = 1000
94 } OLESTATUS;
95
96 typedef enum {
97     OLE_SERVER_MULTI,
98     OLE_SERVER_SINGLE
99 } OLE_SERVER_USE;
100
101 typedef LONG LHSERVER;
102 typedef LONG LHSERVERDOC;
103 typedef LPCSTR LPCOLESTR16;
104
105 typedef struct _OLESERVERDOC *LPOLESERVERDOC;
106
107 struct _OLESERVERDOCVTBL;
108 typedef struct _OLESERVERDOC
109 {
110     const 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     const OLESERVERVTBL *lpvtbl;
129     /* server specific data */
130 } OLESERVER;
131
132 static LONG OLE_current_handle;
133
134 /******************************************************************************
135  *              OleBlockServer  [OLESVR32.4]
136  */
137 OLESTATUS WINAPI OleBlockServer(LHSERVER hServer)
138 {
139     FIXME("(%d): stub\n",hServer);
140     return OLE_OK;
141 }
142
143 /******************************************************************************
144  *              OleUnblockServer        [OLESVR32.5]
145  */
146 OLESTATUS WINAPI OleUnblockServer(LHSERVER hServer, BOOL *block)
147 {
148     FIXME("(%d): stub\n",hServer);
149     /* no more blocked messages :) */
150     *block=FALSE;
151     return OLE_OK;
152 }
153
154 /******************************************************************************
155  *              OleRevokeServerDoc      [OLESVR32.7]
156  */
157 OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC hServerDoc)
158 {
159     FIXME("(%d): stub\n",hServerDoc);
160     return OLE_OK;
161 }
162
163 /******************************************************************************
164  * OleRegisterServer [OLESVR32.2]
165  */
166 OLESTATUS WINAPI OleRegisterServer(LPCSTR svrname,LPOLESERVER olesvr,LHSERVER* hRet,HINSTANCE hinst,OLE_SERVER_USE osu) {
167         FIXME("(%s,%p,%p,%p,%d): stub!\n",svrname,olesvr,hRet,hinst,osu);
168         *hRet=++OLE_current_handle;
169         return OLE_OK;
170 }
171
172 /******************************************************************************
173  * OleRegisterServerDoc [OLESVR32.6]
174  */
175 OLESTATUS WINAPI OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname,
176                                          LPOLESERVERDOC document,
177                                          LHSERVERDOC *hRet)
178 {
179     FIXME("(%d,%s): stub\n", hServer, docname);
180     *hRet=++OLE_current_handle;
181     return OLE_OK;
182 }
183
184 /******************************************************************************
185  *              OleRenameServerDoc      [OLESVR32.8]
186  *
187  */
188 OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC hDoc, LPCSTR newName)
189 {
190     FIXME("(%d,%s): stub.\n",hDoc, newName);
191     return OLE_OK;
192 }
193
194 /******************************************************************************
195  *              OleRevertServerDoc      [OLESVR32.9]
196  *
197  */
198 OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC hDoc)
199 {
200     FIXME("(%d): stub.\n", hDoc);
201     return OLE_OK;
202 }
203
204 /******************************************************************************
205  *              OleSavedServerDoc       [OLESVR32.10]
206  *
207  */
208 OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC hDoc)
209 {
210     FIXME("(%d): stub.\n", hDoc);
211     return OLE_OK;
212 }
213
214 /******************************************************************************
215  *              OleRevokeServer [OLESVR32.3]
216  *
217  */
218 OLESTATUS WINAPI OleRevokeServer(LHSERVER hServer)
219 {
220     FIXME("(%d): stub.\n", hServer);
221     return OLE_OK;
222 }