In ATL 2.1, la classe IObjectSafetyImpl contrassegnato il controllo come essere sicura per lo scripting. Per motivi di sicurezza questa impostazione predefinita è stato rimosso, quindi è necessario specificare in modo esplicito utilizzando i parametri di modello secondo le opzioni di sicurezza. Ora deve esporre questa classe utilizzando COM_INTERFACE_ENTRY anziché COM_INTERFACE_ENTRY_IMPL.
ATL 3.0 utilizza la parola chiave del compilatore uuidof ( classe ) per ottenere l'IID corrispondente per una determinata classe. A causa di cambiamenti nelle macro COM_INTERFACE_ENTRY, ora sufficiente includere l'intestazione per l'interfaccia da utilizzare, anziché anche collegare a una libreria che definisce gli IID corrispondenti per quell'interfaccia. Questo cambiamento può causare problemi se l'intestazione in precedenza è stato generato da una vecchia versione di MIDL, o se è stato codificato manualmente e non contrassegnato in modo appropriato.
Se la dichiarazione per l'interfaccia nell'intestazione non è stata contrassegnata con un associato __declspec(uuid), quindi qualsiasi tentativo di utilizzare la parola chiave __uuidof() per quell'interfaccia fallirà. Si può ritornare alle macro COM_INTERFACE_ENTRY vecchie stile (ATL 2. x) mediante la definizione di ATL_NO_UUIDOF nelle impostazioni di compilazione per risolvere qualsiasi problema con questo nuovo comportamento.
Oltre a _ATL_DEBUG_QI e ATL_DEBUG_REFCOUNT, presente in ATL 2. x, c'è il nuovo _ATL_DEBUG_INTERFACES, che si traccia nella console di debug di eventuali perdite di interfaccia che sono rilevati quando _Module.Term viene chiamato (quando il server viene arrestato).
Vedi anche
Debug suggerimenti per oggetti ATL
| Macro | Commento |
| COM_INTERFACE_ENTRY_IMPL | Obsoleto. Sostituire con COM_INTERFACE_ENTRY. |
| COM_INTERFACE_ENTRY_IMPL_IID | Obsoleto. Sostituire con COM_INTERFACE_ENTRY_IID. |
| CHAIN_MSG_MAP_ALT_DYNAMIC | Obsoleta ed eliminati. |
| BEGIN_PROPERTY_MAP | Obsoleto. Utilizzare il nuovo macro mappa di proprietà, BEGIN_PROP_MAP, come descritto in Nuove macro. |
| END_PROPERTY_MAP | Obsoleto. Utilizzare il nuovo macro mappa di proprietà, END_PROP_MAP, come descritto in Nuove macro. |