diff options
| author | Simon <simon@hardwired.org.uk> | 2011-03-25 11:10:01 (GMT) |
|---|---|---|
| committer | Simon <simon@hardwired.org.uk> | 2011-03-25 11:10:01 (GMT) |
| commit | 66edafa4fac3ac5038f347102fc620a160cee622 (patch) | |
| tree | cecce7a8296889dfca5d05591ee829b27e5b89a4 /src | |
| parent | bc58ff1479d1de476aa2581fcbbb3edae0af9171 (diff) | |
| download | powder-66edafa4fac3ac5038f347102fc620a160cee622.zip powder-66edafa4fac3ac5038f347102fc620a160cee622.tar.gz | |
Added some file association for Windows, NOT TESTED YET
Diffstat (limited to 'src')
| -rw-r--r-- | src/misc.c | 72 |
1 files changed, 72 insertions, 0 deletions
@@ -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}; |
