Don't assume WM_DESTROY is last message - listview sends notification after it. Confi...
[reactos.git] / reactos / dll / win32 / devmgr / hwpage.c
index 8bda2da..57b52d2 100644 (file)
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 /* $Id$
  *
@@ -181,7 +181,8 @@ UpdateControlStates(IN PHARDWARE_PAGE_DATA hpd)
         }
 
         /* get the location string */
-        if (GetDeviceLocationString(HwDevInfo->DevInfoData.DevInst,
+        if (GetDeviceLocationString(HwDevInfo->ClassDevInfo->hDevInfo,
+                                    &HwDevInfo->DevInfoData,
                                     0,
                                     szBuffer,
                                     sizeof(szBuffer) / sizeof(szBuffer[0])) &&
@@ -963,6 +964,9 @@ HardwareDlgProc(IN HWND hwndDlg,
 
             case WM_DESTROY:
             {
+               /* zero hpd pointer in window data, because it can be used later (WM_DESTROY has not to be last message) */
+               SetWindowLongPtr(hwndDlg, DWL_USER, (DWORD_PTR)NULL);
+                
                 /* free devices list */
                 FreeDevicesList(hpd);