Added some file association for Windows, NOT TESTED YET

This commit is contained in:
Simon 2011-03-25 11:10:01 +00:00
parent bc58ff1479
commit 66edafa4fa
2 changed files with 78 additions and 0 deletions

View File

@ -69,6 +69,12 @@ void strappend(char *dst, char *src);
void *file_load(char *fn, int *size); void *file_load(char *fn, int *size);
void clipboard_push_text(char * text);
char * clipboard_pull_text();
int register_extension();
int cpu_check(void); int cpu_check(void);
// a b // a b

View File

@ -380,6 +380,78 @@ char * clipboard_pull_text()
return ""; 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}; vector2d v2d_zero = {0,0};
matrix2d m2d_identity = {1,0,0,1}; matrix2d m2d_identity = {1,0,0,1};