gpdf2swf fixes
[swftools.git] / installer / installer.c
index 05017f4..b62721d 100644 (file)
@@ -44,6 +44,7 @@ static char path_programfiles[MAX_PATH] = "\0";
 static char pathBuf[MAX_PATH];
 static int do_abort = 0;
 
+static char* pdf2swf_dir;
 static char* pdf2swf_path;
 
 static char registry_path[1024];
@@ -425,7 +426,7 @@ BOOL CALLBACK PropertySheetFunc2(HWND hwnd, UINT message, WPARAM wParam, LPARAM
        }
     }
     if(message == WM_NOTIFY && (((LPNMHDR)lParam)->code == PSN_SETACTIVE)) {
-        if(!elevated && !has_full_access && config_forAllUsers) {
+        if(!elevated && !has_full_access) {
             OSVERSIONINFO winverinfo;
             memset(&winverinfo, 0, sizeof(OSVERSIONINFO));
             winverinfo.dwOSVersionInfoSize = sizeof(winverinfo);
@@ -557,16 +558,21 @@ static HRESULT (WINAPI *f_SHGetSpecialFolderPath)(HWND hwnd, LPTSTR lpszPath, in
 
 BOOL CALLBACK PropertySheetFunc4(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
     if(message == WM_INITDIALOG) {
-       pdf2swf_path = concatPaths(install_path, "pdf2swf_gui.exe");
+       pdf2swf_dir = install_path; //concatPaths(install_path, "gpdf2swf");
+       pdf2swf_path = concatPaths(pdf2swf_dir, "gpdf2swf.exe");
        FILE*fi = fopen(pdf2swf_path, "rb");
        if(fi) {
            printf("a GUI program exists, creating desktop/startmenu links\n");
            config_createLinks = 1;
            fclose(fi);
+       } else {
+           config_createLinks = 0;
+           config_createStartmenu = 0;
+           config_createDesktop = 0;
        }
        if(!config_createLinks) {
-           SendDlgItemMessage(hwnd, IDC_STARTMENU, SW_HIDE, 0, 0);
-           SendDlgItemMessage(hwnd, IDC_DESKTOP, SW_HIDE, 0, 0);
+           SendDlgItemMessage(hwnd, IDC_STARTMENU, BN_DISABLE, 0, 0);
+           SendDlgItemMessage(hwnd, IDC_DESKTOP, BN_DISABLE, 0, 0);
        }
 
        SendDlgItemMessage(hwnd, IDC_STARTMENU, BM_SETCHECK, config_createStartmenu, 0);
@@ -575,13 +581,17 @@ BOOL CALLBACK PropertySheetFunc4(HWND hwnd, UINT message, WPARAM wParam, LPARAM
     if(message == WM_COMMAND) {
        if((wParam&0xffff) == IDC_STARTMENU) {
            config_createStartmenu = SendDlgItemMessage(hwnd, IDC_STARTMENU, BM_GETCHECK, 0, 0);
-           config_createStartmenu^=1;
+           if(config_createLinks) {
+               config_createStartmenu^=1;
+           }
            SendDlgItemMessage(hwnd, IDC_STARTMENU, BM_SETCHECK, config_createStartmenu, 0);
            return 0;
        }
        if((wParam&0xffff) == IDC_DESKTOP) {
            config_createDesktop = SendDlgItemMessage(hwnd, IDC_DESKTOP, BM_GETCHECK, 0, 0);
-           config_createDesktop^=1;
+           if(config_createLinks) {
+               config_createDesktop^=1;
+           }
            SendDlgItemMessage(hwnd, IDC_DESKTOP, BM_SETCHECK, config_createDesktop, 0);
            return 0;
        }
@@ -615,7 +625,7 @@ BOOL CALLBACK PropertySheetFunc4(HWND hwnd, UINT message, WPARAM wParam, LPARAM
            if(config_createDesktop && path_desktop[0]) {
                char* linkName = concatPaths(path_desktop, "pdf2swf.lnk");
                 printf("Creating desktop link %s -> %s\n", linkName, pdf2swf_path);
-               if(!CreateShortcut(pdf2swf_path, "pdf2swf", linkName, 0, 0, 0, install_path)) {
+               if(!CreateShortcut(pdf2swf_path, "pdf2swf", linkName, 0, 0, 0, pdf2swf_dir)) {
                    MessageBox(0, "Couldn't create desktop shortcut", INSTALLER_NAME, MB_OK);
                    return 1;
                }
@@ -625,7 +635,7 @@ BOOL CALLBACK PropertySheetFunc4(HWND hwnd, UINT message, WPARAM wParam, LPARAM
                CreateDirectory(group, 0);
                 addDir(group);
                char* linkName = concatPaths(group, "pdf2swf.lnk");
-               if(!CreateShortcut(pdf2swf_path, "pdf2swf", concatPaths(group, "pdf2swf.lnk"), 0, 0, 0, install_path) ||
+               if(!CreateShortcut(pdf2swf_path, "pdf2swf", concatPaths(group, "pdf2swf.lnk"), 0, 0, 0, pdf2swf_dir) ||
                   !CreateShortcut(uninstall_path, "uninstall", concatPaths(group, "uninstall.lnk"), 0, 0, 0, install_path)) {
                    MessageBox(0, "Couldn't create start menu entry", INSTALLER_NAME, MB_OK);
                    return 1;