BUG: IOleControlSite::TransformCoords() Returns S_OK Instead of E_NOTIMPL (244817)
The information in this article applies to:
- The Microsoft Active Template Library (ATL) 3.0, when used with:
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 6.0
- Microsoft Visual C++, 32-bit Learning Edition 6.0
This article was previously published under Q244817 SYMPTOMS
If a client calls IOleControlSite::TransformCoords() on an ATL control container that is hosting ActiveX controls, the method returns S_OK but the returned values passed to TransformCoords() will be incorrect.
CAUSEIOleControlSite::TransformCoords() in ATL has no useful implementation but returns S_OK instead of E_NOTIMPL.
RESOLUTION
This can be worked around by copying the ATLHOST.h to something like FIXATLHOST.h in your \ATL\INCLUDE directory and making the change in FIXATLHOST.h to the TransformCoords() function. The function should be changed such that E_NOTIMPL is returned and not S_OK. Then, in Stdafx.h, comment out Atlhost.h and use Fixatlhost.h instead:
//#include <atlhost.h>
#include <fixatlhost.h>
NOTE: This technique will only work in Debug or ReleaseMinDependency builds. It will not work in ReleaseMinSize builds as ATL.dll would be used, not the code in FixAtlHost.h.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. REFERENCES
For more information lookup IOleControlSite::TransformCoords in Microsoft Developer's Network (MSDN).
Modification Type: | Major | Last Reviewed: | 12/11/2003 |
---|
Keywords: | kbBug kbContainer kbCtrl kbInprocSvr kbpending KB244817 |
---|
|