summaryrefslogtreecommitdiffabout
path: root/install/install.cpp
authorMichael Krelin <hacker@klever.net>2004-07-05 01:53:09 (UTC)
committer Michael Krelin <hacker@klever.net>2004-07-05 01:53:09 (UTC)
commit885f8cc426a8840ae61023b75f3f0e4a1e268082 (patch) (side-by-side diff)
tree5e942d450c97ca0bf0f9cfb80aa0fefb486535d9 /install/install.cpp
downloadkinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.zip
kinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.tar.gz
kinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.tar.bz2
initial commit into svn repository
git-svn-id: http://svn.klever.net/kin/kinsole/trunk@1 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (limited to 'install/install.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--install/install.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/install/install.cpp b/install/install.cpp
new file mode 100644
index 0000000..e6f4e5a
--- a/dev/null
+++ b/install/install.cpp
@@ -0,0 +1,65 @@
+#include "resource.h"
+#include "../shared-code/install.h"
+
+#define KINAME "KINSole 1.00 Beta 3"
+#define SKINAME "KINSole"
+
+BOOL Install(void)
+{
+STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.",SKINAME "Path");
+STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath");
+LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings");
+STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath);
+ if(!path)
+ return NULL;
+STRING winDir(_MAX_PATH);
+
+ GetWindowsDirectory(winDir,_MAX_PATH);
+ INSTALLFILE("KINSole.ex_",winDir,"KINSole.exe");
+ MAKE_PATH(path);
+STRING shortPath = GET_SHORT_PATH(path);
+ if(!shortPath){
+ MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
+ return FALSE;
+ }
+ if(!(
+ INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") &&
+ INSTALLFILE("KINSole.cn_",path,"KINSole.cnt")
+ )){
+ MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
+ return FALSE;
+ }
+ ADDMENU("Accessories\\Klever Co.","KINSole Help",path,SKINAME ".hlp");
+ strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.", SKINAME "Path",path);
+ strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath",path);
+FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF");
+ if(!inf){
+ MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK);
+ return FALSE;
+ }
+ INF_FILE_HEADER(inf);
+ INF_FILE_SECTION(inf,"Uninstall");
+ fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n");
+
+ INF_FILE_SECTION(inf,"kFiles");
+ INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath);
+ INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME);
+ INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf");
+
+ INF_REMOVE_ROOT(inf,SKINAME "WFiles",winDir);
+ INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe");
+
+ INF_FILE_SECTION(inf,"kReg");
+ INF_UNINSTALL_REG(inf,SKINAME);
+
+ INF_FILE_SECTION(inf,"kMenu");
+ INF_MENU_GROUP(inf,1,"Accessories\\Klever Co.");
+ INF_MENU_ITEM(inf,1,"KINSole Help");
+ fclose(inf);
+
+ REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall");
+
+ MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in Programs/Accessories/Klever Co. menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK);
+
+ return TRUE;
+}