1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Vladimir Vlasov 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_dbt.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.dbt for the auto-generated win32 package. 12 module win32.dbt; 13 //version (Windows): 14 @system: 15 16 version (ANSI) {} else version = Unicode; 17 18 import win32.w32api, win32.windef; 19 import win32.basetyps; // for GUID 20 21 // FIXME: clean up Windows version support 22 23 enum : DWORD { 24 DBT_NO_DISK_SPACE = 0x47, 25 DBT_CONFIGMGPRIVATE = 0x7FFF, 26 DBT_DEVICEARRIVAL = 0x8000, 27 DBT_DEVICEQUERYREMOVE = 0x8001, 28 DBT_DEVICEQUERYREMOVEFAILED = 0x8002, 29 DBT_DEVICEREMOVEPENDING = 0x8003, 30 DBT_DEVICEREMOVECOMPLETE = 0x8004, 31 DBT_DEVICETYPESPECIFIC = 0x8005, 32 DBT_DEVTYP_OEM = 0, 33 DBT_DEVTYP_DEVNODE, 34 DBT_DEVTYP_VOLUME, 35 DBT_DEVTYP_PORT, 36 DBT_DEVTYP_NET, 37 DBT_DEVTYP_DEVICEINTERFACE, 38 DBT_DEVTYP_HANDLE // = 6 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 >= 0x500) { 85 enum : DWORD { 86 BSF_ALLOWSFW = 0x00000080, 87 BSF_SENDNOTIFYMESSAGE = 0x00000100 88 } 89 //} 90 91 static if (_WIN32_WINNT >= 0x501) { 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 = 0; 119 char* dbcp_name() return { 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 = 0; 128 WCHAR* dbcp_name() return { 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 = 0; 135 char* dbud_szName() return { 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_WINNT >= 0x500) { 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 { 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 = 0; 171 WCHAR* dbcc_name() return { 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 { return &_dbch_data; } 192 } 193 alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE; 194 //}