windows-nt/Source/XPSP1/NT/printscan/ui/printui/detect.hxx
2020-09-26 16:20:57 +08:00

110 lines
1.9 KiB
C++

/*++
Copyright (C) Microsoft Corporation, 1995 - 1999
All rights reserved.
Module Name:
detect.hxx
Abstract:
PnP printer autodetection.
Author:
Lazar Ivanov (LazarI) May-06-1999
Revision History:
May-06-1999 - Created.
--*/
#ifndef _DETECT_HXX
#define _DETECT_HXX
/********************************************************************
Defines a copy constructor and an assignment operator.
Use this macro in the private section of your class if you
do not support copying and assignment.
********************************************************************/
#define DEFINE_COPY_ASSIGNMENT( Type ) \
Type( const Type & ); \
Type & operator =( const Type & )
/********************************************************************
TPnPDetect - PnP printer detector class
********************************************************************/
class TPnPDetect
{
SIGNATURE( 'pnpd' ) // signature
DEFINE_COPY_ASSIGNMENT( TPnPDetect ); // disable copy
public:
TPnPDetect(
VOID
);
~TPnPDetect(
VOID
);
BOOL
bKickOffPnPEnumeration(
VOID
);
BOOL
bDetectionInProgress(
VOID
);
BOOL
bFinished(
DWORD dwTimeout = 0
);
BOOL
bGetDetectedPrinterName(
TString *pstrPrinterName
);
static DWORD WINAPI
EnumThreadProc(
LPVOID lpParameter
);
static DWORD WINAPI
ProcessDevNodesWithNullDriversAll(
VOID
);
static DWORD WINAPI
ProcessDevNodesWithNullDriversForOneEnumerator(
IN PCTSTR pszEnumerator
);
private:
VOID
Reset(
VOID
);
BOOL _bDetectionInProgress;
PRINTER_INFO_4* _pInfo4Before;
DWORD _cInfo4Before;
HANDLE _hEventDone;
};
#endif // _DETECT_HXX