| Question |
|
I'm trying to compile ATL code and the compiler is dying on a QueryInterface call. How do I get rid of this? |
| Answer |
|
The ATL wants to compile a special templatized version of QueryInterface: template <class Q>
HRESULT QueryInterface(Q** pp) const
{
ATLASSERT(pp != NULL && *pp == NULL);
return p->QueryInterface(__uuidof(Q), (void**)pp);
}
This happens because of a conditional statement in one of the ATL header files.#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE) In the file unknwn.h. This leads to the pointer you're using (the one that causes this error) having, not the ATL template-wrapper QueryInterface, but the standard one. In order to fix this, simply redefine _MSC_VER in your project conditionals so that the correct behavior is produced. |
Last Modified: 20-JUN-00