OCX手动改名及CLSID步骤

1. 将工程中的所有字符串进行替换    SVCBox -》SVCBoxEmulator

2. 替换SVCBox.vcxproj的所有字符串 SVCBox -》SVCBoxEmulator

3. 批量更改工程内所有包含工程名的文件名  (保存成bat文件) 

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /b /s /a-d *RMTPLS_WN7200DRIIIParam1*') do (
set wkdxz=%%~nxa
ren "%%~dpnxa" "!wkdxz:RMTPLS_WN7200DRIIIParam1=RMTPLS_WN7200DRIIIParam3!")
echo OK!
pause

4 要修改类型库、控件属性接口(即主调用接口)、事件接口、及组件的CLSID共四个

例:在IDL中查找GUID整个工程 如  26F08C0A  一般是成对出现重新赋GUID值

( 因为通常只有一个类厂,一般类厂无GUID(默认))        (APP文件中)

const GUID CDECL BASED_CODE _tlid =
  { 0x26F08C0A, 0x7601, 0x48C7, { 0xAE, 0xC7, 0xCA, 0x53, 0x9D, 0xA8, 0x9E, 0x60 } }; //1.  类型库GUID

 

// Initialize class factory and guid//这里初始化组件的ProID ProID是字符串,并对应CLSID    (Ctrl.CPP中)

IMPLEMENT_OLECREATE_EX(CClockCtrl, "CLOCK.ClockCtrl.1",
 0x53b5905a, 0xc9e1, 0x4af3, 0xb2, 0x28, 0x1f, 0xe6, 0x6f, 0x44, 0x17, 0xf2)//给类厂中的静态变量static const GUID guid;赋成COM组件的GUID并初始化组件的ProID

// Interface IDs                       //2.  接口GUID

 

const IID BASED_CODE IID_DClock =
  { 0xF77F4F53, 0x7E88, 0x4B68, { 0xA2, 0x86, 0x50, 0xA9, 0xCB, 0xE1, 0x36, 0x57 } };
const IID BASED_CODE IID_DClockEvents =
  { 0x6E41BF95, 0x5C0F, 0x4E8B, { 0x9B, 0x97, 0xA8, 0xE1, 0x9, 0xF9, 0x48, 0xE8 } };

5. propage.CPP中修改属性岩浆的GUID

IMPLEMENT_OLECREATE_EX(CClockPropPage, "CLOCK.ClockPropPage.1",……(必须改) ->改GUID

posted @ 2016-01-21 16:52  高_山_流_水  阅读(964)  评论(1)    收藏  举报