Optimized include/*.h: (recursively) include all headers needed by
this .h file, but only those. Necessary fixes to a lot of .c files,
started optimizing "windows.h" away from some of them. Moved
GetCurrentTask prototype to wine/winbase16.h.

diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 63ad76f..69e6163 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "winerror.h"
 #include "heap.h"
diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c
index b65090e..b980b23 100644
--- a/dlls/shell32/classes.c
+++ b/dlls/shell32/classes.c
@@ -8,6 +8,7 @@
 #include <string.h>
 #include "debug.h"
 #include "winerror.h"
+#include "winreg.h"
 
 #include "shlobj.h"
 #include "shell32_main.h"
diff --git a/dlls/shell32/contmenu.c b/dlls/shell32/contmenu.c
index 9189807..14f7912 100644
--- a/dlls/shell32/contmenu.c
+++ b/dlls/shell32/contmenu.c
@@ -3,7 +3,6 @@
  *
  *	Copyright 1998	Juergen Schmied <juergen.schmied@metronet.de>
  */
-#include "windows.h"
 #include "winerror.h"
 #include "debug.h"
 
@@ -11,7 +10,6 @@
 #include "objbase.h"
 #include "if_macros.h"
 #include "shlguid.h"
-#include "shlobj.h"
 #include "shell32_main.h"
 #include "shresdef.h"
 
diff --git a/dlls/shell32/enumidlist.c b/dlls/shell32/enumidlist.c
index 0707dd1..baa3a74 100644
--- a/dlls/shell32/enumidlist.c
+++ b/dlls/shell32/enumidlist.c
@@ -12,7 +12,6 @@
 
 #include "pidl.h"
 #include "shlguid.h"
-#include "shlobj.h"
 #include "shell32_main.h"
 
 /* IEnumIDList Implementation */
diff --git a/dlls/shell32/folders.c b/dlls/shell32/folders.c
index 4140c99..f556c96 100644
--- a/dlls/shell32/folders.c
+++ b/dlls/shell32/folders.c
@@ -9,11 +9,9 @@
 #include "debug.h"
 #include "objbase.h"
 #include "winerror.h"
-
 #include "pidl.h"
 #include "shell32_main.h"
 #include "shlguid.h"
-#include "shlobj.h"
 
 
 /******************************************************************************
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index 64ae065..a678631 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -5,8 +5,8 @@
  *  since dll geting never unloaded the iconcache will never be freed
  */
 #include <string.h>
-#include "windows.h"
 #include "wine/winuser16.h"
+#include "wine/winbase16.h"
 #include "neexe.h"
 #include "cursoricon.h"
 #include "module.h"
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 8d6a992..05238d4 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -7,7 +7,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "windows.h"
 #include "wine/winuser16.h"
 #include "winerror.h"
 #include "heap.h"
@@ -20,6 +19,7 @@
 #include "authors.h"
 
 #include "shell.h"
+#include "shellapi.h"
 #include "pidl.h"
 #include "shlobj.h"
 #include "shell32_main.h"
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c
index 3887a44..3ec96a0 100644
--- a/dlls/shell32/shellole.c
+++ b/dlls/shell32/shellole.c
@@ -8,15 +8,17 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "debug.h"
-#include "objbase.h"
+#include "winreg.h"
 #include "winerror.h"
+#include "objbase.h"
 #include "winversion.h"
 
 #include "shlguid.h"
 #include "shlobj.h"
 #include "shell32_main.h"
 
+#include "debug.h"
+
 /*************************************************************************
  *
  */
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 04cce48..5bff512 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -6,8 +6,8 @@
  *           1998 Jürgen Schmied
  */
 #include <string.h>
-#include "windows.h"
 #include "winerror.h"
+#include "winreg.h"
 #include "debug.h"
 #include "winnls.h"
 #include "winversion.h"
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 3efa3ed..8503657 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -6,7 +6,6 @@
  */
 #include <string.h>
 #include <ctype.h>
-#include "windows.h"
 #include "debug.h"
 #include "winnls.h"
 #include "winversion.h"
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index a02ef3f..cc98822 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -10,7 +10,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "debug.h"
+
 #include "winerror.h"
 
 #include "pidl.h"
@@ -22,6 +22,8 @@
 #include "shell32_main.h"
 #include "shresdef.h"
 
+#include "debug.h"
+
 /***********************************************************************
 *   IShellView implementation
 */