- Remove kilobyte of unneeded MS support database text copypaste.
authorAleksey Bragin <aleksey@reactos.org>
Tue, 11 Mar 2008 15:58:31 +0000 (15:58 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Tue, 11 Mar 2008 15:58:31 +0000 (15:58 +0000)
- Rename and add two application compatibility flags to W32THREADINFO structure (one for ancient compat flags, and one for a bit more modern flags).
- Implement GetAppCompatFlags2() too.

svn path=/trunk/; revision=32657

reactos/dll/win32/user32/misc/stubs.c
reactos/include/reactos/win32k/ntuser.h

index f5c653f..98ffb76 100644 (file)
@@ -142,188 +142,29 @@ SetDebugErrorLevel( DWORD dwLevel )
  */
 DWORD
 STDCALL
-GetAppCompatFlags ( HTASK hTask )
+GetAppCompatFlags(HTASK hTask)
 {
     PW32THREADINFO ti = GetW32ThreadInfo();
 
-    if (ti == NULL)
-    {
-        return 0;
-    }
-
-  /* NOTE : GetAppCompatFlags retuns which compatible flags should be send back 
-   * the return value is any of http://support.microsoft.com/kb/82860
-   * This text are direcly copy from the  MSDN URL, so it does not get lost
-   *------------------------------------------------------------------------------
-   * Bit: 1
-   * Symbolic name: GACF_IGNORENODISCARD
-   *
-   * Meaning: Ignore NODISCARD flag if passed to GlobalAlloc(). C 6.x
-   * Runtime install library was allocating global memory
-   *  improperly by incorrectly specifying the GMEM_NODISCARD bit.
-   *   
-   * Problem: Setup for MS apps. does not work on 1M 286 machine.
-   *-----------------------------------------------------------------------
-   * Bit: 2
-   * Symbolic name: GACF_FORCETEXTBAND
-   *
-   * Meaning: Separate text band from graphics band. Forces separate band
-   * for text, disallowing 3.1 optimization where Text and
-   * Graphics are printed in the same band. Word Perfect was
-   * assuming text had to go in second band.
-   *
-   * Problem: Can't print graphics in landscape mode. The
-   * compatibility switch doesn't completely fix the
-   * problem, just fixes it for certain memory
-   * configurations.
-   *-----------------------------------------------------------------------
-   * Bit: 4
-   *
-   * Symbolic name: GACF_ONELANDGRXBAND
-   * Meaning: One graphics band only. Allows only one Landscape graphics
-   * band. Take as much memory as possible for this band. What
-   * doesn't fit in that band doesn't print.
-   *
-   * Problem: Can't print graphics in landscape mode. The
-   * compatibility switch doesn't completely fix the
-   * problem, just fixes it for certain memory configurations.
-   *-----------------------------------------------------------------------
-   * Bit: 8
-   * Symbolic name: GACF_IGNORETOPMOST
-   *
-   * Meaning: Ignore topmost windows for GetWindow(HWND,GW_HWNDFIRST)
-   * 
-   * Problem: CCMail would GP fault when running any Windows applet
-   * from CCMail because it assumed the applet it starts
-   * will be at the top of the window list when winexec
-   * returns. Because of the addition of TOPMOST windows in
-   * Win , this isn't the case.  The compatibility bit
-   * fixes this so GetWindow doesn't return a topmost window.
-   *-----------------------------------------------------------------------
-   * Bit: 10
-   * Symbolic name: GACF_CALLTTDEVICE
-   *
-   * Meaning: Set the DEVICE_FONTTYPE bit in the FontType for TT fonts
-   * returned by EnumFonts().
-   *
-   * Problem: WordPerfect was assuming TT fonts enumerated by the
-   * printer would have the device bit set. TT fonts are not
-   * device fonts, so this bit wasn't set. There were
-   * various font mapping problems, such as TNR appearing in
-   * Script or Symbol.
-   *-----------------------------------------------------------------------
-   * Bit: 20
-   *
-   * Symbolic name: GACF_MULTIPLEBANDS
-   *
-   * Meaning: Manually break graphics output into more than one band when printing.
-   *
-   * Problem: Freelance wouldn't print graphics when there was enough
-   * memory and unidrv used only one band for printing. If
-   * the first band was the entire page, it didn't issue any
-   * graphics calls, thinking it was the text only band.
-   * This forces unidrv to use multiple bands.
-   *-----------------------------------------------------------------------
-   * Bit: 40
-   * Symbolic name: GACF_ALWAYSSENDNCPAINT
-   *
-   * Meaning: SetWindowPos() must send a WM_NCPAINT message to all
-   * children, disallowing the 3.1 optimization where this message
-   * is only sent to windows that must be redrawn.
-   *
-   * Problem: File window overlaps the toolbox and doesn't repaint
-   * when a new file is opened.  Pixie used the receipt of
-   * WM_NCPAINT messages to determine that they may need to
-   * reposition themselves at the top of the list.  Win 3.0
-   * used to send the messages to windows even when they
-   * didn't need to be sent; in particular if the window was
-   * within the bounding rect of any update region involved
-   * in a window management operation.
-   *   
-   * Problem: Repaint problems with dialog boxes left on the screen
-   * after file.open or file.new operations.
-   *
-   * Problem: Tool window is not available when opening the app.
-   *-----------------------------------------------------------------------
-   * Bit: 80
-   *-----------------------------------------------------------------------
-   * Bit: 100
-   *-----------------------------------------------------------------------
-   * Bit: 200
-   *-----------------------------------------------------------------------
-   * Bit: 800
-   *-----------------------------------------------------------------------
-   * Bit: 1000
-   *-----------------------------------------------------------------------
-   * Bit: 2000
-   *-----------------------------------------------------------------------
-   * Bit: 4000
-   *-----------------------------------------------------------------------
-   * Bit: 8000
-   *
-   * Symbolic name: GACF_FORCETTGRAPHICS
-   *
-   * Meaning: no expain in msdn
-   *
-   * Problem: Freelance wouldn't print TT unless print TT as graphics was selected.
-   *-----------------------------------------------------------------------
-   * Bit: 10000
-   *
-   * Symbolic name: GACF_NOHRGN1
-   * Meaning:  This bit affects applications that depend on a bug in the
-   * 3.0 GetUpdateRect() function. Under 3.0, GetUpdateRect
-   * would not always return the rectangle in logical DC
-   * coordinates: if the entire window was invalid, the rectangle
-   * was sometimes returned in window coordinates. This bug was
-   * fixed for 3.0 and 3.1 apps in Windows 3.1: coordinates are
-   * ALWAYS returned in logical coordinates. This bit re-
-   * introduces the bug in GetUpdateRect(), for those
-   * applications that depend on this behavior.
-   *
-   * Problem: Canvas not redrawn properly opening specific MSDraw objects in Winword.
-   *-----------------------------------------------------------------------
-   * Bit: 20000
-   *
-   * Symbolic name: GACF_NCCALCSIZEONMOVE
-   * Meaning: 3.1 and higher optimized WM_NCCALCSIZE if a window was just moving,
-   * where 3.0 always sent it. This bit causes it to be sent always, as in 3.0.
-   *
-   * Problem: Navigator bar of window fails to redraw when the window
-   * is moved across the desktop.
-   *-----------------------------------------------------------------------
-   * Bit: 40000
-   *
-   * Symbolic name: GACF_SENDMENUDBLCLK
-   *
-   * Meaning: Passes double-clicks on a menu bar on to the app. With this
-   * bit set, if the user double clicks on the menu bar when a
-   * menu is visible, we end processing of the menu and pass the
-   * double click message on to the application. This allows Just
-   * Write to detect double click on the system menu of a
-   * maximized MDI child.    The normal (and expected) behavior is
-   * for Windows to detect the double click on a sys menu of a
-   * maximized child and send the app a WM_SYSCOMMAND SC_CLOSE
-   * message which is what happens with a non-maximized MDI child window.
-   *
-   * Problem: Sub-editors (such as footer and header editors)
-   *  couldn't be closed by double-clicking the system menu.
-   *                           
-   *-----------------------------------------------------------------------
-   * Bit: 80000
-   *
-   * Symbolic name: GACF_30AVGWIDTH
-   *
-   * Meaning: Changed the way we calculate avg width, this fixes it for
-   * postscript. Scale all fonts by 7/8. This flag has been
-   * added for TurboTax for printing with pscript driver. Turbo
-   * Tax has hard coded average width it uses for selecting fonts.
-   * Since we changed the way we calculate avg width to match what
-   * is in TT, Turbo Tax is broken.
-   *
-   * Problem: 1040 tax forms wouldn't print correctly.
-   */
-  
-  return ti->dwAppsCompatibleFlags;
+    /* If there is no threadinfo (?!), then return 0 */
+    if (!ti) return 0;
+
+    return ti->AppCompatFlags;
+}
+
+/*
+ * @implemented
+ */
+DWORD
+STDCALL
+GetAppCompatFlags2(HTASK hTask)
+{
+    PW32THREADINFO ti = GetW32ThreadInfo();
+
+    /* If there is no threadinfo (?!), then return 0 */
+    if (!ti) return 0;
+
+    return ti->AppCompatFlags2;
 }
 
 /*
@@ -869,17 +710,6 @@ BOOL STDCALL EnterReaderModeHelper(HWND hwnd)
   return FALSE;
 }
 
-/*
- * @unimplemented
- */
-DWORD
-STDCALL
-GetAppCompatFlags2(HTASK hTask)
-{
-  UNIMPLEMENTED;
-  return FALSE;
-}
-
 /*
  * @unimplemented
  */
index 1e56968..adcf86f 100644 (file)
@@ -191,9 +191,9 @@ typedef struct _W32THREADINFO
     ULONG_PTR DesktopHeapDelta;
     /* A mask of what hooks are currently active */
     ULONG Hooks;
-    /* apps compatble flags it being set which compatible mode the apps need
-     * to run in see GetAppCompatFlags for more info */
-    DWORD dwAppsCompatibleFlags;
+    /* Application compatibility flags */
+    DWORD AppCompatFlags;
+    DWORD AppCompatFlags2;
 } W32THREADINFO, *PW32THREADINFO;
 
 /* Window Client Information structure */