注册表中CLSID有何用途,怎样使用?(100分)

阿权

Unregistered / Unconfirmed
GUEST, unregistred user!
我手上没有这方面的资料,依我看好象是与特定文件
的右键菜单有关,但不知具体内容的含义,以及怎样登
记我自己的CLSID?
 
注册表中的CLSID Key(译自VC联机帮助)
CLSID 是一个全球唯一的数字序列, 用于标识一个OLE 类对象.
如果您的OLE服务器或者包容器需要支持对嵌入对象的连接, 那
么您必须为每个需要支持的对象类创建 CLSID

Registry Entry
HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID = <CLSID>

Value Entries
<CLSID>
给出了一个可以供人阅读的关于该类的描述

Remarks
CLSID key 包含了供缺省的OLE处理器在该类对象运行时所返回的信息

要想为您的程序产生一个CLSID, 您可以运行UUIDGEN.EXE(VC 自带, 或者在 OLE 2 Toolkit 的 /TOOLs 目录中) 您也可以使用
CoCreateGuid()函数来创建.

CLSID 是 128 bit 数字, 用十六进制书写, 并用"{}"扩起来.

SubKeys and Named Values

/CLSID = <CLSID>

/<CLSID>
参见上面说明

/AppID
程序的标识

/AutoConvertTo
对象类自动转换到...

/AutoTreatAs
为TreatAs属性所赋的值

/AuxUserType
标识对象为一个控件

/Control
可显示的应用程序名称

/Conversion
Convert对话框中使用的Conversion的值

/DataFormats
程序支持的数据格式

/DefaultIcon
提供程序的缺省图标信息

/InprocHandler
注册一个16-bit handler DLL.

/InprocHandler32
注册一个32-bit handler DLL.

/InprocServer
注册一个 16-bit in-process server DLL

/InprocServer32
注册一个32-bit in-process server DLL

/Insertable
说明所产生的对象可以插入OLE 2应用程序

/Interface
OLE interface 名称对应的标识 IID

/LocalServer
16- or 32-bit应用程序的完全路径名

/LocalServer32
32-bit应用程序的完全路径名

/MiscStatus
程序的缺省状态

/ProgID
可编程的类标识

/ToolBoxBitmap32
用于在工具条上显示的16 x 16 bitmap 的模块名和资源标识,

/TreatAs
本项为了兼容OlLE1 / OLE 2

/Verb
程序支持的动作

/Version
控件的版本号

 
CLSID 是Windows中所有对象的身份证号码,这些对象包括: ActiveX, COM的类,
COM的接口,OLE自动化的对象以及Shell中特殊对象如我的电脑,控制面板,拨号
网络等,还有其他不知的东东,全都可以找到他们的CLSID;

WINDOWS正是用这些CLSID来完成内部子程序、DLL、驱动程序的调用;
使用CLSID可以判定所需对象在系统中是否安装,其版本,宿主DLL,
或用做某些API的参数;

除非创建自己的ACTIVEX或OLE控件,才要创建自己的CLSID,由于此ID必须
唯一,所以要用UUIDGEN.EXE(VC 自带,或者在 OLE 2 Toolkit的/TOOLs目录中)
,或使用CoCreateGuid()函数来创建。

 
能否给点例子?
 
Delphi中DCOM Server的例子就用到了。
 
我的例子很简单,无非是读注册表,测版本等.
你还是把你的想法说出来,看能否帮上忙
 
1、怎样找到指定一些特殊对象的CLSID,如我的电脑、网
上邻居等, 并获得其下内容?
2、通过一个CLSID怎样找出它属于哪个对象?
 
1:我的电脑的CLSID为{20D04FE0-3AEA-1069-A2D8-08002B30309D}
网上邻居的CLSID为208D2C60-3AEA-1069-A2D7-08002B30309D}
在注册表中HKEY_CURRENT_USER/Software/Classes/CLSID下,
还可找到我的文档和回收站
在HKEY_LOCAL_MACHINE/Software/CLASSES/CLSID/{208D2C60-3AEA-1069-A2D7-08002B30309D}可找到我的电脑的更多设置...
2:CLSID就代表了该对象, 编程中作为参数来创建对象或调用其功能
象以上CLSID通常用在SHELLAPI中,又如DIRECTX、DIRECTSHOW中的各种CLSID常常用在其API中

 

Similar threads

回复
0
查看
670
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部