Microsoft KB Archive/94607

{|
 * width="100%"|

PRB: MULTIPAD Sample from Win 3.1 SDK Gives Printing Error

 * }

Q94607

3.10 WINDOWS kbprg kbprb

-

The information in this article applies to:


 * Microsoft Windows Software Development Kit (SDK) 3.1

-

SYMPTOMS
The MULTIPAD sample that ships with the Microsoft Windows version 3.1 SDK allows only one print job to be sent to the printer. Any further attempts to print result in the following error:

Cannot print !

The document is not printed, and you must re-start MULTIPAD to do any printing.

CAUSE
The PRINTDLG data structure used for printing is a global variable, and two members of this structure are invalid after the first print job is sent. These members are not properly initialized for subsequent print jobs.

RESOLUTION
In the MPPRINT.C file, in the GetPrinterDC routine, the following lines:

  if (pd.hDevNames)

GlobalFree(pd.hDevNames);

if (pd.hDevMode)

GlobalFree(pd.hDevMode); should be changed to:

  if (pd.hDevNames) {

GlobalFree(pd.hDevNames); pd.hDevNames=NULL;

}  if (pd.hDevMode) {

GlobalFree(pd.hDevMode); pd.hDevMode=NULL;

}

STATUS
This behavior is by design.

Additional query words: 3.10

Keywords : kb16bitonly _IK kbSDKWin16

Issue type : kbprb

Technology : kbAudDeveloper kbWin3xSearch kbSDKSearch kbWinSDKSearch kbWinSDK310