Changeset 630 for trunk/dll


Ignore:
Timestamp:
Apr 23, 2007, 12:07:06 AM (19 years ago)
Author:
Gregg Young
Message:

Improved fix of utility app path problem

Location:
trunk/dll
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r627 r630  
    17691769
    17701770                FILE *fp;
    1771                 CHAR fbuf[CCHMAXPATH];
    17721771
    17731772                fp = xfopen("$FM2PLAY.$$$", "w", pszSrcFile, __LINE__);
     
    17781777                  fprintf(fp, ";end\n");
    17791778                  fclose(fp);
    1780                   if (DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_ENVIRONMENT |
    1781                                  SEARCH_CUR_DIRECTORY,
    1782                                  "PATH", "FM2PLAY.EXE", fbuf, CCHMAXPATH - 1)){
    1783                     runemf2(SEPARATE | WINDOWED,
    1784                             HWND_DESKTOP,
    1785                             NULL,
    1786                             NULL,
    1787                             "%sFM2PLAY.EXE /@$FM2PLAY.$$$",
    1788                             "UTILS\\");
    1789                   }
    1790                    else {
    1791                      runemf2(SEPARATE | WINDOWED,
    1792                              HWND_DESKTOP,
    1793                              NULL,
    1794                              NULL,
    1795                              "FM2PLAY.EXE /@$FM2PLAY.$$$");
    1796                   }
     1779                  RunFM2Util("FM2PLAY.EXE", "/@$FM2PLAY.$$$");
    17971780                }
    17981781              }
  • trunk/dll/defview.c

    r627 r630  
    4242  BOOL played = FALSE;
    4343  CHAR loaderror[CCHMAXPATH];
    44   CHAR fbuf[CCHMAXPATH];
    4544  HMODULE MMIOModHandle = NULLHANDLE;
    4645  PMMIOIDENTIFYFILE pMMIOIdentifyFile = NULL;
     
    158157  if (!rc && mmFormatInfo.fccIOProc != FOURCC_DOS) {
    159158    if (mmFormatInfo.ulMediaType == MMIO_MEDIATYPE_IMAGE &&
    160         (mmFormatInfo.ulFlags & MMIO_CANREADTRANSLATED)) {
    161         /* is an image that can be translated */
    162       if (DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_ENVIRONMENT |
    163                         SEARCH_CUR_DIRECTORY,
    164                         "PATH", "IMAGE.EXE", fbuf, CCHMAXPATH - 1)){
    165         runemf2(SEPARATE | WINDOWED,
    166                 HWND_DESKTOP,
    167                 NULL,
    168                 NULL,
    169                 "%sIMAGE.EXE \"%s\"",
    170                 "UTILS\\", filename);
    171       }
    172       else {
    173         runemf2(SEPARATE | WINDOWED,
    174                 HWND_DESKTOP,
    175                 NULL,
    176                 NULL,
    177                 "IMAGE.EXE \"%s\"",
    178                 filename);
    179       }
     159        (mmFormatInfo.ulFlags & MMIO_CANREADTRANSLATED)) {
     160      // is an image that can be translated
     161      RunFM2Util("IMAGE.EXE", filename);
    180162      played = TRUE;
    181163    }
     
    189171          if  (!stricmp(p, ".OGG") || !stricmp(p, ".MP3") || !stricmp(p, ".FLAC"))
    190172              OpenObject(filename, Default, hwnd);  //FM2Play fails to play these
    191           else if (DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_ENVIRONMENT |
    192                                  SEARCH_CUR_DIRECTORY,
    193                                  "PATH", "FM2PLAY.EXE", fbuf, CCHMAXPATH - 1)){
    194                  runemf2(SEPARATE | WINDOWED,
    195                          HWND_DESKTOP,
    196                          NULL,
    197                          NULL,
    198                          "%sFM2PLAY.EXE \"%s\"",
    199                          "UTILS\\" , filename);
    200                }
    201                else {
    202                  runemf2(SEPARATE | WINDOWED,
    203                          HWND_DESKTOP,
    204                          NULL,
    205                          NULL,
    206                          "FM2PLAY.EXE \"%s\"",
    207                          filename);
    208                }
    209       played = TRUE;
     173          else
     174            RunFM2Util("FM2PLAY.EXE", filename);
     175          played = TRUE;
    210176    }
    211177  }
  • trunk/dll/fm3dll.def

    r564 r630  
    280280         FM3DllHandle                                 @266    NONAME
    281281         RootName                                     @267    NONAME
     282         RunFM2Util                                   @268    NONAME
  • trunk/dll/fm3dll.h

    r627 r630  
    868868/* systemf.c */
    869869BOOL ShowSession(HWND hwnd, PID pid);
     870INT RunFM2Util(CHAR *appname, CHAR *filename);
    870871INT ExecOnList(HWND hwnd, CHAR * command, INT flags, CHAR * tpath,
    871872               CHAR ** list, CHAR * prompt);
  • trunk/dll/systemf.c

    r563 r630  
    4040static PSZ pszSrcFile = __FILE__;
    4141
    42 #pragma alloc_text(SYSTEMF,ShowSession,ExecOnList,runemf2)
     42#pragma alloc_text(SYSTEMF,ShowSession,ExecOnList,runemf2,RunFM2Util)
    4343
    4444#define MAXSTRG (4096)                  /* used to build command line strings */
     45
     46//== RunFM2Util() Find and run an app from the FM2utilities ==
     47//== Search PATH plus 2 default install dirs ==
     48
     49INT RunFM2Util(CHAR *appname, CHAR *filename)
     50{
     51    CHAR fbuf[CCHMAXPATH];
     52    APIRET rc, ret = -1;
     53
     54    rc = DosSearchPath(SEARCH_IGNORENETERRS |SEARCH_ENVIRONMENT |
     55                       SEARCH_CUR_DIRECTORY,"PATH",
     56                       appname, fbuf, CCHMAXPATH - 1);
     57      if (rc != 0) {
     58        if (rc != 2){
     59        Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
     60                  "DosSearchPath", appname);
     61        return ret;
     62        }
     63        else {
     64        rc = DosSearchPath(0, "UTILS;..\\FM2Utils",
     65                           appname, fbuf, CCHMAXPATH - 1);
     66            if (rc != 0 && rc != 2){
     67              Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
     68                        "DosSearchPath", appname);
     69              return ret;
     70            }
     71      }
     72    }
     73    ret = runemf2(SEPARATE | WINDOWED,
     74                  HWND_DESKTOP,
     75                  NULL,
     76                  NULL,
     77                  "%s \"%s\"",
     78                  fbuf, filename);
     79    return ret;
     80}
    4581
    4682//== ShowSession() bring session for foreground ==
  • trunk/dll/worker.c

    r627 r630  
    10311031            {
    10321032              register INT x;
    1033               register ULONG total = strlen("FM2PLAY.EXE ");
     1033              register ULONG total;
    10341034              CHAR fbuf[CCHMAXPATH];
    10351035
     
    10371037                                SEARCH_CUR_DIRECTORY,
    10381038                                "PATH", "FM2PLAY.EXE", fbuf, CCHMAXPATH - 1))
    1039                 total += strlen("UTILS\\");
     1039                total += strlen("..\\FM2UTILS\\");
     1040              else
     1041                total = strlen(fbuf);
    10401042              for (x = 0; wk->li->list[x]; x++)
    10411043                total += (strlen(wk->li->list[x]) + 1 +
     
    10521054                  fprintf(fp, ";end\n");
    10531055                  fclose(fp);
    1054                   if (DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_ENVIRONMENT |
    1055                                  SEARCH_CUR_DIRECTORY,
    1056                                  "PATH", "FM2PLAY.EXE", fbuf, CCHMAXPATH - 1)){
    1057                     runemf2(SEPARATE | WINDOWED,
    1058                             HWND_DESKTOP,
    1059                             NULL,
    1060                             NULL,
    1061                             "%sFM2PLAY.EXE /#$FM2PLAY.$$$",
    1062                             "UTILS\\");
    1063                   }
    1064                    else {
    1065                      runemf2(SEPARATE | WINDOWED,
    1066                              HWND_DESKTOP,
    1067                              NULL,
    1068                              NULL,
    1069                              "FM2PLAY.EXE /#$FM2PLAY.$$$");
    1070                   }
     1056                  RunFM2Util("FM2PLAY.EXE", "/#$FM2PLAY.$$$");
    10711057                  break;
    10721058                }
Note: See TracChangeset for help on using the changeset viewer.