714e5ec652ba2ffc9d7f79ef84b9312188c7add2
[reactos.git] / sdk / include / psdk / winddiui.h
1 /*
2 * Header for the Device Driver Interface - User Interface library
3 *
4 * Copyright 2007 Marcel Partap
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #ifndef __WINE_WINDDIUI_H
22 #define __WINE_WINDDIUI_H
23
24 #include <compstui.h>
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #if (NTDDI_VERSION >= NTDDI_WINXP)
31 typedef struct _DOCEVENT_FILTER {
32 UINT cbSize;
33 UINT cElementsAllocated;
34 UINT cElementsNeeded;
35 UINT cElementsReturned;
36 DWORD aDocEventCall[ANYSIZE_ARRAY];
37 } DOCEVENT_FILTER, *PDOCEVENT_FILTER;
38 typedef struct _DOCEVENT_CREATEDCPRE {
39 PWSTR pszDriver;
40 PWSTR pszDevice;
41 PDEVMODEW pdm;
42 BOOL bIC;
43 } DOCEVENT_CREATEDCPRE, *PDCEVENT_CREATEDCPRE;
44 typedef struct _DOCEVENT_ESCAPE {
45 int iEscape;
46 int cjInput;
47 PVOID pvInData;
48 } DOCEVENT_ESCAPE, *PDOCEVENT_ESCAPE;
49 #endif
50 #define DOCUMENTEVENT_FIRST 1
51 #define DOCUMENTEVENT_CREATEDCPRE 1
52 #define DOCUMENTEVENT_CREATEDCPOST 2
53 #define DOCUMENTEVENT_RESETDCPRE 3
54 #define DOCUMENTEVENT_RESETDCPOST 4
55 #define DOCUMENTEVENT_STARTDOC 5
56 #define DOCUMENTEVENT_STARTDOCPRE 5
57 #define DOCUMENTEVENT_STARTPAGE 6
58 #define DOCUMENTEVENT_ENDPAGE 7
59 #define DOCUMENTEVENT_ENDDOC 8
60 #define DOCUMENTEVENT_ENDDOCPRE 8
61 #define DOCUMENTEVENT_ABORTDOC 9
62 #define DOCUMENTEVENT_DELETEDC 10
63 #define DOCUMENTEVENT_ESCAPE 11
64 #define DOCUMENTEVENT_ENDDOCPOST 12
65 #define DOCUMENTEVENT_STARTDOCPOST 13
66 #if (NTDDI_VERSION >= NTDDI_VISTA)
67 #define DOCUMENTEVENT_QUERYFILTER 14
68 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRE 1
69 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRE 2
70 #define DOCUMENTEVENT_XPS_ADDFIXEDPAGEEPRE 3
71 #define DOCUMENTEVENT_XPS_ADDFIXEDPAGEPOST 4
72 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPOST 5
73 #define DOCUMENTEVENT_XPS_CANCELJOB 6
74 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRINTTICKETPRE 7
75 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRINTTICKETPRE 8
76 #define DOCUMENTEVENT_XPS_ADDFIXEDPAGEPRINTTICKETPRE 9
77 #define DOCUMENTEVENT_XPS_ADDFIXEDPAGEPRINTTICKETPOST 10
78 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRINTTICKETPOST 11
79 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRINTTICKETPOST 12
80 #define DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPOST 13
81 #define DOCUMENTEVENT_LAST 15
82 #elif (NTDDI_VERSION >= NTDDI_WINXP)
83 #define DOCUMENTEVENT_QUERYFILTER 14
84 #define DOCUMENTEVENT_LAST 15
85 #else
86 #define DOCUMENTEVENT_LAST 14
87 #endif
88 #define DOCUMENTEVENT_SPOOLED 0x10000
89 #define DOCUMENTEVENT_SUCCESS 1
90 #define DOCUMENTEVENT_UNSUPPORTED 0
91 #define DOCUMENTEVENT_FAILURE -1
92 #define DOCUMENTEVENT_EVENT(iX) (LOWORD(iX))
93 #define DOCUMENTEVENT_FLAGS(iX) (HIWORD(iX))
94
95 int WINAPI DrvDocumentEvent(HANDLE,HDC,int,ULONG,PVOID,ULONG,PVOID);
96
97 #define DRIVER_EVENT_INITIALIZE 1
98 #define DRIVER_EVENT_DELETE 2
99
100 #define PRINTER_EVENT_ADD_CONNECTION 1
101 #define PRINTER_EVENT_DELETE_CONNECTION 2
102 #define PRINTER_EVENT_INITIALIZE 3
103 #define PRINTER_EVENT_DELETE 4
104 #define PRINTER_EVENT_CACHE_REFRESH 5
105 #define PRINTER_EVENT_CACHE_DELETE 6
106 #define PRINTER_EVENT_ATTRIBUTES_CHANGED 7
107
108 #define PRINTER_EVENT_FLAG_NO_UI 1
109
110 BOOL WINAPI DrvDriverEvent(DWORD, DWORD, LPBYTE, LPARAM);
111 BOOL WINAPI DrvPrinterEvent(LPWSTR, INT, DWORD, LPARAM);
112 DWORD WINAPI DrvDeviceCapabilities(HANDLE,PWSTR,WORD,PVOID,PDEVMODE);
113
114 LONG WINAPI DrvDevicePropertySheets(PPROPSHEETUI_INFO,LPARAM);
115
116 typedef struct _DEVICEPROPERTYHEADER {
117 WORD cbSize;
118 WORD Flags;
119 HANDLE hPrinter;
120 LPTSTR pszPrinterName;
121 } DEVICEPROPERTYHEADER, *PDEVICEPROPERTYHEADER;
122
123 #define DPS_NOPERMISSION 0x0001
124
125 LONG WINAPI DrvDocumentPropertySheets(PPROPSHEETUI_INFO,LPARAM);
126
127 typedef struct _DOCUMENTPROPERTYHEADER {
128 WORD cbSize;
129 WORD Reserved;
130 HANDLE hPrinter;
131 LPTSTR pszPrinterName;
132 PDEVMODE pdmIn;
133 PDEVMODE pdmOut;
134 DWORD cbOut;
135 DWORD fMode;
136 } DOCUMENTPROPERTYHEADER, *PDOCUMENTPROPERTYHEADER;
137
138 #define DM_ADVANCED 0x10
139 #define DM_NOPERMISSION 0x20
140 #define DM_USER_DEFAULT 0x40
141
142 typedef struct _DEVQUERYPRINT_INFO {
143 WORD cbSize;
144 WORD Level;
145 HANDLE hPrinter;
146 DEVMODE *pDevMode;
147 LPWSTR pszErrorStr;
148 DWORD cchErrorStr;
149 DWORD cchNeeded;
150 } DEVQUERYPRINT_INFO, *PDEVQUERYPRINT_INFO;
151
152 BOOL WINAPI DevQueryPrintEx(PDEVQUERYPRINT_INFO);
153
154 #ifdef __cplusplus
155 } /* extern "C" */
156 #endif
157
158 #endif /* __WINE_WINDDIUI_H */