Removed a lot of unnecessary includes and fixed the compile errors.
diff --git a/controls/button.c b/controls/button.c
index cfbcc26..de52ff8 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -8,6 +8,7 @@
#include <string.h>
#include "win.h"
#include "button.h"
+#include "winbase.h"
#include "windef.h"
#include "wingdi.h"
#include "wine/winuser16.h"
diff --git a/controls/edit.c b/controls/edit.c
index 25ea9d4..c10729e 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -14,6 +14,8 @@
#include "config.h"
#include <string.h>
+
+#include "winbase.h"
#include "winnt.h"
#include "win.h"
#include "wine/winbase16.h"
diff --git a/controls/menu.c b/controls/menu.c
index 786782a..fa915d8 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -28,6 +28,7 @@
#include "nonclient.h"
#include "user.h"
#include "message.h"
+#include "queue.h"
#include "tweak.h"
#include "debugtools.h"
diff --git a/debugger/stack.c b/debugger/stack.c
index 62f9b43..46a2d1d 100644
--- a/debugger/stack.c
+++ b/debugger/stack.c
@@ -7,10 +7,13 @@
*/
#include "config.h"
+
#include <stdio.h>
#include <stdlib.h>
+
#include "debugger.h"
#include "stackframe.h"
+#include "winbase.h"
#ifdef __i386__
/*
diff --git a/dlls/comctl32/commctrl.c b/dlls/comctl32/commctrl.c
index b6bfa13..3168ce3 100644
--- a/dlls/comctl32/commctrl.c
+++ b/dlls/comctl32/commctrl.c
@@ -6,6 +6,8 @@
*
*/
+#include <string.h>
+
#include "winbase.h"
#include "heap.h"
#include "commctrl.h"
diff --git a/dlls/winsock/async.c b/dlls/winsock/async.c
index df88bd7..431d7aa 100644
--- a/dlls/winsock/async.c
+++ b/dlls/winsock/async.c
@@ -77,6 +77,8 @@
#endif
#include "wine/winbase16.h"
+#include "wingdi.h"
+#include "winuser.h"
#include "winsock.h"
#include "winnt.h"
#include "heap.h"
diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c
index e821e8a..9d202c5 100644
--- a/dlls/winsock/socket.c
+++ b/dlls/winsock/socket.c
@@ -71,6 +71,8 @@
#endif
#include "wine/winbase16.h"
+#include "wingdi.h"
+#include "winuser.h"
#include "winsock2.h"
#include "winnt.h"
#include "heap.h"
diff --git a/include/dce.h b/include/dce.h
index 3fa10cb..3913c12 100644
--- a/include/dce.h
+++ b/include/dce.h
@@ -7,7 +7,9 @@
#ifndef __WINE_DCE_H
#define __WINE_DCE_H
-#include "win.h"
+#include "windef.h"
+
+struct tagWND;
/* additional DCX flags
*/
@@ -49,9 +51,9 @@
extern void DCE_Init(void);
extern DCE* DCE_AllocDCE( HWND hWnd, DCE_TYPE type );
extern DCE* DCE_FreeDCE( DCE *dce );
-extern void DCE_FreeWindowDCE( WND* );
-extern INT16 DCE_ExcludeRgn( HDC, WND*, HRGN );
+extern void DCE_FreeWindowDCE( struct tagWND* );
+extern INT16 DCE_ExcludeRgn( HDC, struct tagWND*, HRGN );
extern HRGN DCE_GetVisRgn( HWND, WORD, HWND, WORD );
-extern BOOL DCE_InvalidateDCE( WND*, const RECT* );
+extern BOOL DCE_InvalidateDCE( struct tagWND*, const RECT* );
#endif /* __WINE_DCE_H */
diff --git a/include/menu.h b/include/menu.h
index 88e4a5e..855a897 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -5,7 +5,9 @@
#ifndef __WINE_MENU_H
#define __WINE_MENU_H
-#include "win.h"
+#include "windef.h"
+
+struct tagWND;
LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam );
@@ -15,9 +17,9 @@
extern HMENU MENU_GetSysMenu(HWND hWndOwner, HMENU hSysPopup);
extern UINT MENU_GetMenuBarHeight( HWND hwnd, UINT menubarWidth,
INT orgX, INT orgY );
-extern BOOL MENU_PatchResidentPopup( HQUEUE16, WND* );
-extern void MENU_TrackMouseMenuBar( WND *wnd, INT ht, POINT pt );
-extern void MENU_TrackKbdMenuBar( WND *wnd, UINT wParam, INT vkey );
+extern BOOL MENU_PatchResidentPopup( HQUEUE16, struct tagWND* );
+extern void MENU_TrackMouseMenuBar( struct tagWND *wnd, INT ht, POINT pt );
+extern void MENU_TrackKbdMenuBar( struct tagWND *wnd, UINT wParam, INT vkey );
extern UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect,
HWND hwnd, BOOL suppress_draw );
extern UINT MENU_FindSubMenu( HMENU *hmenu, HMENU hSubTarget );
diff --git a/include/message.h b/include/message.h
index 2c789e4..b4ff920 100644
--- a/include/message.h
+++ b/include/message.h
@@ -7,13 +7,14 @@
#ifndef __WINE_MESSAGE_H
#define __WINE_MESSAGE_H
-#include "win.h"
-#include "queue.h"
+#include "windef.h"
+
+struct tagMSG;
extern DWORD MSG_WineStartTicks; /* Ticks at Wine startup */
/* message.c */
-extern BOOL MSG_InternalGetMessage( int type, MSG *msg, HWND hwnd,
+extern BOOL MSG_InternalGetMessage( int type, struct tagMSG *msg, HWND hwnd,
HWND hwndOwner, WPARAM code,
WORD flags, BOOL sendIdle, BOOL* idleSent );
@@ -21,7 +22,7 @@
extern BOOL TIMER_Init( void );
extern void TIMER_RemoveWindowTimers( HWND hwnd );
extern void TIMER_RemoveQueueTimers( HQUEUE16 hqueue );
-extern BOOL TIMER_GetTimerMsg( MSG *msg, HWND hwnd,
+extern BOOL TIMER_GetTimerMsg( struct tagMSG *msg, HWND hwnd,
HQUEUE16 hQueue, BOOL remove );
/* event.c */
diff --git a/include/nonclient.h b/include/nonclient.h
index 8e82b53..8d0f9df 100644
--- a/include/nonclient.h
+++ b/include/nonclient.h
@@ -7,18 +7,20 @@
#ifndef __WINE_NONCLIENT_H
#define __WINE_NONCLIENT_H
-#include "win.h"
+#include "windef.h"
+
+struct tagWND;
extern LONG NC_HandleNCPaint( HWND hwnd , HRGN clip);
-extern LONG NC_HandleNCActivate( WND *pwnd, WPARAM16 wParam );
-extern LONG NC_HandleNCCalcSize( WND *pWnd, RECT *winRect );
+extern LONG NC_HandleNCActivate( struct tagWND *pwnd, WPARAM16 wParam );
+extern LONG NC_HandleNCCalcSize( struct tagWND *pWnd, RECT *winRect );
extern LONG NC_HandleNCHitTest( HWND hwnd, POINT16 pt );
-extern LONG NC_HandleNCLButtonDown( WND* pWnd, WPARAM16 wParam, LPARAM lParam );
-extern LONG NC_HandleNCLButtonDblClk( WND *pWnd, WPARAM16 wParam, LPARAM lParam);
+extern LONG NC_HandleNCLButtonDown( struct tagWND* pWnd, WPARAM16 wParam, LPARAM lParam );
+extern LONG NC_HandleNCLButtonDblClk( struct tagWND *pWnd, WPARAM16 wParam, LPARAM lParam);
extern LONG NC_HandleSysCommand( HWND hwnd, WPARAM16 wParam, POINT16 pt );
extern LONG NC_HandleSetCursor( HWND hwnd, WPARAM16 wParam, LPARAM lParam );
extern void NC_DrawSysButton( HWND hwnd, HDC hdc, BOOL down );
extern BOOL NC_DrawSysButton95( HWND hwnd, HDC hdc, BOOL down );
-extern BOOL NC_GetSysPopupPos( WND* wndPtr, RECT* rect );
+extern BOOL NC_GetSysPopupPos( struct tagWND* wndPtr, RECT* rect );
#endif /* __WINE_NONCLIENT_H */
diff --git a/include/queue.h b/include/queue.h
index e12c572..d3a6c24 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -8,6 +8,7 @@
#define __WINE_QUEUE_H
#include "windef.h"
+#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "thread.h"
diff --git a/include/stackframe.h b/include/stackframe.h
index 73177c9..80b3073 100644
--- a/include/stackframe.h
+++ b/include/stackframe.h
@@ -8,8 +8,10 @@
#define __WINE_STACKFRAME_H
#include <string.h>
+
#include "ldt.h"
#include "thread.h"
+#include "winnt.h"
#include "pshpack1.h"
diff --git a/include/struct32.h b/include/struct32.h
index 6910c54..ca70f92 100644
--- a/include/struct32.h
+++ b/include/struct32.h
@@ -6,7 +6,6 @@
#include "windef.h"
#include "wingdi.h"
#include "wine/winuser16.h"
-#include "queue.h"
extern void STRUCT32_MINMAXINFO32to16( const MINMAXINFO*, MINMAXINFO16* );
extern void STRUCT32_MINMAXINFO16to32( const MINMAXINFO16*, MINMAXINFO* );
diff --git a/include/thread.h b/include/thread.h
index 882b1e1..88ffd4b 100644
--- a/include/thread.h
+++ b/include/thread.h
@@ -8,12 +8,13 @@
#define __WINE_THREAD_H
#include "config.h"
-#include "winbase.h"
-#include "syslevel.h"
+
#include "ntdef.h" /* UNICODE_STRING */
struct _PDB;
struct __EXCEPTION_FRAME;
+struct _SECURITY_ATTRIBUTES;
+struct tagSYSLEVEL;
/* Thread exception block
@@ -84,7 +85,7 @@
void *entry_arg; /* --3 1b4 Entry point arg (was: unknown) */
DWORD unknown5[4]; /* --n 1b8 Unknown */
DWORD sys_count[4]; /* --3 1c8 Syslevel mutex entry counters */
- SYSLEVEL *sys_mutex[4]; /* --3 1d8 Syslevel mutex pointers */
+ struct tagSYSLEVEL *sys_mutex[4]; /* --3 1d8 Syslevel mutex pointers */
DWORD unknown6[5]; /* --n 1e8 Unknown */
/* The following are Wine-specific fields (NT: GDI stuff) */
@@ -123,7 +124,7 @@
extern TEB *THREAD_CreateInitialThread( struct _PDB *pdb, int server_fd );
extern TEB *THREAD_Create( struct _PDB *pdb, int fd, DWORD flags,
DWORD stack_size, BOOL alloc_stack16,
- LPSECURITY_ATTRIBUTES sa, int *server_handle );
+ struct _SECURITY_ATTRIBUTES *sa, int *server_handle );
extern BOOL THREAD_IsWin16( TEB *thdb );
extern TEB *THREAD_IdToTEB( DWORD id );
diff --git a/include/win.h b/include/win.h
index 5e7d5dd..ff5c70f 100644
--- a/include/win.h
+++ b/include/win.h
@@ -9,9 +9,8 @@
#include "windef.h"
#include "wingdi.h"
+#include "winproc.h"
#include "winuser.h"
-#include "queue.h"
-#include "class.h"
#define WND_MAGIC 0x444e4957 /* 'WIND' */
@@ -56,6 +55,7 @@
struct tagCLASS;
struct tagDCE;
struct tagDC;
+struct tagMESSAGEQUEUE;
struct tagWND_DRIVER;
typedef struct tagWND
@@ -220,7 +220,7 @@
extern BOOL ICONTITLE_Init( void );
/* windows/focus.c */
-extern void FOCUS_SwitchFocus( MESSAGEQUEUE *pMsgQ, HWND , HWND );
+extern void FOCUS_SwitchFocus( struct tagMESSAGEQUEUE *pMsgQ, HWND , HWND );
/* windows/edit.c */
extern LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
diff --git a/include/winbase.h b/include/winbase.h
index 95169b6..467fa8a 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -158,7 +158,7 @@
#define DRIVE_RAMDISK 6
/* The security attributes structure */
-typedef struct
+typedef struct _SECURITY_ATTRIBUTES
{
DWORD nLength;
LPVOID lpSecurityDescriptor;
@@ -1764,7 +1764,8 @@
#if defined(__i386__) && defined(__GNUC__)
-static inline PVOID WINAPI InterlockedCompareExchange( PVOID *dest, PVOID xchg, PVOID compare )
+extern inline PVOID WINAPI InterlockedCompareExchange( PVOID *dest, PVOID xchg, PVOID compare );
+extern inline PVOID WINAPI InterlockedCompareExchange( PVOID *dest, PVOID xchg, PVOID compare )
{
PVOID ret;
__asm__ __volatile__( "lock; cmpxchgl %2,(%1)"
@@ -1772,7 +1773,8 @@
return ret;
}
-static inline LONG WINAPI InterlockedExchange( PLONG dest, LONG val )
+extern inline LONG WINAPI InterlockedExchange( PLONG dest, LONG val );
+extern inline LONG WINAPI InterlockedExchange( PLONG dest, LONG val )
{
LONG ret;
__asm__ __volatile__( "lock; xchgl %0,(%1)"
@@ -1780,7 +1782,8 @@
return ret;
}
-static inline LONG WINAPI InterlockedExchangeAdd( PLONG dest, LONG incr )
+extern inline LONG WINAPI InterlockedExchangeAdd( PLONG dest, LONG incr );
+extern inline LONG WINAPI InterlockedExchangeAdd( PLONG dest, LONG incr )
{
LONG ret;
__asm__ __volatile__( "lock; xaddl %0,(%1)"
@@ -1788,31 +1791,36 @@
return ret;
}
-static inline LONG WINAPI InterlockedIncrement( PLONG dest )
+extern inline LONG WINAPI InterlockedIncrement( PLONG dest );
+extern inline LONG WINAPI InterlockedIncrement( PLONG dest )
{
return InterlockedExchangeAdd( dest, 1 ) + 1;
}
-static inline LONG WINAPI InterlockedDecrement( PLONG dest )
+extern inline LONG WINAPI InterlockedDecrement( PLONG dest );
+extern inline LONG WINAPI InterlockedDecrement( PLONG dest )
{
return InterlockedExchangeAdd( dest, -1 ) - 1;
}
-static inline DWORD WINAPI GetLastError(void)
+extern inline DWORD WINAPI GetLastError(void);
+extern inline DWORD WINAPI GetLastError(void)
{
DWORD ret;
__asm__ __volatile__( ".byte 0x64\n\tmovl 0x60,%0" : "=r" (ret) );
return ret;
}
-static inline DWORD WINAPI GetCurrentThreadId(void)
+extern inline DWORD WINAPI GetCurrentThreadId(void);
+extern inline DWORD WINAPI GetCurrentThreadId(void)
{
DWORD ret;
__asm__ __volatile__( ".byte 0x64\n\tmovl 0x24,%0" : "=r" (ret) );
return ret;
}
-static inline void WINAPI SetLastError( DWORD err )
+extern inline void WINAPI SetLastError( DWORD err );
+extern inline void WINAPI SetLastError( DWORD err )
{
__asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x60" : : "r" (err) : "memory" );
}
diff --git a/include/wine/winuser16.h b/include/wine/winuser16.h
index cc17562..56b4c6f 100644
--- a/include/wine/winuser16.h
+++ b/include/wine/winuser16.h
@@ -1,11 +1,9 @@
#ifndef __WINE_WINE_WINUSER16_H
#define __WINE_WINE_WINUSER16_H
+#include "wine/wingdi16.h" /* wingdi.h needed for COLORREF */
#include "winuser.h" /* winuser.h needed for MSGBOXCALLBACK */
- /* wingdi.h needed for COLORREF */
-#include "wine/wingdi16.h"
-
-
+
#include "pshpack1.h"
typedef struct tagCOMSTAT16
diff --git a/include/winpos.h b/include/winpos.h
index c5c5300..9a32f4d 100644
--- a/include/winpos.h
+++ b/include/winpos.h
@@ -7,7 +7,9 @@
#ifndef __WINE_WINPOS_H
#define __WINE_WINPOS_H
-#include "win.h"
+#include "windef.h"
+
+struct tagWND;
#define DWP_MAGIC ((INT)('W' | ('P' << 8) | ('O' << 16) | ('S' << 24)))
@@ -31,11 +33,11 @@
} DWP;
extern BOOL WINPOS_RedrawIconTitle( HWND hWnd );
-extern BOOL WINPOS_ShowIconTitle( WND* pWnd, BOOL bShow );
-extern void WINPOS_GetMinMaxInfo( WND* pWnd, POINT *maxSize,
+extern BOOL WINPOS_ShowIconTitle( struct tagWND* pWnd, BOOL bShow );
+extern void WINPOS_GetMinMaxInfo( struct tagWND* pWnd, POINT *maxSize,
POINT *maxPos, POINT *minTrack,
POINT *maxTrack );
-extern UINT WINPOS_MinMaximize( WND* pWnd, UINT16 cmd, LPRECT16 lpPos);
+extern UINT WINPOS_MinMaximize( struct tagWND* pWnd, UINT16 cmd, LPRECT16 lpPos);
extern BOOL WINPOS_SetActiveWindow( HWND hWnd, BOOL fMouse,
BOOL fChangeFocus );
extern BOOL WINPOS_ChangeActiveWindow( HWND hwnd, BOOL mouseMsg );
@@ -43,11 +45,11 @@
RECT *newWindowRect, RECT *oldWindowRect,
RECT *oldClientRect, WINDOWPOS *winpos,
RECT *newClientRect );
-extern LONG WINPOS_HandleWindowPosChanging16(WND *wndPtr, struct tagWINDOWPOS16 *winpos);
-extern LONG WINPOS_HandleWindowPosChanging(WND *wndPtr, WINDOWPOS *winpos);
-extern INT16 WINPOS_WindowFromPoint( WND* scopeWnd, POINT16 pt, WND **ppWnd );
-extern void WINPOS_CheckInternalPos( WND* wndPtr );
-extern BOOL WINPOS_ActivateOtherWindow(WND* pWnd);
+extern LONG WINPOS_HandleWindowPosChanging16(struct tagWND *wndPtr, struct tagWINDOWPOS16 *winpos);
+extern LONG WINPOS_HandleWindowPosChanging(struct tagWND *wndPtr, WINDOWPOS *winpos);
+extern INT16 WINPOS_WindowFromPoint( struct tagWND* scopeWnd, POINT16 pt, struct tagWND **ppWnd );
+extern void WINPOS_CheckInternalPos( struct tagWND* wndPtr );
+extern BOOL WINPOS_ActivateOtherWindow(struct tagWND* pWnd);
extern BOOL WINPOS_CreateInternalPosAtom(void);
#endif /* __WINE_WINPOS_H */
diff --git a/loader/module.c b/loader/module.c
index c7a343b..44018e6 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -25,6 +25,7 @@
#include "pe_image.h"
#include "dosexe.h"
#include "process.h"
+#include "syslevel.h"
#include "thread.h"
#include "selectors.h"
#include "stackframe.h"
diff --git a/loader/ne/module.c b/loader/ne/module.c
index e061794..b1f55f1 100644
--- a/loader/ne/module.c
+++ b/loader/ne/module.c
@@ -24,6 +24,7 @@
#include "global.h"
#include "process.h"
#include "snoop.h"
+#include "syslevel.h"
#include "builtin16.h"
#include "stackframe.h"
#include "debugtools.h"
diff --git a/misc/debugstr.c b/misc/debugstr.c
index dfcfdad..021007a 100644
--- a/misc/debugstr.c
+++ b/misc/debugstr.c
@@ -5,8 +5,10 @@
#include <ctype.h>
#include "debugtools.h"
-#include "wtypes.h"
#include "thread.h"
+#include "winbase.h"
+#include "winnt.h"
+#include "wtypes.h"
/* ---------------------------------------------------------------------- */
diff --git a/misc/error.c b/misc/error.c
index 49ed983..00e71f5 100644
--- a/misc/error.c
+++ b/misc/error.c
@@ -8,6 +8,7 @@
#include <stdio.h>
#include <string.h>
+#include "winbase.h"
#include "windef.h"
#include "stackframe.h"
#include "debugtools.h"
diff --git a/windows/defdlg.c b/windows/defdlg.c
index c35bf2c..15d28cd 100644
--- a/windows/defdlg.c
+++ b/windows/defdlg.c
@@ -6,6 +6,7 @@
*/
#include "windef.h"
+#include "winbase.h"
#include "wingdi.h"
#include "wine/winuser16.h"
#include "dialog.h"
diff --git a/windows/defwnd.c b/windows/defwnd.c
index e7b5705..045aae9 100644
--- a/windows/defwnd.c
+++ b/windows/defwnd.c
@@ -7,6 +7,7 @@
#include <string.h>
+#include "class.h"
#include "win.h"
#include "user.h"
#include "heap.h"
diff --git a/windows/dialog.c b/windows/dialog.c
index 5223c77..c5d40e0 100644
--- a/windows/dialog.c
+++ b/windows/dialog.c
@@ -24,6 +24,7 @@
#include "user.h"
#include "winproc.h"
#include "message.h"
+#include "queue.h"
#include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(dialog);
diff --git a/windows/focus.c b/windows/focus.c
index dc79a53..d99496f 100644
--- a/windows/focus.c
+++ b/windows/focus.c
@@ -14,6 +14,7 @@
#include "winpos.h"
#include "hook.h"
#include "message.h"
+#include "queue.h"
#include "task.h"
#include "debugtools.h"
diff --git a/windows/input.c b/windows/input.c
index 1e67fccc..b7e537f 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -27,6 +27,7 @@
#include "keyboard.h"
#include "mouse.h"
#include "message.h"
+#include "queue.h"
#include "module.h"
#include "debugtools.h"
#include "struct32.h"
diff --git a/windows/user.c b/windows/user.c
index 549c022..c72a467 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -15,6 +15,7 @@
#include "gdi.h"
#include "task.h"
#include "queue.h"
+#include "class.h"
#include "win.h"
#include "clipboard.h"
#include "menu.h"
diff --git a/windows/x11drv/event.c b/windows/x11drv/event.c
index 508b7db..6a53f28 100644
--- a/windows/x11drv/event.c
+++ b/windows/x11drv/event.c
@@ -37,6 +37,7 @@
#include "options.h"
#include "queue.h"
#include "shell.h"
+#include "win.h"
#include "winpos.h"
#include "services.h"
#include "file.h"
diff --git a/windows/x11drv/keyboard.c b/windows/x11drv/keyboard.c
index 7bb5127..acb7592 100644
--- a/windows/x11drv/keyboard.c
+++ b/windows/x11drv/keyboard.c
@@ -29,6 +29,7 @@
#include "keyboard.h"
#include "message.h"
#include "winnls.h"
+#include "win.h"
#include "x11drv.h"
DEFAULT_DEBUG_CHANNEL(keyboard)