xref: /reactos/media/doc/WINESYNC.txt (revision cce399e7)
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
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/dwmapi              # Synced to Wine-8.14
72dll/win32/faultrep            # Synced to WineStaging-4.18
73dll/win32/fontsub             # Synced to WineStaging-2.9
74dll/win32/fusion              # Synced to WineStaging-4.18
75dll/win32/gdiplus             # Synced to WineStaging-4.0
76dll/win32/hhctrl.ocx          # Synced to WineStaging-4.18
77dll/win32/hlink               # Synced to WineStaging-4.18
78dll/win32/hnetcfg             # Synced to WineStaging-4.18
79dll/win32/iccvid              # Synced to WineStaging-4.0
80dll/win32/ieframe             # Synced to WineStaging-4.18
81dll/win32/imaadp32.acm        # Synced to WineStaging-4.0
82dll/win32/imagehlp            # Synced to WineStaging-4.18
83dll/win32/imm32               # Forked at WineStaging-4.18
84dll/win32/inetcomm            # Synced to WineStaging-4.18
85dll/win32/inetmib1            # Synced to WineStaging-4.18
86dll/win32/initpki             # Synced to WineStaging-4.18
87dll/win32/inseng              # Synced to WineStaging-4.18
88dll/win32/iphlpapi            # Out of sync
89dll/win32/itircl              # Synced to WineStaging-4.18
90dll/win32/itss                # Synced to WineStaging-4.18
91dll/win32/jscript             # Synced to WineStaging-4.18
92dll/win32/jsproxy             # Synced to WineStaging-4.18
93dll/win32/loadperf            # Synced to WineStaging-4.18
94dll/win32/lz32                # Synced to WineStaging-3.3
95dll/win32/mapi32              # Synced to WineStaging-4.18
96dll/win32/mciavi32            # Synced to WineStaging-4.18
97dll/win32/mcicda              # Synced to WineStaging-3.3
98dll/win32/mciqtz32            # Synced to WineStaging-4.18
99dll/win32/mciseq              # Synced to WineStaging-4.18
100dll/win32/mciwave             # Synced to WineStaging-4.18
101dll/win32/mgmtapi             # Synced to WineStaging-3.3
102dll/win32/mlang               # Synced to WineStaging-4.18
103dll/win32/mmdevapi            # Synced to WineStaging-4.18
104dll/win32/mpr                 # Synced to WineStaging-4.18
105dll/win32/mprapi              # Synced to WineStaging-3.3
106dll/win32/msacm32             # Synced to WineStaging-4.18
107dll/win32/msacm32.drv         # Synced to WineStaging-3.3
108dll/win32/msadp32.acm         # Synced to WineStaging-4.0
109dll/win32/mscat32             # Synced to WineStaging-4.18
110dll/win32/mscms               # Synced to WineStaging-4.18
111dll/win32/mscoree             # Synced to Wine-1.5.4
112dll/win32/msctf               # Synced to WineStaging-4.18
113dll/win32/msftedit            # Synced to WineStaging-4.18
114dll/win32/msg711.acm          # Synced to WineStaging-4.18
115dll/win32/msgsm32.acm         # Synced to WineStaging-4.0
116dll/win32/mshtml              # Synced to WineStaging-1.7.55
117dll/win32/mshtml.tlb          # Synced to WineStaging-1.7.55
118dll/win32/msi                 # Synced to WineStaging-7.3
119dll/win32/msimg32             # Synced to WineStaging-3.3
120dll/win32/msimtf              # Synced to WineStaging-4.18
121dll/win32/msisip              # Synced to WineStaging-4.18
122dll/win32/msisys.ocx          # Synced to WineStaging-4.18
123dll/win32/msnet32             # Synced to WineStaging-4.18
124dll/win32/mspatcha            # Forked at WineStaging-3.3
125dll/win32/msrle32             # Synced to WineStaging-4.18
126dll/win32/mssign32            # Synced to WineStaging-4.18
127dll/win32/mssip32             # Synced to WineStaging-4.18
128dll/win32/mstask              # Synced to WineStaging-3.3
129dll/win32/msvcrt20            # Out of sync
130dll/win32/msvcrt40            # Out of sync
131dll/win32/msvfw32             # Synced to WineStaging-4.18
132dll/win32/msvidc32            # Synced to WineStaging-4.0
133dll/win32/msxml               # Synced to WineStaging-3.3
134dll/win32/msxml2              # Synced to WineStaging-3.3
135dll/win32/msxml3/domdoc       # Synced to WineStaging-4.18
136dll/win32/msxml3/httpreq      # Synced to WineStaging-4.18
137dll/win32/msxml3/saxreader    # Synced to WineStaging-4.18
138dll/win32/msxml3/schema       # Synced to Wine-6.14
139dll/win32/msxml3/xmldoc       # Synced to WineStaging-4.18
140dll/win32/msxml3/xmlparser    # Synced to WineStaging-4.18
141dll/win32/msxml3/xmlview      # Synced to WineStaging-4.18
142dll/win32/msxml4              # Synced to WineStaging-3.3
143dll/win32/msxml6              # Synced to WineStaging-3.3
144dll/win32/nddeapi             # Synced to WineStaging-3.3
145dll/win32/netapi32            # Forked at Wine-1.3.34
146dll/win32/npptools            # Synced to WineStaging-4.18
147dll/win32/ntdsapi             # Synced to WineStaging-4.18
148dll/win32/objsel              # Synced to WineStaging-4.18
149dll/win32/odbc32              # Synced to WineStaging-4.18. Depends on port of Linux ODBC.
150dll/win32/odbccp32            # Synced to WineStaging-4.18
151dll/win32/ole32               # Synced to WineStaging-4.18
152dll/win32/oleacc              # Synced to WineStaging-4.18
153dll/win32/oleaut32            # Synced to WineStaging-4.18
154dll/win32/olecli32            # Synced to WineStaging-4.18
155dll/win32/oledlg              # Synced to WineStaging-4.18
156dll/win32/olepro32            # Synced to WineStaging-3.3
157dll/win32/olesvr32            # Synced to WineStaging-4.18
158dll/win32/olethk32            # Synced to WineStaging-3.3
159dll/win32/pdh                 # Synced to WineStaging-4.18
160dll/win32/pidgen              # Synced to WineStaging-4.18
161dll/win32/powrprof            # Forked at Wine-1.0rc5
162dll/win32/printui             # Synced to WineStaging-4.18
163dll/win32/propsys             # Synced to WineStaging-4.18
164dll/win32/pstorec             # Synced to WineStaging-3.3
165dll/win32/qmgr                # Synced to WineStaging-4.18
166dll/win32/qmgrprxy            # Synced to WineStaging-2.9
167dll/win32/query               # Synced to WineStaging-4.18
168dll/win32/rasapi32            # Synced to WineStaging-3.3
169dll/win32/regapi              # Synced to WineStaging-5.7
170dll/win32/resutils            # Synced to WineStaging-3.3
171dll/win32/riched20            # Synced to WineStaging-4.18
172dll/win32/riched32            # Synced to WineStaging-3.3
173dll/win32/rpcrt4              # Synced to WineStaging-4.18
174dll/win32/rsabase             # Synced to WineStaging-3.3
175dll/win32/rsaenh              # Synced to WineStaging-2.9
176dll/win32/sccbase             # Synced to WineStaging-4.18
177dll/win32/schannel            # Synced to WineStaging-3.3
178dll/win32/scrrun              # Synced to WineStaging-4.18
179dll/win32/secur32             # Forked
180dll/win32/security            # Forked (different .spec)
181dll/win32/sensapi             # Synced to WineStaging-4.18
182dll/win32/setupapi            # Forked at Wine-20050524
183dll/win32/shdoclc             # Synced to WineStaging-3.3
184dll/win32/shdocvw             # Synced to WineStaging-4.18
185dll/win32/shell32             # Forked at Wine-20071011
186dll/win32/shfolder            # Synced to WineStaging-3.3
187dll/win32/shlwapi             # Synced to WineStaging-3.3
188dll/win32/slbcsp              # Synced to WineStaging-4.18
189dll/win32/snmpapi             # Synced to WineStaging-4.18
190dll/win32/softpub             # Synced to WineStaging-2.9
191dll/win32/stdole2.tlb         # Synced to WineStaging-3.3
192dll/win32/stdole32.tlb        # Synced to WineStaging-3.3
193dll/win32/sti                 # Synced to WineStaging-4.18
194dll/win32/sxs                 # Synced to WineStaging-4.18
195dll/win32/t2embed             # Synced to WineStaging-4.18
196dll/win32/tapi32              # Synced to WineStaging-4.18
197dll/win32/traffic             # Synced to WineStaging-3.3
198dll/win32/twain_32            # Synced to WineStaging-4.18
199dll/win32/updspapi            # Synced to WineStaging-4.18
200dll/win32/url                 # Synced to WineStaging-3.3
201dll/win32/urlmon              # Synced to WineStaging-4.18
202dll/win32/usp10               # Synced to WineStaging-4.18
203dll/win32/uxtheme             # Forked
204dll/win32/vbscript            # Synced to WineStaging-4.18
205dll/win32/version             # Synced to WineStaging-4.18
206dll/win32/vssapi              # Synced to WineStaging-4.18
207dll/win32/wbemdisp            # Synced to WineStaging-4.18
208dll/win32/wbemprox            # Synced to WineStaging-4.18
209dll/win32/windowscodecs       # Synced to WineStaging-4.18
210dll/win32/windowscodecsext    # Synced to WineStaging-2.9
211dll/win32/winemp3.acm         # Synced to WineStaging-4.18
212dll/win32/wing32              # Synced to WineStaging-3.3
213dll/win32/winhttp             # Synced to WineStaging-4.18
214dll/win32/wininet             # Synced to WineStaging-6.0rc1
215dll/win32/winmm               # Forked at Wine-20050628
216dll/win32/winmm/midimap       # Forked at Wine-20050628
217dll/win32/winmm/wavemap       # Forked at Wine-20050628
218dll/win32/winscard            # Synced to WineStaging-4.18
219dll/win32/wintrust            # Synced to WineStaging-4.18
220dll/win32/wldap32             # Synced to WineStaging-4.18
221dll/win32/wmi                 # Synced to WineStaging-2.9
222dll/win32/wmiutils            # Synced to WineStaging-4.18
223dll/win32/wmvcore             # Synced to WineStaging-4.18
224dll/win32/wshom.ocx           # Synced to WineStaging-4.18
225dll/win32/wtsapi32            # Synced to WineStaging-4.18
226dll/win32/wuapi               # Synced to WineStaging-4.18
227dll/win32/xinput1_1           # Synced to WineStaging-2.9
228dll/win32/xinput1_2           # Synced to WineStaging-2.9
229dll/win32/xinput1_3           # Synced to WineStaging-2.9
230dll/win32/xinput9_1_0         # Synced to WineStaging-2.9
231dll/win32/xmllite             # Synced to WineStaging-4.18
232dll/win32/xolehlp             # Synced to WineStaging-3.21
233
234dll/cpl/inetcpl               # Synced to WineStaging-4.18
235
236win32ss/printing/monitors/localmon/ui/  # Synced to WineStaging-4.18 (known there as /dll/win32/localui)
237
238ReactOS shares the following programs with Winehq.
239
240base/applications/cmdutils/cscript  # Synced to WineStaging-4.18
241base/applications/cmdutils/reg      # Synced to WineStaging-6.23
242base/applications/cmdutils/schtasks # Synced to WineStaging-3.3
243base/applications/cmdutils/taskkill # Synced to WineStaging-3.17
244base/applications/cmdutils/wmic     # Synced to WineStaging-4.0
245base/applications/cmdutils/wscript  # Synced to WineStaging-4.18
246base/applications/cmdutils/xcopy    # Synced to WineStaging-3.17
247base/applications/games/winmine     # Synced to WineStaging-2.16 with our own resources.
248base/applications/extrac32          # Synced to WineStaging-4.0
249base/applications/iexplore          # Synced to WineStaging-3.3
250base/applications/notepad           # Forked at Wine-20041201
251base/applications/winhlp32          # Synced to WineStaging-4.0
252base/applications/wordpad           # Synced to WineStaging-1.9.16
253base/applications/write             # Synced to WineStaging-3.3
254base/services/rpcss                 # Synced to WineStaging-3.3
255base/system/expand                  # Synced to WineStaging-3.3
256base/system/msiexec                 # Synced to WineStaging-3.3
257modules/rosapps/applications/winfile # Autosync
258
259In addition the following libs, dlls and source files are mostly based on code ported
260from Winehq CVS. If you are looking to update something in these files
261check Wine current sources first as it may already be fixed.
262
263sdk/lib/3rdparty/strmbase           # Synced to WineStaging-3.3
264
265sdk/lib/rtl/actctx.c                # Partly synced with WineStaging-1.9.16
266sdk/lib/rtl/timerqueue.c            # Partly synced with WineStaging-1.7.55
267sdk/lib/rtl/wait.c                  # Partly synced with WineStaging-1.7.55
268
269advapi32 -
270  dll/win32/advapi32/wine/cred.c         # Synced to WineStaging-3.3
271  dll/win32/advapi32/wine/crypt.c        # Synced to WineStaging-3.3
272  dll/win32/advapi32/wine/crypt_des.c    # Synced to WineStaging-3.3
273  dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-3.3
274  dll/win32/advapi32/wine/security.c     # Out of Sync
275
276gdi32 -
277  dll/win32/gdi32/objects/linedda.c     # Synced at 20090410
278
279iphlpapi -
280  modules/rostests/winetests/iphlpapi # Synced to WineStaging-1.9.11
281
282kernel32 -
283  dll/win32/kernel32/wine/actctx.c               # Partly synced with Wine 1.7.55
284  dll/win32/kernel32/wine/comm.c                 # Synced in r52754
285  dll/win32/kernel32/wine/lzexpand.c             # Synced to WineStaging-3.3
286  dll/win32/kernel32/wine/profile.c              # Synced to WineStaging-3.3
287  dll/win32/kernel32/wine/res.c                  # Partially synced to WineStaging-3.3
288  dll/win32/kernel32/winnls/string/casemap.c     # Synced to WineStaging-3.3
289  dll/win32/kernel32/winnls/string/chartype.c    # Synced in r52754
290  dll/win32/kernel32/winnls/string/collation.c   # Synced to WineStaging-1.7.55
291  dll/win32/kernel32/winnls/string/digitmap.c    # Synced to WineStaging-3.3
292  dll/win32/kernel32/winnls/string/fold.c        # Synced to WineStaging-3.3
293  dll/win32/kernel32/winnls/string/format_msg.c  # Synced to WineStaging-3.3
294  dll/win32/kernel32/winnls/string/lang.c        # Synced in r52754
295  dll/win32/kernel32/winnls/string/lcformat.c    # Synced to WineStaging-3.21
296  dll/win32/kernel32/winnls/string/nls.c         # Synced in r52754
297  dll/win32/kernel32/winnls/string/sortkey.c     # Synced to WineStaging-3.3
298
299lpk -
300  dll/win32/lpk/bidi.c                           # Synced to Wine-4.9 (gdi32/bidi.c)
301  dll/win32/lpk/direction.c                      # Synced to Wine-4.9 (gdi32/direction.c)
302
303msvcrt -
304  sdk/lib/crt/conio/cputs.c             # Synced to WineStaging-1.9.16
305  sdk/lib/crt/except/cpp.c              # Synced at 20080528
306  sdk/lib/crt/except/cppexcept.c        # Synced at 20071111
307  sdk/lib/crt/process/_cwait.c          # Synced to WineStaging-1.7.37
308  sdk/lib/crt/signal/xcptinfo.c         # Synced to WineStaging-1.7.37
309  sdk/lib/crt/string/scanf.c/h          # Synced to Wine-1.7.17
310  sdk/lib/crt/string/strtoi64.c         # Synced to WineStaging-1.9.9
311  sdk/lib/crt/string/strtok.c           # Synced to WineStaging-1.9.16
312  sdk/lib/crt/string/strtok_s.c         # Synced to WineStaging-1.9.16
313  sdk/lib/crt/string/strtoul.c          # Synced to WineStaging-1.9.9
314  sdk/lib/crt/string/strxfrm.c          # Synced to Wine-1.9.16
315  sdk/lib/crt/string/wcs.c              # Synced at 20080611
316  sdk/lib/crt/string/wctype.c           # Synced to WineStaging-1.9.16
317  sdk/lib/crt/string/wtoi64.c           # Synced to Wine-1.9.16
318  sdk/lib/crt/mbstring/ischira.c        # Synced to Wine-1.9.16
319  sdk/lib/crt/wine/heap.c               # Synced at 20080529
320  sdk/lib/crt/wine/undname.c            # Synced to WineStaging-1.9.16
321  sdk/lib/crt/process/thread.c          # Synced to WineStaging-1.7.55
322
323regedit
324  base/applications/regedit/regedit.c   # Synced to Wine-7.17
325  base/applications/regedit/regproc.c   # Synced to Wine-7.17
326
327user32 -
328  win32ss/user/user32/controls/button.c    # Synced to WineStaging-1.7.37
329  win32ss/user/user32/controls/combo.c     # Synced to WineStaging-1.7.37
330  win32ss/user/user32/controls/edit.c      # Synced to WineStaging-1.7.55
331  win32ss/user/user32/controls/icontitle.c # Synced to WineStaging-1.7.55
332  win32ss/user/user32/controls/listbox.c   # Synced to WineStaging-1.7.55
333  win32ss/user/user32/controls/scrollbar.c # Forked
334  win32ss/user/user32/controls/static.c    # Synced to WineStaging-1.7.55
335
336  win32ss/user/user32/include/dde_private.h # Synced to WineStaging-1.7.55
337
338  win32ss/user/user32/misc/dde.c           # Synced to WineStaging-1.7.55 (dde_misc.c)
339  win32ss/user/user32/misc/ddeclient.c     # Synced to WineStaging-1.7.55
340  win32ss/user/user32/misc/ddeserver.c     # Synced to WineStaging-1.7.55
341  win32ss/user/user32/misc/exticon.c       # Synced to WineStaging-1.7.55
342  win32ss/user/user32/misc/resources.c     # Partially synced to WineStaging-1.7.55
343  win32ss/user/user32/misc/winhelp.c       # Last sync date unknown
344
345  win32ss/user/user32/windows/cursoricon   # Forked from Wine-1.2-rc7
346  win32ss/user/user32/windows/defwnd.c     # Forked
347  win32ss/user/user32/windows/draw.c       # Forked at Wine-20020904 (uitools.c)
348  win32ss/user/user32/windows/mdi.c        # Synced to WineStaging-1.7.55
349  win32ss/user/user32/windows/menu.c       # Forked
350  win32ss/user/user32/windows/messagebox.c # Forked
351  win32ss/user/user32/windows/rect.c       # Forked (uitools.c)
352  win32ss/user/user32/windows/spy.c        # Synced to WineStaging-1.7.55
353  win32ss/user/user32/windows/text.c       # Forked (lstr.c)
354  win32ss/user/user32/windows/winpos.c     # Forked
355
356schannel.c
357  dll/win32/schannel/schannel_wine.c    # synced to wine-1.7.17 (secur32/schannel.c)
358  dll/win32/schannel/secur32_wine.c     # partial sync to wine-1.7.17 (secur32/secur32.c)
359
360secur32 -
361  dll/win32/secur32/sspi.c              # Partially synced to WineStaging-1.7.55 (secur32.c)
362  dll/win32/secur32/thunks.c            # Synced to WineStaging-1.9.4
363  dll/win32/secur32/wrapper.c           # Synced to WineStaging-1.9.4
364
365setupapi -
366  dll/win32/setupapi/dialog.c           # Synced to WineStaging-1.9.15
367  dll/win32/setupapi/query.c            # Partially synced to Wine-4.8
368  dll/win32/setupapi/setupcab.c         # Synced to WineStaging-1.9.4
369
370win32k -
371  win32ss/gdi/ntgdi/bezier.c                    # Synced to WineStaging-1.9.4 (gdi32/painting.c)
372
373winmm -
374  modules/rostests/winetests/winmm      # Synced to WineStaging-4.18
375