/////////////////////////////////////////////////////////////////////////////// // This file contains the component server code. The FactoryDataArray contains // the components that can be served. // // The following array contains the data used by CFactory to create components. // Each element in the array contains the CLSID, the pointer to the creation // function, and the name of the component to place in the Registry. #include "factdata.h" #include "fact.h" #include "dtct.h" #include "devinfo.h" #include "settings.h" #include "cstmprop.h" #include "regnotif.h" const CLSID APPID_ShellHWDetection = { /* b1b9cbb2-b198-47e2-8260-9fd629a2b2ec */ 0xb1b9cbb2, 0xb198, 0x47e2, {0x82, 0x60, 0x9f, 0xd6, 0x29, 0xa2, 0xb2, 0xec} }; CFactoryData g_FactoryDataArray[] = { { &CLSID_HWEventDetector, CHWEventDetector::UnkCreateInstance, L"Shell.HWEventDetector", // Friendly name L"Shell.HWEventDetector.1", // ProgID L"Shell.HWEventDetector", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free // this is not a COM server, so following are N/A NULL, // CoRegisterClassObject context NULL, // CoRegisterClassObject flags NULL, // ServiceName NULL, }, { &CLSID_HWEventSettings, CAutoplayHandler::UnkCreateInstance, L"AutoplayHandler", // Friendly name L"AutoplayHandler.1", // ProgID L"AutoplayHandler", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, L"ShellHWDetection", &APPID_ShellHWDetection, }, { &CLSID_AutoplayHandlerProperties, CAutoplayHandlerProperties::UnkCreateInstance, L"AutoplayHandlerProperties", // Friendly name L"AutoplayHandlerProperties.1", // ProgID L"AutoplayHandlerProperties", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, L"ShellHWDetection", &APPID_ShellHWDetection, }, { &CLSID_HWDevice, CHWDevice::UnkCreateInstance, L"HWDevice", // Friendly name L"HWDevice.1", // ProgID L"HWDevice", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, L"ShellHWDetection", &APPID_ShellHWDetection, }, { &CLSID_HardwareDevices, CHardwareDevices::UnkCreateInstance, L"HardwareDeviceNotif", // Friendly name L"HardwareDeviceNotif.1", // ProgID L"HardwareDeviceNotif", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, L"ShellHWDetection", &APPID_ShellHWDetection, }, { &CLSID_HWDeviceCustomProperties, CHWDeviceCustomProperties::UnkCreateInstance, L"HWDeviceCustomProperties", // Friendly name L"HWDeviceCustomProperties.1", // ProgID L"HWDeviceCustomProperties", // Version-independent THREADINGMODEL_FREE, // ThreadingModel == Free CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, L"ShellHWDetection", &APPID_ShellHWDetection, }, }; const CFactoryData* CCOMBaseFactory::_pDLLFactoryData = g_FactoryDataArray; const DWORD CCOMBaseFactory::_cDLLFactoryData = sizeof(g_FactoryDataArray) / sizeof(g_FactoryDataArray[0]);