下面是我从《COM/DCOM编程指南》中摘出来的话: 紧接着关键字coclass的是新组件的名字。关键字coclass有一个与之相关联的属性表,他要求你至少描述uuid属性。正如你所希望的,在uuid属性中的GUID是新组件类的类ID。它与你在系统注册表中用来注册类的GUID,以及你使用MFC建立COM对象是传递给IMPLEMENT_OLECREATE宏的GUID完全相同。
紧跟在类名字之后列出了前面声明过的该类所支持的接口。应该在这里列出你的组件所输出的每一个接口。
....
紧跟在类名字之后列出了前面声明过的该类所支持的接口。应该在这里列出你的组件所输出的每一个接口。
....
edyang,每个接口的确有个iid,但每个接口背后都有个实现类,这些实现类在odl或idl的描述中也有个guid,我想这个应该和该接口的iid不同吧。
纯属概念问题,忘高手赐教,
另:是否有比较好(易懂)的关于com和com+ (vc)开发的书, 《技术内幕》里的描述我看不懂了。
你说的接口如果都是在一个coclass中定义的,那就只有一个guid,反之就可以有好几个guid
[
uuid(7613E90A-7638-48BD-A689-C040558D6D52),
version(1.0),
helpstring("MSHTMLHostUIHandler 1.0 Type Library")
]
library MSHTMLHOSTUIHANDLERLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb"); [
uuid(1EC0F47E-223A-459D-A393-409150BF4C84),
helpstring("HostUIHandler Class")
]
coclass HostUIHandler
{
[default] interface IHostUIHandler;
interface IDocHostUIHandler;
};
};