Q33214 Application Requests to KBDXLAT Are Not Performed Correctly

Q33214 Application Requests to KBDXLAT Are Not Performed Correctly OS/2 Software Development Kit 1.00 1.10 OS/2

Question: I am writing an application that takes input from a terminal in the form of make and break codes as per the IBM AT technical reference manual. I would like to use KBDXLAT to convert these to ASCII characters. Are these make/break codes the same as the scan codes KBDXLAT expects to receive? Is the application responsible for keeping track of the make/break on the SHIFT key and setting the SHIFT key status, or will KBDXLAT handle the SHIFT key status itself? This question also applies to the ALT, CTRL, etc. keys.

Response: The make/break codes in the IBM technical reference manual are indeed what KBDXLAT expects for input. KBDXLAT will also keep track of SHIFT-state keys for you. However, in researching this question, we have discovered a problem in KBDXLAT that is present in both Version 1.00 and Version 1.10 of the Microsoft OS/2SDK. Application requests to KBDXLAT are not being performed independent of the hardware state as they should be; in particular, the XHotKeyShift field in the KBD driver can affect the outcome of application translations, returning inconsistent results to the KBDXLAT caller. This is why KBDXLAT did not appear to be working properly for you. Microsoft has confirmed this to be a problem in Versions 1.00 and 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: buglist1.00 buglist1.10 Updated 88/08/24 05:22 Q42167 OS/2 SDK: Large RAM Disks Used with VDISK.SYS Hang OS/2 Microsoft OS/2 Software Development Kit 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.10 OS/2

Summary:

Microsoft has confirmed that there is a problem with the version of VDISK.SYS included with Versions 1.00, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, and 1.10 of the OS/2 Software Development Kit (SDK). If a very large size for VDISK.SYS is specified, the system will not behave properly. With smaller sizes, the system will not have enough extended memory to operate without swapping to disk, so response time will increase and system performance will decrease. However, with extremely large virtual RAM disks (such as a 3-megabyte RAM disk on a system with 4 megabytes of extended memory), the system will hang unpredictably.

We are researching this problem and will post new information as it becomes available. The workaround is to not use a very large virtual RAM disk with VDISK.SYS, so that the system will have enough extended memory to work properly and efficiently.

Keywords: buglist1.03 buglist1.04 buglist1.05 buglist1.06 buglist1.10

Keywords: SR# G890220-12301 buglist1.00 buglist1.01 buglist1.02 Updated 89/03/08 13:53 Q42126 PM: GpiSetAttrs LINEJOIN_DEFAULT Attribute Problem Microsoft Presentation Manager 1.06 1.10 OS/2

Problem:

I am attempting to set the line join attribute to the value LINEJOIN_DEFAULT with the GpiSetAttrs function. The kernel logs the error INV_LINE_JOIN_ATTR, whether the PS (Presentation Space) is associated with a screen or a printer. The return value from GpiSetAttrs is 0.

Response:

Microsoft has confirmed this to be a problem with the GpiSetAttrs function in the OS/2 SDK (Software Development Kit) Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

You can work around the problem by using the GpiSetLineJoin function instead. The following sample code demonstrates both the problem and workaround:

case WM_PAINT: hPS = WinBeginPaint (hWnd, NULL, (PWRECT)NULL);

{ int Count, Alt; static LONG Join[COUNT] = { LINEJOIN_DEFAULT, LINEJOIN_BEVEL, LINEJOIN_ROUND, LINEJOIN_MITRE, LINEJOIN_DEFAULT };
 * 1) define COUNT 5

static LONG End[COUNT] = { LINEEND_DEFAULT, LINEEND_FLAT, LINEEND_SQUARE, LINEEND_ROUND, LINEEND_DEFAULT };

LINEBUNDLE lineb; POINTL points[4]; POINTL ptl;

ptl.x = 50; ptl.y = 50; points[0].x = 50; points[0].y = 50; points[1].x = 100; points[1].y = 50; points[2].x = 100; points[2].y = 100; points[3].x = 50; points[3].y = 100;

lineb.lGeomWidth = 20L; GpiSetAttrs(hPS,PRIM_LINE,LBB_GEOM_WIDTH,0L,(PBUNDLE)&lineb);

