Porting da ATL 2.1

IObjectSafetyImpl

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_NO_UUIDOF

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.

Nuova _ATL_DEBUG_INTERFACES

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 obsolete

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.

Index