IDataModelManager2::CreateTypedObjectReference 方法 (dbgmodel.h)
CreateTypedObjectReference 方法在语义上类似于 CreateTypedObject 方法,只不过它创建对基础本机/语言构造的引用。 创建的引用是具有一种 ObjectTargetObjectReference 的对象。 它不是本机引用,因为基础语言可能支持 (例如:C++ & 或 &&) 。 完全有可能将 ObjectTargetObjectReference 用于 C++ 引用。
ObjectTargetObjectReference 类型的对象可以通过在 IModelObject 上使用 Dereference 方法转换为基础值。 还可以将引用传递给基础主机的表达式计算器,以便以适当的语言方式赋回值。
语法
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
参数
context
此对象所在的调试主机上下文。 如果未给出显式上下文,则新创建对象的上下文将从 objectType 参数的上下文继承。 调用方可以传递特殊标记值USE_CURRENT_HOST_CONTEXT,以指示对象应接收调试器用户界面中的当前上下文。
objectLocation
对象在调试目标的地址空间中的位置。 如果位置是虚拟地址,则客户端可以使用地址空间中的 64 位偏移量构造该位置;否则- 必须从另一个调试主机接口检索位置。
objectType
正在构造的对象的类型。 如果未在上下文参数中传递显式上下文,则类型的上下文将传播到新创建的对象。
object
将在此处返回新创建的对象引用。
返回值
此方法返回指示成功或失败的 HRESULT。
注解
示例代码
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostType> spType; /* get a type (see CreateTypedObject) */
Location creationLocation; /* get a location (see CreateTypedObject) */
ComPtr<IModelObject> spObjectRef;
if (SUCCEEDED(spManager->CreateTypedObjectReference(nullptr,
creationLocation,
spType.Get(),
&spObjectRef)))
{
// spObjectRef now contains a reference to the underlying object.
// This can be dereferenced to get the value or passed to the
// EE to do an assignment.
ComPtr<IModelObject> spObject;
if (SUCCEEDED(spObjectRef->Dereference(&spObject)))
{
// spObject now contains the object itself.
}
}
要求
要求 | 值 |
---|---|
Header | dbgmodel.h |