xref: /reactos/media/doc/WINESYNC.txt (revision e5993f13)
1# ReactOS WINE porting/syncing reference file
2# Update this file when you port/sync a dll/program from WINE.
3
4The ReactOS Project shares quite a bit of code with the WINE project.
5This document should provide a complete reference for all of the
6locations in the ReactOS source tree where code is shared between the
7two projects. If you find something is missing from this documentation
8please add it.
9
10If you find that a function in ReactOS that is not implemented properly
11and is based on WINE sources, check the latest Winehq CVS and see if
12it has been fixed there. If so, please submit a patch to
13ros-dev@reactos.org. Otherwise please send a patch to both
14wine-patches@winehq.com and ros-dev@reactos.org
15
16The following build tools are shared with Wine.
17
18sdk/tools/unicode               # Synced to WineStaging-4.18
19sdk/tools/widl                  # Synced to WineStaging-4.0
20sdk/tools/wpp                   # Synced to WineStaging-2.9
21
22The following libraries are shared with Wine.
23
24dll/directx/wine/amstream       # Synced to WineStaging-3.9
25dll/directx/wine/d3d8           # Synced to WineStaging-3.3
26dll/directx/wine/d3d9           # Synced to WineStaging-3.3
27dll/directx/wine/d3dcompiler_43 # Synced to WineStaging-4.18
28dll/directx/wine/d3drm          # Synced to WineStaging-4.18
29dll/directx/wine/d3dx9_24 => 43 # Synced to WineStaging-6.0-rc5
30dll/directx/wine/d3dxof         # Synced to WineStaging-4.18
31dll/directx/wine/ddraw          # Synced to WineStaging-3.3 (+ partial sync of ddraw_private.h, palette.c, and surface.c to wine-7.19-557-g13cc08e32d6)
32dll/directx/wine/devenum        # Synced to WineStaging-4.18
33dll/directx/wine/dinput         # Synced to WineStaging-4.18
34dll/directx/wine/dinput8        # Synced to WineStaging-4.18
35dll/directx/wine/dmusic         # Synced to WineStaging-4.18
36dll/directx/wine/dplay          # Synced to WineStaging-3.3
37dll/directx/wine/dplayx         # Synced to WineStaging-4.18
38dll/directx/wine/dpnhpast       # Synced to WineStaging-4.18
39dll/directx/wine/dsound         # Forked at Wine-1.3.29. Newer versions are depending on NT6+ mmdevapi, so the further syncing makes no sense until we're retargeted to Vista or newer.
40dll/directx/wine/dxdiagn        # Synced to WineStaging-4.18
41dll/directx/wine/msdmo          # Synced to WineStaging-4.18
42dll/directx/wine/qcap           # Synced to WineStaging-3.3
43dll/directx/wine/qedit          # Synced to WineStaging-3.17
44dll/directx/wine/quartz         # Synced to WineStaging-3.9
45dll/directx/wine/wined3d        # Synced to WineStaging-3.3
46
47dll/win32/activeds            # Synced to WineStaging-4.18
48dll/win32/actxprxy            # Synced to WineStaging-3.3
49dll/win32/advpack             # Synced to WineStaging-4.18
50dll/win32/atl                 # Synced to WineStaging-4.18
51dll/win32/atl80               # Synced to WineStaging-4.18
52dll/win32/atl100              # Synced to WineStaging-3.3
53dll/win32/avifil32            # Synced to WineStaging-4.18
54dll/win32/bcrypt              # Synced to WineStaging-1.9.23 (+ winetest synced to 8d8936cbb6fea3cac862e059e814527f5361f48b, a.k.a 20161206-BJ)
55dll/win32/browseui            # Out of sync
56dll/win32/cabinet             # Synced to WineStaging-4.18
57dll/win32/clusapi             # Synced to WineStaging-3.3
58dll/win32/comcat              # Synced to WineStaging-3.3
59dll/win32/comctl32            # Synced to WineStaging-3.3
60dll/win32/comdlg32            # Synced to WineStaging-4.18
61dll/win32/compstui            # Synced to WineStaging-4.18
62dll/win32/credui              # Synced to WineStaging-4.18
63dll/win32/crypt32             # Synced to WineStaging-4.0
64dll/win32/cryptdlg            # Synced to WineStaging-4.18
65dll/win32/cryptdll            # Synced to WineStaging-4.18
66dll/win32/cryptnet            # Synced to WineStaging-4.18
67dll/win32/cryptui             # Synced to WineStaging-4.18
68dll/win32/dbgeng              # Synced to WineStaging-4.18
69dll/win32/dbghelp             # Synced to WineStaging-5.16
70dll/win32/dciman32            # Synced to WineStaging-3.3
71dll/win32/faultrep            # Synced to WineStaging-4.18
72dll/win32/fontsub             # Synced to WineStaging-2.9
73dll/win32/fusion              # Synced to WineStaging-4.18
74dll/win32/gdiplus             # Synced to WineStaging-4.0
75dll/win32/hhctrl.ocx          # Synced to WineStaging-4.18
76dll/win32/hlink               # Synced to WineStaging-4.18
77dll/win32/hnetcfg             # Synced to WineStaging-4.18
78dll/win32/iccvid              # Synced to WineStaging-4.0
79dll/win32/ieframe             # Synced to WineStaging-4.18
80dll/win32/imaadp32.acm        # Synced to WineStaging-4.0
81dll/win32/imagehlp            # Synced to WineStaging-4.18
82dll/win32/imm32               # Forked at WineStaging-4.18
83dll/win32/inetcomm            # Synced to WineStaging-4.18
84dll/win32/inetmib1            # Synced to WineStaging-4.18
85dll/win32/initpki             # Synced to WineStaging-4.18
86dll/win32/inseng              # Synced to WineStaging-4.18
87dll/win32/iphlpapi            # Out of sync
88dll/win32/itircl              # Synced to WineStaging-4.18
89dll/win32/itss                # Synced to WineStaging-4.18
90dll/win32/jscript             # Synced to WineStaging-4.18
91dll/win32/jsproxy             # Synced to WineStaging-4.18
92dll/win32/loadperf            # Synced to WineStaging-4.18
93dll/win32/lz32                # Synced to WineStaging-3.3
94dll/win32/mapi32              # Synced to WineStaging-4.18
95dll/win32/mciavi32            # Synced to WineStaging-4.18
96dll/win32/mcicda              # Synced to WineStaging-3.3
97dll/win32/mciqtz32            # Synced to WineStaging-4.18
98dll/win32/mciseq              # Synced to WineStaging-4.18
99dll/win32/mciwave             # Synced to WineStaging-4.18
100dll/win32/mgmtapi             # Synced to WineStaging-3.3
101dll/win32/mlang               # Synced to WineStaging-4.18
102dll/win32/mmdevapi            # Synced to WineStaging-4.18
103dll/win32/mpr                 # Synced to WineStaging-4.18
104dll/win32/mprapi              # Synced to WineStaging-3.3
105dll/win32/msacm32             # Synced to WineStaging-4.18
106dll/win32/msacm32.drv         # Synced to WineStaging-3.3
107dll/win32/msadp32.acm         # Synced to WineStaging-4.0
108dll/win32/mscat32             # Synced to WineStaging-4.18
109dll/win32/mscms               # Synced to WineStaging-4.18
110dll/win32/mscoree             # Synced to Wine-1.5.4
111dll/win32/msctf               # Synced to WineStaging-4.18
112dll/win32/msftedit            # Synced to WineStaging-4.18
113dll/win32/msg711.acm          # Synced to WineStaging-4.18
114dll/win32/msgsm32.acm         # Synced to WineStaging-4.0
115dll/win32/mshtml              # Synced to WineStaging-1.7.55
116dll/win32/mshtml.tlb          # Synced to WineStaging-1.7.55
117dll/win32/msi                 # Synced to WineStaging-7.3
118dll/win32/msimg32             # Synced to WineStaging-3.3
119dll/win32/msimtf              # Synced to WineStaging-4.18
120dll/win32/msisip              # Synced to WineStaging-4.18
121dll/win32/msisys.ocx          # Synced to WineStaging-4.18
122dll/win32/msnet32             # Synced to WineStaging-4.18
123dll/win32/mspatcha            # Forked at WineStaging-3.3
124dll/win32/msrle32             # Synced to WineStaging-4.18
125dll/win32/mssign32            # Synced to WineStaging-4.18
126dll/win32/mssip32             # Synced to WineStaging-4.18
127dll/win32/mstask              # Synced to WineStaging-3.3
128dll/win32/msvcrt20            # Out of sync
129dll/win32/msvcrt40            # Out of sync
130dll/win32/msvfw32             # Synced to WineStaging-4.18
131dll/win32/msvidc32            # Synced to WineStaging-4.0
132dll/win32/msxml               # Synced to WineStaging-3.3
133dll/win32/msxml2              # Synced to WineStaging-3.3
134dll/win32/msxml3/domdoc       # Synced to WineStaging-4.18
135dll/win32/msxml3/httpreq      # Synced to WineStaging-4.18
136dll/win32/msxml3/saxreader    # Synced to WineStaging-4.18
137dll/win32/msxml3/schema       # Synced to Wine-6.14
138dll/win32/msxml3/xmldoc       # Synced to WineStaging-4.18
139dll/win32/msxml3/xmlparser    # Synced to WineStaging-4.18
140dll/win32/msxml3/xmlview      # Synced to WineStaging-4.18
141dll/win32/msxml4              # Synced to WineStaging-3.3
142dll/win32/msxml6              # Synced to WineStaging-3.3
143dll/win32/nddeapi             # Synced to WineStaging-3.3
144dll/win32/netapi32            # Forked at Wine-1.3.34
145dll/win32/npptools            # Synced to WineStaging-4.18
146dll/win32/ntdsapi             # Synced to WineStaging-4.18
147dll/win32/objsel              # Synced to WineStaging-4.18
148dll/win32/odbc32              # Synced to WineStaging-4.18. Depends on port of Linux ODBC.
149dll/win32/odbccp32            # Synced to WineStaging-4.18
150dll/win32/ole32               # Synced to WineStaging-4.18
151dll/win32/oleacc              # Synced to WineStaging-4.18
152dll/win32/oleaut32            # Synced to WineStaging-4.18
153dll/win32/olecli32            # Synced to WineStaging-4.18
154dll/win32/oledlg              # Synced to WineStaging-4.18
155dll/win32/olepro32            # Synced to WineStaging-3.3
156dll/win32/olesvr32            # Synced to WineStaging-4.18
157dll/win32/olethk32            # Synced to WineStaging-3.3
158dll/win32/pdh                 # Synced to WineStaging-4.18
159dll/win32/pidgen              # Synced to WineStaging-4.18
160dll/win32/powrprof            # Forked at Wine-1.0rc5
161dll/win32/printui             # Synced to WineStaging-4.18
162dll/win32/propsys             # Synced to WineStaging-4.18
163dll/win32/pstorec             # Synced to WineStaging-3.3
164dll/win32/qmgr                # Synced to WineStaging-4.18
165dll/win32/qmgrprxy            # Synced to WineStaging-2.9
166dll/win32/query               # Synced to WineStaging-4.18
167dll/win32/rasapi32            # Synced to WineStaging-3.3
168dll/win32/regapi              # Synced to WineStaging-5.7
169dll/win32/resutils            # Synced to WineStaging-3.3
170dll/win32/riched20            # Synced to WineStaging-4.18
171dll/win32/riched32            # Synced to WineStaging-3.3
172dll/win32/rpcrt4              # Synced to WineStaging-4.18
173dll/win32/rsabase             # Synced to WineStaging-3.3
174dll/win32/rsaenh              # Synced to WineStaging-2.9
175dll/win32/sccbase             # Synced to WineStaging-4.18
176dll/win32/schannel            # Synced to WineStaging-3.3
177dll/win32/scrrun              # Synced to WineStaging-4.18
178dll/win32/secur32             # Forked
179dll/win32/security            # Forked (different .spec)
180dll/win32/sensapi             # Synced to WineStaging-4.18
181dll/win32/setupapi            # Forked at Wine-20050524
182dll/win32/shdoclc             # Synced to WineStaging-3.3
183dll/win32/shdocvw             # Synced to WineStaging-4.18
184dll/win32/shell32             # Forked at Wine-20071011
185dll/win32/shfolder            # Synced to WineStaging-3.3
186dll/win32/shlwapi             # Synced to WineStaging-3.3
187dll/win32/slbcsp              # Synced to WineStaging-4.18
188dll/win32/snmpapi             # Synced to WineStaging-4.18
189dll/win32/softpub             # Synced to WineStaging-2.9
190dll/win32/stdole2.tlb         # Synced to WineStaging-3.3
191dll/win32/stdole32.tlb        # Synced to WineStaging-3.3
192dll/win32/sti                 # Synced to WineStaging-4.18
193dll/win32/sxs                 # Synced to WineStaging-4.18
194dll/win32/t2embed             # Synced to WineStaging-4.18
195dll/win32/tapi32              # Synced to WineStaging-4.18
196dll/win32/traffic             # Synced to WineStaging-3.3
197dll/win32/twain_32            # Synced to WineStaging-4.18
198dll/win32/updspapi            # Synced to WineStaging-4.18
199dll/win32/url                 # Synced to WineStaging-3.3
200dll/win32/urlmon              # Synced to WineStaging-4.18
201dll/win32/usp10               # Synced to WineStaging-4.18
202dll/win32/uxtheme             # Forked
203dll/win32/vbscript            # Synced to WineStaging-4.18
204dll/win32/version             # Synced to WineStaging-4.18
205dll/win32/vssapi              # Synced to WineStaging-4.18
206dll/win32/wbemdisp            # Synced to WineStaging-4.18
207dll/win32/wbemprox            # Synced to WineStaging-4.18
208dll/win32/windowscodecs       # Synced to WineStaging-4.18
209dll/win32/windowscodecsext    # Synced to WineStaging-2.9
210dll/win32/winemp3.acm         # Synced to WineStaging-4.18
211dll/win32/wing32              # Synced to WineStaging-3.3
212dll/win32/winhttp             # Synced to WineStaging-4.18
213dll/win32/wininet             # Synced to WineStaging-6.0rc1
214dll/win32/winmm               # Forked at Wine-20050628
215dll/win32/winmm/midimap       # Forked at Wine-20050628
216dll/win32/winmm/wavemap       # Forked at Wine-20050628
217dll/win32/winscard            # Synced to WineStaging-4.18
218dll/win32/wintrust            # Synced to WineStaging-4.18
219dll/win32/wldap32             # Synced to WineStaging-4.18
220dll/win32/wmi                 # Synced to WineStaging-2.9
221dll/win32/wmiutils            # Synced to WineStaging-4.18
222dll/win32/wmvcore             # Synced to WineStaging-4.18
223dll/win32/wshom.ocx           # Synced to WineStaging-4.18
224dll/win32/wtsapi32            # Synced to WineStaging-4.18
225dll/win32/wuapi               # Synced to WineStaging-4.18
226dll/win32/xinput1_1           # Synced to WineStaging-2.9
227dll/win32/xinput1_2           # Synced to WineStaging-2.9
228dll/win32/xinput1_3           # Synced to WineStaging-2.9
229dll/win32/xinput9_1_0         # Synced to WineStaging-2.9
230dll/win32/xmllite             # Synced to WineStaging-4.18
231dll/win32/xolehlp             # Synced to WineStaging-3.21
232
233dll/cpl/inetcpl               # Synced to WineStaging-4.18
234
235win32ss/printing/monitors/localmon/ui/  # Synced to WineStaging-4.18 (known there as /dll/win32/localui)
236
237ReactOS shares the following programs with Winehq.
238
239base/applications/cmdutils/cscript  # Synced to WineStaging-4.18
240base/applications/cmdutils/reg      # Synced to WineStaging-6.23
241base/applications/cmdutils/schtasks # Synced to WineStaging-3.3
242base/applications/cmdutils/taskkill # Synced to WineStaging-3.17
243base/applications/cmdutils/wmic     # Synced to WineStaging-4.0
244base/applications/cmdutils/wscript  # Synced to WineStaging-4.18
245base/applications/cmdutils/xcopy    # Synced to WineStaging-3.17
246base/applications/games/winmine     # Synced to WineStaging-2.16 with our own resources.
247base/applications/extrac32          # Synced to WineStaging-4.0
248base/applications/iexplore          # Synced to WineStaging-3.3
249base/applications/notepad           # Forked at Wine-20041201
250base/applications/winhlp32          # Synced to WineStaging-4.0
251base/applications/wordpad           # Synced to WineStaging-1.9.16
252base/applications/write             # Synced to WineStaging-3.3
253base/services/rpcss                 # Synced to WineStaging-3.3
254base/system/expand                  # Synced to WineStaging-3.3
255base/system/msiexec                 # Synced to WineStaging-3.3
256modules/rosapps/applications/winfile # Autosync
257
258In addition the following libs, dlls and source files are mostly based on code ported
259from Winehq CVS. If you are looking to update something in these files
260check Wine current sources first as it may already be fixed.
261
262sdk/lib/3rdparty/strmbase           # Synced to WineStaging-3.3
263
264sdk/lib/rtl/actctx.c                # Partly synced with WineStaging-1.9.16
265sdk/lib/rtl/timerqueue.c            # Partly synced with WineStaging-1.7.55
266sdk/lib/rtl/wait.c                  # Partly synced with WineStaging-1.7.55
267
268advapi32 -
269  dll/win32/advapi32/wine/cred.c         # Synced to WineStaging-3.3
270  dll/win32/advapi32/wine/crypt.c        # Synced to WineStaging-3.3
271  dll/win32/advapi32/wine/crypt_des.c    # Synced to WineStaging-3.3
272  dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-3.3
273  dll/win32/advapi32/wine/security.c     # Out of Sync
274
275gdi32 -
276  dll/win32/gdi32/objects/linedda.c     # Synced at 20090410
277
278iphlpapi -
279  modules/rostests/winetests/iphlpapi # Synced to WineStaging-1.9.11
280
281kernel32 -
282  dll/win32/kernel32/wine/actctx.c               # Partly synced with Wine 1.7.55
283  dll/win32/kernel32/wine/comm.c                 # Synced in r52754
284  dll/win32/kernel32/wine/lzexpand.c             # Synced to WineStaging-3.3
285  dll/win32/kernel32/wine/profile.c              # Synced to WineStaging-3.3
286  dll/win32/kernel32/wine/res.c                  # Partially synced to WineStaging-3.3
287  dll/win32/kernel32/winnls/string/casemap.c     # Synced to WineStaging-3.3
288  dll/win32/kernel32/winnls/string/chartype.c    # Synced in r52754
289  dll/win32/kernel32/winnls/string/collation.c   # Synced to WineStaging-1.7.55
290  dll/win32/kernel32/winnls/string/digitmap.c    # Synced to WineStaging-3.3
291  dll/win32/kernel32/winnls/string/fold.c        # Synced to WineStaging-3.3
292  dll/win32/kernel32/winnls/string/format_msg.c  # Synced to WineStaging-3.3
293  dll/win32/kernel32/winnls/string/lang.c        # Synced in r52754
294  dll/win32/kernel32/winnls/string/lcformat.c    # Synced to WineStaging-3.21
295  dll/win32/kernel32/winnls/string/nls.c         # Synced in r52754
296  dll/win32/kernel32/winnls/string/sortkey.c     # Synced to WineStaging-3.3
297
298lpk -
299  dll/win32/lpk/bidi.c                           # Synced to Wine-4.9 (gdi32/bidi.c)
300  dll/win32/lpk/direction.c                      # Synced to Wine-4.9 (gdi32/direction.c)
301
302msvcrt -
303  sdk/lib/crt/conio/cputs.c             # Synced to WineStaging-1.9.16
304  sdk/lib/crt/except/cpp.c              # Synced at 20080528
305  sdk/lib/crt/except/cppexcept.c        # Synced at 20071111
306  sdk/lib/crt/process/_cwait.c          # Synced to WineStaging-1.7.37
307  sdk/lib/crt/signal/xcptinfo.c         # Synced to WineStaging-1.7.37
308  sdk/lib/crt/string/scanf.c/h          # Synced to Wine-1.7.17
309  sdk/lib/crt/string/strtoi64.c         # Synced to WineStaging-1.9.9
310  sdk/lib/crt/string/strtok.c           # Synced to WineStaging-1.9.16
311  sdk/lib/crt/string/strtok_s.c         # Synced to WineStaging-1.9.16
312  sdk/lib/crt/string/strtoul.c          # Synced to WineStaging-1.9.9
313  sdk/lib/crt/string/strxfrm.c          # Synced to Wine-1.9.16
314  sdk/lib/crt/string/wcs.c              # Synced at 20080611
315  sdk/lib/crt/string/wctype.c           # Synced to WineStaging-1.9.16
316  sdk/lib/crt/string/wtoi64.c           # Synced to Wine-1.9.16
317  sdk/lib/crt/mbstring/ischira.c        # Synced to Wine-1.9.16
318  sdk/lib/crt/wine/heap.c               # Synced at 20080529
319  sdk/lib/crt/wine/undname.c            # Synced to WineStaging-1.9.16
320  sdk/lib/crt/process/thread.c          # Synced to WineStaging-1.7.55
321
322regedit
323  base/applications/regedit/regedit.c   # Synced to Wine-7.17
324  base/applications/regedit/regproc.c   # Synced to Wine-7.17
325
326user32 -
327  win32ss/user/user32/controls/button.c    # Synced to WineStaging-1.7.37
328  win32ss/user/user32/controls/combo.c     # Synced to WineStaging-1.7.37
329  win32ss/user/user32/controls/edit.c      # Synced to WineStaging-1.7.55
330  win32ss/user/user32/controls/icontitle.c # Synced to WineStaging-1.7.55
331  win32ss/user/user32/controls/listbox.c   # Synced to WineStaging-1.7.55
332  win32ss/user/user32/controls/scrollbar.c # Forked
333  win32ss/user/user32/controls/static.c    # Synced to WineStaging-1.7.55
334
335  win32ss/user/user32/include/dde_private.h # Synced to WineStaging-1.7.55
336
337  win32ss/user/user32/misc/dde.c           # Synced to WineStaging-1.7.55 (dde_misc.c)
338  win32ss/user/user32/misc/ddeclient.c     # Synced to WineStaging-1.7.55
339  win32ss/user/user32/misc/ddeserver.c     # Synced to WineStaging-1.7.55
340  win32ss/user/user32/misc/exticon.c       # Synced to WineStaging-1.7.55
341  win32ss/user/user32/misc/resources.c     # Partially synced to WineStaging-1.7.55
342  win32ss/user/user32/misc/winhelp.c       # Last sync date unknown
343
344  win32ss/user/user32/windows/cursoricon   # Forked from Wine-1.2-rc7
345  win32ss/user/user32/windows/defwnd.c     # Forked
346  win32ss/user/user32/windows/draw.c       # Forked at Wine-20020904 (uitools.c)
347  win32ss/user/user32/windows/mdi.c        # Synced to WineStaging-1.7.55
348  win32ss/user/user32/windows/menu.c       # Forked
349  win32ss/user/user32/windows/messagebox.c # Forked
350  win32ss/user/user32/windows/rect.c       # Forked (uitools.c)
351  win32ss/user/user32/windows/spy.c        # Synced to WineStaging-1.7.55
352  win32ss/user/user32/windows/text.c       # Forked (lstr.c)
353  win32ss/user/user32/windows/winpos.c     # Forked
354
355schannel.c
356  dll/win32/schannel/schannel_wine.c    # synced to wine-1.7.17 (secur32/schannel.c)
357  dll/win32/schannel/secur32_wine.c     # partial sync to wine-1.7.17 (secur32/secur32.c)
358
359secur32 -
360  dll/win32/secur32/sspi.c              # Partially synced to WineStaging-1.7.55 (secur32.c)
361  dll/win32/secur32/thunks.c            # Synced to WineStaging-1.9.4
362  dll/win32/secur32/wrapper.c           # Synced to WineStaging-1.9.4
363
364setupapi -
365  dll/win32/setupapi/dialog.c           # Synced to WineStaging-1.9.15
366  dll/win32/setupapi/query.c            # Partially synced to Wine-4.8
367  dll/win32/setupapi/setupcab.c         # Synced to WineStaging-1.9.4
368
369win32k -
370  win32ss/gdi/ntgdi/bezier.c                    # Synced to WineStaging-1.9.4 (gdi32/painting.c)
371
372winmm -
373  modules/rostests/winetests/winmm      # Synced to WineStaging-4.18
374