Knowledge Base

PRB: StartDoc() Fails with Non-Zeroed DOCINFO

Article ID: 135119

Article Last Modified on 11/21/2006


APPLIES TO


This article was previously published under Q135119

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 kbfaq kbprb kbprint KB135119