13#if defined(OWL5_COMPAT)
20 int WINAPI DeviceCapabilitiesExA(LPCSTR, LPCSTR, LPCSTR, WORD,
21 LPSTR, CONST DEVMODEA*);
22 int WINAPI DeviceCapabilitiesExW(LPCWSTR, LPCWSTR, LPCWSTR, WORD,
23 LPWSTR, CONST DEVMODEW*);
25 #define DeviceCapabilitiesEx DeviceCapabilitiesExW
27 #define DeviceCapabilitiesEx DeviceCapabilitiesExA
31 #define PROC_DEVICECAPABILITIES MAKEINTRESOURCE(91)
39#if defined(OWL5_COMPAT)
44class TPrinterDriverLibrary :
public TModule {
46 TPrinterDriverLibrary(
const tstring& drvName);
48 TModuleProc5<int,LPCTSTR,LPCTSTR,WORD,LPTSTR,const DEVMODE*> DeviceCapabilities;
54TPrinterDriverLibrary::TPrinterDriverLibrary(
const tstring& drvName)
56 TModule(drvName, true, true, false),
57 DeviceCapabilities(*this,(LPCSTR)PROC_DEVICECAPABILITIES)
70 memset(&DocInfo, 0,
sizeof(DocInfo));
71 DocInfo.cbSize =
sizeof(DocInfo);
72 DocInfo.lpszOutput =
_T(
"");
73 DocInfo.lpszDatatype =
_T(
"");
81 :
TCreatedDC{nullptr, device.c_str(), initData}
83 memset(&DocInfo, 0,
sizeof(DocInfo));
84 DocInfo.cbSize =
sizeof(DocInfo);
85 DocInfo.lpszOutput =
_T(
"");
86 DocInfo.lpszDatatype =
_T(
"");
89#if defined(OWL5_COMPAT)
96 LPCTSTR output,
const DEVMODE * initData)
100 memset(&DocInfo, 0,
sizeof(DocInfo));
101 DocInfo.cbSize =
sizeof(DocInfo);
102 DocInfo.lpszOutput =
_T(
"");
103 DocInfo.lpszDatatype =
_T(
"");
110 : TCreatedDC(driver, device, output, initData)
112 memset(&DocInfo, 0,
sizeof(DocInfo));
113 DocInfo.cbSize =
sizeof(DocInfo);
114 DocInfo.lpszOutput =
_T(
"");
115 DocInfo.lpszDatatype =
_T(
"");
234TPrintDC::DeviceCapabilities(LPCTSTR driver,
248 caps = ::DeviceCapabilitiesEx(driver, device, port, (
uint16)capability, output, devmode);
249 if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
257 TPrinterDriverLibrary driverLib(driver);
258 caps = driverLib.DeviceCapabilities(device, port, (
uint16)capability, output, devmode);
268uint32 TPrintDC::DeviceCapabilities(
276 return DeviceCapabilities(
277 driver.empty() ? 0 : driver.c_str(),
278 device.empty() ? 0 : device.c_str(),
279 port.empty() ? 0 : port.c_str(),
An abstract TDC class, TCreatedDC serves as the base for DCs that are created and deleted.
TCreatedDC(LPCTSTR driver, LPCTSTR device, const DEVMODE *initData=nullptr)
Creates a device context (DC) object for the device specified by driver (driver name) and device (dev...
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
TPrintDC(HDC handle, TAutoDelete autoDelete=NoAutoDelete)
Creates a TPrintDC object for the DC given by handle.
Definition of GDI DC encapsulation classes: TDC, TWindowDC, TScreenDC, TDesktopDC,...
TAutoDelete
Flag for Handle ctors to control Handle deletion in dtor.
Definition of class TModule.
Object Windows Library (OWLNext Core).