Device notification API

Hosaka Yuji <[email protected]> Sat, 27 Mar 2004 18:31:39 +0900
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <[email protected]>
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



-------------------------------------------------------
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