Merged msacm and msacm32 dlls.
[wine] / dlls / dplayx / dplayx_main.c
1 /* 
2  * DPLAYX.DLL LibMain
3  *
4  * Copyright 1999,2000 - Peter Hunnisett 
5  *
6  * contact <hunnise@nortelnetworks.com>
7  */
8
9 #include "winbase.h"
10 #include "debugtools.h"
11 #include "dplayx_global.h"
12
13 DEFAULT_DEBUG_CHANNEL(dplay)
14
15 static DWORD DPLAYX_dwProcessesAttached = 0;
16
17 BOOL WINAPI DPLAYX_LibMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
18 {
19
20   TRACE( "(%u,0x%08lx,%p) & 0x%08lx\n", hinstDLL, fdwReason, lpvReserved, DPLAYX_dwProcessesAttached );
21
22   switch ( fdwReason ) 
23   {
24     case DLL_PROCESS_ATTACH:
25     {
26
27       if ( DPLAYX_dwProcessesAttached++ == 0 )
28       {
29         /* First instance perform construction of global processor data */ 
30         return DPLAYX_ConstructData();
31       } 
32
33       break;
34     }
35
36     case DLL_PROCESS_DETACH:
37     {
38
39       if ( --DPLAYX_dwProcessesAttached == 0 )
40       {
41         /* Last instance performs destruction of global processor data */
42         return DPLAYX_DestructData(); 
43       }
44  
45       break;
46     }
47
48     case DLL_THREAD_ATTACH: /* Do nothing */
49     case DLL_THREAD_DETACH: /* Do nothing */
50       break;
51     default:                
52       break;
53
54   }
55
56   return TRUE;
57 }