Freigeben über


IModelObject::TryCastToRuntimeType-Methode (dbgmodel.h)

Die TryCastToRuntimeType-Methode fordert den Debughost auf, eine Analyse durchzuführen und den tatsächlichen Laufzeittyp (z. B. die am meisten abgeleitete Klasse) des angegebenen Objekts zu bestimmen. Die genaue Analyse, die für den Debughost verwendet wird, ist spezifisch für den Debughost und kann RTTI (C++-Laufzeittypinformationen), die Untersuchung der V-Table-Struktur (virtuelle Funktionstabelle) des Objekts oder andere Mittel enthalten, mit denen der Host den dynamischen/Laufzeittyp aus dem statischen Typ zuverlässig bestimmen kann. Fehler beim Konvertieren in einen Laufzeittyp bedeutet nicht, dass dieser Methodenaufruf fehlschlägt. In solchen Fällen gibt die -Methode das angegebene Objekt (diesen Zeiger) im Ausgabeargument zurück.

Syntax

HRESULT TryCastToRuntimeType(
  _COM_Errorptr_ IModelObject **runtimeTypedObject
);

Parameter

runtimeTypedObject

Die Konvertierung des angegebenen Objekts in eine instance des dynamischen/Laufzeittyps wird in diesem Argument zurückgegeben. Wenn die Analyse keine Änderung des statischen Typs findet, wird das angegebene Objekt (dieser Zeiger) möglicherweise (mit einem zusätzlichen Verweis) in dieser Ausgabe zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das auf Erfolg oder Fehler hinweist. Beachten Sie, dass eine Analyse, die keinen abgeleiteten Typ finden kann, kein Fehler wie hier definiert ist.

Hinweise

Codebeispiel

ComPtr<IModelObject> spUnknown; /* get an IUnknown pointer to some CFoo */

ComPtr<IModelObject> spRuntimeObj;
if (SUCCEEDED(spUnknown->TryCastToRuntimeType(&spRuntimeObj)))
{
    // spRuntimeObj will refer to the CFoo.
}

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

IModelObject-Schnittstelle