Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.8 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // This file contains the component server code. The FactoryDataArray contains
  3. // the components that can be served.
  4. //
  5. // The following array contains the data used by CFactory to create components.
  6. // Each element in the array contains the CLSID, the pointer to the creation
  7. // function, and the name of the component to place in the Registry.
  8. #include "factdata.h"
  9. #include "fact.h"
  10. #include "dtct.h"
  11. #include "devinfo.h"
  12. #include "settings.h"
  13. #include "cstmprop.h"
  14. #include "regnotif.h"
  15. const CLSID APPID_ShellHWDetection = { /* b1b9cbb2-b198-47e2-8260-9fd629a2b2ec */
  16. 0xb1b9cbb2,
  17. 0xb198,
  18. 0x47e2,
  19. {0x82, 0x60, 0x9f, 0xd6, 0x29, 0xa2, 0xb2, 0xec}
  20. };
  21. CFactoryData g_FactoryDataArray[] =
  22. {
  23. {
  24. &CLSID_HWEventDetector,
  25. CHWEventDetector::UnkCreateInstance,
  26. L"Shell.HWEventDetector", // Friendly name
  27. L"Shell.HWEventDetector.1", // ProgID
  28. L"Shell.HWEventDetector", // Version-independent
  29. THREADINGMODEL_FREE, // ThreadingModel == Free
  30. // this is not a COM server, so following are N/A
  31. NULL, // CoRegisterClassObject context
  32. NULL, // CoRegisterClassObject flags
  33. NULL, // ServiceName
  34. NULL,
  35. },
  36. {
  37. &CLSID_HWEventSettings,
  38. CAutoplayHandler::UnkCreateInstance,
  39. L"AutoplayHandler", // Friendly name
  40. L"AutoplayHandler.1", // ProgID
  41. L"AutoplayHandler", // Version-independent
  42. THREADINGMODEL_FREE, // ThreadingModel == Free
  43. CLSCTX_LOCAL_SERVER,
  44. REGCLS_MULTIPLEUSE,
  45. L"ShellHWDetection",
  46. &APPID_ShellHWDetection,
  47. },
  48. {
  49. &CLSID_AutoplayHandlerProperties,
  50. CAutoplayHandlerProperties::UnkCreateInstance,
  51. L"AutoplayHandlerProperties", // Friendly name
  52. L"AutoplayHandlerProperties.1", // ProgID
  53. L"AutoplayHandlerProperties", // Version-independent
  54. THREADINGMODEL_FREE, // ThreadingModel == Free
  55. CLSCTX_LOCAL_SERVER,
  56. REGCLS_MULTIPLEUSE,
  57. L"ShellHWDetection",
  58. &APPID_ShellHWDetection,
  59. },
  60. {
  61. &CLSID_HWDevice,
  62. CHWDevice::UnkCreateInstance,
  63. L"HWDevice", // Friendly name
  64. L"HWDevice.1", // ProgID
  65. L"HWDevice", // Version-independent
  66. THREADINGMODEL_FREE, // ThreadingModel == Free
  67. CLSCTX_LOCAL_SERVER,
  68. REGCLS_MULTIPLEUSE,
  69. L"ShellHWDetection",
  70. &APPID_ShellHWDetection,
  71. },
  72. {
  73. &CLSID_HardwareDevices,
  74. CHardwareDevices::UnkCreateInstance,
  75. L"HardwareDeviceNotif", // Friendly name
  76. L"HardwareDeviceNotif.1", // ProgID
  77. L"HardwareDeviceNotif", // Version-independent
  78. THREADINGMODEL_FREE, // ThreadingModel == Free
  79. CLSCTX_LOCAL_SERVER,
  80. REGCLS_MULTIPLEUSE,
  81. L"ShellHWDetection",
  82. &APPID_ShellHWDetection,
  83. },
  84. {
  85. &CLSID_HWDeviceCustomProperties,
  86. CHWDeviceCustomProperties::UnkCreateInstance,
  87. L"HWDeviceCustomProperties", // Friendly name
  88. L"HWDeviceCustomProperties.1", // ProgID
  89. L"HWDeviceCustomProperties", // Version-independent
  90. THREADINGMODEL_FREE, // ThreadingModel == Free
  91. CLSCTX_LOCAL_SERVER,
  92. REGCLS_MULTIPLEUSE,
  93. L"ShellHWDetection",
  94. &APPID_ShellHWDetection,
  95. },
  96. };
  97. const CFactoryData* CCOMBaseFactory::_pDLLFactoryData = g_FactoryDataArray;
  98. const DWORD CCOMBaseFactory::_cDLLFactoryData = sizeof(g_FactoryDataArray) /
  99. sizeof(g_FactoryDataArray[0]);