[USBCCGP]
[reactos.git] / reactos / media / doc / README.WINE
1 # ReactOS WINE porting guide for 0.3
2 # Update this file when you port a dll/program from WINE.
3
4 The ReactOS Project shares quite a bit of code with the WINE project.
5 This document should provide a compleate reference for all of the
6 locations in the ReactOS source tree where code is shared between the
7 two projects. If you find something is missing from this documentation
8 please add it.
9
10 If you find that a function in ReactOS that is not implemented properly
11 and is based on WINE sources, check the latest Winehq CVS and see if
12 it has been fixed there. If so, please submit a patch to
13 ros-dev@reactos.org. Otherwise please send a patch to both
14 wine-patches@winehq.com and ros-dev@reactos.org
15
16 When porting a new DLL from Wine to ReactOS, please do the following steps
17 - Create a new directory in dll/win32/ of the same name as the new Wine DLL
18 - Add a new entry in dll/win32/win32.rbuild
19 - Follow the guide "Update process for autosync DLLs" at the bottom of this file
20
21
22 The following build tools are shared with Wine.
23
24 reactos/tools/unicode # Synced to Wine-1.5.4
25 reactos/tools/widl # Synced to Wine-1.5.11
26 reactos/tools/wpp # Synced to Wine-1.3.26
27
28 The following libraries are shared with Wine.
29
30 reactos/dll/directx/amstream # Synced to Wine-1.3.37
31 reactos/dll/directx/dinput # Synced to Wine-20090208
32 reactos/dll/directx/dinput8 # Synced to Wine-20090208
33 reactos/dll/directx/dmusic # Synced to Wine-1_1_23
34 reactos/dll/directx/dplay # Synced to Wine-0_9_5
35 reactos/dll/directx/dplayx # Synced to Wine-0_9_5
36 reactos/dll/directx/dxdiagn # Synced to Wine-0_9_5
37 reactos/dll/directx/msdmo # Autosync
38 reactos/dll/directx/qedit # Autosync
39 reactos/dll/directx/quartz # Autosync
40 reactos/dll/win32/activeds # Synced to Wine-1.1.43?
41 reactos/dll/win32/actxprxy # Synced to Wine-1.3.29?
42 reactos/dll/win32/advpack # Synced to Wine-1.5.4
43 reactos/dll/win32/atl # Synced to Wine-1.3.37
44 reactos/dll/win32/avifil32 # Synced to Wine-1.3.37
45 reactos/dll/win32/bcrypt # Synced to Wine-1.5.4
46 reactos/dll/win32/browseui # Out of sync
47 reactos/dll/win32/cabinet # Synced to Wine-1.5.4
48 reactos/dll/win32/clusapi # Synced to Wine-1.5.4
49 reactos/dll/win32/comcat # Synced to Wine-1.5.4
50 reactos/dll/win32/comctl32 # Synced to Wine 1.3.37
51 reactos/dll/win32/comdlg32 # Synced to Wine 1.3.37
52 reactos/dll/win32/compstui # Synced to Wine-1.5.4
53 reactos/dll/win32/credui # Synced to Wine-1.5.4
54 reactos/dll/win32/crypt32 # Synced to Wine-1.3.37
55 reactos/dll/win32/cryptdlg # Synced to Wine-1.5.4
56 reactos/dll/win32/cryptdll # Synced to Wine-1.5.4
57 reactos/dll/win32/cryptnet # Synced to Wine-1.3.37
58 reactos/dll/win32/cryptui # Synced to Wine-1.5.4
59 reactos/dll/win32/dbghelp # Synced to Wine-1.3.37
60 reactos/dll/win32/dciman32 # Synced to Wine-1.5.4
61 reactos/dll/win32/dwmapi # Synced to Wine-1.5.4
62 reactos/dll/win32/faultrep # Synced to Wine-1.5.4
63 reactos/dll/win32/fusion # Synced to Wine-1.5.4
64 reactos/dll/win32/gdiplus # Synced to Wine-1.5.4
65 reactos/dll/win32/hhctrl.ocx # Autosync
66 reactos/dll/win32/hlink # Synced to Wine-1.5.4
67 reactos/dll/win32/hnetcfg # Synced to Wine-1.5.4
68 reactos/dll/win32/httpapi # Synced to Wine-1.5.4
69 reactos/dll/win32/iccvid # Autosync
70 reactos/dll/win32/icmp # Synced to Wine-0_9_10
71 reactos/dll/win32/imaadp32.acm # Synced to Wine-1.5.4
72 reactos/dll/win32/imagehlp # Synced to Wine-1.5.4
73 reactos/dll/win32/imm32 # Synced to Wine-1.5.4
74 reactos/dll/win32/inetcomm # Synced to Wine-1.5.4
75 reactos/dll/win32/inetmib1 # Synced to Wine-1.5.4
76 reactos/dll/win32/initpki # Synced to Wine-1.5.4
77 reactos/dll/win32/inseng # Synced to Wine-1.5.4
78 reactos/dll/win32/iphlpapi # Out of sync
79 reactos/dll/win32/itircl # Synced to Wine-1.5.4
80 reactos/dll/win32/itss # Synced to Wine-1.5.4
81 reactos/dll/win32/jscript # Autosync
82 reactos/dll/win32/localspl # Synced to Wine-1.1.14?
83 reactos/dll/win32/localspl # Autosync
84 reactos/dll/win32/localui # Autosync
85 reactos/dll/win32/lz32 # Synced to Wine-1.5.4
86 reactos/dll/win32/mapi32 # Autosync
87 reactos/dll/win32/mciavi32 # Synced to Wine-1.5.4
88 reactos/dll/win32/mcicda # Synced to Wine-1.5.4
89 reactos/dll/win32/mciqtz32 # Synced to Wine-1.5.4
90 reactos/dll/win32/mciseq # Synced to Wine-1.5.4
91 reactos/dll/win32/mciwave # Synced to Wine-1.5.4
92 reactos/dll/win32/mlang # Synced to Wine-1.5.4
93 reactos/dll/win32/mpr # Autosync
94 reactos/dll/win32/mprapi # Synced to Wine-1.5.4
95 reactos/dll/win32/msacm32 # Autosync
96 reactos/dll/win32/msadp32.acm # Synced to Wine-1.5.4
97 reactos/dll/win32/mscat32 # Synced to Wine-1.5.4
98 reactos/dll/win32/mscms # Synced to Wine-1.5.4
99 reactos/dll/win32/mscoree # Synced to Wine-1.5.4
100 reactos/dll/win32/msctf # Synced to Wine-1.5.4
101 reactos/dll/win32/msftedit # Synced to Wine-1.5.4
102 reactos/dll/win32/msg711.acm # Synced to Wine-1.5.4
103 reactos/dll/win32/msgsm32.acm # Synced to Wine-1.5.4
104 reactos/dll/win32/mshtml # Autosync
105 reactos/dll/win32/mshtml.tlb # Autosync
106 reactos/dll/win32/msi # Synced to Wine-1.5.19
107 reactos/dll/win32/msimg32 # Synced to Wine-1.5.4
108 reactos/dll/win32/msimtf # Synced to Wine-1.5.4
109 reactos/dll/win32/msisip # Synced to Wine-1.5.4
110 reactos/dll/win32/msisys.ocx # Synced to Wine-1.5.4
111 reactos/dll/win32/msnet32 # Synced to Wine-1.5.4
112 reactos/dll/win32/msrle32 # Autosync
113 reactos/dll/win32/mssign32 # Synced to Wine-1.5.4
114 reactos/dll/win32/mssip32 # Synced to Wine-1.5.4
115 reactos/dll/win32/mstask # Synced to Wine-1.5.4
116 reactos/dll/win32/msvcrt20 # Out of sync
117 reactos/dll/win32/msvcrt40 # Out of sync
118 reactos/dll/win32/msvfw32 # Autosync
119 reactos/dll/win32/msvidc32 # Autosync
120 reactos/dll/win32/msxml # Synced to Wine-1.5.12
121 reactos/dll/win32/msxml2 # Synced to Wine-1.5.12
122 reactos/dll/win32/msxml3 # Synced to Wine-1.5.12
123 reactos/dll/win32/msxml4 # Synced to Wine-1.5.12
124 reactos/dll/win32/msxml6 # Synced to Wine-1.5.12
125 reactos/dll/win32/nddeapi # Synced to Wine-1.5.4
126 reactos/dll/win32/netapi32 # Autosync
127 reactos/dll/win32/ntdsapi # Synced to Wine-1.5.4
128 reactos/dll/win32/ntprint # Synced to Wine-1.5.4
129 reactos/dll/win32/objsel # Synced to Wine-1.5.4
130 reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
131 reactos/dll/win32/odbccp32 # Synced to Wine-1.5.4
132 reactos/dll/win32/ole32 # Synced to Wine-1.5.4
133 reactos/dll/win32/oleacc # Autosync
134 reactos/dll/win32/oleaut32 # Autosync
135 reactos/dll/win32/olecli32 # Synced to Wine-1.5.4
136 reactos/dll/win32/oledlg # Autosync
137 reactos/dll/win32/olepro32 # Autosync
138 reactos/dll/win32/olesvr32 # Synced to Wine-1.5.4
139 reactos/dll/win32/olethk32 # Synced to Wine-1.5.4
140 reactos/dll/win32/pdh # Autosync
141 reactos/dll/win32/pidgen # Synced to Wine-1.5.4
142 reactos/dll/win32/powrprof # Forked at Wine-1.0rc5
143 reactos/dll/win32/printui # Synced to Wine-1.5.4
144 reactos/dll/win32/pstorec # Synced to Wine-1.5.4
145 reactos/dll/win32/qmgr # Synced to Wine-1.2-rc5?
146 reactos/dll/win32/qmgrprxy # Synced to Wine-1.14?
147 reactos/dll/win32/query # Synced to Wine-1.5.4
148 reactos/dll/win32/rasapi32 # Synced to Wine-1.5.4
149 reactos/dll/win32/resutils # Synced to Wine-1.5.4
150 reactos/dll/win32/riched20 # Synced to Wine-1.5.4
151 reactos/dll/win32/riched32 # Synced to Wine-1.5.4
152 reactos/dll/win32/rpcrt4 # Synced to Wine-1.3.26
153 reactos/dll/win32/rsabase # Autosync
154 reactos/dll/win32/rsaenh # Synced to Wine-1.5.4
155 reactos/dll/win32/sccbase # Synced to Wine-1.5.4
156 reactos/dll/win32/schannel # Synced to Wine-1.5.4
157 reactos/dll/win32/secur32 # Forked
158 reactos/dll/win32/security # Forked (different .spec)
159 reactos/dll/win32/sensapi # Synced to Wine-1.5.4
160 reactos/dll/win32/setupapi # Forked at Wine-20050524
161 reactos/dll/win32/shdoclc # Synced to Wine-1.2
162 reactos/dll/win32/shdocvw # Autosync
163 reactos/dll/win32/shell32 # Forked at Wine-20071011
164 reactos/dll/win32/shfolder # Autosync
165 reactos/dll/win32/shlwapi # Synced to Wine-1.5.13
166 reactos/dll/win32/slbcsp # Synced to Wine-1.5.4
167 reactos/dll/win32/snmpapi # Synced to Wine-1.5.4
168 reactos/dll/win32/softpub # Synced to Wine-1.5.4
169 reactos/dll/win32/spoolss # Synced to Wine-1.5.4
170 reactos/dll/win32/stdole2.tlb # Synced to Wine-1.3.37
171 reactos/dll/win32/stdole32.tlb # Synced to Wine-1.3.37
172 reactos/dll/win32/sti # Synced to Wine-1.5.4
173 reactos/dll/win32/sxs # Synced to Wine-1.5.4
174 reactos/dll/win32/tapi32 # Autosync
175 reactos/dll/win32/traffic # Synced to Wine-1.5.4
176 reactos/dll/win32/twain_32 # Out of sync
177 reactos/dll/win32/unicows # Synced to Wine-1.3.32 (Win9x only, why do we need this?!)
178 reactos/dll/win32/updspapi # Synced to Wine-1.5.4
179 reactos/dll/win32/url # Synced to Wine-1.5.4
180 reactos/dll/win32/urlmon # Autosync
181 reactos/dll/win32/usp10 # Synced to Wine-1.5.4
182 reactos/dll/win32/uxtheme # Forked
183 reactos/dll/win32/version # Autosync
184 reactos/dll/win32/wer # Autosync
185 reactos/dll/win32/windowscodecs # Autosync
186 reactos/dll/win32/winemp3.acm # Synced to Wine-1.5.4
187 reactos/dll/win32/wing32 # Out of sync
188 reactos/dll/win32/winhttp # Synced to Wine-1.5.4
189 reactos/dll/win32/wininet # Synced to Wine-1.5.4
190 reactos/dll/win32/winmm # Forked at Wine-20050628
191 reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
192 reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628
193 reactos/dll/win32/wintrust # Synced to Wine-1.5.4
194 reactos/dll/win32/wldap32 # Autosync
195 reactos/dll/win32/wmi # Synced to Wine-1.5.4
196 reactos/dll/win32/wtsapi32 # Synced to Wine-1.5.4
197 reactos/dll/win32/wuapi # Synced to Wine-1.5.4
198 reactos/dll/win32/xinput1_1 # Synced to Wine-1.5.4
199 reactos/dll/win32/xinput1_2 # Synced to Wine-1.5.4
200 reactos/dll/win32/xinput1_3 # Synced to Wine-1.5.4
201 reactos/dll/win32/xinput9_1_0 # Synced to Wine-1.5.4
202 reactos/dll/win32/xmllite # Synced to Wine-1.5.4
203
204 reactos/dll/cpl/inetcpl # Synced to Wine-1.3.21
205
206 ReactOS shares the following programs with Winehq.
207
208 reactos/base/applications/cmdutils/xcopy # Synced to Wine-1.3.37
209 reactos/base/applications/games/winmine # Forked at Wine-1_3_5
210 reactos/base/applications/extrac32 # Autosync
211 reactos/base/applications/iexplore # Autosync
212 reactos/base/applications/notepad # Forked at Wine-20041201
213 reactos/base/applications/reg # Autosync
214 reactos/base/applications/regedit # Out of sync
215 reactos/base/applications/winhlp32 # Autosync
216 reactos/base/applications/wordpad # Autosync
217 reactos/base/services/rpcss # Synced to Wine-20081105
218 reactos/base/system/expand # Autosync
219 reactos/base/system/msiexec # Autosync
220 reactos/modules/rosapps/winfile # Autosync
221
222 In addition the following libs, dlls and source files are mostly based on code ported
223 from Winehq CVS. If you are looking to update something in these files
224 check Wine current souces first as it may already be fixed.
225
226 reactos/lib/sdk/uuid # Synced to Wine-1.1.42
227
228 advapi32 -
229 reactos/dll/win32/advapi32/crypt/*.c # Unknown
230 reactos/dll/win32/advapi32/sec/cred.c # Out of Sync
231 reactos/dll/win32/advapi32/sec/sid.c # Out of Sync
232
233 gdi32 -
234 reactos/dll/win32/gdi32/objects/linedda.c # Synced at 20090410
235
236 kernel32 -
237 reactos/dll/win32/kernel32/wine/actctx.c # Partly synced
238 reactos/dll/win32/kernel32/wine/comm.c # Synced in r52754
239 reactos/dll/win32/kernel32/wine/lzexpand.c # Synced in r52754
240 reactos/dll/win32/kernel32/wine/profile.c # Synced in r52754
241 reactos/dll/win32/kernel32/wine/res.c # Synced in r52754
242 reactos/dll/win32/kernel32/winnls/string/casemap.c # Synced in r52754
243 reactos/dll/win32/kernel32/winnls/string/chartype.c # Synced in r52754
244 reactos/dll/win32/kernel32/winnls/string/collation.c # Synced in r52754
245 reactos/dll/win32/kernel32/winnls/string/format_msg.c # Synced to Wine-1.5.4
246 reactos/dll/win32/kernel32/winnls/string/lang.c # Synced in r52754
247 reactos/dll/win32/kernel32/winnls/string/lcformat.c # Synced in r52754
248 reactos/dll/win32/kernel32/winnls/string/nls.c # Synced in r52754
249 reactos/dll/win32/kernel32/winnls/string/sortkey.c # Synced in r52754
250
251 msvcrt -
252 reactos/lib/sdk/crt/except/cpp.c # Synced at 20080528
253 reactos/lib/sdk/crt/except/cppexcept.c # Synced at 20071111
254 reactos/lib/sdk/crt/string/scanf.c/h # Synced to Wine-1_1_27
255 reactos/lib/sdk/crt/strings/wcs.c # Synced at 20080611
256 reactos/lib/sdk/crt/wine/heap.c # Synced at 20080529
257 reactos/lib/sdk/crt/wine/undname.c # Synced at 20081130
258 reactos/lib/sdk/crt/thread/thread.c # Synced at 20080604
259
260 User32 -
261 reactos/dll/win32/user32/controls/button.c # Synced to Wine-1_1_39
262 reactos/dll/win32/user32/controls/combo.c # Synced to Wine-1.5.10
263 reactos/dll/win32/user32/controls/edit.c # Synced to Wine-1_1_40
264 reactos/dll/win32/user32/controls/icontitle.c # Synced to Wine-1_1_39
265 reactos/dll/win32/user32/controls/listbox.c # Synced to Wine-1_1_39
266 reactos/dll/win32/user32/controls/scrollbar.c # Forked
267 reactos/dll/win32/user32/controls/static.c # Synced to Wine-1_1_39
268
269 reactos/dll/win32/user32/include/dde_private.h # Synced to wine 1.1.24
270
271 reactos/dll/win32/user32/misc/dde.c # Synced to wine 1.1.24 (dde_misc.c)
272 reactos/dll/win32/user32/misc/ddeclient.c # Synced to Wine-1_1_23
273 reactos/dll/win32/user32/misc/ddeserver.c # Synced to Wine-1_1_23
274 reactos/dll/win32/user32/misc/exticon.c # Synced to Wine-1_1_22
275 reactos/dll/win32/user32/misc/resources.c # Forked?
276 reactos/dll/win32/user32/misc/winhelp.c # Last sync date unknown
277 reactos/dll/win32/user32/misc/wsprintf.c # Synced to Wine-1_1_23
278
279 reactos/dll/win32/user32/windows/cursoricon # Forked from wine 1.2-rc7
280 reactos/dll/win32/user32/windows/defwnd.c # Forked
281 reactos/dll/win32/user32/windows/draw.c # Forked at Wine-20020904 (uitools.c)
282 reactos/dll/win32/user32/windows/mdi.c # Synced to Wine-1_1_40
283 reactos/dll/win32/user32/windows/menu.c # Forked
284 reactos/dll/win32/user32/windows/messagebox.c # Forked
285 reactos/dll/win32/user32/windows/rect.c # Forked (uitools.c)
286 reactos/dll/win32/user32/windows/spy.c # Synced to Wine-1_1_40
287 reactos/dll/win32/user32/windows/text.c # Forked (lstr.c)
288 reactos/dll/win32/user32/windows/winpos.c # Forked
289
290 ws2_32 -
291 reactos/dll/win32/ws2_32/misc/async.c # Synced to Wine-1.5.4
292
293 Update process for autosync DLLs
294
295 *** This process can only be done on Microsoft Windows ***
296 - Download wineimport.cmd at svn://svn.reactos.org/project-tools/trunk/
297 - Download cvs command line program and be sure to put it in your path
298 (available at http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/ )
299 - Download svn command line program and be sure to put it in your path
300 (available at http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 )
301 - Download patch command line program and be sure to put it in your path
302 (available at http://gnuwin32.sourceforge.net/packages/patch.htm )
303 - Optionally, download junction.exe and put it in your path
304 (available at http://www.sysinternals.com/Utilities/Junction.html )
305 - Cd to the directory containing wineimport.cmd
306 - Run
307 "wineimport.cmd fullprocessing {path_to_your_reactos_directory} {name_of_the_wine_dll}"
308 - In case of error, you can
309 1) add missing definitions to ReactOS headers
310 2) fix {name_of_the_wine_dll}_ros.diff patch file, by removing outdated changes
311 3) or modify Wine code, by adding a {name_of_the_wine_dll}_ros.diff patch,
312 which will be applied after Wine source checkout
313 DO NOT DIRECTLY MODIFY WINE SOURCE CODE
314 - Once Wine DLL compiles, install and run ReactOS and search for regressions
315 - In case of regression, you can
316 1) Fix ReactOS code (not in the shared DLL)
317 2) or update the {name_of_the_wine_dll}_ros.diff patch file
318 - Commit your changes with the "Autosyncing with Wine HEAD" commit message