HOWTO: Determine the Type of Handle Retrieved from OpenPrinterID: Q126258
|
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;
}
Additional query words: kbDSupport kbdss kbGDI kbPrinting
Keywords : kbNTOS350 kbNTOS351 kbNTOS400 kbSDKWin32 kbWinOS95 kbDSupport
Version : winnt:3.5,3.51,4.0
Platform : winnt
Issue type : kbhowto
Last Reviewed: July 7, 1999