xref: /reactos/media/doc/WINESYNC.txt (revision ea6e7740)
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
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-3.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              # Synced to WineStaging-4.18
135dll/win32/msxml4              # Synced to WineStaging-3.3
136dll/win32/msxml6              # Synced to WineStaging-3.3
137dll/win32/nddeapi             # Synced to WineStaging-3.3
138dll/win32/netapi32            # Forked at Wine-1.3.34
139dll/win32/npptools            # Synced to WineStaging-4.18
140dll/win32/ntdsapi             # Synced to WineStaging-4.18
141dll/win32/objsel              # Synced to WineStaging-4.18
142dll/win32/odbc32              # Synced to WineStaging-4.18. Depends on port of Linux ODBC.
143dll/win32/odbccp32            # Synced to WineStaging-4.18
144dll/win32/ole32               # Synced to WineStaging-4.18
145dll/win32/oleacc              # Synced to WineStaging-4.18
146dll/win32/oleaut32            # Synced to WineStaging-4.18
147dll/win32/olecli32            # Synced to WineStaging-4.18
148dll/win32/oledlg              # Synced to WineStaging-4.18
149dll/win32/olepro32            # Synced to WineStaging-3.3
150dll/win32/olesvr32            # Synced to WineStaging-4.18
151dll/win32/olethk32            # Synced to WineStaging-3.3
152dll/win32/pdh                 # Synced to WineStaging-4.18
153dll/win32/pidgen              # Synced to WineStaging-4.18
154dll/win32/powrprof            # Forked at Wine-1.0rc5
155dll/win32/printui             # Synced to WineStaging-4.18
156dll/win32/propsys             # Synced to WineStaging-4.18
157dll/win32/pstorec             # Synced to WineStaging-3.3
158dll/win32/qmgr                # Synced to WineStaging-4.18
159dll/win32/qmgrprxy            # Synced to WineStaging-2.9
160dll/win32/query               # Synced to WineStaging-4.18
161dll/win32/rasapi32            # Synced to WineStaging-3.3
162dll/win32/regapi              # Synced to WineStaging-5.7
163dll/win32/resutils            # Synced to WineStaging-3.3
164dll/win32/riched20            # Synced to WineStaging-4.18
165dll/win32/riched32            # Synced to WineStaging-3.3
166dll/win32/rpcrt4              # Synced to WineStaging-4.18
167dll/win32/rsabase             # Synced to WineStaging-3.3
168dll/win32/rsaenh              # Synced to WineStaging-2.9
169dll/win32/sccbase             # Synced to WineStaging-4.18
170dll/win32/schannel            # Synced to WineStaging-3.3
171dll/win32/scrrun              # Synced to WineStaging-4.18
172dll/win32/secur32             # Forked
173dll/win32/security            # Forked (different .spec)
174dll/win32/sensapi             # Synced to WineStaging-4.18
175dll/win32/setupapi            # Forked at Wine-20050524
176dll/win32/shdoclc             # Synced to WineStaging-3.3
177dll/win32/shdocvw             # Synced to WineStaging-4.18
178dll/win32/shell32             # Forked at Wine-20071011
179dll/win32/shfolder            # Synced to WineStaging-3.3
180dll/win32/shlwapi             # Synced to WineStaging-3.3
181dll/win32/slbcsp              # Synced to WineStaging-4.18
182dll/win32/snmpapi             # Synced to WineStaging-4.18
183dll/win32/softpub             # Synced to WineStaging-2.9
184dll/win32/stdole2.tlb         # Synced to WineStaging-3.3
185dll/win32/stdole32.tlb        # Synced to WineStaging-3.3
186dll/win32/sti                 # Synced to WineStaging-4.18
187dll/win32/sxs                 # Synced to WineStaging-4.18
188dll/win32/t2embed             # Synced to WineStaging-4.18
189dll/win32/tapi32              # Synced to WineStaging-4.18
190dll/win32/traffic             # Synced to WineStaging-3.3
191dll/win32/twain_32            # Synced to WineStaging-4.18
192dll/win32/updspapi            # Synced to WineStaging-4.18
193dll/win32/url                 # Synced to WineStaging-3.3
194dll/win32/urlmon              # Synced to WineStaging-4.18
195dll/win32/usp10               # Synced to WineStaging-4.18
196dll/win32/uxtheme             # Forked
197dll/win32/vbscript            # Synced to WineStaging-4.18
198dll/win32/version             # Synced to WineStaging-4.18
199dll/win32/vssapi              # Synced to WineStaging-4.18
200dll/win32/wbemdisp            # Synced to WineStaging-4.18
201dll/win32/wbemprox            # Synced to WineStaging-4.18
202dll/win32/windowscodecs       # Synced to WineStaging-4.18
203dll/win32/windowscodecsext    # Synced to WineStaging-2.9
204dll/win32/winemp3.acm         # Synced to WineStaging-4.18
205dll/win32/wing32              # Synced to WineStaging-3.3
206dll/win32/winhttp             # Synced to WineStaging-4.18
207dll/win32/wininet             # Synced to WineStaging-6.0rc1
208dll/win32/winmm               # Forked at Wine-20050628
209dll/win32/winmm/midimap       # Forked at Wine-20050628
210dll/win32/winmm/wavemap       # Forked at Wine-20050628
211dll/win32/winscard            # Synced to WineStaging-4.18
212dll/win32/wintrust            # Synced to WineStaging-4.18
213dll/win32/wldap32             # Synced to WineStaging-4.18
214dll/win32/wmi                 # Synced to WineStaging-2.9
215dll/win32/wmiutils            # Synced to WineStaging-4.18
216dll/win32/wmvcore             # Synced to WineStaging-4.18
217dll/win32/wshom.ocx           # Synced to WineStaging-4.18
218dll/win32/wtsapi32            # Synced to WineStaging-4.18
219dll/win32/wuapi               # Synced to WineStaging-4.18
220dll/win32/xinput1_1           # Synced to WineStaging-2.9
221dll/win32/xinput1_2           # Synced to WineStaging-2.9
222dll/win32/xinput1_3           # Synced to WineStaging-2.9
223dll/win32/xinput9_1_0         # Synced to WineStaging-2.9
224dll/win32/xmllite             # Synced to WineStaging-4.18
225dll/win32/xolehlp             # Synced to WineStaging-3.21
226
227dll/cpl/inetcpl               # Synced to WineStaging-4.18
228
229win32ss/printing/monitors/localmon/ui/  # Synced to WineStaging-4.18 (known there as /dll/win32/localui)
230
231ReactOS shares the following programs with Winehq.
232
233base/applications/cmdutils/cscript  # Synced to WineStaging-4.18
234base/applications/cmdutils/reg      # Synced to WineStaging-4.18
235base/applications/cmdutils/schtasks # Synced to WineStaging-3.3
236base/applications/cmdutils/taskkill # Synced to WineStaging-3.17
237base/applications/cmdutils/wmic     # Synced to WineStaging-4.0
238base/applications/cmdutils/wscript  # Synced to WineStaging-4.18
239base/applications/cmdutils/xcopy    # Synced to WineStaging-3.17
240base/applications/games/winmine     # Synced to WineStaging-2.16 with our own resources.
241base/applications/extrac32          # Synced to WineStaging-4.0
242base/applications/iexplore          # Synced to WineStaging-3.3
243base/applications/notepad           # Forked at Wine-20041201
244base/applications/regedit           # Out of sync
245base/applications/winhlp32          # Synced to WineStaging-4.0
246base/applications/wordpad           # Synced to WineStaging-1.9.16
247base/applications/write             # Synced to WineStaging-3.3
248base/services/rpcss                 # Synced to WineStaging-3.3
249base/system/expand                  # Synced to WineStaging-3.3
250base/system/msiexec                 # Synced to WineStaging-3.3
251modules/rosapps/applications/winfile # Autosync
252
253In addition the following libs, dlls and source files are mostly based on code ported
254from Winehq CVS. If you are looking to update something in these files
255check Wine current sources first as it may already be fixed.
256
257sdk/lib/3rdparty/strmbase           # Synced to WineStaging-3.3
258
259sdk/lib/rtl/actctx.c                # Partly synced with WineStaging-1.9.16
260sdk/lib/rtl/timerqueue.c            # Partly synced with WineStaging-1.7.55
261sdk/lib/rtl/wait.c                  # Partly synced with WineStaging-1.7.55
262
263advapi32 -
264  dll/win32/advapi32/wine/cred.c         # Synced to WineStaging-3.3
265  dll/win32/advapi32/wine/crypt.c        # Synced to WineStaging-3.3
266  dll/win32/advapi32/wine/crypt_des.c    # Synced to WineStaging-3.3
267  dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-3.3
268  dll/win32/advapi32/wine/security.c     # Out of Sync
269
270gdi32 -
271  dll/win32/gdi32/objects/linedda.c     # Synced at 20090410
272
273iphlpapi -
274  modules/rostests/winetests/iphlpapi # Synced to WineStaging-1.9.11
275
276kernel32 -
277  dll/win32/kernel32/wine/actctx.c               # Partly synced with Wine 1.7.55
278  dll/win32/kernel32/wine/comm.c                 # Synced in r52754
279  dll/win32/kernel32/wine/lzexpand.c             # Synced to WineStaging-3.3
280  dll/win32/kernel32/wine/profile.c              # Synced to WineStaging-3.3
281  dll/win32/kernel32/wine/res.c                  # Partially synced to WineStaging-3.3
282  dll/win32/kernel32/winnls/string/casemap.c     # Synced to WineStaging-3.3
283  dll/win32/kernel32/winnls/string/chartype.c    # Synced in r52754
284  dll/win32/kernel32/winnls/string/collation.c   # Synced to WineStaging-1.7.55
285  dll/win32/kernel32/winnls/string/digitmap.c    # Synced to WineStaging-3.3
286  dll/win32/kernel32/winnls/string/fold.c        # Synced to WineStaging-3.3
287  dll/win32/kernel32/winnls/string/format_msg.c  # Synced to WineStaging-3.3
288  dll/win32/kernel32/winnls/string/lang.c        # Synced in r52754
289  dll/win32/kernel32/winnls/string/lcformat.c    # Synced to WineStaging-3.21
290  dll/win32/kernel32/winnls/string/nls.c         # Synced in r52754
291  dll/win32/kernel32/winnls/string/sortkey.c     # Synced to WineStaging-3.3
292
293lpk -
294  dll/win32/lpk/bidi.c                           # Synced to Wine-4.9 (gdi32/bidi.c)
295  dll/win32/lpk/direction.c                      # Synced to Wine-4.9 (gdi32/direction.c)
296
297msvcrt -
298  sdk/lib/crt/conio/cputs.c             # Synced to WineStaging-1.9.16
299  sdk/lib/crt/except/cpp.c              # Synced at 20080528
300  sdk/lib/crt/except/cppexcept.c        # Synced at 20071111
301  sdk/lib/crt/process/_cwait.c          # Synced to WineStaging-1.7.37
302  sdk/lib/crt/signal/xcptinfo.c         # Synced to WineStaging-1.7.37
303  sdk/lib/crt/string/scanf.c/h          # Synced to Wine-1.7.17
304  sdk/lib/crt/string/strtoi64.c         # Synced to WineStaging-1.9.9
305  sdk/lib/crt/string/strtok.c           # Synced to WineStaging-1.9.16
306  sdk/lib/crt/string/strtok_s.c         # Synced to WineStaging-1.9.16
307  sdk/lib/crt/string/strtoul.c          # Synced to WineStaging-1.9.9
308  sdk/lib/crt/string/strxfrm.c          # Synced to Wine-1.9.16
309  sdk/lib/crt/string/wcs.c              # Synced at 20080611
310  sdk/lib/crt/string/wctype.c           # Synced to WineStaging-1.9.16
311  sdk/lib/crt/string/wtoi64.c           # Synced to Wine-1.9.16
312  sdk/lib/crt/mbstring/ischira.c        # Synced to Wine-1.9.16
313  sdk/lib/crt/wine/heap.c               # Synced at 20080529
314  sdk/lib/crt/wine/undname.c            # Synced to WineStaging-1.9.16
315  sdk/lib/crt/process/thread.c          # Synced to WineStaging-1.7.55
316
317user32 -
318  win32ss/user/user32/controls/button.c    # Synced to WineStaging-1.7.37
319  win32ss/user/user32/controls/combo.c     # Synced to WineStaging-1.7.37
320  win32ss/user/user32/controls/edit.c      # Synced to WineStaging-1.7.55
321  win32ss/user/user32/controls/icontitle.c # Synced to WineStaging-1.7.55
322  win32ss/user/user32/controls/listbox.c   # Synced to WineStaging-1.7.55
323  win32ss/user/user32/controls/scrollbar.c # Forked
324  win32ss/user/user32/controls/static.c    # Synced to WineStaging-1.7.55
325
326  win32ss/user/user32/include/dde_private.h # Synced to WineStaging-1.7.55
327
328  win32ss/user/user32/misc/dde.c           # Synced to WineStaging-1.7.55 (dde_misc.c)
329  win32ss/user/user32/misc/ddeclient.c     # Synced to WineStaging-1.7.55
330  win32ss/user/user32/misc/ddeserver.c     # Synced to WineStaging-1.7.55
331  win32ss/user/user32/misc/exticon.c       # Synced to WineStaging-1.7.55
332  win32ss/user/user32/misc/resources.c     # Partially synced to WineStaging-1.7.55
333  win32ss/user/user32/misc/winhelp.c       # Last sync date unknown
334
335  win32ss/user/user32/windows/cursoricon   # Forked from Wine-1.2-rc7
336  win32ss/user/user32/windows/defwnd.c     # Forked
337  win32ss/user/user32/windows/draw.c       # Forked at Wine-20020904 (uitools.c)
338  win32ss/user/user32/windows/mdi.c        # Synced to WineStaging-1.7.55
339  win32ss/user/user32/windows/menu.c       # Forked
340  win32ss/user/user32/windows/messagebox.c # Forked
341  win32ss/user/user32/windows/rect.c       # Forked (uitools.c)
342  win32ss/user/user32/windows/spy.c        # Synced to WineStaging-1.7.55
343  win32ss/user/user32/windows/text.c       # Forked (lstr.c)
344  win32ss/user/user32/windows/winpos.c     # Forked
345
346schannel.c
347  dll/win32/schannel/schannel_wine.c    # synced to wine-1.7.17 (secur32/schannel.c)
348  dll/win32/schannel/secur32_wine.c     # partial sync to wine-1.7.17 (secur32/secur32.c)
349
350secur32 -
351  dll/win32/secur32/sspi.c              # Partially synced to WineStaging-1.7.55 (secur32.c)
352  dll/win32/secur32/thunks.c            # Synced to WineStaging-1.9.4
353  dll/win32/secur32/wrapper.c           # Synced to WineStaging-1.9.4
354
355setupapi -
356  dll/win32/setupapi/dialog.c           # Synced to WineStaging-1.9.15
357  dll/win32/setupapi/query.c            # Partially synced to WineStaging-1.9.4
358  dll/win32/setupapi/setupcab.c         # Synced to WineStaging-1.9.4
359
360win32k -
361  win32ss/gdi/ntgdi/bezier.c                    # Synced to WineStaging-1.9.4 (gdi32/painting.c)
362
363winmm -
364  modules/rostests/winetests/winmm      # Synced to WineStaging-4.18
365