[ros-diffs] [jgardou] 48068: Sync with trunk 48067

jgardou at svn.reactos.org jgardou at svn.reactos.org
Thu Jul 15 20:49:53 UTC 2010


Author: jgardou
Date: Thu Jul 15 20:49:51 2010
New Revision: 48068

URL: http://svn.reactos.org/svn/reactos?rev=48068&view=rev
Log:
Sync with trunk 48067

Added:
    branches/reactos-yarotows/dll/3rdparty/libtiff/rosdiff.patch
      - copied unchanged from r48067, trunk/reactos/dll/3rdparty/libtiff/rosdiff.patch
    branches/reactos-yarotows/include/reactos/libs/libtiff/rosdiff.patch
      - copied unchanged from r48067, trunk/reactos/include/reactos/libs/libtiff/rosdiff.patch
Modified:
    branches/reactos-yarotows/   (props changed)
    branches/reactos-yarotows/base/applications/network/ping/ping.c
    branches/reactos-yarotows/base/applications/regedit/childwnd.c
    branches/reactos-yarotows/base/applications/regedit/hexedit.c
    branches/reactos-yarotows/config.template.rbuild
    branches/reactos-yarotows/dll/3rdparty/libtiff/libtiff.rbuild
    branches/reactos-yarotows/dll/3rdparty/libtiff/tif_open.c
    branches/reactos-yarotows/dll/win32/setupapi/setupcab.c
    branches/reactos-yarotows/dll/win32/user32/windows/cursoricon.c
    branches/reactos-yarotows/include/psdk/shellapi.h
    branches/reactos-yarotows/include/psdk/wingdi.h
    branches/reactos-yarotows/include/psdk/ws2ipdef.h
    branches/reactos-yarotows/include/psdk/ws2tcpip.h
    branches/reactos-yarotows/include/reactos/libs/libtiff/tiffio.h
    branches/reactos-yarotows/include/reactos/winsock/msafd.h   (props changed)
    branches/reactos-yarotows/include/reactos/winsock/msafdlib.h   (props changed)
    branches/reactos-yarotows/include/reactos/winsock/mswinsock.h   (props changed)
    branches/reactos-yarotows/include/reactos/winsock/rnr20lib.h   (props changed)
    branches/reactos-yarotows/include/reactos/winsock/wsmobile.h   (props changed)
    branches/reactos-yarotows/ntoskrnl/ex/rundown.c
    branches/reactos-yarotows/ntoskrnl/include/internal/amd64/ke.h
    branches/reactos-yarotows/ntoskrnl/include/internal/mm.h
    branches/reactos-yarotows/ntoskrnl/include/ntoskrnl.h
    branches/reactos-yarotows/ntoskrnl/io/iomgr/adapter.c
    branches/reactos-yarotows/ntoskrnl/kd64/kddata.c
    branches/reactos-yarotows/ntoskrnl/ke/clock.c
    branches/reactos-yarotows/ntoskrnl/mm/ARM3/miarm.h
    branches/reactos-yarotows/subsystems/win32/csrss/win32csr/   (props changed)
    branches/reactos-yarotows/subsystems/win32/win32k/objects/cliprgn.c

Propchange: branches/reactos-yarotows/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,4 +1,4 @@
 /branches/header-work:45691-47721
 /branches/ros-amd64-bringup:36852
 /branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36445,36502-36503,36505,36570,36614,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40927-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41484-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43857-43858,43860,43905-43907,43965,43969,43992,44002,44036-44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,46394,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,47472,47846-47847,47878,47882
-/trunk/reactos:45219-48040
+/trunk/reactos:45219-48067

Modified: branches/reactos-yarotows/base/applications/network/ping/ping.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/base/applications/network/ping/ping.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/base/applications/network/ping/ping.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/base/applications/network/ping/ping.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -555,7 +555,6 @@
     }
     if (Status == SOCKET_ERROR)
     {
-        LostCount++;
         if (WSAGetLastError() == WSAEHOSTUNREACH)
             printf("Destination host unreachable.\n");
         else

Modified: branches/reactos-yarotows/base/applications/regedit/childwnd.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/base/applications/regedit/childwnd.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/base/applications/regedit/childwnd.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/base/applications/regedit/childwnd.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -297,17 +297,6 @@
 			break;
 	}
 	return CallWindowProc(oldwndproc, hwnd, uMsg, wParam, lParam);
-}
-
-/* fix coords to top-left when SHIFT-F10 is pressed */
-void FixPointIfContext(POINTS *pt, HWND hWnd)
-{
-    if (pt->x == -1 && pt->y == -1) {
-        POINT p = { 0, 0 };
-        ClientToScreen(hWnd, &p);
-        pt->x = (WORD)(p.x);
-        pt->y = (WORD)(p.y);
-    }
 }
 
 /*******************************************************************************
@@ -577,16 +566,29 @@
 
     case WM_CONTEXTMENU:
     {
-      POINTS pt;
+      POINT pt;
       if((HWND)wParam == pChildWnd->hListWnd)
       {
         int i, cnt;
         BOOL IsDefault;
-        pt.x = LOWORD(lParam);
-		pt.y = HIWORD(lParam);
+        pt.x = (short) LOWORD(lParam);
+        pt.y = (short) HIWORD(lParam);
         cnt = ListView_GetSelectedCount(pChildWnd->hListWnd);
         i = ListView_GetNextItem(pChildWnd->hListWnd, -1, LVNI_FOCUSED | LVNI_SELECTED);
-        FixPointIfContext(&pt, pChildWnd->hListWnd);
+        if (pt.x == -1 && pt.y == -1)
+        {
+            RECT rc;
+            if (i != -1)
+            {
+                rc.left = LVIR_BOUNDS;
+                SendMessage(pChildWnd->hListWnd, LVM_GETITEMRECT, i, (LPARAM) &rc);
+                pt.x = rc.left + 8;
+                pt.y = rc.top + 8;
+            }
+            else
+                pt.x = pt.y = 0;
+        }
+        ClientToScreen(pChildWnd->hListWnd, &pt);
         if(i == -1)
         {
           TrackPopupMenu(GetSubMenu(hPopupMenus, PM_NEW), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hFrameWnd, NULL);
@@ -620,14 +622,33 @@
         int iLastPos;
         WORD wID;
 
-        pt.x = LOWORD(lParam);
-		pt.y = HIWORD(lParam);
-        hti.pt.x = pt.x;
-        hti.pt.y = pt.y;
-        ScreenToClient(pChildWnd->hTreeWnd, &hti.pt);
-        (void)TreeView_HitTest(pChildWnd->hTreeWnd, &hti);
-
-        if ((hti.flags & TVHT_ONITEM) != 0 || (pt.x == -1 && pt.y == -1))
+        pt.x = (short) LOWORD(lParam);
+        pt.y = (short) HIWORD(lParam);
+
+        if (pt.x == -1 && pt.y == -1)
+        {
+            RECT rc;
+            hti.hItem = TreeView_GetSelection(pChildWnd->hTreeWnd);
+            if (hti.hItem != NULL)
+            {
+                TreeView_GetItemRect(pChildWnd->hTreeWnd, hti.hItem, &rc, TRUE);
+                pt.x = rc.left + 8;
+                pt.y = rc.top + 8;
+                ClientToScreen(pChildWnd->hTreeWnd, &pt);
+                hti.flags = TVHT_ONITEM;
+            }
+            else
+                hti.flags = 0;
+        }
+        else
+        {
+            hti.pt.x = pt.x;
+            hti.pt.y = pt.y;
+            ScreenToClient(pChildWnd->hTreeWnd, &hti.pt);
+            (void)TreeView_HitTest(pChildWnd->hTreeWnd, &hti);
+        }
+
+        if (hti.flags & TVHT_ONITEM)
         {
           hContextMenu = GetSubMenu(hPopupMenus, PM_TREECONTEXT);
           (void)TreeView_SelectItem(pChildWnd->hTreeWnd, hti.hItem);
@@ -688,7 +709,6 @@
               s += _tcslen(s) + 1;
 			}
 		  }
-          FixPointIfContext(&pt, pChildWnd->hTreeWnd);
           TrackPopupMenu(hContextMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, pChildWnd->hWnd, NULL);
         }
       }

Modified: branches/reactos-yarotows/base/applications/regedit/hexedit.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/base/applications/regedit/hexedit.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/base/applications/regedit/hexedit.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/base/applications/regedit/hexedit.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -44,6 +44,10 @@
   INT CaretCol;
   INT CaretLine;
   BOOL InMid;
+
+  INT SelStart;
+  INT SelEnd;
+  BOOL SelOnField;
 } HEXEDIT_DATA, *PHEXEDIT_DATA;
 
 /* hit test codes */
