Started implementation of the functions GetDefaultCommConfigA/W.
[wine.git] / documentation / wine.man.in
blob58025436f4ef6d4fb85b9fc5a56c5c55106c61aa
1 .\" -*- nroff -*-
2 .TH WINE 1 "July 16, 1999" "Version 20000326" "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 .B wine 
19 currently runs a growing list of applications written for Win3.1,
20 Win95, Win95, and Windows NT. Older, simpler applications work better than
21 newer, more complex ones.  A large percentage of the API has been implemented,
22 although there are still several major pieces of work left to do.
23 .SH REQUIREMENTS
24 .B wine
25 requires kernel-level threads to run. Currently, only Linux version 2.0
26 or later, FreeBSD-current or FreeBSD 3.0 or later, and Solaris x86
27 version 2.5 or later are supported. Other operating systems which support
28 kernel threads may be supported in the future.
29 .PP
30 Although Linux version 2.0 will mostly work, certain features (specifically
31 LDT sharing) required for properly supporting Win32 threads were not
32 implemented until kernel version 2.2. If you get consistent thread-related
33 crashes, you may want to upgrade to 2.2. Also, some bugs were fixed and
34 additional features were added late in the Linux 2.0.x series, so if you have
35 a very old Linux kernel, you may want to upgrade to at least the latest 2.0.x
36 release.
37 .PP
38 If you have FreeBSD, make sure you have the USER_LDT,
39 SYSVSHM, SYSVSEM, and SYSVMSG options turned on in your kernel. If you
40 are building 
41 .B wine 
42 on Solaris, you will most likely need to build Wine with the GNU toolchain 
43 (gcc, gas, etc.)
44 .PP
45 .B X
46 must be installed.  To use 
47 .B wine's 
48 support for multithreaded applications, your X libraries must be reentrant.  
49 If you have libc6 (glibc2), or you 
50 compiled the X libraries yourself, they were probably compiled with the 
51 reentrant option enabled.  
52 .PP
53 .B libXpm
54 must be installed.  If you're using Red Hat, make sure the following
55 packages are installed: XFree86-devel, xpm, and xpm-devel. If you're
56 using Debian, the packages you need are xpm4g and xpm4g-dev. If you 
57 have some other distribution, please send a list of packages required
58 to the address listed in the 
60 BUGS
61 section to get it included in this man page.
62 .PP
63 .B gcc
64 2.7.2 or later is required to build
65 .B wine.
66 Versions earlier than 2.7.2.3 may have problems when certain files are
67 compiled with optimization, often due to problems with header file
68 management.
70 pgcc
71 currently doesn't work with 
72 .B wine.  
73 The cause of this problem is unknown. 
74 .PP
75 .B flex
76 version 2.5 or later and 
77 .B yacc
78 are required.  Bison can be used in replace of yacc. If you have Redhat
79 or Debian, make sure the bison and flex packages are installed.
80 .SH INSTALLATION
81 To install 
82 .B wine,
83 run "./configure" in the top-level directory of the source, which will 
84 detect your specific setup and create the Makefiles.  You can run 
85 "./configure --help" to see the available configuration options.  Then do 
86 "make depend && make" to build the
87 .B wine
88 executable, and then "make install" to install it. By default,
89 .B wine
90 is installed in the /usr/local/ hierarchy (current configuration has it in
91 the @prefix@ hierarchy); you can specify a different path with
92 the --prefix or --sysconfdir options when running
93 .B configure.
94 .PP
95 For more information, see the 
96 .I README
97 file contained in the source distribution.
98 .SH OPTIONS
99 .TP
100 .I --config filename
101 Use the named configuration file rather than the default
102 (@sysconfdir@/wine.conf or ~/.winerc).
104 .I --debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
105 Turn debugging messages on or off.  
106 .RS +7
108 xxx is optional and can be one of the following: 
109 .I err, 
110 .I warn, 
111 .I fixme, 
112 or 
113 .I trace. 
114 If xxx is not specified, all debugging messages for the specified
115 channel are turned on.  Each channel will print messages about a particular
116 component of 
117 .B wine.  
118 # is required and can be either + or -.  Note that 
119 there is not a space after the comma between names. yyy are either the
120 name of a whole DLL or a single API entry by Name you either
121 want to include or exclude from the relay listing. These names must be in
122 the case as names used in the relaylisting. You can do the same for snoop.
124 For instance:
126 .I --debugmsg warn+dll,+heap
127 will turn on DLL warning messages and all heap messages.  
129 .I --debugmsg fixme-all,warn+cursor,+relay
130 will turn off all FIXME messages, turn on cursor warning messages, and turn
131 on all relay messages (API calls).
132 .br 
133 .I --debugmsg -relay=LeaveCriticalSection:EnterCriticalSection
134 will turn on all relay messages except for LeaveCriticalSection and
135 EnterCriticalSection.
136 .br 
137 .I --debugmsg +relay=ADVAPI32
138 will only turn on relay messages into the ADVAPI32 code.
140 The full list of names is: all, accel, advapi, animate, aspi, atom, avifile, bitblt,
141 bitmap, caret, cdrom, class, clipboard, clipping, combo, comboex, comm, commctrl,
142 commdlg, console, crtdll, cursor, datetime, dc, ddeml, ddraw, debug, debugstr, delayhlp, 
143 dialog, dinput, dll, dosfs, dosmem, dplay, driver, dsound, edit, elfdll, enhmetafile, 
144 event, exec, file, fixup, font, gdi, global, graphics, header, heap, hook, hotkey, 
145 icmp, icon, imagehlp, imagelist, imm, int, int10, int16, int17, int19, int21, int31,
146 io, ipaddress, joystick, key, keyboard, ldt, listbox, listview, local, mci, mcianim, 
147 mciavi, mcicda, mcimidi, mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, 
148 mmsys, mmtime, module, monthcal, mpr, msacm, msg, msvideo, nativefont, nonclientntdll, 
149 odbc, ole, pager, palette, pidl, print, process, profile, progress, prop, propsheet, 
150 psapi, psdrv, ras, rebar, reg, region, relay, resource, scroll, segment, seh, selector,
151 sendmsg, server, setupx, shell, snoop, sound, static, statusbar, storage, stress, string, 
152 syscolor, system, tab, tape, tapi, task, text, thread, thunk, timer, toolbar, toolhelp, 
153 tooltips, trackbar, treeview, ttydrv, tweak, typelib, updown, ver, virtual, vxd, wave, 
154 win, win16drv, win32, winedbg, wing, winsock, winspool, wnet, x11 and x11drv.
157 For more information on debugging messages, see the file 
158 .I documentation/debug-msgs
159 in the source distribution.
162 .I --desktop geom
163 Use a desktop window of the given geometry, e.g. "640x480"
165 .I --display name
166 Use the specified X display
168 .I --dll name[,name[,...]]={native|elfdll|so|builtin}[,{n|e|s|b}[,...]][:...]
169 Selects the override type and load order of dll used in the loading process
170 for any dll. The default is set in @sysconfdir@/wine.conf or ~/.winerc. There
171 are currently four types of libraries that can be loaded into a process' address
172 space: Native windows dlls (
173 .I native
174 ), ELF encapsulated windows dlls (
175 .I elfdll
176 ), native ELF libraries (
177 .I so
178 )and 
179 .B wine 
180 internal dlls (
181 .I builtin
182 ). The type may be abbreviated with the first letter of the type (
183 .I n, e, s, b
184 ). Each sequence of orders must be separated by commas.
186 Each dll may have its own specific load order. The load order determines
187 which verion of the dll is attempted to be loaded into the address space. If
188 the first fails, then the next is tried and so on. Different load orders can
189 be specified by separating the entries with a colon. Multiple libraries
190 with the same load order can be separated with commas.
192 Examples:
194 .I --dll comdlg32,commdlg=n,b
196 Try to load comdlg32 and commdlg as native windows dll first and try
197 the builtin version if the native load fails.
199 .I --dll comdlg32,commdlg=e,n:shell,shell32=b:comctl32,commctrl=n
201 Try to load comdlg32 and commdlg as elfdll first and try the native version
202 if the elfdll load fails; load shell32/shell always as builtin and
203 comctl32/commctrl always as native.
205 Note: It is wise to keep dll pairs (comdlg32/commdlg, shell/shell32, etc.)
206 having exactly the same load order. This will prevent mismatches at runtime.
207 See also configuration file format below.
209 .I --dosver version
210 Specify the DOS version 
211 .B wine 
212 should imitate (e.g. 6.22) This option
213 is only valid when used in conjunction with --winver win31.
215 .I --language xx
216 Set the language to
217 .I xx
218 (one of Br, Ca, Cs, Cy, Da, De, En, Eo, Es, Fi, Fr, Ga, Gd, Gv, Hr,
219 Hu, It, Ko, Kw, No, Pl, Pt, Ru, Sk, Sv, Wa)
221 .I --managed
222 Create each top-level window as a properly managed X window instead of
223 creating our own "sticky" window.
225 .I --synchronous
226 Turn on synchronous display mode. Useful for debugging X11 graphics problems.
228 .I --winver version
229 Specify which Windows version 
230 .B wine 
231 should imitate.
232 Possible arguments are: win31, win95, nt351, and nt40.
233 .PD 1
234 .SH PROGRAM/ARGUMENTS
235 The program name may be specified in DOS format (
237 C:\\WINDOWS\\SOL.EXE)
238 or in Unix format (
239 .I /msdos/windows/sol.exe
240 ).  The program being executed may be passed arguments by adding them on 
241 to the end of the command line invoking
242 .B wine
243 (such as: wine notepad C:\\TEMP\\README.TXT). Command line processing goes as
244 follows: first 
245 .B wine
246 checks, if one or more of the above mentioned 
247 .B wine 
248 options have been specified. These
249 are removed from the command line, which is passed to the windows program. You can use
250 the Parameter 
251 .I -- 
252 to indicate, that 
253 .B wine 
254 should stop command line processing. This is needed, if a windows program understands 
255 a option, which is usually interpreted (and thus removed from the command line) 
256 by 
257 .B wine. 
258 For example, if you want to execute 
259 .B wine 
260 with the options 
261 .I --managed --config myapp.winerc
262 and if 
263 .B wine 
264 should run the program 
265 .I myapp.exe
266 with the arguments
267 .I --config my.ini somefile
268 , then you could use the following command line to invoke 
269 .B wine:
271 .I wine --managed --config myapp.winerc -- myapp.exe --config my.ini somefile
272 .PP 
273 Note that in contrast to previous versions of 
274 .B wine, 
275 you must not pass 
276 program name and program option in one argument to 
277 .B wine. 
278 To run more
279 that one windows program, just execute 
280 .B wine 
281 once with the name 
282 of each program as argument. 
283 .SH ENVIRONMENT VARIABLES
284 .B wine
285 makes the environment variables of the shell from which
286 .B wine
287 is started accessible to the windows/dos processes started. So use the
288 appropriate syntax for your shell to enter environment variables you need.
289 .TP 
290 .I WINEPREFIX
291 If set, the content of this variable is taken as the name of the directory, where
292 .B wine
293 stores its data (usually 
294 .I $HOME/.wine
295 ). This directory contains also the socket, which is used to communicate with the
296 .I wineserver.
297 All 
298 .B wine
299 processes, using the same 
300 .B wineserver
301 share certain things like registry and shared memory. By setting 
302 .I WINEPREFIX
303 to different values for different 
304 .B wine
305 processes, it is possible to run a number of truly independent 
306 .B wine
307 processes. 
309 .SH CONFIGURATION FILE
310 .B wine
311 expects a configuration file (
312 .I @sysconfdir@/wine.conf
313 ), which must conform to the format specified in the
314 .BR wine.conf (5)
315 man page. A sample configuration file is wine.ini in the base directory of the 
316 .B wine 
317 source archive. Alternatively a configuration file with the name
318 .I winerc 
319 in the home directory of the user running 
320 .B wine 
321 can be used. The third option is to specify the name of the 
322 configuration file with the 
323 .B --config
324 option. 
325 .SH AUTHORS
326 .B wine
327 is available thanks to the work of many developers. For a listing
328 of the authors, please see the file 
329 .B AUTHORS
330 in the top-level directory of the source distribution.
331 .SH BUGS
333 A status report on many appplications is available from
334 .I http://www.winehq.com/Apps.
335 Please add entries to this list for applications you currently run.
337 Bug reports and successes may be posted to 
338 .I comp.emulators.ms-windows.wine.
339 If you want to post a bug report, please read the file
340 .I documentation/bugreports
341 in the 
342 .B wine 
343 source to see what information is necessary.
345 For problems and suggestions with this manpage, please send a note to
346 James Juran <jrj120@psu.edu>.
347 .SH AVAILABILITY
348 The most recent public version of 
349 .B wine
350 can be obtained via FTP from metalab.unc.edu or tsx-11.mit.edu in the 
351 /pub/linux/ALPHA/Wine/development directory.  The releases are in the 
352 format 'Wine-yyyymmdd.tar.gz', or 'Wine-yyyymmdd.diff.gz' for the diff's 
353 from the previous release.
355 The latest snapshot of the code may be obtained via CVS.  For information
356 on how to do this, please see
358 http://www.winehq.com/dev.html
360 WineHQ, the
361 .B wine
362 development headquarters, is at
363 .I http://www.winehq.com/.
364 This website contains a great deal of information about
365 .B wine.
368 .B wine 
369 newsgroup is 
370 .I comp.emulators.ms-windows.wine.
371 It is used for discussion of various 
372 .B wine end user aspects/help.
374 For further information about 
375 .B wine development, you might want to
376 subscribe to the 
377 .B wine 
378 "cvs", "devel" and "patches" mailing lists at
379 .I http://www.winehq.com/dev.html#ml.
380 .SH FILES
381 .PD 0
383 .I @prefix@/bin/wine
384 The 
385 .B wine 
386 program loader.
388 .I @prefix@/bin/dosmod
389 The DOS program loader.
391 .I @prefix@/bin/wineserver
392 The 
393 .B wine 
394 server 
395 .TP 
396 .I @prefix@/bin/wineclpsrv
397 The 
398 .B wine 
399 clipboard server
400 .TP 
401 .I @prefix@/lib/
402 Directory containing 
403 .B wines's
404 shared libraries 
406 .I @sysconfdir@/wine.conf
407 Global configuration file for 
408 .B wine.
410 .I ~/.winerc
411 User-specific configuration file
412 .TP 
413 .I ~/.wine
414 Directory containing user specific data managed by 
415 .B wine. 
417 .I @prefix@/lib/wine.sym
418 Global symbol table (used in debugger)
419 .SH "SEE ALSO"
420 .BR wine.conf (5),
421 .BR clone (2)