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