@@ -181,13 +185,25 @@
 HEXEDIT_PaintLines(PHEXEDIT_DATA hed, HDC hDC, DWORD ScrollPos, DWORD First, DWORD Last, RECT *rc)
 {
   DWORD dx, dy, linestart;
-  INT x;
+  INT i, isave, i0, i1, x;
   PBYTE buf, current, end, line;
   size_t bufsize;
   TCHAR hex[3], addr[17];
-  RECT rct;
+  RECT rct, rct2;
 
   FillRect(hDC, rc, (HBRUSH)(COLOR_WINDOW + 1));
+  SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT));
+
+  if (hed->SelStart < hed->SelEnd)
+  {
+    i0 = hed->SelStart;
+    i1 = hed->SelEnd;
+  }
+  else
+  {
+    i0 = hed->SelEnd;
+    i1 = hed->SelStart;
+  }
 
   if(hed->hBuffer)
   {
@@ -212,9 +228,11 @@
     end = buf + bufsize;
     dy = First * hed->LineHeight;
     linestart = (ScrollPos + First) * hed->ColumnsPerLine;
+    i = linestart;
     current = buf + linestart;
     Last = min(hed->nLines - ScrollPos, Last);
 
+    SetBkMode(hDC, TRANSPARENT);
     while(First <= Last && current < end)
     {
       DWORD dh;
@@ -236,25 +254,54 @@
       /* draw hex map */
       dx += (hed->CharWidth / 2);
       line = current;
+      isave = i;
       for(x = 0; x < hed->ColumnsPerLine && current < end; x++)
       {
         rct.left += dh;
         rct.right += dh;
 
 	_stprintf(hex, _T("%02X"), *(current++));
-	ExtTextOut(hDC, dx, dy, ETO_OPAQUE, &rct, hex, 2, NULL);
+        if (i0 <= i && i < i1)
+        {
+          rct2.left = dx;
+          rct2.top = dy;
+          rct2.right = dx + hed->CharWidth * 2 + 1;
+          rct2.bottom = dy + hed->LineHeight;
+          InflateRect(&rct2, hed->CharWidth / 2, 0);
+          FillRect(hDC, &rct2, (HBRUSH)(COLOR_HIGHLIGHT + 1));
+          SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
+          ExtTextOut(hDC, dx, dy, 0, &rct, hex, 2, NULL);
+          SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT));
+        }
+        else
+          ExtTextOut(hDC, dx, dy, ETO_OPAQUE, &rct, hex, 2, NULL);
 	dx += dh;
+        i++;
       }
 
       /* draw ascii map */
       dx = ((4 + hed->AddressSpacing + hed->SplitSpacing + (hed->ColumnsPerLine * 3)) * hed->CharWidth);
       current = line;
+      i = isave;
       for(x = 0; x < hed->ColumnsPerLine && current < end; x++)
       {
 	_stprintf(hex, _T("%C"), *(current++));
 	hex[0] = ((hex[0] & _T('\x007f')) >= _T(' ') ? hex[0] : _T('.'));
-	TextOut(hDC, dx, dy, hex, 1);
+        if (i0 <= i && i < i1)
+        {
+          rct2.left = dx;
+          rct2.top = dy;
+          rct2.right = dx + hed->CharWidth;
+          rct2.bottom = dy + hed->LineHeight;
+          FillRect(hDC, &rct2, (HBRUSH)(COLOR_HIGHLIGHT + 1));
+          SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
+          TextOut(hDC, dx, dy, hex, 1);
+          SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT));
+        }
+        else
+          TextOut(hDC, dx, dy, hex, 1);
 	dx += hed->CharWidth;
+        i++;
       }
 
       dy += hed->LineHeight;
@@ -291,14 +338,14 @@
   }
 
   pt.x -= d;
-  d = (3 * hed->ColumnsPerLine * hed->CharWidth);
+  d = ((3 * hed->ColumnsPerLine + 1) * hed->CharWidth);
   if(pt.x <= d)
   {
     return HEHT_HEXDUMP;
   }
 
   pt.x -= d;
-  d = (hed->SplitSpacing * hed->CharWidth);
+  d = ((hed->SplitSpacing - 1) * hed->CharWidth);
   if(pt.x <= d)
   {
     return HEHT_HEXDUMPSPACING;
@@ -501,7 +548,6 @@
   hed->AddressSpacing = 2;
   hed->SplitSpacing = 2;
   hed->EditingField = TRUE; /* in hexdump field */
-  hed->InMid = FALSE;
 
   SetWindowLongPtr(hWnd, 0, (DWORD_PTR)hed);
   HEXEDIT_Update(hed);
@@ -689,7 +735,7 @@
       FillRect(ps.hdc, &rc, (HBRUSH)(COLOR_WINDOW + 1));
       goto epaint;
     }
-    if(!(hbmp = CreateCompatibleBitmap(hTempDC, ps.rcPaint.right, ps.rcPaint.bottom)))
+    if(!(hbmp = CreateCompatibleBitmap(ps.hdc, ps.rcPaint.right, ps.rcPaint.bottom)))
     {
       FillRect(ps.hdc, &rc, (HBRUSH)(COLOR_WINDOW + 1));
       DeleteDC(hTempDC);
@@ -705,7 +751,7 @@
     DeleteObject(hbmp);
     DeleteDC(hTempDC);
 
-    epaint:
+epaint:
     EndPaint(hed->hWndSelf, &ps);
   }
 
@@ -755,19 +801,75 @@
 {
   BOOL NewField;
   POINT EditPos;
-  DWORD Hit = HEXEDIT_HitRegionTest(hed, Pt);
+  DWORD Hit;
 
   UNREFERENCED_PARAMETER(Buttons);
   SetFocus(hed->hWndSelf);
 
-  hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, Hit, &EditPos, &NewField);
-  hed->EditingField = NewField;
+  if (GetAsyncKeyState(VK_SHIFT) < 0)
+  {
+    if (hed->SelOnField)
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_HEXDUMP, &EditPos, &NewField);
+    else
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_ASCIIDUMP, &EditPos, &NewField);
+    hed->SelEnd = hed->Index;
+    hed->EditingField = hed->SelOnField;
+  }
+  else
+  {
+    Hit = HEXEDIT_HitRegionTest(hed, Pt);
+    hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, Hit, &EditPos, &NewField);
+    hed->SelStart = hed->SelEnd = hed->Index;
+    hed->SelOnField = hed->EditingField = NewField;
+    SetCapture(hed->hWndSelf);
+  }
   hed->CaretCol = EditPos.x;
   hed->CaretLine = EditPos.y;
   hed->InMid = FALSE;
-
+  InvalidateRect(hed->hWndSelf, NULL, FALSE);
   HEXEDIT_MoveCaret(hed, TRUE);
 
+  return 0;
+}
+
+static LRESULT
+HEXEDIT_WM_LBUTTONUP(PHEXEDIT_DATA hed, INT Buttons, POINTS Pt)
+{
+  BOOL NewField;
+  POINT EditPos;
+  if (GetCapture() == hed->hWndSelf)
+  {
+    if (hed->SelOnField)
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_HEXDUMP, &EditPos, &NewField);
+    else
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_ASCIIDUMP, &EditPos, &NewField);
+    hed->CaretCol = EditPos.x;
+    hed->CaretLine = EditPos.y;
+    hed->SelEnd = hed->Index;
+    ReleaseCapture();
+    InvalidateRect(hed->hWndSelf, NULL, FALSE);
+    HEXEDIT_MoveCaret(hed, TRUE);
+  }
+  return 0;
+}
+
+static LRESULT
+HEXEDIT_WM_MOUSEMOVE(PHEXEDIT_DATA hed, INT Buttons, POINTS Pt)
+{
+  BOOL NewField;
+  POINT EditPos;
+  if (GetCapture() == hed->hWndSelf)
+  {
+    if (hed->SelOnField)
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_HEXDUMP, &EditPos, &NewField);
+    else
+      hed->Index = HEXEDIT_IndexFromPoint(hed, Pt, HEHT_ASCIIDUMP, &EditPos, &NewField);
+    hed->CaretCol = EditPos.x;
+    hed->CaretLine = EditPos.y;
+    hed->SelEnd = hed->Index;
+    InvalidateRect(hed->hWndSelf, NULL, FALSE);
+    HEXEDIT_MoveCaret(hed, TRUE);
+  }
   return 0;
 }
 
