admin管理员组文章数量:1531332
2024年1月5日发(作者:)
54 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr); 55 if (FAILED(hr)) 56 return hr;
57
58 // Make sure the HKCRComponent Categories{..} 59 // key is registered. 60 CATEGORYINFO catinfo; 61 = catid; 62 = 0x0409 ; // english
63
64 // Make sure the provided description is not too long. 65 // Only copy the first 127 characters if it is. 66 int len = wcslen(catDescription); 67 if (len>127) 68 len = 127; 69 wcsncpy_s(ription, catDescription, len); 70 // Make sure the description is null terminated. 71 ription[len] = '0';
72
73 hr = pcr->RegisterCategories(1, &catinfo); 74 pcr->Release();
75
76 return hr; 77 }
78
79 // 注册组件种类 80 HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid) 81 { 82 // Register your component categories information. 83 ICatRegister* pcr = NULL ; 84 HRESULT hr = S_OK ; 85 hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,
86 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr); 87 if (SUCCEEDED(hr)) 88 { 89 // Register this category as being "implemented" by the class. 90 CATID rgcatid[1] ; 91 rgcatid[0] = catid; 92 hr = pcr->RegisterClassImplCategories(clsid, 1, rgcatid); 93 } 94 if (pcr != NULL) 95 pcr->Release(); 96 return hr; 97 } 98
99 // 卸载组件种类100 HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid)101 {102 ICatRegister* pcr = NULL ;103 HRESULT hr = S_OK ;
104
105 hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,
106 NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr);107 if (SUCCEEDED(hr))108 {109 // Unregister this category as being "implemented" by the class.110 CATID rgcatid[1] ;111 rgcatid[0] = catid;112 hr = pcr->UnRegisterClassImplCategories(clsid, 1, rgcatid);113 }
114
115 if (pcr != NULL)116 pcr->Release();
117
118 return hr;119 }120
121 // DllRegisterServer - Adds entries to the system registry122
123 STDAPI DllRegisterServer(void)124 {125 AFX_MANAGE_STATE(_afxModuleAddrThis);126
127 if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))128 return ResultFromScode(SELFREG_E_TYPELIB);129
130 if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))131 return ResultFromScode(SELFREG_E_CLASS);132
133 // 标记控件初始化安全.134 // 创建初始化安全组件种类135 HRESULT hr = CreateComponentCategory(CATID_SafeForInitializing,136 L"Controls safely initializable from persistent data!");137 if (FAILED(hr))
138 return hr;139 // 注册初始化安全140 hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);141 if (FAILED(hr))142 return hr;
143
144 // 标记控件脚本安全145 // 创建脚本安全组件种类
146 hr = CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!");147 if (FAILED(hr))148 return hr;149 // 注册脚本安全组件种类150 hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);151 if (FAILED(hr))152 return hr;
153
154 return NOERROR;155 }156
157
158
159 // DllUnregisterServer - Removes entries from the system registry160
161 STDAPI DllUnregisterServer(void)162 {163 AFX_MANAGE_STATE(_afxModuleAddrThis);164
165 if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))166 return ResultFromScode(SELFREG_E_TYPELIB);167
168 if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))169 return ResultFromScode(SELFREG_E_CLASS);170
171 return NOERROR;172 }
版权声明:本文标题:RegSvr32加载失败,找不到指定的模块 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1704396340a88657.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论