for (Alt = 0; Alt < 2; Alt++) { for (Count = 0; Count < COUNT; Count++) {

if (Alt) { /* This version works. */

GpiSetLineEnd( hPS, End[Count] );

GpiSetLineJoin( hPS, Join[Count] ); } else { /* There are two problem with this code:

1. We get a type conversion warning because LINEBUNDLE defines:

USHORT usType; USHORT usEnd; USHORT usJoin;

instead of long as for the constants and other routines.

2. We get the following:

GRE00147E PMERR_INV_LINE_END_ATTR GRE00148E PMERR_INV_LINE_JOIN_ATTR

whenever we set LINEEND_DEFAULT or LINEJOIN_DEFAULT via GpiSetAttrs. It leaves the attribute unchanged.

lineb.usEnd = End[Count]; GpiSetAttrs(hPS,PRIM_LINE,LBB_END,0L,(PBUNDLE)&lineb);

lineb.usJoin = Join[Count]; GpiSetAttrs(hPS,PRIM_LINE,LBB_JOIN,0L,(PBUNDLE)&lineb); }

GpiBeginPath(hPS,1l);

GpiMove( hPS, &ptl ); GpiPolyLine(hPS, 4L, points);

GpiEndPath(hPS); GpiStrokePath(hPS,1L,0L);

ptl.x += 100; points[0].x += 100; points[1].x += 100; points[2].x += 100; points[3].x += 100; }

ptl.x = 50; points[0].x = 50; points[1].x = 100; points[2].x = 100; points[3].x = 50;

ptl.y += 100; points[0].y += 100; points[1].y += 100; points[2].y += 100; points[3].y += 100; } }

WinEndPaint (hPS); break;

Keywords: SR# G890214-11975 buglist1.06 buglist1.10 Updated 89/03/08 13:53 Q43359 QuickHelp SYS1943: Asterisk (*) Causes GP Violation Microsoft OS/2 Software Development Kit (OS2SDK) 1.06 1.10 OS/2

Summary:

QuickHelp causes a general protection violation when the asterisk character (*) is used within the search topic field. One or more additional characters in the search string are usually required to cause this violation.

Microsoft has confirmed this to be a problem with the QuickHelp included in the OS/2 SDK Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

More Information:

The following sequence of events produces a protection violation with QuickHelp:

1. Open an OS/2 full-screen command prompt screen group.

2. At the command prompt, type the command "QH".

3. When the "Microsoft QuickHelp" screen is displayed, type "s" (search).

4. When "Enter topic to search for:" is displayed, type "*tr".

An error window will be displayed with the session title and the following contents:

SYS1943: A program caused a protection violation.

TRAP 000D AX=0000 BX=0000 CX=0000 DX=04E7 BP=A520 SI=E4E8 DI=1248 DS=0C5F ES=04E7 FLG=2A96 CS=02FF IP=0c35 ss=0087 SP=A518 MSW=FFFD CSLIM=19D0 SSLIM=AB8F DSLIM=009F ESLIM=1A41 CSACC=F8 SSACC=F3 DSACC=F3 ESACC=F3 ERRCD=0000 ERLIM=**** ERACC=**

You can then end the program and the session is returned to normal.

Keywords: buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/04/18 07:05 Q42733 WinCompareString Fails without COUNTRY Line in CONFIG.SYS Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you do not specify a COUNTRY line in your CONFIG.SYS file, the function WinCompareStrings will return an error when called with correct string data.

More Information:

The "Microsoft Operating System/2 User's Guide" states that if you do not place a COUNTRY line in your CONFIG.SYS file, the system will assume United States country information.

Microsoft is researching this problem and will post new information as it becomes available. If you do not have a COUNTRY line in CONFIG.SYS, calls to WinCompareStrings will return WCS_ERROR rather than informing you of the alphabetical order of the two strings.

This error is easily observed in the case of list boxes that have items inserted into them using the LIT_SORTASCENDING or LIT_SORTDESCENDING flag; the list boxes will NOT be sorted if there is not a COUNTRY line in CONFIG.SYS.

The following is a sample COUNTRY line for a United States system:

COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS

Keywords: listbox buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/04/26 05:15 Q43683 PM: DevOpenDC GP Fault Problem Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Summary:

DevOpenDC references more entries out of the DEVOPENDATA structure than are given in the count. This can lead to GP faults, depending on the data in the structure.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

The workaround is to always use a count of six or greater, and fill the unused fields with NULL.

Keywords: SR# G890417-16462 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/04/26 05:15 Q44253 Underscore & Strikeout Don't Appear if CHS_CLIP Is Specified Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Problem:

The underscore and strikeout font styles do not appear when using GpiCharStringPos or GpiCharStringPosAt when CHS_CLIP is specified. The font style gets "clipped."

Response:

Microsoft has confirmed this to be a problem in PM (Presentation Manager) Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

This anomaly occurs because of a problem in the graphics engine while calculating the clip path for the line it draws. Currently, there is no known workaround; however, you might try drawing the text to an off-screen bitmap without the clipping path, then blting this bitmap onto the screen through a clipping path.

Keywords: SR# G890427-17281 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/05/11 04:54 Q44600 OS/2 SDK: GINFOSEG cusecTimerInterval Documented Incorrectly Microsoft OS/2 Software Development Kit (OS2SDK) 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.10 OS/2

Summary:

Microsoft has confirmed that the cusecTimerInterval parameter of the GINFOSEG structure is not documented correctly in the versions of QuickHelp included with the Version 1.06 and Version 1.10 OS/2 SDKs (Software Development Kits), and on Page 343 of the "Microsoft Operating System/2 Programmer's Reference Volume 3 for Version 1.1" manual. The correct documentation should state the following:

cusecTimerInterval Specifies the timer interval (in tenths of milliseconds, units = 0.0001 seconds)

We will post new information when this error has been corrected in the documentation.

Keywords: docerr buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/05/23 04:37 Q44604 OS/2 SDK: Intermittent KBD01.SYS CTRL Key Timing Problem Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Microsoft has confirmed that there is a problem with the KBD01.SYS file included with the Version 1.10 OS/2 SDK (Software Development Kit). There is a rare, intermittent timing problem with KBD01.SYS losing the toggle status of the CTRL key. The symptom occurs when you press the CTRL key simultaneously with another key. When this problem occurs, KBD01.SYS assumes that the CTRL key is being pressed, even though it isn't being pressed. Thus, whatever key you press, a CTRL character is added before it. For example, if you press "A", " ^A" is displayed on the screen. If you press and release just the CTRL key, the problem goes away.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890509-18075 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/05/23 04:37 Q44606 Window Not Positioned Correctly By WinSetWindowPos, SWP_MOVE Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Problem:

Microsoft has confirmed that the following problem occurs in Presentation Manager (PM) Version 1.06 and Version 1.10 with the WinSetWindowPos function when moving a window with a size of (0,0) that does not have a SIZEBORDER. The following steps reproduce this problem:

1. Use WinCreateStdWindow to create a window with a size of (0, 0) at position (0, 0). The window will initially have a size and position of zero if you do not specify the FCF_SHELLPOSITION flag.

2. Use WinSetWindowPos to set the position to (x, y) and specify the SWP_MOVE flag (cx=cy=0).

3. A status of "Success" will be returned, even though the window's position will be moved to (-1,0) rather than to the position specified in the WinSetWindowPos call.

To work around this problem, do one of the following:

1. Size the window to something other than (0,0) before moving it.

2. Do the move and sizing operations in one call to WinSetWindowPos, rather than making multiple calls to WinSetWindowPos and then sizing the window.

This problem only occurs if the window has a border style of FCF_BORDER. Windows with an FCF_SIZEBORDER can be moved, sized, and shown in three steps with no problem.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890508-17937 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/05/23 04:37 Q21323 BASCOM 5.36 ERROR Handling RESUMEs in ELSE of IF..THEN..ELSE Microsoft BASIC Compiler (BASICCOM) 5.35 5.36 MS-DOS

Summary:

If an error occurs in an IF statement, then a RESUME NEXT in the error-trapping routine correctly passes control to the next line of the main program. However, if the error occurs in an IF...THEN...ELSE statement, the RESUME NEXT passes control to the ELSE block.

Microsoft has confirmed this to be a problem in BASIC Compiler Versions 5.35 and 5.36 for MS-DOS, and the Business Basic Compiler Versions 1.00 and 1.10 (buglist1.00, buglist1.10) for MS-DOS.

More Information:

To work around this behavior, you may use the following IF...THEN...ELSE structure shown in line 10:

5 ON ERROR GOTO 100 6 x=-1 ' x is true 10 IF x THEN ERROR 3: GOTO 20: ELSE PRINT "Not executed" 20 PRINT "Line 20." 30 END 100 PRINT "ERROR number=", ERR 110 RESUME NEXT

In this structure, when ERROR N is executed and trapped, the RESUME NEXT returns you to the GOTO 20 statement, which is executed (this avoids execution of the ELSE clause).

This problem is corrected by Microsoft BASIC Compiler Version 6.00 (and later) for MS-DOS and OS/2, and by the QuickBASIC Compiler Versions 1.00 and later for the IBM PC.

The problem does not occur in Microsoft BASIC interpreter Version 5.28 for MS-DOS.

The following code example demonstrates the problem:

5 ON ERROR GOTO 100 6 x=-1 ' x is true 10 IF x THEN ERROR 3 ELSE PRINT "Not supposed to be printed, but is" 20 PRINT "Line 20." 30 END 100 PRINT "ERROR number=", ERR 110 RESUME NEXT

Keywords: B_BBasic buglist5.35 buglist5.36 fixlist6.00

COPYRIGHT Microsoft Corporation, 1989. Updated 89/03/16 21:12 Q45138 Presentation Manager: FCF_MOUSEALIGN Flag Doesn't Work Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The FCF_MOUSEALIGN frame control flag does not work when used in a dialog template. To make the dialog box position itself relative to the mouse (if possible), you need to use the frame style field and specify FS_MOUSEALIGN. Please refer to the following dialog template:

DLGTEMPLATE IDD_INPUT LOADONCALL MOVEABLE DISCARDABLE BEGIN DIALOG "Dialog Box", -1,-56, -11, 185, 76, FS_DLGBORDER | WS_VISIBLE | FS_MOUSEALIGN, FCF_TITLEBAR BEGIN CONTROL "Edit control", IDEDIT, 6, 36, 173, 14, WC_ENTRYFIELD, ES_LEFT | ES_MARGIN | WS_GROUP | WS_TABSTOP | WS_VISIBLE CONTROL "OK", DID_OK, 56, 11, 24, 16, WC_BUTTON, BS_PUSHBUTTON | BS_DEFAULT | WS_GROUP | WS_TABSTOP | WS_VISIBLE CONTROL "Cancel", DID_CANCEL, 101, 11, 30, 16, WC_BUTTON, BS_PUSHBUTTON | WS_GROUP | WS_TABSTOP | WS_VISIBLE END END

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890530-19327 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/06 06:32 Q44705 GpiCreateLogFont pchName Parameter Problem in PM 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you call GpiCreateLogFont more than once with a metafile and the second parameter, pchName, is set to NULL, a GP-fault will occur.

To work around this problem, always pass a value for the pchName parameter by passing a dummy string of eight characters or less.

Microsoft has confirmed this to be a problem with the GpiCreateLogFont function in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890510-18133 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/09 14:09 Q45567 VioCreatePS Can Create Presentation Space Up to 64K Microsoft OS/2 Software Development Kit (OS2SDK) 1.00 1.01 1.02 1.03 1.05 1.06 1.10 OS/2

Question:

What is the largest buffer I can allocate with VioCreatePS? Page 203 of the "Microsoft Operating System/2 Programmer's Reference Volume 3" Version 1.10 manual says that the largest buffer I can allocate is 32K; however, on Page 309 of Charles Petzold's "Programming the OS/2 Presentation Manager" Page 309 it says that the largest buffer I can allocate is 64K.

Response:

Microsoft has confirmed that the "Microsoft Operating System/2 Programmer's Reference Volume 3" Version 1.10 manual is in error. The largest size that you can allocate is 64K. As in Petzold's book, IBM's OS/2 1.10 documentation discusses this properly. Section 11-4 of the "OS/2 Version 1.10 Technical Reference: Programmer's Reference Volume 2" states that the presentation space size that can be calculated with the following must not exceed 64K.

(width * depth * (attributes + 1))

The VioCreatePS documentation in Versions 1.06 and 1.10 of QuickHelp is also in error.

We will post new information when the documentation is updated to correct this error.

Keywords: SR# G890529-19281 docerr buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/10 05:46 Q45571 PM: Logo Display Timed Edit Box Shouldn't Allow Large Value Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

When I choose "Logo Display" in the Control Panel and select "Timed", I can input a value of 80,000. After closing "Logo Display" and reopening it again, this time I can only input a value no larger than 14,464. When I input a "Maximum" time of 32,767, this problem does not occur.

Response:

The "Timed" edit box should not accept values larger than 32,767. Because it does accept certain values over 32,767 it is in error.

Microsoft has confirmed this to be a problem in the Version 1.10 Presentation Manager (PM). We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890602-19592 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/10 05:46 Q45527 Epson Printer Driver Cannot be Used from PM File System Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Question:

I have installed the Epson printer driver. When I try to print a highlighted file from the File System, I get the following message:

PMV1051: Cannot print. Make sure that the default printer is installed and connected correctly. Then retry.

Why does this message appear?

Response:

Microsoft has confirmed this to be a problem with the Epson printer driver included with Presentation Manager (PM) Version 1.10. The Epson printer driver is a Beta release and is still under development. Unfortunately, it cannot be used with the PM File System. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890601-19481 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/09 14:09 Q45595 MouEventReadQue Doesn't Work Correctly in Windowed-Screen Mode Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

I am having a problem using MouEventReadQue. If you run the sample code listed below in full-screen mode, the output is as follows:

MouInfo.fs -> 4 After pressing the left button MouInfo.fs -> 0 After releasing the left button MouInfo.fs -> 16 After pressing the right button MouInfo.fs -> 0 After releasing the right button

Then, if you run the sample code listed below in windowed-screen mode, the output is as follows:

MouInfo.fs -> 4 After pressing the left button MouInfo.fs -> 0 After releasing... MouInfo.fs -> 1 ... the left button MouInfo.fs -> 16 After pressing the right button MouInfo.fs -> 0 After releasing... MouInfo.fs -> 1 ... the right button

Why is an extra mouse event (MouInfo.fs = 1) occurring when either button is released, even though the mouse has not moved at all? The following code can be used to reproduce this problem:


 * TEST.C ********************

/* Compiled as: cl -AL -Lp x.c */


 * 1) define INCL_DOSERRORS
 * 2) define INCL_SUB


 * 1) include

main { HMOU MouseHandle; /* mouse handle */ MOUEVENTINFO MouInfo; /* mouse event packet structure */ unsigned MouReadType = 1; /* 0=do not wait, 1=wait for mouse event */ unsigned moustatus;

/* open the mouse */ MouOpen (0L, &MouseHandle );

MouGetDevStatus (&moustatus, MouseHandle); moustatus = 0x100; MouSetDevStatus (&moustatus, MouseHandle);

do { MouReadEventQue ((PMOUEVENTINFO) &MouInfo, (unsigned far *)&MouReadType, MouseHandle);

printf ("MouInfo.fs --> %d\n", MouInfo.fs); } while (1); } /* end main */
 * END TEST.C ********************

Response:

Microsoft has confirmed this to be a problem with the Version 1.10 OS/2 SDK (Software Development Kit). We are researching this problem and will post new information as it becomes available.

As a temporary workaround, which shouldn't degrade performance very much, you could make an extra call to determine the mouse position. Or, you could check the type of screen group you are in. Then, if you are in a windowed screen group, you could ignore the third parameter after a 4 0, 16 0, or 20 0 sequence of mouse events.

Keywords: SR# G890601-19493 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/13 05:14 Q41351 PM Version 1.06 File System Eight-Character Filename Problem Microsoft Presentation Manager (PRESMAN) 1.06 OS/2

Summary:

Microsoft has confirmed that there is a problem with the File System in Presentation Manager (PM) Versions 1.06 and 1.10. If the base filename is eight characters long and a path is specified, an error associating an extension with the path is returned.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890208-11499 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/15 05:25 Q45720 OS/2 SDK 1.10 QuickHelp Missing KBDKEYINFO Documentation Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Microsoft has confirmed that the documentation in the OS/2 Version 1.10 Software Development Kit (SDK) QuickHelp database for the OS/2 API does not include information on the KBDKEYINFO data structure (the struct called _KBDKEYINFO, a.k.a. the typedef called KBDKEYINFO) used by the KbdCharIn API. This problem has been corrected in the QuickHelp database included with the Microsoft OS/2 Version 1.10 Programmer's Toolkit (PTK). Below is the text for this KBDKEYINFO structure, taken from the Version 1.10 PTK QuickHelp database.

More Information:


 * 1) define INCL_KBD

typedef struct _KBDKEYINFO { /* kbci */ UCHAR chChar; UCHAR chScan; UCHAR fbStatus; UCHAR bNlsShift; USHORT fsState; ULONG time; } KBDKEYINFO;

