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