Changeset 1645 for trunk/dll/defview.c


Ignore:
Timestamp:
Oct 31, 2011, 3:23:03 AM (14 years ago)
Author:
Gregg Young
Message:

Yet another attempt to get MMPM2 to behave with modern (and not so modern) codecs and IOprocs. Should prevent traps in GBM.DLL even for individuals not using the latest version. The version of JPEGIO.DLL which "fixes" it has not been publicly released.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/defview.c

    r1497 r1645  
    102102  }
    103103  else {
    104     if (DosQueryProcAddr(MMIOModHandle,
    105                          0,
    106                          "mmioIdentifyFile", (PFN *) &pMMIOIdentifyFile)) {
    107       DosFreeModule(MMIOModHandle);
    108       no_mmos2 = TRUE;
    109       return played;
     104    ULONG cmp;
     105    CHAR cmps[5];
     106
     107    p = strrchr(filename, '.');
     108    if (p) {
     109      cmps[0] = '.';
     110      cmps[1] = toupper(p[1]);
     111      cmps[2] = toupper(p[2]);
     112      cmps[3] = toupper(p[3]);
     113      if (p[4]) {
     114        cmps[4] = toupper(p[4]);
     115        cmps[5] = 0;
     116      }
     117      else
     118        cmps[4] = 0;
     119 
     120      cmp = *(ULONG *) cmps;
     121      if (cmp == *(ULONG *) PCSZ_DOTBMP  || cmp == *(ULONG *) PCSZ_DOTJPEG ||
     122          cmp == *(ULONG *) PCSZ_DOTMP3  || cmp == *(ULONG *) PCSZ_DOTJPG  ||
     123          cmp == *(ULONG *) PCSZ_DOTMPEG || cmp == *(ULONG *) PCSZ_DOTFLAC ||
     124          cmp == *(ULONG *) ".TIF" || cmp == *(ULONG *) ".PCX" ||
     125          cmp == *(ULONG *) ".TGA" || cmp == *(ULONG *) ".MOV" ||
     126          cmp == *(ULONG *) ".PNG" || cmp == *(ULONG *) ".AVI" ||
     127          cmp == *(ULONG *) ".OGG" || cmp == *(ULONG *) ".MID" ||
     128          cmp == *(ULONG *) ".PCD" || cmp == *(ULONG *) ".FLC" ||
     129          cmp == *(ULONG *) ".GIF" || cmp == *(ULONG *) ".FLA" ||
     130          cmp == *(ULONG *) ".IFF" || cmp == *(ULONG *) ".SND" ||
     131          cmp == *(ULONG *) "._AU" || cmp == *(ULONG *) ".AIF" ||
     132          cmp == *(ULONG *) ".VID" || cmp == *(ULONG *) ".WAV" ||
     133          cmp == *(ULONG *) "._IM" || cmp == *(ULONG *) ".RDI" ||
     134          cmp == *(ULONG *) PCSZ_DOTMPG)  {
     135        if (DosQueryProcAddr(MMIOModHandle, 0,
     136                             "mmioIdentifyFile", (PFN *) &pMMIOIdentifyFile)) {
     137          DosFreeModule(MMIOModHandle);
     138          no_mmos2 = TRUE;
     139          return played;
     140        }
     141      }
     142      else
     143        return played;
    110144    }
    111145  }
     
    126160    if (mmFormatInfo.ulMediaType == MMIO_MEDIATYPE_IMAGE &&
    127161        (mmFormatInfo.ulFlags & MMIO_CANREADTRANSLATED)) {
    128       if (!stricmp(p, PCSZ_DOTJPG) || !stricmp(p, PCSZ_DOTJPEG))
     162      //if (!stricmp(p, PCSZ_DOTJPG) || !stricmp(p, PCSZ_DOTJPEG))
    129163        OpenObject(filename, Default, hwnd);  //Image fails to display these
    130       else       // is an image that can be translated
    131         RunFM2Util(PCSZ_IMAGEEXE, filename);
     164     // else       // is an image that can be translated
     165      //  RunFM2Util(PCSZ_IMAGEEXE, filename); // 29 Oct 11 GKY Image.exe doesn't handle multilayer bitmaps or jpgs
    132166      played = TRUE;
    133167    }
     
    278312        if (stricmp(p, ".INI") || !StartIniEditor(hwndParent, filename, 4)) {
    279313          if (stricmp(p, PCSZ_DOTHLP) || !ViewHelp(filename)) {
    280             if (!fCheckMM || !ShowMultimedia(filename)) {
    281             ViewIt:
    282               if (TestBinary(filename)) {
     314          ViewIt:
     315            if (TestBinary(filename)) {
     316              if (!fCheckMM || !ShowMultimedia(filename)) {
    283317                if (*binview) {
    284318                  dummy[0] = filename;
     
    298332                  StartMLEEditor(hwndParent, 5, filename, hwndFrame);
    299333              }
    300               else {
    301                 if (*viewer) {
    302                   dummy[0] = filename;
    303                   dummy[1] = NULL;
    304                   ExecOnList(hwnd,
    305                              viewer,
    306                              WINDOWED | SEPARATE |
    307                              ((fViewChild) ? CHILD : 0), NULL, NULL, dummy, NULL,
    308                              pszSrcFile, __LINE__);
    309                 }
    310                 else if (fUseNewViewer) {
    311                   if (fExternalViewer || strcmp(realappname, FM3Str))
    312                     hwndParent = HWND_DESKTOP;
    313                   StartViewer(hwndParent, 5, filename, hwndFrame);
    314                 }
    315                 else
    316                   StartMLEEditor(hwndParent, 5, filename, hwndFrame);
     334            }
     335            else {
     336              if (*viewer) {
     337                dummy[0] = filename;
     338                dummy[1] = NULL;
     339                ExecOnList(hwnd,
     340                           viewer,
     341                           WINDOWED | SEPARATE |
     342                           ((fViewChild) ? CHILD : 0), NULL, NULL, dummy, NULL,
     343                           pszSrcFile, __LINE__);
    317344              }
    318             }
     345              else if (fUseNewViewer) {
     346                if (fExternalViewer || strcmp(realappname, FM3Str))
     347                  hwndParent = HWND_DESKTOP;
     348                StartViewer(hwndParent, 5, filename, hwndFrame);
     349              }
     350              else
     351                StartMLEEditor(hwndParent, 5, filename, hwndFrame);
     352            }
     353            //}
    319354          }
    320355        }
Note: See TracChangeset for help on using the changeset viewer.