@@ -776,6 +878,8 @@
 {
   size_t bufsize;
   PBYTE buf;
+  INT i0, i1;
+
   if(GetKeyState(VK_MENU) & 0x8000)
   {
     return FALSE;
@@ -783,133 +887,215 @@
 
   bufsize = (hed->hBuffer ? LocalSize(hed->hBuffer) : 0);
 
+  if (hed->SelStart < hed->SelEnd)
+  {
+    i0 = hed->SelStart;
+    i1 = hed->SelEnd;
+  }
+  else
+  {
+    i0 = hed->SelEnd;
+    i1 = hed->SelStart;
+  }
+
   switch(VkCode)
   {
     case VK_DELETE:
-      if (hed->InMid && hed->EditingField)
+      if (hed->SelStart != hed->SelEnd)
       {
         buf = (PBYTE) LocalLock(hed->hBuffer);
         if (buf)
         {
-          MoveMemory(buf + hed->Index, buf + hed->Index + 1,
-                     bufsize - hed->Index - 1);
+          MoveMemory(buf + i0, buf + i1, bufsize - i1);
           LocalUnlock(hed->hBuffer);
+        }
+        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - (i1 - i0));
+        hed->InMid = FALSE;
+        hed->Index = hed->SelStart = hed->SelEnd = i0;
+        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+      }
+      else
+      {
+        if (hed->InMid && hed->EditingField)
+        {
+          buf = (PBYTE) LocalLock(hed->hBuffer);
+          if (buf)
+          {
+            MoveMemory(buf + hed->Index, buf + hed->Index + 1,
+                       bufsize - hed->Index - 1);
+            LocalUnlock(hed->hBuffer);
+          }
+          HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
+          hed->InMid = FALSE;
+        }
+        else if (hed->Index < bufsize)
+        {
+          buf = (PBYTE) LocalLock(hed->hBuffer);
+          if (buf)
+          {
+            MoveMemory(buf + hed->Index, buf + hed->Index + 1,
+                       bufsize - hed->Index - 1);
+            LocalUnlock(hed->hBuffer);
+          }
+          HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
+        }
+      }
+      InvalidateRect(hed->hWndSelf, NULL, TRUE);
+      HEXEDIT_MoveCaret(hed, TRUE);
+      break;
+
+    case VK_BACK:
+      if (hed->SelStart != hed->SelEnd)
+      {
+        buf = (PBYTE) LocalLock(hed->hBuffer);
+        if (buf)
+        {
+          MoveMemory(buf + i0, buf + i1, bufsize - i1);
+          LocalUnlock(hed->hBuffer);
+        }
+        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - (i1 - i0));
+        hed->InMid = FALSE;
+        hed->Index = hed->SelStart = hed->SelEnd = i0;
+        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+      }
+      else
+      {
+        if (hed->InMid && hed->EditingField)
+        {
+          buf = (PBYTE) LocalLock(hed->hBuffer);
+          if (buf)
+          {
+            MoveMemory(buf + hed->Index, buf + hed->Index + 1,
+                       bufsize - hed->Index - 1);
+            LocalUnlock(hed->hBuffer);
+          }
+        }
+        else if (hed->Index > 0)
+        {
+          buf = (PBYTE) LocalLock(hed->hBuffer);
+          if (buf)
+          {
+            MoveMemory(buf + hed->Index - 1, buf + hed->Index,
+                       bufsize - hed->Index);
+            LocalUnlock(hed->hBuffer);
+          }
+          hed->Index--;
+          hed->SelStart = hed->SelEnd = hed->Index;
+          hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+          hed->CaretLine = hed->Index / hed->ColumnsPerLine;
         }
         HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
         hed->InMid = FALSE;
       }
-      else if (hed->Index < bufsize)
+      InvalidateRect(hed->hWndSelf, NULL, TRUE);
+      HEXEDIT_MoveCaret(hed, TRUE);
+      break;
+
+    case VK_LEFT:
+      if (hed->Index > 0)
+      {
+        hed->Index--;
+        if (GetAsyncKeyState(VK_SHIFT) < 0)
+          hed->SelEnd = hed->Index;
+        else
+          hed->SelStart = hed->SelEnd = hed->Index;
+        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+        hed->InMid = FALSE;
+        InvalidateRect(hed->hWndSelf, NULL, TRUE);
+        HEXEDIT_MoveCaret(hed, TRUE);
+      }
+      break;
+
+    case VK_RIGHT:
+      if (hed->Index < (INT)bufsize)
+      {
+        hed->Index++;
+        if (GetAsyncKeyState(VK_SHIFT) < 0)
+          hed->SelEnd = hed->Index;
+        else
+          hed->SelStart = hed->SelEnd = hed->Index;
+        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+        hed->InMid = FALSE;
+        InvalidateRect(hed->hWndSelf, NULL, TRUE);
+        HEXEDIT_MoveCaret(hed, TRUE);
+      }
+      break;
+
+    case VK_UP:
+      if (hed->Index >= hed->ColumnsPerLine)
+      {
+        hed->Index -= hed->ColumnsPerLine;
+        if (GetAsyncKeyState(VK_SHIFT) < 0)
+          hed->SelEnd = hed->Index;
+        else
+          hed->SelStart = hed->SelEnd = hed->Index;
+        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+        hed->InMid = FALSE;
+        InvalidateRect(hed->hWndSelf, NULL, TRUE);
+        HEXEDIT_MoveCaret(hed, TRUE);
+      }
+      break;
+
+    case VK_DOWN:
+      if (hed->Index + hed->ColumnsPerLine <= (INT) bufsize)
+        hed->Index += hed->ColumnsPerLine;
+      else
+        hed->Index = bufsize;
+      hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+      hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+      if (GetAsyncKeyState(VK_SHIFT) < 0)
+        hed->SelEnd = hed->Index;
+      else
+        hed->SelStart = hed->SelEnd = hed->Index;
+      hed->InMid = FALSE;
+      InvalidateRect(hed->hWndSelf, NULL, TRUE);
+      HEXEDIT_MoveCaret(hed, TRUE);
+      break;
+  }
+
+  return FALSE;
+}
+
+static BOOL
+HEXEDIT_WM_CHAR(PHEXEDIT_DATA hed, WCHAR ch)
+{
+  size_t bufsize;
+  PBYTE buf;
+  INT i0, i1;
+
+  bufsize = (hed->hBuffer ? LocalSize(hed->hBuffer) : 0);
+  if (hed->SelStart < hed->SelEnd)
+  {
+    i0 = hed->SelStart;
+    i1 = hed->SelEnd;
+  }
+  else
+  {
+    i0 = hed->SelEnd;
+    i1 = hed->SelStart;
+  }
+  if (!hed->EditingField)
+  {
+    if (0x20 <= ch && ch <= 0xFF)
+    {
+      if (hed->SelStart != hed->SelEnd)
       {
         buf = (PBYTE) LocalLock(hed->hBuffer);
         if (buf)
         {
-          MoveMemory(buf + hed->Index, buf + hed->Index + 1,
-                     bufsize - hed->Index - 1);
+          MoveMemory(buf + i0, buf + i1, bufsize - i1);
           LocalUnlock(hed->hBuffer);
         }
-        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
-      }
-      InvalidateRect(hed->hWndSelf, NULL, TRUE);
-      HEXEDIT_MoveCaret(hed, TRUE);
-      break;
-
-    case VK_BACK:
-      if (hed->InMid && hed->EditingField)
-      {
-        buf = (PBYTE) LocalLock(hed->hBuffer);
-        if (buf)
-        {
-          MoveMemory(buf + hed->Index, buf + hed->Index + 1,
-                     bufsize - hed->Index - 1);
-          LocalUnlock(hed->hBuffer);
-        }
-        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
+        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - (i1 - i0));
         hed->InMid = FALSE;
-      }
-      else if (hed->Index > 0)
-      {
-        buf = (PBYTE) LocalLock(hed->hBuffer);
-        if (buf)
-        {
-          MoveMemory(buf + hed->Index - 1, buf + hed->Index,
-                     bufsize - hed->Index);
-          LocalUnlock(hed->hBuffer);
-        }
-        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - 1);
-        hed->Index--;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        hed->InMid = FALSE;
-      }
-      InvalidateRect(hed->hWndSelf, NULL, TRUE);
-      HEXEDIT_MoveCaret(hed, TRUE);
-      break;
-
-    case VK_LEFT:
-      if (hed->Index > 0)
-      {
-        hed->Index--;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        hed->InMid = FALSE;
-        HEXEDIT_MoveCaret(hed, TRUE);
-      }
-      break;
-
-    case VK_RIGHT:
-      if (hed->Index < (INT)bufsize)
-      {
-        hed->Index++;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        hed->InMid = FALSE;
-        HEXEDIT_MoveCaret(hed, TRUE);
-      }
-      break;
-
-    case VK_UP:
-      if (hed->Index >= hed->ColumnsPerLine)
-      {
-        hed->Index -= hed->ColumnsPerLine;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        hed->InMid = FALSE;
-        HEXEDIT_MoveCaret(hed, TRUE);
-      }
-      break;
-
-    case VK_DOWN:
-      if (hed->Index + hed->ColumnsPerLine <= (INT) bufsize)
-      {
-        hed->Index += hed->ColumnsPerLine;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-      }
-      else
-      {
-        hed->Index = bufsize;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-      }
-      hed->InMid = FALSE;
-      HEXEDIT_MoveCaret(hed, TRUE);
-      break;
-  }
-
-  return FALSE;
-}
-
-static BOOL
-HEXEDIT_WM_CHAR(PHEXEDIT_DATA hed, WCHAR ch)
-{
-  size_t bufsize;
-  PBYTE buf;
-
-  bufsize = (hed->hBuffer ? LocalSize(hed->hBuffer) : 0);
-  if (!hed->EditingField)
-  {
-    if (0x20 <= ch && ch < 0x7F)
-    {
+        bufsize = (hed->hBuffer ? LocalSize(hed->hBuffer) : 0);
+        hed->Index = hed->SelStart = hed->SelEnd = i0;
+      }
       HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize + 1);
       buf = (PBYTE) LocalLock(hed->hBuffer);
       if (buf)
@@ -932,6 +1118,19 @@
     if (('0' <= ch && ch <= '9') || ('A' <= ch && ch <= 'F') ||
         ('a' <= ch && ch <= 'f'))
     {
+      if (hed->SelStart != hed->SelEnd)
+      {
+        buf = (PBYTE) LocalLock(hed->hBuffer);
+        if (buf)
+        {
+          MoveMemory(buf + i0, buf + i1, bufsize - i1);
+          LocalUnlock(hed->hBuffer);
+        }
+        HexEdit_SetMaxBufferSize(hed->hWndSelf, bufsize - (i1 - i0));
+        hed->InMid = FALSE;
+        bufsize = (hed->hBuffer ? LocalSize(hed->hBuffer) : 0);
+        hed->Index = hed->SelStart = hed->SelEnd = i0;
+      }
       if (hed->InMid)
       {
         buf = (PBYTE) LocalLock(hed->hBuffer);
@@ -947,10 +1146,6 @@
         }
         hed->InMid = FALSE;
         hed->Index++;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        InvalidateRect(hed->hWndSelf, NULL, TRUE);
-        HEXEDIT_MoveCaret(hed, TRUE);
       }
       else
       {
@@ -969,11 +1164,11 @@
           LocalUnlock(hed->hBuffer);
         }
         hed->InMid = TRUE;
-        hed->CaretCol = hed->Index % hed->ColumnsPerLine;
-        hed->CaretLine = hed->Index / hed->ColumnsPerLine;
-        InvalidateRect(hed->hWndSelf, NULL, TRUE);
-        HEXEDIT_MoveCaret(hed, TRUE);
-      }
+      }
+      hed->CaretCol = hed->Index % hed->ColumnsPerLine;
+      hed->CaretLine = hed->Index / hed->ColumnsPerLine;
+      InvalidateRect(hed->hWndSelf, NULL, TRUE);
+      HEXEDIT_MoveCaret(hed, TRUE);
       return FALSE;
     }
   }
