名字对象客户端

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

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

名字对象提供程序

OLE 名字对象实现