The KBDKEYINFO structure contains information when a key is pressed.

Parameters Description - chChar Specifies the character derived from translation of the chScan field.

chScan Specifies the scan code received from the keyboard, identifying the key pressed. This scan code may be modified during the translation process.

fbStatus Specifies the state of the retrieved scan code. It can be any combination of the following values:

Value Meaning - SHIFT_KEY_IN SHIFT key is received (valid only in binary mode when shift reporting is turned on).

CONVERSION_REQUEST Conversion requested.

FINAL_CHAR_IN Final character received.

INTERIM_CHAR_IN Interim character received.

bNlsShift Specifies a reserved value; must be zero.

fsState Specifies the state of the SHIFT keys. It can be any combination of the following values:

Value Meaning - RIGHTSHIFT Right SHIFT key down.

LEFTSHIFT Left SHIFT key down.

CONTROL Either CTRL key down.

ALT Either ALT key down.

SCROLLLOCK_ON SCROLL LOCK mode turned on.

NUMLOCK_ON NUM LOCK mode turned on.

CAPSLOCK_ON CAPS LOCK mode turned on.

INSERT_ON INSERT key turned on.

LEFTCONTROL Left CTRL key down.

LEFTALT Left ALT key down.

RIGHTCONTROL Right CTRL key down.

RIGHTALT Right ALT key down.

SCROLLLOCK SCROLL LOCK key down.

NUMLOCK NUM LOCK key down.

CAPSLOCK CAPS LOCK key down.

SYSREQ SYS REQ key down.

time Specifies the time stamp of the keystroke (in milliseconds).

See Also:

KbdCharIn, KbdPeek, KBD_PEEKCHAR

Keywords: SR# G890612-20286 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/16 05:04 Q42749 RC Compiler Doesn't Accept Constant Expression for Some Fields Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Summary:

The resource compiler is inconsistent in its ability to accept constant expressions for IDs. Specifically, "DLGTEMPLATE id" fails to parse the "id" if it was defined in a manner such as "#define id module_base + 1" (after a definition such as "#define module_base 100", of course). The error is that the scanner wants to find a BEGIN or open brace immediately after the "module_base" portion of substitution for "id".

This construct does work for string IDs and is quite useful, because a module can have "local" constants instead of an entire application placing all constants in one header file.

Microsoft has confirmed this to be a problem with Presentation Manager (PM) Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890315-14058 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/16 05:04 Q23646 No Mouse Cursor in OS/2's DOS 3.x Box Microsoft CodeView Debugger (CODEVIEW) 1.00 1.10 1.11 2.00 2.10 MS-DOS

Problem: The mouse cursor is not displayed when running real-mode CodeView under the OS/2 "compatibility box."

Response: The problem exists because the mouse only draws the pointer in video page zero; CodeView uses video page one. To work around this problem, invoke CodeView with the /S switch so screen swapping is used as the method of screen exchange. This forces CodeView to swap in and out of page zero.

Keywords: buglist1.00 buglist1.10 buglist2.00 buglist2.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/03/18 00:48 Q45881 OS/2 SDK: QuickHelp 1.10 Numeric Keypad ENTER Key Problem Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Microsoft has confirmed that the following problem occurs with the version of QuickHelp included with the Version 1.01 OS/2 SDK (Software Development Kit). The numeric keypad ENTER key on a 101 keyboard doesn't always work in QuickHelp. For example, after installing QuickHelp as a TSR (terminate-and-stay-resident) program, do the following:

1. Press ALT+Q.

2. Press "V".

3. Press "I".

4. Select QuickHelp.

5. Press "R".

6. When the ENTER key on the numeric keypad is pressed, there is no response. However, when the ENTER key on the main keyboard is pressed, the appropriate response is returned.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890613-20384 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/24 05:36 Q45961 KBDKEYINFO and KBDINFO Information Incorrect in Windowed Mode Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The KBDKEYINFO and KBDINFO structures contain different values, depending on whether you are running in full-screen or windowed mode. In certain cases, the information contained in these structures can be incorrect in windowed mode.

Microsoft has confirmed this to be a problem in the Version 1.10 OS/2 SDK (Software Development Kit). We are researching this problem and will post new information as it becomes available.

More Information:

The program below illustrates this problem. Before using this program, turn on all the lock keys (SCROLL LOCK, NUM LOCK, and CAPS LOCK). In full-screen mode, the fsState after the first KbdGetStatus is set to "0X70" which is correct, but in windowed mode, it incorrectly returns 0 (zero). The following is a sample program:

/* test program */
 * 1) include


 * 1) define KbdHandle 0

main { KBDKEYINFO kp; /* keyboard packet */ KBDINFO ks; unsigned err;

printf ("Press ESC to quit...\n");

do { ks.cb = sizeof (ks); KbdGetStatus (&ks, KbdHandle); printf ("After KbdGetStatus:\n"); printf ("\t ks.cb (in hex): %X\n", ks.cb); printf ("\t ks.fsMask (in hex): %X\n", ks.fsMask); printf ("\t ks.chTurnAround (in hex): %X\n", ks.chTurnAround); printf ("\t ks.fsInterim (in hex): %X\n", ks.fsInterim); printf ("\t ks.fsState (in hex): %X\n", ks.fsState);

err = KbdCharIn (&kp, IO_WAIT, KbdHandle);

printf ("\nAfter KbdCharIn:\n"); printf ("\t kp.chChar (in hex): %X\n", kp.chChar); printf ("\t kp.chScan (in hex): %X\n", kp.chScan); printf ("\t kp.fbStatus (in hex): %X\n", kp.fbStatus); printf ("\t kp.bNlsShift (in hex): %X\n", kp.bNlsShift); printf ("\t kp.fsState (in hex): %X\n\n", kp.fsState); } while (kp.chChar != 0x1B); } /* end test program */

Keywords: SR# G890614-20458 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/24 05:36 Q45965 Spooler Is Leaving EPSONPTR.DRV Printer Driver File Open Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you try to add (or replace) a printer driver and respond with "yes" to the "There is already a file of this name in this directory. Do you want to overwrite it?" message box, the following message is displayed:

PMV2055: Cannot create C:\OS2\DLL\EPSONPTR.DRV because there are too many files already open. End one or more programs that are running on your system and try again.

This message should not be displayed. The problem is that the spooler has the printer driver file open. If you go into the Control Panel spooler options, disable the spooler, and reboot, it will mask the problem.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890612-20312 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/24 05:36 Q45880 BIOSPARAMETERBLOCK Is Incorrectly Defined in BSEDEV.H Microsoft OS/2 Programmer's Toolkit (OS2PRTK) 1.00 OS/2

Summary:

