source: trunk/src/oleaut32/oleaut.c@ 6944

Last change on this file since 6944 was 6944, checked in by sandervl, 24 years ago

wine update

File size: 5.2 KB
Line 
1/*
2 * OLEAUT32
3 *
4 */
5#ifdef __WIN32OS2__
6#define HAVE_FLOAT_H
7#define WINE_LARGE_INTEGER
8#include "oleaut32.h"
9#endif
10
11#include <string.h>
12
13#include "windef.h"
14#include "winbase.h"
15#include "wingdi.h"
16#include "winuser.h"
17#include "winerror.h"
18
19#include "ole2.h"
20#include "olectl.h"
21#include "wine/obj_oleaut.h"
22#include "wine/obj_olefont.h"
23#include "debugtools.h"
24
25DEFAULT_DEBUG_CHANNEL(ole);
26
27static WCHAR _delimiter[2] = {'!',0}; /* default delimiter apparently */
28static WCHAR *pdelimiter = &_delimiter[0];
29
30/***********************************************************************
31 * RegisterActiveObject (OLEAUT32.33)
32 */
33HRESULT WINAPI RegisterActiveObject(
34 LPUNKNOWN punk,REFCLSID rcid,DWORD dwFlags,LPDWORD pdwRegister
35) {
36 WCHAR guidbuf[80];
37 HRESULT ret;
38 LPRUNNINGOBJECTTABLE runobtable;
39 LPMONIKER moniker;
40
41 StringFromGUID2(rcid,guidbuf,39);
42#ifdef __WIN32OS2__
43 dprintf(("RegisterActiveObject %x %ls (%x) %x %x", punk, guidbuf, rcid, dwFlags, pdwRegister));
44#endif
45 ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);
46 if (FAILED(ret))
47 return ret;
48 ret = GetRunningObjectTable(0,&runobtable);
49 if (FAILED(ret)) {
50 IMoniker_Release(moniker);
51 return ret;
52 }
53 ret = IRunningObjectTable_Register(runobtable,dwFlags,punk,moniker,pdwRegister);
54 IRunningObjectTable_Release(runobtable);
55 IMoniker_Release(moniker);
56 return ret;
57}
58
59/***********************************************************************
60 * RevokeActiveObject (OLEAUT32.34)
61 */
62HRESULT WINAPI RevokeActiveObject(DWORD xregister,LPVOID reserved)
63{
64 LPRUNNINGOBJECTTABLE runobtable;
65 HRESULT ret;
66
67#ifdef __WIN32OS2__
68 dprintf(("RevokeActiveObject %x %x", xregister, reserved));
69#endif
70
71 ret = GetRunningObjectTable(0,&runobtable);
72 if (FAILED(ret)) return ret;
73 ret = IRunningObjectTable_Revoke(runobtable,xregister);
74 if (SUCCEEDED(ret)) ret = S_OK;
75 IRunningObjectTable_Release(runobtable);
76 return ret;
77}
78
79/***********************************************************************
80 * GetActiveObject (OLEAUT32.35)
81 */
82HRESULT WINAPI GetActiveObject(REFCLSID rcid,LPVOID preserved,LPUNKNOWN *ppunk)
83{
84 WCHAR guidbuf[80];
85 HRESULT ret;
86 LPRUNNINGOBJECTTABLE runobtable;
87 LPMONIKER moniker;
88
89 StringFromGUID2(rcid,guidbuf,39);
90#ifdef __WIN32OS2__
91 dprintf(("GetActiveObject %ls (%x) %x %x", guidbuf, rcid, preserved, ppunk));
92#endif
93 ret = CreateItemMoniker(pdelimiter,guidbuf,&moniker);
94 if (FAILED(ret))
95 return ret;
96 ret = GetRunningObjectTable(0,&runobtable);
97 if (FAILED(ret)) {
98 IMoniker_Release(moniker);
99 return ret;
100 }
101 ret = IRunningObjectTable_GetObject(runobtable,moniker,ppunk);
102 IRunningObjectTable_Release(runobtable);
103 IMoniker_Release(moniker);
104 return ret;
105}
106
107/***********************************************************************
108 * OaBuildVersion [OLEAUT32.170]
109 *
110 * known OLEAUT32.DLL versions:
111 * OLE 2.1 NT 1993-95 10 3023
112 * OLE 2.1 10 3027
113 * OLE 2.20 W95/NT 1993-96 20 4112
114 * OLE 2.20 W95/NT 1993-96 20 4118
115 * OLE 2.20 W95/NT 1993-96 20 4122
116 * OLE 2.30 W95/NT 1993-98 30 4265
117 * OLE 2.40 NT?? 1993-98 40 4267
118 * OLE 2.40 W98 SE orig. file 1993-98 40 4275
119 */
120UINT WINAPI OaBuildVersion()
121{
122#ifdef __WIN32OS2__
123 dprintf(("OaBuildVersion %x", GetVersion() & 0x8000ffff));
124#else
125 FIXME("Please report to a.mohr@mailto.de if you get version error messages !\n");
126#endif
127 switch(GetVersion() & 0x8000ffff) /* mask off build number */
128 {
129 case 0x80000a03: /* WIN31 */
130 return MAKELONG(4049, 20); /* from Win32s 1.1e */
131 case 0x80000004: /* WIN95 */
132 return MAKELONG(4265, 30);
133 case 0x80000a04: /* WIN98 */
134 return MAKELONG(4275, 40); /* value of W98 SE; orig. W98 AFAIK has 4265, 30 just as W95 */
135 case 0x00003303: /* NT351 */
136 return MAKELONG(4265, 30); /* value borrowed from Win95 */
137 case 0x00000004: /* NT40 */
138#ifdef __WIN32OS2__
139 return 0x2810b5; //returned by NT4, SP6
140#else
141 return MAKELONG(4122, 20); /* ouch ! Quite old, I guess */
142#endif
143 default:
144 ERR("Version value not known yet. Please investigate it !\n");
145 return 0x0;
146 }
147}
148
149/***********************************************************************
150 * DllRegisterServer
151 */
152HRESULT WINAPI OLEAUT32_DllRegisterServer() {
153 FIXME("stub!\n");
154 return S_OK;
155}
156
157/***********************************************************************
158 * DllUnregisterServer
159 */
160HRESULT WINAPI OLEAUT32_DllUnregisterServer() {
161 FIXME("stub!\n");
162 return S_OK;
163}
164
165
166extern void _get_STDFONT_CF(LPVOID);
167
168/***********************************************************************
169 * DllGetClassObject (OLEAUT32.1)
170 */
171HRESULT WINAPI OLEAUT32_DllGetClassObject(REFCLSID rclsid, REFIID iid,LPVOID *ppv)
172{
173 *ppv = NULL;
174 if (IsEqualGUID(rclsid,&CLSID_StdFont)) {
175 if (IsEqualGUID(iid,&IID_IClassFactory)) {
176 _get_STDFONT_CF(ppv);
177 IClassFactory_AddRef((IClassFactory*)*ppv);
178 return S_OK;
179 }
180 }
181 FIXME("\n\tCLSID:\t%s,\n\tIID:\t%s\n",debugstr_guid(rclsid),debugstr_guid(iid));
182 return CLASS_E_CLASSNOTAVAILABLE;
183}
184
185/***********************************************************************
186 * DllCanUnloadNow (OLEAUT32.410)
187 */
188HRESULT WINAPI OLEAUT32_DllCanUnloadNow() {
189 FIXME("(), stub!\n");
190 return S_FALSE;
191}
Note: See TracBrowser for help on using the repository browser.