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

Generated on Sat May 26 2012 04:23:16 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.