Microsoft has confirmed that the data format BIOSPARAMETERBLOCK (the structure _BIOSPARAMETERBLOCK, which is also the typedef BIOSPARAMETERBLOCK) is incorrectly defined in the include file BSEDEV.H, included with the Version 1.10 OS/2 SDK (Software Development Kit) and the Version 1.00 OS/2 PTK (Programmer's Tool Kit).

To correct this problem, the field "abReserved" (a 6-byte array) should be inserted in the _BIOSPARAMETERBLOCK structure, between the fields "cLargeSectors" and "cCylinders".

However, the definition for "abReserved" is properly defined in the QuickHelp database, as well as in Volume 3 of the "Microsoft Operating System/2 Programmer's Reference" manual.

More Information:

The following is the INCORRECT definition, taken from BSEDEV.H:

typedef struct _BIOSPARAMETERBLOCK { /* bspblk */ USHORT usBytesPerSector; BYTE bSectorsPerCluster; USHORT usReservedSectors; BYTE cFATs; USHORT cRootEntries; USHORT cSectors; BYTE bMedia; USHORT usSectorsPerFAT; USHORT usSectorsPerTrack; USHORT cHeads; ULONG cHiddenSectors; ULONG cLargeSectors; USHORT cCylinders; BYTE bDeviceType; USHORT fsDeviceAttr; } BIOSPARAMETERBLOCK; typedef BIOSPARAMETERBLOCK FAR *PBIOSPARAMETERBLOCK;

The following is the CORRECT definition, taken from the QuickHelp database and from Volume 3 of the "Microsoft Operating System/2 Programmer's Reference" manual:

typedef struct _BIOSPARAMETERBLOCK { /* bspblk */ USHORT usBytesPerSector; BYTE bSectorsPerCluster; USHORT usReservedSectors; BYTE cFATs; USHORT cRootEntries; USHORT cSectors; BYTE bMedia; USHORT usSectorsPerFAT; USHORT usSectorsPerTrack; USHORT cHeads; ULONG cHiddenSectors; ULONG cLargeSectors; BYTE abReserved[6]; USHORT cCylinders; BYTE bDeviceType; USHORT fsDeviceAttr; } BIOSPARAMETERBLOCK;

The textual description of this field is as follows:

abReserved[6] Specifies six reserved bytes. These must be zero.

An updated version of BSEDEV.H that includes the "abReserved" field can be found in the Software Library in the file BSEDEV11. This file can be found in the Software Library by searching for the keyword BSEDEV11, the Q number of this article, or S12337. BSEDEV11 was archived using the PKware file-compression utility.

Keywords: BSEDEV11.ARC S12337.EXE

Keywords: SR# G890614-20548 buglist1.00 O_OS2SDK buglist1.10 softlib

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/28 05:00 Q46083 MDI Sample Code Problems Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Question:

I have found the following problems when using the MDI example included with the Version 1.10 PM SDK:

1. The keystroke sequence of SHIFT+CTRL+F6 does not work.

2. I've been looking through ARRANGE.C in the MDI sample directory and was trying to figure out how it arranges minimized document windows (icons). It seems to set the x and y fields in the SWP to 0, and lets "someone else" position them. Is this correct? If so, who decides where they go and what algorithm is used? When I have a number of minimized document windows and shrink the main window, the position of the icons does not seem to follow a set pattern.

Response:

1. Microsoft has confirmed that the MDI application currently does not properly handle the F6 derivatives in PM Version 1.10. We are researching this problem and will post new information as it becomes available.

2. As for the ArrageIconPositions code, it sets the x and y positions to 0 (zero), then when the windows are arranged, the attempt is made to put all the icons on top of one another. Currently, this is not allowed, so the same algorithm is used to reposition the icons that you see in action if you manually try to position one icon on top of another. This is currently handled by the system.

Keywords: SR# G890615-20663 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/28 05:00 Q45267 OS/2 1.10 Dualboot Doesn't Work with Compaq's FDISK Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

I am trying to install the Version 1.10 OS/2 SDK (Software Development Kit). I am using a version of FDISK developed by Compaq. After a successful installation of Microsoft OS/2, I tried to install the dualboot capability. The actual installation of the dualboot capability appeared to be successful. However, when I rebooted my computer, I received the following error message:

Can't find file DBMON.COM

Response:

Microsoft has confirmed this to be a problem in OS/2 SDK Version 1.10. This problem was corrected in Version 1.10.

DUALBOOT expects some return codes to be specific values and the direction flag to be reset. If these conditions are not met, the error above is reported.

There is a file in the Software Library named DUALBOOT that contains a new version of DUALBOOT.EXE that corrects this problem. DUALBOOT can be found in the Software/Data Library by searching on the keyword DUALBOOT, the Q number of this article, or S12335. DUALBOOT was archived using the PKware file-compression utility.

Keywords: DUALBOOT.ARC S12335.EXE

Keywords: SR# G890522-18798 softlib buglist1.10 fixlist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/28 05:00 Q46255 OS/2 SDK 1.10 PM Line Drawing Character Problem Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The ASCII line drawing characters defined to be 179 and 212 do not line up correctly in a Presentation Manager (PM) windowed command processor. The 212 character's vertical line is offset 1 pixel too far to the left.

Microsoft has confirmed this to be a problem in Version 1.10 of the OS/2 SDK (Software Development Kit). We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890623-21256 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/01 07:03 Q46251 Difference of Output When Using OS/2 Version 1.10 MKMSGF.EXE Microsoft OS/2 Programmer's Toolkit (OS2PRTK) 1.10 OS/2

Summary:

Assume the following message source files FOO.TXT and BAR.TXT:

FOO FOO0100E: text for msg 0100. FOO0101E: text for msg 0101.

BAR BAR0000E: text for msg 0000. BAR0001E: text for msg 0001.

Please note that the FOO source file has messages starting at 0100, while the BAR source file has messages starting at 0000. The message files can be created with the OS/2 MKMSGF.EXE utility to generate .MSG files from these input .TXT files using the following commands:

MKMSGF FOO.TXT FOO.MSG MKMSGF BAR.TXT BAR.MSG

This will result in the message files FOO.MSG and BAR.MSG. There is a difference in the output of these messages using different versions of the OS/2 MKMSGF.EXE utility.

Using the OS/2 1.00 Programmer's Toolkit MKMSGF.EXE utility to build the message files, and using the OS/2 HELP utility to display the following message text will result in the output of the proper message text:

HELPMSG FOO0100 HELPMSG FOO0101

HELPMSG BAR0000 HELPMSG BAR0001

However, when using the OS/2 1.10 Programmer's Toolkit MKMSGF.EXE to build the message files, the output using the above HELPMSG commands will result in proper output for the FOO messages, but the BAR messages will not work properly. More specifically, the BAR messages will not be found when they are numbered starting at 0000. In addition, an incorrect side effect is that when asking for message FOO0000 (not a valid FOO message number), the message FOO0100 is displayed. Therefore, until this problem is corrected, you should not start numbering messages at 0000. You should instead start numbering messages at 0001 or 0100.

Microsoft has confirmed this to be a problem with the MKMSGF.EXE utility included with the Microsoft OS/2 PTK (Programmer's Tool Kit) Version 1.10. We are researching this problem and will post new information as it becomes available. A current work around is to use the MKMSGF.EXE utility included with the Microsoft OS/2 Version 1.00 Programmer's Tool Kit. The OS/2 Version 1.10 version of the MKMSGF.EXE utility displays a version of "1.5", while the OS/2 Version 1.00 version of MKMSGF.EXE does not display a version number.

Keywords: SR# G890609-20226 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/01 07:03 Q46417 Sixth Parameter Is Not Documented for DevPostDeviceModes Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Summary:

The sixth parameter of the function DevPostDeviceModes is not documented on Page 21 of the "Microsoft Operating System/2 Programmer's Reference" Version 1.10 or in Versions 1.06 and 1.10 of QuickHelp.

The sixth parameter controls the use of OS2.INI and the DRIVDATA block. Please see the overview on printing in QuickHelp for more information on this topic. Specifically, refer to the information right before the section titled "Using a Thread to Print."

Keywords: SR# G890627-21439 docerr buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/08 06:41 Q45821 OS/2 SDK: QuickHelp POLYLINE Sample Code Is Incorrect Microsoft OS/2 Software Development Kit (OS2SDK) 1.06 1.10 OS/2

Summary:

Microsoft has confirmed that the following problems exist in the versions of QuickHelp included with the Version 1.06 and Version 1.10 OS/2 SDK (Software Development Kit); we are researching these problems and will post new information as it becomes available. The POLYLINE.C sample code is incorrect and needs the following changes made to it:

1. The definitions for CLR_PALE* should be replaced with CLR_DARK* (error).

2. DosCreateThread should be prototyped properly because it is producing a warning message.

3. The Thread function should be prototyped properly because it is producing a warning message.

4. STRING.H should be #included in POLYLINE.C, because a warning message is being displayed.

Another problem related to the POLYLINE example in QuickHelp is that if you select any of the source files (POLYLINE.C, POLYLINE.H, POLYLINE.RC, or POLYLINE.DEF) other than the makefile (POLYLINE.MAK) and then use the Reference menu selection to try to select the makefile, QuickHelp will incorrectly attempt to select "POLYLINE" with no .MAK extension. This results in an error of "polyline topic not found."

The POLYLINE sample source code is still contained in the versions of QuickHelp included with Versions 1.06 and 1.10 of the OS/2 SDK, but this source code has been removed from the version of QuickHelp included with the OS/2 Version 1.10 PTK (Programmer's Tool Kit).

Keywords: SR# G890608-20092 buglist1.06 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/06/24 05:36 Q46776 Submenu Display Problem in PM Version 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you have a submenu that goes partially off the screen, it adjusts itself where it abuts the screen border. However, if that submenu has a submenu, it is not displayed and the program gets a message that the first menu item of the menu that is off the screen has been selected.

Microsoft has confirmed this to be a problem in Version 1.10 of the Presentation Manager (PM). We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890620-20951 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/12 04:28 Q46778 IBM4201 Hardcopy Form Information Incorrectly Returned Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When DevQueryHardcopyCaps is used with the IBM4201 driver, the following form information is returned:

szFormname = "STANDARD" cx = 8 cy = 11 xLeftClip = 0 yBottomClip = 0 xRightClip = 8 yTopClip = 11 xPels = 960 yPels = 792 flAttributes = 1

cx, cy, xLeftClip, yBottomClip, xRightClip and yTopClip are incorrectly expressed in inches rather than millimeters. Depending on which paper type is the current form, you will get the cx, cy, etc., either in millimeters or inches.

Microsoft has confirmed this to be a problem in Version 1.10 of the Presentation Manager (PM). We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890626-21340 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/12 04:28 Q46779 Epson Printer Driver xRightClip and yTopClip Values Set to 0 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When you query the device forms for the Epson printer driver, the xRightClip and yTopClip values are incorrectly set to 0.

Microsoft has confirmed this to be a problem with the Epson printer driver included with Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890626-21351 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/12 04:28 Q46777 WinSetWindowPos SWP_MAXIMIZE Documentation Error Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

When manipulating windows in an MDI (multiple document interface) setting, we observed the following problem when using WinSetWindowPos. If a window is maximized, and on calls to WinSetWindowPos with the handle to that window of

cX = 0, cY = 0, cWidth = 100, cHeight = 100, SWP_SIZE+SWP_SHOW+SWP_MOVE+SWP_MAXIMIZE

the window appears at the size of 100 x 100 with a "down arrow" icon, and an "up-down arrow" icon instead of the expected full size. Clicking on the "up-down arrow" icon does nothing to the size of the window, but does change the icon to the "up arrow." Clicking on the "up arrow" icon maximizes the window.

If the window is not maximized before the call, the call works as expected and maximizes the window and sets the size parameters.

Response:

Part of the documentation concerning WinSetWindowPos is incorrect. On Page 367 of the "Microsoft Operating System/2 Programmer's Reference" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit), the documentation states that calling the function with SWP_MAXIMIZE with an already maximized window will cause the window to be restored. This is not correct. The SWP_MAXIMIZE option is ignored. Since you also use SWP_SIZE and SWP_MOVE, the window was repositioned and sized, but the maximized state was still in effect. You should check first to see if a window is maximized before trying to maximize. If what you really want to accomplish is to set the restore size and position and restore, you need to call WinSetWindowPos with the following syntax:

WinSetWindowPos(hwndHelloFrame,0,0,0,100,100,SWP_SIZE|SWP_MOVE
 * SWP_RESTORE);

Keywords: SR# G890621-21112 docerr o_os2sdk buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/15 08:52 Q46874 C Compiler String Continuation Convention Not Used in RC Microsoft Presentation Manager (PRESMAN) 1.03 1.05 1.06 1.10 OS/2

Summary:

The string continuation convention used in the Microsoft C Compiler is not used. For example, the following code causes an error (looking for an ID in a continuation line).

STRINGTABLE { 1, "Beginning of String" " Continuation of String" }

Microsoft has confirmed this to be a problem with the resource compiler included with PM (Presentation Manager) Versions 1.03, 1.05, 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: buglist1.10

Keywords: SR# G890702-21821 buglist1.03 buglist1.05 buglist1.06

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/15 08:52 Q46875 Mnemonic Characters Don't Work in Static Controls in Ver. 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

In Presentation Manager (PM) Version 1.10, you are not able to put a mnemonic character (~) in the text of the static control, so that when that key is pressed, the focus will move to the next control in the dialog box.

Microsoft has confirmed this to be a problem with mnemonics for static controls in Version 1.10. We are researching this problem and will post new information as it becomes available.

A workaround to this problem is to subclass the static control, and process the WM_MATCHMNEMONIC message to see if the mnemonic key pressed is the correct key for that control.

Keywords: SR# G890703-21855 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/15 08:52 Q46877 GP Fault Occurs When Posting from a Non-Message Queue Thread Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you are posting from a non-message queue thread to a message queue thread and the system is fairly heavily loaded, you may experience GP faults when posting messages. To work around this problem in OS/2 Version 1.10, you need to give the posting thread a message queue by calling WinInitialize and WinCreateMsgQueue before calling WinPostMessage. You need to also call WinDestroyMsgQueue and WinTerminate after you're done with WinPostMessage.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890705-21957 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/15 08:52 Q46901 WinQueryTaskSizePos No Longer Available Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit) for SWP lists WinQueryTaskSizePos as a reference. However, when you select WinQueryTaskSizePos from the Reference menu, you get a "topic not found" message.

WinQueryTaskSizePos was a function in a previous version of the Presentation Manager (PM) API, and has since been removed.

We will post new information when this error has been corrected in QuickHelp.

Keywords: SR# G890705-21964 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/19 04:29 Q47108 Per-Process File Handle Limit Increased in OS/2 SDK 1.10 Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Question:

What is the maximum number of file handles allowed, and how is that maximum reached? On page 142 of the "Microsoft Operating System/2 Programmer's Reference Volume 3 for Version 1.1," it states that DosSetMaxFH limits the maximum number of file handles to 255 that can be provided to the calling process. Is this correct for OS/2 Version 1.10?

Response:

No; this is a documentation error in both the "Microsoft Operating System/2 Programmer's Reference Volume 3 for Version 1.1" manual, and in the version of QuickHelp included with the OS/2 SDK (Software Development Kit) Version 1.10. This limit was correct for OS/2 Version 1.00, but it is not correct for OS/2 Version 1.10. The limit of file handles in OS/2 Version 1.10 is 32K of file handles per system, with a per-process limit of 32K. Please note that since the per-system limit is the same as the per-process limit, and this is a multi-process operating system, it is doubtful that a single process will max out on all of the file handles, since some of them will be in use by other processes. The number of file handles per process by default is 20, with three file handles being automatically allocated to stdin, stdout, and stderr. For a process to open more than 20 file handles, the application must call the OS/2 API DosSetMaxFH.

In contrast, the limit of file handles in MS-DOS Versions 3.30 and later is 64K per process, but with a system limit of 255 (the maximum value of the unsigned byte of FILES=nnn). Thus, while a single process can open 64K files, there are only 255 for the whole system to work with, so that the system can only have 255 unique files open at once but a process can open 64K duplicate handles to the same file. When SHARE is not loaded, the number of FCBs is limited only by the user's memory, which is itself under the 640K system limit. The number of file handles per process by default is 20, with five file handles being allocated automatically to stdin, stdout, stderr, stdaux, and stdprn. For a process to open more than 20 file handles, the application must call the MS-DOS service Interrupt 21H, AH=67H, the MS-DOS equivalent to the OS/2 DosSetMaxFH function call.

We will post new information when the documentation has been updated to correct this error.

Keywords: SR# G890712-22393 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/25 04:28 Q46833 WinSetPointerPos and WM_MOUSEMOVE Cursor Positioning Problem Microsoft Presentation Manager (PRESMAN) 1.06 1.10 OS/2

Problem:

The SPY.EXE program snaps the cursor to guides on the page when it gets within about 3 pixels of where the guide is drawn. If the cursor is on top of the guide and you move it 1 pixel off, a WM_MOUSEMOVE is generated, which causes the cursor to be pushed back [WinSetPointerPos]. This action also generates a WM_MOUSEMOVE message. If you move the cursor off 1 pixel again (i.e., back to the same pixel it was set from), you don't always get a WM_MOUSEMOVE generated.

It should never be possible to position the cursor 1 pixel from a guide when SNAPTO is in effect but there doesn't seem to be a way around it, short of continually polling the pointer position.

Response:

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Versions 1.06 and 1.10. We are researching this problem and will post new information as it becomes available.

Another related problem with mouse pointer positioning and WM_MOUSEMOVE messages was also found. This problem can be demonstrated by using the sample program included in MOVEBUG in the Software/Data Library. MOVEBUG can be found in the Software/Data Library by searching on the keyword MOVEBUG, the Q number of this article, or S12360. MOVEBUG was archived with the PKware file-compression utility.

The steps needed to reproduce the problem with MOVEBUG are described below.

When you click, the application tries to move the pointer to the center of the window. If you do the following steps, the pointer won't be properly set to the center of the window (if HIDE_BUG is not defined):

1. Click to move to the center.

2. Move 1 pixel off of the center.

3. Click to move back on.

4. Move 1 pixel off of the center (fails to generate a WM_MOUSEMOVE message).

5. Click to move back on (fails to put the pointer back on center).

Defining HIDE_BUG masks the problem. The application gives the following signals:

1. Click off center gives a high beep.

2. Click on center gives a low beep.

3. WM_MOUSEMOVE off center inverts a small rectangle.

4. WM_MOUSEMOVE on center inverts a large rectangle.

A workaround has not yet been found to resolve either of these problems, but you might consider using one of the following approaches:

1. Poll the mouse, as suggested.

2. Hide the pointer, and draw your own pointer without calling WinSetPointerPos.

3. Snap on a click instead of the move (this is a problem with the interface).

We are researching these problems and will post new information as it becomes available.

Keywords: MOVEBUG.ARC S12360.EXE

Keywords: SR# G890614-20543 buglist1.06 buglist1.10 softlib

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/25 04:28 Q47055 GpiQueryCharStringPosAt Needs an Extra POINTL Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The GpiQueryCharStringPosAt function needs a POINTL array that is one element longer than the string that is being sized. This is contrary to what is stated in the documentation.

For example, if you use the sample code found in QuickHelp, a 11 character string, a character count of 11, and a pointer to an 11 element POINTL array are passed. If you increase the size of the POINTL array to 12, the code works correctly and fills in the 12th POINTL element (while still passing in a character count of 11).

Response:

Microsoft has confirmed that this is a documentation error on Page 115 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10 and in the QuickHelp included with the OS/2 SDK (Software Development Kit) Version 1.10.

GpiQueryCharStringPosAt returns POINTLs for each character in the array, plus one for the concatenation point at the end. The concatenation point is also known as the current position. Therefore, you should reserve one more element in the array that will hold the POINTLs, than the number of characters in the string being queried.

We will post new information when this error has been corrected in the documentation.

Keywords: SR# G890714-22544 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/25 04:28 Q47171 QuickHelp -t Option Broken in Versions 1.06 and 1.10 Microsoft OS/2 Software Development Kit (OS2SDK) 1.06 1.10 OS/2

Summary:

When you specify the -t option, QuickHelp does not display its window. Instead, it searches for the topic specified on the command line, pastes the topic to the current paste file, and then exits.

You should be able to copy either the entire topic of an OS/2 function into the paste file, or just the syntax or example sections of that topic, depending on what you specify on the command line. For example, if you type the following, QuickHelp should find and copy the entire DosBeep topic and paste it into the current paste file:

qh DosBeep -t all

Similarly, if you type

qh DosBeep -t syntax

or

qh DosBeep -t example

QuickHelp should find and copy just the syntax or example section of the DosBeep topic, and then paste it into the current paste file.

Microsoft has confirmed that in Version 1.39 of QuickHelp that was released with Version 1.10 of the OS/2 SDK (Software Development Kit), and in Version 1.40 of QuickHelp that was released with Version 1.10 of the OS/2 Presentation Manager Toolkit, the -t switch does not copy and paste just the syntax or example section of a topic. If you specify "-t syntax" or "-t example" at the command line, QuickHelp responds with a message box that contains either "Syntax section not found in " or "Example section not found in ." We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890718-22743 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/26 04:57 Q47173 Format Incorrectly Works with SUBSTituted Drives Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

If you execute "FORMAT A:", after executing "SUBST A: D:\" in the 3.x box, Drive D is still formatted. Drive D is an extended MS-DOS partition on a hard disk. The FORMAT command should reject the D drive, instead of going ahead with the format.

This is not appropriate behavior for the FORMAT command, it should not be used with drives involved in a substitution (SUBST).

Microsoft has confirmed that this problem occurs in the OS/2 SDK (Software Development Kit) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890719-22837 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/26 04:57 Q47177 Standard Windowed Application Icon Incorrectly Used in PM 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you start a non-PM program with DosStartSession and specify the following information in the STARTDATA structure, the Icon that is initially displayed is the VIO Icon instead of the Icon that you specified in the "IconFile" parameter of the STARTDATA structure:

1. Include an Icon filename in the "IconFile" parameter.

2. Set the "PgmControl" to 4 (minimized on startup).

If the window is opened and re-iconized, the icon will be correct.

Microsoft has confirmed that this problem exists in Version 1.10 of PM.

One possible workaround to this problem is to not start non-PM applications as icons; start them as medium-sized windows, so you can minimize them if you wish.

Keywords: SR# G890717-22727 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/07/26 04:57 Q47242 EXTPROC Incorrectly Duplicates Script Extension to Shell Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

There is a problem with the OS/2 Version 1.10 EXTPROC command, which is an internal command of CMD.EXE.

Given a simplified external command processor (an example of a program that EXTPROC would be used with) called YASH.EXE, based on the following file named YASH.C

/* yash.exe -- yet another shell (example of an extproc) */


 * 1) include
 * 2) include

