PRB: StartDoc() Fails with Non-Zeroed DOCINFO
Article ID: 135119
Article Last Modified on 11/21/2006
APPLIES TO
- Microsoft Win32 Application Programming Interface, when used with:
- Microsoft Windows NT Server 3.5
- Microsoft Windows NT Server 3.51
- Microsoft Windows NT Server 4.0 Standard Edition
- Microsoft Windows NT Workstation 3.5
- Microsoft Windows NT Workstation 3.51
- Microsoft Windows NT Workstation 4.0 Developer Edition
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:
- Call memset() to initialize the structure to zeros.
- Set the cbSize member to the appropriate value.
- 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