OCX控件ID对应关系的梳理

来源:互联网 发布:银行数据标准定义规范 编辑:程序博客网 时间:2024/06/03 17:04

OCX的GUID对应关系梳理

1.     注册表中的GUID

{E0307BD0-8F81-4215-B33F-C468DDBF5C7C}

2.     OCX项目中的GUID

1)    xxxx.odl文件中:

      [uuid(E0307BD0-8F81-4215-B33F-C468DDBF5C7C),

       helpstring("ResOcxTest2 Control"), control ]

      coclass ResOcxTest2

      {

           [default] dispinterface_DResOcxTest2;

           [default, source] dispinterface_DResOcxTest2Events;

      };

2)    xxxctl.cpp文件中:

      IMPLEMENT_OLECREATE_EX(CResOcxTest2Ctrl,"RESOCXTEST2.ResOcxTest2Ctrl.1",

      0xe0307bd0, 0x8f81, 0x4215, 0xb3, 0x3f,0xc4, 0x68, 0xdd, 0xbf, 0x5c, 0x7c)

3.     与使用它的项目中的(如:对话框)自己生成的类GUID对应

      CLSID const& GetClsid()

      {

           static CLSID const clsid

                 = { 0xe0307bd0, 0x8f81, 0x4215,{ 0xb3, 0x3f, 0xc4, 0x68, 0xdd, 0xbf, 0x5c, 0x7c } };

           return clsid;

      }

4.     由上得出:OCX控件修改ID的方法  

vc++项目中替换两个地方:xxxx.odl文件和xxxctl.cpp文件

1)    xxxx.odl文件中:

      [uuid(E0307BD0-8F81-4215-B33F-C468DDBF5C7C),

       helpstring("ResOcxTest2 Control"), control ]

      coclass ResOcxTest2

      {

           [default] dispinterface_DResOcxTest2;

           [default, source] dispinterface_DResOcxTest2Events;

      };

2)    xxxctl.cpp文件中:

      IMPLEMENT_OLECREATE_EX(CResOcxTest2Ctrl,"RESOCXTEST2.ResOcxTest2Ctrl.1",

      0xe0307bd0, 0x8f81, 0x4215, 0xb3, 0x3f,0xc4, 0x68, 0xdd, 0xbf, 0x5c, 0x7c)

0 0
原创粉丝点击