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/wnaspi32/initterm.cpp

    r21842 r21900  
    1 /* $Id: initwnaspi32.cpp,v 1.7 2002-06-08 11:42:02 sandervl Exp $
     1/* $Id: initterm.cpp,v 1.8 2001-10-15 17:06:18 sandervl Exp $
    22 *
    3  * DLL entry point
     3 * WNASPI322 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
     
    4025#include "cdio.h"
    4126
    42 extern "C" {
    43  //Win32 resource table (produced by wrc)
    44  extern DWORD wnaspi32_PEResTab;
    45 }
     27// Win32 resource table (produced by wrc)
     28extern DWORD wnaspi32_PEResTab;
     29
    4630static HMODULE dllHandle = 0;
     31
    4732BOOL fASPIAvailable = TRUE;
    4833
    49 //******************************************************************************
    50 //******************************************************************************
    5134void WIN32API DisableASPI()
    5235{
    53    dprintf(("DisableASPI"));
    54    fASPIAvailable = FALSE;
     36    dprintf(("DisableASPI"));
     37    fASPIAvailable = FALSE;
    5538}
    56 //******************************************************************************
    57 //******************************************************************************
     39
    5840BOOL WINAPI Wnaspi32LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    5941{
    60    switch (fdwReason)
    61    {
    62    case DLL_PROCESS_ATTACH:
    63    {
    64        if(fASPIAvailable == FALSE) return TRUE;
     42    switch (fdwReason)
     43    {
     44    case DLL_PROCESS_ATTACH:
     45    {
     46        if(fASPIAvailable == FALSE) return TRUE;
    6547
    66        if(OSLibCdIoInitialize() == FALSE) {
    67            dprintf(("WNASPI32: LibMain; can't allocate aspi object! APIs will not work!"));
    68            // @@@AH 20011020 we shouldn't prevent DLL loading in this case
    69            // just make sure that all API calls fail
    70            return TRUE;
    71        }
    72        fASPIAvailable = TRUE;
    73        dprintf(("WNASPI32: LibMain; os2cdrom.dmd ASPI interface available"));
    74        return TRUE;
    75    }
     48        if(OSLibCdIoInitialize() == FALSE)
     49        {
     50            dprintf(("WNASPI32: LibMain; can't allocate aspi object! APIs will not work!"));
     51            // @@@AH 20011020 we shouldn't prevent DLL loading in this case
     52            // just make sure that all API calls fail
     53            return TRUE;
     54        }
     55        fASPIAvailable = TRUE;
     56        dprintf(("WNASPI32: LibMain; os2cdrom.dmd ASPI interface available"));
     57        return TRUE;
     58    }
    7659
    77    case DLL_THREAD_ATTACH:
    78    case DLL_THREAD_DETACH:
    79        return TRUE;
     60    case DLL_THREAD_ATTACH:
     61    case DLL_THREAD_DETACH:
     62        return TRUE;
    8063
    81    case DLL_PROCESS_DETACH:
    82        OSLibCdIoTerminate();
    83        return TRUE;
    84    }
    85    return FALSE;
     64    case DLL_PROCESS_DETACH:
     65        OSLibCdIoTerminate();
     66        return TRUE;
     67    }
     68    return FALSE;
    8669}
    87 /****************************************************************************/
    88 /* _DLL_InitTerm is the function that gets called by the operating system   */
    89 /* loader when it loads and frees this DLL for each process that accesses   */
    90 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    91 /* and the last time it is freed for a particular process.  The system      */
    92 /* linkage convention MUST be used because the operating system loader is   */
    93 /* calling this function.                                                   */
    94 /****************************************************************************/
    95 ULONG APIENTRY inittermWnaspi32(ULONG hModule, ULONG ulFlag)
     70
     71ULONG SYSTEM DLL_InitWinAspi32(ULONG hModule)
    9672{
    97    size_t i;
    98    APIRET rc;
     73    CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    9974
    100    /*-------------------------------------------------------------------------*/
    101    /* If ulFlag is zero then the DLL is being loaded so initialization should */
    102    /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    103    /* termination should be performed.                                        */
    104    /*-------------------------------------------------------------------------*/
     75    dllHandle = RegisterLxDll(hModule, Wnaspi32LibMain, (PVOID)&wnaspi32_PEResTab);
     76    if (dllHandle == 0)
     77        return -1;
    10578
    106    switch (ulFlag) {
    107       case 0 :
    108          dllHandle = RegisterLxDll(hModule, Wnaspi32LibMain, (PVOID)&wnaspi32_PEResTab);
    109          if(dllHandle == 0)
    110              return 0UL;
     79    return 0;
     80}
    11181
    112          break;
    113       case 1 :
    114          if(dllHandle) {
    115              UnregisterLxDll(dllHandle);
    116          }
    117          break;
    118       default  :
    119          return 0UL;
    120    }
     82void SYSTEM DLL_TermWinAspi32(ULONG hModule)
     83{
     84    if (dllHandle)
     85       UnregisterLxDll(dllHandle);
     86}
    12187
    122    /***********************************************************/
    123    /* A non-zero value must be returned to indicate success.  */
    124    /***********************************************************/
    125    return 1UL;
     88ULONG SYSTEM DLL_Init(ULONG hModule)
     89{
     90    if (DLL_InitDefault(hModule) == -1)
     91        return -1;
     92    return DLL_InitWinAspi32(hModule);
    12693}
    127 //******************************************************************************
    128 //******************************************************************************
     94
     95void SYSTEM DLL_Term(ULONG hModule)
     96{
     97    DLL_TermWinAspi32(hModule);
     98    DLL_TermDefault(hModule);
     99}
Note: See TracChangeset for help on using the changeset viewer.