int main(int argc, char *argv[]);

int main(int argc, char *argv[]) { printf("yash: processing file \"%s\"\n" argv[1]); }

and given a .CMD file called TEST.CMD

extproc yash.exe this is a line of try.cmd

when at a CMD.EXE prompt, typing the command of

TEST

should result in CMD.EXE's EXTPROC reading the file, realizing that it is a YASH script and not a CMD script, and then trying to internally invoke TEST.CMD with the following command:

YASH TEST.CMD

The problem in OS/2 Version 1.10 is that the file extension is incorrectly duplicated, so that the external command interpreter incorrectly receives a script file name of "TEST.CMD.CMD" rather than "TEST.CMD".

Microsoft has confirmed this to be a problem with EXTPROC in OS/2 Version 1.10. We are researching this problem and will post new information as it becomes available.

One workaround for ISVs writing command processors is to perform a version check. If the OS/2 version is 1.10, remove the extra extension from the supplied .CMD file name.

For more information on the EXTPROC command, please refer to the "Microsoft Operating System/2 Version 1.10 User's Guide and Desktop Reference."

Keywords: SR #G890714-22545 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/10 04:54 Q47106 PS/2 Profiler in OS/2 SDK 1.10 Only Works with PMSHELL Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Under the PS/2 kernel running the pinfo (profiler) utility with a dumpfile, will show the name of PMSHELL, (or PMEXEC), instead of the test application name. When running pinfo with a dumpfile and a map file, the error "Ignored: No segments for module XXX" occurs. Running the same series of commands on the AT profile kernel works correctly.

Microsoft has confirmed this to be a problem with the Profiler included with the OS/2 SDK (Software Development Kit) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890713-22456 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/11 05:52 Q47243 QuickHelp Incorrectly Lists WM_FOCUSCHAIN Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

WM_FOCUSCHAIN is listed as a reference by WM_QUERYFOCUSCHAIN in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit), even though it no longer exists.

Microsoft has confirmed that this documentation error exists in QuickHelp. We will post new information once QuickHelp has been updated to correct this error.

