summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2011-04-06 14:21:42 (GMT)
committer Simon <simon@hardwired.org.uk>2011-04-08 10:10:52 (GMT)
commit4aeac8b316492491f84b9e6ac8b8b9a50e4cb806 (patch)
treec45b740d957b4531018c9494afbd82251b3f4263 /src
parent29e41a0a0cfb9a83802fc3a3fe283a6d272b3331 (diff)
downloadpowder-4aeac8b316492491f84b9e6ac8b8b9a50e4cb806.zip
powder-4aeac8b316492491f84b9e6ac8b8b9a50e4cb806.tar.gz
Also register .stm extension in Windows
Diffstat (limited to 'src')
-rw-r--r--src/misc.c16
-rw-r--r--src/update.c2
2 files changed, 13 insertions, 5 deletions
diff --git a/src/misc.c b/src/misc.c
index 09d50f2..3b147bd 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -419,12 +419,9 @@ int register_extension()
#if defined WIN32
LONG rresult;
HKEY newkey;
- char currentfilename[MAX_PATH] = "";
+ char *currentfilename = exe_name();
char *iconname;
char *opencommand;
- if (!GetModuleFileName(NULL, currentfilename, MAX_PATH))
- return 0;
- currentfilename[MAX_PATH-1] = 0;
iconname = malloc(strlen(currentfilename)+6);
opencommand = malloc(strlen(currentfilename)+13);
sprintf(iconname, "%s,-102", currentfilename);
@@ -442,6 +439,17 @@ int register_extension()
}
RegCloseKey(newkey);
+ rresult = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\.stm", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &newkey, NULL);
+ if (rresult != ERROR_SUCCESS) {
+ return 0;
+ }
+ rresult = RegSetValueEx(newkey, 0, 0, REG_SZ, (LPBYTE)"PowderToySave", strlen("PowderToySave")+1);
+ if (rresult != ERROR_SUCCESS) {
+ RegCloseKey(newkey);
+ return 0;
+ }
+ RegCloseKey(newkey);
+
//Create program entry
rresult = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\PowderToySave", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &newkey, NULL);
if (rresult != ERROR_SUCCESS) {
diff --git a/src/update.c b/src/update.c
index 46712d7..e2c6faf 100644
--- a/src/update.c
+++ b/src/update.c
@@ -39,7 +39,7 @@
#include <update.h>
-static char *exe_name(void)
+char *exe_name(void)
{
#if defined WIN32
char *name= (char *)malloc(64), max=64, res;