Author: greatlrd Date: Mon Mar 10 19:09:23 2008 New Revision: 32652
URL: http://svn.reactos.org/svn/reactos?rev=3D32652&view=3Drev Log: part 2/2 for implement GetAppCompatFlags left todo implemented set AppCompatFlags =
Modified: trunk/reactos/dll/win32/user32/misc/stubs.c
Modified: trunk/reactos/dll/win32/user32/misc/stubs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/misc= /stubs.c?rev=3D32652&r1=3D32651&r2=3D32652&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/win32/user32/misc/stubs.c (original) +++ trunk/reactos/dll/win32/user32/misc/stubs.c Mon Mar 10 19:09:23 2008 @@ -138,14 +138,192 @@ =
=
/* - * @unimplemented + * @implemented */ DWORD STDCALL GetAppCompatFlags ( HTASK hTask ) { - UNIMPLEMENTED; - return FALSE; + PW32THREADINFO ti =3D GetW32ThreadInfo(); + + if (ti =3D=3D 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; } =
/*