Re: Device notification API
[email protected] Sun, 28 Mar 2004 15:58:33 +0800
| Newsgroups | gmane.comp.gnu.mingw.patches |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. ------=_NextPart_000_00EF_01C414DD.859C2FB0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Thanks, I believe the correct preprocessor condition for Win98/2000 and the one used elsewhere in the headers is "#if (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500)". Shall I commit the attached modified patch? By the way, I personally prefer patches as attachments instead of directly in the email because otherwise tab characters are lost. Luke ----- Original Message ----- Wrom: EAIJJPHSCRTNHGSWZIDREXCAXZOWCONE To: <[email protected]> Sent: Saturday, March 27, 2004 5:31 PM Subject: [MinGW-patches] Device notification API > Hi > This patch add define, structure, prototype and export stub to use > device notification APIs. > > 2004-03-27 Hosaka Yuji <[email protected]> > > * include/dbt.h (DBT_DEVTYP_DEVICEINTERFACE, DBT_DEVTYP_HANDLE): > Add define. > (DEV_BROADCAST_DEVICEINTERFACE, DEV_BROADCAST_HANDLE): Add struct. > * include/winuser.h (UnregisterDeviceNotification): Add prototype. > * lib/user32.def (UnregisterDeviceNotification): Add export stub. > > Index: include/dbt.h > =================================================================== > RCS file: /cvs/src/src/winsup/w32api/include/dbt.h,v > retrieving revision 1.4 > diff -u -3 -p -r1.4 dbt.h > --- include/dbt.h 30 Sep 2003 07:51:26 -0000 1.4 > +++ include/dbt.h 27 Mar 2004 07:40:09 -0000 > @@ -20,6 +20,10 @@ extern "C" { > #define DBT_DEVTYP_VOLUME 2 > #define DBT_DEVTYP_PORT 3 > #define DBT_DEVTYP_NET 4 > +#if (WINVER >= 0x040A) > +#define DBT_DEVTYP_DEVICEINTERFACE 5 > +#define DBT_DEVTYP_HANDLE 6 > +#endif /* (WINVER >= 0x040A) */ > #define DBT_APPYBEGIN 0 > #define DBT_APPYEND 1 > #define DBT_DEVNODES_CHANGED 7 > @@ -107,6 +111,42 @@ typedef DEV_BROADCAST_PORT_W DEV_BROADCA > #else > typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT; > #endif > + > +#if (WINVER >= 0x040A) > +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_t dbcc_name[1]; > +} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W; > + > +#ifdef UNICODE > +typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE; > +typedef PDEV_BROADCAST_DEVICEINTERFACE_W PDEV_BROADCAST_DEVICEINTERFACE; > +#else > +typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE; > +typedef PDEV_BROADCAST_DEVICEINTERFACE_A PDEV_BROADCAST_DEVICEINTERFACE; > +#endif > + > +typedef struct _DEV_BROADCAST_HANDLE { > + DWORD dbch_size; > + DWORD dbch_devicetype; > + DWORD dbch_reserved; > + HANDLE dbch_handle; > + DWORD dbch_hdevnotify; > + GUID dbch_eventguid; > + LONG dbch_nameoffset; > + BYTE dbch_data[1]; > +} DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE; > +#endif /* (WINVER >= 0x040A) */ > > #ifdef __cplusplus > } > Index: include/winuser.h > =================================================================== > RCS file: /cvs/src/src/winsup/w32api/include/winuser.h,v > retrieving revision 1.85 > diff -u -3 -p -r1.85 winuser.h > --- include/winuser.h 1 Mar 2004 10:30:00 -0000 1.85 > +++ include/winuser.h 27 Mar 2004 07:40:10 -0000 > @@ -3754,6 +3754,9 @@ BOOL WINAPI UnionRect(LPRECT,LPCRECT,LPC > BOOL WINAPI UnloadKeyboardLayout(HKL); > BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE); > BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE); > +#if (WINVER >= 0x0500) > +BOOL WINAPI UnregisterDeviceNotification(HANDLE); > +#endif > BOOL WINAPI UnregisterHotKey(HWND,int); > BOOL WINAPI UpdateWindow(HWND); > #if (_WIN32_WINNT >= 0x0500) > Index: lib/user32.def > =================================================================== > RCS file: /cvs/src/src/winsup/w32api/lib/user32.def,v > retrieving revision 1.22 > diff -u -3 -p -r1.22 user32.def > --- lib/user32.def 30 Sep 2003 06:57:46 -0000 1.22 > +++ lib/user32.def 27 Mar 2004 07:40:10 -0000 > @@ -609,6 +609,7 @@ UnloadKeyboardLayout@4 > UnpackDDElParam@16 > UnregisterClassA@8 > UnregisterClassW@8 > +UnregisterDeviceNotification@4 > UnregisterHotKey@8 > UpdateLayeredWindow@36 > UpdateWindow@4 ------=_NextPart_000_00EF_01C414DD.859C2FB0 Content-Type: application/octet-stream; name="hosaka_yuji2.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="hosaka_yuji2.diff" 2004-03-27 Hosaka Yuji <[email protected]>=0A= =0A= * include/dbt.h (DBT_DEVTYP_DEVICEINTERFACE, DBT_DEVTYP_HANDLE):=0A= Add define.=0A= (DEV_BROADCAST_DEVICEINTERFACE, DEV_BROADCAST_HANDLE): Add struct.=0A= * include/winuser.h (UnregisterDeviceNotification): Add prototype.=0A= * lib/user32.def (UnregisterDeviceNotification): Add export stub.=0A= =0A= Index: include/dbt.h=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /cvs/src/src/winsup/w32api/include/dbt.h,v=0A= retrieving revision 1.4=0A= diff -u -r1.4 dbt.h=0A= --- include/dbt.h 30 Sep 2003 07:51:26 -0000 1.4=0A= +++ include/dbt.h 28 Mar 2004 07:52:06 -0000=0A= @@ -20,6 +20,10 @@=0A= #define DBT_DEVTYP_VOLUME 2=0A= #define DBT_DEVTYP_PORT 3=0A= #define DBT_DEVTYP_NET 4=0A= +#if (_WIN32_WINDOWS >=3D 0x0410 || _WIN32_WINNT >=3D 0x0500)=0A= +#define DBT_DEVTYP_DEVICEINTERFACE 5=0A= +#define DBT_DEVTYP_HANDLE 6=0A= +#endif /* (_WIN32_WINDOWS >=3D 0x0410 || _WIN32_WINNT >=3D 0x0500) */=0A= #define DBT_APPYBEGIN 0=0A= #define DBT_APPYEND 1=0A= #define DBT_DEVNODES_CHANGED 7=0A= @@ -107,6 +111,42 @@=0A= #else=0A= typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;=0A= #endif=0A= +=0A= +#if (_WIN32_WINDOWS >=3D 0x0410 || _WIN32_WINNT >=3D 0x0500)=0A= +typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A {=0A= + DWORD dbcc_size;=0A= + DWORD dbcc_devicetype;=0A= + DWORD dbcc_reserved;=0A= + GUID dbcc_classguid;=0A= + char dbcc_name[1];=0A= +} DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A;=0A= +typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W {=0A= + DWORD dbcc_size;=0A= + DWORD dbcc_devicetype;=0A= + DWORD dbcc_reserved;=0A= + GUID dbcc_classguid;=0A= + wchar_t dbcc_name[1];=0A= +} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W;=0A= +=0A= +#ifdef UNICODE=0A= +typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;=0A= +typedef PDEV_BROADCAST_DEVICEINTERFACE_W PDEV_BROADCAST_DEVICEINTERFACE;=0A= +#else=0A= +typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;=0A= +typedef PDEV_BROADCAST_DEVICEINTERFACE_A PDEV_BROADCAST_DEVICEINTERFACE;=0A= +#endif=0A= +=0A= +typedef struct _DEV_BROADCAST_HANDLE {=0A= + DWORD dbch_size;=0A= + DWORD dbch_devicetype;=0A= + DWORD dbch_reserved;=0A= + HANDLE dbch_handle;=0A= + DWORD dbch_hdevnotify;=0A= + GUID dbch_eventguid;=0A= + LONG dbch_nameoffset;=0A= + BYTE dbch_data[1];=0A= +} DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE;=0A= +#endif /* (_WIN32_WINDOWS >=3D 0x0410 || _WIN32_WINNT >=3D 0x0500) */=0A= =0A= #ifdef __cplusplus=0A= }=0A= Index: include/winuser.h=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /cvs/src/src/winsup/w32api/include/winuser.h,v=0A= retrieving revision 1.85=0A= diff -u -r1.85 winuser.h=0A= --- include/winuser.h 1 Mar 2004 10:30:00 -0000 1.85=0A= +++ include/winuser.h 28 Mar 2004 07:52:17 -0000=0A= @@ -3754,6 +3754,9 @@=0A= BOOL WINAPI UnloadKeyboardLayout(HKL);=0A= BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE);=0A= BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);=0A= +#if (_WIN32_WINDOWS >=3D 0x0410 || _WIN32_WINNT >=3D 0x0500)=0A= +BOOL WINAPI UnregisterDeviceNotification(HANDLE);=0A= +#endif=0A= BOOL WINAPI UnregisterHotKey(HWND,int);=0A= BOOL WINAPI UpdateWindow(HWND);=0A= #if (_WIN32_WINNT >=3D 0x0500)=0A= Index: lib/user32.def=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /cvs/src/src/winsup/w32api/lib/user32.def,v=0A= retrieving revision 1.22=0A= diff -u -r1.22 user32.def=0A= --- lib/user32.def 30 Sep 2003 06:57:46 -0000 1.22=0A= +++ lib/user32.def 28 Mar 2004 07:52:17 -0000=0A= @@ -609,6 +609,7 @@=0A= UnpackDDElParam@16=0A= UnregisterClassA@8=0A= UnregisterClassW@8=0A= +UnregisterDeviceNotification@4=0A= UnregisterHotKey@8=0A= UpdateLayeredWindow@36=0A= UpdateWindow@4=0A= ------=_NextPart_000_00EF_01C414DD.859C2FB0-- ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click