Portierung von ATL 2.1

IObjectSafetyImpl

ATL 2.1 markiert die IObjectSafetyImpl -Klasse das Steuerelement als sicher für Skripting. Aus Gründen der Sicherheit hat diese Standardeinstellung entfernt wurde, so dass Sie Ihre Sicherheitsoptionen mithilfe der zweiten Vorlagenparameter explizit angeben müssen. Sie müssen diese Klasse anstelle COM_INTERFACE_ENTRY COM_INTERFACE_ENTRY_IMPL jetzt verfügbar.

_ATL_NO_UUIDOF

ATL 3.0 verwendet das Compilerschlüsselwort __uuidof ( Klasse ) , um die entsprechende IID für eine bestimmte Klasse abzurufen. Aufgrund von Änderungen in die COM_INTERFACE_ENTRY Makrosenthalten Sie jetzt einfach den Header für die Schnittstelle zu verwenden, anstatt auch Verknüpfung mit einer Bibliothek, die die übereinstimmenden IIDs für die Schnittstelle definiert. Diese Änderung kann Probleme verursachen, wenn der Header zuvor durch eine alte Version von MIDL generiert wurde, oder wenn es war Hand-codiert und nicht entsprechend gekennzeichnet.

Wenn die Deklaration für die Schnittstelle in der Kopfzeile nicht mit einem zugehörigen __declspec(uuid)markiert wurde, wird jeder Versuch, das __uuidof() -Schlüsselwort für diese Schnittstelle verwenden, schlägt fehl. Sie können die alten Stil (ATL 2.x) COM_INTERFACE_ENTRY Makros Wiederherstellen durch die Definition von _ATL_NO_UUIDOF in den Buildeinstellungen, um Probleme mit diesem neuen Verhalten zu umgehen.

Neue _ATL_DEBUG_INTERFACES

Neben _ATL_DEBUG_QI und _ATL_DEBUG_REFCOUNT, vorhanden in ATL 2.x gibt es das neue _ATL_DEBUG_INTERFACES, die in der Debug-Konsole Lecks Schnittstelle verfolgen werden, die erkannt, wenn _Module.Term aufgerufen wird (wenn der Server heruntergefahren wird).

Siehe auch

Debuggen Tipps für ATL-Objekte

Veraltete Makros

Makro Kommentar
COM_INTERFACE_ENTRY_IMPL Veraltet. Ersetzen Sie durch COM_INTERFACE_ENTRY.
COM_INTERFACE_ENTRY_IMPL_IID Veraltet. Ersetzen Sie mit COM_INTERFACE_ENTRY_IID.
CHAIN_MSG_MAP_ALT_DYNAMIC Veralteten und gelöschten.
BEGIN_PROPERTY_MAP Veraltet. Verwenden Sie das neue Eigenschaft Karte Makro, BEGIN_PROP_MAP, wie in Neue Makros beschrieben.
END_PROPERTY_MAP Veraltet. Verwenden Sie das neue Eigenschaft Karte Makro, END_PROP_MAP, wie in Neue Makros beschrieben.

Index