INT_PTR CALLBACK
CFileDefExt::GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
+ CFileDefExt *pFileDefExt = reinterpret_cast<CFileDefExt *>(GetWindowLongPtr(hwndDlg, DWLP_USER));
switch (uMsg)
{
case WM_INITDIALOG:
TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %S\n", hwndDlg, lParam, ppsp->lParam);
- CFileDefExt *pFileDefExt = reinterpret_cast<CFileDefExt *>(ppsp->lParam);
+ pFileDefExt = reinterpret_cast<CFileDefExt *>(ppsp->lParam);
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pFileDefExt);
pFileDefExt->InitGeneralPage(hwndDlg);
break;
case WM_COMMAND:
if (LOWORD(wParam) == 14024) /* Opens With - Change */
{
- CFileDefExt *pFileDefExt = reinterpret_cast<CFileDefExt *>(GetWindowLongPtr(hwndDlg, DWLP_USER));
OPENASINFO oainfo;
oainfo.pcszFile = pFileDefExt->m_wszPath;
oainfo.pcszClass = NULL;
LPPSHNOTIFY lppsn = (LPPSHNOTIFY)lParam;
if (lppsn->hdr.code == PSN_APPLY)
{
- CFileDefExt *pFileDefExt = reinterpret_cast<CFileDefExt *>(GetWindowLongPtr(hwndDlg, DWLP_USER));
-
/* Update attributes first */
DWORD dwAttr = GetFileAttributesW(pFileDefExt->m_wszPath);
if (dwAttr)
}
break;
}
+ case PSM_QUERYSIBLINGS:
+ {
+ // reset icon
+ HWND hIconCtrl = GetDlgItem(hwndDlg, 14025);
+ HICON hIcon = (HICON)SendMessageW(hIconCtrl, STM_GETICON, 0, 0);
+ DestroyIcon(hIcon);
+ hIcon = NULL;
+ SendMessageW(hIconCtrl, STM_SETICON, (WPARAM)hIcon, 0);
+
+ // refresh the page
+ pFileDefExt->InitGeneralPage(hwndDlg);
+ return FALSE; // continue
+ }
default:
break;
}
break;
case WM_DESTROY:
break;
+ case PSM_QUERYSIBLINGS:
+ return FALSE; // continue
default:
break;
}
break;
}
+ case PSM_QUERYSIBLINGS:
+ return FALSE; // continue
+
case WM_DESTROY:
pFileDefExt->OnFolderCustDestroy(hwndDlg);
break;
attrs |= FILE_ATTRIBUTE_READONLY;
SetFileAttributesW(m_wszPath, attrs);
+ // notify to the siblings
+ PropSheet_QuerySiblings(GetParent(hwndDlg), 0, 0);
+
// done!
m_bFolderIconIsSet = FALSE;
}