Changeset 6401 for trunk/src/kernel32


Ignore:
Timestamp:
Jul 29, 2001, 9:02:35 PM (24 years ago)
Author:
sandervl
Message:

custom build updates

Location:
trunk/src/kernel32
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/KERNEL32.DEF

    r6397 r6401  
    1 ; $Id: KERNEL32.DEF,v 1.117 2001-07-28 18:03:36 sandervl Exp $
     1; $Id: KERNEL32.DEF,v 1.118 2001-07-29 19:00:30 sandervl Exp $
    22
    33;Basis is Windows95 KERNEL32
     
    11821182    _DestroyTIB@0                                                 @2011 NONAME
    11831183    _GetProcessTIBSel@0                                           @2012 NONAME
     1184   
     1185    _SetRegistryRootKey@8                                         @2013 NONAME
     1186    _SetCustomBuildName@4                                         @2014 NONAME
    11841187
    11851188    strcmpiW                                                      @2020 NONAME
  • trunk/src/kernel32/initkernel32.cpp

    r6399 r6401  
    6262extern "C" {
    6363 //Win32 resource table (produced by wrc)
    64  extern DWORD _Resource_PEResTab;
     64 extern DWORD kernel32_PEResTab;
    6565}
    6666
     
    139139
    140140            PROFILE_LoadOdinIni();
    141             dllHandle = RegisterLxDll(hModule, 0, (PVOID)&_Resource_PEResTab);
     141            dllHandle = RegisterLxDll(hModule, 0, (PVOID)&kernel32_PEResTab);
    142142            if (dllHandle == 0)
    143143                return 0UL;
     
    241241    HMODULE hModule;
    242242
    243 //    DosQueryModuleHandle("WGSS50", &hModule);
    244 //    O32__DLL_InitTerm(hModule, 0);
     243    DosQueryModuleHandle("WGSS50", &hModule);
     244    O32__DLL_InitTerm(hModule, 0);
    245245    DosQueryModuleHandle("KERNEL32", &hModule);
    246246    return inittermKernel32(hModule, 0);
  • trunk/src/kernel32/kernel32.mak

    r6375 r6401  
    1 # $Id: kernel32.mak,v 1.8 2001-07-20 15:33:30 sandervl Exp $
     1# $Id: kernel32.mak,v 1.9 2001-07-29 19:00:31 sandervl Exp $
    22
    33#
     
    66#       kernel32.dll makefile
    77#
     8WRC_PREFIX_RESOURCE=1
    89
    910#
     
    2021# Overrides.
    2122#
    22 ##CDEFINES    = $(CDEFINES) -DTEST_BUILTIN
     23#
     24# Overrides.
     25#
     26!ifndef WAT
     27RCFLAGS     = $(RCFLAGS) -p $(TARGET)
     28!else
     29RCFLAGS    += -p $(TARGET)
     30!endif
    2331
    2432
     
    139147LIBS = \
    140148$(ODIN32_LIB)/$(ODINCRT).lib \
    141 ##$(ODIN32_LIB)\wgss.lib \
    142 $(ODIN32_LIB)\PMWINX.LIB \
     149$(ODIN32_LIB)\wgss50.LIB \
    143150$(ODIN32_LIB)\LIBULS.LIB \
    144151$(ODIN32_LIB)\LIBCONV.LIB \
  • trunk/src/kernel32/kernel32lib.mak

    r6375 r6401  
    1 # $Id: kernel32lib.mak,v 1.1 2001-07-20 15:33:30 sandervl Exp $
     1# $Id: kernel32lib.mak,v 1.2 2001-07-29 19:00:31 sandervl Exp $
    22
    33#
     
    1414EXETARGET = 1
    1515PUBLICLIB = 1
    16 
     16WRC_PREFIX_RESOURCE=1
    1717
    1818#
  • trunk/src/kernel32/registry.cpp

    r6346 r6401  
    1 /* $Id: registry.cpp,v 1.11 2001-07-16 09:25:16 sandervl Exp $ */
     1/* $Id: registry.cpp,v 1.12 2001-07-29 19:00:31 sandervl Exp $ */
    22
    33/*
     
    5050
    5151
     52static HKEY hKeyClassesRoot  = HKEY_CLASSES_ROOT_O32;
     53static HKEY hKeyCurrentUser  = HKEY_CURRENT_USER_O32;
     54static HKEY hKeyLocalMachine = HKEY_LOCAL_MACHINE_O32;
     55static HKEY hKeyUsers        = HKEY_USERS_O32;
     56
    5257/*****************************************************************************
    5358 * Name      : Convert Key
     
    6469static HKEY ConvertKey(HKEY winkey)
    6570{
    66   switch((int)winkey)
     71  switch((DWORD)winkey)
    6772  {
    68     case HKEY_CLASSES_ROOT:   return HKEY_CLASSES_ROOT_O32;
    69     case HKEY_CURRENT_USER:   return HKEY_CURRENT_USER_O32;
    70     case HKEY_LOCAL_MACHINE:  return HKEY_LOCAL_MACHINE_O32;
    71     case HKEY_USERS:          return HKEY_USERS_O32;
     73    case HKEY_CLASSES_ROOT:   return hKeyClassesRoot;
     74    case HKEY_CURRENT_USER:   return hKeyCurrentUser;
     75    case HKEY_LOCAL_MACHINE:  return hKeyLocalMachine;
     76    case HKEY_USERS:          return hKeyUsers;
    7277  }
    7378  return(winkey);
    7479}
    7580
     81void WIN32API SetRegistryRootKey(HKEY hRootkey, HKEY hKey)
     82{
     83  switch((DWORD)hRootkey)
     84  {
     85    case HKEY_CLASSES_ROOT:   
     86        hKeyClassesRoot = hKey;
     87        break;
     88    case HKEY_CURRENT_USER:
     89        hKeyCurrentUser = hKey;
     90        break;
     91    case HKEY_LOCAL_MACHINE:
     92        hKeyLocalMachine = hKey;
     93        break;
     94    case HKEY_USERS:
     95        hKeyUsers = hKey;
     96        break;
     97  }
     98}
    7699
    77100/*****************************************************************************
  • trunk/src/kernel32/windlllx.cpp

    r6015 r6401  
    1 /* $Id: windlllx.cpp,v 1.20 2001-06-15 09:42:48 bird Exp $ */
     1/* $Id: windlllx.cpp,v 1.21 2001-07-29 19:00:32 sandervl Exp $ */
    22
    33/*
     
    4040#include "dbglocal.h"
    4141
     42char *lpszCustomDllName = NULL;
     43
     44//******************************************************************************
     45//******************************************************************************
     46void WIN32API SetCustomBuildName(char *lpszName)
     47{
     48    lpszCustomDllName = lpszName;
     49}
    4250//******************************************************************************
    4351//Create LX Dll object and send process attach message
     
    6573 char          szFileName[CCHMAXPATH], szErrName[CCHMAXPATH];
    6674
    67    if(OSLibGetDllName(hInstance, szFileName, sizeof(szFileName)) == FALSE) {
    68     dprintf(("ERROR: RegisterLxDll: OSLibGetDllName %x failed!!", hInstance));
    69     return 0;
    70    }
    71    dprintf(("RegisterLxDll %x %s", hInstance, szFileName));
    72    //Make sure DosLoadModule is called at least once for a dll (to make sure
    73    //OS/2 doesn't unload the dll when it's still needed)
    74    rc = DosLoadModule(szErrName, sizeof(szErrName), szFileName, &hInstance);
    75    if(rc != 0) {
    76     dprintf(("ERROR: RegisterLxDll: DosLoadModule %s failed (rc=%d)!!", szFileName, rc));
    77     return 0;
    78    }
    79 
     75   if(!lpszCustomDllName) {
     76       if(OSLibGetDllName(hInstance, szFileName, sizeof(szFileName)) == FALSE) {
     77           dprintf(("ERROR: RegisterLxDll: OSLibGetDllName %x failed!!", hInstance));
     78           return 0;
     79       }
     80       dprintf(("RegisterLxDll %x %s", hInstance, szFileName));
     81       //Make sure DosLoadModule is called at least once for a dll (to make sure
     82       //OS/2 doesn't unload the dll when it's still needed)
     83       rc = DosLoadModule(szErrName, sizeof(szErrName), szFileName, &hInstance);
     84       if(rc != 0) {
     85           dprintf(("ERROR: RegisterLxDll: DosLoadModule %s failed (rc=%d)!!", szFileName, rc));
     86           return 0;
     87       }
     88   }
    8089   windll = new Win32LxDll(hInstance, EntryPoint, pResData, MajorImageVersion,
    8190                           MinorImageVersion, Subsystem);
    8291   if(windll == NULL) {
    83     dprintf(("RegisterLxDll: windll == NULL!!!"));
    84     return 0;
     92       dprintf(("RegisterLxDll: windll == NULL!!!"));
     93       return 0;
    8594   }
    8695   if(!fPeLoader) {
    87     windll->AddRef();
    88 
    89     if(windll->attachProcess() == 0)
    90         return 0;
    91 
    92     return windll->getInstanceHandle();
     96       windll->AddRef();
     97
     98       if(windll->attachProcess() == 0)
     99           return 0;
     100
     101       return windll->getInstanceHandle();
    93102   }
    94103   IMAGE_DOS_HEADER doshdr;
     
    105114   rc = DosQueryHeaderInfo(hInstance, 0, &doshdr, sizeof(IMAGE_DOS_HEADER), QHINF_READFILE);
    106115   if(rc) {
    107     goto hdrerror;
     116       goto hdrerror;
    108117   }
    109118   rc = DosQueryHeaderInfo(hInstance, doshdr.e_lfanew, &lxhdr, sizeof(e32_exe), QHINF_READFILE);
    110119   if(rc) {
    111     goto hdrerror;
     120       goto hdrerror;
    112121   }
    113122   offset = doshdr.e_lfanew + lxhdr.e32_impmod;
    114123   for(i=0;i<lxhdr.e32_impmodcnt;i++) {
    115     rc = DosQueryHeaderInfo(hInstance, offset, &modsize, 1, QHINF_READFILE);
    116     if(rc) {
    117         goto hdrerror;
    118     }
    119     rc = DosQueryHeaderInfo(hInstance, offset+1, &modulename, min(modsize, sizeof(modulename)), QHINF_READFILE);
    120     if(rc) {
    121         goto hdrerror;
    122     }
    123     modulename[modsize] = 0;
    124     windlldep = Win32DllBase::findModule(modulename, TRUE);
    125     if(windlldep && strcmp(windlldep->getModuleName(), windll->getModuleName())) {
    126         dprintf(("RegisterLxDll: Add dependency %s -> %s", windll->getModuleName(), modulename));
    127         windll->addDependency(windlldep);
    128     }
    129         else    dprintf(("HARMLESS WARNING: Can't find dll %s referenced by %s", modulename, windll->getModuleName()));
    130     offset += modsize + 1;
     124       rc = DosQueryHeaderInfo(hInstance, offset, &modsize, 1, QHINF_READFILE);
     125       if(rc) {
     126           goto hdrerror;
     127       }
     128       rc = DosQueryHeaderInfo(hInstance, offset+1, &modulename, min(modsize, sizeof(modulename)), QHINF_READFILE);
     129       if(rc) {
     130           goto hdrerror;
     131       }
     132       modulename[modsize] = 0;
     133       windlldep = Win32DllBase::findModule(modulename, TRUE);
     134       if(windlldep && strcmp(windlldep->getModuleName(), windll->getModuleName())) {
     135            dprintf(("RegisterLxDll: Add dependency %s -> %s", windll->getModuleName(), modulename));
     136            windll->addDependency(windlldep);
     137       }
     138       else dprintf(("HARMLESS WARNING: Can't find dll %s referenced by %s", modulename, windll->getModuleName()));
     139
     140       offset += modsize + 1;
    131141   }
    132142   return windll->getInstanceHandle();
  • trunk/src/kernel32/winimagelx.cpp

    r3993 r6401  
    1 /* $Id: winimagelx.cpp,v 1.9 2000-08-11 10:56:19 sandervl Exp $ */
     1/* $Id: winimagelx.cpp,v 1.10 2001-07-29 19:00:32 sandervl Exp $ */
    22
    33/*
     
    4242#include "dbglocal.h"
    4343
     44extern char *lpszCustomDllName; //windlllx.cpp
     45
    4446static BYTE dosHeader[] = {
    4547 0x4D, 0x5A, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0B, 0x00,
     
    6668{
    6769 APIRET rc;
     70 char  *name;
    6871
    6972  szFileName[0] = 0;
    7073
    71   char *name = OSLibGetDllName(hinstance);
     74  if(lpszCustomDllName) {
     75       name = lpszCustomDllName;
     76  }
     77  else name = OSLibGetDllName(hinstance);
     78
    7279  strcpy(szFileName, name);
    7380  strupr(szFileName);
Note: See TracChangeset for help on using the changeset viewer.