Keywords: SR# G890705-21964 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/12 05:42 Q47470 Cannot Select Lower Item If Menu Option Has No Submenu Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When using the arrow keys to select a menu, if you press the DOWN ARROW key on a menu option that has no submenu, then when you press the UP or DOWN ARROW keys, they will rotate through the top-level menu items without descending into any of them. Then, to descend into a submenu, you need to press the LEFT or RIGHT ARROW keys, or press ESCAPE and start over.

Microsoft has confirmed this to be a problem in PM Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890723-23141 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/12 05:42 Q47632 Dialog Box Editor Change Symbol Option Doesn't Work in PM 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

In the Dialog Box Editor, the "change symbol" feature does not work. When you are inside of the View Include dialog box and you select a symbol with the list box, the symbol and its value are placed in two different edit fields. If you then change the value edit field and press the Change push button, the value does not change. Instead, the old value is rewritten into the edit field that you have edited.

Microsoft has confirmed this to be a problem in the release of the Dialog Box Editor included with Presentation Manager (PM) Version 1.10. The problem is in the "View Dialog..." code, which does not provide for the case in which the user wants to change only the value associated with the symbol, and not the symbol itself. We are researching this problem and will post new information as it becomes available.

You can work around this problem by deleting and re-adding the symbol, or by changing the symbol slightly -- at which point the Dialog Box Editor will decide to check what is in the ID value edit box.

Keywords: SR# G890726-23429 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/12 05:42 Q47668 CTRL+ESC System Menu Option Is Grayed Inappropriately Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When you bring up a Presentation Manager (PM) dialog box with a system menu, the CTRL+ESC option is grayed even though it is still possible to use the CTRL+ESC key combination to bring the Task Manager to the foreground.

Microsoft has confirmed this to be a problem in Version 1.10 of the PM. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890723-23140 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/12 05:42 Q47673 Left and Right Arrow Keys Do Not Work Correctly in File System Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed the following to be a problem in Version 1.10 of the Presentation Manager (PM).

1. Click on the File System icon to display the menu.

2. When you have the menu displayed, if you press the left or right arrow key, the menu is moved in the center of the screen, and if you continue with clicking on another icon, the system fails in a Trap.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890731-23650 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/12 05:42 Q47176 MDI 1.10 Sample Code Returns Error to PM Debugging Screen Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

When I am running the MDI sample program that is included in the Version 1.10 OS/2 Software Development Kit (SDK), I receive a DDI00123E PMERR_INV_HBITMAP error message in the Presentation Manager (PM) debugging screen.

Response:

Microsoft has confirmed this to be a problem in PM Version 1.10. There is a revised version of MDI in the Software/Data Library that does not emit this error to the debugging screen. To correct this problem, it was necessary to take out the menu setup information from the MDIINIT code and put it in the WM_CREATE processing for the main window. The problem was a timing issue.

MDI can be found in the Software/Data Library by searching on the keyword MDI, the Q number of this article, or S10064. MDI was archived using the PKware file-compression utility.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890713-22460 buglist1.10 softlib MDI.ARC S10064.EXE

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/19 06:00 Q47911 MDI.EXE Sample Program Problem in Version 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

I have noticed the two following problems with the MDI.EXE program included with the Version 1.10 OS/2 SDK (Software Development Kit) in the \SAMPLES subdirectory:

1. The system hangs when you do the following:

a. Start MDI.EXE.

b. Minimize the document window "Untitled1".

c. Click [or press ALT+- (MINUS)] to raise the document system menu.

d. Press either the RIGHT ARROW or LEFT ARROW key, so that you raise the "File" or application system menu.

e. Click in the background of the application window. At this point, the system hangs.

2. When a document window is minimized, you can go from the document system menu to the application menus using the arrow keys. However, once you are in the application menus, you can't get back to a document system menu.

Response:

Microsoft has confirmed that the behavior you described in item 1 listed above is a problem with Presentation Manager (PM) Version 1.10, resulting from an inconsistency that develops in the menu manager.

The problem is that the menu manager normally does not enumerate menus for a minimized "owner" window -- usually it does this only for a frame window. Therefore, when you click icons at the bottom of the PM screen, only the system menu is active. However, in the MDI code, the subclass procedure for the document frame windows (in MDIDOC.C) specifically catches the WM_NEXTMENU message passed to it by the menu manager, and returns either the system menu for the main window (LEFT ARROW key) or the action bar menu handle (RIGHT ARROW key). This has the effect of "binding" the document's system menu to the rest of the menus in the system.

The menu manager seems to stumble over the fact that the document window is minimized. An inconsistency results that eventually causes a crash if a focus change occurs.

We are researching this problem and will post new information as it becomes available. In the meantime, you can work around this problem in PM Version 1.10 by adding some code to the WM_NEXTMENU case in the document frame subclass: check to see if the window is minimized, and return NULL if it is. This will have the effect of not letting you use the keyboard to "scroll" through the application's action bar and system menu from a document system menu when that document is minimized.

