107 lines
3.8 KiB
C++
107 lines
3.8 KiB
C++
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
// 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]);
|