PRB: StartDoc() Fails with Non-Zeroed DOCINFO

ID: Q135119


The information in this article applies to:
  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT, versions 3.5, 3.51, 4.0
    • Microsoft Windows 95
  • Microsoft Windows 2000


SYMPTOMS

A call to StartDoc() fails, and no other reason for failure can be found.


CAUSE

The DOCINFO structure passed to StartDoc() is not initialized to zeros before use.


RESOLUTION

Perform the following three steps:

  1. Call memset() to initialize the structure to zeros.


  2. Set the cbSize member to the appropriate value.


  3. Set the other relevant structure members' values.


Sample Code

The following is an example of what the code might display:


   DOCINFO   di;
   // Get the DC, SetAbortProc(), and so on.

   memset( &di, 0, sizeof( DOCINFO ) );
   di.cbSize = sizeof( DOCINFO );
   di.lpszDocName = "MyDoc";
   if( StartDoc( hDC, &di ) <= 0 )

   HandleFailure(); 


STATUS

This behavior is by design.


MORE INFORMATION

As a general rule, any structure that has a member that indicates the size of the structure should be initialized to all zeros before being used by following the previous steps.

Additional query words: 3.10 4.00 fail error print DC

Keywords : kbcode kbprint kbNTOS350 kbNTOS351 kbNTOS400 kbWinOS2000 kbSDKWin32 kbWinOS95 kbDSupport kbGDIFAQ
Version : WINDOWS:; winnt:3.5,3.51,4.0
Platform : WINDOWS winnt
Issue type : kbprb


Last Reviewed: December 15, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.