/* * Copyright (C) 2004 Ulrich Czekalla * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __WINE_DBT_H #define __WINE_DBT_H #ifndef GUID_DEFINED # include #endif /* dbt.h doesn't use the normal convention, it adds an underscore before A/W */ #ifdef WINE_NO_UNICODE_MACROS # define DECL_WINELIB_DBT_TYPE_AW(type) /* nothing */ #else # define DECL_WINELIB_DBT_TYPE_AW(type) typedef WINELIB_NAME_AW(type##_) type; #endif #define DBT_DEVNODES_CHANGED 0x0007 #define DBT_QUERYCHANGECONFIG 0x0017 #define DBT_CONFIGCHANGED 0x0018 #define DBT_CONFIGCHANGECANCELED 0x0019 #define DBT_NO_DISK_SPACE 0x0047 #define DBT_LOW_DISK_SPACE 0x0048 #define DBT_CONFIGMGPRIVATE 0x7FFF #define DBT_DEVICEARRIVAL 0x8000 #define DBT_DEVICEQUERYREMOVE 0x8001 #define DBT_DEVICEQUERYREMOVEFAILED 0x8002 #define DBT_DEVICEREMOVEPENDING 0x8003 #define DBT_DEVICEREMOVECOMPLETE 0x8004 #define DBT_DEVICETYPESPECIFIC 0x8005 #define DBT_CUSTOMEVENT 0x8006 typedef struct _DEV_BROADCAST_HDR { DWORD dbch_size; DWORD dbch_devicetype; DWORD dbch_reserved; } DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR; #define DBT_DEVTYP_OEM 0x00000000 #define DBT_DEVTYP_DEVNODE 0x00000001 #define DBT_DEVTYP_VOLUME 0x00000002 #define DBT_DEVTYP_PORT 0x00000003 #define DBT_DEVTYP_NET 0x00000004 #define DBT_DEVTYP_DEVICEINTERFACE 0x00000005 #define DBT_DEVTYP_HANDLE 0x00000006 typedef struct _DEV_BROADCAST_OEM { DWORD dbco_size; DWORD dbco_devicetype; DWORD dbco_reserved; DWORD dbco_identifier; DWORD dbco_suppfunc; } DEV_BROADCAST_OEM, *PDEV_BROADCAST_OEM; typedef struct _DEV_BROADCAST_DEVNODE { DWORD dbcd_size; DWORD dbcd_devicetype; DWORD dbcd_reserved; DWORD dbcd_devnode; } DEV_BROADCAST_DEVNODE, *PDEV_BROADCAST_DEVNODE; typedef struct _DEV_BROADCAST_VOLUME { DWORD dbcv_size; DWORD dbcv_devicetype; DWORD dbcv_reserved; DWORD dbcv_unitmask; WORD dbcv_flags; } DEV_BROADCAST_VOLUME, *PDEV_BROADCAST_VOLUME; #define DBTF_MEDIA 0x0001 #define DBTF_NET 0x0002 typedef struct _DEV_BROADCAST_PORT_A { DWORD dbcp_size; DWORD dbcp_devicetype; DWORD dbcp_reserved; char dbcp_name[1]; } DEV_BROADCAST_PORT_A, *PDEV_BROADCAST_PORT_A; typedef struct _DEV_BROADCAST_PORT_W { DWORD dbcp_size; DWORD dbcp_devicetype; DWORD dbcp_reserved; WCHAR dbcp_name[1]; } DEV_BROADCAST_PORT_W, *PDEV_BROADCAST_PORT_W; DECL_WINELIB_DBT_TYPE_AW(DEV_BROADCAST_PORT) DECL_WINELIB_DBT_TYPE_AW(PDEV_BROADCAST_PORT) typedef struct _DEV_BROADCAST_NET { DWORD dbcn_size; DWORD dbcn_devicetype; DWORD dbcn_reserved; DWORD dbcn_resource; DWORD dbcn_flags; } DEV_BROADCAST_NET, *PDEV_BROADCAST_NET; typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A { DWORD dbcc_size; DWORD dbcc_devicetype; DWORD dbcc_reserved; GUID dbcc_classguid; CHAR dbcc_name[1]; } DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A; typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W { DWORD dbcc_size; DWORD dbcc_devicetype; DWORD dbcc_reserved; GUID dbcc_classguid; WCHAR dbcc_name[1]; } DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W; DECL_WINELIB_DBT_TYPE_AW(DEV_BROADCAST_DEVICEINTERFACE) DECL_WINELIB_DBT_TYPE_AW(PDEV_BROADCAST_DEVICEINTERFACE) typedef struct _DEV_BROADCAST_HANDLE { DWORD dbch_size; DWORD dbch_devicetype; DWORD dbch_reserved; HANDLE dbch_handle; HDEVNOTIFY dbch_hdevnotify; GUID dbch_eventguid; LONG dbch_nameoffset; BYTE dbch_data[1]; } DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE; #undef DECL_WINELIB_DBT_TYPE_AW #endif /* __WINE_DBT_H */