PRB: StartDoc() Fails with Non-Zeroed DOCINFO

ID: Q135119

3.10 3.50 3.51 | 4.00 WINDOWS NT | WINDOWS kbprint kbprb kbcode
The information in this article applies to:


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 kbSDKWin32 kbWinOS95 kbDSupport 
Version           : winnt:3.5,3.51,4.0
Platform          : winnt 
Issue type        : kbprb 

Last Reviewed: July 6, 1999