Microsoft KB Archive/168123

= FIX: CWindow::GetTopLevelWindow Returns NULL =

Article ID: 168123

Article Last Modified on 10/2/2003

-

APPLIES TO


 * Microsoft ActiveX Template Library 2.1
 * Microsoft ActiveX Template Library 3.0

-



This article was previously published under Q168123





SYMPTOMS
A call to CWindow::GetTopLevelWindow always returns NULL.



CAUSE
This is due to a bug in the function.



RESOLUTION
Change the function in AtlWin.cpp from: HWND CWindow::GetTopLevelWindow const {     ...      while(hWndTmp != NULL) {        hWndTmp = (::GetWindowLong(hWndParent, GWL_STYLE) & WS_CHILD) ? ::GetParent(hWndParent) : ::GetWindow(hWndParent, GW_OWNER);

hWndParent = hWndTmp; }

return hWndParent; } to the following: HWND CWindow::GetTopLevelWindow const {     ...      while(hWndTmp != NULL) {        // Modification hWndParent = hWndTmp;

hWndTmp = (::GetWindowLong(hWndParent, GWL_STYLE) & WS_CHILD) ? ::GetParent(hWndParent) : ::GetWindow(hWndParent, GW_OWNER);

}

return hWndParent; }



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in Visual C++ version 6.0 for Windows.

(c) Microsoft Corporation 1997, All Rights Reserved. Contributions by Sridhar Madhugiri, Microsoft Corporation

Additional query words: GetTopLevelWindow NULL kbatl210bug kbctrl kbvc600fix kbserver kbinternet

Keywords: kbbug kbfix kbinprocsvr kbvc600fix kbserver kbatl300fix kbatlwc KB168123

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.