Leaked source code of windows server 2003
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.

237 lines
5.4 KiB

  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved.
  7. //
  8. // FILE: Intrface.cpp
  9. //
  10. //
  11. // PURPOSE: Header of interface for PScript4, PScript5, Unidrv4,
  12. // Unidrv5 UI plug-ins.
  13. //
  14. //
  15. // Functions:
  16. //
  17. //
  18. //
  19. //
  20. // PLATFORMS: Windows 2000, Windows XP, Windows Server 2003
  21. //
  22. //
  23. #ifndef _INTRFACE_H
  24. #define _INTRFACE_H
  25. #include "precomp.h"
  26. #include "helper.h"
  27. #include "features.h"
  28. ////////////////////////////////////////////////////////////////////////////////
  29. //
  30. // IOemUI2
  31. //
  32. class IOemUI2: public IPrintOemUI2
  33. {
  34. public:
  35. // *** IUnknown methods ***
  36. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
  37. STDMETHOD_(ULONG,AddRef) (THIS);
  38. STDMETHOD_(ULONG,Release) (THIS);
  39. //
  40. // Get OEM dll related information
  41. //
  42. STDMETHOD(GetInfo) (THIS_ DWORD dwMode, PVOID pBuffer, DWORD cbSize,
  43. PDWORD pcbNeeded);
  44. //
  45. // OEMDevMode
  46. //
  47. STDMETHOD(DevMode) (THIS_ DWORD dwMode, POEMDMPARAM pOemDMParam) ;
  48. //
  49. // Method for publishing Driver interface.
  50. //
  51. STDMETHOD(PublishDriverInterface)(THIS_ IUnknown *pIUnknown);
  52. //
  53. // OEMCommonUIProp
  54. //
  55. STDMETHOD(CommonUIProp) (THIS_
  56. DWORD dwMode,
  57. POEMCUIPPARAM pOemCUIPParam
  58. );
  59. //
  60. // OEMDocumentPropertySheets
  61. //
  62. STDMETHOD(DocumentPropertySheets) (THIS_
  63. PPROPSHEETUI_INFO pPSUIInfo,
  64. LPARAM lParam
  65. );
  66. //
  67. // OEMDevicePropertySheets
  68. //
  69. STDMETHOD(DevicePropertySheets) (THIS_
  70. PPROPSHEETUI_INFO pPSUIInfo,
  71. LPARAM lParam
  72. );
  73. //
  74. // OEMDevQueryPrintEx
  75. //
  76. STDMETHOD(DevQueryPrintEx) (THIS_
  77. POEMUIOBJ poemuiobj,
  78. PDEVQUERYPRINT_INFO pDQPInfo,
  79. PDEVMODE pPublicDM,
  80. PVOID pOEMDM
  81. );
  82. //
  83. // OEMDeviceCapabilities
  84. //
  85. STDMETHOD(DeviceCapabilities) (THIS_
  86. POEMUIOBJ poemuiobj,
  87. HANDLE hPrinter,
  88. PWSTR pDeviceName,
  89. WORD wCapability,
  90. PVOID pOutput,
  91. PDEVMODE pPublicDM,
  92. PVOID pOEMDM,
  93. DWORD dwOld,
  94. DWORD *dwResult
  95. );
  96. //
  97. // OEMUpgradePrinter
  98. //
  99. STDMETHOD(UpgradePrinter) (THIS_
  100. DWORD dwLevel,
  101. PBYTE pDriverUpgradeInfo
  102. );
  103. //
  104. // OEMPrinterEvent
  105. //
  106. STDMETHOD(PrinterEvent) (THIS_
  107. PWSTR pPrinterName,
  108. INT iDriverEvent,
  109. DWORD dwFlags,
  110. LPARAM lParam
  111. );
  112. //
  113. // OEMDriverEvent
  114. //
  115. STDMETHOD(DriverEvent)(THIS_
  116. DWORD dwDriverEvent,
  117. DWORD dwLevel,
  118. LPBYTE pDriverInfo,
  119. LPARAM lParam
  120. );
  121. //
  122. // OEMQueryColorProfile
  123. //
  124. STDMETHOD( QueryColorProfile) (THIS_
  125. HANDLE hPrinter,
  126. POEMUIOBJ poemuiobj,
  127. PDEVMODE pPublicDM,
  128. PVOID pOEMDM,
  129. ULONG ulReserved,
  130. VOID *pvProfileData,
  131. ULONG *pcbProfileData,
  132. FLONG *pflProfileData);
  133. //
  134. // OEMFontInstallerDlgProc
  135. //
  136. STDMETHOD(FontInstallerDlgProc) (THIS_
  137. HWND hWnd,
  138. UINT usMsg,
  139. WPARAM wParam,
  140. LPARAM lParam
  141. );
  142. //
  143. // UpdateExternalFonts
  144. //
  145. STDMETHOD(UpdateExternalFonts) (THIS_
  146. HANDLE hPrinter,
  147. HANDLE hHeap,
  148. PWSTR pwstrCartridges
  149. );
  150. //
  151. // IPrintOemUI2 methods
  152. //
  153. //
  154. // QueryJobAttributes
  155. //
  156. STDMETHOD(QueryJobAttributes) (THIS_
  157. HANDLE hPrinter,
  158. PDEVMODE pDevmode,
  159. DWORD dwLevel,
  160. LPBYTE lpAttributeInfo
  161. );
  162. //
  163. // Hide Standard UI
  164. //
  165. STDMETHOD(HideStandardUI) (THIS_
  166. DWORD dwMode
  167. );
  168. //
  169. // DocumentEvent
  170. //
  171. STDMETHOD(DocumentEvent) (THIS_
  172. HANDLE hPrinter,
  173. HDC hdc,
  174. INT iEsc,
  175. ULONG cbIn,
  176. PVOID pbIn,
  177. ULONG cbOut,
  178. PVOID pbOut,
  179. PINT piResult
  180. );
  181. IOemUI2();
  182. virtual ~IOemUI2();
  183. protected:
  184. LONG m_cRef; // Reference count
  185. BOOL m_bHidingStandardUI; // Flag indicating if we are hiding the Standard UI.
  186. // NOTE: Not all Driver UI versions support hinding
  187. // the Standard Driver UI.
  188. CUIHelper m_Helper; // Container for Driver UI Helper interface.
  189. CFeatures m_Features; // Core Driver features and feature options.
  190. };
  191. #endif