Annotation of ntddk/src/mmedia/inc/mmddk.h, revision 1.1

1.1     ! root        1: /****************************************************************************/
        !             2: /*                                                                          */
        !             3: /*      MMDDK.H - Include file for Multimedia Device Development Kit        */
        !             4: /*                                                                          */
        !             5: /*      Note: You must include the WINDOWS.H and MMSYSTEM.H header files    */
        !             6: /*            before including this file.                                   */
        !             7: /*                                                                          */
        !             8: /*      Copyright (c) 1990-1991, Microsoft Corp.  All rights reserved.      */
        !             9: /*                                                                          */
        !            10: /****************************************************************************/
        !            11: 
        !            12: #ifndef _INC_MMDDK
        !            13: #define _INC_MMDDK
        !            14: 
        !            15: #ifdef __cplusplus
        !            16: extern "C" {
        !            17: #endif /* __cplusplus */
        !            18: 
        !            19: /*    If defined, the following flags inhibit inclusion
        !            20:  *    of the indicated items:
        !            21:  *
        !            22:  *        MMNOMIDIDEV         - MIDI support
        !            23:  *        MMNOWAVEDEV         - Waveform support
        !            24:  *        MMNOAUXDEV          - Auxiliary output support
        !            25:  *        MMNOTIMERDEV        - Timer support
        !            26:  *        MMNOJOYDEV          - Joystick support
        !            27:  *        MMNOMCIDEV          - MCI support
        !            28:  *        MMNOTASKDEV         - Task support
        !            29:  */
        !            30: #ifdef MMNOTIMER
        !            31:   #define MMNOTIMERDEV
        !            32: #endif
        !            33: #ifdef MMNOWAVE
        !            34:   #define MMNOWAVEDEV
        !            35: #endif
        !            36: #ifdef MMNOMIDI
        !            37:   #define MMNOMIDIDEV
        !            38: #endif
        !            39: #ifdef MMNOAUX
        !            40:   #define MMNOAUXDEV
        !            41: #endif
        !            42: #ifdef MMNOJOY
        !            43:   #define MMNOJOYDEV
        !            44: #endif
        !            45: #ifdef MMNOMMIO
        !            46:   #define MMNOMMIODEV
        !            47: #endif
        !            48: #ifdef MMNOMCI
        !            49:   #define MMNOMCIDEV
        !            50: #endif
        !            51: 
        !            52: #ifdef  NOMIDIDEV       /* ;Internal */
        !            53: #define MMNOMIDIDEV     /* ;Internal */
        !            54: #endif              /* ;Internal */
        !            55: #ifdef  NOWAVEDEV       /* ;Internal */
        !            56: #define MMNOWAVEDEV     /* ;Internal */
        !            57: #endif              /* ;Internal */
        !            58: #ifdef  NOAUXDEV        /* ;Internal */
        !            59: #define MMNOAUXDEV      /* ;Internal */
        !            60: #endif              /* ;Internal */
        !            61: #ifdef  NOTIMERDEV      /* ;Internal */
        !            62: #define MMNOTIMERDEV        /* ;Internal */
        !            63: #endif              /* ;Internal */
        !            64: #ifdef  NOJOYDEV        /* ;Internal */
        !            65: #define MMNOJOYDEV      /* ;Internal */
        !            66: #endif              /* ;Internal */
        !            67: #ifdef  NOMCIDEV        /* ;Internal */
        !            68: #define MMNOMCIDEV      /* ;Internal */
        !            69: #endif              /* ;Internal */
        !            70: #ifdef  NOTASKDEV       /* ;Internal */
        !            71: #define MMNOTASKDEV     /* ;Internal */
        !            72: #endif              /* ;Internal */
        !            73: 
        !            74: /***************************************************************************
        !            75: 
        !            76:                        Helper functions for drivers
        !            77: 
        !            78: ***************************************************************************/
        !            79: 
        !            80: #ifndef NODRIVERS
        !            81: #define DRV_LOAD               0x0001
        !            82: #define DRV_ENABLE             0x0002
        !            83: #define DRV_OPEN               0x0003
        !            84: #define DRV_CLOSE              0x0004
        !            85: #define DRV_DISABLE            0x0005
        !            86: #define DRV_FREE               0x0006
        !            87: #define DRV_CONFIGURE          0x0007
        !            88: #define DRV_QUERYCONFIGURE     0x0008
        !            89: #define DRV_INSTALL            0x0009
        !            90: #define DRV_REMOVE             0x000A
        !            91: 
        !            92: #define DRV_RESERVED           0x0800
        !            93: #define DRV_USER               0x4000
        !            94: 
        !            95: #define DRIVERS_SECTION  TEXT("DRIVERS32")     // Section name for installed drivers
        !            96: #define MCI_SECTION      TEXT("MCI32")         // Section name for installed MCI drivers
        !            97: 
        !            98: LONG   FAR PASCAL DefDriverProc(DWORD dwDriverIdentifier, HANDLE driverID, UINT message, LONG lParam1, LONG lParam2);
        !            99: #endif /* !NODRIVERS */
        !           100: 
        !           101: #define DCB_NOSWITCH   0x0008           // don't switch stacks for callback
        !           102: #define DCB_TYPEMASK   0x0007           // callback type mask
        !           103: #define DCB_NULL       0x0000           // unknown callback type
        !           104: 
        !           105: // flags for wFlags parameter of DriverCallback()
        !           106: #define DCB_WINDOW     0x0001           // dwCallback is a HWND
        !           107: #define DCB_TASK       0x0002           // dwCallback is a HTASK
        !           108: #define DCB_FUNCTION   0x0003           // dwCallback is a FARPROC
        !           109: 
        !           110: BOOL APIENTRY DriverCallback(DWORD dwCallback, DWORD dwFlags,
        !           111:     HDRVR hDevice, DWORD dwMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
        !           112: 
        !           113: // generic prototype for audio device driver entry-point functions
        !           114: // midMessage(), modMessage(), widMessage(), wodMessage(), auxMessage()
        !           115: //typedef DWORD (SOUNDDEVMSGPROC)(WORD, WORD, DWORD, DWORD, DWORD);
        !           116: //typedef SOUNDDEVMSGPROC FAR *LPSOUNDDEVMSGPROC;
        !           117: 
        !           118: // device ID for 386 AUTODMA VxD
        !           119: #define VADMAD_Device_ID    0X0444
        !           120: 
        !           121: #ifndef MMNOWAVEDEV
        !           122: /****************************************************************************
        !           123: 
        !           124:                        Waveform device driver support
        !           125: 
        !           126: ****************************************************************************/
        !           127: 
        !           128: // maximum number of wave device drivers loaded
        !           129: #ifndef NOWIN31
        !           130: #define MAXWAVEDRIVERS 10
        !           131: #else
        !           132: #define MAXWAVEDRIVERS 4
        !           133: #endif
        !           134: 
        !           135: 
        !           136: // waveform input and output device open information structure
        !           137: typedef struct waveopendesc_tag {
        !           138:     HWAVE          hWave;             // handle
        !           139:     LPWAVEFORMAT   lpFormat;          // format of wave data
        !           140:     DWORD          dwCallback;        // callback
        !           141:     DWORD          dwInstance;        // app's private instance information
        !           142: } WAVEOPENDESC;
        !           143: typedef WAVEOPENDESC FAR *LPWAVEOPENDESC;
        !           144: 
        !           145: // messages sent to wodMessage() entry-point function
        !           146: #define WODM_GETNUMDEVS       3
        !           147: #define WODM_GETDEVCAPS       4
        !           148: #define WODM_OPEN             5
        !           149: #define WODM_CLOSE            6
        !           150: #define WODM_PREPARE          7
        !           151: #define WODM_UNPREPARE        8
        !           152: #define WODM_WRITE            9
        !           153: #define WODM_PAUSE            10
        !           154: #define WODM_RESTART          11
        !           155: #define WODM_RESET            12
        !           156: #define WODM_GETPOS           13
        !           157: #define WODM_GETPITCH         14
        !           158: #define WODM_SETPITCH         15
        !           159: #define WODM_GETVOLUME        16
        !           160: #define WODM_SETVOLUME        17
        !           161: #define WODM_GETPLAYBACKRATE  18
        !           162: #define WODM_SETPLAYBACKRATE  19
        !           163: #define WODM_BREAKLOOP        20
        !           164: #define WODM_BUSY             21
        !           165: 
        !           166: // messages sent to widMessage() entry-point function
        !           167: #define WIDM_GETNUMDEVS  50
        !           168: #define WIDM_GETDEVCAPS  51
        !           169: #define WIDM_OPEN        52
        !           170: #define WIDM_CLOSE       53
        !           171: #define WIDM_PREPARE     54
        !           172: #define WIDM_UNPREPARE   55
        !           173: #define WIDM_ADDBUFFER   56
        !           174: #define WIDM_START       57
        !           175: #define WIDM_STOP        58
        !           176: #define WIDM_RESET       59
        !           177: #define WIDM_GETPOS      60
        !           178: 
        !           179: #endif // ifndef MMNOWAVEDEV
        !           180: 
        !           181: 
        !           182: #ifndef MMNOMIDIDEV
        !           183: /****************************************************************************
        !           184: 
        !           185:                           MIDI device driver support
        !           186: 
        !           187: ****************************************************************************/
        !           188: 
        !           189: // maximum number of MIDI device drivers loaded
        !           190: #ifndef NOWIN31
        !           191: #define MAXMIDIDRIVERS 10
        !           192: #else
        !           193: #define MAXMIDIDRIVERS 4
        !           194: #endif
        !           195: 
        !           196: #ifndef MMNOMIDI   // This protects the definition of HMIDI in WINMM.H
        !           197:                    // Win 3.1 works the same way
        !           198: // MIDI input and output device open information structure
        !           199: typedef struct midiopendesc_tag {
        !           200:     HMIDI          hMidi;             // handle
        !           201:     DWORD          dwCallback;        // callback
        !           202:     DWORD          dwInstance;        // app's private instance information
        !           203: } MIDIOPENDESC;
        !           204: typedef MIDIOPENDESC FAR *LPMIDIOPENDESC;
        !           205: #endif // MMNOMIDI
        !           206: 
        !           207: // messages sent to modMessage() entry-point function
        !           208: #define MODM_GETNUMDEVS     1
        !           209: #define MODM_GETDEVCAPS     2
        !           210: #define MODM_OPEN           3
        !           211: #define MODM_CLOSE          4
        !           212: #define MODM_PREPARE        5
        !           213: #define MODM_UNPREPARE      6
        !           214: #define MODM_DATA           7
        !           215: #define MODM_LONGDATA       8
        !           216: #define MODM_RESET          9
        !           217: #define MODM_GETVOLUME      10
        !           218: #define MODM_SETVOLUME      11
        !           219: #define MODM_CACHEPATCHES       12
        !           220: #define MODM_CACHEDRUMPATCHES   13
        !           221: 
        !           222: // messages sent to midMessage() entry-point function
        !           223: #define MIDM_GETNUMDEVS  53
        !           224: #define MIDM_GETDEVCAPS  54
        !           225: #define MIDM_OPEN        55
        !           226: #define MIDM_CLOSE       56
        !           227: #define MIDM_PREPARE     57
        !           228: #define MIDM_UNPREPARE   58
        !           229: #define MIDM_ADDBUFFER   59
        !           230: #define MIDM_START       60
        !           231: #define MIDM_STOP        61
        !           232: #define MIDM_RESET       62
        !           233: 
        !           234: #endif // ifndef MMNOMIDIDEV
        !           235: 
        !           236: 
        !           237: #ifndef MMNOAUXDEV
        !           238: /****************************************************************************
        !           239: 
        !           240:                     Auxiliary audio device driver support
        !           241: 
        !           242: ****************************************************************************/
        !           243: 
        !           244: // maximum number of auxiliary device drivers loaded
        !           245: #ifndef NOWIN31
        !           246: #define MAXAUXDRIVERS 10
        !           247: #else
        !           248: #define MAXAUXDRIVERS 4
        !           249: #endif
        !           250: 
        !           251: // messages sent to auxMessage() entry-point function
        !           252: #define AUXDM_GETNUMDEVS    3
        !           253: #define AUXDM_GETDEVCAPS    4
        !           254: #define AUXDM_GETVOLUME     5
        !           255: #define AUXDM_SETVOLUME     6
        !           256: 
        !           257: #endif // ifndef MMNOAUXDEV
        !           258: 
        !           259: 
        !           260: #if !defined(MMNOTIMERDEV)
        !           261: /****************************************************************************
        !           262: 
        !           263:                         Timer device driver support
        !           264: 
        !           265: ****************************************************************************/
        !           266: 
        !           267: typedef struct timerevent_tag {
        !           268:     WORD                wDelay;         // delay required
        !           269:     WORD                wResolution;    // resolution required
        !           270:     LPTIMECALLBACK      lpFunction;     // ptr to callback function
        !           271:     DWORD               dwUser;         // user DWORD
        !           272:     WORD                wFlags;         // defines how to program event
        !           273: } TIMEREVENT;
        !           274: typedef TIMEREVENT FAR *LPTIMEREVENT;
        !           275: 
        !           276: // messages sent to tddMessage() function
        !           277: #define TDD_KILLTIMEREVENT  DRV_RESERVED+0  // indices into a table of
        !           278: #define TDD_SETTIMEREVENT   DRV_RESERVED+4  // functions; thus offset by
        !           279: #define TDD_GETSYSTEMTIME   DRV_RESERVED+8  // four each time...
        !           280: #define TDD_GETDEVCAPS      DRV_RESERVED+12 // room for future expansion
        !           281: #define TDD_BEGINMINPERIOD  DRV_RESERVED+16 // room for future expansion
        !           282: #define TDD_ENDMINPERIOD    DRV_RESERVED+20 // room for future expansion
        !           283: 
        !           284: #endif // ifndef MMNOTIMERDEV
        !           285: 
        !           286: 
        !           287: #ifndef MMNOJOYDEV
        !           288: /****************************************************************************
        !           289: 
        !           290:                        Joystick device driver support
        !           291: 
        !           292: ****************************************************************************/
        !           293: 
        !           294: // joystick calibration info structure
        !           295: typedef struct joycalibrate_tag {
        !           296:     WORD    wXbase;
        !           297:     WORD    wXdelta;
        !           298:     WORD    wYbase;
        !           299:     WORD    wYdelta;
        !           300:     WORD    wZbase;
        !           301:     WORD    wZdelta;
        !           302: } JOYCALIBRATE;
        !           303: typedef JOYCALIBRATE FAR *LPJOYCALIBRATE;
        !           304: 
        !           305: // prototype for joystick message function
        !           306: typedef DWORD (JOYDEVMSGPROC)(DWORD, UINT, LONG, LONG);
        !           307: typedef JOYDEVMSGPROC FAR *LPJOYDEVMSGPROC;
        !           308: 
        !           309: // messages sent to joystick driver's DriverProc() function
        !           310: #define JDD_GETNUMDEVS      DRV_RESERVED+0x0001
        !           311: #define JDD_GETDEVCAPS      DRV_RESERVED+0x0002
        !           312: #define JDD_GETPOS          DRV_RESERVED+0x0101
        !           313: #define JDD_SETCALIBRATION  DRV_RESERVED+0x0102
        !           314: 
        !           315: #endif // ifndef MMNOJOYDEV
        !           316: 
        !           317: #ifndef MAKELRESULT
        !           318: #define MAKELRESULT(low, high)   ((LRESULT)MAKELONG(low, high))
        !           319: #endif//MAKELRESULT
        !           320: 
        !           321: 
        !           322: #ifndef MMNOMCIDEV
        !           323: /****************************************************************************
        !           324: 
        !           325:                         MCI device driver support
        !           326: 
        !           327: ****************************************************************************/
        !           328: 
        !           329: 
        !           330: // internal MCI messages
        !           331: #define MCI_OPEN_DRIVER             0x0801
        !           332: #define MCI_CLOSE_DRIVER            0x0802
        !           333: 
        !           334: #define MAKEMCIRESOURCE(wRet, wRes) MAKELRESULT((wRet), (wRes))
        !           335: 
        !           336: // string return values only used with MAKEMCIRESOURCE
        !           337: #define MCI_FALSE                       (MCI_STRING_OFFSET + 19)
        !           338: #define MCI_TRUE                        (MCI_STRING_OFFSET + 20)
        !           339: 
        !           340: // resource string return values
        !           341: #define MCI_FORMAT_RETURN_BASE          MCI_FORMAT_MILLISECONDS_S
        !           342: #define MCI_FORMAT_MILLISECONDS_S       (MCI_STRING_OFFSET + 21)
        !           343: #define MCI_FORMAT_HMS_S                (MCI_STRING_OFFSET + 22)
        !           344: #define MCI_FORMAT_MSF_S                (MCI_STRING_OFFSET + 23)
        !           345: #define MCI_FORMAT_FRAMES_S             (MCI_STRING_OFFSET + 24)
        !           346: #define MCI_FORMAT_SMPTE_24_S           (MCI_STRING_OFFSET + 25)
        !           347: #define MCI_FORMAT_SMPTE_25_S           (MCI_STRING_OFFSET + 26)
        !           348: #define MCI_FORMAT_SMPTE_30_S           (MCI_STRING_OFFSET + 27)
        !           349: #define MCI_FORMAT_SMPTE_30DROP_S       (MCI_STRING_OFFSET + 28)
        !           350: #define MCI_FORMAT_BYTES_S              (MCI_STRING_OFFSET + 29)
        !           351: #define MCI_FORMAT_SAMPLES_S            (MCI_STRING_OFFSET + 30)
        !           352: #define MCI_FORMAT_TMSF_S               (MCI_STRING_OFFSET + 31)
        !           353: 
        !           354: #define MCI_VD_FORMAT_TRACK_S           (MCI_VD_OFFSET + 5)
        !           355: 
        !           356: #define WAVE_FORMAT_PCM_S               (MCI_WAVE_OFFSET + 0)
        !           357: #define WAVE_MAPPER_S                   (MCI_WAVE_OFFSET + 1)
        !           358: 
        !           359: #define MCI_SEQ_MAPPER_S                (MCI_SEQ_OFFSET + 5)
        !           360: #define MCI_SEQ_FILE_S                  (MCI_SEQ_OFFSET + 6)
        !           361: #define MCI_SEQ_MIDI_S                  (MCI_SEQ_OFFSET + 7)
        !           362: #define MCI_SEQ_SMPTE_S                 (MCI_SEQ_OFFSET + 8)
        !           363: #define MCI_SEQ_FORMAT_SONGPTR_S        (MCI_SEQ_OFFSET + 9)
        !           364: #define MCI_SEQ_NONE_S                  (MCI_SEQ_OFFSET + 10)
        !           365: #define MIDIMAPPER_S                    (MCI_SEQ_OFFSET + 11)
        !           366: 
        !           367: #define MCI_TABLE_NOT_PRESENT   ((UINT)-1)
        !           368: // parameters for internal version of MCI_OPEN message sent from
        !           369: // mciOpenDevice() to the driver
        !           370: typedef struct {
        !           371:     MCIDEVICEID wDeviceID;             // device ID
        !           372:     LPCWSTR  lpstrParams;           // parameter string for entry in SYSTEM.INI
        !           373:     UINT    wCustomCommandTable;   // custom command table ((-1) if none)
        !           374:                                    // filled in by the driver
        !           375:     UINT    wType;                 // driver type
        !           376:                                    // filled in by the driver
        !           377: } MCI_OPEN_DRIVER_PARMS;
        !           378: typedef MCI_OPEN_DRIVER_PARMS FAR * LPMCI_OPEN_DRIVER_PARMS;
        !           379: 
        !           380: // maximum length of an MCI device type
        !           381: #define MCI_MAX_DEVICE_TYPE_LENGTH 80
        !           382: 
        !           383: // flags for mciSendCommandInternal() which direct mciSendString() how to
        !           384: // interpret the return value
        !           385: #define MCI_RESOURCE_RETURNED       0x00010000  // resource ID
        !           386: #define MCI_COLONIZED3_RETURN       0x00020000  // colonized ID, 3 bytes data
        !           387: #define MCI_COLONIZED4_RETURN       0x00040000  // colonized ID, 4 bytes data
        !           388: #define MCI_INTEGER_RETURNED        0x00080000  // integer conversion needed
        !           389: #define MCI_RESOURCE_DRIVER         0x00100000  // driver owns returned resource
        !           390: 
        !           391: // invalid command table ID
        !           392: #define MCI_NO_COMMAND_TABLE    ((UINT)(-1))
        !           393: 
        !           394: // command table information type tags
        !           395: #define MCI_COMMAND_HEAD        0
        !           396: #define MCI_STRING              1
        !           397: #define MCI_INTEGER             2
        !           398: #define MCI_END_COMMAND         3
        !           399: #define MCI_RETURN              4
        !           400: #define MCI_FLAG                5
        !           401: #define MCI_END_COMMAND_LIST    6
        !           402: #define MCI_RECT                7
        !           403: #define MCI_CONSTANT            8
        !           404: #define MCI_END_CONSTANT        9
        !           405: #define MCI_HWND               10
        !           406: #define MCI_HPAL               11
        !           407: #define MCI_HDC                12
        !           408: 
        !           409: // function prototypes for MCI driver functions
        !           410: DWORD APIENTRY mciGetDriverData(MCIDEVICEID wDeviceID);
        !           411: BOOL  APIENTRY mciSetDriverData(MCIDEVICEID wDeviceID, DWORD dwData);
        !           412: UINT  APIENTRY mciDriverYield (MCIDEVICEID wDeviceID);
        !           413: BOOL  APIENTRY mciDriverNotify (HANDLE hwndCallback, MCIDEVICEID wDeviceID,
        !           414:     UINT uStatus);
        !           415: UINT  APIENTRY mciLoadCommandResource(HANDLE hInstance,
        !           416:     LPCWSTR lpResName, UINT wType);
        !           417: BOOL  APIENTRY mciFreeCommandResource(UINT wTable);
        !           418: 
        !           419: #endif // ifndef MMNOMCIDEV
        !           420: 
        !           421: 
        !           422: #ifndef MMNOTASKDEV
        !           423: /*****************************************************************************
        !           424: 
        !           425:                                Task support
        !           426: 
        !           427: *****************************************************************************/
        !           428: 
        !           429: // error return values
        !           430: #define TASKERR_NOTASKSUPPORT 1
        !           431: #define TASKERR_OUTOFMEMORY   2
        !           432: 
        !           433: // task support function prototypes
        !           434: #ifdef  BUILDDLL                        /* ;Internal */
        !           435: typedef VOID (FAR PASCAL TASKCALLBACK) (DWORD dwInst);      /* ;Internal */
        !           436: #else                               /* ;Internal */
        !           437: typedef VOID (TASKCALLBACK) (DWORD dwInst);
        !           438: #endif  // ifdef BUILDDLL                   /* ;Internal */
        !           439: 
        !           440: typedef TASKCALLBACK FAR *LPTASKCALLBACK;
        !           441: 
        !           442: UINT    APIENTRY mmTaskCreate(LPTASKCALLBACK lpfn, HANDLE FAR * lph, DWORD dwInst);
        !           443: VOID    APIENTRY mmTaskBlock(DWORD h);
        !           444: BOOL    APIENTRY mmTaskSignal(DWORD h);
        !           445: VOID    APIENTRY mmTaskYield(VOID);
        !           446: DWORD  APIENTRY mmGetCurrentTask(VOID);
        !           447: 
        !           448: #endif // endif MMNOTASKDEV
        !           449: 
        !           450: #define MMDDKINC
        !           451: 
        !           452: #ifdef __cplusplus
        !           453: }
        !           454: #endif  /* __cplusplus */
        !           455: 
        !           456: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.