@@ -1024,6 +1219,20 @@
       return HEXEDIT_WM_LBUTTONDOWN(hed, (INT)wParam, p);
     }
 
+    case WM_LBUTTONUP:
+    {
+      p.x = LOWORD(lParam);
+      p.y = HIWORD(lParam);
+      return HEXEDIT_WM_LBUTTONUP(hed, (INT)wParam, p);
+    }
+
+    case WM_MOUSEMOVE:
+    {
+      p.x = LOWORD(lParam);
+      p.y = HIWORD(lParam);
+      return HEXEDIT_WM_MOUSEMOVE(hed, (INT)wParam, p);
+    }
+
     case WM_MOUSEWHEEL:
     {
       UINT nScrollLines = 3;
@@ -1080,8 +1289,16 @@
         return HEXEDIT_WM_NCDESTROY(hed);
       }
       break;
-  }
-
-  return CallWindowProc(DefWindowProc, hWnd, uMsg, wParam, lParam);
-}
-
+
+    case WM_CONTEXTMENU:
+      /* FIXME: Implement Cut, Copy, Paste, Delete and Select All */
+      break;
+
+    case WM_COMMAND:
+      /* FIXME: Implement Cut, Copy, Paste, Delete and Select All */
+      break;
+  }
+
+  return DefWindowProc(hWnd, uMsg, wParam, lParam);
+}
+

