root/trunk/win32/dbt.d

Revision 175, 5.7 kB (checked in by Vladimir, 2 years ago)

minor fixes

Line 
1 /***********************************************************************\
2 *                                  dbt.d                                *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Vladimir Vlasov                          *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.dbt;
12
13 import win32.w32api, win32.windef;
14 import win32.basetyps; // for GUID
15
16 // FIXME: clean up Windows version support
17
18 enum : DWORD {
19     DBT_NO_DISK_SPACE           = 0x47,
20     DBT_CONFIGMGPRIVATE         = 0x7FFF,
21     DBT_DEVICEARRIVAL           = 0x8000,
22     DBT_DEVICEQUERYREMOVE       = 0x8001,
23     DBT_DEVICEQUERYREMOVEFAILED = 0x8002,
24     DBT_DEVICEREMOVEPENDING     = 0x8003,
25     DBT_DEVICEREMOVECOMPLETE    = 0x8004,
26     DBT_DEVICETYPESPECIFIC      = 0x8005,
27     DBT_DEVTYP_OEM              = 0,
28     DBT_DEVTYP_DEVNODE          = 1,
29     DBT_DEVTYP_VOLUME           = 2,
30     DBT_DEVTYP_PORT             = 3,
31     DBT_DEVTYP_NET              = 4
32 }
33
34 static if (_WIN32_WINDOWS >= 0x040A) {
35     enum : DWORD {
36         DBT_DEVTYP_DEVICEINTERFACE = 5,
37         DBT_DEVTYP_HANDLE          = 6
38     }
39 }
40
41 enum : DWORD {
42     DBT_APPYBEGIN,
43     DBT_APPYEND,
44     DBT_DEVNODES_CHANGED     = 7,
45     DBT_QUERYCHANGECONFIG    = 0x17,
46     DBT_CONFIGCHANGED        = 0x18,
47     DBT_CONFIGCHANGECANCELED = 0x19,
48     DBT_MONITORCHANGE        = 0x1B,
49     DBT_SHELLLOGGEDON        = 32,
50     DBT_CONFIGMGAPI32        = 34,
51     DBT_VXDINITCOMPLETE      = 35,
52     DBT_VOLLOCKQUERYLOCK     = 0x8041,
53     DBT_VOLLOCKLOCKTAKEN     = 0x8042,
54     DBT_VOLLOCKLOCKFAILED    = 0x8043,
55     DBT_VOLLOCKQUERYUNLOCK   = 0x8044,
56     DBT_VOLLOCKLOCKRELEASED  = 0x8045,
57     DBT_VOLLOCKUNLOCKFAILED  = 0x8046,
58     DBT_USERDEFINED          = 0xFFFF
59 }
60
61 enum : WORD {
62     DBTF_MEDIA = 1,
63     DBTF_NET   = 2
64 }
65
66 enum : DWORD {
67     BSM_ALLCOMPONENTS      = 0,
68     BSM_APPLICATIONS       = 8,
69     BSM_ALLDESKTOPS        = 16,
70     BSM_INSTALLABLEDRIVERS = 4,
71     BSM_NETDRIVER          = 2,
72     BSM_VXDS               = 1,
73     BSF_FLUSHDISK          = 0x00000004,
74     BSF_FORCEIFHUNG        = 0x00000020,
75     BSF_IGNORECURRENTTASK  = 0x00000002,
76     BSF_NOHANG             = 0x00000008,
77     BSF_NOTIMEOUTIFNOTHUNG = 0x00000040,
78     BSF_POSTMESSAGE        = 0x00000010,
79     BSF_QUERY              = 0x00000001,
80     BSF_MSGSRV32ISOK_BIT   = 31,
81     BSF_MSGSRV32ISOK       = 0x80000000
82 }
83
84 static if (_WIN32_WINNT >= 0x0500) {
85     enum : DWORD {
86         BSF_ALLOWSFW          = 0x00000080,
87         BSF_SENDNOTIFYMESSAGE = 0x00000100
88     }
89 }
90
91 static if (_WIN32_WINNT >= 0x0501) {
92     enum : DWORD {
93         BSF_LUID        = 0x00000400,
94         BSF_RETURNHDESK = 0x00000200
95     }
96 }
97
98 struct DEV_BROADCAST_HDR {
99     DWORD dbch_size = DEV_BROADCAST_HDR.sizeof;
100     DWORD dbch_devicetype;
101     DWORD dbch_reserved;
102 }
103 alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;
104
105 struct DEV_BROADCAST_OEM {
106     DWORD dbco_size = DEV_BROADCAST_OEM.sizeof;
107     DWORD dbco_devicetype;
108     DWORD dbco_reserved;
109     DWORD dbco_identifier;
110     DWORD dbco_suppfunc;
111 }
112 alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;
113
114 struct DEV_BROADCAST_PORT_A {
115     DWORD dbcp_size = DEV_BROADCAST_PORT_A.sizeof;
116     DWORD dbcp_devicetype;
117     DWORD dbcp_reserved;
118     char  _dbcp_name;
119     char* dbcp_name() { return &_dbcp_name; }
120 }
121 alias DEV_BROADCAST_PORT_A* PDEV_BROADCAST_PORT_A;
122
123 struct DEV_BROADCAST_PORT_W {
124     DWORD  dbcp_size = DEV_BROADCAST_PORT_W.sizeof;
125     DWORD  dbcp_devicetype;
126     DWORD  dbcp_reserved;
127     WCHAR  _dbcp_name;
128     WCHAR* dbcp_name() { return &_dbcp_name; }
129 }
130 alias DEV_BROADCAST_PORT_W* PDEV_BROADCAST_PORT_W;
131
132 struct DEV_BROADCAST_USERDEFINED {
133     DEV_BROADCAST_HDR dbud_dbh;
134     char  _dbud_szName;
135     char* dbud_szName() { return &_dbud_szName; }
136 }
137
138 struct DEV_BROADCAST_VOLUME {
139     DWORD dbcv_size = DEV_BROADCAST_VOLUME.sizeof;
140     DWORD dbcv_devicetype;
141     DWORD dbcv_reserved;
142     DWORD dbcv_unitmask;
143     WORD  dbcv_flags;
144 }
145 alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;
146
147 version (Unicode) {
148     alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT;
149 } else {
150     alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT;
151 }
152 alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;
153
154 static if ((_WIN32_WINDOWS >= 0x0410) || (_WIN32_WINNT >= 0x0500)) {
155     struct DEV_BROADCAST_DEVICEINTERFACE_A {
156         DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof;
157         DWORD dbcc_devicetype;
158         DWORD dbcc_reserved;
159         GUID  dbcc_classguid;
160         char  _dbcc_name;
161         char* dbcc_name() { return &_dbcc_name; }
162     }
163     alias DEV_BROADCAST_DEVICEINTERFACE_A* PDEV_BROADCAST_DEVICEINTERFACE_A;
164
165     struct DEV_BROADCAST_DEVICEINTERFACE_W {
166         DWORD  dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_W.sizeof;
167         DWORD  dbcc_devicetype;
168         DWORD  dbcc_reserved;
169         GUID   dbcc_classguid;
170         WCHAR  _dbcc_name;
171         WCHAR* dbcc_name() { return &_dbcc_name; }
172     }
173     alias DEV_BROADCAST_DEVICEINTERFACE_W* PDEV_BROADCAST_DEVICEINTERFACE_W;
174
175     version (Unicode) {
176         alias DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
177     } else {
178         alias DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;
179     }
180     alias DEV_BROADCAST_DEVICEINTERFACE* PDEV_BROADCAST_DEVICEINTERFACE;
181
182     struct DEV_BROADCAST_HANDLE {
183         DWORD  dbch_size = DEV_BROADCAST_HANDLE.sizeof;
184         DWORD  dbch_devicetype;
185         DWORD  dbch_reserved;
186         HANDLE dbch_handle;
187         DWORD  dbch_hdevnotify;
188         GUID   dbch_eventguid;
189         LONG   dbch_nameoffset;
190         BYTE   _dbch_data;
191         BYTE*  dbch_data() { return &_dbch_data; }
192     }
193     alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE;
194 }
Note: See TracBrowser for help on using the browser.