4 * Copyright 1998 Patrik Stridvall
10 #include "debugtools.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
)
29 case DLL_PROCESS_ATTACH
:
30 if(MSACM_dwProcessesAttached
== 0)
32 MSACM_hHeap
= HeapCreate(0, 0x10000, 0);
33 MSACM_RegisterAllDrivers();
35 MSACM_dwProcessesAttached
++;
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
;
46 case DLL_THREAD_ATTACH
:
48 case DLL_THREAD_DETACH
:
56 /***********************************************************************
57 * XRegThunkEntry (MSACM32.1)
59 * No documentation found.
62 /***********************************************************************
63 * acmGetVersion32 (MSACM32.34)
65 DWORD WINAPI
acmGetVersion()
67 switch(VERSION_GetVersion())
70 FIXME("%s not supported\n", VERSION_GetVersionName());
72 return 0x04000000; /* 4.0.0 */
74 return 0x04000565; /* 4.0.1381 */
78 /***********************************************************************
79 * acmMessage32 (MSACM32.35)
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
);
93 FIXME("(0x%08x, %d, %p): stub\n", hao
, uMetric
, pMetric
);
97 case ACM_METRIC_COUNT_DRIVERS
:
99 case ACM_METRIC_COUNT_LOCAL_DRIVERS
:
101 return MMSYSERR_INVALHANDLE
;
102 return MMSYSERR_NOTSUPPORTED
;
103 case ACM_METRIC_COUNT_CODECS
:
105 case ACM_METRIC_COUNT_LOCAL_CODECS
:
106 return MMSYSERR_NOTSUPPORTED
;
107 case ACM_METRIC_COUNT_CONVERTERS
:
109 case ACM_METRIC_COUNT_LOCAL_CONVERTERS
:
110 return MMSYSERR_NOTSUPPORTED
;
111 case ACM_METRIC_COUNT_FILTERS
:
113 case ACM_METRIC_COUNT_LOCAL_FILTERS
:
114 return MMSYSERR_NOTSUPPORTED
;
115 case ACM_METRIC_COUNT_DISABLED
:
117 case ACM_METRIC_COUNT_LOCAL_DISABLED
:
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
:
129 return MMSYSERR_NOTSUPPORTED
;
131 return MMSYSERR_NOERROR
;