指针名字对象
指针名字对象标识只处于活动状态或运行状态的对象。 其他名字对象类可标识处于被动状态或主动状态的对象。
例如,假设应用程序具有的对象没有持久表示形式。 通常,如果应用程序的客户端需要访问该对象,则只需向该客户端传递指向该对象的指针。 但是,假设客户端需要一个名字对象。 不存储在文件中的对象不能使用文件名字对象标识,不包含在另一个对象中的对象也不能使用项名字对象标识。
但是,应用程序可以创建一个指针名字对象,该名字对象只在内部包含指针,并将指针传递给客户端。 客户端可以像对待任何其他名字对象一样对待此名字对象。 但是,当客户端对指针名字对象调用 IMoniker::BindToObject 时,名字对象代码不会检查正在运行的对象表 (ROT) 或从存储加载任何内容。 但是,名字对象代码只需对存储在名字对象中的指针调用 QueryInterface。
指针名字对象允许仅处于活动或运行状态的对象参与名字对象操作,并由名字对象客户端使用。 指针名字对象与其他名字对象类之间的一个重要区别是,指针名字对象无法保存到永久性存储中。 如果这样做,调用 IMoniker::Save 方法将返回错误。 这意味着指针名字对象仅在特殊情况下有用。 如果需要使用指针名字对象,则可以使用 CreatePointerMoniker 函数。
相关主题