Changeset 21899 for branches/gcc-kmk/src/uxtheme/initterm.cpp
- Timestamp:
- Dec 15, 2011, 5:15:52 PM (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/gcc-kmk/src/uxtheme/initterm.cpp
r21842 r21899 1 /* $Id: init uxtheme.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 $ */ 2 2 /* 3 * DLL entry point3 * UXTHEME DLL entry point 4 4 * 5 5 * Copyright 1998 Sander van Leeuwen 6 6 * Copyright 1998 Peter Fitzsimmons 7 7 * 8 *9 8 * Project Odin Software License can be found in LICENSE.TXT 10 *11 9 */ 12 10 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 */26 11 #define INCL_DOSMODULEMGR 27 12 #define INCL_DOSPROCESS … … 37 22 #include <initdll.h> 38 23 39 extern "C" { 40 //Win32 resource table (produced by wrc) 41 extern DWORD uxtheme_PEResTab; 42 } 24 // Win32 resource table (produced by wrc) 25 extern DWORD uxtheme_PEResTab; 43 26 44 27 static HMODULE dllHandle = 0; 45 28 46 //******************************************************************************47 //******************************************************************************48 29 BOOL WINAPI LibMainUxTheme(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) 49 30 { 50 31 switch (fdwReason) 51 32 { 52 53 54 55 56 33 case DLL_PROCESS_ATTACH: 34 case DLL_THREAD_ATTACH: 35 case DLL_THREAD_DETACH: 36 case DLL_PROCESS_DETACH: 37 return TRUE; 57 38 } 58 39 return FALSE; 59 40 } 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 42 ULONG SYSTEM DLL_InitUxTheme(ULONG hModule) 69 43 { 70 APIRET rc;44 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 71 45 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; 77 49 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; 97 51 } 98 52 53 void SYSTEM DLL_TermUxTheme(ULONG hModule) 54 { 55 if (dllHandle) 56 UnregisterLxDll(dllHandle); 57 } 58 59 ULONG SYSTEM DLL_Init(ULONG hModule) 60 { 61 if (DLL_InitDefault(hModule) == -1) 62 return -1; 63 return DLL_InitUxTheme(hModule); 64 } 65 66 void 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.