You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
2.1 KiB
136 lines
2.1 KiB
/*++
|
|
|
|
Copyright (c) 2002 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
monitorhndl.hxx
|
|
|
|
Abstract:
|
|
|
|
This is the class that wrapps the port/language monitor
|
|
handle. Monitor's OpenPort method is not expected to be called multiple
|
|
times without calling ClosePort. For this reason, the monitor handle
|
|
is refcounted and shared between threads
|
|
(StartDocPrinter, WritePrinter, FlushPrinter, ReadPrinter, EndDocPrinter,
|
|
GetPrinterDataFromPort, SendRecvBidiData).
|
|
|
|
Author:
|
|
|
|
Adina Trufinescu July 16th, 2002
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef _MONHNDL_HXX_
|
|
#define _MONHNDL_HXX_
|
|
|
|
#ifdef __cplusplus
|
|
|
|
class TMonitorHandle
|
|
{
|
|
public:
|
|
|
|
TMonitorHandle(
|
|
IN PINIPORT,
|
|
IN PINIMONITOR,
|
|
IN LPWSTR
|
|
);
|
|
|
|
~TMonitorHandle(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
IsValid(
|
|
VOID
|
|
);
|
|
|
|
ULONG
|
|
AddRef(
|
|
VOID
|
|
);
|
|
|
|
ULONG
|
|
Release(
|
|
VOID
|
|
);
|
|
|
|
ULONG
|
|
InUse(
|
|
VOID
|
|
);
|
|
|
|
operator PINIMONITOR(
|
|
VOID
|
|
);
|
|
|
|
operator HANDLE(
|
|
VOID
|
|
);
|
|
|
|
private:
|
|
|
|
HRESULT
|
|
Open(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
Close(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
OpenLangMonitorUplevel(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
OpenLangMonitorDownlevel(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
OpenMonitorForFILEPort(
|
|
VOID
|
|
);
|
|
|
|
HRESULT
|
|
OpenPortMonitor(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
LeaveSpoolerSem(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ReEnterSpoolerSem(
|
|
VOID
|
|
);
|
|
|
|
enum EMonitorType
|
|
{
|
|
kNone = 0,
|
|
kLanguage,
|
|
kPort,
|
|
kFile,
|
|
};
|
|
|
|
PINIPORT m_pIniPort;
|
|
PINIMONITOR m_pIniLangMonitor;
|
|
LPWSTR m_pszPrinterName;
|
|
LONG m_RefCnt;
|
|
HRESULT m_hValid;
|
|
HANDLE m_hPort;
|
|
EMonitorType m_OpenedMonitorType;
|
|
static
|
|
WCHAR m_szFILE[];
|
|
};
|
|
|
|
#endif // __cplusplus
|
|
|
|
#endif //
|
|
|