Metodo IDebugHostEvaluator2::AssignTo (dbgmodel.h)
Il metodo AssignTo esegue l'assegnazione in base alla semantica del linguaggio sottoposto a debug.
Sintassi
HRESULT AssignTo(
IModelObject *assignmentReference,
IModelObject *assignmentValue,
_COM_Errorptr_ IModelObject **assignmentResult,
IKeyStore **assignmentMetadata
);
Parametri
assignmentReference
Riferimento alla cosa assegnata. Anche se questo può essere un riferimento basato su modello (ad esempio, un OggettoTargetObjectReference) o un riferimento al linguaggio (ad esempio, un & C++), deve essere un tipo di riferimento (un LVALUE).
assignmentValue
Valore assegnato a quello a cui viene fatto riferimento tramite l'argomento assignmentReference. Si noti che questo valore può essere coerced o convertito in base alle regole del linguaggio prima di essere assegnato.
assignmentResult
Risultato dell'assegnazione, se riuscito. In caso contrario, facoltativamente, un oggetto errore esteso che indica perché l'assegnazione non è riuscita. Si noti che il risultato dell'assegnazione in questo caso è quello che la lingua definisce come risultato di un'operazione di assegnazione. Per C++, si tratta di un riferimento al linguaggio assegnato.
assignmentMetadata
Tutti i metadati facoltativi associati al risultato dell'assegnazione vengono restituiti qui.
Valore restituito
Questo metodo restituisce HRESULT che indica l'esito positivo o l'errore.
Commenti
Codice di esempio
ComPtr<IDebugHost> spHost; /* get the host */
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IModelObject> spObject; /* get an object; for an example - consider a
'class MyClass' with an integer value
m_intVal */
ComPtr<IDebugHostEvaluator2> spEval2;
if (SUCCEEDED(spHost.As(&spEval2)))
{
// Get a reference to the m_intVal field
ComPtr<IModelObject> spIntValRef;
if (SUCCEEDED(spObject->GetRawReference(SymbolField,
L"m_intVal",
RawSearchNone,
&spIntValRef)))
{
// Box some value we want to assign.
VARIANT vtVal;
vtVal.vt = VT_UI8;
vtVal.ullVal = 123456;
ComPtr<IModelObject> spAssignmentValue;
if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic,
&vtVal,
&spAssignmentValue)))
{
ComPtr<IModelObject> spAssignmentResult;
if (SUCCEEDED(spEval2->AssignTo(spIntValRef.Get(),
spAssignmentValue.Get(),
&spAssignmentResult,
nullptr)))
{
// The (unsigned __int64)123456 was assigned to m_intVal with
// the set of coercions defined by the language (C++)
// spAssignmentResult has the language meaning of operator=()
// in this case. This would be a MyClass&.
}
}
}
}
Requisiti
Requisito | Valore |
---|---|
Intestazione | dbgmodel.h |