Ignore:
Timestamp:
Dec 1, 2011, 3:01:01 PM (14 years ago)
Author:
dmik
Message:

Port COMCTL32 to GCC/kBuild.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/gcc-kmk/src/comctl32/initterm.cpp

    r21796 r21840  
    1 /* $Id: initcomctl32.cpp,v 1.6 2003-05-15 14:26:27 sandervl Exp $ */
     1/* $Id: initterm.cpp,v 1.16 2001-09-05 12:04:59 bird Exp $ */
    22/*
    33 * COMCTL32 DLL entry point
     
    88 *
    99 * Project Odin Software License can be found in LICENSE.TXT
    10  *
    11  *
    1210 */
    1311
    14 /*-------------------------------------------------------------*/
    15 /* INITERM.C -- Source for a custom dynamic link library       */
    16 /*              initialization and termination (_DLL_InitTerm) */
    17 /*              function.                                      */
    18 /*                                                             */
    19 /* When called to perform initialization, this sample function */
    20 /* gets storage for an array of integers, and initializes its  */
    21 /* elements with random integers.  At termination time, it     */
    22 /* frees the array.  Substitute your own special processing.   */
    23 /*-------------------------------------------------------------*/
    24 
    25 
    26 /* Include files */
    2712#define  INCL_DOSMODULEMGR
    2813#define  INCL_DOSPROCESS
     
    3722#include <initdll.h>
    3823
    39 extern "C" {
    40  //Win32 resource table (produced by wrc)
    41  extern DWORD comctl32_PEResTab;
    42 }
     24// Win32 resource table (produced by wrc)
     25extern DWORD comctl32_PEResTab;
    4326
    4427static HMODULE dllHandle = 0;
     
    4629BOOL WINAPI COMCTL32_DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
    4730
    48 //******************************************************************************
    49 //******************************************************************************
    5031BOOL WINAPI LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    5132{
    52    switch (fdwReason)
    53    {
    54    case DLL_PROCESS_ATTACH:
    55    case DLL_THREAD_ATTACH:
    56    case DLL_THREAD_DETACH:
     33    switch (fdwReason)
     34    {
     35    case DLL_PROCESS_ATTACH:
     36    case DLL_THREAD_ATTACH:
     37    case DLL_THREAD_DETACH:
    5738        return COMCTL32_DllMain(hinstDLL, fdwReason, fImpLoad);
    5839
    59    case DLL_PROCESS_DETACH:
     40    case DLL_PROCESS_DETACH:
    6041        return COMCTL32_DllMain(hinstDLL, fdwReason, fImpLoad);
    61    }
    62    return FALSE;
     42    }
     43    return FALSE;
    6344}
    64 /****************************************************************************/
    65 /* _DLL_InitTerm is the function that gets called by the operating system   */
    66 /* loader when it loads and frees this DLL for each process that accesses   */
    67 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    68 /* and the last time it is freed for a particular process.  The system      */
    69 /* linkage convention MUST be used because the operating system loader is   */
    70 /* calling this function.                                                   */
    71 /****************************************************************************/
    72 ULONG APIENTRY inittermComctl32(unsigned long hModule, unsigned long ulFlag)
     45
     46ULONG SYSTEM DLL_InitComCtl32(ULONG hModule)
    7347{
    74    size_t i;
    75    APIRET rc;
     48    CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    7649
    77    /*-------------------------------------------------------------------------*/
    78    /* If ulFlag is zero then the DLL is being loaded so initialization should */
    79    /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    80    /* termination should be performed.                                        */
    81    /*-------------------------------------------------------------------------*/
     50    dllHandle = RegisterLxDll(hModule, LibMain, (PVOID)&comctl32_PEResTab,
     51                              COMCTL32_MAJORIMAGE_VERSION, COMCTL32_MINORIMAGE_VERSION,
     52                              IMAGE_SUBSYSTEM_WINDOWS_GUI);
     53    if (dllHandle == 0)
     54        return -1;
    8255
    83    switch (ulFlag) {
    84       case 0 :
    85      dllHandle = RegisterLxDll(hModule, LibMain, (PVOID)&comctl32_PEResTab,
    86                                    COMCTL32_MAJORIMAGE_VERSION, COMCTL32_MINORIMAGE_VERSION,
    87                                    IMAGE_SUBSYSTEM_WINDOWS_GUI);
    88          if(dllHandle == 0)
    89         return 0UL;
     56    return 0;
     57}
    9058
    91          break;
    92       case 1 :
    93          if(dllHandle) {
     59void SYSTEM DLL_TermComCtl32(ULONG hModule)
     60{
     61    if (dllHandle)
    9462        UnregisterLxDll(dllHandle);
    95          }
    96          break;
    97       default  :
    98          return 0UL;
    99    }
     63}
    10064
    101    /***********************************************************/
    102    /* A non-zero value must be returned to indicate success.  */
    103    /***********************************************************/
    104    return 1UL;
     65ULONG SYSTEM DLL_Init(ULONG hModule)
     66{
     67    if (DLL_InitDefault(hModule) == -1)
     68        return -1;
     69    return DLL_InitComCtl32(hModule);
    10570}
    106 //******************************************************************************
    107 //******************************************************************************
     71
     72void SYSTEM DLL_Term(ULONG hModule)
     73{
     74    DLL_TermComCtl32(hModule);
     75    DLL_TermDefault(hModule);
     76}
Note: See TracChangeset for help on using the changeset viewer.