Modified: branches/reactos-yarotows/config.template.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/config.template.rbuild?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/config.template.rbuild [iso-8859-1] (original)
+++ branches/reactos-yarotows/config.template.rbuild [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -49,7 +49,7 @@
 		4 = -O2
 		5 = -O3
 -->
-<property name="OPTIMIZE" value="1" />
+<property name="OPTIMIZE" value="0" />
 
 
 <!--

Modified: branches/reactos-yarotows/dll/3rdparty/libtiff/libtiff.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/3rdparty/libtiff/libtiff.rbuild?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/dll/3rdparty/libtiff/libtiff.rbuild [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/3rdparty/libtiff/libtiff.rbuild [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -3,8 +3,9 @@
 <module name="libtiff" type="win32dll" entrypoint="0" installbase="system32" installname="libtiff.dll" allowwarnings="true" crt="msvcrt">
 	<define name="WIN32" />
 	<define name="NDEBUG" />
-	<define name="_WINDOWS" />
-	<define name="_USRDLL" />
+	<define name="BUILD_LIBTIFF_DLL" />
+	<define name="DLL_EXPORT" />
+	<define name="USE_WIN32_FILEIO" />
 	<include base="libtiff">.</include>
 	<include base="ReactOS">include/reactos/libs/zlib</include>
 	<include base="ReactOS">include/reactos/libs/libtiff</include>

Modified: branches/reactos-yarotows/dll/3rdparty/libtiff/tif_open.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/3rdparty/libtiff/tif_open.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/dll/3rdparty/libtiff/tif_open.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/3rdparty/libtiff/tif_open.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -516,6 +516,9 @@
 TIFFSetClientdata(TIFF* tif, thandle_t newvalue)
 {
 	thandle_t m = tif->tif_clientdata;
+#ifdef USE_WIN32_FILEIO
+	newvalue = (thandle_t) _get_osfhandle(newvalue);
+#endif /* USE_WIN32_FILEIO */
 	tif->tif_clientdata = newvalue;
 	return m;
 }

Modified: branches/reactos-yarotows/dll/win32/setupapi/setupcab.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/win32/setupapi/setupcab.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/dll/win32/setupapi/setupcab.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/win32/setupapi/setupcab.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -518,7 +518,7 @@
 
   SC_HSC_A my_hsc;
   ERF erf;
-  CHAR pszCabinet[MAX_PATH], pszCabPath[MAX_PATH], *p;
+  CHAR pszCabinet[MAX_PATH], pszCabPath[MAX_PATH], *p = NULL;
   DWORD fpnsize;
   BOOL ret;
 
@@ -528,6 +528,12 @@
 
   if (! LoadCABINETDll()) 
     return FALSE;
+
+  if (!CabinetFile)
+  {
+    SetLastError(ERROR_INVALID_PARAMETER);
+    return FALSE;
+  }
 
   memset(&my_hsc, 0, sizeof(SC_HSC_A));
   pszCabinet[0] = '\0';
@@ -584,7 +590,7 @@
   UINT len;
   SC_HSC_W my_hsc;
   ERF erf;
-  WCHAR pszCabPathW[MAX_PATH], *p;
+  WCHAR pszCabPathW[MAX_PATH], *p = NULL;
   DWORD fpnsize;
   BOOL ret;
 
@@ -594,7 +600,11 @@
   if (!LoadCABINETDll())
     return FALSE;
 
-  if (!CabinetFile) return FALSE;
+  if (!CabinetFile)
+  {
+    SetLastError(ERROR_INVALID_PARAMETER);
+    return FALSE;
+  }
 
   memset(&my_hsc, 0, sizeof(SC_HSC_W));
 

Modified: branches/reactos-yarotows/dll/win32/user32/windows/cursoricon.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/win32/user32/windows/cursoricon.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/dll/win32/user32/windows/cursoricon.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/win32/user32/windows/cursoricon.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -485,8 +485,8 @@
     else
     {
         if (!(*mask = CreateBitmap( width, height, 1, 1, NULL ))) goto done;
-        if (!(*color = CreateBitmap( width, height, GetDeviceCaps( screen_dc, PLANES ),
-                                     GetDeviceCaps( screen_dc, BITSPIXEL ), NULL )))
+        if (!(*color = CreateBitmap( width, height, bmi->bmiHeader.biPlanes,
+                                     bmi->bmiHeader.biBitCount, NULL )))
         {
             DeleteObject( *mask );
             goto done;
@@ -1475,10 +1475,29 @@
         height = bmpXor.bmHeight;
         if (bmpXor.bmPlanes * bmpXor.bmBitsPixel != 1)
         {
-            color = CreateCompatibleBitmap( screen_dc, width, height );
+            color = CreateBitmap( width, height, bmpXor.bmPlanes, bmpXor.bmBitsPixel, NULL );
+			if(!color)
+			{
+				ERR("Unable to create color bitmap!\n");
+				return NULL;
+			}
             mask = CreateBitmap( width, height, 1, 1, NULL );
-        }
-        else mask = CreateBitmap( width, height * 2, 1, 1, NULL );
+			if(!mask)
+			{
+				ERR("Unable to create mask bitmap!\n");
+				DeleteObject(color);
+				return NULL;
+			}
+        }
+        else 
+		{
+			mask = CreateBitmap( width, height * 2, 1, 1, NULL );
+			if(!mask)
+			{
+				ERR("Unable to create mask bitmap!\n");
+				return NULL;
+			}
+		}
     }
     else
     {

Modified: branches/reactos-yarotows/include/psdk/shellapi.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/include/psdk/shellapi.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/include/psdk/shellapi.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/include/psdk/shellapi.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -8,6 +8,11 @@
 #pragma warning(push)
 #pragma warning(disable:4201)
 #endif
+
+#if !defined(_WIN64)
+#include <pshpack1.h>
+#endif
+
 #define WINSHELLAPI DECLSPEC_IMPORT
 #define ABE_LEFT	0
 #define ABE_TOP	1
@@ -160,7 +165,7 @@
 
 typedef WORD FILEOP_FLAGS;
 typedef WORD PRINTEROP_FLAGS;
-#include <pshpack1.h>
+
 typedef struct _AppBarData {
 	DWORD	cbSize;
 	HWND	hWnd;
@@ -330,7 +335,6 @@
 	int	cchOldPath;
 	int	cchNewPath;
 } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
-#include <poppack.h>
 
 #define SHERB_NOCONFIRMATION 0x1
 #define SHERB_NOPROGRESSUI   0x2
@@ -440,6 +444,11 @@
 #define SHEmptyRecycleBin SHEmptyRecycleBinA
 #define SHGetNewLinkInfo SHGetNewLinkInfoA
 #endif
+
+#if !defined(_WIN64)
+#include <poppack.h>
+#endif
+
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif

Modified: branches/reactos-yarotows/include/psdk/wingdi.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/include/psdk/wingdi.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/include/psdk/wingdi.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/include/psdk/wingdi.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -1715,7 +1715,7 @@
 typedef struct tagEMRCREATEBRUSHINDIRECT {
 	EMR emr;
 	DWORD ihBrush;
-	LOGBRUSH lb;
+	LOGBRUSH32 lb;
 } EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
 typedef LONG LCSCSTYPE;
 typedef LONG LCSGAMUTMATCH;
@@ -1897,11 +1897,11 @@
 	EXTLOGFONTW elfw;
 } EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
 typedef struct tagEXTLOGPEN {
-	UINT elpPenStyle;
-	UINT elpWidth;
+	DWORD elpPenStyle;
+	DWORD elpWidth;
 	UINT elpBrushStyle;
 	COLORREF elpColor;
-	LONG elpHatch;
+	ULONG_PTR elpHatch;
 	DWORD elpNumEntries;
 	DWORD elpStyleEntry[1];
 } EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN,*NPEXTLOGPEN;

Modified: branches/reactos-yarotows/include/psdk/ws2ipdef.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/include/psdk/ws2ipdef.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/include/psdk/ws2ipdef.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/include/psdk/ws2ipdef.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -13,7 +13,7 @@
 #ifdef _MSC_VER
 #define WS2TCPIP_INLINE __inline
 #else
-#define WS2TCPIP_INLINE extern inline
+#define WS2TCPIP_INLINE static inline
 #endif
 
 #include <in6addr.h>

Modified: branches/reactos-yarotows/include/psdk/ws2tcpip.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/include/psdk/ws2tcpip.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/include/psdk/ws2tcpip.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/include/psdk/ws2tcpip.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -24,7 +24,7 @@
 #ifdef _MSC_VER
 #define WS2TCPIP_INLINE __inline
 #else
-#define WS2TCPIP_INLINE extern inline
+#define WS2TCPIP_INLINE static inline
 #endif
 
 /* getaddrinfo error codes */

Modified: branches/reactos-yarotows/include/reactos/libs/libtiff/tiffio.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/include/reactos/libs/libtiff/tiffio.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/include/reactos/libs/libtiff/tiffio.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/include/reactos/libs/libtiff/tiffio.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -27,6 +27,30 @@
 #ifndef _TIFFIO_
 #define	_TIFFIO_
 
+#ifndef __GNUC__
+# define __DLL_IMPORT__  __declspec(dllimport)
+# define __DLL_EXPORT__  __declspec(dllexport)
+#else
+# define __DLL_IMPORT__  __attribute__((dllimport)) extern
+# define __DLL_EXPORT__  __attribute__((dllexport)) extern
+#endif 
+
+#if (defined __WIN32__) || (defined _WIN32)
+# ifdef BUILD_LIBTIFF_DLL
+#  define LIBTIFF_DLL_IMPEXP     __DLL_EXPORT__
+# elif defined(LIBTIFF_STATIC)
+#  define LIBTIFF_DLL_IMPEXP      
+# elif defined (USE_LIBTIFF_DLL)
+#  define LIBTIFF_DLL_IMPEXP     __DLL_IMPORT__
+# elif defined (USE_LIBTIFF_STATIC)
+#  define LIBTIFF_DLL_IMPEXP      
+# else /* assume USE_LIBTIFF_DLL */
+#  define LIBTIFF_DLL_IMPEXP     __DLL_IMPORT__
+# endif
+#else /* __WIN32__ */
+# define LIBTIFF_DLL_IMPEXP  
+#endif
+
 /*
  * TIFF I/O Library Definitions.
  */
@@ -80,10 +104,20 @@
  */
 
 #if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows)
+#  define BINMODE "b"
 #  if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO)
 #    define AVOID_WIN32_FILEIO
 #  endif
-#endif
+#  include <fcntl.h>
+#  include <io.h>
+#  ifdef SET_BINARY
+#    undef SET_BINARY
+#  endif /* SET_BINARY */
+#  define SET_BINARY(f) do {if (!_isatty(f)) _setmode(f,_O_BINARY);} while (0)
+#else /* Windows */
+#  define BINMODE
+#  define SET_BINARY(f) (void)0
+#endif /* Windows */
 
 #if defined(USE_WIN32_FILEIO)
 # define VC_EXTRALEAN
@@ -268,30 +302,30 @@
 typedef	void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
 typedef	void (*TIFFExtendProc)(TIFF*); 
 
-extern	const char* TIFFGetVersion(void);
-
-extern	const TIFFCodec* TIFFFindCODEC(uint16);
-extern	TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod);
-extern	void TIFFUnRegisterCODEC(TIFFCodec*);
-extern  int TIFFIsCODECConfigured(uint16);
-extern	TIFFCodec* TIFFGetConfiguredCODECs(void);
+LIBTIFF_DLL_IMPEXP	const char* TIFFGetVersion(void);
+
+LIBTIFF_DLL_IMPEXP	const TIFFCodec* TIFFFindCODEC(uint16);
+LIBTIFF_DLL_IMPEXP	TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod);
+LIBTIFF_DLL_IMPEXP	void TIFFUnRegisterCODEC(TIFFCodec*);
+LIBTIFF_DLL_IMPEXP  int TIFFIsCODECConfigured(uint16);
+LIBTIFF_DLL_IMPEXP	TIFFCodec* TIFFGetConfiguredCODECs(void);
 
 /*
  * Auxiliary functions.
  */
 
-extern	tdata_t _TIFFmalloc(tsize_t);
-extern	tdata_t _TIFFrealloc(tdata_t, tsize_t);
-extern	void _TIFFmemset(tdata_t, int, tsize_t);
-extern	void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
-extern	int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
-extern	void _TIFFfree(tdata_t);
+LIBTIFF_DLL_IMPEXP	tdata_t _TIFFmalloc(tsize_t);
+LIBTIFF_DLL_IMPEXP	tdata_t _TIFFrealloc(tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	void _TIFFmemset(tdata_t, int, tsize_t);
+LIBTIFF_DLL_IMPEXP	void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	void _TIFFfree(tdata_t);
 
 /*
 ** Stuff, related to tag handling and creating custom tags.
 */
-extern  int  TIFFGetTagListCount( TIFF * );
-extern  ttag_t TIFFGetTagListEntry( TIFF *, int tag_index );
+LIBTIFF_DLL_IMPEXP  int  TIFFGetTagListCount( TIFF * );
+LIBTIFF_DLL_IMPEXP  ttag_t TIFFGetTagListEntry( TIFF *, int tag_index );
     
 #define	TIFF_ANY	TIFF_NOTYPE	/* for field descriptor searching */
 #define	TIFF_VARIABLE	-1		/* marker for variable length tags */
@@ -317,12 +351,12 @@
     void           *value;
 } TIFFTagValue;
 
-extern	void TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);
-extern	const TIFFFieldInfo* TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);
-extern  const TIFFFieldInfo* TIFFFindFieldInfoByName(TIFF* , const char *,
+LIBTIFF_DLL_IMPEXP	void TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);
+LIBTIFF_DLL_IMPEXP	const TIFFFieldInfo* TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);
+LIBTIFF_DLL_IMPEXP  const TIFFFieldInfo* TIFFFindFieldInfoByName(TIFF* , const char *,
 						     TIFFDataType);
-extern	const TIFFFieldInfo* TIFFFieldWithTag(TIFF*, ttag_t);
-extern	const TIFFFieldInfo* TIFFFieldWithName(TIFF*, const char *);
+LIBTIFF_DLL_IMPEXP	const TIFFFieldInfo* TIFFFieldWithTag(TIFF*, ttag_t);
+LIBTIFF_DLL_IMPEXP	const TIFFFieldInfo* TIFFFieldWithName(TIFF*, const char *);
 
 typedef	int (*TIFFVSetMethod)(TIFF*, ttag_t, va_list);
 typedef	int (*TIFFVGetMethod)(TIFF*, ttag_t, va_list);
@@ -334,180 +368,180 @@
     TIFFPrintMethod	printdir;	/* directory print routine */
 } TIFFTagMethods;
         
