Ignore:
Timestamp:
May 9, 2000, 8:56:59 PM (25 years ago)
Author:
sandervl
Message:

lots of changes/fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/winimgres.cpp

    r3275 r3501  
    1 /* $Id: winimgres.cpp,v 1.34 2000-03-29 17:17:18 sandervl Exp $ */
     1/* $Id: winimgres.cpp,v 1.35 2000-05-09 18:56:10 sandervl Exp $ */
    22
    33/*
     
    1616 */
    1717#include <os2win.h>
     18#include <winnls.h>
    1819#include <stdio.h>
    1920#include <stdlib.h>
     
    151152  if(*nodeData == 0xFFFFFFFF) {//shouldn't happen!
    152153        dprintf(("ProcessResSubDir: *nodeData == 0xFFFFFFFF!\n"));
     154        DebugInt3();
    153155        return(NULL);
    154156  }
     
    159161  //level 3 (lang) -> get first language?
    160162  if(*nodeData == IDLANG_GETFIRST) {
    161     nrres  = prdType->NumberOfNamedEntries + prdType->NumberOfIdEntries;
    162     fNumId = (prdType->NumberOfNamedEntries == 0);
     163        nrres  = prdType->NumberOfNamedEntries + prdType->NumberOfIdEntries;
     164        fNumId = (prdType->NumberOfNamedEntries == 0);
    163165  }
    164166  else {
    165     fNumId = HIWORD(*nodeData) == 0;
    166 
    167     if(fNumId) {//numeric or string id?
    168         nrres = prdType->NumberOfIdEntries;
    169         prde += prdType->NumberOfNamedEntries;  //skip name entries
    170     }
    171     else    nrres = prdType->NumberOfNamedEntries;
     167        fNumId = HIWORD(*nodeData) == 0;
     168
     169        if(fNumId) {//numeric or string id?
     170                nrres = prdType->NumberOfIdEntries;
     171                prde += prdType->NumberOfNamedEntries;  //skip name entries
     172        }
     173        else    nrres = prdType->NumberOfNamedEntries;
    172174  }
    173175
     
    177179
    178180        if(*nodeData == IDLANG_GETFIRST) {
    179         fFound = TRUE; //always take the first one
    180     }
    181     else
     181                fFound = TRUE; //always take the first one
     182        }
     183        else
    182184        if(!fNumId) {//name or id entry?
    183185            nameOffset = prde->u1.Name;
     
    222224 PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
    223225
     226    switch(lang) {
     227    case LOCALE_SYSTEM_DEFAULT:
     228        lang = GetSystemDefaultLangID();
     229        break;   
     230    case LOCALE_USER_DEFAULT:
     231        lang = GetUserDefaultLangID();
     232        break;   
     233    case LOCALE_NEUTRAL:
     234        //TODO: Not correct; should take language associated with current thread
     235        lang = IDLANG_GETFIRST;
     236        break;   
     237    }
     238
    224239    pData = getPEResourceEntry(id, type, lang);
    225240    if(pData == NULL) {
     
    260275    else  type = (ULONG)lpszType;
    261276
     277    switch(lang) {
     278    case LOCALE_SYSTEM_DEFAULT:
     279        lang = GetSystemDefaultLangID();
     280        break;   
     281    case LOCALE_USER_DEFAULT:
     282        lang = GetUserDefaultLangID();
     283        break;   
     284    case LOCALE_NEUTRAL:
     285        //TODO: Not correct; should take language associated with current thread
     286        lang = IDLANG_GETFIRST;
     287        break;   
     288    }
    262289    id = (ULONG)lpszName;
    263290
Note: See TracChangeset for help on using the changeset viewer.