ATL 2.1, IObjectSafetyImpl 클래스 컨트롤을 스크립트 사용에 안전한 것으로 표시 합니다. 보안상의 이유로이 기본값이 제거 되었습니다, 그래서 두 번째 템플릿 매개 변수를 사용 하 여 안전 옵션을 명시적으로 지정 해야 합니다. 이제 COM_INTERFACE_ENTRY_IMPL 보다는 오히려 COM_INTERFACE_ENTRY 를 사용 하 여이 클래스를 노출 해야 합니다.
ATL 3.0 컴파일러 키워드를 사용 하 여 __uuidof ( 클래스 ) 주어진된 클래스에 대 한 해당 IID를 가져옵니다. COM_INTERFACE_ENTRY 매크로의 변경으로 인해 이제 단순히 포함 또한 해당 인터페이스에 대 한 일치 하는 Iid를 정의 하는 라이브러리에 연결 하는 대신 사용 하 여 인터페이스에 대 한 헤더. 이 변경 헤더는 MIDL의 오래 된 버전에 의해 이전에 생성 된 또는 손으로 코딩 되었고 적절 하 게 표시 되지 않은 경우 문제가 발생할 수 있습니다.
헤더의 인터페이스에 대 한 선언은 관련된 __declspec(uuid)으로 표시 하지 않은, __uuidof 키워드를 사용 하 여 해당 인터페이스에 대 한 모든 시도가 실패 합니다. 이 새로운 동작은 모든 문제를 해결 하려면 빌드 설정에서 _ATL_NO_UUIDOF 을 정의 하 여 이전 스타일 (ATL 2.x) COM_INTERFACE_ENTRY 매크로 되돌릴 수 있습니다.
_ATL_DEBUG_QI 및 _ATL_DEBUG_REFCOUNT, ATL 2.x에 외에 거기에는 새 _ATL_DEBUG_INTERFACES, 디버그 콘솔은 모든 인터페이스 누수 추적 것입니다 하는 때를 감지 _Module.Term (해당 되는 때 서버가 종료) 라고。
참고 항목
| 매크로 | 댓글 |
| COM_INTERFACE_ENTRY_IMPL | 사용 되지 않음. COM_INTERFACE_ENTRY 바꿉니다。 |
| COM_INTERFACE_ENTRY_IMPL_IID | 사용 되지 않음. COM_INTERFACE_ENTRY_IID 바꿉니다。 |
| CHAIN_MSG_MAP_ALT_DYNAMIC | 오래 된 및 삭제。 |
| BEGIN_PROPERTY_MAP | 사용 되지 않음. 새 매크로 에 설명 된 대로 새 속성 맵 매크로 BEGIN_PROP_MAP를 사용 하 여。 |
| END_PROPERTY_MAP | 사용 되지 않음. 새 매크로 에 설명 된 대로 새 속성 맵 매크로 END_PROP_MAP를 사용 하 여。 |