-extern  TIFFTagMethods *TIFFAccessTagMethods( TIFF * );
-extern  void *TIFFGetClientInfo( TIFF *, const char * );
-extern  void TIFFSetClientInfo( TIFF *, void *, const char * );
-
-extern	void TIFFCleanup(TIFF*);
-extern	void TIFFClose(TIFF*);
-extern	int TIFFFlush(TIFF*);
-extern	int TIFFFlushData(TIFF*);
-extern	int TIFFGetField(TIFF*, ttag_t, ...);
-extern	int TIFFVGetField(TIFF*, ttag_t, va_list);
-extern	int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...);
-extern	int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list);
-extern	int TIFFReadDirectory(TIFF*);
-extern	int TIFFReadCustomDirectory(TIFF*, toff_t, const TIFFFieldInfo[],
+LIBTIFF_DLL_IMPEXP  TIFFTagMethods *TIFFAccessTagMethods( TIFF * );
+LIBTIFF_DLL_IMPEXP  void *TIFFGetClientInfo( TIFF *, const char * );
+LIBTIFF_DLL_IMPEXP  void TIFFSetClientInfo( TIFF *, void *, const char * );
+
+LIBTIFF_DLL_IMPEXP	void TIFFCleanup(TIFF*);
+LIBTIFF_DLL_IMPEXP	void TIFFClose(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFFlush(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFFlushData(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFGetField(TIFF*, ttag_t, ...);
+LIBTIFF_DLL_IMPEXP	int TIFFVGetField(TIFF*, ttag_t, va_list);
+LIBTIFF_DLL_IMPEXP	int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...);
+LIBTIFF_DLL_IMPEXP	int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list);
+LIBTIFF_DLL_IMPEXP	int TIFFReadDirectory(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFReadCustomDirectory(TIFF*, toff_t, const TIFFFieldInfo[],
 				    size_t);
-extern	int TIFFReadEXIFDirectory(TIFF*, toff_t);
-extern	tsize_t TIFFScanlineSize(TIFF*);
-extern	tsize_t TIFFOldScanlineSize(TIFF*);
-extern	tsize_t TIFFNewScanlineSize(TIFF*);
-extern	tsize_t TIFFRasterScanlineSize(TIFF*);
-extern	tsize_t TIFFStripSize(TIFF*);
-extern	tsize_t TIFFRawStripSize(TIFF*, tstrip_t);
-extern	tsize_t TIFFVStripSize(TIFF*, uint32);
-extern	tsize_t TIFFTileRowSize(TIFF*);
-extern	tsize_t TIFFTileSize(TIFF*);
-extern	tsize_t TIFFVTileSize(TIFF*, uint32);
-extern	uint32 TIFFDefaultStripSize(TIFF*, uint32);
-extern	void TIFFDefaultTileSize(TIFF*, uint32*, uint32*);
-extern	int TIFFFileno(TIFF*);
-extern  int TIFFSetFileno(TIFF*, int);
-extern  thandle_t TIFFClientdata(TIFF*);
-extern  thandle_t TIFFSetClientdata(TIFF*, thandle_t);
-extern	int TIFFGetMode(TIFF*);
-extern	int TIFFSetMode(TIFF*, int);
-extern	int TIFFIsTiled(TIFF*);
-extern	int TIFFIsByteSwapped(TIFF*);
-extern	int TIFFIsUpSampled(TIFF*);
-extern	int TIFFIsMSB2LSB(TIFF*);
-extern	int TIFFIsBigEndian(TIFF*);
-extern	TIFFReadWriteProc TIFFGetReadProc(TIFF*);
-extern	TIFFReadWriteProc TIFFGetWriteProc(TIFF*);
-extern	TIFFSeekProc TIFFGetSeekProc(TIFF*);
-extern	TIFFCloseProc TIFFGetCloseProc(TIFF*);
-extern	TIFFSizeProc TIFFGetSizeProc(TIFF*);
-extern	TIFFMapFileProc TIFFGetMapFileProc(TIFF*);
-extern	TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*);
-extern	uint32 TIFFCurrentRow(TIFF*);
-extern	tdir_t TIFFCurrentDirectory(TIFF*);
-extern	tdir_t TIFFNumberOfDirectories(TIFF*);
-extern	uint32 TIFFCurrentDirOffset(TIFF*);
-extern	tstrip_t TIFFCurrentStrip(TIFF*);
-extern	ttile_t TIFFCurrentTile(TIFF*);
-extern	int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t);
-extern	int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t);
-extern	int TIFFSetupStrips(TIFF *);
-extern  int TIFFWriteCheck(TIFF*, int, const char *);
-extern	void TIFFFreeDirectory(TIFF*);
-extern  int TIFFCreateDirectory(TIFF*);
-extern	int TIFFLastDirectory(TIFF*);
-extern	int TIFFSetDirectory(TIFF*, tdir_t);
-extern	int TIFFSetSubDirectory(TIFF*, uint32);
-extern	int TIFFUnlinkDirectory(TIFF*, tdir_t);
-extern	int TIFFSetField(TIFF*, ttag_t, ...);
-extern	int TIFFVSetField(TIFF*, ttag_t, va_list);
-extern	int TIFFWriteDirectory(TIFF *);
-extern	int TIFFCheckpointDirectory(TIFF *);
-extern	int TIFFRewriteDirectory(TIFF *);
-extern	int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int);
+LIBTIFF_DLL_IMPEXP	int TIFFReadEXIFDirectory(TIFF*, toff_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFScanlineSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFOldScanlineSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFNewScanlineSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFRasterScanlineSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFStripSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFRawStripSize(TIFF*, tstrip_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFVStripSize(TIFF*, uint32);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFTileRowSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFTileSize(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFVTileSize(TIFF*, uint32);
+LIBTIFF_DLL_IMPEXP	uint32 TIFFDefaultStripSize(TIFF*, uint32);
+LIBTIFF_DLL_IMPEXP	void TIFFDefaultTileSize(TIFF*, uint32*, uint32*);
+LIBTIFF_DLL_IMPEXP	int TIFFFileno(TIFF*);
+LIBTIFF_DLL_IMPEXP  int TIFFSetFileno(TIFF*, int);
+LIBTIFF_DLL_IMPEXP  thandle_t TIFFClientdata(TIFF*);
+LIBTIFF_DLL_IMPEXP  thandle_t TIFFSetClientdata(TIFF*, thandle_t);
+LIBTIFF_DLL_IMPEXP	int TIFFGetMode(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFSetMode(TIFF*, int);
+LIBTIFF_DLL_IMPEXP	int TIFFIsTiled(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFIsByteSwapped(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFIsUpSampled(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFIsMSB2LSB(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFIsBigEndian(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFReadWriteProc TIFFGetReadProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFReadWriteProc TIFFGetWriteProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFSeekProc TIFFGetSeekProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFCloseProc TIFFGetCloseProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFSizeProc TIFFGetSizeProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFMapFileProc TIFFGetMapFileProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*);
+LIBTIFF_DLL_IMPEXP	uint32 TIFFCurrentRow(TIFF*);
+LIBTIFF_DLL_IMPEXP	tdir_t TIFFCurrentDirectory(TIFF*);
+LIBTIFF_DLL_IMPEXP	tdir_t TIFFNumberOfDirectories(TIFF*);
+LIBTIFF_DLL_IMPEXP	uint32 TIFFCurrentDirOffset(TIFF*);
+LIBTIFF_DLL_IMPEXP	tstrip_t TIFFCurrentStrip(TIFF*);
+LIBTIFF_DLL_IMPEXP	ttile_t TIFFCurrentTile(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	int TIFFSetupStrips(TIFF *);
+LIBTIFF_DLL_IMPEXP  int TIFFWriteCheck(TIFF*, int, const char *);
+LIBTIFF_DLL_IMPEXP	void TIFFFreeDirectory(TIFF*);
+LIBTIFF_DLL_IMPEXP  int TIFFCreateDirectory(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFLastDirectory(TIFF*);
+LIBTIFF_DLL_IMPEXP	int TIFFSetDirectory(TIFF*, tdir_t);
+LIBTIFF_DLL_IMPEXP	int TIFFSetSubDirectory(TIFF*, uint32);
+LIBTIFF_DLL_IMPEXP	int TIFFUnlinkDirectory(TIFF*, tdir_t);
+LIBTIFF_DLL_IMPEXP	int TIFFSetField(TIFF*, ttag_t, ...);
+LIBTIFF_DLL_IMPEXP	int TIFFVSetField(TIFF*, ttag_t, va_list);
+LIBTIFF_DLL_IMPEXP	int TIFFWriteDirectory(TIFF *);
+LIBTIFF_DLL_IMPEXP	int TIFFCheckpointDirectory(TIFF *);
+LIBTIFF_DLL_IMPEXP	int TIFFRewriteDirectory(TIFF *);
+LIBTIFF_DLL_IMPEXP	int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int);
 
 #if defined(c_plusplus) || defined(__cplusplus)
-extern	void TIFFPrintDirectory(TIFF*, FILE*, long = 0);
-extern	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
-extern	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
-extern	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0);
-extern	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*,
+LIBTIFF_DLL_IMPEXP	void TIFFPrintDirectory(TIFF*, FILE*, long = 0);
+LIBTIFF_DLL_IMPEXP	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
+LIBTIFF_DLL_IMPEXP	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0);
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*,
 				      int = ORIENTATION_BOTLEFT, int = 0);
 #else
-extern	void TIFFPrintDirectory(TIFF*, FILE*, long);
-extern	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t);
-extern	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t);
-extern	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int);
-extern	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int);
-#endif
-
-extern	int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * );
-extern	int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * );
-extern	int TIFFRGBAImageOK(TIFF*, char [1024]);
-extern	int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]);
-extern	int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32);
-extern	void TIFFRGBAImageEnd(TIFFRGBAImage*);
-extern	TIFF* TIFFOpen(const char*, const char*);
+LIBTIFF_DLL_IMPEXP	void TIFFPrintDirectory(TIFF*, FILE*, long);
+LIBTIFF_DLL_IMPEXP	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t);
+LIBTIFF_DLL_IMPEXP	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t);
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int);
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int);
+#endif
+
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * );
+LIBTIFF_DLL_IMPEXP	int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * );
+LIBTIFF_DLL_IMPEXP	int TIFFRGBAImageOK(TIFF*, char [1024]);
+LIBTIFF_DLL_IMPEXP	int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]);
+LIBTIFF_DLL_IMPEXP	int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32);
+LIBTIFF_DLL_IMPEXP	void TIFFRGBAImageEnd(TIFFRGBAImage*);
+LIBTIFF_DLL_IMPEXP	TIFF* TIFFOpen(const char*, const char*);
 # ifdef __WIN32__
