|
|
|
| 1 |
|
/***************************************************************************** |
| 2 |
|
* |
| 3 |
|
* (C) Copyright MICROSOFT Corp., 1993-1999 |
| 4 |
|
* |
| 5 |
|
* Title: DBT.H - Equates for WM_DEVICECHANGE and BroadcastSystemMessage |
| 6 |
|
* |
| 7 |
|
* Version: 4.00 |
| 8 |
|
* |
| 9 |
|
* Date: 24-May-1993 |
| 10 |
|
* |
| 11 |
|
*---------------------------------------------------------------------------- |
| 12 |
|
* |
| 13 |
|
* Change log: |
| 14 |
|
* |
| 15 |
|
* DATE REV DESCRIPTION |
| 16 |
|
* ----------- --- ---------------------------------------------------------- |
| 17 |
|
* |
| 18 |
|
*****************************************************************************/ |
| 19 |
|
|
| 20 |
|
#ifndef _DBT_H |
| 21 |
|
#define _DBT_H |
| 22 |
|
|
| 23 |
|
#if _MSC_VER > 1000 |
| 24 |
|
#pragma once |
| 25 |
|
#endif |
| 26 |
|
|
| 27 |
|
/* |
| 28 |
|
* BroadcastSpecialMessage constants. |
| 29 |
|
*/ |
| 30 |
|
#define WM_DEVICECHANGE 0x0219 |
| 31 |
|
|
| 32 |
|
/* XLATOFF */ |
| 33 |
|
#ifdef IS_32 |
| 34 |
|
#define DBTFAR |
| 35 |
|
#else |
| 36 |
|
#define DBTFAR far |
| 37 |
|
#endif |
| 38 |
|
/* XLATON */ |
| 39 |
|
|
| 40 |
|
#if !defined(_WCHAR_T_DEFINED) && !defined(_NATIVE_WCHAR_T_DEFINED) |
| 41 |
|
typedef unsigned short wchar_t; |
| 42 |
|
#define _WCHAR_T_DEFINED |
| 43 |
|
#endif |
| 44 |
|
|
| 45 |
|
#ifndef GUID_DEFINED |
| 46 |
|
#include <guiddef.h> |
| 47 |
|
#endif // !defined(GUID_DEFINED) |
| 48 |
|
|
| 49 |
|
/* |
| 50 |
|
* Broadcast message and receipient flags. |
| 51 |
|
* |
| 52 |
|
* Note that there is a third "flag". If the wParam has: |
| 53 |
|
* |
| 54 |
|
* bit 15 on: lparam is a pointer and bit 14 is meaningfull. |
| 55 |
|
* bit 15 off: lparam is just a UNLONG data type. |
| 56 |
|
* |
| 57 |
|
* bit 14 on: lparam is a pointer to an ASCIIZ string. |
| 58 |
|
* bit 14 off: lparam is a pointer to a binary struture starting with |
| 59 |
|
* a dword describing the length of the structure. |
| 60 |
|
*/ |
| 61 |
|
#define BSF_QUERY 0x00000001 |
| 62 |
|
#define BSF_IGNORECURRENTTASK 0x00000002 /* Meaningless for VxDs */ |
| 63 |
|
#define BSF_FLUSHDISK 0x00000004 /* Shouldn't be used by VxDs */ |
| 64 |
|
#define BSF_NOHANG 0x00000008 |
| 65 |
|
#define BSF_POSTMESSAGE 0x00000010 |
| 66 |
|
#define BSF_FORCEIFHUNG 0x00000020 |
| 67 |
|
#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040 |
| 68 |
|
#define BSF_MSGSRV32ISOK 0x80000000 /* Called synchronously from PM API */ |
| 69 |
|
#define BSF_MSGSRV32ISOK_BIT 31 /* Called synchronously from PM API */ |
| 70 |
|
|
| 71 |
|
#define BSM_ALLCOMPONENTS 0x00000000 |
| 72 |
|
#define BSM_VXDS 0x00000001 |
| 73 |
|
#define BSM_NETDRIVER 0x00000002 |
| 74 |
|
#define BSM_INSTALLABLEDRIVERS 0x00000004 |
| 75 |
|
#define BSM_APPLICATIONS 0x00000008 |
| 76 |
|
|
| 77 |
|
/* |
| 78 |
|
* Message = WM_DEVICECHANGE |
| 79 |
|
* wParam = DBT_APPYBEGIN |
| 80 |
|
* lParam = (not used) |
| 81 |
|
* |
| 82 |
|
* 'Appy-time is now available. This message is itself sent |
| 83 |
|
* at 'Appy-time. |
| 84 |
|
* |
| 85 |
|
* Message = WM_DEVICECHANGE |
| 86 |
|
* wParam = DBT_APPYEND |
| 87 |
|
* lParam = (not used) |
| 88 |
|
* |
| 89 |
|
* 'Appy-time is no longer available. This message is *NOT* sent |
| 90 |
|
* at 'Appy-time. (It cannot be, because 'Appy-time is gone.) |
| 91 |
|
* |
| 92 |
|
* NOTE! It is possible for DBT_APPYBEGIN and DBT_APPYEND to be sent |
| 437 |
|
ULONG64 dbch_hdevnotify; |
| 438 |
|
GUID dbch_eventguid; |
| 439 |
|
LONG dbch_nameoffset; |
| 440 |
|
BYTE dbch_data[1]; |
| 441 |
|
} DEV_BROADCAST_HANDLE64, *PDEV_BROADCAST_HANDLE64; |
| 442 |
|
|
| 443 |
|
#endif /* WINVER >= 0x0501 */ |
| 444 |
|
|
| 445 |
|
#endif /* WINVER >= 0x040A */ |
| 446 |
|
|
| 447 |
|
#define DBTF_RESOURCE 0x00000001 // network resource |
| 448 |
|
#define DBTF_XPORT 0x00000002 // new transport coming or going |
| 449 |
|
#define DBTF_SLOWNET 0x00000004 // new incoming transport is slow |
| 450 |
|
// (dbcn_resource undefined for now) |
| 451 |
|
|
| 452 |
|
#define DBT_VPOWERDAPI 0x8100 // VPOWERD API for Win95 |
| 453 |
|
|
| 454 |
|
/* |
| 455 |
|
* User-defined message types all use wParam = 0xFFFF with the |
| 456 |
|
* lParam a pointer to the structure below. |
| 457 |
|
* |
| 458 |
|
* dbud_dbh - DEV_BROADCAST_HEADER must be filled in as usual. |
| 459 |
|
* |
| 460 |
|
* dbud_szName contains a case-sensitive ASCIIZ name which names the |
| 461 |
|
* message. The message name consists of the vendor name, a backslash, |
| 462 |
|
* then arbitrary user-defined ASCIIZ text. For example: |
| 463 |
|
* |
| 464 |
|
* "WidgetWare\QueryScannerShutdown" |
| 465 |
|
* "WidgetWare\Video Q39S\AdapterReady" |
| 466 |
|
* |
| 467 |
|
* After the ASCIIZ name, arbitrary information may be provided. |
| 468 |
|
* Make sure that dbud_dbh.dbch_size is big enough to encompass |
| 469 |
|
* all the data. And remember that nothing in the structure may |
| 470 |
|
* contain pointers. |
| 471 |
|
*/ |
| 472 |
|
|
| 473 |
|
#define DBT_USERDEFINED 0xFFFF |
| 474 |
|
|
| 475 |
|
struct _DEV_BROADCAST_USERDEFINED { /* */ |
| 476 |
|
struct _DEV_BROADCAST_HDR dbud_dbh; |
| 477 |
|
char dbud_szName[1]; /* ASCIIZ name */ |
| 478 |
|
/* BYTE dbud_rgbUserDefined[];*/ /* User-defined contents */ |
| 479 |
|
}; |
| 480 |
|
|
| 481 |
|
|
| 482 |
|
#endif // _DBT_H |
| 483 |
|
|
| 484 |
|
|
| 485 |
|
|
|
|
|