summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-03-25 11:10:01 (GMT)
committer Simon <simon@hardwired.org.uk>2011-03-25 11:10:01 (GMT)
commit66edafa4fac3ac5038f347102fc620a160cee622 (patch)
treececce7a8296889dfca5d05591ee829b27e5b89a4 /src
parentbc58ff1479d1de476aa2581fcbbb3edae0af9171 (diff)
downloadpowder-66edafa4fac3ac5038f347102fc620a160cee622.zip
powder-66edafa4fac3ac5038f347102fc620a160cee622.tar.gz
Added some file association for Windows, NOT TESTED YET
Diffstat (limited to 'src')
-rw-r--r--src/misc.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/misc.c b/src/misc.c
index e08fa68..1a99a71 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -380,6 +380,78 @@ char * clipboard_pull_text()
return "";
}
+int register_extension()
+{
+#if defined WIN32
+
+ LONG rresult;
+ HKEY newkey;
+ char *currentfilename;
+ char *iconname;
+ char *opencommand;
+ currentfilename = exe_name();
+ iconname = malloc(strlen(currentfilename)+3);
+ opencommand = malloc(strlen(currentfilename)+13);
+ sprintf(iconname, "%s,1", currentfilename);
+ sprintf(opencommand, "\"%s\" open:\"%%1\"", currentfilename);
+
+ //Create extension entry
+ rresult = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\.cps", 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){
+ return 0;
+ }
+ rresult = RegSetValueEx(newkey, 0, 0, REG_SZ, (LPBYTE)"Powder Toy Save", strlen("Powder Toy Save")+1);
+ if(rresult != ERROR_SUCCESS){
+ RegCloseKey(newkey);
+ return 0;
+ }
+ RegCloseKey(newkey);
+
+ //Set DefaultIcon
+ rresult = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\PowderToySave\\DefaultIcon", 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)iconname, strlen(iconname)+1);
+ if(rresult != ERROR_SUCCESS){
+ RegCloseKey(newkey);
+ return 0;
+ }
+ RegCloseKey(newkey);
+
+ //Set Launch command
+ rresult = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\PowderToySave\\shell\\open\\command", 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)opencommand, strlen(opencommand)+1);
+ if(rresult != ERROR_SUCCESS){
+ RegCloseKey(newkey);
+ return 0;
+ }
+ RegCloseKey(newkey);
+
+ return 1;
+#elif defined LIN32
+ return 0;
+#elif defined LIN64
+ return 0;
+#elif definded MACOSX
+ return 0;
+#endif
+}
vector2d v2d_zero = {0,0};
matrix2d m2d_identity = {1,0,0,1};