[BROWSEUI]
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Tue, 8 Nov 2016 23:38:42 +0000 (23:38 +0000)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Tue, 8 Nov 2016 23:38:42 +0000 (23:38 +0000)
commit2c118e18904ba705a8cd2d0d9c01867161d80fbe
treef03cec07477cb28848641ec8e425ed6dd618b0aa
parenta0aeb266fab72a935e5591040876563aebca6199
[BROWSEUI]
- CAddressBand: Call the SetOwner method with NULL parameter to CAddressEditBox to let it know that it should deinitialize.
- CAddressEditBox: Release the connection with the browse window and release the pointer to the site during deinitialization.
- CInternetToolbar: Destroy the toolbar and release pointers when CloseDW method gets called.
- CBaseBar: Destroy the window when SetClient is called with NULL parameter.
- CToolbarProxy: Add a Destroy method to release resources because we hold a pointer to the CInternetToolbar.
- CShellBrowser: When storing the pointer  to the new basebar add a new reference because we directly change the pointer in the smart pointer and not the smart pointer itself. Destroy the toolbar proxy and properly release all references to containted objects. Also expect the reference count of the shell view to reach zero after the internet toolbar gets freed because it also keeps a reference.

This should fix all the leaking objects and windows when closing the shell browser. It should also fix CORE-12066.

svn path=/trunk/; revision=73175
reactos/dll/win32/browseui/addressband.cpp
reactos/dll/win32/browseui/addresseditbox.cpp
reactos/dll/win32/browseui/basebar.cpp
reactos/dll/win32/browseui/internettoolbar.cpp
reactos/dll/win32/browseui/shellbrowser.cpp