ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mmddk.h
Go to the documentation of this file.
00001 /* -*- tab-width: 8; c-basic-offset: 4 -*- */
00002 
00003 /*****************************************************************************
00004  * Copyright 1998, Luiz Otavio L. Zorzella
00005  *           1999, Eric Pouech
00006  *
00007  * Purpose:   multimedia declarations (external to WINMM & MMSYSTEM DLLs
00008  *                                     for other DLLs (MCI, drivers...))
00009  *
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00023  *
00024  *****************************************************************************
00025  */
00026 #ifndef __MMDDK_H
00027 #define __MMDDK_H
00028 
00029 #include <mmsystem.h>
00030 #include <winbase.h>
00031 
00032 /* Maxium drivers  */
00033 #define MAXWAVEDRIVERS 10
00034 
00035 #define MAX_MIDIINDRV   (16)
00036 /* For now I'm making 16 the maximum number of midi devices one can
00037  * have. This should be more than enough for everybody. But as a purist,
00038  * I intend to make it unbounded in the future, as soon as I figure
00039  * a good way to do so.
00040  */
00041 #define MAX_MIDIOUTDRV  (16)
00042 
00043 /* ==================================
00044  *   Multimedia DDK compatible part
00045  * ================================== */
00046 
00047 #include <pshpack1.h>
00048 
00049 #define DRVM_INIT       100
00050 #define DRVM_EXIT       101
00051 #define DRVM_DISABLE        102
00052 #define DRVM_ENABLE     103
00053 
00054 /* messages that have IOCTL format
00055  *    dw1 = NULL or handle
00056  *    dw2 = NULL or ptr to DRVM_IOCTL_DATA
00057  *    return is MMRESULT
00058  */
00059 #define DRVM_IOCTL      0x100
00060 #define DRVM_ADD_THRU       (DRVM_IOCTL+1)
00061 #define DRVM_REMOVE_THRU    (DRVM_IOCTL+2)
00062 #define DRVM_IOCTL_LAST     (DRVM_IOCTL+5)
00063 typedef struct {
00064     DWORD  dwSize;  /* size of this structure */
00065     DWORD  dwCmd;   /* IOCTL command code, 0x80000000 and above reserved for system */
00066 } DRVM_IOCTL_DATA, *LPDRVM_IOCTL_DATA;
00067 
00068 /* command code ranges for dwCmd field of DRVM_IOCTL message
00069  * - codes from 0 to 0x7FFFFFFF are user defined
00070  * - codes from 0x80000000 to 0xFFFFFFFF are reserved for future definition by microsoft
00071  */
00072 #define DRVM_IOCTL_CMD_USER   0x00000000L
00073 #define DRVM_IOCTL_CMD_SYSTEM 0x80000000L
00074 
00075 #define DRVM_MAPPER         0x2000
00076 #define DRVM_USER           0x4000
00077 #define DRVM_MAPPER_STATUS      (DRVM_MAPPER+0)
00078 #define DRVM_MAPPER_RECONFIGURE     (DRVM_MAPPER+1)
00079 #define DRVM_MAPPER_PREFERRED_GET   (DRVM_MAPPER+21)
00080 #define DRVM_MAPPER_CONSOLEVOICECOM_GET (DRVM_MAPPER+23)
00081 
00082 #define DRV_QUERYDRVENTRY       (DRV_RESERVED + 1)
00083 #define DRV_QUERYDEVNODE        (DRV_RESERVED + 2)
00084 #define DRV_QUERYNAME           (DRV_RESERVED + 3)
00085 #define DRV_QUERYDRIVERIDS      (DRV_RESERVED + 4)
00086 #define DRV_QUERYMAPPABLE       (DRV_RESERVED + 5)
00087 #define DRV_QUERYMODULE         (DRV_RESERVED + 9)
00088 #define DRV_PNPINSTALL          (DRV_RESERVED + 11)
00089 #define DRV_QUERYDEVICEINTERFACE    (DRV_RESERVED + 12)
00090 #define DRV_QUERYDEVICEINTERFACESIZE    (DRV_RESERVED + 13)
00091 #define DRV_QUERYSTRINGID       (DRV_RESERVED + 14)
00092 #define DRV_QUERYSTRINGIDSIZE       (DRV_RESERVED + 15)
00093 #define DRV_QUERYIDFROMSTRINGID     (DRV_RESERVED + 16)
00094 #ifdef _WINE
00095 #define DRV_QUERYDSOUNDIFACE        (DRV_RESERVED + 20)
00096 #define DRV_QUERYDSOUNDDESC     (DRV_RESERVED + 21)
00097 #define DRV_QUERYDSOUNDGUID     (DRV_RESERVED + 22)
00098 #endif
00099 
00100 #define WODM_INIT       DRVM_INIT
00101 #define WODM_GETNUMDEVS      3
00102 #define WODM_GETDEVCAPS      4
00103 #define WODM_OPEN        5
00104 #define WODM_CLOSE       6
00105 #define WODM_PREPARE         7
00106 #define WODM_UNPREPARE       8
00107 #define WODM_WRITE       9
00108 #define WODM_PAUSE      10
00109 #define WODM_RESTART        11
00110 #define WODM_RESET      12
00111 #define WODM_GETPOS     13
00112 #define WODM_GETPITCH       14
00113 #define WODM_SETPITCH       15
00114 #define WODM_GETVOLUME      16
00115 #define WODM_SETVOLUME      17
00116 #define WODM_GETPLAYBACKRATE    18
00117 #define WODM_SETPLAYBACKRATE    19
00118 #define WODM_BREAKLOOP      20
00119 #define WODM_PREFERRED      21
00120 
00121 #define WODM_MAPPER_STATUS      (DRVM_MAPPER_STATUS + 0)
00122 #define WAVEOUT_MAPPER_STATUS_DEVICE    0
00123 #define WAVEOUT_MAPPER_STATUS_MAPPED    1
00124 #define WAVEOUT_MAPPER_STATUS_FORMAT    2
00125 
00126 #define WODM_BUSY       21
00127 
00128 #define WIDM_INIT       DRVM_INIT
00129 #define WIDM_GETNUMDEVS     50
00130 #define WIDM_GETDEVCAPS     51
00131 #define WIDM_OPEN       52
00132 #define WIDM_CLOSE      53
00133 #define WIDM_PREPARE        54
00134 #define WIDM_UNPREPARE      55
00135 #define WIDM_ADDBUFFER      56
00136 #define WIDM_START      57
00137 #define WIDM_STOP       58
00138 #define WIDM_RESET      59
00139 #define WIDM_GETPOS     60
00140 #define WIDM_PREFERRED      61
00141 #define WIDM_MAPPER_STATUS      (DRVM_MAPPER_STATUS + 0)
00142 #define WAVEIN_MAPPER_STATUS_DEVICE     0
00143 #define WAVEIN_MAPPER_STATUS_MAPPED     1
00144 #define WAVEIN_MAPPER_STATUS_FORMAT     2
00145 
00146 #define MODM_INIT       DRVM_INIT
00147 #define MODM_GETNUMDEVS     1
00148 #define MODM_GETDEVCAPS     2
00149 #define MODM_OPEN       3
00150 #define MODM_CLOSE      4
00151 #define MODM_PREPARE        5
00152 #define MODM_UNPREPARE      6
00153 #define MODM_DATA       7
00154 #define MODM_LONGDATA       8
00155 #define MODM_RESET              9
00156 #define MODM_GETVOLUME      10
00157 #define MODM_SETVOLUME      11
00158 #define MODM_CACHEPATCHES   12
00159 #define MODM_CACHEDRUMPATCHES   13
00160 
00161 #define MIDM_INIT       DRVM_INIT
00162 #define MIDM_GETNUMDEVS     53
00163 #define MIDM_GETDEVCAPS     54
00164 #define MIDM_OPEN           55
00165 #define MIDM_CLOSE          56
00166 #define MIDM_PREPARE        57
00167 #define MIDM_UNPREPARE      58
00168 #define MIDM_ADDBUFFER      59
00169 #define MIDM_START          60
00170 #define MIDM_STOP           61
00171 #define MIDM_RESET          62
00172 
00173 
00174 #define AUXM_INIT               DRVM_INIT
00175 #define AUXDM_GETNUMDEVS        3
00176 #define AUXDM_GETDEVCAPS        4
00177 #define AUXDM_GETVOLUME         5
00178 #define AUXDM_SETVOLUME         6
00179 
00180 #define MXDM_INIT       DRVM_INIT
00181 #define MXDM_USER               DRVM_USER
00182 #define MXDM_MAPPER             DRVM_MAPPER
00183 
00184 #define MXDM_GETNUMDEVS     1
00185 #define MXDM_GETDEVCAPS     2
00186 #define MXDM_OPEN       3
00187 #define MXDM_CLOSE      4
00188 #define MXDM_GETLINEINFO    5
00189 #define MXDM_GETLINECONTROLS    6
00190 #define MXDM_GETCONTROLDETAILS  7
00191 #define MXDM_SETCONTROLDETAILS  8
00192 
00193 /* pre-defined joystick types */
00194 #define JOY_HW_NONE         0
00195 #define JOY_HW_CUSTOM           1
00196 #define JOY_HW_2A_2B_GENERIC        2
00197 #define JOY_HW_2A_4B_GENERIC        3
00198 #define JOY_HW_2B_GAMEPAD       4
00199 #define JOY_HW_2B_FLIGHTYOKE        5
00200 #define JOY_HW_2B_FLIGHTYOKETHROTTLE    6
00201 #define JOY_HW_3A_2B_GENERIC        7
00202 #define JOY_HW_3A_4B_GENERIC        8
00203 #define JOY_HW_4B_GAMEPAD       9
00204 #define JOY_HW_4B_FLIGHTYOKE        10
00205 #define JOY_HW_4B_FLIGHTYOKETHROTTLE    11
00206 #define JOY_HW_LASTENTRY        12
00207 
00208 /* calibration flags */
00209 #define JOY_ISCAL_XY        0x00000001l /* XY are calibrated */
00210 #define JOY_ISCAL_Z     0x00000002l /* Z is calibrated */
00211 #define JOY_ISCAL_R     0x00000004l /* R is calibrated */
00212 #define JOY_ISCAL_U     0x00000008l /* U is calibrated */
00213 #define JOY_ISCAL_V     0x00000010l /* V is calibrated */
00214 #define JOY_ISCAL_POV       0x00000020l /* POV is calibrated */
00215 
00216 /* point of view constants */
00217 #define JOY_POV_NUMDIRS          4
00218 #define JOY_POVVAL_FORWARD       0
00219 #define JOY_POVVAL_BACKWARD      1
00220 #define JOY_POVVAL_LEFT          2
00221 #define JOY_POVVAL_RIGHT         3
00222 
00223 /* Specific settings for joystick hardware */
00224 #define JOY_HWS_HASZ        0x00000001l /* has Z info? */
00225 #define JOY_HWS_HASPOV      0x00000002l /* point of view hat present */
00226 #define JOY_HWS_POVISBUTTONCOMBOS 0x00000004l   /* pov done through combo of buttons */
00227 #define JOY_HWS_POVISPOLL   0x00000008l /* pov done through polling */
00228 #define JOY_HWS_ISYOKE      0x00000010l /* joystick is a flight yoke */
00229 #define JOY_HWS_ISGAMEPAD   0x00000020l /* joystick is a game pad */
00230 #define JOY_HWS_ISCARCTRL   0x00000040l /* joystick is a car controller */
00231 /* X defaults to J1 X axis */
00232 #define JOY_HWS_XISJ1Y      0x00000080l /* X is on J1 Y axis */
00233 #define JOY_HWS_XISJ2X      0x00000100l /* X is on J2 X axis */
00234 #define JOY_HWS_XISJ2Y      0x00000200l /* X is on J2 Y axis */
00235 /* Y defaults to J1 Y axis */
00236 #define JOY_HWS_YISJ1X      0x00000400l /* Y is on J1 X axis */
00237 #define JOY_HWS_YISJ2X      0x00000800l /* Y is on J2 X axis */
00238 #define JOY_HWS_YISJ2Y      0x00001000l /* Y is on J2 Y axis */
00239 /* Z defaults to J2 Y axis */
00240 #define JOY_HWS_ZISJ1X      0x00002000l /* Z is on J1 X axis */
00241 #define JOY_HWS_ZISJ1Y      0x00004000l /* Z is on J1 Y axis */
00242 #define JOY_HWS_ZISJ2X      0x00008000l /* Z is on J2 X axis */
00243 /* POV defaults to J2 Y axis, if it is not button based */
00244 #define JOY_HWS_POVISJ1X    0x00010000l /* pov done through J1 X axis */
00245 #define JOY_HWS_POVISJ1Y    0x00020000l /* pov done through J1 Y axis */
00246 #define JOY_HWS_POVISJ2X    0x00040000l /* pov done through J2 X axis */
00247 /* R defaults to J2 X axis */
00248 #define JOY_HWS_HASR        0x00080000l /* has R (4th axis) info */
00249 #define JOY_HWS_RISJ1X      0x00100000l /* R done through J1 X axis */
00250 #define JOY_HWS_RISJ1Y      0x00200000l /* R done through J1 Y axis */
00251 #define JOY_HWS_RISJ2Y      0x00400000l /* R done through J2 X axis */
00252 /* U & V for future hardware */
00253 #define JOY_HWS_HASU        0x00800000l /* has U (5th axis) info */
00254 #define JOY_HWS_HASV        0x01000000l /* has V (6th axis) info */
00255 
00256 /* Usage settings */
00257 #define JOY_US_HASRUDDER    0x00000001l /* joystick configured with rudder */
00258 #define JOY_US_PRESENT      0x00000002l /* is joystick actually present? */
00259 #define JOY_US_ISOEM        0x00000004l /* joystick is an OEM defined type */
00260 
00261 
00262 /* struct for storing x,y, z, and rudder values */
00263 typedef struct joypos_tag {
00264     DWORD   dwX;
00265     DWORD   dwY;
00266     DWORD   dwZ;
00267     DWORD   dwR;
00268     DWORD   dwU;
00269     DWORD   dwV;
00270 } JOYPOS, *LPJOYPOS;
00271 
00272 /* struct for storing ranges */
00273 typedef struct joyrange_tag {
00274     JOYPOS  jpMin;
00275     JOYPOS  jpMax;
00276     JOYPOS  jpCenter;
00277 } JOYRANGE,*LPJOYRANGE;
00278 
00279 typedef struct joyreguservalues_tag {
00280     DWORD   dwTimeOut;  /* value at which to timeout joystick polling */
00281     JOYRANGE    jrvRanges;  /* range of values app wants returned for axes */
00282     JOYPOS  jpDeadZone; /* area around center to be considered
00283                        as "dead". specified as a percentage
00284                    (0-100). Only X & Y handled by system driver */
00285 } JOYREGUSERVALUES, *LPJOYREGUSERVALUES;
00286 
00287 typedef struct joyreghwsettings_tag {
00288     DWORD   dwFlags;
00289     DWORD   dwNumButtons;       /* number of buttons */
00290 } JOYREGHWSETTINGS, *LPJOYHWSETTINGS;
00291 
00292 /* range of values returned by the hardware (filled in by calibration) */
00293 typedef struct joyreghwvalues_tag {
00294     JOYRANGE    jrvHardware;        /* values returned by hardware */
00295     DWORD   dwPOVValues[JOY_POV_NUMDIRS];/* POV values returned by hardware */
00296     DWORD   dwCalFlags;     /* what has been calibrated */
00297 } JOYREGHWVALUES, *LPJOYREGHWVALUES;
00298 
00299 /* hardware configuration */
00300 typedef struct joyreghwconfig_tag {
00301     JOYREGHWSETTINGS    hws;        /* hardware settings */
00302     DWORD       dwUsageSettings;/* usage settings */
00303     JOYREGHWVALUES  hwv;        /* values returned by hardware */
00304     DWORD       dwType;     /* type of joystick */
00305     DWORD       dwReserved; /* reserved for OEM drivers */
00306 } JOYREGHWCONFIG, *LPJOYREGHWCONFIG;
00307 
00308 /* joystick calibration info structure */
00309 typedef struct joycalibrate_tag {
00310     UINT    wXbase;
00311     UINT    wXdelta;
00312     UINT    wYbase;
00313     UINT    wYdelta;
00314     UINT    wZbase;
00315     UINT    wZdelta;
00316 } JOYCALIBRATE;
00317 typedef JOYCALIBRATE *LPJOYCALIBRATE;
00318 
00319 /* prototype for joystick message function */
00320 typedef UINT (CALLBACK * JOYDEVMSGPROC)(DWORD dwID, UINT uMessage, LPARAM lParam1, LPARAM lParam2);
00321 typedef JOYDEVMSGPROC *LPJOYDEVMSGPROC;
00322 
00323 /* messages sent to joystick driver's DriverProc() function */
00324 #define JDD_GETNUMDEVS          (DRV_RESERVED + 0x0001)
00325 #define JDD_GETDEVCAPS          (DRV_RESERVED + 0x0002)
00326 #define JDD_GETPOS              (DRV_RESERVED + 0x0101)
00327 #define JDD_SETCALIBRATION      (DRV_RESERVED + 0x0102)
00328 #define JDD_CONFIGCHANGED       (DRV_RESERVED + 0x0103)
00329 #define JDD_GETPOSEX            (DRV_RESERVED + 0x0104)
00330 
00331 #define MCI_MAX_DEVICE_TYPE_LENGTH 80
00332 
00333 #define MCI_OPEN_DRIVER                 0x0801
00334 #define MCI_CLOSE_DRIVER                0x0802
00335 
00336 #define MCI_FALSE                       (MCI_STRING_OFFSET + 19)
00337 #define MCI_TRUE                        (MCI_STRING_OFFSET + 20)
00338 
00339 #define MCI_FORMAT_RETURN_BASE          MCI_FORMAT_MILLISECONDS_S
00340 #define MCI_FORMAT_MILLISECONDS_S       (MCI_STRING_OFFSET + 21)
00341 #define MCI_FORMAT_HMS_S                (MCI_STRING_OFFSET + 22)
00342 #define MCI_FORMAT_MSF_S                (MCI_STRING_OFFSET + 23)
00343 #define MCI_FORMAT_FRAMES_S             (MCI_STRING_OFFSET + 24)
00344 #define MCI_FORMAT_SMPTE_24_S           (MCI_STRING_OFFSET + 25)
00345 #define MCI_FORMAT_SMPTE_25_S           (MCI_STRING_OFFSET + 26)
00346 #define MCI_FORMAT_SMPTE_30_S           (MCI_STRING_OFFSET + 27)
00347 #define MCI_FORMAT_SMPTE_30DROP_S       (MCI_STRING_OFFSET + 28)
00348 #define MCI_FORMAT_BYTES_S              (MCI_STRING_OFFSET + 29)
00349 #define MCI_FORMAT_SAMPLES_S            (MCI_STRING_OFFSET + 30)
00350 #define MCI_FORMAT_TMSF_S               (MCI_STRING_OFFSET + 31)
00351 
00352 #define MCI_VD_FORMAT_TRACK_S           (MCI_VD_OFFSET + 5)
00353 
00354 #define WAVE_FORMAT_PCM_S               (MCI_WAVE_OFFSET + 0)
00355 #define WAVE_MAPPER_S                   (MCI_WAVE_OFFSET + 1)
00356 
00357 #define MCI_SEQ_MAPPER_S                (MCI_SEQ_OFFSET + 5)
00358 #define MCI_SEQ_FILE_S                  (MCI_SEQ_OFFSET + 6)
00359 #define MCI_SEQ_MIDI_S                  (MCI_SEQ_OFFSET + 7)
00360 #define MCI_SEQ_SMPTE_S                 (MCI_SEQ_OFFSET + 8)
00361 #define MCI_SEQ_FORMAT_SONGPTR_S        (MCI_SEQ_OFFSET + 9)
00362 #define MCI_SEQ_NONE_S                  (MCI_SEQ_OFFSET + 10)
00363 #define MIDIMAPPER_S                    (MCI_SEQ_OFFSET + 11)
00364 
00365 #define MCI_RESOURCE_RETURNED       0x00010000  /* resource ID */
00366 #define MCI_COLONIZED3_RETURN       0x00020000  /* colonized ID, 3 bytes data */
00367 #define MCI_COLONIZED4_RETURN       0x00040000  /* colonized ID, 4 bytes data */
00368 #define MCI_INTEGER_RETURNED        0x00080000  /* integer conversion needed */
00369 #define MCI_RESOURCE_DRIVER         0x00100000  /* driver owns returned resource */
00370 
00371 #define MCI_NO_COMMAND_TABLE    0xFFFF
00372 
00373 #define MCI_COMMAND_HEAD        0
00374 #define MCI_STRING              1
00375 #define MCI_INTEGER             2
00376 #define MCI_END_COMMAND         3
00377 #define MCI_RETURN              4
00378 #define MCI_FLAG                5
00379 #define MCI_END_COMMAND_LIST    6
00380 #define MCI_RECT                7
00381 #define MCI_CONSTANT            8
00382 #define MCI_END_CONSTANT        9
00383 #define MCI_HWND                10
00384 #define MCI_HPAL                11
00385 #define MCI_HDC                 12
00386 
00387 #ifdef _WIN64
00388 #define MCI_INTEGER64           13
00389 #endif /* _WIN64 */
00390 
00391 #define MAKEMCIRESOURCE(wRet, wRes) MAKELRESULT((wRet), (wRes))
00392 
00393 typedef struct {
00394     DWORD_PTR       dwCallback;
00395     DWORD_PTR       dwInstance;
00396     HMIDIOUT        hMidi;
00397     DWORD           dwFlags;
00398 } PORTALLOC, *LPPORTALLOC;
00399 
00400 typedef struct {
00401     HWAVE           hWave;
00402     LPWAVEFORMATEX      lpFormat;
00403     DWORD_PTR       dwCallback;
00404     DWORD_PTR       dwInstance;
00405     UINT            uMappedDeviceID;
00406     DWORD_PTR       dnDevNode;
00407 } WAVEOPENDESC, *LPWAVEOPENDESC;
00408 
00409 typedef struct {
00410         DWORD           dwStreamID;
00411         WORD            wDeviceID;
00412 } MIDIOPENSTRMID;
00413 
00414 typedef struct {
00415     HMIDI           hMidi;
00416     DWORD_PTR       dwCallback;
00417     DWORD_PTR       dwInstance;
00418     DWORD_PTR       dnDevNode;
00419         DWORD               cIds;
00420         MIDIOPENSTRMID      rgIds;
00421 } MIDIOPENDESC, *LPMIDIOPENDESC;
00422 
00423 typedef struct tMIXEROPENDESC
00424 {
00425     HMIXEROBJ       hmx;
00426     LPVOID          pReserved0;
00427     DWORD_PTR           dwCallback;
00428     DWORD_PTR           dwInstance;
00429     DWORD_PTR           dnDevNode;
00430 } MIXEROPENDESC, *LPMIXEROPENDESC;
00431 
00432 typedef struct {
00433     UINT            wDeviceID;      /* device ID */
00434     LPSTR           lpstrParams;        /* parameter string for entry in SYSTEM.INI */
00435     UINT            wCustomCommandTable;    /* custom command table (0xFFFF if none) * filled in by the driver */
00436     UINT            wType;          /* driver type (filled in by the driver) */
00437 } MCI_OPEN_DRIVER_PARMSA, *LPMCI_OPEN_DRIVER_PARMSA;
00438 
00439 typedef struct {
00440     UINT            wDeviceID;      /* device ID */
00441     LPWSTR          lpstrParams;        /* parameter string for entry in SYSTEM.INI */
00442     UINT            wCustomCommandTable;    /* custom command table (0xFFFF if none) * filled in by the driver */
00443     UINT            wType;          /* driver type (filled in by the driver) */
00444 } MCI_OPEN_DRIVER_PARMSW, *LPMCI_OPEN_DRIVER_PARMSW;
00445 
00446 DWORD_PTR       WINAPI  mciGetDriverData(UINT uDeviceID);
00447 BOOL            WINAPI  mciSetDriverData(UINT uDeviceID, DWORD_PTR dwData);
00448 UINT            WINAPI  mciDriverYield(UINT uDeviceID);
00449 BOOL            WINAPI  mciDriverNotify(HWND hwndCallback, UINT uDeviceID,
00450                         UINT uStatus);
00451 UINT            WINAPI  mciLoadCommandResource(HINSTANCE hInstance,
00452                            LPCWSTR lpResName, UINT uType);
00453 BOOL            WINAPI  mciFreeCommandResource(UINT uTable);
00454 
00455 #define DCB_NULL        0x0000
00456 #define DCB_WINDOW      0x0001          /* dwCallback is a HWND */
00457 #define DCB_TASK        0x0002          /* dwCallback is a HTASK */
00458 #define DCB_FUNCTION        0x0003          /* dwCallback is a FARPROC */
00459 #define DCB_EVENT       0x0005          /* dwCallback is an EVENT Handler */
00460 #define DCB_TYPEMASK        0x0007
00461 #define DCB_NOSWITCH        0x0008          /* don't switch stacks for callback */
00462 
00463 BOOL            APIENTRY    DriverCallback(DWORD_PTR dwCallBack, DWORD uFlags, HDRVR hDev,
00464                            DWORD wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
00465 
00466 typedef void (*LPTASKCALLBACK)(DWORD dwInst);
00467 
00468 #define TASKERR_NOTASKSUPPORT 1
00469 #define TASKERR_OUTOFMEMORY   2
00470 UINT WINAPI mmTaskCreate(LPTASKCALLBACK, HANDLE*, DWORD_PTR);
00471 void     WINAPI mmTaskBlock(DWORD);
00472 BOOL     WINAPI mmTaskSignal(DWORD);
00473 void     WINAPI mmTaskYield(void);
00474 DWORD   WINAPI mmGetCurrentTask(void);
00475 
00476 
00477 #define  WAVE_DIRECTSOUND               0x0080
00478 
00479 
00480 #include <poppack.h>
00481 
00482 #endif /* __MMDDK_H */

Generated on Sun May 27 2012 04:24:43 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.