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