-extern	TIFF* TIFFOpenW(const wchar_t*, const char*);
+LIBTIFF_DLL_IMPEXP	TIFF* TIFFOpenW(const wchar_t*, const char*);
 # endif /* __WIN32__ */
-extern	TIFF* TIFFFdOpen(int, const char*, const char*);
-extern	TIFF* TIFFClientOpen(const char*, const char*,
+LIBTIFF_DLL_IMPEXP	TIFF* TIFFFdOpen(int, const char*, const char*);
+LIBTIFF_DLL_IMPEXP	TIFF* TIFFClientOpen(const char*, const char*,
 	    thandle_t,
 	    TIFFReadWriteProc, TIFFReadWriteProc,
 	    TIFFSeekProc, TIFFCloseProc,
 	    TIFFSizeProc,
 	    TIFFMapFileProc, TIFFUnmapFileProc);
-extern	const char* TIFFFileName(TIFF*);
-extern	const char* TIFFSetFileName(TIFF*, const char *);
-extern void TIFFError(const char*, const char*, ...) __attribute__((format (printf,2,3)));
-extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4)));
-extern void TIFFWarning(const char*, const char*, ...) __attribute__((format (printf,2,3)));
-extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4)));
-extern	TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
-extern	TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt);
-extern	TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
-extern	TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt);
-extern	TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
-extern	ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t);
-extern	int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t);
-extern	ttile_t TIFFNumberOfTiles(TIFF*);
-extern	tsize_t TIFFReadTile(TIFF*,
+LIBTIFF_DLL_IMPEXP	const char* TIFFFileName(TIFF*);
+LIBTIFF_DLL_IMPEXP	const char* TIFFSetFileName(TIFF*, const char *);
+LIBTIFF_DLL_IMPEXP void TIFFError(const char*, const char*, ...) __attribute__((format (printf,2,3)));
+LIBTIFF_DLL_IMPEXP void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4)));
+LIBTIFF_DLL_IMPEXP void TIFFWarning(const char*, const char*, ...) __attribute__((format (printf,2,3)));
+LIBTIFF_DLL_IMPEXP void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((format (printf,3,4)));
+LIBTIFF_DLL_IMPEXP	TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
+LIBTIFF_DLL_IMPEXP	TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt);
+LIBTIFF_DLL_IMPEXP	TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
+LIBTIFF_DLL_IMPEXP	TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt);
+LIBTIFF_DLL_IMPEXP	TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
+LIBTIFF_DLL_IMPEXP	ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t);
+LIBTIFF_DLL_IMPEXP	int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t);
+LIBTIFF_DLL_IMPEXP	ttile_t TIFFNumberOfTiles(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFReadTile(TIFF*,
 	    tdata_t, uint32, uint32, uint32, tsample_t);
-extern	tsize_t TIFFWriteTile(TIFF*,
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFWriteTile(TIFF*,
 	    tdata_t, uint32, uint32, uint32, tsample_t);
-extern	tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t);
-extern	tstrip_t TIFFNumberOfStrips(TIFF*);
-extern	tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
-extern	tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
-extern	tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
-extern	tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
-extern	tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
-extern	tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
-extern	tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
-extern	tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
-extern	int TIFFDataWidth(TIFFDataType);    /* table of tag datatype widths */
-extern	void TIFFSetWriteOffset(TIFF*, toff_t);
-extern	void TIFFSwabShort(uint16*);
-extern	void TIFFSwabLong(uint32*);
-extern	void TIFFSwabDouble(double*);
-extern	void TIFFSwabArrayOfShort(uint16*, unsigned long);
-extern	void TIFFSwabArrayOfTriples(uint8*, unsigned long);
-extern	void TIFFSwabArrayOfLong(uint32*, unsigned long);
-extern	void TIFFSwabArrayOfDouble(double*, unsigned long);
-extern	void TIFFReverseBits(unsigned char *, unsigned long);
-extern	const unsigned char* TIFFGetBitRevTable(int);
+LIBTIFF_DLL_IMPEXP	tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t);
+LIBTIFF_DLL_IMPEXP	tstrip_t TIFFNumberOfStrips(TIFF*);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
+LIBTIFF_DLL_IMPEXP	int TIFFDataWidth(TIFFDataType);    /* table of tag datatype widths */
+LIBTIFF_DLL_IMPEXP	void TIFFSetWriteOffset(TIFF*, toff_t);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabShort(uint16*);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabLong(uint32*);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabDouble(double*);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabArrayOfShort(uint16*, unsigned long);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabArrayOfTriples(uint8*, unsigned long);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabArrayOfLong(uint32*, unsigned long);
+LIBTIFF_DLL_IMPEXP	void TIFFSwabArrayOfDouble(double*, unsigned long);
+LIBTIFF_DLL_IMPEXP	void TIFFReverseBits(unsigned char *, unsigned long);
+LIBTIFF_DLL_IMPEXP	const unsigned char* TIFFGetBitRevTable(int);
 
 #ifdef LOGLUV_PUBLIC
 #define U_NEU		0.210526316
 #define V_NEU		0.473684211
 #define UVSCALE		410.
-extern	double LogL16toY(int);
-extern	double LogL10toY(int);
-extern	void XYZtoRGB24(float*, uint8*);
-extern	int uv_decode(double*, double*, int);
-extern	void LogLuv24toXYZ(uint32, float*);
-extern	void LogLuv32toXYZ(uint32, float*);
+LIBTIFF_DLL_IMPEXP	double LogL16toY(int);
+LIBTIFF_DLL_IMPEXP	double LogL10toY(int);
+LIBTIFF_DLL_IMPEXP	void XYZtoRGB24(float*, uint8*);
+LIBTIFF_DLL_IMPEXP	int uv_decode(double*, double*, int);
+LIBTIFF_DLL_IMPEXP	void LogLuv24toXYZ(uint32, float*);
+LIBTIFF_DLL_IMPEXP	void LogLuv32toXYZ(uint32, float*);
 #if defined(c_plusplus) || defined(__cplusplus)
-extern	int LogL16fromY(double, int = SGILOGENCODE_NODITHER);
-extern	int LogL10fromY(double, int = SGILOGENCODE_NODITHER);
-extern	int uv_encode(double, double, int = SGILOGENCODE_NODITHER);
-extern	uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER);
-extern	uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER);
+LIBTIFF_DLL_IMPEXP	int LogL16fromY(double, int = SGILOGENCODE_NODITHER);
+LIBTIFF_DLL_IMPEXP	int LogL10fromY(double, int = SGILOGENCODE_NODITHER);
+LIBTIFF_DLL_IMPEXP	int uv_encode(double, double, int = SGILOGENCODE_NODITHER);
+LIBTIFF_DLL_IMPEXP	uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER);
+LIBTIFF_DLL_IMPEXP	uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER);
 #else
-extern	int LogL16fromY(double, int);
-extern	int LogL10fromY(double, int);
-extern	int uv_encode(double, double, int);
-extern	uint32 LogLuv24fromXYZ(float*, int);
-extern	uint32 LogLuv32fromXYZ(float*, int);
+LIBTIFF_DLL_IMPEXP	int LogL16fromY(double, int);
+LIBTIFF_DLL_IMPEXP	int LogL10fromY(double, int);
+LIBTIFF_DLL_IMPEXP	int uv_encode(double, double, int);
+LIBTIFF_DLL_IMPEXP	uint32 LogLuv24fromXYZ(float*, int);
+LIBTIFF_DLL_IMPEXP	uint32 LogLuv32fromXYZ(float*, int);
 #endif
 #endif /* LOGLUV_PUBLIC */
     
-extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, TIFFDisplay *, float*);
-extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32,
+LIBTIFF_DLL_IMPEXP int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, TIFFDisplay *, float*);
+LIBTIFF_DLL_IMPEXP void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32,
 			    float *, float *, float *);
-extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float,
+LIBTIFF_DLL_IMPEXP void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float,
 			 uint32 *, uint32 *, uint32 *);
 
-extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*);
-extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32,
+LIBTIFF_DLL_IMPEXP int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*);
+LIBTIFF_DLL_IMPEXP void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32,
 			   uint32 *, uint32 *, uint32 *);
 
 #if defined(c_plusplus) || defined(__cplusplus)

