4 * Copyright 1998 Patrik Stridvall
14 #include "winversion.h"
16 /**********************************************************************/
18 static DWORD MSACM_dwProcessesAttached32 = 0;
20 /***********************************************************************
21 * MSACM_LibMain32 (MSACM32.init)
23 BOOL32 WINAPI MSACM32_LibMain(
24 HINSTANCE32 hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
28 case DLL_PROCESS_ATTACH:
29 if(MSACM_dwProcessesAttached32 == 0)
31 MSACM_hHeap32 = HeapCreate(0, 0x10000, 0);
32 MSACM_RegisterAllDrivers32();
34 MSACM_dwProcessesAttached32++;
36 case DLL_PROCESS_DETACH:
37 MSACM_dwProcessesAttached32--;
38 if(MSACM_dwProcessesAttached32 == 0)
40 MSACM_UnregisterAllDrivers32();
41 HeapDestroy(MSACM_hHeap32);
42 MSACM_hHeap32 = (HANDLE32) NULL;
45 case DLL_THREAD_ATTACH:
47 case DLL_THREAD_DETACH:
55 /***********************************************************************
56 * XRegThunkEntry (MSACM32.1)
58 * No documentation found.
61 /***********************************************************************
62 * acmGetVersion32 (MSACM32.34)
64 DWORD WINAPI acmGetVersion32()
66 switch(VERSION_GetVersion())
69 FIXME(msacm, "%s not supported\n", VERSION_GetVersionName());
71 return 0x04000000; /* 4.0.0 */
73 return 0x04000565; /* 4.0.1381 */
77 /***********************************************************************
78 * acmMessage32 (MSACM32.35)
80 * No documentation found.
83 /***********************************************************************
84 * acmMetrics (MSACM32.36)
86 MMRESULT32 WINAPI acmMetrics32(
87 HACMOBJ32 hao, UINT32 uMetric, LPVOID pMetric)
89 PWINE_ACMOBJ32 pao = MSACM_GetObj32(hao);
92 FIXME(msacm, "(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric);
96 case ACM_METRIC_COUNT_DRIVERS:
98 case ACM_METRIC_COUNT_LOCAL_DRIVERS:
100 return MMSYSERR_INVALHANDLE;
101 return MMSYSERR_NOTSUPPORTED;
102 case ACM_METRIC_COUNT_CODECS:
104 case ACM_METRIC_COUNT_LOCAL_CODECS:
105 return MMSYSERR_NOTSUPPORTED;
106 case ACM_METRIC_COUNT_CONVERTERS:
108 case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
109 return MMSYSERR_NOTSUPPORTED;
110 case ACM_METRIC_COUNT_FILTERS:
112 case ACM_METRIC_COUNT_LOCAL_FILTERS:
113 return MMSYSERR_NOTSUPPORTED;
114 case ACM_METRIC_COUNT_DISABLED:
116 case ACM_METRIC_COUNT_LOCAL_DISABLED:
118 return MMSYSERR_INVALHANDLE;
119 return MMSYSERR_NOTSUPPORTED;
120 case ACM_METRIC_COUNT_HARDWARE:
121 case ACM_METRIC_HARDWARE_WAVE_INPUT:
122 case ACM_METRIC_HARDWARE_WAVE_OUTPUT:
123 case ACM_METRIC_MAX_SIZE_FORMAT:
124 case ACM_METRIC_MAX_SIZE_FILTER:
125 case ACM_METRIC_DRIVER_SUPPORT:
126 case ACM_METRIC_DRIVER_PRIORITY:
128 return MMSYSERR_NOTSUPPORTED;
130 return MMSYSERR_NOERROR;