Changeset 21916 for trunk/src/DPlayX/initterm.cpp
- Timestamp:
- Dec 18, 2011, 10:28:22 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:ignore
-
old new 1 bin 2 Makefile.inc 1 env.cmd 2 LocalConfig.kmk
-
-
Property svn:mergeinfo
set to
/branches/gcc-kmk merged eligible
- Property svn:ignore
-
trunk/src/DPlayX/initterm.cpp
r6646 r21916 1 1 /* $Id: initterm.cpp,v 1.7 2001-09-05 12:51:21 bird Exp $ 2 2 * 3 * D LL entry point3 * DPLAYX 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 _Resource_PEResTab; 42 extern BOOL WINAPI DPLAYX_LibMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ); 43 } 24 // Win32 resource table (produced by wrc) 25 extern DWORD dplayx_PEResTab; 44 26 45 27 static HMODULE dllHandle = 0; 46 28 47 /****************************************************************************/ 48 /* _DLL_InitTerm is the function that gets called by the operating system */ 49 /* loader when it loads and frees this DLL for each process that accesses */ 50 /* this DLL. However, it only gets called the first time the DLL is loaded */ 51 /* and the last time it is freed for a particular process. The system */ 52 /* linkage convention MUST be used because the operating system loader is */ 53 /* calling this function. */ 54 /****************************************************************************/ 55 unsigned long SYSTEM _DLL_InitTerm(unsigned long hModule, unsigned long 56 ulFlag) 29 extern BOOL WINAPI DPLAYX_LibMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ); 30 31 ULONG SYSTEM DLL_InitDPlayX(ULONG hModule) 57 32 { 58 size_t i; 59 APIRET rc; 33 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 60 34 61 /*-------------------------------------------------------------------------*/ 62 /* If ulFlag is zero then the DLL is being loaded so initialization should */ 63 /* be performed. If ulFlag is 1 then the DLL is being freed so */ 64 /* termination should be performed. */ 65 /*-------------------------------------------------------------------------*/ 35 dllHandle = RegisterLxDll(hModule, DPLAYX_LibMain, (PVOID)&dplayx_PEResTab); 36 if(dllHandle == 0) 37 return -1; 66 38 67 switch (ulFlag) { 68 case 0: 69 ctordtorInit(); 39 return 0; 40 } 70 41 71 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 42 void SYSTEM DLL_TermDPlayX(ULONG hModule) 43 { 44 if (dllHandle) 45 UnregisterLxDll(dllHandle); 46 } 72 47 73 dllHandle = RegisterLxDll(hModule, DPLAYX_LibMain, (PVOID)&_Resource_PEResTab); 74 if(dllHandle == 0) 75 return 0UL; 48 ULONG SYSTEM DLL_Init(ULONG hModule) 49 { 50 if (DLL_InitDefault(hModule) == -1) 51 return -1; 52 return DLL_InitDPlayX(hModule); 53 } 76 54 77 break; 78 case 1: 79 if(dllHandle) { 80 UnregisterLxDll(dllHandle); 81 } 82 break; 83 default: 84 return 0UL; 85 } 86 87 /***********************************************************/ 88 /* A non-zero value must be returned to indicate success. */ 89 /***********************************************************/ 90 return 1UL; 55 void SYSTEM DLL_Term(ULONG hModule) 56 { 57 DLL_TermDPlayX(hModule); 58 DLL_TermDefault(hModule); 91 59 } 92 //******************************************************************************93 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.