Reactos
at master 792 lines 25 kB view raw
1/* 2 * Declarations for MSACM 3 * 4 * Copyright (C) the Wine project 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21#ifndef __WINE_MSACM_H 22#define __WINE_MSACM_H 23 24#ifdef __cplusplus 25extern "C" { 26#endif /* defined(__cplusplus) */ 27 28#include <pshpack1.h> 29 30#define ACMAPI WINAPI 31 32/*********************************************************************** 33 * Defines/Enums 34 */ 35#define ACMERR_BASE 512 36#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0) 37#define ACMERR_BUSY (ACMERR_BASE + 1) 38#define ACMERR_UNPREPARED (ACMERR_BASE + 2) 39#define ACMERR_CANCELED (ACMERR_BASE + 3) 40 41#define MM_ACM_OPEN MM_STREAM_OPEN 42#define MM_ACM_CLOSE MM_STREAM_CLOSE 43#define MM_ACM_DONE MM_STREAM_DONE 44 45#define ACM_DRIVERADDF_NAME 0x00000001L 46#define ACM_DRIVERADDF_FUNCTION 0x00000003L 47#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L 48#define ACM_DRIVERADDF_TYPEMASK 0x00000007L 49#define ACM_DRIVERADDF_LOCAL 0x00000000L 50#define ACM_DRIVERADDF_GLOBAL 0x00000008L 51 52#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32 53#define ACMDRIVERDETAILS_LONGNAME_CHARS 128 54#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80 55#define ACMDRIVERDETAILS_LICENSING_CHARS 128 56#define ACMDRIVERDETAILS_FEATURES_CHARS 512 57 58#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c') 59#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0') 60 61#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L 62#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L 63#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L 64#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L 65#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L 66#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L 67#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L 68 69#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L 70#define ACM_DRIVERENUMF_DISABLED 0x80000000L 71 72#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L 73#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L 74#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L 75#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L 76#define ACM_DRIVERPRIORITYF_END 0x00020000L 77#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L 78 79#define MM_ACM_FILTERCHOOSE 0x8000 80 81#define FILTERCHOOSE_MESSAGE 0 82#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0) 83#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1) 84#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2) 85 86#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L 87#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L 88#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L 89#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L 90#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L 91#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L 92 93#define ACMFILTERDETAILS_FILTER_CHARS 128 94 95#define ACM_FILTERDETAILSF_INDEX 0x00000000L 96#define ACM_FILTERDETAILSF_FILTER 0x00000001L 97#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL 98 99#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48 100 101#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L 102#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L 103#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L 104#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL 105 106#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L 107 108#define ACMHELPMSGSTRINGA "acmchoose_help" 109#if defined(__GNUC__) 110# define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \ 111 'c','h','o','o','s','e','_','h','e','l','p',0 } 112#elif defined(_MSC_VER) 113# define ACMHELPMSGSTRINGW L"acmchoose_help" 114#else 115static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m', 116 'c','h','o','o','s','e','_','h','e','l','p',0 }; 117#endif 118#define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING) 119 120#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu" 121#if defined(__GNUC__) 122# define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \ 123 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 } 124#elif defined(_MSC_VER) 125# define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu" 126#else 127static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m', 128 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }; 129#endif 130#define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU) 131 132#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp" 133#if defined(__GNUC__) 134# define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \ 135 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 } 136#elif defined(_MSC_VER) 137# define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp" 138#else 139static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m', 140 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }; 141#endif 142#define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP) 143 144#define MM_ACM_FORMATCHOOSE 0x8000 145 146#define FORMATCHOOSE_MESSAGE 0 147#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0) 148#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1) 149#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2) 150 151#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L 152#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L 153#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L 154#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L 155#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L 156#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L 157 158#define ACMFORMATDETAILS_FORMAT_CHARS 128 159 160#define ACM_FORMATDETAILSF_INDEX 0x00000000L 161#define ACM_FORMATDETAILSF_FORMAT 0x00000001L 162#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL 163 164#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L 165#define ACM_FORMATENUMF_NCHANNELS 0x00020000L 166#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L 167#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L 168#define ACM_FORMATENUMF_CONVERT 0x00100000L 169#define ACM_FORMATENUMF_SUGGEST 0x00200000L 170#define ACM_FORMATENUMF_HARDWARE 0x00400000L 171#define ACM_FORMATENUMF_INPUT 0x00800000L 172#define ACM_FORMATENUMF_OUTPUT 0x01000000L 173 174#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L 175#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L 176#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L 177#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L 178#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L 179 180#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48 181 182#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L 183#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L 184#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L 185#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL 186 187#define ACM_METRIC_COUNT_DRIVERS 1 188#define ACM_METRIC_COUNT_CODECS 2 189#define ACM_METRIC_COUNT_CONVERTERS 3 190#define ACM_METRIC_COUNT_FILTERS 4 191#define ACM_METRIC_COUNT_DISABLED 5 192#define ACM_METRIC_COUNT_HARDWARE 6 193#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20 194#define ACM_METRIC_COUNT_LOCAL_CODECS 21 195#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22 196#define ACM_METRIC_COUNT_LOCAL_FILTERS 23 197#define ACM_METRIC_COUNT_LOCAL_DISABLED 24 198#define ACM_METRIC_HARDWARE_WAVE_INPUT 30 199#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31 200#define ACM_METRIC_MAX_SIZE_FORMAT 50 201#define ACM_METRIC_MAX_SIZE_FILTER 51 202#define ACM_METRIC_DRIVER_SUPPORT 100 203#define ACM_METRIC_DRIVER_PRIORITY 101 204 205#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004 206#define ACM_STREAMCONVERTF_START 0x00000010 207#define ACM_STREAMCONVERTF_END 0x00000020 208 209#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L 210#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L 211#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L 212 213#define ACM_STREAMOPENF_QUERY 0x00000001 214#define ACM_STREAMOPENF_ASYNC 0x00000002 215#define ACM_STREAMOPENF_NONREALTIME 0x00000004 216 217#define ACM_STREAMSIZEF_SOURCE 0x00000000L 218#define ACM_STREAMSIZEF_DESTINATION 0x00000001L 219#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL 220 221#define ACMDM_USER (DRV_USER + 0x0000) 222#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000) 223#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF) 224 225#define ACMDM_BASE ACMDM_RESERVED_LOW 226 227#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11) 228 229/* handles */ 230 231DECLARE_HANDLE(HACMDRIVERID); 232DECLARE_HANDLE(HACMDRIVER); 233DECLARE_HANDLE(HACMSTREAM); 234DECLARE_HANDLE(HACMOBJ); 235typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID; 236typedef HACMDRIVER *PHACMDRIVER, *LPHACMDRIVER; 237typedef HACMSTREAM *PHACMSTREAM, *LPHACMSTREAM; 238typedef HACMOBJ *PHACMOBJ, *LPHACMOBJ; 239 240/*********************************************************************** 241 * Callbacks 242 */ 243 244typedef BOOL (CALLBACK *ACMDRIVERENUMCB)( 245 HACMDRIVERID hadid, DWORD_PTR dwInstance, DWORD fdwSupport 246); 247 248typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)( 249 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam 250); 251 252typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)( 253 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam 254); 255#define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC) 256 257typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)( 258 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam 259); 260 261typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)( 262 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam 263); 264#define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC) 265 266/*********************************************************************** 267 * Structures 268 */ 269 270typedef struct _ACMDRIVERDETAILSA 271{ 272 DWORD cbStruct; 273 274 FOURCC fccType; 275 FOURCC fccComp; 276 277 WORD wMid; 278 WORD wPid; 279 280 DWORD vdwACM; 281 DWORD vdwDriver; 282 283 DWORD fdwSupport; 284 DWORD cFormatTags; 285 DWORD cFilterTags; 286 287 HICON hicon; 288 289 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; 290 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; 291 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; 292 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; 293 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; 294} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA; 295 296typedef struct _ACMDRIVERDETAILSW 297{ 298 DWORD cbStruct; 299 300 FOURCC fccType; 301 FOURCC fccComp; 302 303 WORD wMid; 304 WORD wPid; 305 306 DWORD vdwACM; 307 DWORD vdwDriver; 308 309 DWORD fdwSupport; 310 DWORD cFormatTags; 311 DWORD cFilterTags; 312 313 HICON hicon; 314 315 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; 316 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; 317 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; 318 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; 319 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; 320} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW; 321 322DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS) 323DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS) 324DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS) 325 326typedef struct tACMFILTERCHOOSEA 327{ 328 DWORD cbStruct; 329 DWORD fdwStyle; 330 331 HWND hwndOwner; 332 333 PWAVEFILTER pwfltr; 334 DWORD cbwfltr; 335 336 LPCSTR pszTitle; 337 338 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; 339 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; 340 LPSTR pszName; 341 DWORD cchName; 342 343 DWORD fdwEnum; 344 PWAVEFILTER pwfltrEnum; 345 346 HINSTANCE hInstance; 347 LPCSTR pszTemplateName; 348 LPARAM lCustData; 349 ACMFILTERCHOOSEHOOKPROCA pfnHook; 350} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA; 351 352typedef struct _ACMFILTERCHOOSEW 353{ 354 DWORD cbStruct; 355 DWORD fdwStyle; 356 357 HWND hwndOwner; 358 359 PWAVEFILTER pwfltr; 360 DWORD cbwfltr; 361 362 LPCWSTR pszTitle; 363 364 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; 365 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; 366 LPWSTR pszName; 367 DWORD cchName; 368 369 DWORD fdwEnum; 370 PWAVEFILTER pwfltrEnum; 371 372 HINSTANCE hInstance; 373 LPCWSTR pszTemplateName; 374 LPARAM lCustData; 375 ACMFILTERCHOOSEHOOKPROCW pfnHook; 376} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW; 377 378DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE) 379DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE) 380DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE) 381 382typedef struct _ACMFILTERDETAILSA 383{ 384 DWORD cbStruct; 385 DWORD dwFilterIndex; 386 DWORD dwFilterTag; 387 DWORD fdwSupport; 388 PWAVEFILTER pwfltr; 389 DWORD cbwfltr; 390 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; 391} ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA; 392 393typedef struct _ACMFILTERDETAILSW 394{ 395 DWORD cbStruct; 396 DWORD dwFilterIndex; 397 DWORD dwFilterTag; 398 DWORD fdwSupport; 399 PWAVEFILTER pwfltr; 400 DWORD cbwfltr; 401 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; 402} ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW; 403 404DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS) 405DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS) 406DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS) 407 408typedef struct _ACMFILTERTAGDETAILSA 409{ 410 DWORD cbStruct; 411 DWORD dwFilterTagIndex; 412 DWORD dwFilterTag; 413 DWORD cbFilterSize; 414 DWORD fdwSupport; 415 DWORD cStandardFilters; 416 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; 417} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA; 418 419typedef struct _ACMFILTERTAGDETAILSW 420{ 421 DWORD cbStruct; 422 DWORD dwFilterTagIndex; 423 DWORD dwFilterTag; 424 DWORD cbFilterSize; 425 DWORD fdwSupport; 426 DWORD cStandardFilters; 427 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; 428} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW; 429 430DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS) 431DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS) 432DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS) 433 434typedef struct _ACMFORMATCHOOSEA 435{ 436 DWORD cbStruct; 437 DWORD fdwStyle; 438 439 HWND hwndOwner; 440 441 PWAVEFORMATEX pwfx; 442 DWORD cbwfx; 443 LPCSTR pszTitle; 444 445 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; 446 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; 447 448 LPSTR pszName; 449 DWORD cchName; 450 451 DWORD fdwEnum; 452 PWAVEFORMATEX pwfxEnum; 453 454 HINSTANCE hInstance; 455 LPCSTR pszTemplateName; 456 LPARAM lCustData; 457 ACMFORMATCHOOSEHOOKPROCA pfnHook; 458} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA; 459 460typedef struct _ACMFORMATCHOOSEW 461{ 462 DWORD cbStruct; 463 DWORD fdwStyle; 464 465 HWND hwndOwner; 466 467 PWAVEFORMATEX pwfx; 468 DWORD cbwfx; 469 LPCWSTR pszTitle; 470 471 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; 472 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; 473 474 LPWSTR pszName; 475 DWORD cchName; 476 477 DWORD fdwEnum; 478 LPWAVEFORMATEX pwfxEnum; 479 480 HINSTANCE hInstance; 481 LPCWSTR pszTemplateName; 482 LPARAM lCustData; 483 ACMFORMATCHOOSEHOOKPROCW pfnHook; 484} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW; 485 486DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE) 487DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE) 488DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE) 489 490typedef struct _ACMFORMATDETAILSA 491{ 492 DWORD cbStruct; 493 DWORD dwFormatIndex; 494 DWORD dwFormatTag; 495 DWORD fdwSupport; 496 PWAVEFORMATEX pwfx; 497 DWORD cbwfx; 498 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; 499} ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA; 500 501typedef struct _ACMFORMATDETAILSW 502{ 503 DWORD cbStruct; 504 DWORD dwFormatIndex; 505 DWORD dwFormatTag; 506 DWORD fdwSupport; 507 PWAVEFORMATEX pwfx; 508 DWORD cbwfx; 509 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; 510} ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW; 511 512DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS) 513DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS) 514DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS) 515 516typedef struct _ACMFORMATTAGDETAILSA 517{ 518 DWORD cbStruct; 519 DWORD dwFormatTagIndex; 520 DWORD dwFormatTag; 521 DWORD cbFormatSize; 522 DWORD fdwSupport; 523 DWORD cStandardFormats; 524 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; 525} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA; 526 527typedef struct _ACMFORMATTAGDETAILSW 528{ 529 DWORD cbStruct; 530 DWORD dwFormatTagIndex; 531 DWORD dwFormatTag; 532 DWORD cbFormatSize; 533 DWORD fdwSupport; 534 DWORD cStandardFormats; 535 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; 536} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW; 537 538DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS) 539DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS) 540DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS) 541 542#ifdef _WIN64 543# define _ACMSTREAMHEADERRESERVE 15 544#else 545# define _ACMSTREAMHEADERRESERVE 10 546#endif 547 548typedef struct _ACMSTREAMHEADER 549{ 550 DWORD cbStruct; 551 DWORD fdwStatus; 552 DWORD_PTR dwUser; 553 LPBYTE pbSrc; 554 DWORD cbSrcLength; 555 DWORD cbSrcLengthUsed; 556 DWORD_PTR dwSrcUser; 557 LPBYTE pbDst; 558 DWORD cbDstLength; 559 DWORD cbDstLengthUsed; 560 DWORD_PTR dwDstUser; 561 DWORD dwReservedDriver[_ACMSTREAMHEADERRESERVE]; 562} ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER; 563 564#undef _ACMSTREAMHEADERRESERVE 565 566/*********************************************************************** 567 * Callbacks 2 568 */ 569 570typedef BOOL (CALLBACK *ACMFILTERENUMCBA)( 571 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd, 572 DWORD_PTR dwInstance, DWORD fdwSupport 573); 574 575typedef BOOL (CALLBACK *ACMFILTERENUMCBW)( 576 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd, 577 DWORD_PTR dwInstance, DWORD fdwSupport 578); 579 580#define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB) 581 582typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)( 583 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd, 584 DWORD_PTR dwInstance, DWORD fdwSupport 585); 586 587typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)( 588 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd, 589 DWORD_PTR dwInstance, DWORD fdwSupport 590); 591 592#define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB) 593 594typedef BOOL (CALLBACK *ACMFORMATENUMCBA)( 595 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd, 596 DWORD_PTR dwInstance, DWORD fdwSupport 597); 598 599typedef BOOL (CALLBACK *ACMFORMATENUMCBW)( 600 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd, 601 DWORD_PTR dwInstance, DWORD fdwSupport 602); 603 604#define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB) 605 606typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)( 607 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd, 608 DWORD_PTR dwInstance, DWORD fdwSupport 609); 610 611typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)( 612 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd, 613 DWORD_PTR dwInstance, DWORD fdwSupport 614); 615 616#define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB) 617 618/*********************************************************************** 619 * Functions - Win32 620 */ 621 622MMRESULT WINAPI acmDriverAddA( 623 PHACMDRIVERID phadid, HINSTANCE hinstModule, 624 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd 625); 626MMRESULT WINAPI acmDriverAddW( 627 PHACMDRIVERID phadid, HINSTANCE hinstModule, 628 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd 629); 630#define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd) 631 632MMRESULT WINAPI acmDriverClose( 633 HACMDRIVER had, DWORD fdwClose 634); 635MMRESULT WINAPI acmDriverDetailsA( 636 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails 637); 638MMRESULT WINAPI acmDriverDetailsW( 639 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails 640); 641#define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails) 642 643MMRESULT WINAPI acmDriverEnum( 644 ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 645); 646MMRESULT WINAPI acmDriverID( 647 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID 648); 649LRESULT WINAPI acmDriverMessage( 650 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2 651); 652MMRESULT WINAPI acmDriverOpen( 653 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen 654); 655MMRESULT WINAPI acmDriverPriority( 656 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority 657); 658MMRESULT WINAPI acmDriverRemove( 659 HACMDRIVERID hadid, DWORD fdwRemove 660); 661MMRESULT WINAPI acmFilterChooseA( 662 PACMFILTERCHOOSEA pafltrc 663); 664MMRESULT WINAPI acmFilterChooseW( 665 PACMFILTERCHOOSEW pafltrc 666); 667#define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose) 668 669MMRESULT WINAPI acmFilterDetailsA( 670 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails 671); 672MMRESULT WINAPI acmFilterDetailsW( 673 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails 674); 675#define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails) 676 677MMRESULT WINAPI acmFilterEnumA( 678 HACMDRIVER had, PACMFILTERDETAILSA pafd, 679 ACMFILTERENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 680); 681MMRESULT WINAPI acmFilterEnumW( 682 HACMDRIVER had, PACMFILTERDETAILSW pafd, 683 ACMFILTERENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 684); 685#define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum) 686 687MMRESULT WINAPI acmFilterTagDetailsA( 688 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails 689); 690MMRESULT WINAPI acmFilterTagDetailsW( 691 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails 692); 693#define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails) 694 695MMRESULT WINAPI acmFilterTagEnumA( 696 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, 697 ACMFILTERTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 698); 699MMRESULT WINAPI acmFilterTagEnumW( 700 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, 701 ACMFILTERTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 702); 703#define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum) 704 705MMRESULT WINAPI acmFormatChooseA( 706 PACMFORMATCHOOSEA pafmtc 707); 708MMRESULT WINAPI acmFormatChooseW( 709 PACMFORMATCHOOSEW pafmtc 710); 711#define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose) 712 713MMRESULT WINAPI acmFormatDetailsA( 714 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails 715); 716MMRESULT WINAPI acmFormatDetailsW( 717 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails 718); 719#define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails) 720 721MMRESULT WINAPI acmFormatEnumA( 722 HACMDRIVER had, PACMFORMATDETAILSA pafd, 723 ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 724); 725MMRESULT WINAPI acmFormatEnumW( 726 HACMDRIVER had, PACMFORMATDETAILSW pafd, 727 ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 728); 729#define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum) 730 731MMRESULT WINAPI acmFormatSuggest( 732 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, 733 DWORD cbwfxDst, DWORD fdwSuggest 734); 735MMRESULT WINAPI acmFormatTagDetailsA( 736 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails 737); 738MMRESULT WINAPI acmFormatTagDetailsW( 739 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails 740); 741#define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails) 742 743MMRESULT WINAPI acmFormatTagEnumA( 744 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, 745 ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 746); 747MMRESULT WINAPI acmFormatTagEnumW( 748 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, 749 ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum 750); 751#define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum) 752 753DWORD WINAPI acmGetVersion(void 754); 755MMRESULT WINAPI acmMetrics( 756 HACMOBJ hao, UINT uMetric, LPVOID pMetric 757); 758MMRESULT WINAPI acmStreamClose( 759 HACMSTREAM has, DWORD fdwClose 760); 761MMRESULT WINAPI acmStreamConvert( 762 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert 763); 764MMRESULT WINAPI acmStreamMessage( 765 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2 766); 767MMRESULT WINAPI acmStreamOpen( 768 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, 769 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD_PTR dwCallback, 770 DWORD_PTR dwInstance, DWORD fdwOpen 771); 772MMRESULT WINAPI acmStreamPrepareHeader( 773 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare 774); 775MMRESULT WINAPI acmStreamReset( 776 HACMSTREAM has, DWORD fdwReset 777); 778MMRESULT WINAPI acmStreamSize( 779 HACMSTREAM has, DWORD cbInput, 780 LPDWORD pdwOutputBytes, DWORD fdwSize 781); 782MMRESULT WINAPI acmStreamUnprepareHeader( 783 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare 784); 785 786#include <poppack.h> 787 788#ifdef __cplusplus 789} /* extern "C" */ 790#endif /* defined(__cplusplus) */ 791 792#endif /* __WINE_MSACM_H */