home *** CD-ROM | disk | FTP | other *** search
/ Programming Win32 Under the API / ProgrammingWin32UnderTheApiPatVillani.iso / src / mingw-runtime-19991107 / w32api / README < prev    next >
Encoding:
Text File  |  1999-08-02  |  3.6 KB  |  92 lines

  1.         Free headers and libraries for the Win32 API
  2.  
  3.         Written by Anders Norlander
  4.         Send bug reports and questions to anorland@hem2.passagen.se
  5.         URL: http://www.acc.umu.se/~anorland/gnu-win32/
  6.  
  7. * License
  8.  
  9.   You are free to use, modify and copy this package. No restrictions
  10.   are imposed on programs or object files compiled with this library.
  11.   
  12.   You may not restrict the the usage of this library.
  13.  
  14.   You may distribute this library as part of another package or as a
  15.   modified package if and only if you do *not* restrict the usage of
  16.   the portions consisting of this (optionally modified) library.
  17.  
  18.   If distributed as part of another package, please notify the author
  19.   of what you are going to do.  If distributed as a modified package,
  20.   this file *must* be included.
  21.  
  22.   This library is distributed in the hope that it will be useful, but
  23.   WITHOUT ANY WARRANTY; without even the implied warranty of
  24.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  25.  
  26. * What is it?
  27.  
  28.   This is a free set of headers and import libraries for the Win32
  29.   API.  The library differs from the GNU Windows32 library in that I
  30.   have tried to use a file structure that mirrors Microsoft's.  I
  31.   don't like having *all* definitions in one single header as in the
  32.   GNU Windows32 library, I want a clean separation between different
  33.   parts of the API.
  34.  
  35.   Daniel Guerrero Miralles contributed the DirectX 6.1 import
  36.   libraries and DirectX GUID definitions.
  37.  
  38.   See the files NOTES and TODO for what needs to be done.
  39.  
  40. * Size does matter
  41.  
  42.   Since the WIN32 API is severely bloated (as most MS products seem to
  43.   be) the headers are designed to be as compact as possible, while
  44.   still being readable, in order to minimize parsing time.
  45.  
  46.   The convention is to omit parameter names for function prototypes,
  47.   no excessive white space. Struct/union members are indented with tab
  48.   characters to make them readable. Comment only when necessary.
  49.  
  50.   If you are contributing a patch please follow the above mentioned
  51.   convention. Make sure your editor does not convert tabs to spaces.
  52.  
  53. * What do I need to use it?
  54.  
  55.   The library is intended for use with egcs 1.1 or later but it is
  56.   possible to use with some other tools as well (although it is not
  57.   very useful). LCC-Win32, MSVC and Borland C++ 5.01 or higher may
  58.   work as well. The import libraries are for GNU tools only.
  59.  
  60.   The library requires egcs 1.1 or later, since the `#pragma pack'
  61.   feature is used. Mumit Khan provides egcs patches and binaries for
  62.   win32 at `http://www.xraylith.wisc.edu/~khan/software/gnu-win32/'.
  63.  
  64.   If you are going to use C++ COM objects, you will need a version of
  65.   egcs that recognizes the `comobject' attribute and then define
  66.   HAVE_COMOBJECT when compiling your program. Antonio Mendes de
  67.   Oliveira Neto has a prebuilt version at
  68.   `http://li.facens.br/EGCS-WIN32/english/index.html'. Note that this
  69.   is very experimental. If you want to use COM objects in C++ but with
  70.   C interfaces you must define CINTERFACE.
  71.  
  72.   Objective-C programs cannot use COM functionality because of
  73.   conflicts between the interface define and the Objective-C
  74.   @interface directive.  There is also a conflict between the windows
  75.   Obj-C BOOL types. To avoid this conflict you should use WINBOOL in
  76.   all places where you would use BOOL in a C/C++ windows program. If
  77.   you include any windows headers *after* `windows.h' you must use the
  78.   method outlined below:
  79.  
  80.   /* non-windows includes */
  81.   #include <objc/objc.h>
  82.   ...
  83.   /* windows specific headers */
  84.   #include <windows.h>
  85.   #define BOOL WINBOOL
  86.   #include <commctrl.h>
  87.   ...
  88.   #undef BOOL
  89.   ...
  90.   /* include other headers */
  91.  
  92.