!
! ********************************************************************
! *                                                                  *
! *  Copyright 2001 Compaq Computer Corporation                      *
! *                                                                  *
! *  COMPAQ Registered in U.S. Patent and Trademark Office.          *
! *                                                                  *
! *  Confidential computer software. Valid license from Compaq or    *
! *  authorized sublicensor required for possession, use or copying. *
! *  Consistent with FAR 12.211 and 12.212, Commercial Computer      *
! *  Software, Computer Software Documentation, and Technical Data   *
! *  for Commercial Items are licensed to the U.S. Government under  *
! *  vendor's standard commercial license.                           *
! *                                                                  *
! ********************************************************************
!
!DEC$ IF .NOT. DEFINED (WINMM_ )
!DEC$ DEFINE xWINMM_  
!
!
!
!         *****WINMM.LIB Interfaces*****
! 
!     This module defines routine interfaces to the Windows APIs
!     for both the 32-bit (_M_IX86) and 64-bit (_M_IA64) versions of the
!     NT4 and WIN2000 operating systems.  
!
!     The base for this version is: 
!
!           Microsoft Platform Software Development Kit (SDK)
!                Win64 Pre-alpha February 2000
!
!     As with the C header files distributed with the SDK, there
!     is only one common set of files for both 64-bit and 32-bit
!     operating systems.
!   
!     Within the Fortran versions of the header files, the
!     following symbols are used to control the compilation.
! 
!     _M_IA64 conditionally compiles items for 64 bit systems.
!     _M_IX86 conditionally compiles items for 32 bit systesm.
!
!     Known problems: 
!
!07-12-00
!
module winmm
use dfwinty
!DEC$OBJCOMMENT LIB:"WINMM.LIB"
!
INTERFACE 
FUNCTION CloseDriver( &
        hDriver, &
        lParam1, &
        lParam2)
USE DFWINTY
  integer(LRESULT) :: CloseDriver ! LRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'CloseDriver' :: CloseDriver
  integer(HANDLE) hDriver ! HDRVR hDriver
  integer(LONG_PTR) lParam1 ! LPARAM lParam1
  integer(LONG_PTR) lParam2 ! LPARAM lParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION OpenDriver( &
        szDriverName, &
        szSectionName, &
        lParam2)
USE DFWINTY
  integer(HANDLE) :: OpenDriver ! HDRVR
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'OpenDriver' :: OpenDriver
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: szDriverName
  integer(WCHAR) szDriverName(*) ! LPCWSTR szDriverName
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: szSectionName
  integer(WCHAR) szSectionName(*) ! LPCWSTR szSectionName
  integer(LONG_PTR) lParam2 ! LPARAM lParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION SendDriverMessage( &
        hDriver, &
        message, &
        lParam1, &
        lParam2)
USE DFWINTY
  integer(LRESULT) :: SendDriverMessage ! LRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'SendDriverMessage' :: SendDriverMessage
  integer(HANDLE) hDriver ! HDRVR hDriver
  integer(UINT) message ! UINT message
  integer(LONG_PTR) lParam1 ! LPARAM lParam1
  integer(LONG_PTR) lParam2 ! LPARAM lParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DrvGetModuleHandle( &
        hDriver)
USE DFWINTY
  integer(HANDLE) :: DrvGetModuleHandle ! HMODULE
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DrvGetModuleHandle' :: DrvGetModuleHandle
  integer(HANDLE) hDriver ! HDRVR hDriver
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION GetDriverModuleHandle( &
        hDriver)
USE DFWINTY
  integer(HANDLE) :: GetDriverModuleHandle ! HMODULE
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetDriverModuleHandle' :: GetDriverModuleHandle
  integer(HANDLE) hDriver ! HDRVR hDriver
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION DefDriverProc( &
        dwDriverIdentifier, &
        hdrvr, &
        uMsg, &
        lParam1, &
        lParam2)
USE DFWINTY
  integer(LRESULT) :: DefDriverProc ! LRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'DefDriverProc' :: DefDriverProc
  integer(DWORD_PTR) dwDriverIdentifier ! DWORD_PTR dwDriverIdentifier
  integer(HANDLE) hdrvr ! HDRVR hdrvr
  integer(UINT) uMsg ! UINT uMsg
  integer(LONG_PTR) lParam1 ! LPARAM lParam1
  integer(LONG_PTR) lParam2 ! LPARAM lParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION sndPlaySound( &
        pszSound, &
        fuSound)
USE DFWINTY
  integer(BOOL) :: sndPlaySound ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'sndPlaySoundA' :: sndPlaySound
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszSound
  character*(*) pszSound ! LPCSTR pszSound
  integer(UINT) fuSound ! UINT fuSound
 END FUNCTION
END INTERFACE
INTERFACE PlaySound
FUNCTION PlaySound_G1( &
        pszSound, &
        hmod, &
        fdwSound)
USE DFWINTY
  integer(BOOL) :: PlaySound_G1 ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'PlaySoundA' :: PlaySound_G1
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszSound
  character*(*) pszSound ! LPCSTR pszSound
  integer(HANDLE) hmod ! HMODULE hmod
  integer(DWORD) fdwSound ! DWORD fdwSound
 END FUNCTION
FUNCTION PlaySound_G2( &
        pszSound, &
        hmod, &
        fdwSound)
USE DFWINTY
  integer(BOOL) :: PlaySound_G2 ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'PlaySoundA' :: PlaySound_G2
  integer(LPVOID) pszSound ! LPCSTR pszSound
  integer(HANDLE) hmod ! HMODULE hmod
  integer(DWORD) fdwSound ! DWORD fdwSound
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: waveOutGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetNumDevs' :: waveOutGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetDevCaps( &
        uDeviceID, &
        pwoc, &
        cbwoc)
