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