ddraw: Avoid LPDDDEVICEIDENTIFIER.
[wine] / include / dbt.h
1 /*
2  * Copyright (C) 2004 Ulrich Czekalla
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef __WINE_DBT_H
20 #define __WINE_DBT_H
21
22 #ifndef GUID_DEFINED
23 # include <guiddef.h>
24 #endif
25
26 /* dbt.h doesn't use the normal convention, it adds an underscore before A/W */
27 #ifdef WINE_NO_UNICODE_MACROS
28 # define DECL_WINELIB_DBT_TYPE_AW(type)  /* nothing */
29 #else
30 # define DECL_WINELIB_DBT_TYPE_AW(type)  typedef WINELIB_NAME_AW(type##_) type;
31 #endif
32
33 #define DBT_NO_DISK_SPACE               0x0047
34 #define DBT_LOW_DISK_SPACE              0x0048
35 #define DBT_CONFIGMGPRIVATE             0x7FFF
36 #define DBT_DEVICEARRIVAL               0x8000
37 #define DBT_DEVICEQUERYREMOVE           0x8001
38 #define DBT_DEVICEQUERYREMOVEFAILED     0x8002
39 #define DBT_DEVICEREMOVEPENDING         0x8003
40 #define DBT_DEVICEREMOVECOMPLETE        0x8004
41 #define DBT_DEVICETYPESPECIFIC          0x8005
42 #define DBT_CUSTOMEVENT                 0x8006
43
44 typedef struct _DEV_BROADCAST_HDR
45 {
46     DWORD dbch_size;
47     DWORD dbch_devicetype;
48     DWORD dbch_reserved;
49 } DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR;
50
51 #define DBT_DEVTYP_OEM                  0x00000000
52 #define DBT_DEVTYP_DEVNODE              0x00000001
53 #define DBT_DEVTYP_VOLUME               0x00000002
54 #define DBT_DEVTYP_PORT                 0x00000003
55 #define DBT_DEVTYP_NET                  0x00000004
56 #define DBT_DEVTYP_DEVICEINTERFACE      0x00000005
57 #define DBT_DEVTYP_HANDLE               0x00000006
58
59 typedef struct _DEV_BROADCAST_OEM
60 {
61     DWORD       dbco_size;
62     DWORD       dbco_devicetype;
63     DWORD       dbco_reserved;
64     DWORD       dbco_identifier;
65     DWORD       dbco_suppfunc;
66 } DEV_BROADCAST_OEM, *PDEV_BROADCAST_OEM;
67
68 typedef struct _DEV_BROADCAST_DEVNODE
69 {
70     DWORD       dbcd_size;
71     DWORD       dbcd_devicetype;
72     DWORD       dbcd_reserved;
73     DWORD       dbcd_devnode;
74 } DEV_BROADCAST_DEVNODE, *PDEV_BROADCAST_DEVNODE;
75
76 typedef struct _DEV_BROADCAST_VOLUME
77 {
78     DWORD       dbcv_size;
79     DWORD       dbcv_devicetype;
80     DWORD       dbcv_reserved;
81     DWORD       dbcv_unitmask;
82     WORD        dbcv_flags;
83 } DEV_BROADCAST_VOLUME, *PDEV_BROADCAST_VOLUME;
84
85 #define DBTF_MEDIA 0x0001
86 #define DBTF_NET   0x0002
87
88 typedef struct _DEV_BROADCAST_PORT_A
89 {
90     DWORD       dbcp_size;
91     DWORD       dbcp_devicetype;
92     DWORD       dbcp_reserved;
93     char        dbcp_name[1];
94 } DEV_BROADCAST_PORT_A, *PDEV_BROADCAST_PORT_A;
95
96 typedef struct _DEV_BROADCAST_PORT_W
97 {
98     DWORD       dbcp_size;
99     DWORD       dbcp_devicetype;
100     DWORD       dbcp_reserved;
101     WCHAR       dbcp_name[1];
102 } DEV_BROADCAST_PORT_W, *PDEV_BROADCAST_PORT_W;
103
104 DECL_WINELIB_DBT_TYPE_AW(DEV_BROADCAST_PORT)
105 DECL_WINELIB_DBT_TYPE_AW(PDEV_BROADCAST_PORT)
106
107 typedef struct _DEV_BROADCAST_NET
108 {
109     DWORD       dbcn_size;
110     DWORD       dbcn_devicetype;
111     DWORD       dbcn_reserved;
112     DWORD       dbcn_resource;
113     DWORD       dbcn_flags;
114 } DEV_BROADCAST_NET, *PDEV_BROADCAST_NET;
115
116 typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A
117 {
118     DWORD       dbcc_size;
119     DWORD       dbcc_devicetype;
120     DWORD       dbcc_reserved;
121     GUID        dbcc_classguid;
122     CHAR        dbcc_name[1];
123 } DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A;
124
125 typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W
126 {
127     DWORD       dbcc_size;
128     DWORD       dbcc_devicetype;
129     DWORD       dbcc_reserved;
130     GUID        dbcc_classguid;
131     WCHAR       dbcc_name[1];
132 } DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W;
133
134 DECL_WINELIB_DBT_TYPE_AW(DEV_BROADCAST_DEVICEINTERFACE)
135 DECL_WINELIB_DBT_TYPE_AW(PDEV_BROADCAST_DEVICEINTERFACE)
136
137 typedef struct _DEV_BROADCAST_HANDLE
138 {
139     DWORD       dbch_size;
140     DWORD       dbch_devicetype;
141     DWORD       dbch_reserved;
142     HANDLE      dbch_handle;
143     HDEVNOTIFY  dbch_hdevnotify;
144     GUID        dbch_eventguid;
145     LONG        dbch_nameoffset;
146     BYTE        dbch_data[1];
147 } DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE;
148
149 #undef DECL_WINELIB_DBT_TYPE_AW
150
151 #endif /* __WINE_DBT_H */