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 |