名字对象客户端

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

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

名字对象提供程序

OLE 名字对象实现