ATL: What is the difference between the _ATL_DEBUG_REFCOUNT and _ATL_DEBUG_INTERFACES macros?

I have just always used _ATL_DEBUG_INTERFACES and never really considered using _ATL_DEBUG_REFCOUNT.  After investigating this further, this is what I found (referring to ATL v7.1):

From Atldef.h:


So, if you use _ATL_DEBUG_REFCOUNT, it is going to automatically define _ATL_DEBUG_INTERFACES for you if you haven’t done so already.  This is the only reference to _ATL_DEBUG_REFCOUNT in the ATL source. So, to answer the question – there is no difference.

I suspect that prior to ATL v3.0, all the _ATL_DEBUG_INTERFACES that are sprinkled throughout the ATL code were previously _ATL_DEBUG_REFCOUNT references.  Then when v3.0 came along, they changed the naming convention and called it _ATL_DEBUG_INTERFACES.  So, it looks like _ATL_DEBUG_REFCOUNT is there simply for ‘backward compatibility’ to ATL v2.x.

Comments (0)