PRB: StartDoc() Fails with Non-Zeroed DOCINFO (135119)



The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), when used with:
    • Microsoft Windows NT Server 3.5
    • Microsoft Windows NT Server 3.51
    • Microsoft Windows NT Server 4.0
    • Microsoft Windows NT Workstation 3.5
    • Microsoft Windows NT Workstation 3.51
    • Microsoft Windows NT Workstation 4.0
    • Microsoft Windows 95

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.

Modification Type:MinorLast Reviewed:3/7/2005
Keywords:kbcode kbFAQ kbprb kbprint KB135119