4 * Copyright 1998 Patrik Stridvall
13 #include "winversion.h"
15 /**********************************************************************/
17 static DWORD MSACM_dwProcessesAttached = 0;
19 /***********************************************************************
20 * MSACM_LibMain32 (MSACM32.init)
22 BOOL WINAPI MSACM32_LibMain(
23 HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
27 case DLL_PROCESS_ATTACH:
28 if(MSACM_dwProcessesAttached == 0)
30 MSACM_hHeap = HeapCreate(0, 0x10000, 0);
31 MSACM_RegisterAllDrivers();
33 MSACM_dwProcessesAttached++;
35 case DLL_PROCESS_DETACH:
36 MSACM_dwProcessesAttached--;
37 if(MSACM_dwProcessesAttached == 0)
39 MSACM_UnregisterAllDrivers();
40 HeapDestroy(MSACM_hHeap);
41 MSACM_hHeap = (HANDLE) NULL;
44 case DLL_THREAD_ATTACH:
46 case DLL_THREAD_DETACH:
54 /***********************************************************************
55 * XRegThunkEntry (MSACM32.1)
57 * No documentation found.
60 /***********************************************************************
61 * acmGetVersion32 (MSACM32.34)
63 DWORD WINAPI acmGetVersion()
65 switch(VERSION_GetVersion())
68 FIXME(msacm, "%s not supported\n", VERSION_GetVersionName());
70 return 0x04000000; /* 4.0.0 */
72 return 0x04000565; /* 4.0.1381 */
76 /***********************************************************************
77 * acmMessage32 (MSACM32.35)
79 * No documentation found.
82 /***********************************************************************
83 * acmMetrics (MSACM32.36)
85 MMRESULT WINAPI acmMetrics(
86 HACMOBJ hao, UINT uMetric, LPVOID pMetric)
88 PWINE_ACMOBJ pao = MSACM_GetObj(hao);
91 FIXME(msacm, "(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric);
95 case ACM_METRIC_COUNT_DRIVERS:
97 case ACM_METRIC_COUNT_LOCAL_DRIVERS:
99 return MMSYSERR_INVALHANDLE;
100 return MMSYSERR_NOTSUPPORTED;
101 case ACM_METRIC_COUNT_CODECS:
103 case ACM_METRIC_COUNT_LOCAL_CODECS:
104 return MMSYSERR_NOTSUPPORTED;
105 case ACM_METRIC_COUNT_CONVERTERS:
107 case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
108 return MMSYSERR_NOTSUPPORTED;
109 case ACM_METRIC_COUNT_FILTERS:
111 case ACM_METRIC_COUNT_LOCAL_FILTERS:
112 return MMSYSERR_NOTSUPPORTED;
113 case ACM_METRIC_COUNT_DISABLED:
115 case ACM_METRIC_COUNT_LOCAL_DISABLED:
117 return MMSYSERR_INVALHANDLE;
118 return MMSYSERR_NOTSUPPORTED;
119 case ACM_METRIC_COUNT_HARDWARE:
120 case ACM_METRIC_HARDWARE_WAVE_INPUT:
121 case ACM_METRIC_HARDWARE_WAVE_OUTPUT:
122 case ACM_METRIC_MAX_SIZE_FORMAT:
123 case ACM_METRIC_MAX_SIZE_FILTER:
124 case ACM_METRIC_DRIVER_SUPPORT:
125 case ACM_METRIC_DRIVER_PRIORITY:
127 return MMSYSERR_NOTSUPPORTED;
129 return MMSYSERR_NOERROR;