Temporary #if 0'ed part for builtin modules in MSACM to make it
[wine] / dlls / msacm32 / msacm32_main.c
1 /*
2  *      MSACM32 library
3  *
4  *      Copyright 1998  Patrik Stridvall
5  */
6
7 #include "windows.h"
8 #include "winerror.h"
9 #include "wintypes.h"
10 #include "debug.h"
11 #include "mmsystem.h"
12 #include "msacm.h"
13 #include "msacmdrv.h"
14 #include "winversion.h"
15
16 /**********************************************************************/
17
18 static DWORD MSACM_dwProcessesAttached32 = 0;
19
20 /***********************************************************************
21  *           MSACM_LibMain32 (MSACM32.init) 
22  */
23 BOOL32 WINAPI MSACM32_LibMain(
24   HINSTANCE32 hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
25 {
26   switch(fdwReason)
27     {
28     case DLL_PROCESS_ATTACH:
29       if(MSACM_dwProcessesAttached32 == 0)
30         {
31           MSACM_hHeap32 = HeapCreate(0, 0x10000, 0);
32           MSACM_RegisterAllDrivers32();
33         }
34       MSACM_dwProcessesAttached32++;
35       break;
36     case DLL_PROCESS_DETACH:
37       MSACM_dwProcessesAttached32--;
38       if(MSACM_dwProcessesAttached32 == 0)
39         {
40           MSACM_UnregisterAllDrivers32();
41           HeapDestroy(MSACM_hHeap32);
42           MSACM_hHeap32 = (HANDLE32) NULL;
43         }
44       break;
45     case DLL_THREAD_ATTACH:
46       break;
47     case DLL_THREAD_DETACH:
48       break;
49     default:
50       break;
51     }
52   return TRUE;
53 }
54
55 /***********************************************************************
56  *           XRegThunkEntry (MSACM32.1)
57  * FIXME
58  *   No documentation found.
59  */
60
61 /***********************************************************************
62  *           acmGetVersion32 (MSACM32.34)
63  */
64 DWORD WINAPI acmGetVersion32()
65 {
66   switch(VERSION_GetVersion()) 
67     {
68     default: 
69       FIXME(msacm, "%s not supported\n", VERSION_GetVersionName());
70     case WIN95:
71       return 0x04000000; /* 4.0.0 */
72     case NT40:
73       return 0x04000565; /* 4.0.1381 */
74     }
75 }
76
77 /***********************************************************************
78  *           acmMessage32 (MSACM32.35)
79  * FIXME
80  *   No documentation found.
81  */
82
83 /***********************************************************************
84  *           acmMetrics (MSACM32.36)
85  */
86 MMRESULT32 WINAPI acmMetrics32(
87   HACMOBJ32 hao, UINT32 uMetric, LPVOID  pMetric)
88 {
89   PWINE_ACMOBJ32 pao = MSACM_GetObj32(hao);
90   BOOL32 bLocal = TRUE;
91
92   FIXME(msacm, "(0x%08x, %d, %p): stub\n", hao, uMetric, pMetric);
93
94   switch(uMetric)
95     {
96     case ACM_METRIC_COUNT_DRIVERS:
97       bLocal = FALSE;
98     case ACM_METRIC_COUNT_LOCAL_DRIVERS:
99       if(!pao)
100         return MMSYSERR_INVALHANDLE;  
101       return MMSYSERR_NOTSUPPORTED;
102     case ACM_METRIC_COUNT_CODECS:
103       bLocal = FALSE;
104     case ACM_METRIC_COUNT_LOCAL_CODECS:
105       return MMSYSERR_NOTSUPPORTED;
106     case ACM_METRIC_COUNT_CONVERTERS:
107       bLocal = FALSE;
108     case ACM_METRIC_COUNT_LOCAL_CONVERTERS:
109       return MMSYSERR_NOTSUPPORTED;
110     case ACM_METRIC_COUNT_FILTERS:
111       bLocal = FALSE;
112     case ACM_METRIC_COUNT_LOCAL_FILTERS:
113       return MMSYSERR_NOTSUPPORTED;
114     case ACM_METRIC_COUNT_DISABLED:
115       bLocal = FALSE;
116     case ACM_METRIC_COUNT_LOCAL_DISABLED:
117       if(!pao)
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:
127     default:
128       return MMSYSERR_NOTSUPPORTED;
129     }
130   return MMSYSERR_NOERROR;
131 }