动态密钥提供程序上的 GetKey 方法基本上是对 IModelObject上的 GetKey 方法的替代。 动态密钥提供程序应返回密钥的值以及与该键关联的任何元数据。 如果密钥不存在(但未发生其他错误),提供程序必须在 hasKey 参数中返回 false,并成功执行S_OK。 失败此调用被视为无法提取密钥,并且将通过父模型链显式停止搜索密钥。 在 hasKey 中返回 false,成功将继续搜索密钥。
请注意,GetKey 以键的形式返回装箱属性访问器是完全合法的。 这在语义上与 IModelObject 上的 GetKey 方法相同, 返回属性访问器。
语法
HRESULT GetKey(
IModelObject *contextObject,
PCWSTR key,
IModelObject **keyValue,
IKeyStore **metadata,
bool *hasKey
);
参数
contextObject
要为其获取键的实例对象(此指针)。
key
要检索的密钥的名称。
keyValue
此处返回由动态提供程序确定的键值。 如果在提取中发生错误并返回无效的 HRESULT,则可能会返回扩展的错误信息。 GetKey 方法的实现返回属性访问器(IModelPropertyAccessor)是合法的。
metadata
可在此处选择返回与密钥关联的任何元数据。
hasKey
指示动态提供程序是否具有密钥。 如果提供程序没有密钥,则必须在此处返回 false 并成功。
返回值
此方法返回 HRESULT,指示成功或失败。
要求
要求 | 价值 |
---|---|
标头 | dbgmodel.h |