USE DFWINTY
  integer(UINT) :: waveOutGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetDevCapsA' :: waveOutGetDevCaps
  integer(UINT_PTR) uDeviceID ! UINT_PTR uDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwoc
  TYPE (T_WAVEOUTCAPS) pwoc ! LPWAVEOUTCAPSA pwoc
  integer(UINT) cbwoc ! UINT cbwoc
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetVolume( &
        hwo, &
        pdwVolume)
USE DFWINTY
  integer(UINT) :: waveOutGetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetVolume' :: waveOutGetVolume
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(LPDWORD) pdwVolume ! LPDWORD pdwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutSetVolume( &
        hwo, &
        dwVolume)
USE DFWINTY
  integer(UINT) :: waveOutSetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutSetVolume' :: waveOutSetVolume
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(DWORD) dwVolume ! DWORD dwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetErrorText( &
        mmrError, &
        pszText, &
        cchText)
USE DFWINTY
  integer(UINT) :: waveOutGetErrorText ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetErrorTextA' :: waveOutGetErrorText
  integer(UINT) mmrError ! MMRESULT mmrError
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszText
  character*(*) pszText ! LPSTR pszText
  integer(UINT) cchText ! UINT cchText
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutOpen( &
        phwo, &
        uDeviceID, &
        pwfx, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: waveOutOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutOpen' :: waveOutOpen
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: phwo
  integer(HANDLE) phwo ! LPHWAVEOUT phwo
  integer(UINT) uDeviceID ! UINT uDeviceID
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pwfx
  TYPE(T_WAVEFORMATEX)  pwfx ! LPCWAVEFORMATEX pwfx
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutClose( &
        hwo)
USE DFWINTY
  integer(UINT) :: waveOutClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutClose' :: waveOutClose
  integer(HANDLE) hwo ! HWAVEOUT hwo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutPrepareHeader( &
        hwo, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveOutPrepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutPrepareHeader' :: waveOutPrepareHeader
  integer(HANDLE) hwo ! HWAVEOUT hwo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutUnprepareHeader( &
        hwo, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveOutUnprepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutUnprepareHeader' :: waveOutUnprepareHeader
  integer(HANDLE) hwo ! HWAVEOUT hwo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutWrite( &
        hwo, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveOutWrite ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutWrite' :: waveOutWrite
  integer(HANDLE) hwo ! HWAVEOUT hwo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutPause( &
        hwo)
USE DFWINTY
  integer(UINT) :: waveOutPause ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutPause' :: waveOutPause
  integer(HANDLE) hwo ! HWAVEOUT hwo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutRestart( &
        hwo)
USE DFWINTY
  integer(UINT) :: waveOutRestart ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutRestart' :: waveOutRestart
  integer(HANDLE) hwo ! HWAVEOUT hwo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutReset( &
        hwo)
USE DFWINTY
  integer(UINT) :: waveOutReset ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutReset' :: waveOutReset
  integer(HANDLE) hwo ! HWAVEOUT hwo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutBreakLoop( &
        hwo)
USE DFWINTY
  integer(UINT) :: waveOutBreakLoop ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutBreakLoop' :: waveOutBreakLoop
  integer(HANDLE) hwo ! HWAVEOUT hwo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetPosition( &
        hwo, &
        pmmt, &
        cbmmt)
USE DFWINTY
  integer(UINT) :: waveOutGetPosition ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetPosition' :: waveOutGetPosition
  integer(HANDLE) hwo ! HWAVEOUT hwo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmt
  TYPE (T_MMTIME) pmmt ! LPMMTIME pmmt
  integer(UINT) cbmmt ! UINT cbmmt
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetPitch( &
        hwo, &
        pdwPitch)
USE DFWINTY
  integer(UINT) :: waveOutGetPitch ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetPitch' :: waveOutGetPitch
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(LPDWORD) pdwPitch ! LPDWORD pdwPitch
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutSetPitch( &
        hwo, &
        dwPitch)
USE DFWINTY
  integer(UINT) :: waveOutSetPitch ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutSetPitch' :: waveOutSetPitch
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(DWORD) dwPitch ! DWORD dwPitch
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetPlaybackRate( &
        hwo, &
        pdwRate)
USE DFWINTY
  integer(UINT) :: waveOutGetPlaybackRate ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetPlaybackRate' :: waveOutGetPlaybackRate
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(LPDWORD) pdwRate ! LPDWORD pdwRate
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutSetPlaybackRate( &
        hwo, &
        dwRate)
USE DFWINTY
  integer(UINT) :: waveOutSetPlaybackRate ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutSetPlaybackRate' :: waveOutSetPlaybackRate
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(DWORD) dwRate ! DWORD dwRate
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutGetID( &
        hwo, &
        puDeviceID)
USE DFWINTY
  integer(UINT) :: waveOutGetID ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutGetID' :: waveOutGetID
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(LPUINT) puDeviceID ! LPUINT puDeviceID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveOutMessage( &
        hwo, &
        uMsg, &
        dw1, &
        dw2)
USE DFWINTY
  integer(UINT) :: waveOutMessage ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveOutMessage' :: waveOutMessage
  integer(HANDLE) hwo ! HWAVEOUT hwo
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dw1 ! DWORD_PTR dw1
  integer(DWORD_PTR) dw2 ! DWORD_PTR dw2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: waveInGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInGetNumDevs' :: waveInGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInGetDevCaps( &
        uDeviceID, &
        pwic, &
        cbwic)
USE DFWINTY
  integer(UINT) :: waveInGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInGetDevCapsA' :: waveInGetDevCaps
  integer(UINT_PTR) uDeviceID ! UINT_PTR uDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwic
  TYPE (T_WAVEINCAPS) pwic ! LPWAVEINCAPSA pwic
  integer(UINT) cbwic ! UINT cbwic
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInGetErrorText( &
        mmrError, &
        pszText, &
        cchText)
USE DFWINTY
  integer(UINT) :: waveInGetErrorText ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInGetErrorTextA' :: waveInGetErrorText
  integer(UINT) mmrError ! MMRESULT mmrError
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszText
  character*(*) pszText ! LPSTR pszText
  integer(UINT) cchText ! UINT cchText
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInOpen( &
        phwi, &
        uDeviceID, &
        pwfx, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: waveInOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInOpen' :: waveInOpen
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: phwi
  integer(HANDLE) phwi ! LPHWAVEIN phwi
  integer(UINT) uDeviceID ! UINT uDeviceID
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: pwfx
  TYPE(T_WAVEFORMATEX) pwfx ! LPCWAVEFORMATEX pwfx
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInClose( &
        hwi)
USE DFWINTY
  integer(UINT) :: waveInClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInClose' :: waveInClose
  integer(HANDLE) hwi ! HWAVEIN hwi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInPrepareHeader( &
        hwi, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveInPrepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInPrepareHeader' :: waveInPrepareHeader
  integer(HANDLE) hwi ! HWAVEIN hwi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInUnprepareHeader( &
        hwi, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveInUnprepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInUnprepareHeader' :: waveInUnprepareHeader
  integer(HANDLE) hwi ! HWAVEIN hwi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInAddBuffer( &
        hwi, &
        pwh, &
        cbwh)
USE DFWINTY
  integer(UINT) :: waveInAddBuffer ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInAddBuffer' :: waveInAddBuffer
  integer(HANDLE) hwi ! HWAVEIN hwi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pwh
  TYPE (T_WAVEHDR) pwh ! LPWAVEHDR pwh
  integer(UINT) cbwh ! UINT cbwh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInStart( &
        hwi)
USE DFWINTY
  integer(UINT) :: waveInStart ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInStart' :: waveInStart
  integer(HANDLE) hwi ! HWAVEIN hwi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInStop( &
        hwi)
USE DFWINTY
  integer(UINT) :: waveInStop ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInStop' :: waveInStop
  integer(HANDLE) hwi ! HWAVEIN hwi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInReset( &
        hwi)
USE DFWINTY
  integer(UINT) :: waveInReset ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInReset' :: waveInReset
  integer(HANDLE) hwi ! HWAVEIN hwi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInGetPosition( &
        hwi, &
        pmmt, &
        cbmmt)
USE DFWINTY
  integer(UINT) :: waveInGetPosition ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInGetPosition' :: waveInGetPosition
  integer(HANDLE) hwi ! HWAVEIN hwi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmt
  TYPE (T_MMTIME) pmmt ! LPMMTIME pmmt
  integer(UINT) cbmmt ! UINT cbmmt
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInGetID( &
        hwi, &
        puDeviceID)
USE DFWINTY
  integer(UINT) :: waveInGetID ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInGetID' :: waveInGetID
  integer(HANDLE) hwi ! HWAVEIN hwi
  integer(LPUINT) puDeviceID ! LPUINT puDeviceID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION waveInMessage( &
        hwi, &
        uMsg, &
        dw1, &
        dw2)
USE DFWINTY
  integer(UINT) :: waveInMessage ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'waveInMessage' :: waveInMessage
  integer(HANDLE) hwi ! HWAVEIN hwi
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dw1 ! DWORD_PTR dw1
  integer(DWORD_PTR) dw2 ! DWORD_PTR dw2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: midiOutGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutGetNumDevs' :: midiOutGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamOpen( &
        phms, &
        puDeviceID, &
        cMidi, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: midiStreamOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamOpen' :: midiStreamOpen
!DEC$ ATTRIBUTES REFERENCE :: phms
  integer(HANDLE) phms ! LPHMIDISTRM phms
  integer(LPUINT) puDeviceID ! LPUINT puDeviceID
  integer(DWORD) cMidi ! DWORD cMidi
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamClose( &
        hms)
USE DFWINTY
  integer(UINT) :: midiStreamClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamClose' :: midiStreamClose
  integer(HANDLE) hms ! HMIDISTRM hms
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamProperty( &
        hms, &
        lppropdata, &
        dwProperty)
USE DFWINTY
  integer(UINT) :: midiStreamProperty ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamProperty' :: midiStreamProperty
  integer(HANDLE) hms ! HMIDISTRM hms
  integer(LPBYTE) lppropdata ! LPBYTE lppropdata
  integer(DWORD) dwProperty ! DWORD dwProperty
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamPosition( &
        hms, &
        lpmmt, &
        cbmmt)
USE DFWINTY
  integer(UINT) :: midiStreamPosition ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamPosition' :: midiStreamPosition
  integer(HANDLE) hms ! HMIDISTRM hms
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpmmt
  TYPE (T_MMTIME) lpmmt ! LPMMTIME lpmmt
  integer(UINT) cbmmt ! UINT cbmmt
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamOut( &
        hms, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiStreamOut ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamOut' :: midiStreamOut
  integer(HANDLE) hms ! HMIDISTRM hms
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamPause( &
        hms)
USE DFWINTY
  integer(UINT) :: midiStreamPause ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamPause' :: midiStreamPause
  integer(HANDLE) hms ! HMIDISTRM hms
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamRestart( &
        hms)
USE DFWINTY
  integer(UINT) :: midiStreamRestart ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamRestart' :: midiStreamRestart
  integer(HANDLE) hms ! HMIDISTRM hms
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiStreamStop( &
        hms)
USE DFWINTY
  integer(UINT) :: midiStreamStop ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiStreamStop' :: midiStreamStop
  integer(HANDLE) hms ! HMIDISTRM hms
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiConnect( &
        hmi, &
        hmo, &
        pReserved)
USE DFWINTY
  integer(UINT) :: midiConnect ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiConnect' :: midiConnect
  integer(HANDLE) hmi ! HMIDI hmi
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(LPVOID) pReserved ! LPVOID pReserved
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiDisconnect( &
        hmi, &
        hmo, &
        pReserved)
USE DFWINTY
  integer(UINT) :: midiDisconnect ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiDisconnect' :: midiDisconnect
  integer(HANDLE) hmi ! HMIDI hmi
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(LPVOID) pReserved ! LPVOID pReserved
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutGetDevCaps( &
        uDeviceID, &
        pmoc, &
        cbmoc)
USE DFWINTY
  integer(UINT) :: midiOutGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutGetDevCapsA' :: midiOutGetDevCaps
  integer(UINT_PTR) uDeviceID ! UINT_PTR uDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmoc
  TYPE (T_MIDIOUTCAPS) pmoc ! LPMIDIOUTCAPSA pmoc
  integer(UINT) cbmoc ! UINT cbmoc
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutGetVolume( &
        hmo, &
        pdwVolume)
USE DFWINTY
  integer(UINT) :: midiOutGetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutGetVolume' :: midiOutGetVolume
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(LPDWORD) pdwVolume ! LPDWORD pdwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutSetVolume( &
        hmo, &
        dwVolume)
USE DFWINTY
  integer(UINT) :: midiOutSetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutSetVolume' :: midiOutSetVolume
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(DWORD) dwVolume ! DWORD dwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutGetErrorText( &
        mmrError, &
        pszText, &
        cchText)
USE DFWINTY
  integer(UINT) :: midiOutGetErrorText ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutGetErrorTextA' :: midiOutGetErrorText
  integer(UINT) mmrError ! MMRESULT mmrError
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszText
  character*(*) pszText ! LPSTR pszText
  integer(UINT) cchText ! UINT cchText
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutOpen( &
        phmo, &
        uDeviceID, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: midiOutOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutOpen' :: midiOutOpen
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: phmo
  integer(HANDLE) phmo ! LPHMIDIOUT phmo
  integer(UINT) uDeviceID ! UINT uDeviceID
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutClose( &
        hmo)
USE DFWINTY
  integer(UINT) :: midiOutClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutClose' :: midiOutClose
  integer(HANDLE) hmo ! HMIDIOUT hmo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutPrepareHeader( &
        hmo, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiOutPrepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutPrepareHeader' :: midiOutPrepareHeader
  integer(HANDLE) hmo ! HMIDIOUT hmo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutUnprepareHeader( &
        hmo, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiOutUnprepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutUnprepareHeader' :: midiOutUnprepareHeader
  integer(HANDLE) hmo ! HMIDIOUT hmo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutShortMsg( &
        hmo, &
        dwMsg)
USE DFWINTY
  integer(UINT) :: midiOutShortMsg ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutShortMsg' :: midiOutShortMsg
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(DWORD) dwMsg ! DWORD dwMsg
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutLongMsg( &
        hmo, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiOutLongMsg ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutLongMsg' :: midiOutLongMsg
  integer(HANDLE) hmo ! HMIDIOUT hmo
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutReset( &
        hmo)
USE DFWINTY
  integer(UINT) :: midiOutReset ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutReset' :: midiOutReset
  integer(HANDLE) hmo ! HMIDIOUT hmo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutCachePatches( &
        hmo, &
        uBank, &
        pwpa, &
        fuCache)
USE DFWINTY
  integer(UINT) :: midiOutCachePatches ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutCachePatches' :: midiOutCachePatches
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(UINT) uBank ! UINT uBank
  integer(LPWORD) pwpa ! LPWORD pwpa
  integer(UINT) fuCache ! UINT fuCache
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutCacheDrumPatches( &
        hmo, &
        uPatch, &
        pwkya, &
        fuCache)
USE DFWINTY
  integer(UINT) :: midiOutCacheDrumPatches ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutCacheDrumPatches' :: midiOutCacheDrumPatches
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(UINT) uPatch ! UINT uPatch
  integer(LPWORD) pwkya ! LPWORD pwkya
  integer(UINT) fuCache ! UINT fuCache
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutGetID( &
        hmo, &
        puDeviceID)
USE DFWINTY
  integer(UINT) :: midiOutGetID ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutGetID' :: midiOutGetID
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(LPUINT) puDeviceID ! LPUINT puDeviceID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiOutMessage( &
        hmo, &
        uMsg, &
        dw1, &
        dw2)
USE DFWINTY
  integer(UINT) :: midiOutMessage ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiOutMessage' :: midiOutMessage
  integer(HANDLE) hmo ! HMIDIOUT hmo
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dw1 ! DWORD_PTR dw1
  integer(DWORD_PTR) dw2 ! DWORD_PTR dw2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: midiInGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInGetNumDevs' :: midiInGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInGetDevCaps( &
        uDeviceID, &
        pmic, &
        cbmic)
USE DFWINTY
  integer(UINT) :: midiInGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInGetDevCapsA' :: midiInGetDevCaps
  integer(UINT_PTR) uDeviceID ! UINT_PTR uDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmic
  TYPE (T_MIDIINCAPS) pmic ! LPMIDIINCAPSA pmic
  integer(UINT) cbmic ! UINT cbmic
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInGetErrorText( &
        mmrError, &
        pszText, &
        cchText)
USE DFWINTY
  integer(UINT) :: midiInGetErrorText ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInGetErrorTextA' :: midiInGetErrorText
  integer(UINT) mmrError ! MMRESULT mmrError
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszText
  character*(*) pszText ! LPSTR pszText
  integer(UINT) cchText ! UINT cchText
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInOpen( &
        phmi, &
        uDeviceID, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: midiInOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInOpen' :: midiInOpen
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: phmi
  integer(HANDLE)  phmi ! LPHMIDIIN phmi
  integer(UINT) uDeviceID ! UINT uDeviceID
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInClose( &
        hmi)
USE DFWINTY
  integer(UINT) :: midiInClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInClose' :: midiInClose
  integer(HANDLE) hmi ! HMIDIIN hmi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInPrepareHeader( &
        hmi, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiInPrepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInPrepareHeader' :: midiInPrepareHeader
  integer(HANDLE) hmi ! HMIDIIN hmi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInUnprepareHeader( &
        hmi, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiInUnprepareHeader ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInUnprepareHeader' :: midiInUnprepareHeader
  integer(HANDLE) hmi ! HMIDIIN hmi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInAddBuffer( &
        hmi, &
        pmh, &
        cbmh)
USE DFWINTY
  integer(UINT) :: midiInAddBuffer ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInAddBuffer' :: midiInAddBuffer
  integer(HANDLE) hmi ! HMIDIIN hmi
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmh
  TYPE (T_MIDIHDR) pmh ! LPMIDIHDR pmh
  integer(UINT) cbmh ! UINT cbmh
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInStart( &
        hmi)
USE DFWINTY
  integer(UINT) :: midiInStart ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInStart' :: midiInStart
  integer(HANDLE) hmi ! HMIDIIN hmi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInStop( &
        hmi)
USE DFWINTY
  integer(UINT) :: midiInStop ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInStop' :: midiInStop
  integer(HANDLE) hmi ! HMIDIIN hmi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInReset( &
        hmi)
USE DFWINTY
  integer(UINT) :: midiInReset ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInReset' :: midiInReset
  integer(HANDLE) hmi ! HMIDIIN hmi
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInGetID( &
        hmi, &
        puDeviceID)
USE DFWINTY
  integer(UINT) :: midiInGetID ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInGetID' :: midiInGetID
  integer(HANDLE) hmi ! HMIDIIN hmi
  integer(LPUINT) puDeviceID ! LPUINT puDeviceID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION midiInMessage( &
        hmi, &
        uMsg, &
        dw1, &
        dw2)
USE DFWINTY
  integer(UINT) :: midiInMessage ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'midiInMessage' :: midiInMessage
  integer(HANDLE) hmi ! HMIDIIN hmi
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dw1 ! DWORD_PTR dw1
  integer(DWORD_PTR) dw2 ! DWORD_PTR dw2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION auxGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: auxGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'auxGetNumDevs' :: auxGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION auxGetDevCaps( &
        uDeviceID, &
        pac, &
        cbac)
USE DFWINTY
  integer(UINT) :: auxGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'auxGetDevCapsA' :: auxGetDevCaps
  integer(UINT_PTR) uDeviceID ! UINT_PTR uDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pac
  TYPE (T_AUXCAPS) pac ! LPAUXCAPSA pac
  integer(UINT) cbac ! UINT cbac
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION auxSetVolume( &
        uDeviceID, &
        dwVolume)
USE DFWINTY
  integer(UINT) :: auxSetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'auxSetVolume' :: auxSetVolume
  integer(UINT) uDeviceID ! UINT uDeviceID
  integer(DWORD) dwVolume ! DWORD dwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION auxGetVolume( &
        uDeviceID, &
        pdwVolume)
USE DFWINTY
  integer(UINT) :: auxGetVolume ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'auxGetVolume' :: auxGetVolume
  integer(UINT) uDeviceID ! UINT uDeviceID
  integer(LPDWORD) pdwVolume ! LPDWORD pdwVolume
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION auxOutMessage( &
        uDeviceID, &
        uMsg, &
        dw1, &
        dw2)
USE DFWINTY
  integer(UINT) :: auxOutMessage ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'auxOutMessage' :: auxOutMessage
  integer(UINT) uDeviceID ! UINT uDeviceID
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dw1 ! DWORD_PTR dw1
  integer(DWORD_PTR) dw2 ! DWORD_PTR dw2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: mixerGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetNumDevs' :: mixerGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetDevCaps( &
        uMxId, &
        pmxcaps, &
        cbmxcaps)
USE DFWINTY
  integer(UINT) :: mixerGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetDevCapsA' :: mixerGetDevCaps
  integer(UINT_PTR) uMxId ! UINT_PTR uMxId
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmxcaps
  TYPE (T_MIXERCAPS) pmxcaps ! LPMIXERCAPSA pmxcaps
  integer(UINT) cbmxcaps ! UINT cbmxcaps
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerOpen( &
        phmx, &
        uMxId, &
        dwCallback, &
        dwInstance, &
        fdwOpen)
USE DFWINTY
  integer(UINT) :: mixerOpen ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerOpen' :: mixerOpen
!DEC$ ATTRIBUTES REFERENCE :: phmx
  integer(HANDLE)  phmx ! LPHMIXER phmx
  integer(UINT) uMxId ! UINT uMxId
  integer(DWORD_PTR) dwCallback ! DWORD_PTR dwCallback
  integer(DWORD_PTR) dwInstance ! DWORD_PTR dwInstance
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerClose( &
        hmx)
USE DFWINTY
  integer(UINT) :: mixerClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerClose' :: mixerClose
  integer(HANDLE) hmx ! HMIXER hmx
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerMessage( &
        hmx, &
        uMsg, &
        dwParam1, &
        dwParam2)
USE DFWINTY
  integer(DWORD) :: mixerMessage ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerMessage' :: mixerMessage
  integer(HANDLE) hmx ! HMIXER hmx
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dwParam1 ! DWORD_PTR dwParam1
  integer(DWORD_PTR) dwParam2 ! DWORD_PTR dwParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetLineInfo( &
        hmxobj, &
        pmxl, &
        fdwInfo)
USE DFWINTY
  integer(UINT) :: mixerGetLineInfo ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetLineInfoA' :: mixerGetLineInfo
  integer(HANDLE) hmxobj ! HMIXEROBJ hmxobj
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmxl
  TYPE (T_MIXERLINE) pmxl ! LPMIXERLINEA pmxl
  integer(DWORD) fdwInfo ! DWORD fdwInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetID( &
        hmxobj, &
        puMxId, &
        fdwId)
USE DFWINTY
  integer(UINT) :: mixerGetID ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetID' :: mixerGetID
  integer(HANDLE) hmxobj ! HMIXEROBJ hmxobj
  integer(LPUINT) puMxId ! UINT* puMxId
  integer(DWORD) fdwId ! DWORD fdwId
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetLineControls( &
        hmxobj, &
        pmxlc, &
        fdwControls)
USE DFWINTY
  integer(UINT) :: mixerGetLineControls ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetLineControlsA' :: mixerGetLineControls
  integer(HANDLE) hmxobj ! HMIXEROBJ hmxobj
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmxlc
  TYPE (T_MIXERLINECONTROLS) pmxlc ! LPMIXERLINECONTROLSA pmxlc
  integer(DWORD) fdwControls ! DWORD fdwControls
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerGetControlDetails( &
        hmxobj, &
        pmxcd, &
        fdwDetails)
USE DFWINTY
  integer(UINT) :: mixerGetControlDetails ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerGetControlDetailsA' :: mixerGetControlDetails
  integer(HANDLE) hmxobj ! HMIXEROBJ hmxobj
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmxcd
  TYPE (T_MIXERCONTROLDETAILS) pmxcd ! LPMIXERCONTROLDETAILS pmxcd
  integer(DWORD) fdwDetails ! DWORD fdwDetails
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mixerSetControlDetails( &
        hmxobj, &
        pmxcd, &
        fdwDetails)
USE DFWINTY
  integer(UINT) :: mixerSetControlDetails ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mixerSetControlDetails' :: mixerSetControlDetails
  integer(HANDLE) hmxobj ! HMIXEROBJ hmxobj
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmxcd
  TYPE (T_MIXERCONTROLDETAILS) pmxcd ! LPMIXERCONTROLDETAILS pmxcd
  integer(DWORD) fdwDetails ! DWORD fdwDetails
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeGetSystemTime( &
        pmmt, &
        cbmmt)
USE DFWINTY
  integer(UINT) :: timeGetSystemTime ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeGetSystemTime' :: timeGetSystemTime
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmt
  TYPE (T_MMTIME) pmmt ! LPMMTIME pmmt
  integer(UINT) cbmmt ! UINT cbmmt
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeGetTime( &
             )
USE DFWINTY
  integer(DWORD) :: timeGetTime ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeGetTime' :: timeGetTime
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeSetEvent( &
        uDelay, &
        uResolution, &
        fptc, &
        dwUser, &
        fuEvent)
USE DFWINTY
  integer(UINT) :: timeSetEvent ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeSetEvent' :: timeSetEvent
  integer(UINT) uDelay ! UINT uDelay
  integer(UINT) uResolution ! UINT uResolution
  integer(LPVOID) fptc ! LPTIMECALLBACK fptc
  integer(DWORD_PTR) dwUser ! DWORD_PTR dwUser
  integer(UINT) fuEvent ! UINT fuEvent
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeKillEvent( &
        uTimerID)
USE DFWINTY
  integer(UINT) :: timeKillEvent ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeKillEvent' :: timeKillEvent
  integer(UINT) uTimerID ! UINT uTimerID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeGetDevCaps( &
        ptc, &
        cbtc)
USE DFWINTY
  integer(UINT) :: timeGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeGetDevCaps' :: timeGetDevCaps
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: ptc
  TYPE (T_TIMECAPS) ptc ! LPTIMECAPS ptc
  integer(UINT) cbtc ! UINT cbtc
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeBeginPeriod( &
        uPeriod)
USE DFWINTY
  integer(UINT) :: timeBeginPeriod ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeBeginPeriod' :: timeBeginPeriod
  integer(UINT) uPeriod ! UINT uPeriod
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION timeEndPeriod( &
        uPeriod)
USE DFWINTY
  integer(UINT) :: timeEndPeriod ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'timeEndPeriod' :: timeEndPeriod
  integer(UINT) uPeriod ! UINT uPeriod
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyGetNumDevs( &
             )
USE DFWINTY
  integer(UINT) :: joyGetNumDevs ! UINT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyGetNumDevs' :: joyGetNumDevs
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyGetDevCaps( &
        uJoyID, &
        pjc, &
        cbjc)
USE DFWINTY
  integer(UINT) :: joyGetDevCaps ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyGetDevCapsA' :: joyGetDevCaps
  integer(UINT_PTR) uJoyID ! UINT_PTR uJoyID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pjc
  TYPE (T_JOYCAPS) pjc ! LPJOYCAPSA pjc
  integer(UINT) cbjc ! UINT cbjc
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyGetPos( &
        uJoyID, &
        pji)
USE DFWINTY
  integer(UINT) :: joyGetPos ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyGetPos' :: joyGetPos
  integer(UINT) uJoyID ! UINT uJoyID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pji
  TYPE (T_JOYINFO) pji ! LPJOYINFO pji
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyGetPosEx( &
        uJoyID, &
        pji)
USE DFWINTY
  integer(UINT) :: joyGetPosEx ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyGetPosEx' :: joyGetPosEx
  integer(UINT) uJoyID ! UINT uJoyID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pji
  TYPE (T_JOYINFOEX) pji ! LPJOYINFOEX pji
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyGetThreshold( &
        uJoyID, &
        puThreshold)
USE DFWINTY
  integer(UINT) :: joyGetThreshold ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyGetThreshold' :: joyGetThreshold
  integer(UINT) uJoyID ! UINT uJoyID
  integer(LPUINT) puThreshold ! LPUINT puThreshold
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joyReleaseCapture( &
        uJoyID)
USE DFWINTY
  integer(UINT) :: joyReleaseCapture ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joyReleaseCapture' :: joyReleaseCapture
  integer(UINT) uJoyID ! UINT uJoyID
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joySetCapture( &
        hwnd, &
        uJoyID, &
        uPeriod, &
        fChanged)
USE DFWINTY
  integer(UINT) :: joySetCapture ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joySetCapture' :: joySetCapture
  integer(HANDLE) hwnd ! HWND hwnd
  integer(UINT) uJoyID ! UINT uJoyID
  integer(UINT) uPeriod ! UINT uPeriod
  integer(BOOL) fChanged ! BOOL fChanged
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION joySetThreshold( &
        uJoyID, &
        uThreshold)
USE DFWINTY
  integer(UINT) :: joySetThreshold ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'joySetThreshold' :: joySetThreshold
  integer(UINT) uJoyID ! UINT uJoyID
  integer(UINT) uThreshold ! UINT uThreshold
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioStringToFOURCC( &
        sz, &
        uFlags)
USE DFWINTY
  integer(ULONG) :: mmioStringToFOURCC ! FOURCC
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioStringToFOURCCA' :: mmioStringToFOURCC
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: sz
  character*(*) sz ! LPCSTR sz
  integer(UINT) uFlags ! UINT uFlags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioInstallIOProc( &
        fccIOProc, &
        pIOProc, &
        dwFlags)
USE DFWINTY
 integer(LPVOID):: mmioInstallIOProc ! LPMMIOPROC
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioInstallIOProcA' :: mmioInstallIOProc
  integer(ULONG) fccIOProc ! FOURCC fccIOProc
  integer(LPVOID) pIOProc ! LPMMIOPROC pIOProc
  integer(DWORD) dwFlags ! DWORD dwFlags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioOpen( &
        pszFileName, &
        pmmioinfo, &
        fdwOpen)
USE DFWINTY
  integer(HANDLE) :: mmioOpen ! HMMIO
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioOpenA' :: mmioOpen
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszFileName
  character*(*) pszFileName ! LPSTR pszFileName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmioinfo
  TYPE (T_MMIOINFO) pmmioinfo ! LPMMIOINFO pmmioinfo
  integer(DWORD) fdwOpen ! DWORD fdwOpen
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioRename( &
        pszFileName, &
        pszNewFileName, &
        pmmioinfo, &
        fdwRename)
USE DFWINTY
  integer(UINT) :: mmioRename ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioRenameA' :: mmioRename
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszFileName
  character*(*) pszFileName ! LPCSTR pszFileName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszNewFileName
  character*(*) pszNewFileName ! LPCSTR pszNewFileName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmioinfo
  TYPE(T_MMIOINFO)  pmmioinfo ! LPCMMIOINFO pmmioinfo
  integer(DWORD) fdwRename ! DWORD fdwRename
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioClose( &
        hmmio, &
        fuClose)
USE DFWINTY
  integer(UINT) :: mmioClose ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioClose' :: mmioClose
  integer(HANDLE) hmmio ! HMMIO hmmio
  integer(UINT) fuClose ! UINT fuClose
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioRead( &
        hmmio, &
        pch, &
        cch)
USE DFWINTY
  integer(LONG) :: mmioRead ! LONG
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioRead' :: mmioRead
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pch
  character*(*)  pch ! HPSTR pch
  integer(LONG) cch ! LONG cch
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioWrite( &
        hmmio, &
        pch, &
        cch)
USE DFWINTY
  integer(LONG) :: mmioWrite ! LONG
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioWrite' :: mmioWrite
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE :: pch
  character(SCHAR)  pch ! char*  pch
  integer(LONG) cch ! LONG cch
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioSeek( &
        hmmio, &
        lOffset, &
        iOrigin)
USE DFWINTY
  integer(LONG) :: mmioSeek ! LONG
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioSeek' :: mmioSeek
  integer(HANDLE) hmmio ! HMMIO hmmio
  integer(LONG) lOffset ! LONG lOffset
  integer(SINT) iOrigin ! int iOrigin
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioGetInfo( &
        hmmio, &
        pmmioinfo, &
        fuInfo)
USE DFWINTY
  integer(UINT) :: mmioGetInfo ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioGetInfo' :: mmioGetInfo
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmioinfo
  TYPE (T_MMIOINFO) pmmioinfo ! LPMMIOINFO pmmioinfo
  integer(UINT) fuInfo ! UINT fuInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioSetInfo( &
        hmmio, &
        pmmioinfo, &
        fuInfo)
USE DFWINTY
  integer(UINT) :: mmioSetInfo ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioSetInfo' :: mmioSetInfo
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmioinfo
  TYPE(T_MMIOINFO)  pmmioinfo ! LPCMMIOINFO pmmioinfo
  integer(UINT) fuInfo ! UINT fuInfo
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioSetBuffer( &
        hmmio, &
        pchBuffer, &
        cchBuffer, &
        fuBuffer)
USE DFWINTY
  integer(UINT) :: mmioSetBuffer ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioSetBuffer' :: mmioSetBuffer
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pchBuffer
  character*(*) pchBuffer ! LPSTR pchBuffer
  integer(LONG) cchBuffer ! LONG cchBuffer
  integer(UINT) fuBuffer ! UINT fuBuffer
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioFlush( &
        hmmio, &
        fuFlush)
USE DFWINTY
  integer(UINT) :: mmioFlush ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioFlush' :: mmioFlush
  integer(HANDLE) hmmio ! HMMIO hmmio
  integer(UINT) fuFlush ! UINT fuFlush
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioAdvance( &
        hmmio, &
        pmmioinfo, &
        fuAdvance)
USE DFWINTY
  integer(UINT) :: mmioAdvance ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioAdvance' :: mmioAdvance
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmioinfo
  TYPE (T_MMIOINFO) pmmioinfo ! LPMMIOINFO pmmioinfo
  integer(UINT) fuAdvance ! UINT fuAdvance
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioSendMessage( &
        hmmio, &
        uMsg, &
        lParam1, &
        lParam2)
USE DFWINTY
  integer(LRESULT) :: mmioSendMessage ! LRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioSendMessage' :: mmioSendMessage
  integer(HANDLE) hmmio ! HMMIO hmmio
  integer(UINT) uMsg ! UINT uMsg
  integer(LONG_PTR) lParam1 ! LPARAM lParam1
  integer(LONG_PTR) lParam2 ! LPARAM lParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioDescend( &
        hmmio, &
        pmmcki, &
        pmmckiParent, &
        fuDescend)
USE DFWINTY
  integer(UINT) :: mmioDescend ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioDescend' :: mmioDescend
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmcki
  TYPE (T_MMCKINFO) pmmcki ! LPMMCKINFO pmmcki
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmckiParent
  TYPE (T_MMCKINFO)  pmmckiParent ! MMCKINFO*  pmmckiParent
  integer(UINT) fuDescend ! UINT fuDescend
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioAscend( &
        hmmio, &
        pmmcki, &
        fuAscend)
USE DFWINTY
  integer(UINT) :: mmioAscend ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioAscend' :: mmioAscend
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmcki
  TYPE (T_MMCKINFO) pmmcki ! LPMMCKINFO pmmcki
  integer(UINT) fuAscend ! UINT fuAscend
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mmioCreateChunk( &
        hmmio, &
        pmmcki, &
        fuCreate)
USE DFWINTY
  integer(UINT) :: mmioCreateChunk ! MMRESULT
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mmioCreateChunk' :: mmioCreateChunk
  integer(HANDLE) hmmio ! HMMIO hmmio
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pmmcki
  TYPE (T_MMCKINFO) pmmcki ! LPMMCKINFO pmmcki
  integer(UINT) fuCreate ! UINT fuCreate
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciSendCommand( &
        mciId, &
        uMsg, &
        dwParam1, &
        dwParam2)
USE DFWINTY
  integer(ULONG) :: mciSendCommand ! MCIERROR
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciSendCommandA' :: mciSendCommand
  integer(UINT) mciId ! MCIDEVICEID mciId
  integer(UINT) uMsg ! UINT uMsg
  integer(DWORD_PTR) dwParam1 ! DWORD_PTR dwParam1
  integer(DWORD_PTR) dwParam2 ! DWORD_PTR dwParam2
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciSendString( &
        lpstrCommand, &
        lpstrReturnString, &
        uReturnLength, &
        hwndCallback)
USE DFWINTY
  integer(ULONG) :: mciSendString ! MCIERROR
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciSendStringA' :: mciSendString
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpstrCommand
  character*(*) lpstrCommand ! LPCSTR lpstrCommand
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpstrReturnString
  character*(*) lpstrReturnString ! LPSTR lpstrReturnString
  integer(UINT) uReturnLength ! UINT uReturnLength
  integer(HANDLE) hwndCallback ! HWND hwndCallback
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciGetDeviceID( &
        pszDevice)
USE DFWINTY
  integer(UINT) :: mciGetDeviceID ! MCIDEVICEID
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciGetDeviceIDA' :: mciGetDeviceID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszDevice
  character*(*) pszDevice ! LPCSTR pszDevice
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciGetDeviceIDFromElementID( &
        dwElementID, &
        lpstrType)
USE DFWINTY
  integer(UINT) :: mciGetDeviceIDFromElementID ! MCIDEVICEID
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciGetDeviceIDFromElementIDA' :: mciGetDeviceIDFromElementID
  integer(DWORD) dwElementID ! DWORD dwElementID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpstrType
  character*(*) lpstrType ! LPCSTR lpstrType
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciGetErrorString( &
        mcierr, &
        pszText, &
        cchText)
USE DFWINTY
  integer(BOOL) :: mciGetErrorString ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciGetErrorStringA' :: mciGetErrorString
  integer(ULONG) mcierr ! MCIERROR mcierr
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: pszText
  character*(*) pszText ! LPSTR pszText
  integer(UINT) cchText ! UINT cchText
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciSetYieldProc( &
        mciId, &
        fpYieldProc, &
        dwYieldData)
USE DFWINTY
  integer(BOOL) :: mciSetYieldProc ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciSetYieldProc' :: mciSetYieldProc
  integer(UINT) mciId ! MCIDEVICEID mciId
  integer(LPVOID) fpYieldProc ! YIELDPROC fpYieldProc
  integer(DWORD) dwYieldData ! DWORD dwYieldData
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciGetCreatorTask( &
        mciId)
USE DFWINTY
  integer(HANDLE) :: mciGetCreatorTask ! HTASK
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciGetCreatorTask' :: mciGetCreatorTask
  integer(UINT) mciId ! MCIDEVICEID mciId
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION mciGetYieldProc( &
        mciId, &
        pdwYieldData)
USE DFWINTY
integer(LPVOID) :: mciGetYieldProc ! YIELDPROC
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'mciGetYieldProc' :: mciGetYieldProc
  integer(UINT) mciId ! MCIDEVICEID mciId
  integer(LPDWORD) pdwYieldData ! LPDWORD pdwYieldData
 END FUNCTION
END INTERFACE
!
end module winmm
!
!DEC$ ENDIF ! /* WINMM_ */
