类名字对象
尽管通常使用 CLSID 直接将类标识为 CoCreateInstance 或 CoGetClassObject 等函数,但现在也可以使用名为类名字对象的名字对象来标识类。 类名字对象绑定到创建它们的类的类对象。
使用名字对象标识类的功能支持否则会难以操作的有用操作。 例如,文件名字对象传统上仅支持与所引用的文件类关联的类的丰富绑定;Excel 文件的名字对象将绑定到 Excel 对象的实例,而 GIF 图像的名字对象将绑定到当前注册的 GIF 处理程序的实例。 类名字对象允许指示要用于通过与文件名字对象组合来操作文件的类。 使用 Excel 文件名字对象组合的 3D 图表类的类名字对象会生成一个名字对象,该名字对象将绑定到 3D 图表对象的实例,并使用 Excel 文件的内容初始化对象。
因此,类名字对象在与其他类型的名字对象(如文件名字对象或项名字对象)组合时最有用。
类名字对象也可以由支持绑定到 IClassActivator 接口的名字对象右侧组成。 以这种方式组合时,IClassActivator 只需通过 IClassActivator::GetClassObject 即可授予对类对象和类实例的访问权限。 类名字对象可以通过 IMoniker::IsSystemMoniker 标识,后者将在 pdwMksys 中返回 MKSYS_CLASSMONIKER。
程序员通常使用 CreateClassMoniker 函数或通过 MkParseDisplayName 创建类名字对象。 (有关详细信息,请参阅 IMoniker::ParseDisplayName。)
相关主题