Propchange: branches/reactos-yarotows/include/reactos/winsock/msafd.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,2 +1,2 @@
 /branches/ros-amd64-bringup/reactos/include/reactos/winsock/msafd.h:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
-/trunk/reactos/include/reactos/winsock/msafd.h:44354-45543,48010-48040
+/trunk/reactos/include/reactos/winsock/msafd.h:44354-45543,48010-48067

Propchange: branches/reactos-yarotows/include/reactos/winsock/msafdlib.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,2 +1,2 @@
 /branches/ros-amd64-bringup/reactos/include/reactos/winsock/msafdlib.h:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
-/trunk/reactos/include/reactos/winsock/msafdlib.h:44354-45543,48010-48040
+/trunk/reactos/include/reactos/winsock/msafdlib.h:44354-45543,48010-48067

Propchange: branches/reactos-yarotows/include/reactos/winsock/mswinsock.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,2 +1,2 @@
 /branches/ros-amd64-bringup/reactos/include/reactos/winsock/mswinsock.h:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
-/trunk/reactos/include/reactos/winsock/mswinsock.h:44354-45543,48010-48040
+/trunk/reactos/include/reactos/winsock/mswinsock.h:44354-45543,48010-48067

Propchange: branches/reactos-yarotows/include/reactos/winsock/rnr20lib.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,2 +1,2 @@
 /branches/ros-amd64-bringup/reactos/include/reactos/winsock/rnr20lib.h:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
-/trunk/reactos/include/reactos/winsock/rnr20lib.h:44354-45543,48010-48040
+/trunk/reactos/include/reactos/winsock/rnr20lib.h:44354-45543,48010-48067

Propchange: branches/reactos-yarotows/include/reactos/winsock/wsmobile.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,2 +1,2 @@
 /branches/ros-amd64-bringup/reactos/include/reactos/winsock/wsmobile.h:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
-/trunk/reactos/include/reactos/winsock/wsmobile.h:44354-45543,48010-48040
+/trunk/reactos/include/reactos/winsock/wsmobile.h:44354-45543,48010-48067

Modified: branches/reactos-yarotows/ntoskrnl/ex/rundown.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/ex/rundown.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/ex/rundown.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/ex/rundown.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -491,7 +491,7 @@
 VOID
 NTAPI
 ExInitializeRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
-                                        IN ULONG Count)
+                                        IN SIZE_T Count)
 {
     DBG_UNREFERENCED_PARAMETER(RunRefCacheAware);
     DBG_UNREFERENCED_PARAMETER(Count);

Modified: branches/reactos-yarotows/ntoskrnl/include/internal/amd64/ke.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/include/internal/amd64/ke.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -316,9 +316,6 @@
 
 #endif /* __ASM__ */
 
-#undef KeGetCurrentThread
-#define _KeGetCurrentThread KeGetCurrentThread
-
 // HACK
 extern NTKERNELAPI volatile KSYSTEM_TIME KeTickCount;
 

Modified: branches/reactos-yarotows/ntoskrnl/include/internal/mm.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/include/internal/mm.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/include/internal/mm.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/include/internal/mm.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -17,7 +17,7 @@
 extern ULONG MmLowestPhysicalPage;
 extern ULONG MmHighestPhysicalPage;
 extern ULONG MmAvailablePages;
-extern ULONG MmResidentAvailablePages;
+extern PFN_NUMBER MmResidentAvailablePages;
 
 extern PVOID MmPagedPoolBase;
 extern ULONG MmPagedPoolSize;

Modified: branches/reactos-yarotows/ntoskrnl/include/ntoskrnl.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/include/ntoskrnl.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/include/ntoskrnl.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/include/ntoskrnl.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -11,6 +11,12 @@
 /* ARM Bringup Hack */
 #ifdef _M_ARM
 #define DbgPrint DbgPrintEarly
+#endif
+
+/* WDK hacks */
+#ifdef _M_AMD64
+#define IoAllocateAdapterChannel _IoAllocateAdapterChannel
+#define KeGetCurrentThread _KeGetCurrentThread
 #endif
 
 /* Version Data */

Modified: branches/reactos-yarotows/ntoskrnl/io/iomgr/adapter.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/io/iomgr/adapter.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/io/iomgr/adapter.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/io/iomgr/adapter.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -21,6 +21,7 @@
 
 /* FUNCTIONS *****************************************************************/
 
+#undef IoAllocateAdapterChannel
 /*
  * @implemented
  */

Modified: branches/reactos-yarotows/ntoskrnl/kd64/kddata.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/kd64/kddata.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/kd64/kddata.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/kd64/kddata.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -526,14 +526,14 @@
     //
     // AMD64 GDT/LDT/TSS constants
     //
-    KGDT_64_R0_CODE,
-    KGDT_64_DATA,
-    KGDT_64_DATA,
-    KGDT_64_R3_CODE,
-    KGDT_64_DATA,
-    KGDT_64_DATA,
-    0,
-    KGDT_TSS,
+    KGDT64_R0_CODE,
+    KGDT64_R3_DATA,
+    KGDT64_R3_DATA,
+    KGDT64_R3_CODE,
+    KGDT64_R3_DATA,
+    KGDT64_R3_DATA,
+    0,
+    KGDT64_SYS_TSS,
     0,
     0,
 #else

Modified: branches/reactos-yarotows/ntoskrnl/ke/clock.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/ke/clock.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/ke/clock.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/ke/clock.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -175,6 +175,7 @@
     }
 }
 
+#ifndef _M_AMD64
 /*
  * @implemented
  */
@@ -217,6 +218,7 @@
     /* Return the time value */
     return CurrentTime.QuadPart;
 }
+#endif
 
 /*
  * @implemented

Modified: branches/reactos-yarotows/ntoskrnl/mm/ARM3/miarm.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/ntoskrnl/mm/ARM3/miarm.h?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -5,6 +5,8 @@
  * PURPOSE:         ARM Memory Manager Header
  * PROGRAMMERS:     ReactOS Portable Systems Group
  */
+
+#ifndef _M_AMD64
 
 #define MI_MIN_PAGES_FOR_NONPAGED_POOL_TUNING ((255*1024*1024) >> PAGE_SHIFT)
 #define MI_MIN_PAGES_FOR_SYSPTE_TUNING         ((19*1024*1024) >> PAGE_SHIFT)
@@ -37,6 +39,8 @@
 
 #define MM_HIGHEST_VAD_ADDRESS \
     (PVOID)((ULONG_PTR)MM_HIGHEST_USER_ADDRESS - (16 * PAGE_SIZE))
+
+#endif /* !_M_AMD64 */
 
 /* Make the code cleaner with some definitions for size multiples */
 #define _1KB (1024)
@@ -58,7 +62,9 @@
 #define PDE_COUNT 4096
 #define PTE_COUNT 256
 #else
-#error Define these please!
+#define PD_COUNT  PPE_PER_PAGE
+#define PDE_COUNT PDE_PER_PAGE
+#define PTE_COUNT PTE_PER_PAGE
 #endif
 
 #ifdef _M_IX86

Propchange: branches/reactos-yarotows/subsystems/win32/csrss/win32csr/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 15 20:49:51 2010
@@ -1,4 +1,4 @@
 /branches/header-work/subsystems/win32/csrss/win32csr:45691-46463
 /branches/ros-amd64-bringup/reactos/subsystems/win32/csrss/win32csr:34711-34712,34741,34743,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36397,36445,36502-36503,36505,36570,36614,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40927-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43857-43858,43860,43905-43907,43969,44002,44036-44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338-44339,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44772,45124,45126-45127,46394,46478,46511,46524,46526,46534-46535,46537-46539,46589
 /branches/ros-amd64-bringup/subsystems/win32/csrss/win32csr:36852
-/trunk/reactos/subsystems/win32/csrss/win32csr:45219-48040
+/trunk/reactos/subsystems/win32/csrss/win32csr:45219-48067

Modified: branches/reactos-yarotows/subsystems/win32/win32k/objects/cliprgn.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win32/win32k/objects/cliprgn.c?rev=48068&r1=48067&r2=48068&view=diff
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/objects/cliprgn.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/objects/cliprgn.c [iso-8859-1] Thu Jul 15 20:49:51 2010
@@ -26,7 +26,7 @@
 CLIPPING_UpdateGCRegion(DC* Dc)
 {
    PROSRGNDATA CombinedRegion;
-   HRGN hRgnVis = NULL;
+   HRGN hRgnVis = Dc->prgnVis->BaseObject.hHmgr;
 
     // would prefer this, but the rest of the code sucks
 //    ASSERT(Dc->rosdc.hGCClipRgn);
@@ -45,7 +45,7 @@
       Dc->rosdc.hGCClipRgn = IntSysCreateRectRgn(0, 0, 0, 0);
 
    if (Dc->rosdc.hClipRgn == NULL)
-      NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, ((PROSRGNDATA)Dc->prgnVis)->BaseObject.hHmgr, 0, RGN_COPY);
+      NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, hRgnVis, 0, RGN_COPY);
    else
       NtGdiCombineRgn(Dc->rosdc.hGCClipRgn, Dc->rosdc.hClipRgn, hRgnVis, RGN_AND);
 




More information about the Ros-diffs mailing list