source: trunk/gsinstaller/gsProfile.cpp@ 1475

Last change on this file since 1475 was 1475, checked in by cs025, 24 years ago

Updated sources with most of uninstall added

  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1#include "gsProfile.h"
2
3#include <stdio.h>
4
5gsProfile::gsProfile(installManager &manager, string fileName)
6 : installAgent(manager)
7{ this->fileName = fileName;
8}
9
10void gsProfile::logAction(string action, string sectionName, string item,
11 string value)
12{ manager->writeString(action);
13 manager->writeSeparator();
14 manager->writeString(this->fileName);
15 manager->writeSeparator();
16 manager->writeString(sectionName);
17 manager->writeSeparator();
18 manager->writeString(item);
19 manager->writeSeparator();
20 manager->writeString(value);
21 manager->writeString("\n");
22}
23
24bool gsProfile::undoAction(string actionName, stringArray &params)
25{ if (actionName == "ProfileAddListMember")
26 { this->removeListMember(params[0], params[1], params[2]);
27 return true;
28 }
29 return false;
30}
31
32bool gsProfile::ensureListMember(string sectionName, string listName,
33 string listMember)
34{ char buffer[256] = "\0";
35 stringArray *members;
36 bool reply = true;
37
38 if (GetPrivateProfileString(sectionName.c_str(), listName.c_str(), "",
39 buffer, 256, this->fileName.c_str()) <= 0)
40 { buffer[0] = '\0';
41 }
42 // add if needsbe
43 members = new stringArray(buffer, ";");
44 if (members->includes(listMember) == false)
45 { members->add(listMember);
46 members->writeToCString(buffer, ";", 256);
47
48 reply = this->writeString(sectionName, listName, buffer);
49 if (reply)
50 { this->logAction("ProfileAddListMember", sectionName, listName, listMember);
51 }
52 }
53 delete members;
54 return reply;
55}
56
57bool gsProfile::addListMember(string sectionName, string listName, string listMember)
58{ char buffer[256];
59 stringArray *members;
60
61 GetPrivateProfileString(sectionName.c_str(), listName.c_str(), "",
62 buffer, 256, this->fileName.c_str());
63 // straightforward, unthinking, add
64 members = new stringArray(buffer, ";");
65 members->add(listMember);
66 members->writeToCString(buffer, ";", 256);
67 delete members;
68 return this->writeString(sectionName, listName, buffer);
69}
70
71bool gsProfile::removeListMember(string sectionName, string listName, string listMember)
72{ char buffer[256];
73 stringArray *members;
74
75 GetPrivateProfileString(sectionName.c_str(), listName.c_str(), "",
76 buffer, 256, this->fileName.c_str());
77 // straightforward, unthinking, removal - if it isn't there, we won't need to
78 // worry!
79 members = new stringArray(buffer, ";");
80 members->remove(listMember);
81 members->writeToCString(buffer, ";", 256);
82 delete members;
83
84 return this->writeString(sectionName, listName, buffer);
85}
86
87bool gsProfile::writeString(string sectionName, string itemName, string itemValue)
88{ if (!WritePrivateProfileString( sectionName.c_str(), itemName.c_str(),
89 itemValue.c_str(), this->fileName.c_str()))
90 { DWORD error = GetLastError();
91 char buffer[20];
92 sprintf(buffer, "%lx", error);
93 MessageBox(0, buffer, "", MB_OK);
94 }
95 return true;
96}
Note: See TracBrowser for help on using the repository browser.