WIN.INI [兼容性] 部分
注意：这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇，语法或文法的问题，就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量，但是我们不保证机器翻译的正确度，也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
3.10 3.11 WINDOWS kbenv
本文讨论了 Microsoft Windows 版本 3.1 WIN.INI [兼容性] 部分。
在以下应用程序 WIN.INI 文件中的 [兼容性] 部分中定义的兼容性位：
- Microsoft Publisher
- Microsoft 资金
- Microsoft 的工作原理
- Microsoft Visual Basic
- Ami Pro
- Microsoft Excel
- MGX 绘图
- lotus Notes
- Microsoft 绘图
- Turbo 税
下面是详细的说明的兼容性位数。在 $ WINDOWS.H 中定义符号的名称。如果定义了兼容性位，将会修复该问题列出为每个的应用程序。如果这些开关的 WIN.INI 文件 [兼容性] 部分中将不会产生这些问题。Windows 3.1 安装程序自动将这些开关插入该 WIN.INI 无论该应用程序在计算机上。
符号的名称只是内部，它们不是在 WINDOWS.H 附带的软件开发工具包 (SDK) 中。
Symbolic name: GACF_IGNORENODISCARDMeaning: 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.Apps: Publisher WIN.INI Line: notshell=0x0001 Problem: Setup for MS apps. does not work on 1M 286 machine. Money WIN.INI Line: notshell=0x0001 Problem: Setup for MS apps. does not work on 1M 286 machine. Works WIN.INI Line: notshell=0x0001 Problem: Setup for MS apps. does not work on 1M 286 machine.
Symbolic name: GACF_FORCETEXTBANDMeaning: 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.Apps: WordPerfect WIN.INI Line: WPWINFIL=0x0006 Problem: Can't print graphics in landscape mode. The compatibility switch doesn't completely fix the problem, just fixes it for certain memory configurations. Freelance WIN.INI Line: rem=0x8022 Problem: Freelance couldn't print presentation (.pre) files.
Symbolic name: GACF_ONELANDGRXBANDMeaning: 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.Apps: WordPerfect WIN.INI Line: WPWINFIL=0x0006 Problem: Can't print graphics in landscape mode. The compatibility switch doesn't completely fix the problem, just fixes it for certain memory configurations.
Symbolic name: GACF_IGNORETOPMOSTMeaning: Ignore topmost windows for GetWindow(HWND,GW_HWNDFIRST)Apps: CCMail WIN.INI Line: ccmail=0x0008 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 3.1, this isn't the case. The compatibility bit fixes this so GetWindow doesn't return a topmost window.
Symbolic name: GACF_CALLTTDEVICEMeaning: Set the DEVICE_FONTTYPE bit in the FontType for TT fonts returned by EnumFonts().Apps: Ami Pro WIN.INI Line: Amipro=0x0010 Problem: Font mapping problems, described below. WordPerfect WIN.INI Line: win2wrs=0x1210 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.
Symbolic name: GACF_MULTIPLEBANDSMeaning: Manually break graphics output into more than one band when printing.Apps: Freelance WIN.INI Line: Rem=0x08022 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.
Symbolic name: GACF_ALWAYSSENDNCPAINTMeaning: 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.Apps: Pixie WIN.INI Line: pixie=0x0040 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. ObjectVision WIN.INI Line: Vision=0x0040 Problem: Repaint problems with dialog boxes left on the screen after file.open or file.new operations. Cricket Presents WIN.INI Line: cp=0x0040 Problem: Tool window is not available when opening the app.
Symbolic name: GACF_EDITSETTEXTMUNGEMeaning: Strings that are passed to Edit Controls by WM_SETTEXT are forced to upper case. Just Write was expecting this behavior, which was a bug in 3.0.Apps: Just Write WIN.INI Line: JW=0x42080 Problem: Just Write wouldn't change the extension in the file.open dialog when opening a file of a different format. Just Write calls SetDlgItemText to set the default extension in edit controls during WM_INITDIALOG processing. SetDlgItemText ultimately calls text insert routine which had a bug in 3.0 where it converted the case of the text passed in dependent on edit control style. Thus, under 3.0, SetDlgItemText was (wrongly) modifying the string passed in. The app has worked around the bug in 3.0 and is now failing in 3.1 since the bug has been fixed. The compatibility bit reverts to 3.0 behavior.
Symbolic name: GACF_MOREEXTRAWNDWORDSMeaning: Add 4 to the extra bytes (CBWNDEXTRA) in the window instance and class instance structures. In Windows 3.0, even if you didn't allocate extra window/class words, you could still access them and corrupt Windows internally. In Windows 3.1, you are prevented from accessing extra words you didn't allocate so that apps won't corrupt windows. This switch forces extra words for all classes/windows created by the given application.Apps: Compton's MM Ency WIN.INI Line: TME=0x0100 Problem: Crashes choosing atlas. Caused by not initializing the WNDCLASS.cbWndExtra field. ExploreNet WIN.INI Line: netset2=0x0100 Problem: Application error selecting update in "Input Form" window. Caused by the app specifying 0 extra bytes when creating the window class. Aporia 1.4 WIN.INI Line: aporia=0x0100 Problem: Aporia icons don't appear on the desktop. Hangs the system. App says it wants 1 extra byte in the RegisterClass, then does a SetWindowWord (2 bytes), then GetWindowLong (4 Bytes).
Symbolic name: GACF_TTIGNORERASTERDUPEMeaning: Don't enumerate Duplicate bit map fonts for TT fonts. Times New Roman was displayed and printed as a vector font. We install bit map fonts for Arial and Times New Roman at sizes 8,10 (EGA resolution). When we enumerate fonts for face names Arial and Times New Roman, we would enumerate the sizes available in the bit map fonts and one size for the corresponding true type font. This confused the font mapper in WordPerfect. It would somehow get confused into believing that a TNR font was available for only the two bit map sizes and map a request for a larger size to a Roman vector font.Apps: Word Perfect WIN.INI Line: Win2wrs=0x01210 Problem: Some fonts displayed as vector fonts. GDI will not enumerate raster fonts which have the same face or family name as a TT font if TT is enabled and the compatibility bit is set. Visual Basic WIN.INI Line: vb=0x0200 Problem: Reports duplicate font sizes.
Symbolic name: GACF_DELAYHWHNDSHAKECHKMeaning: Don't check hardware handshaking on SetCommState(). Do not check hardware handshaking (CTS and DSR) on SetCommState(). (Reverts to 30 behavior.) Packrat could not Dial. It only checked for DSR, but this is not set until carrier detect. A bug existed in win30 where SetCommState never checked DSR and CTS. If a serial printer was off-line, data would be sent to the COM port anyway, causing lost data.Apps: Packrat WIN.INI Line: packrat=0x0800 Problem: Packrat didn't dial using modem on COM2. Microcourier WIN.INI Line: mcourier=0x800 Problem: Couldn't connect to modem using COM2.
Symbolic name: GACF_ENUMHELVNTMSRMNMeaning: Enumerates TmsRmn and Helv. Some apps are broken because they relied on 3.0 fonts Helv and Tms Rmn by name. Font Substitution covers much of these problems but we cannot legally enumerate Helv and Tms Rmn for future apps, so it was dropped. We still have the exact same fonts, but now under the names MS Sans Serif and MS Serif, and will enumerate them as Helv and Tms Rmn when this bit is set. (We are allowed to do this for backwards compatibility.)Apps: Spinnaker + WIN.INI Line: plus=0x01000 Problem: Text alignment and spacing problems in buttons and titles. Fix only works if Smallfonts come after serif and sans serif entries. Setup does this automatically. Milestones, etc. WIN.INI Line: milesv3=0x1000 Problem: Text is unreadable when the app is started. App does its own font mapping and gets confused when it can't find Tms Rmn. Guide WIN.INI Line: guide=0x1000 Problem: Text problems. Excel WIN.INI Line: Excel=0x1000 Problem: Can't get past point where you have to enter a point size in the tutorial. WordPerfect WIN.INI Line: win2wwrs=0x1210 Problem: Uses a vector font for TmsRmn.
Symbolic name: GACF_ENUMTTNOTDEVICEMeaning: Turns off DEVICE_FONTTYPE. Some apps fail to enumerate more that one size of true type fonts because they interpret the DEVICE_FONTTYPE flag incorrectly. They assume the font must be device resident and disregard the case where the font is downloaded (as TT can be). Therefore, when TT is correctly enumerated with the device bit set, the apps check the device capabilities to see if the printer can scale fonts. If the device cannot, the app assumes one size of for the current font. This problem is not seen on postscript printers which can download and scale fonts, nor on dot matrix printers which cannot download fonts. This Compatibility bit simply checks all the above conditions and selectively turns the DEVICE_FONTTYPE off.Apps: Pagemaker 4.0 WIN.INI Line: pm4=0x2000 Problem: Not all point sizes listed for some printers. Designer 3.1 WIN.INI Line: designer=0x2000 Problem: Font size reverts to 6 point when selecting a TT font in the font dialog. Ascend 3.1 WIN.INI Line: planner=0x2000 Problem: TT fonts only allow one point size. MGXDraw 3.0 WIN.INI Line: draw=0x2000 Problem: Shows no font sizes for TT fonts. AccPack WIN.INI Line: winsim=0x2000 Problem: Lists only one point size for TT fonts. Charisma WIN.INI Line: charisma=0x2000 Problem: Not all point sizes listed for some printers. Persuasion WIN.INI Line: pr2=0x2000 Problem: Lists only one point size for TT fonts. Just Write WIN.INI Line: jw=0x42080 Problem: Lists only one or two point sizes for TT fonts.
Symbolic name: GACF_SUBTRACTCLIPSIBSMeaning: This flag affects the way window invalidation works for non- WS_CLIPSIBLINGS parent windows and their children (e.g., dialog boxes and dialog controls). Normally, if two children of a non-WS_CLIPSIBLING parent overlap, and an area that contains both of those windows is invalidated (either by a call to InvalidateRect or through window rearrangement), both of the windows will get invalidated, even if one or both is WS_CLIPSIBLINGS. With GACF_SUBTRACTCLIPSIBS, any sibling window underneath a WS_CLIPSIBLINGS window will not be invalidated in the part of the window that is beneath the WS_CLIPSIBLINGS window. This situation arises most commonly when windows that are supposed to appear overlapped don't seem to overlap properly. Applications that implement drop down combo boxes as child windows of dialog boxes will exhibit this problem (e.g., Lotus Notes 2.1 drive drop downs). It's often hard to tell whether a drop down is implemented as a top-level window (e.g., the Windows system combo boxes) or as a child window -- if there seem to be overlapping problems, then GACF_SUBTRACTCLIPSIBS could be the solution.Apps: Lotus Notes 2.0 & 1 WIN.INI Line: _BNOTES=0x24000 Problem: Pull down drive list box pops down behind a list box which is already on the screen. Ingress WIN.INI Lines: wagl=0x4000 waglr=0x4000 Problem: Overlapping child controls.
Symbolic name: GACF_FORCETTGRAPHICSMeaning:Apps: Freelance WIN.INI Line: rem=0x8022 Problem: Freelance wouldn't print TT unless print TT as graphics was selected.
Symbolic name: GACF_NOHRGN1Meaning: 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.Apps: MSDraw WIN.INI Line: ED=0x00010000 Problem: Canvas not redrawn properly opening specific MSDraw objects in Winword.
Symbolic name: GACF_NCCALCSIZEONMOVEMeaning: 3.1 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.Apps: Lotus Notes WIN.INI Line: _BNOTES=0x24000 Problem: Navigator bar of window fails to redraw when the window is moved across the desktop.
Symbolic name: GACF_SENDMENUDBLCLKMeaning: 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.Apps: Just Write WIN.INI Line: JW=0x00042080 Problem: Sub-editors (such as footer and header editors) couldn't be closed by double-clicking the system menu.
Symbolic name: GACF_30AVGWIDTHMeaning: 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.Apps: TurboTax WIN.INI Line: turbotax=0x80000 Problem: 1040 tax forms wouldn't print correctly.如果第三方供应商在他们的应用程序中解决该问题，它们重新可以编译它，以便它需要 Windows 3.1 ； 将不会使用兼容性位。如果第三方 vedor 想他们 Winodws 3.0 和 3.1 下运行的应用程序，然后他们可以更改模块名称，或编辑该 WIN.INI。
文章 ID：82860 - 上次审阅时间：12/04/2015 09:13:35 - 修订版本： 1.0
Microsoft Windows 3.1 标准版, Microsoft Windows 3.11 标准版
- kbnosurvey kbarchive kbmt KB82860 KbMtzh