Removed global variable pCurrentTeb.
[wine/wine64.git] / dlls / msacm32 / msacm32_main.c
blob34fc13da9ed7d9b4d83d33590794322da8eda675
1 /*
2 * MSACM32 library
4 * Copyright 1998 Patrik Stridvall
5 */
7 #include "winbase.h"
8 #include "winerror.h"
9 #include "windef.h"
10 #include "debugtools.h"
11 #include "msacm.h"
12 #include "msacmdrv.h"
13 #include "winversion.h"
15 DEFAULT_DEBUG_CHANNEL(msacm)
17 /**********************************************************************/
19 static DWORD MSACM_dwProcessesAttached = 0;
21 /***********************************************************************
22 * MSACM_LibMain32 (MSACM32.init)
24 BOOL WINAPI MSACM32_LibMain(
25 HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
27 switch(fdwReason)
29 case DLL_PROCESS_ATTACH:
30 if(MSACM_dwProcessesAttached == 0)
32 MSACM_hHeap = HeapCreate(0, 0x10000, 0);
33 MSACM_RegisterAllDrivers();
35 MSACM_dwProcessesAttached++;
36 break;
37 case DLL_PROCESS_DETACH:
38 MSACM_dwProcessesAttached--;
39 if(MSACM_dwProcessesAttached == 0)
41 MSACM_UnregisterAllDrivers();
42 HeapDestroy(MSACM_hHeap);
43 MSACM_hHeap = (HANDLE) NULL;
45 break;
46 case DLL_THREAD_ATTACH:
47 break;
48 case DLL_THREAD_DETACH:
49 break;
50 default:
51 break;
53 return TRUE;
56 /***********************************************************************
57 * XRegThunkEntry (MSACM32.1)
58 * FIXME
59 * No documentation found.
62 /***********************************************************************
63 * acmGetVersion32 (MSACM32.34)
65 DWORD WINAPI acmGetVersion()
67 switch(VERSION_GetVersion())
69 default:
70 FIXME("%s not supported\n", VERSION_GetVersionName());
71 case WIN95:
72 return 0x04000000; /* 4.0.0 */
73 case NT40:
74 return 0x04000565; /* 4.0.1381 */
78 /***********************************************************************
79 * acmMessage32 (MSACM32.35)
80 * FIXME
81 * No documentation found.
84 /***********************************************************************
85 * acmMetrics (MSACM32.36)
87 MMRESULT WINAPI acmMetrics(
88 HACMOBJ hao, UINT uMetric, LPVOID pMetric)
90 PWINE_ACMOBJ pao = MSACM_GetObj(hao);
91 BOOL bLocal = TRUE;
93 FIXME("(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric);
95 switch(uMetric)
97 case ACM_METRIC_COUNT_DRIVERS:
98 bLocal = FALSE;
99 case ACM_METRIC_COUNT_LOCAL_DRIVERS:
100 if(!pao)
101 return MMSYSERR_INVALHANDLE;
102 return MMSYSERR_NOTSUPPORTED;
103 case ACM_METRIC_COUNT_CODECS:
104 bLocal = FALSE;
105 case ACM_METRIC_COUNT_LOCAL_CODECS:
106 return MMSYSERR_NOTSUPPORTED;
107 case ACM_METRIC_COUNT_CONVERTERS:
108 bLocal = FALSE;
109 case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
110 return MMSYSERR_NOTSUPPORTED;
111 case ACM_METRIC_COUNT_FILTERS:
112 bLocal = FALSE;
113 case ACM_METRIC_COUNT_LOCAL_FILTERS:
114 return MMSYSERR_NOTSUPPORTED;
115 case ACM_METRIC_COUNT_DISABLED:
116 bLocal = FALSE;
117 case ACM_METRIC_COUNT_LOCAL_DISABLED:
118 if(!pao)
119 return MMSYSERR_INVALHANDLE;
120 return MMSYSERR_NOTSUPPORTED;
121 case ACM_METRIC_COUNT_HARDWARE:
122 case ACM_METRIC_HARDWARE_WAVE_INPUT:
123 case ACM_METRIC_HARDWARE_WAVE_OUTPUT:
124 case ACM_METRIC_MAX_SIZE_FORMAT:
125 case ACM_METRIC_MAX_SIZE_FILTER:
126 case ACM_METRIC_DRIVER_SUPPORT:
127 case ACM_METRIC_DRIVER_PRIORITY:
128 default:
129 return MMSYSERR_NOTSUPPORTED;
131 return MMSYSERR_NOERROR;