Método IDataModelManager2::CreateTypedObjectReference (dbgmodel.h)
O método CreateTypedObjectReference é semanticamente semelhante ao método CreateTypedObject, exceto por criar uma referência ao constructo nativo/idioma subjacente. A referência criada é um objeto que tem uma espécie de ObjectTargetObjectReference. Não é uma referência nativa, pois a linguagem subjacente pode dar suporte (por exemplo: um & ou && C++). É totalmente possível ter um ObjectTargetObjectReference para uma referência do C++.
Um objeto do tipo ObjectTargetObjectReference pode ser convertido no valor subjacente por meio do uso do método Dereference em IModelObject. A referência também pode ser passada para o avaliador de expressão do host subjacente para atribuir de volta ao valor de maneira apropriada.
Sintaxe
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
Parâmetros
context
O contexto do host de depuração no qual esse objeto está localizado. Se nenhum contexto explícito for fornecido, o contexto do objeto recém-criado herdará do contexto do argumento objectType. Um chamador pode passar o valor do marcador especial USE_CURRENT_HOST_CONTEXT para indicar que o objeto deve receber o contexto atual na interface do usuário do depurador.
objectLocation
O local do objeto no espaço de endereço do destino de depuração. Se o local for um endereço virtual, o local poderá ser construído pelo cliente usando um deslocamento de 64 bits para o espaço de endereço; caso contrário, o local deve ser recuperado de outra interface de host de depuração.
objectType
O tipo do objeto que está sendo construído. O contexto do tipo será propagado para o objeto recém-criado se nenhum contexto explícito for passado no argumento de contexto.
object
A referência de objeto recém-criada será retornada aqui.
Retornar valor
Esse método retorna HRESULT que indica êxito ou falha.
Comentários
Código de exemplo
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.
}
}
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | dbgmodel.h |