mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
- Remove kilobyte of unneeded MS support database text copypaste.
- 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
This commit is contained in:
parent
e121cc7e3d
commit
be684e0471
2 changed files with 22 additions and 192 deletions
|
@ -146,184 +146,25 @@ GetAppCompatFlags ( HTASK hTask )
|
|||
{
|
||||
PW32THREADINFO ti = GetW32ThreadInfo();
|
||||
|
||||
if (ti == NULL)
|
||||
{
|
||||
return 0;
|
||||
/* If there is no threadinfo (?!), then return 0 */
|
||||
if (!ti) return 0;
|
||||
|
||||
return ti->AppCompatFlags;
|
||||
}
|
||||
|
||||
/* 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.
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
DWORD
|
||||
STDCALL
|
||||
GetAppCompatFlags2(HTASK hTask)
|
||||
{
|
||||
PW32THREADINFO ti = GetW32ThreadInfo();
|
||||
|
||||
return ti->dwAppsCompatibleFlags;
|
||||
/* 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
|
||||
*/
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue