VOID GROUP_ModifyGroup(PROGGROUP* hGroup) { WCHAR Dest[MAX_PATHNAME_LEN]; // szName WCHAR szGrpFile[MAX_PATHNAME_LEN]; // szFile wcsncpy(Dest, hGroup->hName, ARRAYSIZE(Dest)); wcsncpy(szGrpFile, hGroup->hGrpFile, ARRAYSIZE(szGrpFile)); if (!DIALOG_GroupAttributes(hGroup->format, Dest, szGrpFile, MAX_PATHNAME_LEN)) return; if (wcscmp(szGrpFile, hGroup->hGrpFile)) hGroup->bOverwriteFileOk = FALSE; MAIN_ReplaceString(&hGroup->hName, Dest); MAIN_ReplaceString(&hGroup->hGrpFile, szGrpFile); GRPFILE_WriteGroupFile(hGroup); /* FIXME Delete old GrpFile if GrpFile changed */ /* FIXME Update progman.ini */ SetWindowTextW(hGroup->hWnd, Dest); }
VOID GROUP_NewGroup(void) { CHAR szName[MAX_PATHNAME_LEN] = ""; CHAR szFile[MAX_PATHNAME_LEN] = ""; OFSTRUCT dummy; if (!DIALOG_GroupAttributes(szName, szFile, MAX_PATHNAME_LEN)) return; if (OpenFile(szFile, &dummy, OF_EXIST) == HFILE_ERROR) { /* File doesn't exist */ HLOCAL hGroup = GROUP_AddGroup(szName, szFile, SW_SHOWNORMAL, DEF_GROUP_WIN_XPOS, DEF_GROUP_WIN_YPOS, DEF_GROUP_WIN_WIDTH, DEF_GROUP_WIN_HEIGHT, 0, 0, FALSE, FALSE, FALSE); if (!hGroup) return; GRPFILE_WriteGroupFile(hGroup); } else /* File exist */ GRPFILE_ReadGroupFile(szFile); /* FIXME Update progman.ini */ }
VOID GROUP_ModifyGroup(HLOCAL hGroup) { PROGGROUP *group = LocalLock(hGroup); CHAR szName[MAX_PATHNAME_LEN]; CHAR szFile[MAX_PATHNAME_LEN]; lstrcpyn(szName, LocalLock(group->hName), MAX_PATHNAME_LEN); lstrcpyn(szFile, LocalLock(group->hGrpFile), MAX_PATHNAME_LEN); if (!DIALOG_GroupAttributes(szName, szFile, MAX_PATHNAME_LEN)) return; if (strcmp(szFile, LocalLock(group->hGrpFile))) group->bOverwriteFileOk = FALSE; MAIN_ReplaceString(&group->hName, szName); MAIN_ReplaceString(&group->hGrpFile, szFile); GRPFILE_WriteGroupFile(hGroup); /* FIXME Delete old GrpFile if GrpFile changed */ /* FIXME Update progman.ini */ SetWindowText(group->hWnd, szName); }
VOID GROUP_NewGroup(GROUPFORMAT format, BOOL bIsCommonGroup) { HANDLE hFile; WCHAR szGrpFile[MAX_PATHNAME_LEN] = L""; WCHAR szTitle[MAX_PATHNAME_LEN] = L""; // ZeroMemory(szTitle, sizeof(szTitle)); // ZeroMemory(szGrpFile, sizeof(szGrpFile)); if (!DIALOG_GroupAttributes(format, szTitle, szGrpFile, MAX_PATHNAME_LEN)) return; /* * Just check whether the group file does exist. If it does, close the handle, because GRPFILE_ReadGroupFile will * reopen the file for loading. If it doesn't exist, we create a new one. */ hFile = CreateFileW(szGrpFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { /* File doesn't exist */ PROGGROUP* hGroup = GROUP_AddGroup(format, bIsCommonGroup, szTitle, szGrpFile, DEF_GROUP_WIN_XPOS, DEF_GROUP_WIN_YPOS, DEF_GROUP_WIN_XPOS + DEF_GROUP_WIN_WIDTH, DEF_GROUP_WIN_YPOS + DEF_GROUP_WIN_HEIGHT, 0, 0, SW_SHOWNORMAL, 0, 0, FALSE, FALSE); if (hGroup) GRPFILE_WriteGroupFile(hGroup); } else { /* File exist */ CloseHandle(hFile); GRPFILE_ReadGroupFile(szGrpFile, bIsCommonGroup); } /* FIXME Update progman.ini */ }