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;