- Get the win32k beast tamed by msvc.
authorAlex Ionescu <aionescu@gmail.com>
Sun, 8 Jan 2006 23:26:03 +0000 (23:26 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Sun, 8 Jan 2006 23:26:03 +0000 (23:26 +0000)
svn path=/trunk/; revision=20742

29 files changed:
reactos/include/ndk/extypes.h
reactos/subsys/win32k/dib/dib16bpp.c
reactos/subsys/win32k/dib/dib1bpp.c
reactos/subsys/win32k/dib/dib24bpp.c
reactos/subsys/win32k/dib/dib32bpp.c
reactos/subsys/win32k/dib/dib8bpp.c
reactos/subsys/win32k/eng/bitblt.c
reactos/subsys/win32k/eng/gradient.c
reactos/subsys/win32k/include/gdifloat.h
reactos/subsys/win32k/ntddraw/ddraw.c
reactos/subsys/win32k/ntuser/cursoricon.c
reactos/subsys/win32k/ntuser/desktop.c
reactos/subsys/win32k/ntuser/focus.c
reactos/subsys/win32k/ntuser/hook.c
reactos/subsys/win32k/ntuser/input.c
reactos/subsys/win32k/ntuser/keyboard.c
reactos/subsys/win32k/ntuser/message.c
reactos/subsys/win32k/ntuser/misc.c
reactos/subsys/win32k/ntuser/msgqueue.c
reactos/subsys/win32k/ntuser/painting.c
reactos/subsys/win32k/ntuser/windc.c
reactos/subsys/win32k/ntuser/winpos.c
reactos/subsys/win32k/objects/bitmaps.c
reactos/subsys/win32k/objects/fillshap.c
reactos/subsys/win32k/objects/pen.c
reactos/subsys/win32k/objects/polyfill.c
reactos/subsys/win32k/objects/region.c
reactos/subsys/win32k/w32k.h
reactos/subsys/win32k/win32k.xml

index bd7c6f1..6e1c7d1 100644 (file)
@@ -43,6 +43,8 @@ typedef USHORT RTL_ATOM, *PRTL_ATOM;
 //
 // Kernel Exported Object Types
 //
+extern POBJECT_TYPE NTSYSAPI ExDesktopObjectType;
+extern POBJECT_TYPE NTSYSAPI ExWindowStationObjectType;
 extern POBJECT_TYPE NTSYSAPI ExIoCompletionType;
 extern POBJECT_TYPE NTSYSAPI ExMutantObjectType;
 extern POBJECT_TYPE NTSYSAPI ExTimerType;
index b4603e0..0ac0517 100644 (file)
@@ -45,8 +45,7 @@ DIB_16BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 {
   PDWORD addr = (PDWORD)((PWORD)((PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta) + x1);
 
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
   /* This is about 10% faster than the generic C code below */
   LONG Count = x2 - x1;
 
@@ -97,7 +96,7 @@ DIB_16BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 VOID
 DIB_16BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
 {
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
   asm volatile(
     "   testl %2, %2"       "\n\t"
     "   jle   2f"           "\n\t"
@@ -129,7 +128,7 @@ DIB_16BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
       "r"(SurfObj->lDelta), "r"(y2 - y1), "a"(c)
     : "cc", "memory", "%ecx");
 #else
-  PBYTE byteaddr = SurfObj->pvScan0 + y1 * SurfObj->lDelta;
+  PBYTE byteaddr = (ULONG_PTR)SurfObj->pvScan0 + y1 * SurfObj->lDelta;
   PWORD addr = (PWORD)byteaddr + x;
   LONG lDelta = SurfObj->lDelta;
 
@@ -342,7 +341,7 @@ DIB_16BPP_ColorFill(SURFOBJ* DestSurface, RECTL* DestRect, ULONG color)
 {
   ULONG DestY; 
 
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
   /* This is about 10% faster than the generic C code below */ 
   ULONG delta = DestSurface->lDelta;
   ULONG width = (DestRect->right - DestRect->left) ;
@@ -865,13 +864,13 @@ typedef union {
    } col;
 } NICEPIXEL16;
 
-STATIC inline UCHAR
+static __inline UCHAR
 Clamp5(ULONG val)
 {
    return (val > 31) ? 31 : val;
 }
 
-STATIC inline UCHAR
+static __inline UCHAR
 Clamp6(ULONG val)
 {
    return (val > 63) ? 63 : val;
index bd3f258..29eab73 100644 (file)
@@ -88,6 +88,7 @@ DIB_1BPP_BitBltSrcCopy_From1BPP (
        int dy2; // dest y end
        int sy1; // src y start
 
+    int dx;
        int shift;
        BYTE srcmask, dstmask;
 
@@ -142,7 +143,7 @@ DIB_1BPP_BitBltSrcCopy_From1BPP (
                pd = d;
                ps = s;
                srcmask = 0xff;
-               int dx = dwx; /* dest x for this pass */
+               dx = dwx; /* dest x for this pass */
                if ( dwx < dl )
                {
                        int diff = dl-dwx;
index 30493e1..b3cf227 100644 (file)
@@ -43,7 +43,7 @@ DIB_24BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 {
   PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x1 << 1) + x1;
   ULONG Count = x2 - x1;
-#ifndef _M_IX86
+#if !defined(_M_IX86) || defined(_MSC_VER)
   ULONG MultiCount;
   ULONG Fill[3];
 #endif
@@ -78,7 +78,7 @@ DIB_24BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
        *
        * So, taking endianness into account again, we need to fill with these
        * ULONGs: CABC BCAB ABCA */
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
        /* This is about 30% faster than the generic C code below */
        __asm__ __volatile__ (
 "      movl %1, %%ecx\n"
@@ -396,7 +396,7 @@ DIB_24BPP_ColorFill(SURFOBJ* DestSurface, RECTL* DestRect, ULONG color)
 {
   ULONG DestY; 
 
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
   PBYTE xaddr = (PBYTE)DestSurface->pvScan0 + DestRect->top * DestSurface->lDelta + (DestRect->left << 1) + DestRect->left;
   PBYTE addr;
   ULONG Count;
@@ -678,7 +678,7 @@ typedef union {
    } col;
 } NICEPIXEL32;
 
-STATIC inline UCHAR
+static __inline UCHAR
 Clamp8(ULONG val)
 {
    return (val > 255) ? 255 : val;
index bc44a28..80b6dd8 100644 (file)
@@ -41,8 +41,7 @@ DIB_32BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
   return (ULONG)(*addr);
 }
 
-
-#ifdef _M_IX86
+#if defined(_M_IX86) && !defined(_MSC_VER)
 VOID
 DIB_32BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 {      
@@ -78,7 +77,7 @@ DIB_32BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 VOID
 DIB_32BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
 {
-  PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta;  
+  PBYTE byteaddr = (ULONG_PTR)SurfObj->pvScan0 + y * SurfObj->lDelta;  
   PDWORD addr = (PDWORD)byteaddr + x1;         
   LONG cx = x1;
   while(cx < x2) 
@@ -744,7 +743,7 @@ typedef union {
    } col;
 } NICEPIXEL32;
 
-STATIC inline UCHAR
+static __inline UCHAR
 Clamp8(ULONG val)
 {
    return (val > 255) ? 255 : val;
index dde6e9e..03440a5 100644 (file)
@@ -681,7 +681,7 @@ typedef union {
    } col;
 } NICEPIXEL16;
 
-STATIC inline UCHAR
+static __inline UCHAR
 Clamp8(ULONG val)
 {
    return (val > 255) ? 255 : val;
index 8195fe1..9aa1a05 100644 (file)
@@ -32,7 +32,7 @@
 #define NDEBUG
 #include <debug.h>
 
-typedef BOOLEAN STDCALL (*PBLTRECTFUNC)(SURFOBJ* OutputObj,
+typedef BOOLEAN (STDCALL *PBLTRECTFUNC)(SURFOBJ* OutputObj,
                                         SURFOBJ* InputObj,
                                         SURFOBJ* Mask,
                                         XLATEOBJ* ColorTranslation,
@@ -42,7 +42,7 @@ typedef BOOLEAN STDCALL (*PBLTRECTFUNC)(SURFOBJ* OutputObj,
                                         BRUSHOBJ* Brush,
                                         POINTL* BrushOrigin,
                                         ROP4 Rop4);
-typedef BOOLEAN STDCALL (*PSTRETCHRECTFUNC)(SURFOBJ* OutputObj,
+typedef BOOLEAN (STDCALL *PSTRETCHRECTFUNC)(SURFOBJ* OutputObj,
                                             SURFOBJ* InputObj,
                                             SURFOBJ* Mask,
                                             CLIPOBJ* ClipRegion,
@@ -246,7 +246,7 @@ CallDibBitBlt(SURFOBJ* OutputObj,
    return Result;
 }
 
-INT abs(INT nm);
+INT __cdecl abs(INT nm);
 
 /*
  * @implemented
index 1a905b6..49e255b 100644 (file)
@@ -452,7 +452,7 @@ IntEngGradientFillTriangle(
 }
 
 
-BOOL FASTCALL STATIC
+BOOL static
 IntEngIsNULLTriangle(TRIVERTEX  *pVertex, GRADIENT_TRIANGLE *gt)
 {
   if(COMPAREVERTEX(VERTEX(Vertex1), VERTEX(Vertex2)))
index abc50f8..320eb26 100644 (file)
@@ -15,7 +15,7 @@ typedef struct tagFLOAT_POINT
  * transformation process is done in floating point internally. This function\r
  * is then used to round these coordinates to integer values.\r
  */\r
-static inline INT GDI_ROUND(FLOAT val)\r
+static __inline INT GDI_ROUND(FLOAT val)\r
 {\r
    return (int)floor(val + 0.5);\r
 }\r
@@ -23,7 +23,7 @@ static inline INT GDI_ROUND(FLOAT val)
 /* Performs a world-to-viewport transformation on the specified point (which\r
  * is in floating point format).\r
  */\r
-static inline void INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)\r
+static __inline void INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)\r
 {\r
     FLOAT x, y;\r
 \r
@@ -42,7 +42,7 @@ static inline void INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)
  * is in integer format). Returns TRUE if successful, else FALSE.\r
  */\r
 #if 0\r
-static inline BOOL INTERNAL_DPTOLP(DC *dc, LPPOINT point)\r
+static __inline BOOL INTERNAL_DPTOLP(DC *dc, LPPOINT point)\r
 {\r
     FLOAT_POINT floatPoint;\r
 \r
@@ -62,7 +62,7 @@ static inline BOOL INTERNAL_DPTOLP(DC *dc, LPPOINT point)
 /* Performs a world-to-viewport transformation on the specified point (which\r
  * is in integer format).\r
  */\r
-static inline void INTERNAL_LPTODP(DC *dc, LPPOINT point)\r
+static __inline void INTERNAL_LPTODP(DC *dc, LPPOINT point)\r
 {\r
     FLOAT_POINT floatPoint;\r
 \r
index d11d007..55e4f0f 100644 (file)
@@ -49,6 +49,10 @@ HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
        DD_CALLBACKS callbacks;
        DD_SURFACECALLBACKS surface_callbacks;
        DD_PALETTECALLBACKS palette_callbacks;
+    DC *pDC;
+    BOOL success;
+    HANDLE hDirectDraw;
+    PDD_DIRECTDRAW pDirectDraw;
 #ifdef DX_DEBUG
        DPRINT1("NtGdiDdCreateDirectDrawObject\n");
 #endif
@@ -67,7 +71,7 @@ HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
            return NULL;
     }
     
-       DC *pDC = DC_LockDc(hdc);
+       pDC = DC_LockDc(hdc);
        if (!pDC)
                return NULL;
 
@@ -78,7 +82,7 @@ HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
                return NULL;
        }
        
-       BOOL success = pDC->DriverFunctions.EnableDirectDraw(
+       success = pDC->DriverFunctions.EnableDirectDraw(
                pDC->PDev, &callbacks, &surface_callbacks, &palette_callbacks);
 
        if (!success)
@@ -91,7 +95,7 @@ HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
                return NULL;
        }
 
-       HANDLE hDirectDraw = GDIOBJ_AllocObj(GDI_OBJECT_TYPE_DIRECTDRAW);
+       hDirectDraw = GDIOBJ_AllocObj(GDI_OBJECT_TYPE_DIRECTDRAW);
        if (!hDirectDraw)
        {
                /* No more memmory */
@@ -102,7 +106,7 @@ HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
                return NULL;
        }
 
-       PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDraw, GDI_OBJECT_TYPE_DIRECTDRAW);
+       pDirectDraw = GDIOBJ_LockObj(hDirectDraw, GDI_OBJECT_TYPE_DIRECTDRAW);
        if (!pDirectDraw)
        {
                /* invalid handle */
@@ -160,6 +164,8 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject(
 )
 {
 #ifdef DX_DEBUG
+    PDD_DIRECTDRAW pDirectDraw;
+    BOOL success;
     DPRINT1("NtGdiDdQueryDirectDrawObject\n");
 #endif
 
@@ -195,7 +201,7 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject(
     }
    
     
-       PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
+       pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
        
        
        if (!pDirectDraw)
@@ -207,7 +213,7 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject(
                return FALSE;
     }
 
-       BOOL success = pDirectDraw->DrvGetDirectDrawInfo(
+       success = pDirectDraw->DrvGetDirectDrawInfo(
                pDirectDraw->Global.dhpdev,
                pHalInfo,
                puNumHeaps,
@@ -413,12 +419,13 @@ DWORD STDCALL NtGdiDdCreateSurface(
 )
 {
        DWORD  ddRVal = DDHAL_DRIVER_NOTHANDLED;
+    PDD_DIRECTDRAW pDirectDraw;
        PDD_DIRECTDRAW_GLOBAL lgpl;
 #ifdef DX_DEBUG
        DPRINT1("NtGdiDdCreateSurface\n");
 #endif
 
-       PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
+       pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
        if (pDirectDraw == NULL) 
        {
 #ifdef DX_DEBUG
@@ -460,12 +467,13 @@ DWORD STDCALL NtGdiDdWaitForVerticalBlank(
 {
        DWORD  ddRVal;
        PDD_DIRECTDRAW_GLOBAL lgpl;
+    PDD_DIRECTDRAW pDirectDraw;
 #ifdef DX_DEBUG
        DPRINT1("NtGdiDdWaitForVerticalBlank\n");
 #endif
 
 
-       PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
+       pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
        if (pDirectDraw == NULL) 
                return DDHAL_DRIVER_NOTHANDLED;
 
@@ -978,6 +986,7 @@ HANDLE STDCALL NtGdiDdCreateSurfaceObject(
 )
 {
        PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
+    PDD_SURFACE pSurface;
 #ifdef DX_DEBUG
        DPRINT1("NtGdiDdCreateSurfaceObject\n");
 #endif
@@ -987,7 +996,7 @@ HANDLE STDCALL NtGdiDdCreateSurfaceObject(
        if (!hSurface)
                hSurface = GDIOBJ_AllocObj(GDI_OBJECT_TYPE_DD_SURFACE);
 
-       PDD_SURFACE pSurface = GDIOBJ_LockObj(hSurface, GDI_OBJECT_TYPE_DD_SURFACE);
+       pSurface = GDIOBJ_LockObj(hSurface, GDI_OBJECT_TYPE_DD_SURFACE);
         /* FIXME - Handle pSurface == NULL!!!! */
 
        RtlMoveMemory(&pSurface->Local, puSurfaceLocal, sizeof(DD_SURFACE_LOCAL));
index 475510d..410da3a 100644 (file)
@@ -113,6 +113,7 @@ IntSetCursor(PWINSTATION_OBJECT WinSta, PCURICON_OBJECT NewCursor,
    SURFOBJ *soMask = NULL, *soColor = NULL;
    XLATEOBJ *XlateObj = NULL;
    HDC Screen;
+   PDC dc;
 
    CurInfo = IntGetSysCursorInfo(WinSta);
    OldCursor = CurInfo->CurrentCursorObject;
@@ -132,7 +133,7 @@ IntSetCursor(PWINSTATION_OBJECT WinSta, PCURICON_OBJECT NewCursor,
          return (HCURSOR)0;
       }
       /* FIXME use the desktop's HDC instead of using ScreenDeviceContext */
-      PDC dc = DC_LockDc(Screen);
+      dc = DC_LockDc(Screen);
 
       if (!dc)
       {
@@ -772,6 +773,7 @@ NtUserGetCursorInfo(
    PWINSTATION_OBJECT WinSta;
    NTSTATUS Status;
    PCURICON_OBJECT CurIcon;
+   HDC hDC;
    DECLARE_RETURN(BOOL);
 
    DPRINT("Enter NtUserGetCursorInfo\n");
@@ -779,7 +781,6 @@ NtUserGetCursorInfo(
 
 #if 1
 
-   HDC hDC;
 
    /* FIXME - get the screen dc from the window station or desktop */
    if (!(hDC = IntGetScreenDC()))
index b744971..5a44627 100644 (file)
@@ -1196,12 +1196,15 @@ NtUserPaintDesktop(HDC hDC)
    BOOL doPatBlt = TRUE;
    PWINDOW_OBJECT WndDesktop;
    int len;
+   COLORREF color_old;
+   UINT align_old;
+   int mode_old;
+   PWINSTATION_OBJECT WinSta = PsGetWin32Thread()->Desktop->WindowStation;
    DECLARE_RETURN(BOOL);
-   
+
    UserEnterExclusive();
    DPRINT("Enter NtUserPaintDesktop\n");
 
-   PWINSTATION_OBJECT WinSta = PsGetWin32Thread()->Desktop->WindowStation;
 
    IntGdiGetClipBox(hDC, &Rect);
 
@@ -1359,9 +1362,9 @@ NtUserPaintDesktop(HDC hDC)
             rect.bottom = UserGetSystemMetrics(SM_CYSCREEN);
          }
 
-         COLORREF color_old = NtGdiSetTextColor(hDC, RGB(255,255,255));
-         UINT align_old = NtGdiSetTextAlign(hDC, TA_RIGHT);
-         int mode_old = NtGdiSetBkMode(hDC, TRANSPARENT);
+         color_old = NtGdiSetTextColor(hDC, RGB(255,255,255));
+         align_old = NtGdiSetTextAlign(hDC, TA_RIGHT);
+         mode_old = NtGdiSetBkMode(hDC, TRANSPARENT);
 
          NtGdiTextOut(hDC, rect.right-16, rect.bottom-48, s_wszVersion, len);
 
index 6f0eae7..cecc498 100644 (file)
@@ -138,7 +138,7 @@ IntFindChildWindowToOwner(PWINDOW_OBJECT Root, PWINDOW_OBJECT Owner)
    return NULL;
 }
 
-STATIC BOOL FASTCALL
+static BOOL FASTCALL
 co_IntSetForegroundAndFocusWindow(PWINDOW_OBJECT Window, PWINDOW_OBJECT FocusWindow, BOOL MouseActivate)
 {
    HWND hWnd = Window->hSelf;
@@ -438,12 +438,12 @@ CLEANUP:
 HWND STDCALL
 NtUserGetCapture(VOID)
 {
+   PUSER_MESSAGE_QUEUE ThreadQueue;
    DECLARE_RETURN(HWND);
 
    DPRINT("Enter NtUserGetCapture\n");
    UserEnterShared();
 
-   PUSER_MESSAGE_QUEUE ThreadQueue;
    ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetWin32Thread()->MessageQueue;
    RETURN( ThreadQueue ? ThreadQueue->CaptureWindow : 0);
 
index 64be46d..c07f074 100644 (file)
 
 #define HOOKID_TO_INDEX(HookId) (HookId - WH_MINHOOK)
 
-STATIC PHOOKTABLE GlobalHooks;
+static PHOOKTABLE GlobalHooks;
 
 /* create a new hook table */
-STATIC FASTCALL PHOOKTABLE
+static PHOOKTABLE
 IntAllocHookTable(void)
 {
    PHOOKTABLE Table;
@@ -86,7 +86,7 @@ PHOOK FASTCALL IntGetHookObject(HHOOK hHook)
 
 
 /* create a new hook and add it to the specified table */
-STATIC FASTCALL PHOOK
+static PHOOK
 IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinStaObj)
 {
    PHOOK Hook;
@@ -127,7 +127,7 @@ IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinSt
 }
 
 /* get the hook table that a given hook belongs to */
-STATIC PHOOKTABLE FASTCALL
+static PHOOKTABLE FASTCALL
 IntGetTable(PHOOK Hook)
 {
    if (NULL == Hook->Thread || WH_KEYBOARD_LL == Hook->HookId ||
@@ -140,7 +140,7 @@ IntGetTable(PHOOK Hook)
 }
 
 /* get the first hook in the chain */
-STATIC PHOOK FASTCALL
+static PHOOK FASTCALL
 IntGetFirstHook(PHOOKTABLE Table, int HookId)
 {
    PLIST_ENTRY Elem = Table->Hooks[HOOKID_TO_INDEX(HookId)].Flink;
@@ -149,7 +149,7 @@ IntGetFirstHook(PHOOKTABLE Table, int HookId)
 }
 
 /* find the first non-deleted hook in the chain */
-STATIC PHOOK FASTCALL
+static PHOOK FASTCALL
 IntGetFirstValidHook(PHOOKTABLE Table, int HookId)
 {
    PHOOK Hook;
@@ -167,7 +167,7 @@ IntGetFirstValidHook(PHOOKTABLE Table, int HookId)
 }
 
 /* find the next hook in the chain, skipping the deleted ones */
-STATIC PHOOK FASTCALL
+static PHOOK FASTCALL
 IntGetNextHook(PHOOK Hook)
 {
    PHOOKTABLE Table = IntGetTable(Hook);
@@ -193,7 +193,7 @@ IntGetNextHook(PHOOK Hook)
 }
 
 /* free a hook, removing it from its chain */
-STATIC VOID FASTCALL
+static VOID FASTCALL
 IntFreeHook(PHOOKTABLE Table, PHOOK Hook, PWINSTATION_OBJECT WinStaObj)
 {
    RemoveEntryList(&Hook->Chain);
@@ -210,7 +210,7 @@ IntFreeHook(PHOOKTABLE Table, PHOOK Hook, PWINSTATION_OBJECT WinStaObj)
 }
 
 /* remove a hook, freeing it if the chain is not in use */
-STATIC FASTCALL VOID
+static VOID
 IntRemoveHook(PHOOK Hook, PWINSTATION_OBJECT WinStaObj, BOOL TableAlreadyLocked)
 {
    PHOOKTABLE Table = IntGetTable(Hook);
@@ -232,7 +232,7 @@ IntRemoveHook(PHOOK Hook, PWINSTATION_OBJECT WinStaObj, BOOL TableAlreadyLocked)
 }
 
 /* release a hook chain, removing deleted hooks if the use count drops to 0 */
-STATIC VOID FASTCALL
+static VOID FASTCALL
 IntReleaseHookChain(PHOOKTABLE Table, int HookId, PWINSTATION_OBJECT WinStaObj)
 {
    PLIST_ENTRY Elem;
index de7b96a..2d90ec9 100644 (file)
@@ -233,7 +233,7 @@ MouseThreadMain(PVOID StartContext)
 /* Returns a value that indicates if the key is a modifier key, and
  * which one.
  */
-STATIC UINT STDCALL
+static UINT STDCALL
 IntKeyboardGetModifiers(KEYBOARD_INPUT_DATA *InputData)
 {
    if (InputData->Flags & KEY_E1)
@@ -280,7 +280,7 @@ IntKeyboardGetModifiers(KEYBOARD_INPUT_DATA *InputData)
 /* Asks the keyboard driver to send a small table that shows which
  * lights should connect with which scancodes
  */
-STATIC NTSTATUS STDCALL
+static NTSTATUS STDCALL
 IntKeyboardGetIndicatorTrans(HANDLE KeyboardDeviceHandle,
                              PKEYBOARD_INDICATOR_TRANSLATION *IndicatorTrans)
 {
@@ -333,7 +333,7 @@ IntKeyboardGetIndicatorTrans(HANDLE KeyboardDeviceHandle,
 
 /* Sends the keyboard commands to turn on/off the lights.
  */
-STATIC NTSTATUS STDCALL
+static NTSTATUS STDCALL
 IntKeyboardUpdateLeds(HANDLE KeyboardDeviceHandle,
                       PKEYBOARD_INPUT_DATA KeyInput,
                       PKEYBOARD_INDICATOR_TRANSLATION IndicatorTrans)
@@ -374,7 +374,7 @@ IntKeyboardUpdateLeds(HANDLE KeyboardDeviceHandle,
    return STATUS_SUCCESS;
 }
 
-STATIC VOID STDCALL
+static VOID STDCALL
 IntKeyboardSendWinKeyMsg()
 {
    PWINDOW_OBJECT Window;
@@ -395,13 +395,13 @@ IntKeyboardSendWinKeyMsg()
    MsqPostMessage(Window->MessageQueue, &Mesg, FALSE, QS_HOTKEY);
 }
 
-STATIC VOID STDCALL
+static VOID STDCALL
 co_IntKeyboardSendAltKeyMsg()
 {
    co_MsqPostKeyboardMessage(WM_SYSCOMMAND,SC_KEYMENU,0);
 }
 
-STATIC VOID STDCALL
+static VOID STDCALL
 KeyboardThreadMain(PVOID StartContext)
 {
    UNICODE_STRING KeyboardDeviceName = RTL_CONSTANT_STRING(L"\\Device\\KeyboardClass0");
index f0b8316..460294f 100644 (file)
@@ -1043,6 +1043,7 @@ NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize )
    UINT ScanCode = (lParam >> 16) & 0xff;
    BOOL ExtKey = lParam & (1<<24) ? TRUE : FALSE;
    PKBDTABLES keyLayout;
+   VSC_LPWSTR *KeyNames;
    DECLARE_RETURN(DWORD);
    
    DPRINT("Enter NtUserGetKeyNameText\n");
@@ -1069,7 +1070,7 @@ NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize )
       VkCode = ScanToVk( ScanCode, ExtKey, keyLayout );
    }
 
-   VSC_LPWSTR *KeyNames = 0;
+   KeyNames = 0;
 
    if( CareVk != VkCode )
       ScanCode = VkToScan( VkCode, ExtKey, keyLayout );
index 8be6d2b..427a149 100644 (file)
@@ -177,7 +177,7 @@ MsgMemorySize(PMSGMEMORY MsgMemoryEntry, WPARAM wParam, LPARAM lParam)
    return Size;
 }
 
-static FASTCALL NTSTATUS
+static NTSTATUS
 PackParam(LPARAM *lParamPacked, UINT Msg, WPARAM wParam, LPARAM lParam)
 {
    NCCALCSIZE_PARAMS *UnpackedNcCalcsize;
@@ -260,7 +260,7 @@ PackParam(LPARAM *lParamPacked, UINT Msg, WPARAM wParam, LPARAM lParam)
    return STATUS_SUCCESS;
 }
 
-static FASTCALL NTSTATUS
+static NTSTATUS
 UnpackParam(LPARAM lParamPacked, UINT Msg, WPARAM wParam, LPARAM lParam)
 {
    NCCALCSIZE_PARAMS *UnpackedParams;
@@ -670,6 +670,7 @@ co_IntPeekMessage(PUSER_MESSAGE Msg,
    PUSER_MESSAGE Message;
    BOOL Present, RemoveMessages;
    USER_REFERENCE_ENTRY Ref;
+   USHORT HitTest;
 
    /* The queues and order in which they are checked are documented in the MSDN
       article on GetMessage() */
@@ -817,7 +818,6 @@ MessageFound:
          return TRUE;
       }
 
-      USHORT HitTest;
       if((Msg->Msg.hwnd && Msg->Msg.message >= WM_MOUSEFIRST && Msg->Msg.message <= WM_MOUSELAST) &&
             co_IntTranslateMouseMessage(ThreadQueue, &Msg->Msg, &HitTest, FALSE))
          /* FIXME - check message filter again, if the message doesn't match anymore,
index d61e081..7fbed7e 100644 (file)
@@ -176,6 +176,7 @@ NtUserCallOneParam(
    DWORD Routine)
 {
    DECLARE_RETURN(DWORD);
+   PDC dc;
 
    DPRINT("Enter NtUserCallOneParam\n");
 
@@ -198,7 +199,7 @@ NtUserCallOneParam(
         return showpointer; /* No mouse */
       }
                        
-      PDC dc = DC_LockDc(Screen);
+      dc = DC_LockDc(Screen);
 
       if (!dc)
       {
@@ -1019,7 +1020,6 @@ IntSystemParametersInfo(
                         the bitmap. We'll change it's ownership to system and replace it with
                         the current wallpaper bitmap */
                      HBITMAP hOldBitmap, hNewBitmap;
-                     ASSERT(pvParam);
                      UNICODE_STRING Key = RTL_CONSTANT_STRING(L"Control Panel\\Desktop"); 
                      UNICODE_STRING Tile = RTL_CONSTANT_STRING(L"TileWallpaper"); 
                      UNICODE_STRING Style = RTL_CONSTANT_STRING(L"WallpaperStyle");
@@ -1034,7 +1034,8 @@ IntSystemParametersInfo(
                      ULONG ResLength = 0;
                      ULONG TileNum = 0;
                      ULONG StyleNum = 0;
-                     
+                     ASSERT(pvParam);
+
                      hNewBitmap = *(HBITMAP*)pvParam;
                      if(hNewBitmap != NULL)
                      {
index f9b6dd9..2b2c7f4 100644 (file)
@@ -259,7 +259,7 @@ MsqIsDblClk(LPMSG Msg, BOOL Remove)
    return Res;
 }
 
-BOOL STATIC STDCALL
+BOOL static STDCALL
 co_MsqTranslateMouseMessage(PUSER_MESSAGE_QUEUE MessageQueue, HWND hWnd, UINT FilterLow, UINT FilterHigh,
                             PUSER_MESSAGE Message, BOOL Remove, PBOOL Freed,
                             PWINDOW_OBJECT ScopeWin, PPOINT ScreenPoint, BOOL FromGlobalQueue)
index 4dfece9..9faaa1e 100644 (file)
@@ -218,7 +218,7 @@ IntGetNCUpdateRgn(PWINDOW_OBJECT Window, BOOL Validate)
  * Internal function used by IntRedrawWindow.
  */
 
-STATIC VOID FASTCALL
+static VOID FASTCALL
 co_IntPaintWindows(PWINDOW_OBJECT Window, ULONG Flags)
 {
    HDC hDC;
index 7d37f0e..4b77253 100644 (file)
@@ -155,7 +155,7 @@ DceAllocDCE(PWINDOW_OBJECT Window OPTIONAL, DCE_TYPE Type)
    return(Dce);
 }
 
-VOID STATIC STDCALL
+VOID static STDCALL
 DceSetDrawable(PWINDOW_OBJECT Window OPTIONAL, HDC hDC, ULONG Flags,
                BOOL SetClipOrigin)
 {
@@ -185,7 +185,7 @@ DceSetDrawable(PWINDOW_OBJECT Window OPTIONAL, HDC hDC, ULONG Flags,
 }
 
 
-STATIC VOID FASTCALL
+static VOID FASTCALL
 DceDeleteClipRgn(DCE* Dce)
 {
    Dce->DCXFlags &= ~(DCX_EXCLUDERGN | DCX_INTERSECTRGN);
@@ -205,7 +205,7 @@ DceDeleteClipRgn(DCE* Dce)
    Dce->DCXFlags |= DCX_DCEDIRTY;
 }
 
-STATIC INT FASTCALL
+static INT FASTCALL
 DceReleaseDC(DCE* dce, BOOL EndPaint)
 {
    if (DCX_DCEBUSY != (dce->DCXFlags & (DCX_DCEEMPTY | DCX_DCEBUSY)))
@@ -241,7 +241,7 @@ DceReleaseDC(DCE* dce, BOOL EndPaint)
    return 1;
 }
 
-STATIC VOID FASTCALL
+static VOID FASTCALL
 DceUpdateVisRgn(DCE *Dce, PWINDOW_OBJECT Window, ULONG Flags)
 {
    HANDLE hRgnVisible = NULL;
index 5d2ad61..4733978 100644 (file)
@@ -248,7 +248,7 @@ co_WinPosArrangeIconicWindows(PWINDOW_OBJECT parent)
 }
 
 
-VOID STATIC FASTCALL
+VOID static FASTCALL
 WinPosFindIconPos(PWINDOW_OBJECT Window, POINT *Pos)
 {
    /* FIXME */
index 78441a4..121ba6d 100644 (file)
@@ -159,7 +159,7 @@ NtGdiBitBlt(
                        SetLastWin32Error(ERROR_INVALID_HANDLE);
                        return FALSE;
                }
-               BrushOrigin = BrushObj->ptOrigin;
+               BrushOrigin = *((PPOINTL)&BrushObj->ptOrigin);
                IntGdiInitBrushInstance(&BrushInst, BrushObj, DCDest->XlateBrush);
        }
        else
@@ -400,7 +400,7 @@ done:
   return Ret;
 }
 
-static FASTCALL HBITMAP
+static HBITMAP
 IntCreateBitmapIndirect(CONST BITMAP *BM)
 {
    PBITMAPOBJ bmp;
@@ -655,6 +655,7 @@ NtGdiGetPixel(HDC hDC, INT XPos, INT YPos)
        SURFOBJ *SurfaceObject;
        HPALETTE Pal = 0;
        XLATEOBJ *XlateObj;
+    HBITMAP hBmpTmp;
 
        dc = DC_LockDc (hDC);
 
@@ -707,7 +708,7 @@ NtGdiGetPixel(HDC hDC, INT XPos, INT YPos)
                        static const BITMAPINFOHEADER bih = { sizeof(BITMAPINFOHEADER), 1, 1, 1, 32, BI_RGB, 0, 0, 0, 0, 0 };
                        BITMAPINFO bi;
                        RtlMoveMemory ( &(bi.bmiHeader), &bih, sizeof(bih) );
-                       HBITMAP hBmpTmp = NtGdiCreateDIBitmap ( hDC, &bi.bmiHeader, 0, NULL, &bi, DIB_RGB_COLORS );
+                       hBmpTmp = NtGdiCreateDIBitmap ( hDC, &bi.bmiHeader, 0, NULL, &bi, DIB_RGB_COLORS );
                        //HBITMAP hBmpTmp = NtGdiCreateBitmap ( 1, 1, 1, 32, NULL);
                        if ( hBmpTmp )
                        {
@@ -1349,8 +1350,9 @@ NtGdiAlphaBlend(
        RECTL DestRect, SourceRect;
        BOOL Status;
        XLATEOBJ *XlateObj;
-       BLENDOBJ BlendObj = {BlendFunc};
+       BLENDOBJ BlendObj;
        HPALETTE SourcePalette = 0, DestPalette = 0;
+    BlendObj.BlendFunction = BlendFunc;
 
        DCDest = DC_LockDc(hDCDest);
        if (NULL == DCDest)
index 6a1a1fc..a5e9955 100644 (file)
@@ -1176,6 +1176,7 @@ IntRoundRect(
   PGDIBRUSHOBJ   PenBrushObj, FillBrushObj;
   GDIBRUSHINST FillBrushInst, PenBrushInst;
   RECTL      RectBounds;
+  int potential_steps;
   int i, col, row, width, height, x1, x1start, x2, x2start, y1, y2;
   int xradius, yradius;
   //float aspect_square;
@@ -1338,7 +1339,7 @@ IntRoundRect(
       d -= ddec;
     }
 
-    int potential_steps = ( a_square * row ) / b_square - col + 1;
+    potential_steps = ( a_square * row ) / b_square - col + 1;
     while ( d < 0 && potential_steps-- )
     {
       d += dinc; /* two_b_square * (3 + (col << 1)); */
index 298271f..d292435 100644 (file)
@@ -136,10 +136,10 @@ NtGdiExtCreatePen(
    IN BOOL bOldStylePen,
    IN OPTIONAL HBRUSH hbrush)
 {
+    LOGPEN LogPen;
    /* NOTE: This is HACK! */
     DPRINT1("FIXME: FIX CALLERS FIRST!\n");
     KEBUGCHECK(0);
-   LOGPEN LogPen;
 
    if (PenStyle & PS_USERSTYLE)
       PenStyle = (PenStyle & ~PS_STYLE_MASK) | PS_SOLID;
index ddc9b35..e5492e5 100644 (file)
@@ -32,7 +32,7 @@
 #define NDEBUG
 #include <debug.h>
 
-INT abs(INT nm);
+INT __cdecl abs(INT nm);
 
 #define FILL_EDGE_ALLOC_TAG 0x45465044
 
@@ -562,8 +562,7 @@ FillPolygon(
   int ScanLine;
 
   void
-  STDCALL
-  (*FillScanLine)(
+  (STDCALL *FillScanLine)(
     PDC dc,
     int ScanLine,
     FILL_EDGE* ActiveHead,
index 020789d..2b9912a 100644 (file)
@@ -427,8 +427,8 @@ static __inline int xmemcheck(ROSRGNDATA *reg, PRECT *rect, PRECT *firstrect ) {
 
 #define MEMCHECK(reg, rect, firstrect) xmemcheck(reg,&(rect),(LPRECT *)&(firstrect))
 
-typedef void FASTCALL (*overlapProcp)(PROSRGNDATA, PRECT, PRECT, PRECT, PRECT, INT, INT);
-typedef void FASTCALL (*nonOverlapProcp)(PROSRGNDATA, PRECT, PRECT, INT, INT);
+typedef void (FASTCALL *overlapProcp)(PROSRGNDATA, PRECT, PRECT, PRECT, PRECT, INT, INT);
+typedef void (FASTCALL *nonOverlapProcp)(PROSRGNDATA, PRECT, PRECT, INT, INT);
 
 // Number of points to buffer before sending them off to scanlines() :  Must be an even number
 #define NUMPTSTOBUFFER 200
index 4d05c51..8ab1b0b 100644 (file)
@@ -24,12 +24,15 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
 #define STARTF_USEPOSITION 4
 #include <stdarg.h>
 #include <windef.h>
+#include <winerror.h>
 #include <wingdi.h>
 #include <winddi.h>
 #include <winuser.h>
 #include <prntfont.h>
 #include <dde.h>
 #include <wincon.h>
+#define _NOCSECT_TYPE
+#include <ddrawi.h>
 
 /* SEH Support with PSEH */
 #include <pseh/pseh.h>
@@ -57,3 +60,11 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
 /* Internal Win32K Header */
 #include "include/win32k.h"
 
+/* Undocumented stuff */
+typedef DRIVEROBJ *PDRIVEROBJ;
+#define WM_SYSTIMER 280
+#ifndef M_PI
+#define M_PI 3.14159265358979323846f
+#define M_PI_2 1.57079632679489661923
+#endif
+
index 0cc7df4..72ced55 100644 (file)
                        <file>math.c</file>
                        <file>copy.c</file>
                </compilationunit>
+               <directory name="i386">
+            <file>cos_asm.s</file>
+            <file>sin_asm.s</file>
+            <file>atan2_asm.s</file>
+            <file>floor_asm.s</file>
+            <file>ceil_asm.s</file>
+        </directory>
        </directory>
        <directory name="ntddraw">
                <compilationunit name="ntddraw.c">