+ LoadStringA(shell32_hInstance,IDS_PROPSHEET_VARIOUS,
+ various_str,sizeof(various_str));
+ LoadStringW(shell32_hInstance,IDS_PROPSHEET_COUNT_FORMAT,
+ count_format,sizeof(count_format)/sizeof(WCHAR));
Why -A call here?
+static INT_PTR DefaultPropSheet_OnNotify(HWND hwndDlg,WPARAM wParam, NMHDR *header)
+{
+ switch(header->code)
+ {
+ case PSN_APPLY:
+ {
+ UINT index;
+ PROPSHEETPAGEW *page;
+ DefaultPropSheet *propsheet;
+ WCHAR name[MAX_PATH];
+ UINT readonly_state, hidden_state;
+ UINT i;
+ index = SendMessageW(GetParent(hwndDlg),PSM_HWNDTOINDEX,(WPARAM)hwndDlg,0);
+ page = (PROPSHEETPAGEW*)SendMessageW(GetParent(hwndDlg),PSM_INDEXTOPAGE,index,0);
+ propsheet = (DefaultPropSheet*)page->lParam;
+
+ /*set name*/
+ if(propsheet->cidl==1)
+ {
+ BOOL is_folder;
+ LPCITEMIDLIST pidl_child;
+ LPITEMIDLIST pidl,pidl_new,pidl_child_new,temp;
+ IShellFolder *folder;
+ WCHAR old_name[MAX_PATH];
+ GetDlgItemTextW(hwndDlg,IDC_PROPSHEET_NAME,name,sizeof(name)/sizeof(WCHAR));
+ pidl = ILCombine(propsheet->folder_pidl,propsheet->apidl[0]);
+ is_folder = _ILIsFolder(pidl);
+ temp = ILClone(pidl);
+ ILRemoveLastID(temp);
+ SHBindToParent(pidl,&IID_IShellFolder,(void**)&folder,&pidl_child);
+ ILGetDisplayNameExW(folder, pidl_child, old_name,SHGDN_NORMAL);
+ if(strcmpW(old_name,name)!=0)
+ {
+ if(SUCCEEDED(IShellFolder_SetNameOf(folder,hwndDlg,pidl_child,name,SHGDN_NORMAL,&pidl_child_new)))
+ {
+ pidl_new = ILCombine(temp,pidl_child_new);
+ SHChangeNotify(is_folder ? SHCNE_RENAMEFOLDER : SHCNE_RENAMEITEM,SHCNF_IDLIST,pidl,pidl_new);
+ ILFree(pidl_child_new);
+ ILFree(pidl_new);
+ }
+ }
+ ILFree(temp);
+ ILFree(pidl);
+ IShellFolder_Release(folder);
+ }
+ /*set readonly/hidden*/
+ readonly_state = IsDlgButtonChecked(hwndDlg,IDC_PROPSHEET_READONLY);
+ hidden_state = IsDlgButtonChecked(hwndDlg,IDC_PROPSHEET_HIDDEN);
+ for(i=0;i<propsheet->cidl;i++)
+ {
+ LPITEMIDLIST pidl;
+ WCHAR path[MAX_PATH];
+ DWORD attributes;
+ pidl = ILCombine(propsheet->folder_pidl,propsheet->apidl[0]);
+ SHGetPathFromIDListW(pidl,path);
+ ILFree(pidl);
+ attributes = GetFileAttributesW(path);
+ switch(readonly_state)
+ {
+ case BST_CHECKED:
+ attributes |= FILE_ATTRIBUTE_READONLY;
+ break;
+ case BST_UNCHECKED:
+ attributes &= ~FILE_ATTRIBUTE_READONLY;
+ break;
+ }
+ switch(hidden_state)
+ {
+ case BST_CHECKED:
+ attributes |= FILE_ATTRIBUTE_HIDDEN;
+ break;
+ case BST_UNCHECKED:
+ attributes &= ~FILE_ATTRIBUTE_HIDDEN;
+ break;
+ }
+ SetFileAttributesW(path,attributes);
+ }
+ break;
+ }
+ case PSN_RESET:
+ {
+ UINT index;
+ PROPSHEETPAGEW *page;
+ DefaultPropSheet *propsheet;
+ index = SendMessageW(GetParent(hwndDlg),PSM_HWNDTOINDEX,(WPARAM)hwndDlg,0);
+ page = (PROPSHEETPAGEW*)SendMessageW(GetParent(hwndDlg),PSM_INDEXTOPAGE,index,0);
+ propsheet = ((DefaultPropSheet*)page->lParam);
+ IShellPropSheetExt_Release(&propsheet->IShellPropSheetExt_iface);
+ }
Missed 'break' probably?