/trunk/AtomCommon/v0000/wincore/dll_hotplug.pas

http://litwrd.googlecode.com/ · Pascal · 72 lines · 10 code · 7 blank · 55 comment · 0 complexity · f16d610671bcaafe4e42bde51e985ec0 MD5 · raw file

  1. unit dll_hotplug;
  2. {
  3. ???? usb
  4. Microsoft Safely Remove Hardware applet
  5. 1 0 00005A64 CPlApplet
  6. 2 1 0000276C CreateLocalServerW
  7. 12 2 00002659 DllCanUnloadNow
  8. 13 3 0000266A DllGetClassObject
  9. 14 4 0000268B DllRegisterServer
  10. 15 5 0000269F DllUnregisterServer
  11. 3 6 000056B4 HotPlugDeviceTree
  12. 4 7 000059D1 HotPlugDriverBlockedW
  13. 5 8 00005746 HotPlugEjectDevice
  14. 6 9 00005B38 HotPlugEjectVetoedW
  15. 7 A 00005B68 HotPlugHibernateVetoedW
  16. 8 B 00005B20 HotPlugRemovalVetoedW
  17. 9 C 0000584A HotPlugSafeRemovalNotificationW
  18. 10 D 00005B50 HotPlugStandbyVetoedW
  19. 11 E 00005B80 HotPlugWarmEjectVetoedW
  20. }
  21. interface
  22. uses
  23. Windows;
  24. const
  25. hotplug = 'hotplug.dll';
  26. function HotPlugDeviceTree(AParentWnd: HWND; AParam1: DWORD; AParam2: BOOL): DWORD;
  27. stdcall; external hotplug;
  28. implementation
  29. (*
  30. \\rundll32.exe shell32.dll,Control_RunDLL hotplug.dll
  31. hotplug.dll?windows shell????????????????????
  32. typedef BOOL (WINAPI* pfnHotPlugEjectDevice)
  33. (HWND hwndParent, PTCHAR DeviceInstanceId);
  34. pfnHotPlugDeviceTree HotPlugDeviceTree = NULL;
  35. void main()
  36. {
  37. HMODULE hHotPlug = LoadLibrary( "HotPlug.dll ");
  38. if(hHotPlug == NULL)
  39. {
  40. printf( "LoadLibrary(HotPlug.dll) Error:%d\n ", GetLastError());
  41. return;
  42. }
  43. //get functions
  44. HotPlugEjectDevice = (pfnHotPlugEjectDevice)GetProcAddress(hHotPlug, "HotPlugEjectDevice ");
  45. BOOL bResult = HotPlugEjectDevice(NULL, "USB\\Vid_0d7d&Pid_0150\\4D3B190303C0 ");
  46. HotPlugDeviceTree(HWND,DWORD,BOOL)
  47. HWND ???Handle
  48. DWORD ?????0??
  49. BOOL ?TRUE???FALSE?????????????
  50. HotPlugEjectDevice?HWND hwndParent, PTCHAR DeviceInstanceId)
  51. }
  52. *)
  53. end.