The behavior you noticed in item 2 above (not being able to get back to the iconized window's system menu) is by design. You can get back to the child's system menu by pressing ALT+- (MINUS).

Keywords: SR# G890802-23884 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/19 06:00 Q47923 WinChangeProgram Documentation Error Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the reference to WinChangeProgram on Page 513 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 Software Development Kit (SDK) is in error. WinChangeProgram is not supported in Presentation Manager (PM) Version 1.10.

This feature is under review and will be considered for inclusion in a future release of PM. We are researching this problem and will post new information as it becomes available.

There is no documented or supported way to have this functionality in PM Version 1.10. If a program is "Add"ed, it is gone (i.e., beyond the programmer's reach). If the same title is used to add the program again, an error of "duplicate title" results. Since there is no way to delete an entry, the only workaround is to have the user delete or change the entry manually via the Program Starter.

Keywords: SR# G890807-24246 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/19 06:00 Q48028 CMD.EXE GP Faults If First Character of File Is Binary Byte 26 Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

I have a file in the default directory that has a binary byte 26 as its first character. If I issue either of the following commands in a batch file, CMD.EXE will GP fault when it encounters this file:

copy *.* nul

or the equivalent command:

copy. nul

Response:

Microsoft has confirmed that this problem occurs in Version 1.10. It only occurs when using the "*.*" or "." copy syntax. We are researching this problem and will post new information as it becomes available.

In the meantime, substituting the following lines for the "copy *.* nul" command in your batch file will give you the same results:

del foo for %%f in (*.*) do echo %%f >> foo

Keywords: SR# G890809-24455 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/22 05:22 Q48029 Multiple Sessions Printing to LPT1: Is Incorrectly Allowed Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

We are designing an application with multiple session parallel/serial print capability. When attempting to open a serial output port (e.g. COM1:) using DosOpen with the following characteristics, we receive the expected failure on a concurrent second session invocation:

deny all write only fail on creation open on existence

However, when we attempt to open a parallel port (e.g. LPT1:), access is granted to BOTH sessions with catastrophic results. This was tested with the print spooler deactivated.

Response:

Microsoft has confirmed this to be a problem with the printer device driver included with Version 1.10. We are researching this problem and will post new information as it becomes available.

In the meantime, use one of the following workarounds:

1. Create a system semaphore that will alert your applications when they can have access to the printer (this only works for your application).

2. Always use the spooler.

Keywords: SR# G890810-24623 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/22 05:22 Q48096 OS/2 Does Not Interpret ALT Key Correctly in 3.x Box Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

My application uses KbdSetStatus to turn on raw mode and shift reporting, and then calls KbdCharIn with IO_WAIT. When I perform the following steps, the ALT key is not interpreted correctly:

1. Press ALT+ESC to switch to the DOS session.

2. Release the ALT key.

3. Press ALT+ESC to get to the session running my application.

4. Without releasing the ALT key, press F1.

KbdCharIn sends the scan code/character code for F1, not ALT+F1. The correct scan code/character code (i.e., ALT+F1) is returned if I don't release the ALT key between the time I start switching sessions to when I get back to the original session and press F1 in addition to the ALT key.

Response:

Microsoft has confirmed this to be a problem in Version 1.10. This appears to be a minor problem with the 3.x box, where the system remembers an ALT key release, but not an ALT key press. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890811-24697 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/23 05:00 Q47916 Window Incorrectly Made System Modal If Bit 6 Style Flag Set Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

In Version 1.10 of the Presentation Manager (PM), when a window is created with bit 0x40 set (bit 6 on) in the style flags field of WinCreateWindow, the window is incorrectly made system modal.

Microsoft has confirmed this to be a problem in PM Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890804-24140 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/23 05:00 Q47917 WinMessageBox Causes Thread to Be Bumped Up to Input Priority Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Question:

We have a thread that has a message queue, but we do not want the thread to run at Presentation Manager (PM) input priority. We usually do not create windows in this thread and everything works correctly. However, we occasionally create a window via WinMessageBox; this causes the thread to get bumped up to input priority, and it never gets set back down again.

Is there an API that will allow me to set the thread's priority back to normal? DosSetPrty has no effect on the PM input priority.

Response:

Microsoft has confirmed this to be a problem in PM Version 1.10. We are researching this problem and will post new information as it becomes available.

In the meantime, a workaround to this problem is not to call WinMessageBox from the thread. Instead, use a semaphore, message, or other signal and have a thread that is already at input priority put up the message box.

Keywords: SR# G890809-24443 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/23 05:00 Q47922 DLGBOX.EXE Returns Warning Error When Code Page Is Installed Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

We are using the United Kingdom code page and have the found the following problem with DLGBOX.EXE:

1. Create the following FOO.RC file:


 * 1) include

DLGTEMPLATE "", 256 { DIALOG "",256,25,44,189,72,WS_VISIBLE { } }

2. Execute "rc -r foo.rc" to produce FOO.RES.

3. Run DLGBOX.EXE and open FOO.RES. The following error message is returned:

WARNING: Dialog template codepage is different from current system code page

Response:

Microsoft has confirmed this to be a problem in the version of DLGBOX.EXE included with PM Version 1.10.

You can determine from your output whether or not you have selected a case that is broken. DLGBOX.EXE uses the code page for things such as WinUpper, WinPrevChar, and WinNextChar. As long as you only use characters below 128 and don't use double-byte characters, it should work properly. If you need to use characters with accent marks, try using only uppercase characters. If you are still experiencing problems, we suggest that you do the following:

1. Use DLGBOX.EXE to rough out the dialog.

2. Copy the .DLG file into the .RC file.

3. Finish up the dialog by hand with a text editor.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890803-23982 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/23 05:00 Q47940 WinReallocMem Returns Incorrect Value When npMem Is Invalid Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The WinReallocMem function returns an unexpected result, instead of a NULL value, when the value of npMem passed to the function is not a valid value returned by either the WinAllocMem or the WinReallocMem function.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. The heap manager is using one function to validate a pointer into a heap and a block size simultaneously. The validation code considers the case of a null pointer to mean that the caller wants only the size validated (i.e., whether it is too big or too small to be in the heap at all). The WinReallocMem pseudo-code looks like the following:

ValidateHeapHandle if ok continue ValidatePointer (new size, (pointer passed is 0)) if ok continue ValidatePointer (old size, (your pointer, which is 0)) if ok continue....

The code never specifically checks "if your pointer == 0, return 0", or for that matter, if the "old size == 0, return 0".

The code then allocates a new block of "new size", copies the old block to the new block, which means that a bogus pointer (rounded up to 0004) and a size of 0004 (again rounded) is used. It then copies those two words into the new block and adds the bogus pointer to a non-dedicated free list.

We recommend that you do not use the bogus pointer that is returned. It may have left the heap in an inconsistent state. The workaround to this problem is to test for a null pointer yourself before calling WinReallocMem*.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890808-24293 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/23 05:00 Q48323 Change Directory Drive Problem in Version 1.10 Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The command "CD DIR_NAME D:" (where "DIR_NAME" is the name of a directory and "D:" designates a drive letter) incorrectly causes the command processor to access the designated drive. This behavior occurs under both the real mode and the protected mode command processors.

Microsoft has confirmed this to be a problem in Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890822-25457 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48268 International Keyboard Settings Do Not Work in PM Applications Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When the KEYB command is used, it affects the keyboard translation on full-screen and windowed command applications, but not in Presentation Manager (PM) applications. Thus, after KEYB GR (German) is issued, the command line correctly swaps the y and z keys and activates the umlaut characters of ";'][". However, in PM dialogs, these characters revert back to the standard keyboard.

Microsoft has confirmed this to be a problem in PM Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890809-24486 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/25 05:05 Q48269 Bad Update Rectangle Is Set Incorrectly by WinBeginPaint Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The code that creates the "visible region" for the presentation space (PS) provided to WinBeginPaint seems to do something similar to the following:

1. The device context (DC) associated with the PS is owned by a window. This means that it is a valid DC.

2. The update region of the window that is passed indicates that the entire window is invalid.

3. The code makes the entire visible region of the PS the update region.

There is never any check to see that the DC is actually owned by the same window as that which is passed via WinBeginPaint. Thus, if hPS [associated with hDC = WinOpenWindowDC(hwndParent)] is passed to WinBeginPaint(hwndChild, hPS, &rcl), and if the entire child window (hwnd2) is invalid, a bad update rectangle (the entire visible region of the PS) is set.

Microsoft has confirmed these to be problems in Version 1.10. We are researching these problems and will post new information as it becomes available.

Some possible workarounds are as follows:

1. If you need a GPIT_NORMAL PS, you can simply not pass the "private" PS to WinBeginPaint. You can use the update rectangle returned as correlation information for your "private" PS - i.e., do your own clipping.

2. You could create these PSs on a child-by-child basis. If the children own the window DCs, the problem goes away. This is probably the "cleanest" solution.

3. You could perform an intersection on the update rectangle returned from WinBeginPaint and the child's rectangle (in the main window coordinates) and use that as the update rectangle, once again performing your own clipping if necessary.

More Information:

The example included below demonstrates these problems. hwnd[child] was created with the following code:

hwnd[child] = WinCreateWindow ( hWnd //Parent window handle, szTitleName , NULL //Title bar text , WS_VISIBLE //Style client window , (SHORT) (rclhWnd.xLeft + 50L) //left , (SHORT) (rclhWnd.yBottom + 50L) //bottom , 150 //right , 200 //top , hWnd //owner , HWND_TOP //on top of all , X_TITLE //id of window , NULL , NULL ) ;

This gives a child window offset from its parent by horizontal + 50 and vertical + 50 pels. The width of the window is 150 pels, and the height of the window is 200 pels.

hpsexisting is an hps generated by the following code:

hpsexisting = GpiCreatePS ( //generate a hps for hwnd hab //anchor block handle, WinOpenWindowDC ( hWnd) //get the hwnd DC, &siz1 //zero size = one full screen , PU_PELS | GPIF_DEFAULT | GPIT_NORMAL | GPIA_ASSOC ); //get hps //****************************************************** //NOTE: This hps stays until the window terminates. // It is actually removed during WM_DESTROY // processing. //******************************************************

The call to generate a new hps is as follows:

hpsnew = WinBeginPaint ( hwnd[child], hpsexisting , &rclnew);

The rclnew dimensions returned by this call should be the following:

xLeft = 0 yBottom = 0 xRight = 150 yTop = 200

If you make a simple cached micro hps by doing the following:

hpsnew = WinBeginPaint ( hwnd[child], NULL , &rclnew);

the dimensions are the same as above; however, the actual values returned in rclnew are the dimensions of hWnd (the parent window):

xLeft = 0 (origin of hWnd.xLeft) yBottom = 0 (origin of hWnd.yBottom) xRight = hWnd.xRight yTop = hWnd.yTop

If you then try to paint, using the xLeft parameter as follows, the character string written will be at the bottom of the hWnd parent, not at the bottom of hwnd[child]:

pptl.x = rclnew.xLeft; pptl.y = rclnew.yBottom; GpiMove ( //set left bottom corner of window hpsnew, pptl); //bottom corner of client GpiCharStringAt ( //write the title prompt hpsnew, &pptl //at this position , (LONG) strlen (sztext1) //number of characters , sztext1); //title prompt

If you use the commands listed above to draw after issuing the following call, the drawing does occur inside the child window and not on the hWnd parent:

hpsnew = WinBeginPaint ( hwnd[child], NULL , &rclnew);

There is also another part to this problem. After you restore the original hpsexisting by calling the following, the regions that may have been invalid, i.e., regions set before calling the WinBeginPaint to get a temporary hps, have been altered. In other words, they have not been reset to their original values.

WinEndPaint (hpsnew);

Keywords: SR# G890816-24967 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48298 8514 DD Control Panel Icon, Color Selection Problems in 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The following problems occur with the 8514 device driver in 1024 x 768 x 256 color mode, in Presentation Manager (PM) Version 1.10:

1. The Control Panel icon is corrupt in the upper-right corner.

2. When using the Control Panel to select the screen color, the colors chosen are not the colors used when the display is refreshed.

Microsoft has confirmed these to be problems in Version 1.10. We are researching these problems and will post new information as it becomes available.

Keywords: SR# G890819-25294 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48299 Minimize Incorrectly Enabled in System Menu of Control Panel Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

If you minimize the Control Panel and select the System Menu icon, minimize is still enabled and maximize is disabled. The correct behavior is for minimize to be disabled and maximize to be enabled.

Microsoft has confirmed this to be a problem with the System Menu in the Control Panel in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890821-25329 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48310 Cursor Is Displayed Incorrectly If Entry Field Is ES_RIGHT Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

I have created a dialog box for an application that I am converting from MS-DOS to the Presentation Manager (PM) in which the two edit fields do not have margins. The cursor is located at the end of the text in the first edit field when the dialog box is displayed. When I click the mouse in the second edit field, the cursor is not destroyed in the first edit field. The remnants of the cursor still show in the first edit field.

For this problem to occur, the entry field must be set to ES_RIGHT in the dialog box file.

Response:

Microsoft has confirmed this to be a problem in Version 1.10. We are researching this problem and will post new information as it becomes available.

One workaround to this problem is to use entry fields with margins or to set the entry field to ES_LEFT. You can also try invalidating the control with WinUpdateWindow when you receive an EN_KILLFOCUS message. However, this may produce undesirable blinking in the control. Since you know the invalid area to be that at the far right of the control, perhaps you could invalidate only a small portion of the control to achieve the desired result.

Keywords: SR# G890820-25314 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48309 RIPS Occur When WinDdePostMsg Is Used in PM Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Problem:

I have modified the sample DDE server code named PMSERVER in the Software Library. I put a DosSemRequest and DosSemClear around the code that handles the WM_DDE_ADVISE message (the semaphore doesn't protect anything, it just illustrates the problem). I also added more stocks and created an Excel spreadsheet that created 16 hot links (one for each stock). When you start the server and run the spreadsheet (under Excel for PM), the system hangs, even if you are using CodeView. If WinDdePostMsg is removed from the semaphore, the system does not hang. The following sequence of events appears to occur:

1. Excel posts a WM_DDE_ADVISE message.

2. The server callback function gets the semaphore.

3. The server tries to post an acknowledgment (still holding the semaphore).

4. Excel posts another WM_DDE_ADVISE message.

5. The server callback function is re-entered. The semaphore is not available, so something else blocks.

Response:

Microsoft has confirmed this to be a problem in Version 1.10. We are researching this problem and will post new information as it becomes available.

Running the server and Excel does generate several unusual huge RIPs and 10 to 20 "cannot post msg, queue full" messages. The system is also left in an inconsistent state, although several display driver errors follow the "graceful" exit.

The first RIPs seem to be generated from Excel code, i.e., they may be the ones causing the segmentation failure, although many RIPs from PM were quick to follow. Therefore, this problem appears to be a side effect of the way PM handles WinDdePostMsg.

The workaround is to ensure that WinDdePostMsg is not surrounded by DosSem* functions that could potentially (easily) result in deadlock or other unexpected results in client applications not ready to be "delayed," or handle the effects of modal message loops.

Additional reference words: softlib PMSERVER.ARC S12267.EXE

Keywords: SR# G890818-25225 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/05 04:04 Q48645 Improving Screen Generation Performance in PM Microsoft Presentation Manager (PRESMAN) 1.05 1.06 1.10 OS/2

Question:

We have a Windows application in which we must do a screen write 10 times a second. We are converting this application to Presentation Manager (PM) and noticed that PM is much slower. How can we improve this performance in PM?

Response:

Microsoft is aware of these limitations of the current font engine in terms of speed and WYSIWYG ability. We are researching this problem and will post new information as it becomes available.

Meanwhile, try the following workarounds to help improve the performance in PM:

1. Use a fixed pitch device font, such as Courier. The system font is proportional.

2. Create your own raster font that is 8 x 8, and then make sure you output this font on byte boundaries.

3. Put the text output code (loop?) in a separate thread that is not running at input priority. Paradoxically, some operations have been reported to run far more quickly if the thread performing the operations is not running at input priority. To ensure that a thread does not run at input priority, the thread must never create a window. This includes a message box.

Keywords: SR# G890825-25923 buglist1.05 buglist1.06 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/07 05:00 Q48456 GpiSaveMetafile Saves Output File Only in Current Directory Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

QuickHelp's implication that a metafile can be saved in any directory is incorrect and is a documentation error. GpiSaveMetaFile saves a specified file to the current directory only.

Microsoft has confirmed that this documentation error exists in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

Keywords: SR# G890823-25659 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/05 04:04 Q48460 Return Value for WM_DRAWITEM Not Ignored for List Boxes Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

On Page 433 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10 and in the version of QuickHelp included with the Version 1.10 OS/2 Software Development Kit (SDK), it states that the return value for WM_DRAWITEM is ignored. However, in the next paragraph, it is explicitly stated that the application should draw the item and return TRUE, or it should return FALSE to let the list box draw the item.

Microsoft has confirmed that this documentation error exists on Page 433 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" manual for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit). The return value for the WM_DRAWITEM message is ignored for menus; however, it is not ignored for list boxes.

We will post new information when the documentation has been updated to correct this error.

Keywords: SR# G890824-25783 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/05 04:04 Q48461 WM_MEASUREITEM Return Value Documentation Error on Page 443 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

On Page 443 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10 and in the version of QuickHelp included with the Version 1.10 OS/2 Software Development Kit (SDK), it states that an application should return the height of a window item. However, on Page 230 of the "Microsoft Operating System/2 Programmer's Reference Volume 1" for Version 1.10, the sample code shows that the application needs to modify the xRight and yTop values of rclItem, and return 0L.

Microsoft has confirmed that the documentation is incorrect on Page 443 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10 and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

The sample code fragment is correct for the WM_MEASUREITEM message for menus. If you have an ownerdraw list box, the processing of the WM_MEASUREITEM message should return the width and height in the return value.

We will post new information when this error has been corrected in the documentation.

Keywords: SR# G890824-25783 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/05 04:04 Q48661 VioGetMode, VioSetMode hvio Parameter Documentation Error Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Microsoft has confirmed that Pages 213 and 242 of the "Microsoft Operating System/2 Programmer's Reference Volume 3" for Version 1.10 incorrectly document the hvio parameter of the functions VioGetMode and VioSetMode. Furthermore, this documentation error also occurs in the version of QuickHelp that is included with Version 1.10 of the OS/2 Software Development Kit (SDK).

Both the functions VioGetMode and VioSetMode take as their second parameter a 16-bit word, "HVIO hvio". In the references sited above, this parameter is documented as capable of being used as a handle to an advanced video input and output (AVIO) presentation space. The documentation further states that this handle must have been created previously with the function VioCreatePS. These statements are not correct. The functions VioGetMode and VioSetMode are only valid for VIO-windowable applications; they are not supported by Presentation Manager (PM) and they must not be used by PM or AVIO applications. The parameter "HVIO hvio" is a reserved word that must always be zero. An error will be returned if VioGetMode or VioSetMode is called with a nonzero handle.

Also note that when VioSetMode is called from a VIO-windowed application (as opposed to an application that is running in its own screen group), it will not change the size of a character cell.

Keywords: SR# G890824-25818 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/07 05:00 Q48705 GpiCharStringPosAt CHS_OPAQUE Option Doesn't Work Correctly Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When using GpiCharStringPosAt with the CHS_OPAQUE option, underscore and strikethrough are not displayed in the selected Courier font.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890828-26034 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48314 CodeView Dotted Line Problem Occurs on VGA and EGA Systems Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The problem listed below appears to occur on most EGA and VGA systems. The following steps can be used to reproduce this problem:

1. Start up CodeView on one monitor.

2. Trace through an application until the initial border appears.

3. Quit CodeView.

4. At this point, you will be back to a full-screen prompt.

5. Switch back to the task manager.

6. A dotted line will be displayed on the screen.

Microsoft has confirmed that this problem occurs in Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890821-25443 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/08/30 07:18 Q48706 GpiSetAttrs PRIM_CHAR Option Reverse Text Doesn't Work Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

When GpiSetAttrs is called to set PRIM_CHAR as the reverse text and background color, the function still displays the same text and background color. This problem only occurs when using raster fonts.

Microsoft has confirmed this to be a problem in Presentation Manager (PM) Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890828-26034 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48708 Courier Font G, Y Characters Don't Display Descender Correctly Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the following problem occurs in PM Version 1.10. The "g" and "y" characters of the Courier font do not display the descender correctly. The MaxDescender returned in 8-pitch font is 2. Instead, it should be set to 3 to display the descender.

Microsoft has confirmed this to be a problem in the digitized font images in OS/2 Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890828-26034 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48716 WinCreateFrameControls hmod Parameter Documentation Error Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the following documentation error occurs on Page 232 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10 and in the version of QuickHelp included with the OS/2 SDK (Software Development Kit).

The HMODULE hmod parameter of the WinCreateFrameControls function is specified, but in reality it is not used. If you use the definition as documented, it will cause an error during compilation (if the maximum warning is used) and a failure if not caught during compilation.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890903-4 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48718 hwndClient Listed Twice in WinCreateStdWindow Example Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the following documentation error occurs on Page 242 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

The example for WinCreateStdWindow incorrectly lists the declaration for HWND hwndClient parameter twice. The second declaration should instead be "HWND hwndFrame;".

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890903-4 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48719 cbInfo Parameter Information Incorrect in DosQFSInfo Example Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the following documentation error occurs on Page 115 of the "Microsoft Operating System/2 Programmer's Reference Volume 3" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

The example for the DosQFSInfo function declares the following for the cbInfo parameter: FSINFO fsinf. Further down in the example, sizeof(FSInfoBuf) is used instead of sizeof(fsinf).

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890903-4 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48785 XCOPY with /S Option Incorrectly Copies Empty Subdirectories Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

When I run XCOPY when using the /s option, XCOPY copies all of the subdirectories, even if they are empty.

Microsoft has confirmed this to be a problem in Version 1.10 of OS/2. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890904-7 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/15 04:55 Q48717 GpiPolyLine Function Example Is Missing Third Parameter Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

Microsoft has confirmed that the following documentation error occurs on Page 97 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

The example for the GpiPolyLine function is missing the third parameter.

We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890903-4 docerr buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48704 GpiWCBitBlt Works Incorrectly in PM Version 1.10 Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Summary:

The following problems occur when the GpiWCBitBlt function is used:

1. If the destination is a memory bitmap and the source is NULL, an error 2092 (PMERR_INV_LENGTH_OR_COUNT) is returned. If the destination is the screen, this function works correctly.

2. If the destination is the screen, the source is NULL, and a segment is open, an error 207B (PMERR_INV_HBITMAP) is returned. A workaround to this problem is to create a dummy blank (1 x 1) bitmap to use as the source instead of NULL.

GpiWCBitBlt checks for a valid hBitmap if the destination isn't a simple micro Presentation Space (PS).

Microsoft has confirmed these to be problems in Version 1.10. We are researching these problems and will post new information as it becomes available.

Keywords: SR# G890828-26028 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/13 05:04 Q48786 DIR Command Fails with Trap D Error in OS/2 Version 1.10 Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

When you run the following DIR command, a TRAP D error occurs:

DIR aaaa.....a (until input area is full)

Microsoft has confirmed this to be a problem in Version 1.10 of OS/2. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890906-20 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/15 04:55 Q48809 DosStartSession "Related" Field Documentation Error Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

Microsoft has confirmed that the information for the "Related" field of the STARTDATA structure listed in the DosStartSession documentation is incorrect on Page 153 of the "Microsoft Operating System/2 Programmer's Reference Volume 3" for Version 1.10, and in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit).

The documentation incorrectly states the following:

An independent session is created when the Related field of the STARTDATA structure is set to TRUE.

Instead, it should state the following:

If the related field is FALSE, the new session is an independent session (not related).

We are researching this problem and will post new information when the documentation has been updated to correct this error.

Keywords: SR# G890907-114 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/16 05:32 Q48810 "See Also" Section of WM_QUERYTRACKINFO Documentation Error Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The "See Also" section of the WM_QUERYTRACKINFO documentation incorrectly lists WM_QUERYTRACKINFO again as a reference.

Microsoft has confirmed to be a problem in the version of QuickHelp included with the Version 1.10 OS/2 SDK (Software Development Kit), and on Page 452 of the "Microsoft Operating System/2 Programmer's Reference Volume 2" for Version 1.10. We are researching this problem and will post new information when the documentation has been updated to correct this error.

Keywords: SR# G890907-114 buglist1.10 docerr

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/16 05:32 Q47175 IBM 4201 Printer Driver Form Size, DevQueryHardcopyCaps Microsoft Presentation Manager (PRESMAN) 1.10 OS/2

Problem:

I am writing some print code and am testing it with the IBM 4201 printer driver. I get a width of 8 inches and not 8.5 inches under the following conditions:

1. I am using the 8.5-x-11 inch form in the page setup dialog.

2. In my print code, I am using the DevQueryHardCopyCaps call with CAPS_HEIGHT and CAPS_WIDTH, so that I can determine the width and height of my page.

3. I am using DevQueryCaps to determine my horizontal and vertical resolution by passing CAPS_HORIZONTAL_RESOLUTION and CAPS_VERTICAL_RESOLUTION.

4. The resolution is as follows:

x = 120 pixels per inch y = 72 pixels per inch

5. The paper size is as follows:

Width = 960 pixels = 8 inches Height = 792 = 11 inches

Response:

There are problems with the 4201 driver concerning the form size and the DevQueryHardcopyCaps function.

The DevQueryHardcopyCaps function is supposed to return the size of the form (not the printable area) in millimeters. The 4201 driver incorrectly returns the size of the form in inches, and because it can't return a fractional value, it truncates to 8 inches instead of 8.5 inches.

To find the form size correctly on the current 4201 driver, it is probably best to look at the form name and "know" that an "A" form is 8.5 x 11 inches.

Microsoft has confirmed this to be a problem in the IBM 4201 driver included with PM Version 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: SR# G890713-22473 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/16 05:32 Q48784 Date Is Set Incorrectly When Time Command Is Used Microsoft OS/2 Software Development Kit (OS2SDK) 1.10 OS/2

Summary:

The following problems occur in Version 1.10 of OS/2:

1. At a full-screen command prompt, if the current date is 6-30-89 and I execute the following command

TIME 23:59:59.99

the date incorrectly changes to 6-31-89, even though June only has 30 days in it. If I then execute "TIME 23:59:59.99" again, the date changes to 7-2-89.

2. At a windowed command prompt, if the current date is 6-30-89 and I execute the following command:

TIME 23:59:59.99

the date incorrectly changes to 6-31-89, even though June only has 30 days in it. If I then execute "TIME 23:59:59.99" again, an error code of SYS1044 is returned. This problem also occurs with the dates of 4/30 and 9/30.

Microsoft has confirmed these to be problems in Version 1.10 of OS/2. We are researching these problems and will post new information as it becomes available.

Keywords: SR# G890904-5 buglist1.10

COPYRIGHT Microsoft Corporation, 1989. Updated 89/09/15 04:55