Stubs for DllRegisterServer/DllUnregisterServer.
[wine] / dlls / oleaut32 / oleaut.c
1 /*
2  *      OLEAUT32
3  *
4  */
5 #include <string.h>
6 #include "windef.h"
7 #include "wingdi.h"
8 #include "winuser.h"
9 #include "winerror.h"
10 #include "winversion.h"
11 #include "oleauto.h"
12 #include "wine/obj_base.h"
13 #include "wine/obj_moniker.h"
14 #include "heap.h"
15 #include "ldt.h"
16 #include "debugtools.h"
17
18 DEFAULT_DEBUG_CHANNEL(ole);
19
20 static WCHAR    _delimiter[2] = {'!',0}; /* default delimiter apparently */
21 static WCHAR    *pdelimiter = &_delimiter[0];
22
23 /***********************************************************************
24  *              RegisterActiveObject
25  */
26 HRESULT WINAPI RegisterActiveObject(
27         LPUNKNOWN punk,REFCLSID rcid,DWORD dwFlags,LPDWORD pdwRegister
28 ) {
29         WCHAR                   guidbuf[80];
30         HRESULT                 ret;
31         LPRUNNINGOBJECTTABLE    runobtable;
32         LPMONIKER               moniker;
33
34         StringFromGUID2(rcid,guidbuf,39);
35         ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);
36         if (FAILED(ret)) 
37                 return ret;
38         ret = GetRunningObjectTable(0,&runobtable);
39         if (FAILED(ret)) {
40                 IMoniker_Release(moniker);
41                 return ret;
42         }
43         ret = IRunningObjectTable_Register(runobtable,dwFlags,punk,moniker,pdwRegister);
44         IRunningObjectTable_Release(runobtable);
45         IMoniker_Release(moniker);
46         return ret;
47 }
48
49 /***********************************************************************
50  *              RevokeActiveObject
51  */
52 HRESULT WINAPI RevokeActiveObject(DWORD xregister,LPVOID reserved)
53 {
54         LPRUNNINGOBJECTTABLE    runobtable;
55         HRESULT                 ret;
56
57         ret = GetRunningObjectTable(0,&runobtable);
58         if (FAILED(ret)) return ret;
59         ret = IRunningObjectTable_Revoke(runobtable,xregister);
60         if (SUCCEEDED(ret)) ret = S_OK;
61         IRunningObjectTable_Release(runobtable);
62         return ret;
63 }
64
65 /***********************************************************************
66  *              GetActiveObject
67  */
68 HRESULT WINAPI GetActiveObject(REFCLSID rcid,LPVOID preserved,LPUNKNOWN *ppunk)
69 {
70         WCHAR                   guidbuf[80];
71         HRESULT                 ret;
72         LPRUNNINGOBJECTTABLE    runobtable;
73         LPMONIKER               moniker;
74
75         StringFromGUID2(rcid,guidbuf,39);
76         ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);
77         if (FAILED(ret)) 
78                 return ret;
79         ret = GetRunningObjectTable(0,&runobtable);
80         if (FAILED(ret)) {
81                 IMoniker_Release(moniker);
82                 return ret;
83         }
84         ret = IRunningObjectTable_GetObject(runobtable,moniker,ppunk);
85         IRunningObjectTable_Release(runobtable);
86         IMoniker_Release(moniker);
87         return ret;
88 }
89
90 /***********************************************************************
91  *           OaBuildVersion           [OLEAUT32.170]
92  *
93  * known OLEAUT32.DLL versions:
94  * OLE 2.1  NT                          1993-95 10     3023
95  * OLE 2.1                                      10     3027
96  * OLE 2.20 W95/NT                      1993-96 20     4112
97  * OLE 2.20 W95/NT                      1993-96 20     4118
98  * OLE 2.20 W95/NT                      1993-96 20     4122
99  * OLE 2.30 W95/NT                      1993-98 30     4265
100  * OLE 2.40 NT??                        1993-98 40     4267
101  * OLE 2.40 W98 SE orig. file           1993-98 40     4275
102  */
103 UINT WINAPI OaBuildVersion()
104 {
105     FIXME("Please report to a.mohr@mailto.de if you get version error messages !\n");
106     switch(VERSION_GetVersion())
107     {
108         case WIN31:
109                 return MAKELONG(4049, 20); /* from Win32s 1.1e */
110         case WIN95:
111                 return MAKELONG(4265, 30);
112         case WIN98:
113                 return MAKELONG(4275, 40); /* value of W98 SE; orig. W98 AFAIK has 4265, 30 just as W95 */
114         case NT351:
115                 return MAKELONG(4265, 30); /* value borrowed from Win95 */
116         case NT40:
117                 return MAKELONG(4122, 20); /* ouch ! Quite old, I guess */
118         default:
119                 ERR("Version value not known yet. Please investigate it !\n");
120                 return 0x0;
121     }
122 }
123
124 HRESULT WINAPI OLEAUT32_DllRegisterServer() { 
125     FIXME("stub!\n");
126     return S_OK;
127 }
128 HRESULT WINAPI OLEAUT32_DllUnregisterServer() {
129     FIXME("stub!\n");
130     return S_OK;
131 }