94 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
        Free headers and libraries for the Win32 API
 | 
						|
 | 
						|
        Originally written by Anders Norlander 
 | 
						|
	Last known and not working email: <anorland@hem2.passagen.se>
 | 
						|
 | 
						|
	Now maintained by MinGW Developers
 | 
						|
        Send bug reports and questions to MinGW-users@lists.sourceforge.net
 | 
						|
	URL: http://www.mingw.org
 | 
						|
 | 
						|
* License 2.0
 | 
						|
 | 
						|
  You are free to use, modify and copy this package as long as this
 | 
						|
  README.w32api file is included unmodified with any distribution, source or
 | 
						|
  binary, of this package.  No restrictions are imposed on any package or 
 | 
						|
  product using or incorporating this package.  You are free to license your 
 | 
						|
  package as you see fit.
 | 
						|
  
 | 
						|
  You may not restrict others freedoms as set forth in the above paragraph.
 | 
						|
  You may distribute this library as part of another package or as a
 | 
						|
  modified package if and only if you do *not* restrict others freedoms as
 | 
						|
  set forth in the above paragraph as it concerns this package.  You do have
 | 
						|
  the right to restrict uses of any package using this package.
 | 
						|
 | 
						|
  This package is distributed in the hope that it will be useful, but
 | 
						|
  WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
						|
 | 
						|
* What is it?
 | 
						|
 | 
						|
  This is a free set of headers and import libraries for the Win32
 | 
						|
  API.  The library differs from the GNU Windows32 library in that I
 | 
						|
  have tried to use a file structure that mirrors Microsoft's.  I
 | 
						|
  don't like having *all* definitions in one single header as in the
 | 
						|
  GNU Windows32 library, I want a clean separation between different
 | 
						|
  parts of the API.
 | 
						|
 | 
						|
  Daniel Guerrero Miralles contributed the DirectX 6.1 import
 | 
						|
  libraries and DirectX GUID definitions.
 | 
						|
 | 
						|
  See the files NOTES and TODO for what needs to be done.
 | 
						|
 | 
						|
* Size does matter
 | 
						|
 | 
						|
  Since the WIN32 API is severely bloated (as most MS products seem to
 | 
						|
  be) the headers are designed to be as compact as possible, while
 | 
						|
  still being readable, in order to minimize parsing time.
 | 
						|
 | 
						|
  The convention is to omit parameter names for function prototypes,
 | 
						|
  no excessive white space. Struct/union members are indented with tab
 | 
						|
  characters to make them readable. Comment only when necessary.
 | 
						|
 | 
						|
  If you are contributing a patch please follow the above mentioned
 | 
						|
  convention. Make sure your editor does not convert tabs to spaces.
 | 
						|
 | 
						|
* What do I need to use it?
 | 
						|
 | 
						|
  The library is intended for use with egcs 1.1 or later but it is
 | 
						|
  possible to use with some other tools as well (although it is not
 | 
						|
  very useful). LCC-Win32, MSVC and Borland C++ 5.01 or higher may
 | 
						|
  work as well. The import libraries are for GNU tools only.
 | 
						|
 | 
						|
  The library requires egcs 1.1 or later, since the `#pragma pack'
 | 
						|
  feature is used. Mumit Khan provides egcs patches and binaries for
 | 
						|
  win32 at `http://www.xraylith.wisc.edu/~khan/software/gnu-win32/'.
 | 
						|
 | 
						|
  If you are going to use C++ COM objects, you will need a version of
 | 
						|
  egcs that recognizes the `comobject' attribute and then define
 | 
						|
  HAVE_COMOBJECT when compiling your program. Antonio Mendes de
 | 
						|
  Oliveira Neto has a prebuilt version at
 | 
						|
  `http://li.facens.br/EGCS-WIN32/english/index.html'. Note that this
 | 
						|
  is very experimental. If you want to use COM objects in C++ but with
 | 
						|
  C interfaces you must define CINTERFACE.
 | 
						|
 | 
						|
  Objective-C programs cannot use COM functionality because of
 | 
						|
  conflicts between the interface define and the Objective-C
 | 
						|
  @interface directive.  There is also a conflict between the windows
 | 
						|
  Obj-C BOOL types. To avoid this conflict you should use WINBOOL in
 | 
						|
  all places where you would use BOOL in a C/C++ windows program. If
 | 
						|
  you include any windows headers *after* `windows.h' you must use the
 | 
						|
  method outlined below:
 | 
						|
 | 
						|
  /* non-windows includes */
 | 
						|
  #include <objc/objc.h>
 | 
						|
  ...
 | 
						|
  /* windows specific headers */
 | 
						|
  #include <windows.h>
 | 
						|
  #define BOOL WINBOOL
 | 
						|
  #include <commctrl.h>
 | 
						|
  ...
 | 
						|
  #undef BOOL
 | 
						|
  ...
 | 
						|
  /* include other headers */
 | 
						|
 |