BIND_OPTS结构 (objidl.h)

包含名字对象绑定操作期间使用的参数。

可以使用 BIND_OPTS2BIND_OPTS3 结构代替 BIND_OPTS 结构。

语法

typedef struct tagBIND_OPTS {
  DWORD cbStruct;
  DWORD grfFlags;
  DWORD grfMode;
  DWORD dwTickCountDeadline;
} BIND_OPTS, *LPBIND_OPTS;

成员

cbStruct

此结构的大小(以字节为单位)。

grfFlags

控制名字对象绑定操作的各个方面的标志。 此值是 BIND_FLAGS 枚举中位标志的任意组合。 CreateBindCtx 函数将此成员初始化为零。

grfMode

当打开包含由该名字对象标识的对象的文件时应使用的标志。 可能的值为 STGM 常量。 绑定操作在加载文件时,在调用 IPersistFile::Load 时使用这些标志。 如果对象已运行,绑定操作会忽略这些标志。 CreateBindCtx 函数将此字段初始化为STGM_READWRITE。

dwTickCountDeadline

调用方希望绑定操作完成的时钟时间(以毫秒为单位)。 此成员允许调用方在速度至关重要时限制操作的执行时间。 值为零表示没有截止时间。 调用 IMoniker::GetTimeOfLastChange 方法时,调用方最常使用此功能,但也可以将其应用于其他操作。 CreateBindCtx 函数将此字段初始化为零。

典型的截止时间允许执行几百毫秒。 此截止时间是建议,而不是要求;但是,超过截止时间的操作可能会给最终用户带来延迟。 每个名字对象实现都应尝试在截止时间之前完成其操作,否则错误MK_E_EXCEEDEDDEADLINE失败。

如果绑定操作超出其截止时间,因为它需要一个或多个对象未运行,则名字对象实现应使用 IBindCtx::RegisterObjectParam 在绑定上下文中注册负责的对象。 应在参数名称“ExceededDeadline”、“ExceededDeadline1”、“ExceededDeadline2”等下注册对象。 如果调用方稍后在正在运行的对象表中找到该对象,则调用方可以重试绑定操作。

GetTickCount 函数指示自系统启动以来的毫秒数,并在 2^31 毫秒后包装回零。 因此,调用方应小心不要无意中传递零值 (指示没有截止时间) ,而名字对象实现应注意时钟包装问题。

注解

BIND_OPTS结构存储在绑定上下文中;绑定期间,复合名字对象的每个组件都使用相同的绑定上下文,允许将相同的参数传递给复合名字对象的所有组件。 有关绑定上下文的详细信息,请参阅 IBindCtx

名字对象客户端 (使用名字对象获取指向对象的接口指针) 通常不需要为此结构的成员指定值。 CreateBindCtx 函数使用绑定选项设置为最适合大多数情况的默认值创建绑定上下文:BindMoniker 函数在创建绑定上下文以用于绑定名字对象时执行相同的操作。 如果要修改这些绑定选项的值,可以通过将 BIND_OPTS 结构传递给 IBindCtx::SetBindOptions 方法来执行此操作。 名字对象实现者可以将 BIND_OPTS 结构传递给 IBindCtx::GetBindOptions 方法以检索这些绑定选项的值。

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用|UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用|UWP 应用]
标头 objidl.h

另请参阅

CreateBindCtx

IBindCtx

IMoniker