Ignore:
Timestamp:
Dec 15, 2011, 5:15:52 PM (14 years ago)
Author:
dmik
Message:

Port UXTHEME and VDMDBG to GCC/kBuild.

File:
1 moved

Legend:

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

    r21842 r21899  
    1 /* $Id: inituxtheme.cpp,v 1.1 2002-04-10 18:35:18 bird Exp $ */
     1/* $Id: initterm.cpp,v 1.1 2002-04-10 18:35:18 bird Exp $ */
    22/*
    3  * DLL entry point
     3 * UXTHEME 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
    39 extern "C" {
    40     //Win32 resource table (produced by wrc)
    41     extern DWORD uxtheme_PEResTab;
    42 }
     24// Win32 resource table (produced by wrc)
     25extern DWORD uxtheme_PEResTab;
    4326
    4427static HMODULE dllHandle = 0;
    4528
    46 //******************************************************************************
    47 //******************************************************************************
    4829BOOL WINAPI LibMainUxTheme(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    4930{
    5031    switch (fdwReason)
    5132    {
    52         case DLL_PROCESS_ATTACH:
    53         case DLL_THREAD_ATTACH:
    54         case DLL_THREAD_DETACH:
    55         case DLL_PROCESS_DETACH:
    56             return TRUE;
     33    case DLL_PROCESS_ATTACH:
     34    case DLL_THREAD_ATTACH:
     35    case DLL_THREAD_DETACH:
     36    case DLL_PROCESS_DETACH:
     37        return TRUE;
    5738    }
    5839    return FALSE;
    5940}
    60 /****************************************************************************/
    61 /* _DLL_InitTerm is the function that gets called by the operating system   */
    62 /* loader when it loads and frees this DLL for each process that accesses   */
    63 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    64 /* and the last time it is freed for a particular process.  The system      */
    65 /* linkage convention MUST be used because the operating system loader is   */
    66 /* calling this function.                                                   */
    67 /****************************************************************************/
    68 ULONG APIENTRY inittermUxTheme(ULONG hModule, ULONG ulFlag)
     41
     42ULONG SYSTEM DLL_InitUxTheme(ULONG hModule)
    6943{
    70     APIRET rc;
     44    CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    7145
    72     /*-------------------------------------------------------------------------*/
    73     /* If ulFlag is zero then the DLL is being loaded so initialization should */
    74     /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    75     /* termination should be performed.                                        */
    76     /*-------------------------------------------------------------------------*/
     46    dllHandle = RegisterLxDll(hModule, LibMainUxTheme, (PVOID)&uxtheme_PEResTab);
     47    if (dllHandle == 0)
     48        return -1;
    7749
    78     switch (ulFlag)
    79     {
    80         case 0 :
    81             dllHandle = RegisterLxDll(hModule, LibMainUxTheme, (PVOID)&uxtheme_PEResTab);
    82             if (dllHandle == 0)
    83                 return 0UL;
    84             break;
    85         case 1 :
    86             if (dllHandle)
    87                 UnregisterLxDll(dllHandle);
    88             break;
    89         default  :
    90             return 0UL;
    91     }
    92 
    93     /***********************************************************/
    94     /* A non-zero value must be returned to indicate success.  */
    95     /***********************************************************/
    96     return 1UL;
     50    return 0;
    9751}
    9852
     53void SYSTEM DLL_TermUxTheme(ULONG hModule)
     54{
     55    if (dllHandle)
     56       UnregisterLxDll(dllHandle);
     57}
     58
     59ULONG SYSTEM DLL_Init(ULONG hModule)
     60{
     61    if (DLL_InitDefault(hModule) == -1)
     62        return -1;
     63    return DLL_InitUxTheme(hModule);
     64}
     65
     66void SYSTEM DLL_Term(ULONG hModule)
     67{
     68    DLL_TermUxTheme(hModule);
     69    DLL_TermDefault(hModule);
     70}
Note: See TracChangeset for help on using the changeset viewer.