名字对象客户端

名字对象客户端必须先获取名字对象,可以通过多种方式获取名字对象。 例如,在 OLE 复合文档中,当最终用户创建链接项(使用“插入对象”对话框、剪贴板或拖放)时,名字对象将作为链接项的一部分嵌入。 在这种情况下,程序员与名字对象接触最少。 以编程方式,如果有指向实现 IMoniker 接口的对象的接口指针,则可以使用该指针来获取名字对象,并且其他接口上定义了用于返回名字对象的方法。

有不同类型的名字对象,用于标识不同类型的对象,但对于名字对象客户端,所有名字对象看起来都相同。 名字对象客户端只需对名字对象调用 IMoniker::BindToObject,并获取指向名字对象标识的对象的接口指针。 无论名字对象将对象标识为大到整个电子表格还是小到电子表格中的单个单元格,调用 BindToObject 都会返回指向该对象的指针。 如果对象已在运行,BindToObject 将在内存中找到它。 如果对象被动存储在磁盘上,BindToObject 将找到该对象的服务器,运行该服务器,并让对象进入运行状态。 所有绑定过程的详细信息都隐藏在名字对象客户端中。 因此,对于名字对象客户端,使用名字对象非常简单。

名字对象提供程序

OLE 名字对象实现