Completed/corrected the list of include files.
Handle WIN32_LEAN_AND_MEAN and the NOxxx macros.
diff --git a/include/windows.h b/include/windows.h
index d623ed1..2cb13c2 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -5,21 +5,67 @@
extern "C" {
#endif
+/* All the basic includes */
+/* #include "excpt.h" */
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
+#include "winnls.h"
+#include "wincon.h"
+#include "winver.h"
#include "winreg.h"
#include "winnetwk.h"
-#include "winver.h"
+
+/* Not so essential ones */
+#ifndef WIN32_LEAN_AND_MEAN
+
+#include "cderr.h"
+#include "dde.h"
+#include "ddeml.h"
+#include "dlgs.h"
#include "lzexpand.h"
-#include "shellapi.h"
-#include "ole2.h"
-#include "winnls.h"
-#include "objbase.h"
#include "mmsystem.h"
+/* #include "nb30.h" */
+#include "rpc.h"
+#include "shellapi.h"
+/* #include "winperf.h" */
+
+#include "winsock2.h"
+/* #include "mswsock.h" */
+
+#ifndef NOCRYPT
+#include "wincrypt.h"
+#endif /* !NOCRYPT */
+
+#ifndef NOGDI
#include "commdlg.h"
#include "winspool.h"
+#ifdef INC_OLE1
+#include "ole.h"
+#else
+#include "ole2.h"
+#endif
+#endif /* !NOGDI */
+
+#endif /* !WIN32_LEAN_AND_MEAN */
+
+#ifdef INC_OLE2
+#include "ole2.h"
+#endif /* INC_OLE2 */
+
+#ifndef NOSERVICE
+#include "winsvc.h"
+#endif /* !NOSERVICE */
+
+#ifndef NOMCX
+#include "mcx.h"
+#endif /* !NOMCX */
+
+#ifndef NOIMM
+#include "imm.h"
+#endif /* !NOIMM */
+
#if 0
Where does this belong? Nobody uses this stuff anyway.
diff --git a/include/winnt.h b/include/winnt.h
index 933e83e..67b50d6 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -3096,6 +3096,8 @@
#define RtlFillMemory(Destination, Length, Fill) memset((Destination),(Fill),(Length))
#define RtlZeroMemory(Destination, Length) memset((Destination),0,(Length))
+#include "guiddef.h"
+
#include "poppack.h"
#endif /* __WINE_WINNT_H */
diff --git a/include/winsock.h b/include/winsock.h
index e803808..101d120 100644
--- a/include/winsock.h
+++ b/include/winsock.h
@@ -7,16 +7,22 @@
#ifndef _WINSOCKAPI_
#define _WINSOCKAPI_
+#ifndef RC_INVOKED
#include <sys/types.h>
-/* Solaris kludge */
+/* Solaris uses these macro names */
#undef FSHIFT
-#undef PAGESIZE
#undef TRANSPARENT
#include <netinet/in.h>
+/* Restore the Windows values */
+#ifdef _WINUSER_
#undef FSHIFT
-#undef PAGESIZE
+#define FSHIFT 0x04
+#endif
+#ifdef _WINGDI_
#undef TRANSPARENT
+#define TRANSPARENT 1
+#endif
#include <arpa/inet.h>
#include <sys/time.h>
@@ -24,6 +30,7 @@
#include <netdb.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
+#endif /* RC_INVOKED */
#include "windef.h"