BIND_OPTS 结构 (objidl.h)
包含名字对象绑定操作期间使用的参数。
可以使用 BIND_OPTS2 或 BIND_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 |