         CYGWIN_PATCHES

This patch-file adds many missing definitions to the GNU
Windows32 api header files, which are needed to compile
Tk8.0.4plus with cygwin B20.1.

Copy CYGWIN_PATCHES to the following directory:
    \cygnus\cygwin-b20\H-i586-cygwin32\i586-cygwin32\include\
and type:
    patch <CYGWIN_PATCHES
If you don't have the patch utility, download GNU patch
2.1 or higher.

                     Jan Nijtmans     Jan.Nijtmans@wxs.nl

==========================================================
*** Windows32/Base.h.orig	Tue Dec  1 13:42:00 1998
--- Windows32/Base.h	Tue Dec 29 20:01:15 1998
***************
*** 606,613 ****
  /* From ddeml.h in old Cygnus headers */
  
  typedef void (*CALLB) ();
! typedef CALLB PFNCALLBACK;
! 
  typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
  
  /* End of stuff from ddeml.h in old Cygnus headers */
--- 606,615 ----
  /* From ddeml.h in old Cygnus headers */
  
  typedef void (*CALLB) ();
! typedef HDDEDATA CALLBACK FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv,
!         HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2);
! typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT wType, UINT wFmt, HCONV hConv,
!         HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2);
  typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
  
  /* End of stuff from ddeml.h in old Cygnus headers */
*** Windows32/CommonFunctions.h.orig	Tue Dec  1 13:42:00 1998
--- Windows32/CommonFunctions.h	Sun Dec 27 22:57:54 1998
***************
*** 6751,6756 ****
--- 6751,6771 ----
  HDDEDATA WINAPI	DdeCreateDataHandle (DWORD, LPBYTE, DWORD, DWORD, HSZ,
  				UINT, UINT);
  
+ HDDEDATA WINAPI DdeClientTransaction (LPBYTE pData, DWORD cbData,
+                 HCONV hConv, HSZ hszItem, UINT wFmt, UINT wType,
+                 DWORD dwTimeout, LPDWORD pdwResult);
+ BOOL WINAPI     DdeAbandonTransaction (DWORD idInst, HCONV hConv,
+                 DWORD idTransaction);
+ HCONV WINAPI    DdeQueryNextServer (HCONVLIST hConvList, HCONV hConvPrev);
+ UINT WINAPI     DdeQueryConvInfo (HCONV hConv, DWORD idTransaction,
+                 PCONVINFO pConvInfo);
+ HCONVLIST WINAPI DdeConnectList (DWORD idInst, HSZ hszService, HSZ hszTopic,
+                 HCONVLIST hConvList, PCONVCONTEXT pCC);
+ BOOL WINAPI     DdeDisconnectList(HCONVLIST hConvList);
+ LPBYTE WINAPI   DdeAccessData (HDDEDATA hData, LPDWORD pcbDataSize);
+ BOOL WINAPI     DdeUnaccessData (HDDEDATA hData);
+ BOOL WINAPI     DdeFreeStringHandle (DWORD idInst, HSZ hsz);
+ 
  DWORD STDCALL NetUserEnum (LPWSTR, DWORD, DWORD, LPBYTE*, DWORD, LPDWORD,
  				LPDWORD, LPDWORD);
  DWORD STDCALL NetApiBufferFree (LPVOID);
*** Windows32/Defines.h.orig	Tue Dec  1 13:42:00 1998
--- Windows32/Defines.h	Mon Dec 28 08:48:10 1998
***************
*** 860,865 ****
--- 860,867 ----
  
  /* DdeClientTransaction */
  
+ #define TIMEOUT_ASYNC (-1L)
+ 
  /* DdeEnableCallback */
  
  /* DdeGetLastError */
***************
*** 3245,3250 ****
--- 3247,3254 ----
  #define PC_NOCOLLAPSE	(4)
  #define PC_RESERVED	(1)
  
+ #define CLR_INVALID (0xFFFFFFFF)
+ 
  /* LOGBRUSH structure */
  #define BS_DIBPATTERN	(5)
  #define BS_DIBPATTERN8X8	(8)
***************
*** 5050,5055 ****
--- 5054,5060 ----
  #define XTYP_XACT_COMPLETE      0x8080
  #define XTYP_UNREGISTER         0x80D2
  
+ #define DMLERR_NO_ERROR          0x0000
  #define DMLERR_DLL_USAGE        0x4004
  #define DMLERR_INVALIDPARAMETER 0x4006
  #define DMLERR_NOTPROCESSED     0x4009
***************
*** 5235,5241 ****
--- 5240,5294 ----
  /* Magic numbers in PE executable header.  */
  
  #define IMAGE_DOS_SIGNATURE	(0x5a4d) /* e_magic field */
+ #define IMAGE_OS2_SIGNATURE	(0x454E)
+ #define IMAGE_OS2_SIGNATURE_LE	(0x454C)
+ #define IMAGE_VXD_SIGNATURE	(0x454C)
  #define IMAGE_NT_SIGNATURE	(0x4550) /* nt_signature field */
