File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                  dbt.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Vladimir Vlasov                          *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.dbt;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: import win32.w32api, win32.windef;
4e2933c620 2015-04-21        kinaba: import win32.basetyps; // for GUID
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: clean up Windows version support
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	DBT_NO_DISK_SPACE           = 0x47,
4e2933c620 2015-04-21        kinaba: 	DBT_CONFIGMGPRIVATE         = 0x7FFF,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICEARRIVAL           = 0x8000,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICEQUERYREMOVE       = 0x8001,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICEQUERYREMOVEFAILED = 0x8002,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICEREMOVEPENDING     = 0x8003,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICEREMOVECOMPLETE    = 0x8004,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVICETYPESPECIFIC      = 0x8005,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVTYP_OEM              = 0,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVTYP_DEVNODE          = 1,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVTYP_VOLUME           = 2,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVTYP_PORT             = 3,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVTYP_NET              = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINDOWS >= 0x040A) {
4e2933c620 2015-04-21        kinaba: 	enum : DWORD {
4e2933c620 2015-04-21        kinaba: 		DBT_DEVTYP_DEVICEINTERFACE = 5,
4e2933c620 2015-04-21        kinaba: 		DBT_DEVTYP_HANDLE          = 6
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	DBT_APPYBEGIN,
4e2933c620 2015-04-21        kinaba: 	DBT_APPYEND,
4e2933c620 2015-04-21        kinaba: 	DBT_DEVNODES_CHANGED     = 7,
4e2933c620 2015-04-21        kinaba: 	DBT_QUERYCHANGECONFIG    = 0x17,
4e2933c620 2015-04-21        kinaba: 	DBT_CONFIGCHANGED        = 0x18,
4e2933c620 2015-04-21        kinaba: 	DBT_CONFIGCHANGECANCELED = 0x19,
4e2933c620 2015-04-21        kinaba: 	DBT_MONITORCHANGE        = 0x1B,
4e2933c620 2015-04-21        kinaba: 	DBT_SHELLLOGGEDON        = 32,
4e2933c620 2015-04-21        kinaba: 	DBT_CONFIGMGAPI32        = 34,
4e2933c620 2015-04-21        kinaba: 	DBT_VXDINITCOMPLETE      = 35,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKQUERYLOCK     = 0x8041,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKLOCKTAKEN     = 0x8042,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKLOCKFAILED    = 0x8043,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKQUERYUNLOCK   = 0x8044,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKLOCKRELEASED  = 0x8045,
4e2933c620 2015-04-21        kinaba: 	DBT_VOLLOCKUNLOCKFAILED  = 0x8046,
4e2933c620 2015-04-21        kinaba: 	DBT_USERDEFINED          = 0xFFFF
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	DBTF_MEDIA = 1,
4e2933c620 2015-04-21        kinaba: 	DBTF_NET   = 2
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	BSM_ALLCOMPONENTS      = 0,
4e2933c620 2015-04-21        kinaba: 	BSM_APPLICATIONS       = 8,
4e2933c620 2015-04-21        kinaba: 	BSM_ALLDESKTOPS        = 16,
4e2933c620 2015-04-21        kinaba: 	BSM_INSTALLABLEDRIVERS = 4,
4e2933c620 2015-04-21        kinaba: 	BSM_NETDRIVER          = 2,
4e2933c620 2015-04-21        kinaba: 	BSM_VXDS               = 1,
4e2933c620 2015-04-21        kinaba: 	BSF_FLUSHDISK          = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	BSF_FORCEIFHUNG        = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	BSF_IGNORECURRENTTASK  = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	BSF_NOHANG             = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	BSF_NOTIMEOUTIFNOTHUNG = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	BSF_POSTMESSAGE        = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	BSF_QUERY              = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	BSF_MSGSRV32ISOK_BIT   = 31,
4e2933c620 2015-04-21        kinaba: 	BSF_MSGSRV32ISOK       = 0x80000000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 	enum : DWORD {
4e2933c620 2015-04-21        kinaba: 		BSF_ALLOWSFW          = 0x00000080,
4e2933c620 2015-04-21        kinaba: 		BSF_SENDNOTIFYMESSAGE = 0x00000100
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0501) {
4e2933c620 2015-04-21        kinaba: 	enum : DWORD {
4e2933c620 2015-04-21        kinaba: 		BSF_LUID        = 0x00000400,
4e2933c620 2015-04-21        kinaba: 		BSF_RETURNHDESK = 0x00000200
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_HDR {
4e2933c620 2015-04-21        kinaba: 	DWORD dbch_size = DEV_BROADCAST_HDR.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD dbch_devicetype;
4e2933c620 2015-04-21        kinaba: 	DWORD dbch_reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_OEM {
4e2933c620 2015-04-21        kinaba: 	DWORD dbco_size = DEV_BROADCAST_OEM.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD dbco_devicetype;
4e2933c620 2015-04-21        kinaba: 	DWORD dbco_reserved;
4e2933c620 2015-04-21        kinaba: 	DWORD dbco_identifier;
4e2933c620 2015-04-21        kinaba: 	DWORD dbco_suppfunc;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_PORT_A {
4e2933c620 2015-04-21        kinaba: 	DWORD dbcp_size = DEV_BROADCAST_PORT_A.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD dbcp_devicetype;
4e2933c620 2015-04-21        kinaba: 	DWORD dbcp_reserved;
4e2933c620 2015-04-21        kinaba: 	char  _dbcp_name;
4e2933c620 2015-04-21        kinaba: 	char* dbcp_name() { return &_dbcp_name; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_PORT_A* PDEV_BROADCAST_PORT_A;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_PORT_W {
4e2933c620 2015-04-21        kinaba: 	DWORD  dbcp_size = DEV_BROADCAST_PORT_W.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD  dbcp_devicetype;
4e2933c620 2015-04-21        kinaba: 	DWORD  dbcp_reserved;
4e2933c620 2015-04-21        kinaba: 	WCHAR  _dbcp_name;
4e2933c620 2015-04-21        kinaba: 	WCHAR* dbcp_name() { return &_dbcp_name; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_PORT_W* PDEV_BROADCAST_PORT_W;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_USERDEFINED {
4e2933c620 2015-04-21        kinaba: 	DEV_BROADCAST_HDR dbud_dbh;
4e2933c620 2015-04-21        kinaba: 	char  _dbud_szName;
4e2933c620 2015-04-21        kinaba: 	char* dbud_szName() { return &_dbud_szName; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DEV_BROADCAST_VOLUME {
4e2933c620 2015-04-21        kinaba: 	DWORD dbcv_size = DEV_BROADCAST_VOLUME.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD dbcv_devicetype;
4e2933c620 2015-04-21        kinaba: 	DWORD dbcv_reserved;
4e2933c620 2015-04-21        kinaba: 	DWORD dbcv_unitmask;
4e2933c620 2015-04-21        kinaba: 	WORD  dbcv_flags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if ((_WIN32_WINDOWS >= 0x0410) || (_WIN32_WINNT >= 0x0500)) {
4e2933c620 2015-04-21        kinaba: 	struct DEV_BROADCAST_DEVICEINTERFACE_A {
4e2933c620 2015-04-21        kinaba: 		DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof;
4e2933c620 2015-04-21        kinaba: 		DWORD dbcc_devicetype;
4e2933c620 2015-04-21        kinaba: 		DWORD dbcc_reserved;
4e2933c620 2015-04-21        kinaba: 		GUID  dbcc_classguid;
4e2933c620 2015-04-21        kinaba: 		char  _dbcc_name;
4e2933c620 2015-04-21        kinaba: 		char* dbcc_name() { return &_dbcc_name; }
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_DEVICEINTERFACE_A* PDEV_BROADCAST_DEVICEINTERFACE_A;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct DEV_BROADCAST_DEVICEINTERFACE_W {
4e2933c620 2015-04-21        kinaba: 		DWORD  dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_W.sizeof;
4e2933c620 2015-04-21        kinaba: 		DWORD  dbcc_devicetype;
4e2933c620 2015-04-21        kinaba: 		DWORD  dbcc_reserved;
4e2933c620 2015-04-21        kinaba: 		GUID   dbcc_classguid;
4e2933c620 2015-04-21        kinaba: 		WCHAR  _dbcc_name;
4e2933c620 2015-04-21        kinaba: 		WCHAR* dbcc_name() { return &_dbcc_name; }
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_DEVICEINTERFACE_W* PDEV_BROADCAST_DEVICEINTERFACE_W;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	version (Unicode) {
4e2933c620 2015-04-21        kinaba: 		alias DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
4e2933c620 2015-04-21        kinaba: 	} else {
4e2933c620 2015-04-21        kinaba: 		alias DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_DEVICEINTERFACE* PDEV_BROADCAST_DEVICEINTERFACE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct DEV_BROADCAST_HANDLE {
4e2933c620 2015-04-21        kinaba: 		DWORD  dbch_size = DEV_BROADCAST_HANDLE.sizeof;
4e2933c620 2015-04-21        kinaba: 		DWORD  dbch_devicetype;
4e2933c620 2015-04-21        kinaba: 		DWORD  dbch_reserved;
4e2933c620 2015-04-21        kinaba: 		HANDLE dbch_handle;
4e2933c620 2015-04-21        kinaba: 		DWORD  dbch_hdevnotify;
4e2933c620 2015-04-21        kinaba: 		GUID   dbch_eventguid;
4e2933c620 2015-04-21        kinaba: 		LONG   dbch_nameoffset;
4e2933c620 2015-04-21        kinaba: 		BYTE   _dbch_data;
4e2933c620 2015-04-21        kinaba: 		BYTE*  dbch_data() { return &_dbch_data; }
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE;
4e2933c620 2015-04-21        kinaba: }