How To Determine the Type of Handle Retrieved from OpenPrinter (126258)
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
This article was previously published under Q126258 SUMMARY
OpenPrinter returns a valid handle when a printer name or a server name is
passed to it. Sometimes you might need to determine if the returned handle
is a handle to a printer, because some Win32 spooler functions only accept
printer handles and will fail on server handles. The following code
determines if a handle is a printer handle:
BOOL IsPrinterHandle( HANDLE hPrinter)
{
DWORD cbNeeded;
DWORD Error;
BOOL bRet = TRUE;
if( !GetPrinter(hPrinter, 2, (LPBYTE)NULL, 0, &cbNeeded ))
{
Error = GetLastError( );
bRet = FALSE;
if( Error == ERROR_INSUFFICIENT_BUFFER )
{
// Expect this for a valid printer handle.
bRet = TRUE;
}
}
return bRet;
}
Modification Type: | Minor | Last Reviewed: | 3/7/2005 |
---|
Keywords: | kbhowto KB126258 |
---|
|