STDAPI DllRegisterServer(void) // //
{
HRESULT hr = S_OK; TCHAR szID[GUID_SIZE+1];
TCHAR szCLSID[GUID_SIZE+32];
TCHAR szModulePath[MAX_PATH]; WCHAR wszID[GUID_SIZE+1]; // Obtain the path to this module's executable file for later use.
GetModuleFileName(
ghInst,
szModulePath,
sizeof(szModulePath)/sizeof(TCHAR)); StringFromGUID2(CLSID_CplSvr1, wszID, GUID_SIZE); WideCharToMultiByte(CP_ACP,
0,
wszID,
-1,
szID,
GUID_SIZE+1,
NULL, NULL); lstrcpy(szCLSID, TEXT("CLSID\\"));
lstrcat(szCLSID, szID); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}]
SetRegKeyValue(szCLSID, NULL, NULL, NULL ); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}\InProcHandler32]
// @="gchand.dll"
SetRegKeyValue(szCLSID, "InProcHandler32", NULL, "gchand.dll" ); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}\InProcServer32]
// @="C:\\WINDOWS\\System\\ffpage.dll"
// "ThreadingModel"="Apartment"
SetRegKeyValue(szCLSID, "InProcServer32", NULL, szModulePath );
SetRegKeyValue(szCLSID, "InProcServer32", "ThreadingModel", "Apartment" ); return hr;
}
{
HRESULT hr = S_OK; TCHAR szID[GUID_SIZE+1];
TCHAR szCLSID[GUID_SIZE+32];
TCHAR szModulePath[MAX_PATH]; WCHAR wszID[GUID_SIZE+1]; // Obtain the path to this module's executable file for later use.
GetModuleFileName(
ghInst,
szModulePath,
sizeof(szModulePath)/sizeof(TCHAR)); StringFromGUID2(CLSID_CplSvr1, wszID, GUID_SIZE); WideCharToMultiByte(CP_ACP,
0,
wszID,
-1,
szID,
GUID_SIZE+1,
NULL, NULL); lstrcpy(szCLSID, TEXT("CLSID\\"));
lstrcat(szCLSID, szID); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}]
SetRegKeyValue(szCLSID, NULL, NULL, NULL ); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}\InProcHandler32]
// @="gchand.dll"
SetRegKeyValue(szCLSID, "InProcHandler32", NULL, "gchand.dll" ); // [HKEY_CLASSES_ROOT\CLSID\{9C93DB27-B576-4389-965F-28E92AF29286}\InProcServer32]
// @="C:\\WINDOWS\\System\\ffpage.dll"
// "ThreadingModel"="Apartment"
SetRegKeyValue(szCLSID, "InProcServer32", NULL, szModulePath );
SetRegKeyValue(szCLSID, "InProcServer32", "ThreadingModel", "Apartment" ); return hr;
}
解决方案 »
- 更换btn背景图片能做到吗,怎么做,从哪做
- 多台监测仪与PC通信问题的探讨
- 为什么我安装的VC++在“新建”里没有MFC这些项目?
- ATL OLE DB 的一个具体问题
- 请教高手!!!!好急!
- 调试时提示:afxCurrentResourceHandle = NULL?!
- 如何设置google开源日志GLog,让它不要输出到控制台,而是只写入文件
- vb调用vc的dll运行到waveInOpen就出错?
- 有人会吗??对KTS或PBX交换机上的话单数据项,告警数据等进行采集,应该使用哪些函数,API,方法进行编程呀?
- 请问那位大哥有过开发HTML浏览器(读取网页标签的算法)的经验?
- 多线程画图的问题
- 请问MSDN2008中的C++的帮助文档包括MSDN6.0中的C++的帮助文档吗
不过,不见得经典,应该说很原始了。
我见过有人将注册的字符串保存在字符串数组中,然后使用它进行注册,这样可扩展性好
当然现在ATL直接用脚本注册,更强!