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
;