Changeset 21855 for branches/gcc-kmk/src/ole32/initterm.cpp
- Timestamp:
- Dec 6, 2011, 6:19:13 PM (14 years ago)
- File:
-
- 1 moved
-
branches/gcc-kmk/src/ole32/initterm.cpp (moved) (moved from branches/gcc-kmk/src/ole32/initole32.cpp ) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/gcc-kmk/src/ole32/initterm.cpp
r21842 r21855 1 1 /* 2 * DLL entry point2 * OLE32 DLL entry point 3 3 * 4 4 * Copyright 1998 Sander van Leeuwen 5 5 * Copyright 1998 Peter Fitzsimmons 6 6 * 7 *8 7 * Project Odin Software License can be found in LICENSE.TXT 9 *10 8 */ 11 9 12 /*-------------------------------------------------------------*/13 /* INITERM.C -- Source for a custom dynamic link library */14 /* initialization and termination (_DLL_InitTerm) */15 /* function. */16 /* */17 /* When called to perform initialization, this sample function */18 /* gets storage for an array of integers, and initializes its */19 /* elements with random integers. At termination time, it */20 /* frees the array. Substitute your own special processing. */21 /*-------------------------------------------------------------*/22 23 24 /* Include files */25 10 #define INCL_DOSMODULEMGR 26 11 #define INCL_DOSPROCESS … … 36 21 #include <initdll.h> 37 22 38 extern "C" { 39 //Win32 resource table (produced by wrc) 40 extern DWORD ole32os2_PEResTab; 41 } 23 // Win32 resource table (produced by wrc) 24 extern DWORD ole32_PEResTab; 25 42 26 static HMODULE dllHandle = 0; 43 27 44 28 BOOL WINAPI OLE32_DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad); 45 //****************************************************************************** 46 //****************************************************************************** 29 47 30 BOOL WINAPI LibMainOLE32(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) 48 31 { … … 60 43 return FALSE; 61 44 } 62 /****************************************************************************/ 63 /* _DLL_InitTerm is the function that gets called by the operating system */ 64 /* loader when it loads and frees this DLL for each process that accesses */ 65 /* this DLL. However, it only gets called the first time the DLL is loaded */ 66 /* and the last time it is freed for a particular process. The system */ 67 /* linkage convention MUST be used because the operating system loader is */ 68 /* calling this function. */ 69 /****************************************************************************/ 70 ULONG APIENTRY inittermOle32(unsigned long hModule, unsigned long ulFlag) 45 46 ULONG SYSTEM DLL_InitOle32(ULONG hModule) 71 47 { 72 size_t i; 73 APIRET rc; 48 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 74 49 75 /*-------------------------------------------------------------------------*/ 76 /* If ulFlag is zero then the DLL is being loaded so initialization should */ 77 /* be performed. If ulFlag is 1 then the DLL is being freed so */ 78 /* termination should be performed. */ 79 /*-------------------------------------------------------------------------*/ 50 dllHandle = RegisterLxDll(hModule, LibMainOLE32, (PVOID)&ole32_PEResTab); 51 if (dllHandle == 0) 52 return -1; 80 53 81 switch (ulFlag) { 82 case 0 : 83 { 84 dllHandle = RegisterLxDll(hModule, LibMainOLE32, (PVOID)&ole32os2_PEResTab); 85 if(dllHandle == 0) 86 return 0UL; 54 return 0; 55 } 87 56 88 break; 89 } 90 case 1 : 91 if(dllHandle) { 92 UnregisterLxDll(dllHandle); 93 } 94 break; 57 void SYSTEM DLL_TermOle32(ULONG hModule) 58 { 59 if (dllHandle) 60 UnregisterLxDll(dllHandle); 61 } 95 62 96 default : 97 return 0UL; 98 } 63 ULONG SYSTEM DLL_Init(ULONG hModule) 64 { 65 if (DLL_InitDefault(hModule) == -1) 66 return -1; 67 return DLL_InitOle32(hModule); 68 } 99 69 100 /***********************************************************/ 101 /* A non-zero value must be returned to indicate success. */ 102 /***********************************************************/103 return 1UL;70 void SYSTEM DLL_Term(ULONG hModule) 71 { 72 DLL_TermOle32(hModule); 73 DLL_TermDefault(hModule); 104 74 } 105 //******************************************************************************106 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.
