def testGUID(self): s = win32gui_struct.PackDEV_BROADCAST_HANDLE( 123, guid=pythoncom.IID_IUnknown) c = array.array("b", s) got = win32gui_struct.UnpackDEV_BROADCAST(c.buffer_info()[0]) self.failUnlessEqual(got.handle, 123) self.failUnlessEqual(got.eventguid, pythoncom.IID_IUnknown)
def testGUID(self): s = win32gui_struct.PackDEV_BROADCAST_HANDLE( 123, guid=pythoncom.IID_IUnknown) c = array.array("b", s) got = win32gui_struct.UnpackDEV_BROADCAST(c.buffer_info()[0]) assert got.handle == 123 assert got.eventguid == pythoncom.IID_IUnknown
def TestDeviceNotifications(dir_names): wc = win32gui.WNDCLASS() wc.lpszClassName = 'test_devicenotify' wc.style = win32con.CS_GLOBALCLASS | win32con.CS_VREDRAW | win32con.CS_HREDRAW wc.hbrBackground = win32con.COLOR_WINDOW + 1 wc.lpfnWndProc = {win32con.WM_DEVICECHANGE: OnDeviceChange} class_atom = win32gui.RegisterClass(wc) hwnd = win32gui.CreateWindow( wc.lpszClassName, 'Testing some devices', # no need for it to be visible. win32con.WS_CAPTION, 100, 100, 900, 900, 0, 0, 0, None) hdevs = [] # Watch for all USB device notifications filter = win32gui_struct.PackDEV_BROADCAST_DEVICEINTERFACE( GUID_DEVINTERFACE_USB_DEVICE) hdev = win32gui.RegisterDeviceNotification( hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) hdevs.append(hdev) # and create handles for all specified directories for d in dir_names: hdir = win32file.CreateFile( d, winnt.FILE_LIST_DIRECTORY, winnt.FILE_SHARE_READ | winnt.FILE_SHARE_WRITE | winnt.FILE_SHARE_DELETE, None, # security attributes win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS | # required privileges: SE_BACKUP_NAME and SE_RESTORE_NAME. win32con.FILE_FLAG_OVERLAPPED, None) filter = win32gui_struct.PackDEV_BROADCAST_HANDLE(hdir) hdev = win32gui.RegisterDeviceNotification( hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) hdevs.append(hdev) # now start a message pump and wait for messages to be delivered. print "Watching", len(hdevs), "handles - press Ctrl+C to terminate, or" print "add and remove some USB devices..." if not dir_names: print "(Note you can also pass paths to watch on the command-line - eg," print "pass the root of an inserted USB stick to see events specific to" print "that volume)" while 1: win32gui.PumpWaitingMessages() time.sleep(0.01) win32gui.DestroyWindow(hwnd) win32gui.UnregisterClass(wc.lpszClassName, None)
def testPackUnpack(self): s = win32gui_struct.PackDEV_BROADCAST_HANDLE(123) c = array.array("b", s) got = win32gui_struct.UnpackDEV_BROADCAST(c.buffer_info()[0]) self.failUnlessEqual(got.handle, 123)
def testPackUnpack(self): s = win32gui_struct.PackDEV_BROADCAST_HANDLE(123) c = array.array("b", s) got = win32gui_struct.UnpackDEV_BROADCAST(c.buffer_info()[0]) assert got.handle == 123