Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
diff --git a/dlls/amstream/amstream.c b/dlls/amstream/amstream.c
index 62d91c4..c74846c 100644
--- a/dlls/amstream/amstream.c
+++ b/dlls/amstream/amstream.c
@@ -24,6 +24,8 @@
#include "config.h"
#include "wine/debug.h"
+#define COBJMACROS
+
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/amstream/main.c b/dlls/amstream/main.c
index edadd45..e31558e 100644
--- a/dlls/amstream/main.c
+++ b/dlls/amstream/main.c
@@ -21,11 +21,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
-
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c
index 6b1c310..9c426a1 100644
--- a/dlls/atl/atl_main.c
+++ b/dlls/atl/atl_main.c
@@ -21,6 +21,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/avifil32/api.c b/dlls/avifil32/api.c
index 8346cad..c08ed5f 100644
--- a/dlls/avifil32/api.c
+++ b/dlls/avifil32/api.c
@@ -17,10 +17,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
#include <assert.h>
#include <stdarg.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
diff --git a/dlls/avifil32/factory.c b/dlls/avifil32/factory.c
index f88b0ae..b64a359 100644
--- a/dlls/avifil32/factory.c
+++ b/dlls/avifil32/factory.c
@@ -16,10 +16,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
#include <assert.h>
#include <stdarg.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/comcat/comcat_private.h b/dlls/comcat/comcat_private.h
index d0045d2..204e04f 100644
--- a/dlls/comcat/comcat_private.h
+++ b/dlls/comcat/comcat_private.h
@@ -18,9 +18,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
#include <stdarg.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index 3f2818f..11060f3 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -34,8 +34,10 @@
#include <ctype.h>
#include <limits.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c
index 48361b2..c385e7b 100644
--- a/dlls/comctl32/imagelist.c
+++ b/dlls/comctl32/imagelist.c
@@ -39,6 +39,9 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/commdlg/filedlg.c b/dlls/commdlg/filedlg.c
index cf9a152..08ad4c3 100644
--- a/dlls/commdlg/filedlg.c
+++ b/dlls/commdlg/filedlg.c
@@ -55,8 +55,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/commdlg/filedlgbrowser.c b/dlls/commdlg/filedlgbrowser.c
index 81bfa94..336fb1f 100644
--- a/dlls/commdlg/filedlgbrowser.c
+++ b/dlls/commdlg/filedlgbrowser.c
@@ -23,8 +23,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 7a098df..5c7aab1 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -25,8 +25,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
index c65d907..32ab930 100644
--- a/dlls/d3d8/volume.c
+++ b/dlls/d3d8/volume.c
@@ -23,8 +23,10 @@
#include <stdarg.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/d3d9/surface.c b/dlls/d3d9/surface.c
index f590cb6..ff1a07b 100644
--- a/dlls/d3d9/surface.c
+++ b/dlls/d3d9/surface.c
@@ -24,8 +24,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/d3d9/volume.c b/dlls/d3d9/volume.c
index 0fcb8be..a8f6289 100644
--- a/dlls/d3d9/volume.c
+++ b/dlls/d3d9/volume.c
@@ -21,9 +21,11 @@
#include "config.h"
+#include <stdarg.h>
+
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index e438f2b..0512add 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -24,6 +24,8 @@
#include "config.h"
#include "wine/debug.h"
+#define COBJMACROS
+
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/d3dxof/main.c b/dlls/d3dxof/main.c
index 809ccc0..c1db4db 100644
--- a/dlls/d3dxof/main.c
+++ b/dlls/d3dxof/main.c
@@ -21,11 +21,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
-
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ddraw/dsurface/main.c b/dlls/ddraw/dsurface/main.c
index dc9ae168..7b982cb 100644
--- a/dlls/ddraw/dsurface/main.c
+++ b/dlls/ddraw/dsurface/main.c
@@ -23,8 +23,10 @@
#include <assert.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "mesa_private.h"
#include "wine/debug.h"
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index 6803e99..5a38a46 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -32,6 +32,8 @@
#include <string.h>
#include <stdlib.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
diff --git a/dlls/devenum/devenum_private.h b/dlls/devenum/devenum_private.h
index 82a2cf0..c303ba4 100644
--- a/dlls/devenum/devenum_private.h
+++ b/dlls/devenum/devenum_private.h
@@ -30,7 +30,9 @@
#include "winreg.h"
#include "winerror.h"
+#define COBJMACROS
#define COM_NO_WINDOWS_H
+
#include "ole2.h"
#include "strmif.h"
#include "olectl.h"
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index f24ce47..247d374 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -34,6 +34,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "wine/debug.h"
#include "wine/unicode.h"
#include "windef.h"
diff --git a/dlls/dplayx/dpclassfactory.c b/dlls/dplayx/dpclassfactory.c
index 98dfcea..5295a64 100644
--- a/dlls/dplayx/dpclassfactory.c
+++ b/dlls/dplayx/dpclassfactory.c
@@ -19,6 +19,9 @@
#include <stdarg.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index 96c5812..22abcdd 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -51,8 +51,10 @@
#include <string.h>
#include <math.h>
+#define COBJMACROS
#define NONAMELESSSTRUCT
#define NONAMELESSUNION
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/itss/itss.c b/dlls/itss/itss.c
index 727644b..e7c4157 100644
--- a/dlls/itss/itss.c
+++ b/dlls/itss/itss.c
@@ -26,6 +26,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/itss/moniker.c b/dlls/itss/moniker.c
index 62b222f..588a1bd 100644
--- a/dlls/itss/moniker.c
+++ b/dlls/itss/moniker.c
@@ -25,6 +25,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/itss/storage.c b/dlls/itss/storage.c
index 3c7e706..13fc9c1 100644
--- a/dlls/itss/storage.c
+++ b/dlls/itss/storage.c
@@ -25,6 +25,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/mapi32/util.c b/dlls/mapi32/util.c
index f58b866..72da46f 100644
--- a/dlls/mapi32/util.c
+++ b/dlls/mapi32/util.c
@@ -20,8 +20,10 @@
#include <stdarg.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 54d7c86..6deb6cc 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -25,6 +25,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/msdmo/dmort.c b/dlls/msdmo/dmort.c
index 6172f65..714d06b 100644
--- a/dlls/msdmo/dmort.c
+++ b/dlls/msdmo/dmort.c
@@ -16,9 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
#include <stdarg.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index b3cd050..2df5389 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -29,6 +29,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 1f67146..97b2eca 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -18,10 +18,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define NONAMELESSUNION
-
#include <stdarg.h>
+#define COBJMACROS
+#define NONAMELESSUNION
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/msi/msiquery.c b/dlls/msi/msiquery.c
index 3984122..c30cd26 100644
--- a/dlls/msi/msiquery.c
+++ b/dlls/msi/msiquery.c
@@ -20,6 +20,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/msi/suminfo.c b/dlls/msi/suminfo.c
index 737428f..cecd37a 100644
--- a/dlls/msi/suminfo.c
+++ b/dlls/msi/suminfo.c
@@ -18,10 +18,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define NONAMELESSUNION
-
#include <stdarg.h>
+#define COBJMACROS
+#define NONAMELESSUNION
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/msi/table.c b/dlls/msi/table.c
index 0e01a11..3073bad 100644
--- a/dlls/msi/table.c
+++ b/dlls/msi/table.c
@@ -18,11 +18,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <stdarg.h>
+
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-#include <stdarg.h>
-
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/ole32/antimoniker.c b/dlls/ole32/antimoniker.c
index d2b39c2..e919993 100644
--- a/dlls/ole32/antimoniker.c
+++ b/dlls/ole32/antimoniker.c
@@ -22,8 +22,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/ole32/bindctx.c b/dlls/ole32/bindctx.c
index abdf1d4..d7cc892 100644
--- a/dlls/ole32/bindctx.c
+++ b/dlls/ole32/bindctx.c
@@ -21,6 +21,9 @@
#include <stdarg.h>
#include <string.h>
#include <assert.h>
+
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/ole32/clipboard.c b/dlls/ole32/clipboard.c
index 66bf3c1..deef806 100644
--- a/dlls/ole32/clipboard.c
+++ b/dlls/ole32/clipboard.c
@@ -62,8 +62,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
index da48d57..d635b18 100644
--- a/dlls/ole32/compobj.c
+++ b/dlls/ole32/compobj.c
@@ -31,8 +31,10 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c
index 34b4f23..9d7fa0c 100644
--- a/dlls/ole32/compositemoniker.c
+++ b/dlls/ole32/compositemoniker.c
@@ -22,8 +22,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c
index 8ce11d1..5d5497d 100644
--- a/dlls/ole32/datacache.c
+++ b/dlls/ole32/datacache.c
@@ -47,8 +47,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/ole32/defaulthandler.c b/dlls/ole32/defaulthandler.c
index c7d12f2..956709c 100644
--- a/dlls/ole32/defaulthandler.c
+++ b/dlls/ole32/defaulthandler.c
@@ -49,6 +49,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/filemoniker.c b/dlls/ole32/filemoniker.c
index e01763d..8e71c3f 100644
--- a/dlls/ole32/filemoniker.c
+++ b/dlls/ole32/filemoniker.c
@@ -22,8 +22,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/ole32/ftmarshal.c b/dlls/ole32/ftmarshal.c
index b978688..ee5f9a4 100644
--- a/dlls/ole32/ftmarshal.c
+++ b/dlls/ole32/ftmarshal.c
@@ -26,6 +26,8 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/ole32/git.c b/dlls/ole32/git.c
index d2b753f..81f0986 100644
--- a/dlls/ole32/git.c
+++ b/dlls/ole32/git.c
@@ -26,14 +26,16 @@
#include "config.h"
-#define NONAMELESSUNION
-#define NONAMELESSSTRUCT
#include <assert.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/hglobalstream.c b/dlls/ole32/hglobalstream.c
index 84b8fff..1966a0a 100644
--- a/dlls/ole32/hglobalstream.c
+++ b/dlls/ole32/hglobalstream.c
@@ -29,8 +29,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c
index 7009cd3..eaa6a4c 100644
--- a/dlls/ole32/ifs.c
+++ b/dlls/ole32/ifs.c
@@ -26,6 +26,8 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/itemmoniker.c b/dlls/ole32/itemmoniker.c
index 79d81b2..c30c2b5 100644
--- a/dlls/ole32/itemmoniker.c
+++ b/dlls/ole32/itemmoniker.c
@@ -22,8 +22,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/ole32/marshal.c b/dlls/ole32/marshal.c
index 020c462..9753809 100644
--- a/dlls/ole32/marshal.c
+++ b/dlls/ole32/marshal.c
@@ -26,6 +26,8 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/memlockbytes.c b/dlls/ole32/memlockbytes.c
index dd00c38..8c06774 100644
--- a/dlls/ole32/memlockbytes.c
+++ b/dlls/ole32/memlockbytes.c
@@ -25,8 +25,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/moniker.c b/dlls/ole32/moniker.c
index e0403fe..57f0574 100644
--- a/dlls/ole32/moniker.c
+++ b/dlls/ole32/moniker.c
@@ -31,6 +31,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c
index b53257d..90aa1e8 100644
--- a/dlls/ole32/ole2.c
+++ b/dlls/ole32/ole2.c
@@ -28,8 +28,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/ole32/ole2impl.c b/dlls/ole32/ole2impl.c
index 903c5e7..9607a22 100644
--- a/dlls/ole32/ole2impl.c
+++ b/dlls/ole32/ole2impl.c
@@ -21,8 +21,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/ole32/oleobj.c b/dlls/ole32/oleobj.c
index eed53ee..bfda94b 100644
--- a/dlls/ole32/oleobj.c
+++ b/dlls/ole32/oleobj.c
@@ -22,6 +22,9 @@
#include <stdarg.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/oleproxy.c b/dlls/ole32/oleproxy.c
index 3f96282..b9f6534 100644
--- a/dlls/ole32/oleproxy.c
+++ b/dlls/ole32/oleproxy.c
@@ -41,8 +41,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/rpc.c b/dlls/ole32/rpc.c
index 2f7d721..2dd0862 100644
--- a/dlls/ole32/rpc.c
+++ b/dlls/ole32/rpc.c
@@ -26,8 +26,10 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/stg_bigblockfile.c b/dlls/ole32/stg_bigblockfile.c
index f7282dd..7532fac 100644
--- a/dlls/ole32/stg_bigblockfile.c
+++ b/dlls/ole32/stg_bigblockfile.c
@@ -38,8 +38,10 @@
#include <string.h>
#include <limits.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/ole32/stg_stream.c b/dlls/ole32/stg_stream.c
index 6accff0..984b43b 100644
--- a/dlls/ole32/stg_stream.c
+++ b/dlls/ole32/stg_stream.c
@@ -29,8 +29,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 9aba5d8..6ec67d2 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -30,8 +30,10 @@
#include <stdlib.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
diff --git a/dlls/oleaut32/connpt.c b/dlls/oleaut32/connpt.c
index 1e6c45f..5cc49c5 100644
--- a/dlls/oleaut32/connpt.c
+++ b/dlls/oleaut32/connpt.c
@@ -25,6 +25,9 @@
#include <assert.h>
#include <stdarg.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/oleaut32/dispatch.c b/dlls/oleaut32/dispatch.c
index 1d4b5ee..a3ce744 100644
--- a/dlls/oleaut32/dispatch.c
+++ b/dlls/oleaut32/dispatch.c
@@ -28,6 +28,8 @@
#include <stdio.h>
#include <ctype.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/oleaut32/oaidl_p.c b/dlls/oleaut32/oaidl_p.c
index cb2c464..541056f 100644
--- a/dlls/oleaut32/oaidl_p.c
+++ b/dlls/oleaut32/oaidl_p.c
@@ -28,6 +28,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/oleaut32/oleaut.c b/dlls/oleaut32/oleaut.c
index 05d918c..455fa7b 100644
--- a/dlls/oleaut32/oleaut.c
+++ b/dlls/oleaut32/oleaut.c
@@ -21,6 +21,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c
index 8544aed..0d6c98d 100644
--- a/dlls/oleaut32/olepicture.c
+++ b/dlls/oleaut32/olepicture.c
@@ -58,8 +58,10 @@
# endif
#endif
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
index a70ea63..e29a7ae 100644
--- a/dlls/oleaut32/tmarshal.c
+++ b/dlls/oleaut32/tmarshal.c
@@ -30,8 +30,10 @@
#include <stdio.h>
#include <ctype.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 3327112..038caeb 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -61,8 +61,10 @@
#include <stdio.h>
#include <ctype.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c
index 7916c5e..3ab6476 100644
--- a/dlls/oleaut32/typelib2.c
+++ b/dlls/oleaut32/typelib2.c
@@ -35,8 +35,10 @@
#include <stdio.h>
#include <ctype.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c
index ae71e4d..585e949 100644
--- a/dlls/oleaut32/usrmarshal.c
+++ b/dlls/oleaut32/usrmarshal.c
@@ -22,8 +22,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/quartz/enummoniker.c b/dlls/quartz/enummoniker.c
index 7448c74..1388df3 100644
--- a/dlls/quartz/enummoniker.c
+++ b/dlls/quartz/enummoniker.c
@@ -21,9 +21,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define COM_NO_WINDOWS_H
#include <stdarg.h>
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index 1016121..8fc417b 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -24,6 +24,8 @@
#include "config.h"
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/quartz/quartz_private.h b/dlls/quartz/quartz_private.h
index 52bc284..37443fd 100644
--- a/dlls/quartz/quartz_private.h
+++ b/dlls/quartz/quartz_private.h
@@ -25,6 +25,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "wtypes.h"
diff --git a/dlls/rpcrt4/cproxy.c b/dlls/rpcrt4/cproxy.c
index 7c4ed55..9ba137c 100644
--- a/dlls/rpcrt4/cproxy.c
+++ b/dlls/rpcrt4/cproxy.c
@@ -23,6 +23,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/rpcrt4/cpsf.c b/dlls/rpcrt4/cpsf.c
index 4e5c0cb..55af27c 100644
--- a/dlls/rpcrt4/cpsf.c
+++ b/dlls/rpcrt4/cpsf.c
@@ -22,6 +22,8 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/rpcrt4/cstub.c b/dlls/rpcrt4/cstub.c
index 83b61f2..574f63b 100644
--- a/dlls/rpcrt4/cstub.c
+++ b/dlls/rpcrt4/cstub.c
@@ -20,6 +20,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/rpcrt4/ndr_midl.c b/dlls/rpcrt4/ndr_midl.c
index d938c41..a1822f5 100644
--- a/dlls/rpcrt4/ndr_midl.c
+++ b/dlls/rpcrt4/ndr_midl.c
@@ -27,6 +27,8 @@
#include <string.h>
#include <assert.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/rpcrt4/ndr_ole.c b/dlls/rpcrt4/ndr_ole.c
index 3774a85..cda3dc1 100644
--- a/dlls/rpcrt4/ndr_ole.c
+++ b/dlls/rpcrt4/ndr_ole.c
@@ -28,8 +28,10 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shdocvw/shdocvw_main.c b/dlls/shdocvw/shdocvw_main.c
index 9dca615..ce93e81 100644
--- a/dlls/shdocvw/shdocvw_main.c
+++ b/dlls/shdocvw/shdocvw_main.c
@@ -20,10 +20,13 @@
#include "config.h"
-#define COM_NO_WINDOWS_H
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
+
+#define COBJMACROS
+#define COM_NO_WINDOWS_H
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/shell32/autocomplete.c b/dlls/shell32/autocomplete.c
index 1655c53..f314f46 100644
--- a/dlls/shell32/autocomplete.c
+++ b/dlls/shell32/autocomplete.c
@@ -38,6 +38,9 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "wine/debug.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 944117f..bd87584 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -23,8 +23,10 @@
#include <stdlib.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "wine/debug.h"
#include "undocshell.h"
#include "shlguid.h"
diff --git a/dlls/shell32/cpanelfolder.c b/dlls/shell32/cpanelfolder.c
index 82ec0bd..9a70dbd 100644
--- a/dlls/shell32/cpanelfolder.c
+++ b/dlls/shell32/cpanelfolder.c
@@ -26,8 +26,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c
index 89fac2c3..96adeb0 100644
--- a/dlls/shell32/dataobject.c
+++ b/dlls/shell32/dataobject.c
@@ -21,8 +21,10 @@
*/
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "wingdi.h"
#include "pidl.h"
diff --git a/dlls/shell32/dragdrophelper.c b/dlls/shell32/dragdrophelper.c
index e2eeef8..f800570 100644
--- a/dlls/shell32/dragdrophelper.c
+++ b/dlls/shell32/dragdrophelper.c
@@ -25,6 +25,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/shell32/enumidlist.c b/dlls/shell32/enumidlist.c
index a282e4f..4c9fcc4 100644
--- a/dlls/shell32/enumidlist.c
+++ b/dlls/shell32/enumidlist.c
@@ -21,6 +21,9 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+
+#define COBJMACROS
+
#include "wine/debug.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/folders.c b/dlls/shell32/folders.c
index 3deab4a..2f993d7 100644
--- a/dlls/shell32/folders.c
+++ b/dlls/shell32/folders.c
@@ -25,6 +25,8 @@
#include <stdio.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index 48ea6fc..e5d1a23 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -27,6 +27,9 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
diff --git a/dlls/shell32/memorystream.c b/dlls/shell32/memorystream.c
index 9fbb8db..ae13d2c 100644
--- a/dlls/shell32/memorystream.c
+++ b/dlls/shell32/memorystream.c
@@ -29,6 +29,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c
index 6e3bf74..98c707a 100644
--- a/dlls/shell32/pidl.c
+++ b/dlls/shell32/pidl.c
@@ -30,8 +30,10 @@
#include <stdlib.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 0723b0d..fc888ef 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -26,6 +26,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 2ec50b0..846d189 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -38,6 +38,9 @@
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
+
+#define COBJMACROS
+
#include "wine/debug.h"
#include "winerror.h"
#include "windef.h"
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c
index f59bfea..7838c1c 100644
--- a/dlls/shell32/shellole.c
+++ b/dlls/shell32/shellole.c
@@ -25,6 +25,8 @@
#include <stdlib.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "shellapi.h"
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 3df8271..c03e293 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -24,6 +24,9 @@
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
+
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c
index b4b7f74..66b4e8c 100644
--- a/dlls/shell32/shfldr_desktop.c
+++ b/dlls/shell32/shfldr_desktop.c
@@ -28,8 +28,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c
index 8ad3202..8586285 100644
--- a/dlls/shell32/shfldr_fs.c
+++ b/dlls/shell32/shfldr_fs.c
@@ -28,8 +28,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/shfldr_mycomp.c b/dlls/shell32/shfldr_mycomp.c
index cdc51bd..74f3f57 100644
--- a/dlls/shell32/shfldr_mycomp.c
+++ b/dlls/shell32/shfldr_mycomp.c
@@ -28,8 +28,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index d8412df..81a31b0 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -32,6 +32,8 @@
#include <ctype.h>
#include <assert.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 316341f..386e5c6 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -30,6 +30,8 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shell32/shlfsbind.c b/dlls/shell32/shlfsbind.c
index 14f85d4..ef425d6 100644
--- a/dlls/shell32/shlfsbind.c
+++ b/dlls/shell32/shlfsbind.c
@@ -24,6 +24,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c
index 9b33c54..0f5a76f 100644
--- a/dlls/shell32/shlmenu.c
+++ b/dlls/shell32/shlmenu.c
@@ -21,6 +21,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/shell32/shv_bg_cmenu.c b/dlls/shell32/shv_bg_cmenu.c
index 24176a7..9dd5dc6 100644
--- a/dlls/shell32/shv_bg_cmenu.c
+++ b/dlls/shell32/shv_bg_cmenu.c
@@ -20,8 +20,10 @@
*/
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "wine/debug.h"
#include "windef.h"
diff --git a/dlls/shell32/shv_item_cmenu.c b/dlls/shell32/shv_item_cmenu.c
index f17e778..9658406 100644
--- a/dlls/shell32/shv_item_cmenu.c
+++ b/dlls/shell32/shv_item_cmenu.c
@@ -20,8 +20,10 @@
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "winerror.h"
#include "wine/debug.h"
diff --git a/dlls/shlwapi/clist.c b/dlls/shlwapi/clist.c
index 9ea3558..4eab19c 100644
--- a/dlls/shlwapi/clist.c
+++ b/dlls/shlwapi/clist.c
@@ -20,6 +20,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
diff --git a/dlls/shlwapi/istream.c b/dlls/shlwapi/istream.c
index bc1cb55..0b38ad2 100644
--- a/dlls/shlwapi/istream.c
+++ b/dlls/shlwapi/istream.c
@@ -20,8 +20,10 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/shlwapi/regstream.c b/dlls/shlwapi/regstream.c
index 57f4212..614c70b 100644
--- a/dlls/shlwapi/regstream.c
+++ b/dlls/shlwapi/regstream.c
@@ -22,6 +22,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
diff --git a/dlls/shlwapi/thread.c b/dlls/shlwapi/thread.c
index 95c5448..5fae0c0 100644
--- a/dlls/shlwapi/thread.c
+++ b/dlls/shlwapi/thread.c
@@ -21,6 +21,8 @@
#include <stdarg.h>
#include <string.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index 6a2bf20..0b5a8d4 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -23,8 +23,10 @@
#include <stdarg.h>
#include <stdio.h>
+#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index cc87f24..e8e773b 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -20,6 +20,8 @@
#include <stdarg.h>
+#define COBJMACROS
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/include/objbase.h b/include/objbase.h
index fef8fc6..e5171e3 100644
--- a/include/objbase.h
+++ b/include/objbase.h
@@ -235,8 +235,6 @@
/* C interface */
-#define COBJMACROS
-
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE *method)
#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE *method)
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE *method)
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index f4de321..7c627e3 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -47,6 +47,8 @@
#include <errno.h>
#include <stdarg.h>
+#define COBJMACROS
+
#include <windows.h>
#include <shlobj.h>
#include <objidl.h>