Protect BeginPaint and EndPaint from lps being NULL.
[wine] / documentation / wine.man.in
1 .\" -*- nroff -*-
2 .TH WINE 1 "May 2002" "@PACKAGE_STRING@" "Windows On Unix"
3 .SH NAME
4 wine \- run Windows programs on Unix
5 .SH SYNOPSIS
6 .BI "wine " "[wine_options] " "[--] " "program " "[arguments ... ]"
7 .PP
8 For instructions on passing arguments to Windows programs, please see the
9 .B
10 PROGRAM/ARGUMENTS
11 section of the man page.
12 .SH DESCRIPTION
13 .B wine
14 .I program
15 loads and runs the given program, where the program is a DOS, Windows 3.x,
16 or Win32 executable (x86 binaries only).
17 .PP
18 For debugging wine, use
19 .B winedbg
20 .I program
21 instead.
22 .PP
23 For running CUI executables (Windows console programs), use
24 .B wineconsole
25 instead of
26 .B wine
27 . This will display all the output in a separate windows (this requires X11 to
28 run). Not using
29 .B wineconsole
30 for CUI programs will only provide very limited console support, and your
31 program might not function properly.
32 .PP
33 .B wine 
34 currently runs a growing list of applications written for all kinds of
35 Windows versions >= Win2.0, e.g. Win3.1, Win95/98, NT.
36 Older, simpler applications work better than newer, more complex ones.
37 Using Windows ME or Win2000 components with Wine is more problematic than
38 using none at all or the ones from older Windows versions.
39 A large percentage of the API has been implemented,
40 although there are still several major pieces of work left to do.
41 .SH REQUIREMENTS AND INSTALLATION
42 Read the README file in the Wine source distribution and the wine.conf
43 man page to know what Wine requires and how it is installed from source.
44 .SH OPTIONS
45 .TP
46 .I --debugmsg [xxx]#name[,[xxx1]#name1]
47 Turn debugging messages on or off.  
48 .RS +7
49 .PP
50 xxx is optional and can be one of the following: 
51 .I err, 
52 .I warn, 
53 .I fixme, 
54 or 
55 .I trace. 
56 If xxx is not specified, all debugging messages for the specified
57 channel are turned on.  Each channel will print messages about a particular
58 component of 
59 .B wine.  
60 # is required and can be either + or -.  Note that 
61 there is not a space after the comma between names. yyy are either the
62 name of a whole DLL or a single API entry by name you either
63 want to include or exclude from the relay listing.  Case doesn't matter
64 for these.  You can do the same for snoop.
65 .PP
66 For instance:
67 .PP
68 .I --debugmsg warn+all
69 will turn on all warning messages (recommended for debugging)
70 .br
71 .I --debugmsg warn+dll,+heap
72 will turn on DLL warning messages and all heap messages.  
73 .br
74 .I --debugmsg fixme-all,warn+cursor,+relay
75 will turn off all FIXME messages, turn on cursor warning messages, and turn
76 on all relay messages (API calls).
77 .br 
78 .I --debugmsg +relay
79 will turn on all relay messages. For more control on including or excluding
80 functions and dlls look into the [Debug] section of the wine configuration file.
81 .PP
82 The full list of names is:
83 all, accel, advapi, animate, aspi, atom, avifile, bitblt, bitmap, caret,
84 cdrom, class, clipboard, clipping, combo, comboex, comm, commctrl, commdlg,
85 console, crtdll, cursor, datetime, dc, ddeml, ddraw, debug, debugstr,
86 delayhlp, dialog, dinput, dll, dosfs, dosmem, dplay, driver, dsound, edit,
87 elfdll, enhmetafile, event, exec, file, fixup, font, gdi, global, graphics,
88 header, heap, hook, hotkey, icmp, icon, imagehlp, imagelist, imm, int, int10,
89 int16, int17, int19, int21, int31, io, ipaddress, joystick, key, keyboard,
90 loaddll, ldt, listbox, listview, local, mci, mcianim, mciavi, mcicda, mcimidi,
91 mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, mmsys, mmtime,
92 module, monthcal, mpr, msacm, msg, msvideo, nativefont, nonclient, ntdll,
93 odbc, ole, opengl, pager, palette, pidl, print, process, profile, progress, 
94 prop, propsheet, psapi, psdrv, ras, rebar, reg, region, relay, resource, 
95 richedit, scroll, segment, seh, selector, sendmsg, server, setupapi, 
96 setupx, shell, snoop, sound, static, statusbar, storage, stress, string, 
97 syscolor, system, tab, tape, tapi, task, text, thread, thunk, timer, toolbar,
98 toolhelp, tooltips, trackbar, treeview, ttydrv, tweak, typelib, updown, ver,
99 virtual, vxd, wave, win, win16drv, win32, winedbg, wing, wininet, winsock,
100 winspool, wnet, x11 and x11drv.
101
102 .PP
103 For more information on debugging messages, see the file 
104 .I documentation/running.sgml
105 in the source distribution (FIXME: outdated).
106 .RE
107 .TP
108 .I --dll name[,name[,...]]={native|builtin}[,{n|b}[,...]]
109 Selects the override type and load order of dll used in the loading
110 process for any dll. The default is set in the configuration
111 file. There are currently three types of libraries that can be loaded
112 into a process' address space: Native windows dlls (
113 .I native
114 ), 
115 .B wine 
116 internal dlls (
117 .I builtin
118 ). The type may be abbreviated with the first letter of the type (
119 .I n, b
120 ). Each sequence of orders must be separated by commas.
121 .br
122 Each dll may have its own specific load order. The load order
123 determines which version of the dll is attempted to be loaded into the
124 address space. If the first fails, then the next is tried and so
125 on. Multiple libraries with the same load order can be separated with
126 commas. It is also possible to use the --dll option several times, to
127 specify different loadorders for different libraries
128 .br
129 Examples:
130 .br
131 .I --dll comdlg32,commdlg=n,b
132 .br
133 Try to load comdlg32 and commdlg as native windows dll first and try
134 the builtin version if the native load fails.
135 .br
136 .I --dll shell,shell32=n --dll c:\(rs\(rsfoo\(rs\(rsbar\(rs\(rsbaz=b
137 .br
138 Try to load the libraries shell and shell32 as native windows dlls. Furthermore, if 
139 an application request to load c:\(rsfoo\(rsbar\(rsbaz.dll load the builtin library baz. 
140 .br
141 .I --dll comdlg32,commdlg=b,n --dll shell,shell32=b --dll comctl32,commctrl=n
142 .br
143 Try to load comdlg32 and commdlg as builtin first and try the native version
144 if the builtin load fails; load shell32/shell always as builtin and
145 comctl32/commctrl always as native.
146 .br
147 Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.)
148 having exactly the same load order. This will prevent mismatches at runtime.
149 See also configuration file format below.
150 .PD 1
151 .SH PROGRAM/ARGUMENTS
152 The program name may be specified in DOS format (
153 .I
154 C:\(rs\(rsWINDOWS\(rs\(rsSOL.EXE)
155 or in Unix format (
156 .I /msdos/windows/sol.exe
157 ).  You may pass arguments to the program being executed by adding them 
158 to the end of the command line invoking
159 .B wine
160 (such as: wine notepad C:\(rs\(rsTEMP\(rs\(rsREADME.TXT).
161 Note that you need to '\(rs' escape special characters (and spaces) when invoking Wine via
162 a shell, e.g.
163 .PP
164 wine C:\(rs\(rsProgram\(rs Files\(rs\(rsMyPrg\(rs\(rstest.exe
165 .PP
166 Command line processing goes as
167 follows: first 
168 .B wine
169 checks whether one or more of the above mentioned 
170 .B wine 
171 options have been specified. These
172 are removed from the command line, which is passed to the windows program. You can use
173 the parameter 
174 .I -- 
175 to indicate that 
176 .B wine 
177 should stop command line processing. This is needed in case a windows program understands 
178 an option that is usually interpreted (and thus removed from the command line) 
179 by 
180 .B wine. 
181 For example, if you want to execute 
182 .B wine 
183 with the options 
184 .I --dll riched32=n
185 and if 
186 .B wine 
187 should run the program 
188 .I myapp.exe
189 with the arguments
190 .I --display 3d somefile
191 , then you could use the following command line to invoke 
192 .B wine:
193 .PP
194 .I wine --dll riched32=n -- myapp.exe --display 3d somefile
195 .PP 
196 Note that in contrast to previous versions of 
197 .B wine, 
198 you must not pass 
199 program name and program option in one argument to 
200 .B wine. 
201 To run more
202 than one windows program, just execute 
203 .B wine 
204 once with the name of each program as argument. 
205 .SH ENVIRONMENT VARIABLES
206 .B wine
207 makes the environment variables of the shell from which
208 .B wine
209 is started accessible to the windows/dos processes started. So use the
210 appropriate syntax for your shell to enter environment variables you need.
211 .TP 
212 .I WINEPREFIX
213 If set, the content of this variable is taken as the name of the directory where
214 .B wine
215 stores its data (the default is 
216 .I $HOME/.wine
217 ). This directory contains also the socket, which is used to communicate with the
218 .I wineserver.
219 All 
220 .B wine
221 processes using the same 
222 .B wineserver
223 (i.e.: same user) share certain things like registry, shared memory,
224 and config file.
225 By setting 
226 .I WINEPREFIX
227 to different values for different 
228 .B wine
229 processes, it is possible to run a number of truly independent 
230 .B wine
231 processes. 
232 .TP
233 .I WINESERVER
234 Specifies the path and name of the
235 .B wineserver
236 binary. If not set, Wine will try to load
237 .B @bindir@/wineserver,
238 and if this doesn't exist it will then look for a file named
239 "wineserver" in the path and in a few other likely locations.
240 .TP
241 .I WINELOADER
242 Specifies the path and name of the
243 .B wine
244 binary to use to launch new Windows processes. If not set, Wine will
245 try to load
246 .B @bindir@/wine,
247 and if this doesn't exist it will then look for a file named "wine" in
248 the path and in a few other likely locations.
249 .TP
250 .I WINEDLLPATH
251 Specifies the path(s) in which to search for builtin dlls and Winelib
252 applications. This is a list of directories separated by ":". In
253 addition to any directory specified in
254 .I WINEDLLPATH,
255 Wine will also look in
256 .B @dlldir@.
257 .TP
258 .I DISPLAY
259 Specifies the X11 display to use.
260 .SH CONFIGURATION FILE
261 .B wine
262 expects a configuration file (
263 .I $WINEPREFIX/config
264 (~/.wine/config)
265 ), which must conform to the format specified in the
266 .BR wine.conf (5)
267 man page. A sample configuration file is documentation/samples/config in the 
268 .B wine 
269 source archive.
270 .SH AUTHORS
271 .B wine
272 is available thanks to the work of many developers. For a listing
273 of the authors, please see the file 
274 .B AUTHORS
275 in the top-level directory of the source distribution.
276 .SH COPYRIGHT
277 .B wine
278 can be distributed under the terms of the LGPL license. A copy of the
279 license is in the file
280 .B LICENSE
281 in the top-level directory of the source distribution.
282 .SH BUGS
283 .PP
284 A status report on many applications is available from
285 .I http://www.winehq.com/Apps.
286 Please add entries to this list for applications you currently run.
287 .PP
288 Bug reports may be posted to Wine Bugzilla
289 .I http://bugs.winehq.com
290 If you want to post a bug report, please read the file
291 .I documentation/bugs.sgml
292 in the 
293 .B wine 
294 source to see what information is necessary
295 .PP
296 Problems and suggestions with this manpage please also report to
297 .I http://bugs.winehq.com
298 .SH AVAILABILITY
299 The most recent public version of 
300 .B wine
301 can be obtained via FTP from ibiblio.org in the
302 /pub/Linux/ALPHA/Wine/development directory.  The releases are in the
303 format 'Wine-yyyymmdd.tar.gz', or 'Wine-yyyymmdd.diff.gz' for the
304 diff's from the previous release. The same directory holds the
305 pre-built contents of the documentation in various formats
306 (wine-doc.xxx.gz).
307 .PP
308 The latest snapshot of the code may be obtained via CVS.  For information
309 on how to do this, please see
310 .I
311 http://www.winehq.com/development/
312 .PP
313 WineHQ, the
314 .B wine
315 development headquarters, is at
316 .I http://www.winehq.com/.
317 This website contains a great deal of information about
318 .B wine.
319 .PP
320 The
321 .B wine 
322 newsgroup is 
323 .I comp.emulators.ms-windows.wine.
324 It is used for discussion of various 
325 .B wine end user aspects/help.
326 .PP
327 For further information about 
328 .B wine
329 development, you might want to subscribe to the 
330 .B wine 
331 mailing lists at
332 .I http://www.winehq.com/development/#ml
333 .SH FILES
334 .PD 0
335 .TP
336 .I @bindir@/wine
337 The 
338 .B wine 
339 program loader.
340 .TP
341 .I @bindir@/wineconsole
342 The 
343 .B wine 
344 program loader for CUI (console) applications.
345 .TP
346 .I @bindir@/wineserver
347 The 
348 .B wine 
349 server 
350 .TP 
351 .I @bindir@/winedbg
352 The 
353 .B wine 
354 debugger
355 .TP 
356 .I @bindir@/wineclipsrv
357 The 
358 .B wine 
359 clipboard server
360 .TP 
361 .I @dlldir@
362 Directory containing 
363 .B wine's
364 shared libraries 
365 .TP
366 .I ~/.wine/config
367 User-specific configuration file
368 .TP 
369 .I ~/.wine
370 Directory containing user specific data managed by 
371 .B wine. 
372
373 .SH "SEE ALSO"
374 .BR wine.conf (5)