WIN.INI [兼容性] 部分

文章翻译 文章翻译
文章编号: 82860 - 查看本文应用于的产品
3.10 3.11 WINDOWS kbenv
展开全部 | 关闭全部



本文讨论了 Microsoft Windows 版本 3.1 WIN.INI [兼容性] 部分。


在以下应用程序 WIN.INI 文件中的 [兼容性] 部分中定义的兼容性位:

  • Microsoft Publisher
  • Microsoft 资金
  • Microsoft 的工作原理
  • WordPerfect
  • 莲花兼职翻译
  • 抄送邮件
  • Microsoft Visual Basic
  • Ami Pro
  • pixie
  • ObjectVision
  • 板球提供
  • 只写
  • ExploreNet
  • Aporia
  • Packrat
  • Microcourier
  • 指南
  • Microsoft Excel
  • MGX 绘图
  • AccPack
  • charisma
  • 说服
  • 入站
  • lotus Notes
  • Microsoft 绘图
  • Turbo 税
当应用程序加载 Windows 3.1 下时,KERNEL.EXE 会检查是否专为 Windows 3.1 编译应用程序。如果应用程序为 Windows 3.0 编译,并将因此 Windows 3.0 或 3.1 下运行,KERNEL.EXE 检查模块名称,并确定如果为 WIN.INI 文件的 [兼容性] 部分中的该名称定义了任何位。

下面是详细的说明的兼容性位数。在 $ WINDOWS.H 中定义符号的名称。如果定义了兼容性位,将会修复该问题列出为每个的应用程序。如果这些开关的 WIN.INI 文件 [兼容性] 部分中将不会产生这些问题。Windows 3.1 安装程序自动将这些开关插入该 WIN.INI 无论该应用程序在计算机上。

符号的名称只是内部,它们不是在 WINDOWS.H 附带的软件开发工具包 (SDK) 中。

位: 1

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.
      WIN.INI Line: notshell=0x0001
      Problem: Setup for MS apps. does not work on 1M 286 machine.
      WIN.INI Line: notshell=0x0001
      Problem: Setup for MS apps. does not work on 1M 286 machine.
      WIN.INI Line: notshell=0x0001
      Problem: Setup for MS apps. does not work on 1M 286 machine.

位: 2

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.
      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
      WIN.INI Line: rem=0x8022
      Problem: Freelance couldn't print presentation (.pre) files.

位: 4

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.
      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

位: 8

Meaning: Ignore topmost windows for GetWindow(HWND,GW_HWNDFIRST)
      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

位: 10

Meaning: Set the DEVICE_FONTTYPE bit in the FontType for TT fonts
         returned by EnumFonts().
   Ami Pro
      WIN.INI Line: Amipro=0x0010
      Problem: Font mapping problems, described below.
      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.

位: 20

Meaning: Manually break graphics output into more than one band when
      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.

位: 40

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.
      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.
      WIN.INI Line: Vision=0x0040
      Problem: Repaint problems with dialog boxes left on the screen
               after or operations.
   Cricket Presents
      WIN.INI Line: cp=0x0040
      Problem: Tool window is not available when opening the app.

位: 80

Meaning: 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.
   Just Write
      WIN.INI Line: JW=0x42080
      Problem: Just Write wouldn't change the extension in the
      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.

位: 100

Meaning: 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
   Compton's MM Ency
      WIN.INI Line: TME=0x0100
      Problem: Crashes choosing atlas. Caused by not initializing the
               WNDCLASS.cbWndExtra field.
      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).

位: 200

Meaning: 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.
    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.

位: 800

Meaning: 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.
      WIN.INI Line: packrat=0x0800
      Problem: Packrat didn't dial using modem on COM2.
      WIN.INI Line: mcourier=0x800
      Problem: Couldn't connect to modem using COM2.

位: 1000年

Meaning: 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.)
    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.
      WIN.INI Line: guide=0x1000
      Problem: Text problems.
      WIN.INI Line: Excel=0x1000
      Problem: Can't get past point where you have to enter a point
               size in the tutorial.
      WIN.INI Line: win2wwrs=0x1210
      Problem: Uses a vector font for TmsRmn.

位: 2000年

Meaning: 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.
    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.
      WIN.INI Line: winsim=0x2000
      Problem: Lists only one point size for TT fonts.
      WIN.INI Line: charisma=0x2000
      Problem: Not all point sizes listed for some printers.
      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.

位: 4000

Meaning:  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.
    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.
      WIN.INI Lines: wagl=0x4000
      Problem: Overlapping child controls.

位: 8000

      WIN.INI Line: rem=0x8022
      Problem: Freelance wouldn't print TT unless print TT as graphics
               was selected.

位: 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.
      WIN.INI Line: ED=0x00010000
      Problem: Canvas not redrawn properly opening specific MSDraw
               objects in Winword.

位: 20000

Meaning: 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.
    Lotus Notes
      WIN.INI Line: _BNOTES=0x24000
      Problem: Navigator bar of window fails to redraw when the window
               is moved across the desktop.

位: 40000

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
    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.

位: 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.
      WIN.INI Line: turbotax=0x80000
      Problem: 1040 tax forms wouldn't print correctly.
如果第三方供应商在他们的应用程序中解决该问题,它们重新可以编译它,以便它需要 Windows 3.1 ; 将不会使用兼容性位。如果第三方 vedor 想他们 Winodws 3.0 和 3.1 下运行的应用程序,然后他们可以更改模块名称,或编辑该 WIN.INI。


文章编号: 82860 - 最后修改: 2000年12月15日 - 修订: 1.0
  • Microsoft Windows 3.1 标准版
  • Microsoft Windows 3.11 标准版
kbmt KB82860 KbMtzh
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 82860
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。



Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from