⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmddk.h

📁 美国Delta Tau公司PMAC多轴运动控制卡的VC++示例程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************/
/*                                                                          */
/*      MMDDK.H - Include file for Multimedia Device Development Kit        */
/*                                                                          */
/*      Note: You must include the WINDOWS.H and MMSYSTEM.H header files    */
/*            before including this file.                                   */
/*                                                                          */
/*      Copyright (c) 1990-1991, Microsoft Corp.  All rights reserved.      */
/*                                                                          */
/****************************************************************************/

#ifndef _INC_MMDDK
  #define _INC_MMDDK

  #include "pshpack1.h" // Assume byte packing throughout

  #ifdef __cplusplus
extern "C" {
  #endif /* __cplusplus */

  /*    If defined, the following flags inhibit inclusion
   *    of the indicated items:
   *
   *        MMNOMIDIDEV         - MIDI support
   *        MMNOWAVEDEV         - Waveform support
   *        MMNOAUXDEV          - Auxiliary output support
   *        MMNOMIXERDEV        - Mixer support
   *        MMNOTIMERDEV        - Timer support
   *        MMNOJOYDEV          - Joystick support
   *        MMNOMCIDEV          - MCI support
   *        MMNOTASKDEV         - Task support
   */
  #ifdef MMNOTIMER
    #define MMNOTIMERDEV
  #endif
  #ifdef MMNOWAVE
    #define MMNOWAVEDEV
  #endif
  #ifdef MMNOMIDI
    #define MMNOMIDIDEV
  #endif
  #ifdef MMNOAUX
    #define MMNOAUXDEV
  #endif
  #ifdef MMNOJOY
    #define MMNOJOYDEV
  #endif
  #ifdef MMNOMMIO
    #define MMNOMMIODEV
  #endif
  #ifdef MMNOMCI
    #define MMNOMCIDEV
  #endif


  /***************************************************************************

                         Helper functions for drivers

  ***************************************************************************/

  #ifndef NODRIVERS
    #define DRV_LOAD               0x0001
    #define DRV_ENABLE             0x0002
    #define DRV_OPEN               0x0003
    #define DRV_CLOSE              0x0004
    #define DRV_DISABLE            0x0005
    #define DRV_FREE               0x0006
    #define DRV_CONFIGURE          0x0007
    #define DRV_QUERYCONFIGURE     0x0008
    #define DRV_INSTALL            0x0009
    #define DRV_REMOVE             0x000A

    #define DRV_RESERVED           0x0800
    #define DRV_USER               0x4000

    #define DRIVERS_SECTION  TEXT("DRIVERS32") // Section name for installed drivers
    #define MCI_SECTION      TEXT("MCI32")     // Section name for installed MCI drivers

  #endif /* !NODRIVERS */

  #define DCB_NOSWITCH   0x0008 // don't switch stacks for callback
  #define DCB_TYPEMASK   0x0007 // callback type mask
  #define DCB_NULL       0x0000 // unknown callback type

  // flags for wFlags parameter of DriverCallback()
  #define DCB_WINDOW     0x0001 // dwCallback is a HWND
  #define DCB_TASK       0x0002 // dwCallback is a HTASK
  #define DCB_FUNCTION   0x0003 // dwCallback is a FARPROC

  BOOL APIENTRY DriverCallback(DWORD dwCallback, DWORD dwFlags,
      HDRVR hDevice, DWORD dwMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);

  // generic prototype for audio device driver entry-point functions
  // midMessage(), modMessage(), widMessage(), wodMessage(), auxMessage()
  //typedef DWORD (SOUNDDEVMSGPROC)(WORD, WORD, DWORD, DWORD, DWORD);
  //typedef SOUNDDEVMSGPROC FAR *LPSOUNDDEVMSGPROC;

  #define DRVM_INIT               100

  // message base for driver specific messages.
  //
  #define DRVM_MAPPER             0x2000
  #define DRVM_USER               0x4000
  #define DRVM_MAPPER_STATUS      (DRVM_MAPPER+0)
  #define DRVM_MAPPER_RECONFIGURE (DRVM_MAPPER+1)

  // device ID for 386 AUTODMA VxD
  #define VADMAD_Device_ID    0X0444

  #ifndef MMNOWAVEDEV
  /****************************************************************************

                         Waveform device driver support

  ****************************************************************************/

  // maximum number of wave device drivers loaded
    #ifndef NOWIN31
      #define MAXWAVEDRIVERS 10
    #else
      #define MAXWAVEDRIVERS 4
    #endif


  // waveform input and output device open information structure
  typedef struct waveopendesc_tag {
      HWAVE          hWave;      // handle
      LPWAVEFORMAT   lpFormat;   // format of wave data
      DWORD          dwCallback; // callback
      DWORD          dwInstance; // app's private instance information
  } WAVEOPENDESC;
  typedef WAVEOPENDESC FAR *LPWAVEOPENDESC;

  // messages sent to wodMessage() entry-point function
    #define WODM_GETNUMDEVS       3
    #define WODM_GETDEVCAPS       4
    #define WODM_OPEN             5
    #define WODM_CLOSE            6
    #define WODM_PREPARE          7
    #define WODM_UNPREPARE        8
    #define WODM_WRITE            9
    #define WODM_PAUSE            10
    #define WODM_RESTART          11
    #define WODM_RESET            12
    #define WODM_GETPOS           13
    #define WODM_GETPITCH         14
    #define WODM_SETPITCH         15
    #define WODM_GETVOLUME        16
    #define WODM_SETVOLUME        17
    #define WODM_GETPLAYBACKRATE  18
    #define WODM_SETPLAYBACKRATE  19
    #define WODM_BREAKLOOP        20
  // #if (WINVER >= 0x030B)
    #define WODM_MAPPER_STATUS              (DRVM_MAPPER_STATUS + 0)
    #define WAVEOUT_MAPPER_STATUS_DEVICE    0
    #define WAVEOUT_MAPPER_STATUS_MAPPED    1
    #define WAVEOUT_MAPPER_STATUS_FORMAT    2
  // #endif /* WINVER >= 0x030B */
    #define WODM_BUSY             21

  // messages sent to widMessage() entry-point function
    #define WIDM_GETNUMDEVS  50
    #define WIDM_GETDEVCAPS  51
    #define WIDM_OPEN        52
    #define WIDM_CLOSE       53
    #define WIDM_PREPARE     54
    #define WIDM_UNPREPARE   55
    #define WIDM_ADDBUFFER   56
    #define WIDM_START       57
    #define WIDM_STOP        58
    #define WIDM_RESET       59
    #define WIDM_GETPOS      60
  // #if (WINVER >= 0x030B)
    #define WIDM_MAPPER_STATUS              (DRVM_MAPPER_STATUS + 0)
    #define WAVEIN_MAPPER_STATUS_DEVICE     0
    #define WAVEIN_MAPPER_STATUS_MAPPED     1
    #define WAVEIN_MAPPER_STATUS_FORMAT     2
  // #endif /* WINVER >= 0x30B */

  #endif // ifndef MMNOWAVEDEV


  #ifndef MMNOMIDIDEV
  /****************************************************************************

                            MIDI device driver support

  ****************************************************************************/

  // maximum number of MIDI device drivers loaded
    #ifndef NOWIN31
      #define MAXMIDIDRIVERS 10
    #else
      #define MAXMIDIDRIVERS 4
    #endif

    #ifndef MMNOMIDI // This protects the definition of HMIDI in WINMM.H
                     // Win 3.1 works the same way
                     // MIDI input and output device open information structure
  typedef struct midiopendesc_tag {
      HMIDI          hMidi;      // handle
      DWORD          dwCallback; // callback
      DWORD          dwInstance; // app's private instance information
  } MIDIOPENDESC;
  typedef MIDIOPENDESC FAR *LPMIDIOPENDESC;
    #endif // MMNOMIDI

  // messages sent to modMessage() entry-point function
    #define MODM_GETNUMDEVS     1
    #define MODM_GETDEVCAPS     2
    #define MODM_OPEN           3
    #define MODM_CLOSE          4
    #define MODM_PREPARE        5
    #define MODM_UNPREPARE      6
    #define MODM_DATA           7
    #define MODM_LONGDATA       8
    #define MODM_RESET          9
    #define MODM_GETVOLUME      10
    #define MODM_SETVOLUME      11
    #define MODM_CACHEPATCHES       12
    #define MODM_CACHEDRUMPATCHES   13

  // messages sent to midMessage() entry-point function
    #define MIDM_GETNUMDEVS  53
    #define MIDM_GETDEVCAPS  54
    #define MIDM_OPEN        55
    #define MIDM_CLOSE       56
    #define MIDM_PREPARE     57
    #define MIDM_UNPREPARE   58
    #define MIDM_ADDBUFFER   59
    #define MIDM_START       60
    #define MIDM_STOP        61
    #define MIDM_RESET       62

  #endif // ifndef MMNOMIDIDEV


  #ifndef MMNOAUXDEV
  /****************************************************************************

                      Auxiliary audio device driver support

  ****************************************************************************/

  // maximum number of auxiliary device drivers loaded
    #ifndef NOWIN31
      #define MAXAUXDRIVERS 10
    #else
      #define MAXAUXDRIVERS 4
    #endif

  // messages sent to auxMessage() entry-point function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -