Synced dbghelp.dll with Wine HEAD.
[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-0_9_5
25 reactos/tools/wpp # Synced to Wine-0_9_5
26 reactos/tools/winebuild # Synced to Wine-20071217
27 reactos/tools/wmc # Synced to Wine-20071201
28 reactos/tools/wrc # Synced to Wine-0_9_53
29 reactos/tools/widl # Synced to Wine-0_9_55
30
31 The following libraries are shared with Wine.
32
33 reactos/dll/win32/advpack # Autosync
34 reactos/dll/win32/atl # Autosync
35 reactos/dll/win32/avifil32 # Autosync
36 reactos/dll/win32/browseui # Out of sync
37 reactos/dll/win32/cabinet # Autosync
38 reactos/dll/win32/clusapi # Autosync
39 reactos/dll/win32/comcat # Autosync
40 reactos/dll/win32/comctl32 # Autosync
41 reactos/dll/win32/comdlg32 # Autosync
42 reactos/dll/win32/compstui # Autosync
43 reactos/dll/win32/crypt32 # Synced to Wine-1_0-rc1
44 reactos/dll/win32/cryptdll # Autosync
45 reactos/dll/win32/cryptnet # Autosync
46 reactos/dll/win32/cryptui # Autosync
47 reactos/dll/win32/dbghelp # Synced to Wine-20080802
48 reactos/dll/win32/dciman32 # Synced to Wine-1_0-rc2
49 reactos/dll/win32/gdiplus # Autosync
50 reactos/dll/win32/hhctrl.ocx # Autosync
51 reactos/dll/win32/hlink # Autosync
52 reactos/dll/win32/icmp # Synced to Wine-0_9_10
53 reactos/dll/win32/imm32 # Autosync
54 reactos/dll/win32/imagehlp # Patches for BindImage need review and submission to winehq.
55 reactos/dll/win32/inetcomm # Autosync
56 reactos/dll/win32/inetmib1 # Autosync
57 reactos/dll/win32/iphlpapi # Out of sync
58 reactos/dll/win32/lz32 # Autosync
59 reactos/dll/win32/mapi32 # Autosync
60 reactos/dll/win32/mlang # Autosync
61 reactos/dll/win32/mpr # Autosync
62 reactos/dll/win32/msacm32 # Out of sync
63 reactos/dll/win32/mshtml # Autosync
64 reactos/dll/win32/msimg32 # Autosync
65 reactos/dll/win32/msi # Autosync
66 reactos/dll/win32/msvcrt20 # Autosync
67 reactos/dll/win32/msvfw32 # Autosync
68 reactos/dll/win32/msxml3 # Synced to Wine-20071230
69 reactos/dll/win32/nddeapi # Autosync
70 reactos/dll/win32/netapi32 # Autosync
71 reactos/dll/win32/ntdsapi # Autosync
72 reactos/dll/win32/objsel # Autosync
73 reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
74 reactos/dll/win32/odbccp32 # Autosync
75 reactos/dll/win32/ole32 # Autosync
76 reactos/dll/win32/oleacc # Autosync
77 reactos/dll/win32/oleaut32 # Autosync
78 reactos/dll/win32/oledlg # Autosync
79 reactos/dll/win32/olepro32 # Autosync
80 reactos/dll/win32/pdh # Autosync
81 reactos/dll/win32/powrprof # Forked at Wine-1.0rc5
82 reactos/dll/win32/printui # Autosync
83 reactos/dll/win32/rasapi32 # Autosync
84 reactos/dll/win32/riched20 # Autosync
85 reactos/dll/win32/riched32 # Autosync
86 reactos/dll/win32/rpcrt4 # Synced to Wine-0_9_55
87 reactos/dll/win32/rsabase # Autosync
88 reactos/dll/win32/rsaenh # Autosync
89 reactos/dll/win32/schannel # Autosync
90 reactos/dll/win32/sensapi # Autosync
91 reactos/dll/win32/setupapi # Forked at Wine-20050524
92 reactos/dll/win32/shell32 # Forked at Wine-20071011
93 reactos/dll/win32/shdocvw # Synced to Wine-0_9_5
94 reactos/dll/win32/shfolder # Autosync
95 reactos/dll/win32/shlwapi # Autosync
96 reactos/dll/win32/stdole2.tlb # Autosync
97 reactos/dll/win32/tapi32 # Autosync
98 reactos/dll/win32/twain_32 # Out of sync
99 reactos/dll/win32/urlmon # Autosync
100 reactos/dll/win32/usp10 # Autosync
101 reactos/dll/win32/uxtheme # Autosync
102 reactos/dll/win32/version # Autosync
103 reactos/dll/win32/wininet # Autosync
104 reactos/dll/win32/winhttp # Autosync
105 reactos/dll/win32/wintrust # Out of sync
106 reactos/dll/win32/winmm # Forked at Wine-20050628
107 reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
108 reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628
109 reactos/dll/win32/wldap32 # Autosync
110 reactos/dll/win32/wtsapi32 # Autosync
111 reactos/dll/directx/dinput # Synced to Wine-0_9_5
112 reactos/dll/directx/dinput8 # Synced to Wine-0_9_5
113 reactos/dll/directx/dplay # Synced to Wine-0_9_5
114 reactos/dll/directx/dplayx # Synced to Wine-0_9_5
115 reactos/dll/directx/dxdiagn # Synced to Wine-0_9_5
116
117 ReactOS shares the following programs with Winehq.
118
119 reactos/base/applications/games/winemine # Out of sync
120 reactos/base/applications/regedit # Out of sync
121 reactos/base/applications/cmdutils/xcopy # Synced to Wine-0_9_54
122 reactos/base/system/expand # Out of sync
123 reactos/base/system/msiexec # Wine 1.0-rc1
124 reactos/base/applications/winhelp # Synced to Wine-0_9_53
125 reactos/base/applications/wordpad # Synced to Wine-0_9_53
126 reactos/modules/rosapps/winefile # Synced to Wine-0_9_53
127 reactos/base/applications/notepad # Forked at Wine-20041201
128 reactos/base/applications/iexplore # Wine 1.0-rc1
129
130 In addition the following libs, dlls and source files are mostly based on code ported
131 from Winehq CVS. If you are looking to update something in these files
132 check Wine current souces first as it may already be fixed.
133
134 reactos/lib/uuid # Synced to Wine-20080114
135
136 advapi32 -
137 reactos/dll/win32/advapi32/crypt/*.c # ekohl says we're not sharing this
138
139 gdi32 -
140 reactos/dll/win32/gdi32/objects/linedda.c # Out of sync
141
142 kernel32 -
143 reactos/dll/win32/kernel32/misc/errormsg.c # Out of sync
144 reactos/dll/win32/kernel32/misc/profile.c # Out of sync
145 reactos/dll/win32/kernel32/misc/lcformat.c # Out of sync
146
147 msvcrt -
148 reactos/lib/sdk/crt/cpp.c # Synced at 20071111
149 reactos/lib/sdk/crt/cppexcept.c # Synced at 20071111
150 reactos/lib/sdk/crt/strings/scanf.c/h # Synced at 20080604
151 reactos/lib/sdk/crt/wine/heap.c # Synced at 20080529
152 reactos/lib/sdk/crt/wine # Synced at XXXXXXXX
153 reactos/lib/sdk/crt/thread/thread.c # Synced at 20080604
154
155 User32 -
156 reactos/dll/win32/user32/controls/button.c # Synced at 20071022
157 reactos/dll/win32/user32/controls/combo.c # Synced at 20071022
158 reactos/dll/win32/user32/controls/edit.c # Synced at 20071022
159 reactos/dll/win32/user32/controls/icontitle.c # Synced at 20060617
160 reactos/dll/win32/user32/controls/listbox.c # Synced at 20071023
161 reactos/dll/win32/user32/controls/scrollbar.c # Forked
162 reactos/dll/win32/user32/controls/static.c # Synced at 20071024
163
164 reactos/dll/win32/user32/misc/dde.c # Synced at 20080414 (dde_misc.c)
165 reactos/dll/win32/user32/misc/ddeclient.c # Synced at 20060623
166 reactos/dll/win32/user32/misc/ddeserver.c # Synced at 20060623
167 reactos/dll/win32/user32/misc/exticon.c # Last sync date unknown
168 reactos/dll/win32/user32/misc/resources.c # Forked?
169 reactos/dll/win32/user32/misc/winhelp.c # Last sync date unknown
170 reactos/dll/win32/user32/misc/wsprintf.c # Synced at 20060623
171
172 reactos/dll/win32/user32/windows/defwnd.c # Forked
173 reactos/dll/win32/user32/windows/draw.c # Forked at Wine-20020904 (uitools.c)
174 reactos/dll/win32/user32/windows/mdi.c # Synced at 20060703
175 reactos/dll/win32/user32/windows/menu.c # Forked
176 reactos/dll/win32/user32/windows/messagebox.c # Forked
177 reactos/dll/win32/user32/windows/rect.c # Forked (uitools.c)
178 reactos/dll/win32/user32/windows/text.c # Forked (lstr.c)
179 reactos/dll/win32/user32/windows/winpos.c # Forked
180
181 Update process for autosync DLLs
182
183 *** This process can only be done on Microsoft Windows ***
184 - Download wineimport.cmd at svn://svn.reactos.org/reactos/trunk/tools/
185 - Download cvs command line program and be sure to put it in your path
186 (available at http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/ )
187 - Download svn command line program and be sure to put it in your path
188 (available at http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 )
189 - Download patch command line program and be sure to put it in your path
190 (available at http://gnuwin32.sourceforge.net/packages/patch.htm )
191 - Optionally, download junction.exe and put it in your path
192 (available at http://www.sysinternals.com/Utilities/Junction.html )
193 - Cd to the directory containing wineimport.cmd
194 - Run
195 "wineimport.cmd fullprocessing {path_to_your_reactos_directory} {name_of_the_wine_dll}"
196 - In case of error, you can
197 1) add missing definitions to ReactOS headers
198 2) fix {name_of_the_wine_dll}_ros.diff patch file, by removing outdated changes
199 3) or modify Wine code, by adding a {name_of_the_wine_dll}_ros.diff patch,
200 which will be applied after Wine source checkout
201 DO NOT DIRECTLY MODIFY WINE SOURCE CODE
202 - Once Wine DLL compiles, install and run ReactOS and search for regressions
203 - In case of regression, you can
204 1) Fix ReactOS code (not in the shared DLL)
205 2) or update the {name_of_the_wine_dll}_ros.diff patch file
206 - Commit your changes with the "Autosyncing with Wine HEAD" commit message