HKCR
{
NoRemove CLSID
{
ForceRemove {0DFAFCD4-2343-4AC1-9ED8-B1C773E05A31}= s 'MySample Class'//COM类GUID{
ForceRemove Programmable
InprocServer32 = s '%MODULE%'{
val ThreadingModel = s 'Both'}
TypeLib = s '{2AC8F176-ACCB-46B0-B8B7-EBBDF06C415A}'//类型库GUID
Version = s '1.0'}}}
4.在resource.h文件中添加如下行:
#define IDR_MYSAMPLE 102
5.打开.rc文件,添加如下行:
IDR_MYSAMPLE REGISTRY "MySample.rgs"
6.在实现COM类的类体中加入如下红色标记的代码:
class ATL_NO_VTABLE CMySample :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CMySample,&CLSID_MySample>,
public IDispatchImpl<IMySample,&IID_IMySample,&LIBID_TestComLib,/*wMajor =*/1,/*wMinor =*/0>{
public:CMySample(){}DECLARE_REGISTRY_RESOURCEID(IDR_MYSAMPLE)BEGIN_COM_MAP(CMySample)COM_INTERFACE_ENTRY(IMySample)COM_INTERFACE_ENTRY(IDispatch)END_COM_MAP()DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct(){return S_OK;}voidFinalRelease(){}
public:STDMETHOD(Test)(){return S_OK;}};OBJECT_ENTRY_AUTO(__uuidof(MySample), CMySample)