+ 
+ /* Section values. */
+ 
+ #define IMAGE_SYM_UNDEFINED	((SHORT)0)
+ #define IMAGE_SYM_ABSOLUTE	((SHORT)-1)
+ #define IMAGE_SYM_DEBUG		((SHORT)-2)
+ 
+ /* Storage classes. */
+ 
+ #define IMAGE_SYM_CLASS_END_OF_FUNCTION	((BYTE)-1)
+ #define IMAGE_SYM_CLASS_NULL		(0x0000)
+ #define IMAGE_SYM_CLASS_AUTOMATIC	(0x0001)
+ #define IMAGE_SYM_CLASS_EXTERNAL	(0x0002)
+ #define IMAGE_SYM_CLASS_STATIC		(0x0003)
+ #define IMAGE_SYM_CLASS_REGISTER	(0x0004)
+ #define IMAGE_SYM_CLASS_EXTERNAL_DEF	(0x0005)
+ #define IMAGE_SYM_CLASS_LABEL		(0x0006)
+ #define IMAGE_SYM_CLASS_UNDEFINED_LABEL	(0x0007)
+ #define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT (0x0008)
+ #define IMAGE_SYM_CLASS_ARGUMENT	(0x0009)
+ #define IMAGE_SYM_CLASS_STRUCT_TAG	(0x000A)
+ #define IMAGE_SYM_CLASS_MEMBER_OF_UNION	(0x000B)
+ #define IMAGE_SYM_CLASS_UNION_TAG	(0x000C)
+ #define IMAGE_SYM_CLASS_TYPE_DEFINITION	(0x000D)
+ #define IMAGE_SYM_CLASS_UNDEFINED_STATIC (0x000E)
+ #define IMAGE_SYM_CLASS_ENUM_TAG	(0x000F)
+ #define IMAGE_SYM_CLASS_MEMBER_OF_ENUM	(0x0010)
+ #define IMAGE_SYM_CLASS_REGISTER_PARAM	(0x0011)
+ #define IMAGE_SYM_CLASS_BIT_FIELD	(0x0012)
+ 
+ #define IMAGE_SYM_CLASS_FAR_EXTERNAL	(0x0044)
+ #define IMAGE_SYM_CLASS_BLOCK		(0x0064)
+ #define IMAGE_SYM_CLASS_FUNCTION	(0x0065)
+ #define IMAGE_SYM_CLASS_END_OF_STRUCT	(0x0066)
+ #define IMAGE_SYM_CLASS_FILE		(0x0067)
+ #define IMAGE_SYM_CLASS_SECTION		(0x0068)
+ #define IMAGE_SYM_CLASS_WEAK_EXTERNAL	(0x0069)
+ 
+ #define IMAGE_FILE_MACHINE_UNKNOWN	(0)
+ #define IMAGE_FILE_MACHINE_I386		(0x14c) /* Intel 386. */
+ #define IMAGE_FILE_MACHINE_R3000	(0x162) /* MIPS little-endian, 0x160 big-endian */
+ #define IMAGE_FILE_MACHINE_R4000	(0x166) /* MIPS little-endian */
+ #define IMAGE_FILE_MACHINE_R10000	(0x168) /* MIPS little-endian */
+ #define IMAGE_FILE_MACHINE_ALPHA	(0x184) /* Alpha_AXP */
+ #define IMAGE_FILE_MACHINE_POWERPC	(0x1F0) /* IBM PowerPC Little-Endian */
  
  #ifdef __cplusplus
  }
*** Windows32/Structures.h.orig	Tue Dec  1 13:42:04 1998
--- Windows32/Structures.h	Sun Dec 27 23:03:10 1998
***************
*** 890,895 ****
--- 890,897 ----
    HWND        hwndPartner; 
  } CONVINFO; 
  
+ typedef CONVINFO FAR *PCONVINFO;
+ 
  typedef struct tagCOPYDATASTRUCT { 
    DWORD dwData; 
    DWORD cbData; 
***************
*** 4797,4802 ****
--- 4799,4833 ----
  	WORD	e32_devid;	/* Device ID */
  	WORD	e32_ddkver;	/* DDK version */
  } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
+ 
+ /* Symbol format */
+ 
+ typedef struct _IMAGE_SYMBOL {
+     union {
+         BYTE    ShortName[8];
+         struct {
+             DWORD   Short;
+             DWORD   Long;
+         } Name;
+         PBYTE   LongName[2];
+     } N;
+     DWORD   Value;
+     SHORT   SectionNumber;
+     WORD    Type;
+     BYTE    StorageClass;
+     BYTE    NumberOfAuxSymbols;
+ } IMAGE_SYMBOL;
+ typedef IMAGE_SYMBOL *PIMAGE_SYMBOL;
+ 
+ typedef struct _IMAGE_FILE_HEADER {
+     WORD    Machine;
+     WORD    NumberOfSections;
+     DWORD   TimeDateStamp;
+     DWORD   PointerToSymbolTable;
+     DWORD   NumberOfSymbols;
+     WORD    SizeOfOptionalHeader;
+     WORD    Characteristics;
+ } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
  
  #ifdef __cplusplus
  }
*** shlobj.h.orig	Tue Dec 29 19:49:58 1998
--- shlobj.h	Tue Dec 29 19:50:53 1998
***************
*** 0 ****
--- 1,12 ----
+ /* shlobj.h
+    Definitions are in a different layout than MS headers
+    This file includes our windows.h which in turn should include the
+    normal contents of this header file (and the other Win32 headers).
+ */
+ 
+ #ifndef _PLACEHOLDER_SHLOBJ_H
+ #define _PLACEHOLDER_SHLOBJ_H
+ 
+ #include <windows.h>
+ 
+ #endif /* _PLACEHOLDER_SHLOBJ_H */
