Fixed DC leak.
[wine] / dlls / msacm / msacmdrv.h
1 /*
2  *      msacmdrv.h   -       Declarations for MSACM driver
3  */
4
5 #ifndef __WINE_MSACMDRV_H
6 #define __WINE_MSACMDRV_H
7
8 #include "windef.h"
9 #include "wine/windef16.h"
10 #include "msacm.h"
11
12 /***********************************************************************
13  * Types
14  */
15
16 /***********************************************************************
17  * Defines/Enums
18  */
19
20 #define MAKE_ACM_VERSION(mjr, mnr, bld) \
21   (((long)(mjr)<<24) | ((long)(mnr)<<16) | ((long)bld))
22
23 #define ACMDRVOPENDESC_SECTIONNAME_CHARS    
24
25 #define ACMDM_DRIVER_NOTIFY             (ACMDM_BASE + 1)
26 #define ACMDM_DRIVER_DETAILS            (ACMDM_BASE + 10)
27
28 #define ACMDM_HARDWARE_WAVE_CAPS_INPUT  (ACMDM_BASE + 20)
29 #define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21)
30
31 #define ACMDM_FORMATTAG_DETAILS         (ACMDM_BASE + 25)
32 #define ACMDM_FORMAT_DETAILS            (ACMDM_BASE + 26)
33 #define ACMDM_FORMAT_SUGGEST            (ACMDM_BASE + 27)
34
35 #define ACMDM_FILTERTAG_DETAILS         (ACMDM_BASE + 50)
36 #define ACMDM_FILTER_DETAILS            (ACMDM_BASE + 51)
37
38 #define ACMDM_STREAM_OPEN               (ACMDM_BASE + 76)
39 #define ACMDM_STREAM_CLOSE              (ACMDM_BASE + 77)
40 #define ACMDM_STREAM_SIZE               (ACMDM_BASE + 78)
41 #define ACMDM_STREAM_CONVERT            (ACMDM_BASE + 79)
42 #define ACMDM_STREAM_RESET              (ACMDM_BASE + 80)
43 #define ACMDM_STREAM_PREPARE            (ACMDM_BASE + 81)
44 #define ACMDM_STREAM_UNPREPARE          (ACMDM_BASE + 82)
45 #define ACMDM_STREAM_UPDATE             (ACMDM_BASE + 83)
46
47 /***********************************************************************
48  * Structures
49  */
50
51 typedef struct _ACMDRVOPENDESCA
52 {
53   DWORD  cbStruct;
54   FOURCC fccType;
55   FOURCC fccComp;
56   DWORD  dwVersion;
57   DWORD  dwFlags;
58   DWORD  dwError;
59   LPCSTR pszSectionName;
60   LPCSTR pszAliasName;
61   DWORD  dnDevNode;
62 } ACMDRVOPENDESCA, *PACMDRVOPENDESCA;
63
64 typedef struct _ACMDRVOPENDESCW
65 {
66   DWORD   cbStruct;
67   FOURCC  fccType;
68   FOURCC  fccComp;
69   DWORD   dwVersion;
70   DWORD   dwFlags;
71   DWORD   dwError;
72   LPCWSTR pszSectionName;
73   LPCWSTR pszAliasName;
74   DWORD   dnDevNode;
75 } ACMDRVOPENDESCW, *PACMDRVOPENDESCW;
76
77 typedef struct _ACMDRVOPENDESC16
78 {
79   DWORD  cbStruct;
80   FOURCC fccType;
81   FOURCC fccComp;
82   DWORD  dwVersion;
83   DWORD  dwFlags;
84   DWORD  dwError;
85   LPCSTR pszSectionName;
86   LPCSTR pszAliasName;
87   DWORD  dnDevNode;
88 } ACMDRVOPENDESC16, *NPACMDRVOPENDESC16, *LPACMDRVOPENDESC16;
89
90 typedef struct _ACMDRVSTREAMINSTANCE16
91 {
92   DWORD            cbStruct;
93   LPWAVEFORMATEX   pwfxSrc;
94   LPWAVEFORMATEX   pwfxDst;
95   LPWAVEFILTER     pwfltr;
96   DWORD            dwCallback;
97   DWORD            dwInstance;
98   DWORD            fdwOpen;
99   DWORD            fdwDriver;
100   DWORD            dwDriver;
101   HACMSTREAM16     has;
102 } ACMDRVSTREAMINSTANCE16, *NPACMDRVSTREAMINSTANCE16, *LPACMDRVSTREAMINSTANCE16;
103
104 typedef struct _ACMDRVSTREAMINSTANCE
105 {
106   DWORD           cbStruct;
107   PWAVEFORMATEX   pwfxSrc;
108   PWAVEFORMATEX   pwfxDst;
109   PWAVEFILTER     pwfltr;
110   DWORD           dwCallback;
111   DWORD           dwInstance;
112   DWORD           fdwOpen;
113   DWORD           fdwDriver;
114   DWORD           dwDriver;
115   HACMSTREAM    has;
116 } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE;
117
118 typedef struct _ACMDRVSTREAMHEADER16 *LPACMDRVSTREAMHEADER16;
119 typedef struct _ACMDRVSTREAMHEADER16 {
120   DWORD  cbStruct;
121   DWORD  fdwStatus;
122   DWORD  dwUser;
123   LPBYTE pbSrc;
124   DWORD  cbSrcLength;
125   DWORD  cbSrcLengthUsed;
126   DWORD  dwSrcUser;
127   LPBYTE pbDst;
128   DWORD  cbDstLength;
129   DWORD  cbDstLengthUsed;
130   DWORD  dwDstUser;
131
132   DWORD fdwConvert;
133   LPACMDRVSTREAMHEADER16 *padshNext;
134   DWORD fdwDriver;
135   DWORD dwDriver;
136
137   /* Internal fields for ACM */
138   DWORD  fdwPrepared;
139   DWORD  dwPrepared;
140   LPBYTE pbPreparedSrc;
141   DWORD  cbPreparedSrcLength;
142   LPBYTE pbPreparedDst;
143   DWORD  cbPreparedDstLength;
144 } ACMDRVSTREAMHEADER16, *NPACMDRVSTREAMHEADER16;
145
146 typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER;
147 typedef struct _ACMDRVSTREAMHEADER {
148   DWORD  cbStruct;
149   DWORD  fdwStatus;
150   DWORD  dwUser;
151   LPBYTE pbSrc;
152   DWORD  cbSrcLength;
153   DWORD  cbSrcLengthUsed;
154   DWORD  dwSrcUser;
155   LPBYTE pbDst;
156   DWORD  cbDstLength;
157   DWORD  cbDstLengthUsed;
158   DWORD  dwDstUser;
159
160   DWORD fdwConvert;
161   PACMDRVSTREAMHEADER *padshNext;
162   DWORD fdwDriver;
163   DWORD dwDriver;
164
165   /* Internal fields for ACM */
166   DWORD  fdwPrepared;
167   DWORD  dwPrepared;
168   LPBYTE pbPreparedSrc;
169   DWORD  cbPreparedSrcLength;
170   LPBYTE pbPreparedDst;
171   DWORD  cbPreparedDstLength;
172 } ACMDRVSTREAMHEADER;
173
174 typedef struct _ACMDRVSTREAMSIZE
175 {
176   DWORD cbStruct;
177   DWORD fdwSize;
178   DWORD cbSrcLength;
179   DWORD cbDstLength;
180 } ACMDRVSTREAMSIZE16, *NPACMDRVSTREAMSIZE16, *LPACMDRVSTREAMSIZE16,
181   ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE;
182
183 typedef struct _ACMDRVFORMATSUGGEST16
184 {
185   DWORD            cbStruct;
186   DWORD            fdwSuggest;
187   LPWAVEFORMATEX   pwfxSrc;
188   DWORD            cbwfxSrc;
189   LPWAVEFORMATEX   pwfxDst;
190   DWORD            cbwfxDst;
191 } ACMDRVFORMATSUGGEST16, *NPACMDRVFORMATSUGGEST, *LPACMDRVFORMATSUGGEST;
192
193 typedef struct _ACMDRVFORMATSUGGEST
194 {
195   DWORD           cbStruct;
196   DWORD           fdwSuggest;
197   PWAVEFORMATEX   pwfxSrc;
198   DWORD           cbwfxSrc;
199   PWAVEFORMATEX   pwfxDst;
200   DWORD           cbwfxDst;
201 } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST;
202
203 #endif  /* __WINE_MSACMDRV_H */