Ignore:
Timestamp:
Dec 15, 2011, 6:07:42 PM (14 years ago)
Author:
dmik
Message:

Port WING32, WININET, WINTRUST, WINASPI32, WNETAPI32 and WOW32 to GCC/kBuild.

File:
1 moved

Legend:

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

    r21842 r21900  
    1 /* $Id: initwininet.cpp,v 1.2 2003-10-24 13:10:03 sandervl Exp $
     1/* $Id: initterm.cpp,v 1.8 2003-10-24 13:10:03 sandervl Exp $
    22 *
    3  * DLL entry point
     3 * WININET DLL entry point
    44 *
    55 * Copyright 1998 Sander van Leeuwen
    66 * Copyright 1998 Peter Fitzsimmons
    77 *
    8  *
    98 * Project Odin Software License can be found in LICENSE.TXT
    10  *
    119 */
    1210
    13 /*-------------------------------------------------------------*/
    14 /* INITERM.C -- Source for a custom dynamic link library       */
    15 /*              initialization and termination (_DLL_InitTerm) */
    16 /*              function.                                      */
    17 /*                                                             */
    18 /* When called to perform initialization, this sample function */
    19 /* gets storage for an array of integers, and initializes its  */
    20 /* elements with random integers.  At termination time, it     */
    21 /* frees the array.  Substitute your own special processing.   */
    22 /*-------------------------------------------------------------*/
    23 
    24 
    25 /* Include files */
    2611#define  INCL_DOSMODULEMGR
    2712#define  INCL_DOSPROCESS
     
    3722#include <initdll.h>
    3823
     24// Win32 resource table (produced by wrc)
     25extern DWORD wininet_PEResTab;
    3926
    40 extern "C" {
    41  //Win32 resource table (produced by wrc)
    42  extern DWORD wininet_PEResTab;
    43 }
    4427static HMODULE dllHandle = 0;
    4528
    4629BOOL WINAPI WININET_LibMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
    4730
    48 //******************************************************************************
    49 //******************************************************************************
    5031BOOL WINAPI WininetLibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    5132{
    52  BOOL ret;
     33    BOOL ret;
    5334
    54    switch (fdwReason)
    55    {
    56    case DLL_PROCESS_ATTACH:
    57    case DLL_THREAD_ATTACH:
    58    case DLL_THREAD_DETACH:
    59     return WININET_LibMain(hinstDLL, fdwReason, fImpLoad);
     35    switch (fdwReason)
     36    {
     37    case DLL_PROCESS_ATTACH:
     38    case DLL_THREAD_ATTACH:
     39    case DLL_THREAD_DETACH:
     40        return WININET_LibMain(hinstDLL, fdwReason, fImpLoad);
    6041
    61    case DLL_PROCESS_DETACH:
    62     ret = WININET_LibMain(hinstDLL, fdwReason, fImpLoad);
    63     return ret;
    64    }
    65    return FALSE;
     42    case DLL_PROCESS_DETACH:
     43        ret = WININET_LibMain(hinstDLL, fdwReason, fImpLoad);
     44        return ret;
     45    }
     46    return FALSE;
    6647}
    6748
     49ULONG SYSTEM DLL_InitWinInet(ULONG hModule)
     50{
     51    CheckVersionFromHMOD(PE2LX_VERSION, hModule);/* PLF Wed  98-03-18 05:28:48*/
    6852
    69 /****************************************************************************/
    70 /* _DLL_InitTerm is the function that gets called by the operating system   */
    71 /* loader when it loads and frees this DLL for each process that accesses   */
    72 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    73 /* and the last time it is freed for a particular process.  The system      */
    74 /* linkage convention MUST be used because the operating system loader is   */
    75 /* calling this function.                                                   */
    76 /****************************************************************************/
    77 ULONG APIENTRY inittermWininet(ULONG hModule, ULONG ulFlag)
     53    dllHandle = RegisterLxDll(hModule, WininetLibMain, (PVOID)&wininet_PEResTab);
     54    if (dllHandle == 0)
     55        return -1;
     56
     57    return 0;
     58}
     59
     60void SYSTEM DLL_TermWinInet(ULONG hModule)
    7861{
    79    size_t i;
    80    APIRET rc;
     62    if (dllHandle)
     63       UnregisterLxDll(dllHandle);
     64}
    8165
    82    /*-------------------------------------------------------------------------*/
    83    /* If ulFlag is zero then the DLL is being loaded so initialization should */
    84    /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    85    /* termination should be performed.                                        */
    86    /*-------------------------------------------------------------------------*/
     66ULONG SYSTEM DLL_Init(ULONG hModule)
     67{
     68    if (DLL_InitDefault(hModule) == -1)
     69        return -1;
     70    return DLL_InitWinInet(hModule);
     71}
    8772
    88    switch (ulFlag) {
    89       case 0 :
    90          CheckVersionFromHMOD(PE2LX_VERSION, hModule);/* PLF Wed  98-03-18 05:28:48*/
    91 
    92          /*******************************************************************/
    93          /* A DosExitList routine must be used to clean up if runtime calls */
    94          /* are required and the runtime is dynamically linked.             */
    95          /*******************************************************************/
    96 
    97          dllHandle = RegisterLxDll(hModule, WininetLibMain, (PVOID)&wininet_PEResTab);
    98          if(dllHandle == 0)
    99              return 0UL;
    100 
    101          break;
    102       case 1 :
    103          if(dllHandle) {
    104              UnregisterLxDll(dllHandle);
    105          }
    106          break;
    107 
    108       default  :
    109          return 0UL;
    110    }
    111 
    112    /***********************************************************/
    113    /* A non-zero value must be returned to indicate success.  */
    114    /***********************************************************/
    115    return 1UL;
     73void SYSTEM DLL_Term(ULONG hModule)
     74{
     75    DLL_TermWinInet(hModule);
     76    DLL_TermDefault(hModule);
    11677}
    117 //******************************************************************************
    118 //******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.