Bugfix: second RegOpenKey should use CLSIDkey instead of HKEY_CLASSES_ROOT.
[wine] / ole / ole2.c
1 /*
2  *      OLE2 library
3  *
4  *      Copyright 1995  Martin von Loewis
5  */
6
7 #include "windows.h"
8 #include "winerror.h"
9 #include "ole2.h"
10 #include "process.h"
11 #include "debug.h"
12 #include "compobj.h"
13
14 /******************************************************************************
15  *              OleBuildVersion [OLE2.1]
16  */
17 DWORD WINAPI OleBuildVersion()
18 {
19     TRACE(ole,"(void)\n");
20     return (rmm<<16)+rup;
21 }
22
23 /***********************************************************************
24  *           OleInitialize       (OLE2.2) (OLE32.108)
25  */
26 HRESULT WINAPI OleInitialize(LPVOID reserved)
27 {
28     FIXME(ole,"OleInitialize - stub\n");
29     return S_OK;
30 }
31
32 /******************************************************************************
33  *              CoGetCurrentProcess     [COMPOBJ.34] [OLE2.2][OLE32.108]
34  *
35  * NOTES
36  *   Is DWORD really the correct return type for this function?
37  */
38 DWORD WINAPI CoGetCurrentProcess() {
39         return (DWORD)PROCESS_Current();
40 }
41
42 /******************************************************************************
43  *              OleUninitialize [OLE2.3] [OLE32.131]
44  */
45 void WINAPI OleUninitialize(void)
46 {
47     FIXME(ole,"stub\n");
48 }
49
50 /***********************************************************************
51  *           OleFlushClipboard   [OLE2.76]
52  */
53 HRESULT WINAPI OleFlushClipboard()
54 {
55     return S_OK;
56 }
57
58 /***********************************************************************
59  *           OleSetClipboard     [OLE32.127]
60  */
61 HRESULT WINAPI OleSetClipboard(LPVOID pDataObj)
62 {
63     FIXME(ole,"(%p), stub!\n", pDataObj);
64     return S_OK;
65 }
66
67 /******************************************************************************
68  *              CoRegisterMessageFilter32       [OLE32.38]
69  */
70 HRESULT WINAPI CoRegisterMessageFilter32(
71     LPMESSAGEFILTER lpMessageFilter,    /* Pointer to interface */
72     LPMESSAGEFILTER *lplpMessageFilter  /* Indirect pointer to prior instance if non-NULL */
73 ) {
74     FIXME(ole,"stub\n");
75     if (lplpMessageFilter) {
76         *lplpMessageFilter = NULL;
77     }
78     return S_OK;
79 }
80
81 /******************************************************************************
82  *              OleInitializeWOW        [OLE32.109]
83  */
84 HRESULT WINAPI OleInitializeWOW(DWORD x) {
85         FIXME(ole,"(0x%08lx),stub!\n",x);
86         return 0;
87 }
88
89 /******************************************************************************
90  *              GetRunningObjectTable16 [OLE2.30]
91  */
92 HRESULT WINAPI GetRunningObjectTable16(DWORD reserved, LPVOID *pprot) {
93         FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
94         return E_FAIL;
95 }
96
97
98 /***********************************************************************
99  *           GetRunningObjectTable32 (OLE2.73)
100  */
101 HRESULT WINAPI GetRunningObjectTable32(DWORD reserved, LPVOID *pprot) {
102         FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
103         return E_FAIL;
104 }
105
106 /***********************************************************************
107  *           RegisterDragDrop16 (OLE2.35)
108  */
109 HRESULT WINAPI RegisterDragDrop16(
110         HWND16 hwnd,
111         LPDROPTARGET pDropTarget
112 ) {
113         FIXME(ole,"(0x%04x,%p),stub!\n",hwnd,pDropTarget);
114         return S_OK;
115 }
116
117 /***********************************************************************
118  *           RegisterDragDrop32 (OLE32.139)
119  */
120 HRESULT WINAPI RegisterDragDrop32(
121         HWND32 hwnd,
122         LPDROPTARGET pDropTarget
123 ) {
124         FIXME(ole,"(0x%04x,%p),stub!\n",hwnd,pDropTarget);
125         return S_OK;
126 }
127
128 /***********************************************************************
129  *           RevokeDragDrop16 (OLE2.36)
130  */
131 HRESULT WINAPI RevokeDragDrop16(
132         HWND16 hwnd
133 ) {
134         FIXME(ole,"(0x%04x),stub!\n",hwnd);
135         return S_OK;
136 }
137
138 /***********************************************************************
139  *           RevokeDragDrop32 (OLE32.141)
140  */
141 HRESULT WINAPI RevokeDragDrop32(
142         HWND32 hwnd
143 ) {
144         FIXME(ole,"(0x%04x),stub!\n",hwnd);
145         return S_OK;
146 }
147
148 /***********************************************************************
149  *           OleRegGetUserType (OLE32.122)
150  */
151 HRESULT WINAPI OleRegGetUserType32( 
152         REFCLSID clsid, 
153         DWORD dwFormOfType,
154         LPOLESTR32* pszUserType)
155 {
156         FIXME(ole,",stub!\n");
157         return S_OK;
158 }
159
160 /***********************************************************************
161  * CreateBindCtx32 [OLE32.52]
162  */
163 HRESULT WINAPI CreateBindCtx32 (DWORD reserved, LPVOID *ppbc)
164 {
165     FIXME(ole,"(0x%08lx %p): stub!\n", reserved, ppbc);
166     *ppbc = 0;
167 //    return S_OK;
168     return E_OUTOFMEMORY;
169 }