blob: a591152cf88c5b25a828eae3c61f09e0b678f4eb [file] [log] [blame]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Vladimir Vlasov
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC src/core/sys/windows/_dbt.d)
*/
module core.sys.windows.dbt;
version (Windows):
@system:
version (ANSI) {} else version = Unicode;
import core.sys.windows.w32api, core.sys.windows.windef;
import core.sys.windows.basetyps; // for GUID
// FIXME: clean up Windows version support
enum : DWORD {
DBT_NO_DISK_SPACE = 0x47,
DBT_CONFIGMGPRIVATE = 0x7FFF,
DBT_DEVICEARRIVAL = 0x8000,
DBT_DEVICEQUERYREMOVE = 0x8001,
DBT_DEVICEQUERYREMOVEFAILED = 0x8002,
DBT_DEVICEREMOVEPENDING = 0x8003,
DBT_DEVICEREMOVECOMPLETE = 0x8004,
DBT_DEVICETYPESPECIFIC = 0x8005,
DBT_DEVTYP_OEM = 0,
DBT_DEVTYP_DEVNODE,
DBT_DEVTYP_VOLUME,
DBT_DEVTYP_PORT,
DBT_DEVTYP_NET,
DBT_DEVTYP_DEVICEINTERFACE,
DBT_DEVTYP_HANDLE // = 6
}
enum : DWORD {
DBT_APPYBEGIN,
DBT_APPYEND,
DBT_DEVNODES_CHANGED = 7,
DBT_QUERYCHANGECONFIG = 0x17,
DBT_CONFIGCHANGED = 0x18,
DBT_CONFIGCHANGECANCELED = 0x19,
DBT_MONITORCHANGE = 0x1B,
DBT_SHELLLOGGEDON = 32,
DBT_CONFIGMGAPI32 = 34,
DBT_VXDINITCOMPLETE = 35,
DBT_VOLLOCKQUERYLOCK = 0x8041,
DBT_VOLLOCKLOCKTAKEN = 0x8042,
DBT_VOLLOCKLOCKFAILED = 0x8043,
DBT_VOLLOCKQUERYUNLOCK = 0x8044,
DBT_VOLLOCKLOCKRELEASED = 0x8045,
DBT_VOLLOCKUNLOCKFAILED = 0x8046,
DBT_USERDEFINED = 0xFFFF
}
enum : WORD {
DBTF_MEDIA = 1,
DBTF_NET = 2
}
enum : DWORD {
BSM_ALLCOMPONENTS = 0,
BSM_APPLICATIONS = 8,
BSM_ALLDESKTOPS = 16,
BSM_INSTALLABLEDRIVERS = 4,
BSM_NETDRIVER = 2,
BSM_VXDS = 1,
BSF_FLUSHDISK = 0x00000004,
BSF_FORCEIFHUNG = 0x00000020,
BSF_IGNORECURRENTTASK = 0x00000002,
BSF_NOHANG = 0x00000008,
BSF_NOTIMEOUTIFNOTHUNG = 0x00000040,
BSF_POSTMESSAGE = 0x00000010,
BSF_QUERY = 0x00000001,
BSF_MSGSRV32ISOK_BIT = 31,
BSF_MSGSRV32ISOK = 0x80000000
}
//static if (_WIN32_WINNT >= 0x500) {
enum : DWORD {
BSF_ALLOWSFW = 0x00000080,
BSF_SENDNOTIFYMESSAGE = 0x00000100
}
//}
static if (_WIN32_WINNT >= 0x501) {
enum : DWORD {
BSF_LUID = 0x00000400,
BSF_RETURNHDESK = 0x00000200
}
}
struct DEV_BROADCAST_HDR {
DWORD dbch_size = DEV_BROADCAST_HDR.sizeof;
DWORD dbch_devicetype;
DWORD dbch_reserved;
}
alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;
struct DEV_BROADCAST_OEM {
DWORD dbco_size = DEV_BROADCAST_OEM.sizeof;
DWORD dbco_devicetype;
DWORD dbco_reserved;
DWORD dbco_identifier;
DWORD dbco_suppfunc;
}
alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;
struct DEV_BROADCAST_PORT_A {
DWORD dbcp_size = DEV_BROADCAST_PORT_A.sizeof;
DWORD dbcp_devicetype;
DWORD dbcp_reserved;
char _dbcp_name = 0;
char* dbcp_name() return { return &_dbcp_name; }
}
alias DEV_BROADCAST_PORT_A* PDEV_BROADCAST_PORT_A;
struct DEV_BROADCAST_PORT_W {
DWORD dbcp_size = DEV_BROADCAST_PORT_W.sizeof;
DWORD dbcp_devicetype;
DWORD dbcp_reserved;
WCHAR _dbcp_name = 0;
WCHAR* dbcp_name() return { return &_dbcp_name; }
}
alias DEV_BROADCAST_PORT_W* PDEV_BROADCAST_PORT_W;
struct DEV_BROADCAST_USERDEFINED {
DEV_BROADCAST_HDR dbud_dbh;
char _dbud_szName = 0;
char* dbud_szName() return { return &_dbud_szName; }
}
struct DEV_BROADCAST_VOLUME {
DWORD dbcv_size = DEV_BROADCAST_VOLUME.sizeof;
DWORD dbcv_devicetype;
DWORD dbcv_reserved;
DWORD dbcv_unitmask;
WORD dbcv_flags;
}
alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;
version (Unicode) {
alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT;
} else {
alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT;
}
alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;
//static if (_WIN32_WINNT >= 0x500) {
struct DEV_BROADCAST_DEVICEINTERFACE_A {
DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
char _dbcc_name;
char* dbcc_name() return { return &_dbcc_name; }
}
alias DEV_BROADCAST_DEVICEINTERFACE_A* PDEV_BROADCAST_DEVICEINTERFACE_A;
struct DEV_BROADCAST_DEVICEINTERFACE_W {
DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_W.sizeof;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
GUID dbcc_classguid;
WCHAR _dbcc_name = 0;
WCHAR* dbcc_name() return { return &_dbcc_name; }
}
alias DEV_BROADCAST_DEVICEINTERFACE_W* PDEV_BROADCAST_DEVICEINTERFACE_W;
version (Unicode) {
alias DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
} else {
alias DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;
}
alias DEV_BROADCAST_DEVICEINTERFACE* PDEV_BROADCAST_DEVICEINTERFACE;
struct DEV_BROADCAST_HANDLE {
DWORD dbch_size = DEV_BROADCAST_HANDLE.sizeof;
DWORD dbch_devicetype;
DWORD dbch_reserved;
HANDLE dbch_handle;
DWORD dbch_hdevnotify;
GUID dbch_eventguid;
LONG dbch_nameoffset;
BYTE _dbch_data;
BYTE* dbch_data() return { return &_dbch_data; }
}
alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE;
//}