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     WINBOOL     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 WINBOOL WINAPI DrvDriverEvent(DWORD, DWORD, LPBYTE, LPARAM);
111 WINBOOL WINAPI DrvPrinterEvent(LPWSTR, INT, DWORD, LPARAM);
112 
113 #ifdef __cplusplus
114 } /* extern "C" */
115 #endif
116 
117 #endif /* __WINE_WINDDIUI_H */
118