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