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 verwendet wird, ist spezifisch für den Debughost und kann RTTI (C++-Laufzeittypinformationen), die Untersuchung der V-Table(virtual function table)-Struktur des Objekts oder eine andere Möglichkeit umfassen, dass der Host verwendet werden kann, um den dynamischen/Laufzeittyp zuverlässig vom statischen Typ zu bestimmen. 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 Instanz des dynamischen/Laufzeittyps wird in diesem Argument zurückgegeben. Wenn die Analyse keine Änderung des statischen Typs findet, wird das angegebene Objekt (dieser Zeiger) in dieser Ausgabe möglicherweise (mit einem zusätzlichen Verweis) zurückgegeben.

Rückgabewert

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

Bemerkungen

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

Siehe auch

IModelObject-Schnittstelle