usp10: Implement GPOS MarkToLigature Attachment Positioning Subtable.
[wine] / dlls / msacm.dll16 / wineacm16.h
1 /*
2  * Copyright 2000 Eric Pouech
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef __WINE_WINEACM16_H
20 #define __WINE_WINEACM16_H
21
22 #include "wine/windef16.h"
23 #include "wine/mmsystem16.h"
24
25 /***********************************************************************
26  * Win16 definitions
27  */
28 typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
29   HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
30 );
31 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
32   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
33 );
34 typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
35   HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
36 );
37
38 typedef struct _ACMDRIVERDETAILS16
39 {
40   DWORD   cbStruct;
41
42   FOURCC  fccType;
43   FOURCC  fccComp;
44
45   WORD    wMid;
46   WORD    wPid;
47
48   DWORD   vdwACM;
49   DWORD   vdwDriver;
50
51   DWORD   fdwSupport;
52   DWORD   cFormatTags;
53   DWORD   cFilterTags;
54
55   HICON16 hicon;
56
57   CHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
58   CHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
59   CHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
60   CHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
61   CHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
62 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
63
64 typedef struct _ACMFILTERCHOOSE16
65 {
66   DWORD          cbStruct;
67   DWORD          fdwStyle;
68
69   HWND16         hwndOwner;
70
71   LPWAVEFILTER   pwfltr;
72   DWORD          cbwfltr;
73
74   LPCSTR         pszTitle;
75
76   char           szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
77   char           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
78   LPSTR          pszName;
79   DWORD          cchName;
80
81   DWORD          fdwEnum;
82   LPWAVEFILTER   pwfltrEnum;
83
84   HINSTANCE16    hInstance;
85   LPCSTR         pszTemplateName;
86   LPARAM         lCustData;
87   ACMFILTERCHOOSEHOOKPROC16 pfnHook;
88 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
89
90 typedef struct _ACMFILTERDETAILS16
91 {
92   DWORD          cbStruct;
93   DWORD          dwFilterIndex;
94   DWORD          dwFilterTag;
95   DWORD          fdwSupport;
96   LPWAVEFILTER   pwfltr;
97   DWORD          cbwfltr;
98   CHAR           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
99 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
100
101 typedef struct _ACMFILTERTAGDETAILS16
102 {
103   DWORD cbStruct;
104   DWORD dwFilterTagIndex;
105   DWORD dwFilterTag;
106   DWORD cbFilterSize;
107   DWORD fdwSupport;
108   DWORD cStandardFilters;
109   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
110 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
111
112 typedef struct _ACMFORMATCHOOSE16
113 {
114   DWORD            cbStruct;
115   DWORD            fdwStyle;
116
117   HWND16           hwndOwner;
118
119   LPWAVEFORMATEX   pwfx;
120   DWORD            cbwfx;
121   LPCSTR           pszTitle;
122
123   CHAR             szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
124   CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
125
126   LPSTR            pszName;
127   DWORD            cchName;
128
129   DWORD            fdwEnum;
130   LPWAVEFORMATEX   pwfxEnum;
131
132   HINSTANCE16      hInstance;
133   LPCSTR           pszTemplateName;
134   LPARAM           lCustData;
135   ACMFORMATCHOOSEHOOKPROC16 pfnHook;
136 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
137
138 typedef struct _ACMFORMATDETAILS16
139 {
140     DWORD            cbStruct;
141     DWORD            dwFormatIndex;
142     DWORD            dwFormatTag;
143     DWORD            fdwSupport;
144     LPWAVEFORMATEX   pwfx;
145     DWORD            cbwfx;
146     CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
147 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
148
149 typedef struct _ACMFORMATTAGDETAILS16
150 {
151   DWORD cbStruct;
152   DWORD dwFormatTagIndex;
153   DWORD dwFormatTag;
154   DWORD cbFormatSize;
155   DWORD fdwSupport;
156   DWORD cStandardFormats;
157   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
158 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
159
160 typedef ACMSTREAMHEADER ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16;
161
162 typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
163  HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
164  DWORD dwInstance, DWORD fdwSupport
165 );
166
167 typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
168   HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
169   DWORD dwInstance, DWORD fdwSupport
170 );
171
172 typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
173   HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
174   DWORD dwInstance, DWORD fdwSupport
175 );
176
177 typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
178   HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
179   DWORD dwInstance, DWORD fdwSupport
180 );
181
182 /***********************************************************************
183  * Functions - Win16
184  */
185
186 DWORD WINAPI acmGetVersion16(void);
187 MMRESULT16 WINAPI acmMetrics16(
188   HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
189 );
190 MMRESULT16 WINAPI acmDriverEnum16(
191   ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
192 );
193 MMRESULT16 WINAPI acmDriverDetails16(
194   HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
195 );
196 MMRESULT16 WINAPI acmDriverAdd16(
197   LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
198   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
199 );
200 MMRESULT16 WINAPI acmDriverRemove16(
201   HACMDRIVERID16 hadid, DWORD fdwRemove
202 );
203 MMRESULT16 WINAPI acmDriverOpen16(
204   LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
205 );
206 MMRESULT16 WINAPI acmDriverClose16(
207   HACMDRIVER16 had, DWORD fdwClose
208 );
209 LRESULT WINAPI acmDriverMessage16(
210   HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
211 );
212 MMRESULT16 WINAPI acmDriverID16(
213   HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
214 );
215 MMRESULT16 WINAPI acmDriverPriority16(
216  HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
217 );
218 MMRESULT16 WINAPI acmFormatTagDetails16(
219   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
220 );
221 MMRESULT16 WINAPI acmFormatTagEnum16(
222   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
223   ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
224 );
225 MMRESULT16 WINAPI acmFormatChoose16(
226   LPACMFORMATCHOOSE16 pafmtc
227 );
228 MMRESULT16 WINAPI acmFormatDetails16(
229   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
230 );
231 MMRESULT16 WINAPI acmFormatEnum16(
232   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
233   ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
234 );
235 MMRESULT16 WINAPI acmFormatSuggest16(
236   HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
237   LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
238 );
239 MMRESULT16 WINAPI acmFilterTagDetails16(
240   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
241 );
242 MMRESULT16 WINAPI acmFilterTagEnum16(
243   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
244   ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
245 );
246 MMRESULT16 WINAPI acmFilterChoose16(
247   LPACMFILTERCHOOSE16 pafltrc
248 );
249 MMRESULT16 WINAPI acmFilterDetails16(
250   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
251 );
252 MMRESULT16 WINAPI acmFilterEnum16(
253   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
254   ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
255 );
256 MMRESULT16 WINAPI acmStreamOpen16(
257   LPHACMSTREAM16 phas, HACMDRIVER16 had,
258   LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
259   LPWAVEFILTER pwfltr, DWORD dwCallback,
260   DWORD dwInstance, DWORD fdwOpen
261 );
262 MMRESULT16 WINAPI acmStreamClose16(
263   HACMSTREAM16 has, DWORD fdwClose
264 );
265 MMRESULT16 WINAPI acmStreamSize16(
266   HACMSTREAM16 has, DWORD cbInput,
267   LPDWORD pdwOutputBytes, DWORD fdwSize
268 );
269 MMRESULT16 WINAPI acmStreamConvert16(
270   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
271 );
272 MMRESULT16 WINAPI acmStreamReset16(
273   HACMSTREAM16 has, DWORD fdwReset
274 );
275 MMRESULT16 WINAPI acmStreamPrepareHeader16(
276   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
277 );
278 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
279   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
280 );
281
282 #endif /* __WINE_WINEACM16_H */