github.com/kbinani/win@v0.3.0/winmm.go (about)

     1  // This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go
     2  // go run internal/cmd/gen/gen.go
     3  
     4  // +build windows
     5  
     6  package win
     7  
     8  import (
     9  	"syscall"
    10  	"unsafe"
    11  )
    12  
    13  var (
    14  	// Library
    15  	libwinmm uintptr
    16  
    17  	// Functions
    18  	closeDriver                 uintptr
    19  	defDriverProc               uintptr
    20  	drvGetModuleHandle          uintptr
    21  	getDriverModuleHandle       uintptr
    22  	openDriver                  uintptr
    23  	playSound                   uintptr
    24  	sendDriverMessage           uintptr
    25  	auxGetDevCaps               uintptr
    26  	auxGetNumDevs               uintptr
    27  	auxGetVolume                uintptr
    28  	auxOutMessage               uintptr
    29  	auxSetVolume                uintptr
    30  	joyGetDevCaps               uintptr
    31  	joyGetNumDevs               uintptr
    32  	joyGetPos                   uintptr
    33  	joyGetPosEx                 uintptr
    34  	joyGetThreshold             uintptr
    35  	joyReleaseCapture           uintptr
    36  	joySetCapture               uintptr
    37  	joySetThreshold             uintptr
    38  	mciGetCreatorTask           uintptr
    39  	mciGetDeviceIDFromElementID uintptr
    40  	mciGetDeviceID              uintptr
    41  	mciGetErrorString           uintptr
    42  	mciGetYieldProc             uintptr
    43  	mciSendCommand              uintptr
    44  	mciSendString               uintptr
    45  	mciSetYieldProc             uintptr
    46  	midiConnect                 uintptr
    47  	midiDisconnect              uintptr
    48  	midiInAddBuffer             uintptr
    49  	midiInClose                 uintptr
    50  	midiInGetDevCaps            uintptr
    51  	midiInGetErrorText          uintptr
    52  	midiInGetID                 uintptr
    53  	midiInGetNumDevs            uintptr
    54  	midiInMessage               uintptr
    55  	midiInOpen                  uintptr
    56  	midiInPrepareHeader         uintptr
    57  	midiInReset                 uintptr
    58  	midiInStart                 uintptr
    59  	midiInStop                  uintptr
    60  	midiInUnprepareHeader       uintptr
    61  	midiOutCacheDrumPatches     uintptr
    62  	midiOutCachePatches         uintptr
    63  	midiOutClose                uintptr
    64  	midiOutGetDevCaps           uintptr
    65  	midiOutGetErrorText         uintptr
    66  	midiOutGetID                uintptr
    67  	midiOutGetNumDevs           uintptr
    68  	midiOutGetVolume            uintptr
    69  	midiOutLongMsg              uintptr
    70  	midiOutMessage              uintptr
    71  	midiOutOpen                 uintptr
    72  	midiOutPrepareHeader        uintptr
    73  	midiOutReset                uintptr
    74  	midiOutSetVolume            uintptr
    75  	midiOutShortMsg             uintptr
    76  	midiOutUnprepareHeader      uintptr
    77  	midiStreamClose             uintptr
    78  	midiStreamOpen              uintptr
    79  	midiStreamOut               uintptr
    80  	midiStreamPause             uintptr
    81  	midiStreamPosition          uintptr
    82  	midiStreamProperty          uintptr
    83  	midiStreamRestart           uintptr
    84  	midiStreamStop              uintptr
    85  	mixerClose                  uintptr
    86  	mixerGetControlDetails      uintptr
    87  	mixerGetDevCaps             uintptr
    88  	mixerGetID                  uintptr
    89  	mixerGetLineControls        uintptr
    90  	mixerGetLineInfo            uintptr
    91  	mixerGetNumDevs             uintptr
    92  	mixerMessage                uintptr
    93  	mixerOpen                   uintptr
    94  	mixerSetControlDetails      uintptr
    95  	mmioAdvance                 uintptr
    96  	mmioAscend                  uintptr
    97  	mmioClose                   uintptr
    98  	mmioCreateChunk             uintptr
    99  	mmioDescend                 uintptr
   100  	mmioFlush                   uintptr
   101  	mmioGetInfo                 uintptr
   102  	mmioInstallIOProc           uintptr
   103  	mmioOpen                    uintptr
   104  	mmioRead                    uintptr
   105  	mmioRename                  uintptr
   106  	mmioSeek                    uintptr
   107  	mmioSendMessage             uintptr
   108  	mmioSetBuffer               uintptr
   109  	mmioSetInfo                 uintptr
   110  	mmioStringToFOURCC          uintptr
   111  	mmioWrite                   uintptr
   112  	sndPlaySound                uintptr
   113  	timeBeginPeriod             uintptr
   114  	timeEndPeriod               uintptr
   115  	timeGetDevCaps              uintptr
   116  	timeGetSystemTime           uintptr
   117  	timeGetTime                 uintptr
   118  	timeKillEvent               uintptr
   119  	timeSetEvent                uintptr
   120  	waveInAddBuffer             uintptr
   121  	waveInClose                 uintptr
   122  	waveInGetDevCaps            uintptr
   123  	waveInGetErrorText          uintptr
   124  	waveInGetID                 uintptr
   125  	waveInGetNumDevs            uintptr
   126  	waveInGetPosition           uintptr
   127  	waveInMessage               uintptr
   128  	waveInOpen                  uintptr
   129  	waveInPrepareHeader         uintptr
   130  	waveInReset                 uintptr
   131  	waveInStart                 uintptr
   132  	waveInStop                  uintptr
   133  	waveInUnprepareHeader       uintptr
   134  	waveOutBreakLoop            uintptr
   135  	waveOutClose                uintptr
   136  	waveOutGetDevCaps           uintptr
   137  	waveOutGetErrorText         uintptr
   138  	waveOutGetID                uintptr
   139  	waveOutGetNumDevs           uintptr
   140  	waveOutGetPitch             uintptr
   141  	waveOutGetPlaybackRate      uintptr
   142  	waveOutGetPosition          uintptr
   143  	waveOutGetVolume            uintptr
   144  	waveOutMessage              uintptr
   145  	waveOutOpen                 uintptr
   146  	waveOutPause                uintptr
   147  	waveOutPrepareHeader        uintptr
   148  	waveOutReset                uintptr
   149  	waveOutRestart              uintptr
   150  	waveOutSetPitch             uintptr
   151  	waveOutSetPlaybackRate      uintptr
   152  	waveOutSetVolume            uintptr
   153  	waveOutUnprepareHeader      uintptr
   154  	waveOutWrite                uintptr
   155  	driverCallback              uintptr
   156  	joyConfigChanged            uintptr
   157  	mciDriverNotify             uintptr
   158  	mciDriverYield              uintptr
   159  	mciExecute                  uintptr
   160  	mciFreeCommandResource      uintptr
   161  	mciGetDriverData            uintptr
   162  	mciLoadCommandResource      uintptr
   163  	mciSetDriverData            uintptr
   164  	mmGetCurrentTask            uintptr
   165  	mmTaskBlock                 uintptr
   166  	mmTaskCreate                uintptr
   167  	mmTaskSignal                uintptr
   168  	mmTaskYield                 uintptr
   169  	mmsystemGetVersion          uintptr
   170  )
   171  
   172  func init() {
   173  	// Library
   174  	libwinmm = doLoadLibrary("winmm.dll")
   175  
   176  	// Functions
   177  	closeDriver = doGetProcAddress(libwinmm, "CloseDriver")
   178  	defDriverProc = doGetProcAddress(libwinmm, "DefDriverProc")
   179  	drvGetModuleHandle = doGetProcAddress(libwinmm, "DrvGetModuleHandle")
   180  	getDriverModuleHandle = doGetProcAddress(libwinmm, "GetDriverModuleHandle")
   181  	openDriver = doGetProcAddress(libwinmm, "OpenDriver")
   182  	playSound = doGetProcAddress(libwinmm, "PlaySoundW")
   183  	sendDriverMessage = doGetProcAddress(libwinmm, "SendDriverMessage")
   184  	auxGetDevCaps = doGetProcAddress(libwinmm, "auxGetDevCapsW")
   185  	auxGetNumDevs = doGetProcAddress(libwinmm, "auxGetNumDevs")
   186  	auxGetVolume = doGetProcAddress(libwinmm, "auxGetVolume")
   187  	auxOutMessage = doGetProcAddress(libwinmm, "auxOutMessage")
   188  	auxSetVolume = doGetProcAddress(libwinmm, "auxSetVolume")
   189  	joyGetDevCaps = doGetProcAddress(libwinmm, "joyGetDevCapsW")
   190  	joyGetNumDevs = doGetProcAddress(libwinmm, "joyGetNumDevs")
   191  	joyGetPos = doGetProcAddress(libwinmm, "joyGetPos")
   192  	joyGetPosEx = doGetProcAddress(libwinmm, "joyGetPosEx")
   193  	joyGetThreshold = doGetProcAddress(libwinmm, "joyGetThreshold")
   194  	joyReleaseCapture = doGetProcAddress(libwinmm, "joyReleaseCapture")
   195  	joySetCapture = doGetProcAddress(libwinmm, "joySetCapture")
   196  	joySetThreshold = doGetProcAddress(libwinmm, "joySetThreshold")
   197  	mciGetCreatorTask = doGetProcAddress(libwinmm, "mciGetCreatorTask")
   198  	mciGetDeviceIDFromElementID = doGetProcAddress(libwinmm, "mciGetDeviceIDFromElementIDW")
   199  	mciGetDeviceID = doGetProcAddress(libwinmm, "mciGetDeviceIDW")
   200  	mciGetErrorString = doGetProcAddress(libwinmm, "mciGetErrorStringW")
   201  	mciGetYieldProc = doGetProcAddress(libwinmm, "mciGetYieldProc")
   202  	mciSendCommand = doGetProcAddress(libwinmm, "mciSendCommandW")
   203  	mciSendString = doGetProcAddress(libwinmm, "mciSendStringW")
   204  	mciSetYieldProc = doGetProcAddress(libwinmm, "mciSetYieldProc")
   205  	midiConnect = doGetProcAddress(libwinmm, "midiConnect")
   206  	midiDisconnect = doGetProcAddress(libwinmm, "midiDisconnect")
   207  	midiInAddBuffer = doGetProcAddress(libwinmm, "midiInAddBuffer")
   208  	midiInClose = doGetProcAddress(libwinmm, "midiInClose")
   209  	midiInGetDevCaps = doGetProcAddress(libwinmm, "midiInGetDevCapsW")
   210  	midiInGetErrorText = doGetProcAddress(libwinmm, "midiInGetErrorTextW")
   211  	midiInGetID = doGetProcAddress(libwinmm, "midiInGetID")
   212  	midiInGetNumDevs = doGetProcAddress(libwinmm, "midiInGetNumDevs")
   213  	midiInMessage = doGetProcAddress(libwinmm, "midiInMessage")
   214  	midiInOpen = doGetProcAddress(libwinmm, "midiInOpen")
   215  	midiInPrepareHeader = doGetProcAddress(libwinmm, "midiInPrepareHeader")
   216  	midiInReset = doGetProcAddress(libwinmm, "midiInReset")
   217  	midiInStart = doGetProcAddress(libwinmm, "midiInStart")
   218  	midiInStop = doGetProcAddress(libwinmm, "midiInStop")
   219  	midiInUnprepareHeader = doGetProcAddress(libwinmm, "midiInUnprepareHeader")
   220  	midiOutCacheDrumPatches = doGetProcAddress(libwinmm, "midiOutCacheDrumPatches")
   221  	midiOutCachePatches = doGetProcAddress(libwinmm, "midiOutCachePatches")
   222  	midiOutClose = doGetProcAddress(libwinmm, "midiOutClose")
   223  	midiOutGetDevCaps = doGetProcAddress(libwinmm, "midiOutGetDevCapsW")
   224  	midiOutGetErrorText = doGetProcAddress(libwinmm, "midiOutGetErrorTextW")
   225  	midiOutGetID = doGetProcAddress(libwinmm, "midiOutGetID")
   226  	midiOutGetNumDevs = doGetProcAddress(libwinmm, "midiOutGetNumDevs")
   227  	midiOutGetVolume = doGetProcAddress(libwinmm, "midiOutGetVolume")
   228  	midiOutLongMsg = doGetProcAddress(libwinmm, "midiOutLongMsg")
   229  	midiOutMessage = doGetProcAddress(libwinmm, "midiOutMessage")
   230  	midiOutOpen = doGetProcAddress(libwinmm, "midiOutOpen")
   231  	midiOutPrepareHeader = doGetProcAddress(libwinmm, "midiOutPrepareHeader")
   232  	midiOutReset = doGetProcAddress(libwinmm, "midiOutReset")
   233  	midiOutSetVolume = doGetProcAddress(libwinmm, "midiOutSetVolume")
   234  	midiOutShortMsg = doGetProcAddress(libwinmm, "midiOutShortMsg")
   235  	midiOutUnprepareHeader = doGetProcAddress(libwinmm, "midiOutUnprepareHeader")
   236  	midiStreamClose = doGetProcAddress(libwinmm, "midiStreamClose")
   237  	midiStreamOpen = doGetProcAddress(libwinmm, "midiStreamOpen")
   238  	midiStreamOut = doGetProcAddress(libwinmm, "midiStreamOut")
   239  	midiStreamPause = doGetProcAddress(libwinmm, "midiStreamPause")
   240  	midiStreamPosition = doGetProcAddress(libwinmm, "midiStreamPosition")
   241  	midiStreamProperty = doGetProcAddress(libwinmm, "midiStreamProperty")
   242  	midiStreamRestart = doGetProcAddress(libwinmm, "midiStreamRestart")
   243  	midiStreamStop = doGetProcAddress(libwinmm, "midiStreamStop")
   244  	mixerClose = doGetProcAddress(libwinmm, "mixerClose")
   245  	mixerGetControlDetails = doGetProcAddress(libwinmm, "mixerGetControlDetailsW")
   246  	mixerGetDevCaps = doGetProcAddress(libwinmm, "mixerGetDevCapsW")
   247  	mixerGetID = doGetProcAddress(libwinmm, "mixerGetID")
   248  	mixerGetLineControls = doGetProcAddress(libwinmm, "mixerGetLineControlsW")
   249  	mixerGetLineInfo = doGetProcAddress(libwinmm, "mixerGetLineInfoW")
   250  	mixerGetNumDevs = doGetProcAddress(libwinmm, "mixerGetNumDevs")
   251  	mixerMessage = doGetProcAddress(libwinmm, "mixerMessage")
   252  	mixerOpen = doGetProcAddress(libwinmm, "mixerOpen")
   253  	mixerSetControlDetails = doGetProcAddress(libwinmm, "mixerSetControlDetails")
   254  	mmioAdvance = doGetProcAddress(libwinmm, "mmioAdvance")
   255  	mmioAscend = doGetProcAddress(libwinmm, "mmioAscend")
   256  	mmioClose = doGetProcAddress(libwinmm, "mmioClose")
   257  	mmioCreateChunk = doGetProcAddress(libwinmm, "mmioCreateChunk")
   258  	mmioDescend = doGetProcAddress(libwinmm, "mmioDescend")
   259  	mmioFlush = doGetProcAddress(libwinmm, "mmioFlush")
   260  	mmioGetInfo = doGetProcAddress(libwinmm, "mmioGetInfo")
   261  	mmioInstallIOProc = doGetProcAddress(libwinmm, "mmioInstallIOProcW")
   262  	mmioOpen = doGetProcAddress(libwinmm, "mmioOpenW")
   263  	mmioRead = doGetProcAddress(libwinmm, "mmioRead")
   264  	mmioRename = doGetProcAddress(libwinmm, "mmioRenameW")
   265  	mmioSeek = doGetProcAddress(libwinmm, "mmioSeek")
   266  	mmioSendMessage = doGetProcAddress(libwinmm, "mmioSendMessage")
   267  	mmioSetBuffer = doGetProcAddress(libwinmm, "mmioSetBuffer")
   268  	mmioSetInfo = doGetProcAddress(libwinmm, "mmioSetInfo")
   269  	mmioStringToFOURCC = doGetProcAddress(libwinmm, "mmioStringToFOURCCW")
   270  	mmioWrite = doGetProcAddress(libwinmm, "mmioWrite")
   271  	sndPlaySound = doGetProcAddress(libwinmm, "sndPlaySoundW")
   272  	timeBeginPeriod = doGetProcAddress(libwinmm, "timeBeginPeriod")
   273  	timeEndPeriod = doGetProcAddress(libwinmm, "timeEndPeriod")
   274  	timeGetDevCaps = doGetProcAddress(libwinmm, "timeGetDevCaps")
   275  	timeGetSystemTime = doGetProcAddress(libwinmm, "timeGetSystemTime")
   276  	timeGetTime = doGetProcAddress(libwinmm, "timeGetTime")
   277  	timeKillEvent = doGetProcAddress(libwinmm, "timeKillEvent")
   278  	timeSetEvent = doGetProcAddress(libwinmm, "timeSetEvent")
   279  	waveInAddBuffer = doGetProcAddress(libwinmm, "waveInAddBuffer")
   280  	waveInClose = doGetProcAddress(libwinmm, "waveInClose")
   281  	waveInGetDevCaps = doGetProcAddress(libwinmm, "waveInGetDevCapsW")
   282  	waveInGetErrorText = doGetProcAddress(libwinmm, "waveInGetErrorTextW")
   283  	waveInGetID = doGetProcAddress(libwinmm, "waveInGetID")
   284  	waveInGetNumDevs = doGetProcAddress(libwinmm, "waveInGetNumDevs")
   285  	waveInGetPosition = doGetProcAddress(libwinmm, "waveInGetPosition")
   286  	waveInMessage = doGetProcAddress(libwinmm, "waveInMessage")
   287  	waveInOpen = doGetProcAddress(libwinmm, "waveInOpen")
   288  	waveInPrepareHeader = doGetProcAddress(libwinmm, "waveInPrepareHeader")
   289  	waveInReset = doGetProcAddress(libwinmm, "waveInReset")
   290  	waveInStart = doGetProcAddress(libwinmm, "waveInStart")
   291  	waveInStop = doGetProcAddress(libwinmm, "waveInStop")
   292  	waveInUnprepareHeader = doGetProcAddress(libwinmm, "waveInUnprepareHeader")
   293  	waveOutBreakLoop = doGetProcAddress(libwinmm, "waveOutBreakLoop")
   294  	waveOutClose = doGetProcAddress(libwinmm, "waveOutClose")
   295  	waveOutGetDevCaps = doGetProcAddress(libwinmm, "waveOutGetDevCapsW")
   296  	waveOutGetErrorText = doGetProcAddress(libwinmm, "waveOutGetErrorTextW")
   297  	waveOutGetID = doGetProcAddress(libwinmm, "waveOutGetID")
   298  	waveOutGetNumDevs = doGetProcAddress(libwinmm, "waveOutGetNumDevs")
   299  	waveOutGetPitch = doGetProcAddress(libwinmm, "waveOutGetPitch")
   300  	waveOutGetPlaybackRate = doGetProcAddress(libwinmm, "waveOutGetPlaybackRate")
   301  	waveOutGetPosition = doGetProcAddress(libwinmm, "waveOutGetPosition")
   302  	waveOutGetVolume = doGetProcAddress(libwinmm, "waveOutGetVolume")
   303  	waveOutMessage = doGetProcAddress(libwinmm, "waveOutMessage")
   304  	waveOutOpen = doGetProcAddress(libwinmm, "waveOutOpen")
   305  	waveOutPause = doGetProcAddress(libwinmm, "waveOutPause")
   306  	waveOutPrepareHeader = doGetProcAddress(libwinmm, "waveOutPrepareHeader")
   307  	waveOutReset = doGetProcAddress(libwinmm, "waveOutReset")
   308  	waveOutRestart = doGetProcAddress(libwinmm, "waveOutRestart")
   309  	waveOutSetPitch = doGetProcAddress(libwinmm, "waveOutSetPitch")
   310  	waveOutSetPlaybackRate = doGetProcAddress(libwinmm, "waveOutSetPlaybackRate")
   311  	waveOutSetVolume = doGetProcAddress(libwinmm, "waveOutSetVolume")
   312  	waveOutUnprepareHeader = doGetProcAddress(libwinmm, "waveOutUnprepareHeader")
   313  	waveOutWrite = doGetProcAddress(libwinmm, "waveOutWrite")
   314  	driverCallback = doGetProcAddress(libwinmm, "DriverCallback")
   315  	joyConfigChanged = doGetProcAddress(libwinmm, "joyConfigChanged")
   316  	mciDriverNotify = doGetProcAddress(libwinmm, "mciDriverNotify")
   317  	mciDriverYield = doGetProcAddress(libwinmm, "mciDriverYield")
   318  	mciExecute = doGetProcAddress(libwinmm, "mciExecute")
   319  	mciFreeCommandResource = doGetProcAddress(libwinmm, "mciFreeCommandResource")
   320  	mciGetDriverData = doGetProcAddress(libwinmm, "mciGetDriverData")
   321  	mciLoadCommandResource = doGetProcAddress(libwinmm, "mciLoadCommandResource")
   322  	mciSetDriverData = doGetProcAddress(libwinmm, "mciSetDriverData")
   323  	mmGetCurrentTask = doGetProcAddress(libwinmm, "mmGetCurrentTask")
   324  	mmTaskBlock = doGetProcAddress(libwinmm, "mmTaskBlock")
   325  	mmTaskCreate = doGetProcAddress(libwinmm, "mmTaskCreate")
   326  	mmTaskSignal = doGetProcAddress(libwinmm, "mmTaskSignal")
   327  	mmTaskYield = doGetProcAddress(libwinmm, "mmTaskYield")
   328  	mmsystemGetVersion = doGetProcAddress(libwinmm, "mmsystemGetVersion")
   329  }
   330  
   331  func CloseDriver(hDriver HDRVR, lParam1 LPARAM, lParam2 LPARAM) LRESULT {
   332  	ret1 := syscall3(closeDriver, 3,
   333  		uintptr(hDriver),
   334  		uintptr(lParam1),
   335  		uintptr(lParam2))
   336  	return LRESULT(ret1)
   337  }
   338  
   339  func DefDriverProc(dwDriverIdentifier *uint32, hdrvr HDRVR, uMsg UINT, lParam1 LPARAM, lParam2 LPARAM) LRESULT {
   340  	ret1 := syscall6(defDriverProc, 5,
   341  		uintptr(unsafe.Pointer(dwDriverIdentifier)),
   342  		uintptr(hdrvr),
   343  		uintptr(uMsg),
   344  		uintptr(lParam1),
   345  		uintptr(lParam2),
   346  		0)
   347  	return LRESULT(ret1)
   348  }
   349  
   350  func DrvGetModuleHandle(hDriver HDRVR) HMODULE {
   351  	ret1 := syscall3(drvGetModuleHandle, 1,
   352  		uintptr(hDriver),
   353  		0,
   354  		0)
   355  	return HMODULE(ret1)
   356  }
   357  
   358  func GetDriverModuleHandle(hDriver HDRVR) HMODULE {
   359  	ret1 := syscall3(getDriverModuleHandle, 1,
   360  		uintptr(hDriver),
   361  		0,
   362  		0)
   363  	return HMODULE(ret1)
   364  }
   365  
   366  func OpenDriver(szDriverName string, szSectionName string, lParam2 LPARAM) HDRVR {
   367  	szDriverNameStr := unicode16FromString(szDriverName)
   368  	szSectionNameStr := unicode16FromString(szSectionName)
   369  	ret1 := syscall3(openDriver, 3,
   370  		uintptr(unsafe.Pointer(&szDriverNameStr[0])),
   371  		uintptr(unsafe.Pointer(&szSectionNameStr[0])),
   372  		uintptr(lParam2))
   373  	return HDRVR(ret1)
   374  }
   375  
   376  func PlaySound(pszSound string, hmod HMODULE, fdwSound DWORD) bool {
   377  	pszSoundStr := unicode16FromString(pszSound)
   378  	ret1 := syscall3(playSound, 3,
   379  		uintptr(unsafe.Pointer(&pszSoundStr[0])),
   380  		uintptr(hmod),
   381  		uintptr(fdwSound))
   382  	return ret1 != 0
   383  }
   384  
   385  func SendDriverMessage(hDriver HDRVR, message UINT, lParam1 LPARAM, lParam2 LPARAM) LRESULT {
   386  	ret1 := syscall6(sendDriverMessage, 4,
   387  		uintptr(hDriver),
   388  		uintptr(message),
   389  		uintptr(lParam1),
   390  		uintptr(lParam2),
   391  		0,
   392  		0)
   393  	return LRESULT(ret1)
   394  }
   395  
   396  func AuxGetDevCaps(uDeviceID *uint32, pac *AUXCAPS, cbac UINT) MMRESULT {
   397  	ret1 := syscall3(auxGetDevCaps, 3,
   398  		uintptr(unsafe.Pointer(uDeviceID)),
   399  		uintptr(unsafe.Pointer(pac)),
   400  		uintptr(cbac))
   401  	return MMRESULT(ret1)
   402  }
   403  
   404  func AuxGetNumDevs() UINT {
   405  	ret1 := syscall3(auxGetNumDevs, 0,
   406  		0,
   407  		0,
   408  		0)
   409  	return UINT(ret1)
   410  }
   411  
   412  func AuxGetVolume(uDeviceID UINT, pdwVolume *uint32) MMRESULT {
   413  	ret1 := syscall3(auxGetVolume, 2,
   414  		uintptr(uDeviceID),
   415  		uintptr(unsafe.Pointer(pdwVolume)),
   416  		0)
   417  	return MMRESULT(ret1)
   418  }
   419  
   420  func AuxOutMessage(uDeviceID UINT, uMsg UINT, dw1 *uint32, dw2 *uint32) MMRESULT {
   421  	ret1 := syscall6(auxOutMessage, 4,
   422  		uintptr(uDeviceID),
   423  		uintptr(uMsg),
   424  		uintptr(unsafe.Pointer(dw1)),
   425  		uintptr(unsafe.Pointer(dw2)),
   426  		0,
   427  		0)
   428  	return MMRESULT(ret1)
   429  }
   430  
   431  func AuxSetVolume(uDeviceID UINT, dwVolume DWORD) MMRESULT {
   432  	ret1 := syscall3(auxSetVolume, 2,
   433  		uintptr(uDeviceID),
   434  		uintptr(dwVolume),
   435  		0)
   436  	return MMRESULT(ret1)
   437  }
   438  
   439  func JoyGetDevCaps(uJoyID *uint32, pjc LPJOYCAPS, cbjc UINT) MMRESULT {
   440  	ret1 := syscall3(joyGetDevCaps, 3,
   441  		uintptr(unsafe.Pointer(uJoyID)),
   442  		uintptr(unsafe.Pointer(pjc)),
   443  		uintptr(cbjc))
   444  	return MMRESULT(ret1)
   445  }
   446  
   447  func JoyGetNumDevs() UINT {
   448  	ret1 := syscall3(joyGetNumDevs, 0,
   449  		0,
   450  		0,
   451  		0)
   452  	return UINT(ret1)
   453  }
   454  
   455  func JoyGetPos(uJoyID UINT, pji LPJOYINFO) MMRESULT {
   456  	ret1 := syscall3(joyGetPos, 2,
   457  		uintptr(uJoyID),
   458  		uintptr(unsafe.Pointer(pji)),
   459  		0)
   460  	return MMRESULT(ret1)
   461  }
   462  
   463  func JoyGetPosEx(uJoyID UINT, pji *JOYINFOEX) MMRESULT {
   464  	ret1 := syscall3(joyGetPosEx, 2,
   465  		uintptr(uJoyID),
   466  		uintptr(unsafe.Pointer(pji)),
   467  		0)
   468  	return MMRESULT(ret1)
   469  }
   470  
   471  func JoyGetThreshold(uJoyID UINT, puThreshold *UINT) MMRESULT {
   472  	ret1 := syscall3(joyGetThreshold, 2,
   473  		uintptr(uJoyID),
   474  		uintptr(unsafe.Pointer(puThreshold)),
   475  		0)
   476  	return MMRESULT(ret1)
   477  }
   478  
   479  func JoyReleaseCapture(uJoyID UINT) MMRESULT {
   480  	ret1 := syscall3(joyReleaseCapture, 1,
   481  		uintptr(uJoyID),
   482  		0,
   483  		0)
   484  	return MMRESULT(ret1)
   485  }
   486  
   487  func JoySetCapture(hwnd HWND, uJoyID UINT, uPeriod UINT, fChanged bool) MMRESULT {
   488  	ret1 := syscall6(joySetCapture, 4,
   489  		uintptr(hwnd),
   490  		uintptr(uJoyID),
   491  		uintptr(uPeriod),
   492  		getUintptrFromBool(fChanged),
   493  		0,
   494  		0)
   495  	return MMRESULT(ret1)
   496  }
   497  
   498  func JoySetThreshold(uJoyID UINT, uThreshold UINT) MMRESULT {
   499  	ret1 := syscall3(joySetThreshold, 2,
   500  		uintptr(uJoyID),
   501  		uintptr(uThreshold),
   502  		0)
   503  	return MMRESULT(ret1)
   504  }
   505  
   506  func MciGetCreatorTask(mciId MCIDEVICEID) HTASK {
   507  	ret1 := syscall3(mciGetCreatorTask, 1,
   508  		uintptr(mciId),
   509  		0,
   510  		0)
   511  	return HTASK(ret1)
   512  }
   513  
   514  func MciGetDeviceIDFromElementID(dwElementID DWORD, lpstrType string) MCIDEVICEID {
   515  	lpstrTypeStr := unicode16FromString(lpstrType)
   516  	ret1 := syscall3(mciGetDeviceIDFromElementID, 2,
   517  		uintptr(dwElementID),
   518  		uintptr(unsafe.Pointer(&lpstrTypeStr[0])),
   519  		0)
   520  	return MCIDEVICEID(ret1)
   521  }
   522  
   523  func MciGetDeviceID(pszDevice string) MCIDEVICEID {
   524  	pszDeviceStr := unicode16FromString(pszDevice)
   525  	ret1 := syscall3(mciGetDeviceID, 1,
   526  		uintptr(unsafe.Pointer(&pszDeviceStr[0])),
   527  		0,
   528  		0)
   529  	return MCIDEVICEID(ret1)
   530  }
   531  
   532  func MciGetErrorString(mcierr MCIERROR, pszText LPWSTR, cchText UINT) bool {
   533  	ret1 := syscall3(mciGetErrorString, 3,
   534  		uintptr(mcierr),
   535  		uintptr(unsafe.Pointer(pszText)),
   536  		uintptr(cchText))
   537  	return ret1 != 0
   538  }
   539  
   540  func MciGetYieldProc(mciId MCIDEVICEID, pdwYieldData *uint32) YIELDPROC {
   541  	ret1 := syscall3(mciGetYieldProc, 2,
   542  		uintptr(mciId),
   543  		uintptr(unsafe.Pointer(pdwYieldData)),
   544  		0)
   545  	return func(mciId MCIDEVICEID, dwYieldData DWORD) UINT {
   546  		ret2 := syscall3(ret1, 2,
   547  			uintptr(mciId),
   548  			uintptr(dwYieldData),
   549  			0)
   550  		return UINT(ret2)
   551  	}
   552  }
   553  
   554  func MciSendCommand(mciId MCIDEVICEID, uMsg UINT, dwParam1 *uint32, dwParam2 *uint32) MCIERROR {
   555  	ret1 := syscall6(mciSendCommand, 4,
   556  		uintptr(mciId),
   557  		uintptr(uMsg),
   558  		uintptr(unsafe.Pointer(dwParam1)),
   559  		uintptr(unsafe.Pointer(dwParam2)),
   560  		0,
   561  		0)
   562  	return MCIERROR(ret1)
   563  }
   564  
   565  func MciSendString(lpstrCommand string, lpstrReturnString LPWSTR, uReturnLength UINT, hwndCallback HWND) MCIERROR {
   566  	lpstrCommandStr := unicode16FromString(lpstrCommand)
   567  	ret1 := syscall6(mciSendString, 4,
   568  		uintptr(unsafe.Pointer(&lpstrCommandStr[0])),
   569  		uintptr(unsafe.Pointer(lpstrReturnString)),
   570  		uintptr(uReturnLength),
   571  		uintptr(hwndCallback),
   572  		0,
   573  		0)
   574  	return MCIERROR(ret1)
   575  }
   576  
   577  func MciSetYieldProc(mciId MCIDEVICEID, fpYieldProc YIELDPROC, dwYieldData DWORD) bool {
   578  	fpYieldProcCallback := syscall.NewCallback(func(mciIdRawArg MCIDEVICEID, dwYieldDataRawArg DWORD) uintptr {
   579  		ret := fpYieldProc(mciIdRawArg, dwYieldDataRawArg)
   580  		return uintptr(ret)
   581  	})
   582  	ret1 := syscall3(mciSetYieldProc, 3,
   583  		uintptr(mciId),
   584  		fpYieldProcCallback,
   585  		uintptr(dwYieldData))
   586  	return ret1 != 0
   587  }
   588  
   589  func MidiConnect(hmi HMIDI, hmo HMIDIOUT, pReserved LPVOID) MMRESULT {
   590  	ret1 := syscall3(midiConnect, 3,
   591  		uintptr(hmi),
   592  		uintptr(hmo),
   593  		uintptr(unsafe.Pointer(pReserved)))
   594  	return MMRESULT(ret1)
   595  }
   596  
   597  func MidiDisconnect(hmi HMIDI, hmo HMIDIOUT, pReserved LPVOID) MMRESULT {
   598  	ret1 := syscall3(midiDisconnect, 3,
   599  		uintptr(hmi),
   600  		uintptr(hmo),
   601  		uintptr(unsafe.Pointer(pReserved)))
   602  	return MMRESULT(ret1)
   603  }
   604  
   605  func MidiInAddBuffer(hmi HMIDIIN, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   606  	ret1 := syscall3(midiInAddBuffer, 3,
   607  		uintptr(hmi),
   608  		uintptr(unsafe.Pointer(pmh)),
   609  		uintptr(cbmh))
   610  	return MMRESULT(ret1)
   611  }
   612  
   613  func MidiInClose(hmi HMIDIIN) MMRESULT {
   614  	ret1 := syscall3(midiInClose, 1,
   615  		uintptr(hmi),
   616  		0,
   617  		0)
   618  	return MMRESULT(ret1)
   619  }
   620  
   621  func MidiInGetDevCaps(uDeviceID *uint32, pmic *MIDIINCAPS, cbmic UINT) MMRESULT {
   622  	ret1 := syscall3(midiInGetDevCaps, 3,
   623  		uintptr(unsafe.Pointer(uDeviceID)),
   624  		uintptr(unsafe.Pointer(pmic)),
   625  		uintptr(cbmic))
   626  	return MMRESULT(ret1)
   627  }
   628  
   629  func MidiInGetErrorText(mmrError MMRESULT, pszText LPWSTR, cchText UINT) MMRESULT {
   630  	ret1 := syscall3(midiInGetErrorText, 3,
   631  		uintptr(mmrError),
   632  		uintptr(unsafe.Pointer(pszText)),
   633  		uintptr(cchText))
   634  	return MMRESULT(ret1)
   635  }
   636  
   637  func MidiInGetID(hmi HMIDIIN, puDeviceID *UINT) MMRESULT {
   638  	ret1 := syscall3(midiInGetID, 2,
   639  		uintptr(hmi),
   640  		uintptr(unsafe.Pointer(puDeviceID)),
   641  		0)
   642  	return MMRESULT(ret1)
   643  }
   644  
   645  func MidiInGetNumDevs() UINT {
   646  	ret1 := syscall3(midiInGetNumDevs, 0,
   647  		0,
   648  		0,
   649  		0)
   650  	return UINT(ret1)
   651  }
   652  
   653  func MidiInMessage(hmi HMIDIIN, uMsg UINT, dw1 *uint32, dw2 *uint32) MMRESULT {
   654  	ret1 := syscall6(midiInMessage, 4,
   655  		uintptr(hmi),
   656  		uintptr(uMsg),
   657  		uintptr(unsafe.Pointer(dw1)),
   658  		uintptr(unsafe.Pointer(dw2)),
   659  		0,
   660  		0)
   661  	return MMRESULT(ret1)
   662  }
   663  
   664  func MidiInOpen(phmi *HMIDIIN, uDeviceID UINT, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
   665  	ret1 := syscall6(midiInOpen, 5,
   666  		uintptr(unsafe.Pointer(phmi)),
   667  		uintptr(uDeviceID),
   668  		uintptr(unsafe.Pointer(dwCallback)),
   669  		uintptr(unsafe.Pointer(dwInstance)),
   670  		uintptr(fdwOpen),
   671  		0)
   672  	return MMRESULT(ret1)
   673  }
   674  
   675  func MidiInPrepareHeader(hmi HMIDIIN, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   676  	ret1 := syscall3(midiInPrepareHeader, 3,
   677  		uintptr(hmi),
   678  		uintptr(unsafe.Pointer(pmh)),
   679  		uintptr(cbmh))
   680  	return MMRESULT(ret1)
   681  }
   682  
   683  func MidiInReset(hmi HMIDIIN) MMRESULT {
   684  	ret1 := syscall3(midiInReset, 1,
   685  		uintptr(hmi),
   686  		0,
   687  		0)
   688  	return MMRESULT(ret1)
   689  }
   690  
   691  func MidiInStart(hmi HMIDIIN) MMRESULT {
   692  	ret1 := syscall3(midiInStart, 1,
   693  		uintptr(hmi),
   694  		0,
   695  		0)
   696  	return MMRESULT(ret1)
   697  }
   698  
   699  func MidiInStop(hmi HMIDIIN) MMRESULT {
   700  	ret1 := syscall3(midiInStop, 1,
   701  		uintptr(hmi),
   702  		0,
   703  		0)
   704  	return MMRESULT(ret1)
   705  }
   706  
   707  func MidiInUnprepareHeader(hmi HMIDIIN, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   708  	ret1 := syscall3(midiInUnprepareHeader, 3,
   709  		uintptr(hmi),
   710  		uintptr(unsafe.Pointer(pmh)),
   711  		uintptr(cbmh))
   712  	return MMRESULT(ret1)
   713  }
   714  
   715  func MidiOutCacheDrumPatches(hmo HMIDIOUT, uPatch UINT, pwkya *uint16, fuCache UINT) MMRESULT {
   716  	ret1 := syscall6(midiOutCacheDrumPatches, 4,
   717  		uintptr(hmo),
   718  		uintptr(uPatch),
   719  		uintptr(unsafe.Pointer(pwkya)),
   720  		uintptr(fuCache),
   721  		0,
   722  		0)
   723  	return MMRESULT(ret1)
   724  }
   725  
   726  func MidiOutCachePatches(hmo HMIDIOUT, uBank UINT, pwpa *uint16, fuCache UINT) MMRESULT {
   727  	ret1 := syscall6(midiOutCachePatches, 4,
   728  		uintptr(hmo),
   729  		uintptr(uBank),
   730  		uintptr(unsafe.Pointer(pwpa)),
   731  		uintptr(fuCache),
   732  		0,
   733  		0)
   734  	return MMRESULT(ret1)
   735  }
   736  
   737  func MidiOutClose(hmo HMIDIOUT) MMRESULT {
   738  	ret1 := syscall3(midiOutClose, 1,
   739  		uintptr(hmo),
   740  		0,
   741  		0)
   742  	return MMRESULT(ret1)
   743  }
   744  
   745  func MidiOutGetDevCaps(uDeviceID *uint32, pmoc LPMIDIOUTCAPS, cbmoc UINT) MMRESULT {
   746  	ret1 := syscall3(midiOutGetDevCaps, 3,
   747  		uintptr(unsafe.Pointer(uDeviceID)),
   748  		uintptr(unsafe.Pointer(pmoc)),
   749  		uintptr(cbmoc))
   750  	return MMRESULT(ret1)
   751  }
   752  
   753  func MidiOutGetErrorText(mmrError MMRESULT, pszText LPWSTR, cchText UINT) MMRESULT {
   754  	ret1 := syscall3(midiOutGetErrorText, 3,
   755  		uintptr(mmrError),
   756  		uintptr(unsafe.Pointer(pszText)),
   757  		uintptr(cchText))
   758  	return MMRESULT(ret1)
   759  }
   760  
   761  func MidiOutGetID(hmo HMIDIOUT, puDeviceID *UINT) MMRESULT {
   762  	ret1 := syscall3(midiOutGetID, 2,
   763  		uintptr(hmo),
   764  		uintptr(unsafe.Pointer(puDeviceID)),
   765  		0)
   766  	return MMRESULT(ret1)
   767  }
   768  
   769  func MidiOutGetNumDevs() UINT {
   770  	ret1 := syscall3(midiOutGetNumDevs, 0,
   771  		0,
   772  		0,
   773  		0)
   774  	return UINT(ret1)
   775  }
   776  
   777  func MidiOutGetVolume(hmo HMIDIOUT, pdwVolume *uint32) MMRESULT {
   778  	ret1 := syscall3(midiOutGetVolume, 2,
   779  		uintptr(hmo),
   780  		uintptr(unsafe.Pointer(pdwVolume)),
   781  		0)
   782  	return MMRESULT(ret1)
   783  }
   784  
   785  func MidiOutLongMsg(hmo HMIDIOUT, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   786  	ret1 := syscall3(midiOutLongMsg, 3,
   787  		uintptr(hmo),
   788  		uintptr(unsafe.Pointer(pmh)),
   789  		uintptr(cbmh))
   790  	return MMRESULT(ret1)
   791  }
   792  
   793  func MidiOutMessage(hmo HMIDIOUT, uMsg UINT, dw1 *uint32, dw2 *uint32) MMRESULT {
   794  	ret1 := syscall6(midiOutMessage, 4,
   795  		uintptr(hmo),
   796  		uintptr(uMsg),
   797  		uintptr(unsafe.Pointer(dw1)),
   798  		uintptr(unsafe.Pointer(dw2)),
   799  		0,
   800  		0)
   801  	return MMRESULT(ret1)
   802  }
   803  
   804  func MidiOutOpen(phmo *HMIDIOUT, uDeviceID UINT, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
   805  	ret1 := syscall6(midiOutOpen, 5,
   806  		uintptr(unsafe.Pointer(phmo)),
   807  		uintptr(uDeviceID),
   808  		uintptr(unsafe.Pointer(dwCallback)),
   809  		uintptr(unsafe.Pointer(dwInstance)),
   810  		uintptr(fdwOpen),
   811  		0)
   812  	return MMRESULT(ret1)
   813  }
   814  
   815  func MidiOutPrepareHeader(hmo HMIDIOUT, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   816  	ret1 := syscall3(midiOutPrepareHeader, 3,
   817  		uintptr(hmo),
   818  		uintptr(unsafe.Pointer(pmh)),
   819  		uintptr(cbmh))
   820  	return MMRESULT(ret1)
   821  }
   822  
   823  func MidiOutReset(hmo HMIDIOUT) MMRESULT {
   824  	ret1 := syscall3(midiOutReset, 1,
   825  		uintptr(hmo),
   826  		0,
   827  		0)
   828  	return MMRESULT(ret1)
   829  }
   830  
   831  func MidiOutSetVolume(hmo HMIDIOUT, dwVolume DWORD) MMRESULT {
   832  	ret1 := syscall3(midiOutSetVolume, 2,
   833  		uintptr(hmo),
   834  		uintptr(dwVolume),
   835  		0)
   836  	return MMRESULT(ret1)
   837  }
   838  
   839  func MidiOutShortMsg(hmo HMIDIOUT, dwMsg DWORD) MMRESULT {
   840  	ret1 := syscall3(midiOutShortMsg, 2,
   841  		uintptr(hmo),
   842  		uintptr(dwMsg),
   843  		0)
   844  	return MMRESULT(ret1)
   845  }
   846  
   847  func MidiOutUnprepareHeader(hmo HMIDIOUT, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   848  	ret1 := syscall3(midiOutUnprepareHeader, 3,
   849  		uintptr(hmo),
   850  		uintptr(unsafe.Pointer(pmh)),
   851  		uintptr(cbmh))
   852  	return MMRESULT(ret1)
   853  }
   854  
   855  func MidiStreamClose(hms HMIDISTRM) MMRESULT {
   856  	ret1 := syscall3(midiStreamClose, 1,
   857  		uintptr(hms),
   858  		0,
   859  		0)
   860  	return MMRESULT(ret1)
   861  }
   862  
   863  func MidiStreamOpen(phms *HMIDISTRM, puDeviceID *UINT, cMidi DWORD, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
   864  	ret1 := syscall6(midiStreamOpen, 6,
   865  		uintptr(unsafe.Pointer(phms)),
   866  		uintptr(unsafe.Pointer(puDeviceID)),
   867  		uintptr(cMidi),
   868  		uintptr(unsafe.Pointer(dwCallback)),
   869  		uintptr(unsafe.Pointer(dwInstance)),
   870  		uintptr(fdwOpen))
   871  	return MMRESULT(ret1)
   872  }
   873  
   874  func MidiStreamOut(hms HMIDISTRM, pmh *MIDIHDR, cbmh UINT) MMRESULT {
   875  	ret1 := syscall3(midiStreamOut, 3,
   876  		uintptr(hms),
   877  		uintptr(unsafe.Pointer(pmh)),
   878  		uintptr(cbmh))
   879  	return MMRESULT(ret1)
   880  }
   881  
   882  func MidiStreamPause(hms HMIDISTRM) MMRESULT {
   883  	ret1 := syscall3(midiStreamPause, 1,
   884  		uintptr(hms),
   885  		0,
   886  		0)
   887  	return MMRESULT(ret1)
   888  }
   889  
   890  func MidiStreamPosition(hms HMIDISTRM, lpmmt *MMTIME, cbmmt UINT) MMRESULT {
   891  	ret1 := syscall3(midiStreamPosition, 3,
   892  		uintptr(hms),
   893  		uintptr(unsafe.Pointer(lpmmt)),
   894  		uintptr(cbmmt))
   895  	return MMRESULT(ret1)
   896  }
   897  
   898  func MidiStreamProperty(hms HMIDISTRM, lppropdata *byte, dwProperty DWORD) MMRESULT {
   899  	ret1 := syscall3(midiStreamProperty, 3,
   900  		uintptr(hms),
   901  		uintptr(unsafe.Pointer(lppropdata)),
   902  		uintptr(dwProperty))
   903  	return MMRESULT(ret1)
   904  }
   905  
   906  func MidiStreamRestart(hms HMIDISTRM) MMRESULT {
   907  	ret1 := syscall3(midiStreamRestart, 1,
   908  		uintptr(hms),
   909  		0,
   910  		0)
   911  	return MMRESULT(ret1)
   912  }
   913  
   914  func MidiStreamStop(hms HMIDISTRM) MMRESULT {
   915  	ret1 := syscall3(midiStreamStop, 1,
   916  		uintptr(hms),
   917  		0,
   918  		0)
   919  	return MMRESULT(ret1)
   920  }
   921  
   922  func MixerClose(hmx HMIXER) MMRESULT {
   923  	ret1 := syscall3(mixerClose, 1,
   924  		uintptr(hmx),
   925  		0,
   926  		0)
   927  	return MMRESULT(ret1)
   928  }
   929  
   930  func MixerGetControlDetails(hmxobj HMIXEROBJ, pmxcd *MIXERCONTROLDETAILS, fdwDetails DWORD) MMRESULT {
   931  	ret1 := syscall3(mixerGetControlDetails, 3,
   932  		uintptr(hmxobj),
   933  		uintptr(unsafe.Pointer(pmxcd)),
   934  		uintptr(fdwDetails))
   935  	return MMRESULT(ret1)
   936  }
   937  
   938  func MixerGetDevCaps(uMxId *uint32, pmxcaps LPMIXERCAPS, cbmxcaps UINT) MMRESULT {
   939  	ret1 := syscall3(mixerGetDevCaps, 3,
   940  		uintptr(unsafe.Pointer(uMxId)),
   941  		uintptr(unsafe.Pointer(pmxcaps)),
   942  		uintptr(cbmxcaps))
   943  	return MMRESULT(ret1)
   944  }
   945  
   946  func MixerGetID(hmxobj HMIXEROBJ, puMxId *UINT, fdwId DWORD) MMRESULT {
   947  	ret1 := syscall3(mixerGetID, 3,
   948  		uintptr(hmxobj),
   949  		uintptr(unsafe.Pointer(puMxId)),
   950  		uintptr(fdwId))
   951  	return MMRESULT(ret1)
   952  }
   953  
   954  func MixerGetLineControls(hmxobj HMIXEROBJ, pmxlc LPMIXERLINECONTROLS, fdwControls DWORD) MMRESULT {
   955  	ret1 := syscall3(mixerGetLineControls, 3,
   956  		uintptr(hmxobj),
   957  		uintptr(unsafe.Pointer(pmxlc)),
   958  		uintptr(fdwControls))
   959  	return MMRESULT(ret1)
   960  }
   961  
   962  func MixerGetLineInfo(hmxobj HMIXEROBJ, pmxl LPMIXERLINE, fdwInfo DWORD) MMRESULT {
   963  	ret1 := syscall3(mixerGetLineInfo, 3,
   964  		uintptr(hmxobj),
   965  		uintptr(unsafe.Pointer(pmxl)),
   966  		uintptr(fdwInfo))
   967  	return MMRESULT(ret1)
   968  }
   969  
   970  func MixerGetNumDevs() UINT {
   971  	ret1 := syscall3(mixerGetNumDevs, 0,
   972  		0,
   973  		0,
   974  		0)
   975  	return UINT(ret1)
   976  }
   977  
   978  func MixerMessage(hmx HMIXER, uMsg UINT, dwParam1 *uint32, dwParam2 *uint32) DWORD {
   979  	ret1 := syscall6(mixerMessage, 4,
   980  		uintptr(hmx),
   981  		uintptr(uMsg),
   982  		uintptr(unsafe.Pointer(dwParam1)),
   983  		uintptr(unsafe.Pointer(dwParam2)),
   984  		0,
   985  		0)
   986  	return DWORD(ret1)
   987  }
   988  
   989  func MixerOpen(phmx *HMIXER, uMxId UINT, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
   990  	ret1 := syscall6(mixerOpen, 5,
   991  		uintptr(unsafe.Pointer(phmx)),
   992  		uintptr(uMxId),
   993  		uintptr(unsafe.Pointer(dwCallback)),
   994  		uintptr(unsafe.Pointer(dwInstance)),
   995  		uintptr(fdwOpen),
   996  		0)
   997  	return MMRESULT(ret1)
   998  }
   999  
  1000  func MixerSetControlDetails(hmxobj HMIXEROBJ, pmxcd *MIXERCONTROLDETAILS, fdwDetails DWORD) MMRESULT {
  1001  	ret1 := syscall3(mixerSetControlDetails, 3,
  1002  		uintptr(hmxobj),
  1003  		uintptr(unsafe.Pointer(pmxcd)),
  1004  		uintptr(fdwDetails))
  1005  	return MMRESULT(ret1)
  1006  }
  1007  
  1008  func MmioAdvance(hmmio HMMIO, pmmioinfo LPMMIOINFO, fuAdvance UINT) MMRESULT {
  1009  	ret1 := syscall3(mmioAdvance, 3,
  1010  		uintptr(hmmio),
  1011  		uintptr(unsafe.Pointer(pmmioinfo)),
  1012  		uintptr(fuAdvance))
  1013  	return MMRESULT(ret1)
  1014  }
  1015  
  1016  func MmioAscend(hmmio HMMIO, pmmcki LPMMCKINFO, fuAscend UINT) MMRESULT {
  1017  	ret1 := syscall3(mmioAscend, 3,
  1018  		uintptr(hmmio),
  1019  		uintptr(unsafe.Pointer(pmmcki)),
  1020  		uintptr(fuAscend))
  1021  	return MMRESULT(ret1)
  1022  }
  1023  
  1024  func MmioClose(hmmio HMMIO, fuClose UINT) MMRESULT {
  1025  	ret1 := syscall3(mmioClose, 2,
  1026  		uintptr(hmmio),
  1027  		uintptr(fuClose),
  1028  		0)
  1029  	return MMRESULT(ret1)
  1030  }
  1031  
  1032  func MmioCreateChunk(hmmio HMMIO, pmmcki LPMMCKINFO, fuCreate UINT) MMRESULT {
  1033  	ret1 := syscall3(mmioCreateChunk, 3,
  1034  		uintptr(hmmio),
  1035  		uintptr(unsafe.Pointer(pmmcki)),
  1036  		uintptr(fuCreate))
  1037  	return MMRESULT(ret1)
  1038  }
  1039  
  1040  func MmioDescend(hmmio HMMIO, pmmcki LPMMCKINFO, pmmckiParent /*const*/ *MMCKINFO, fuDescend UINT) MMRESULT {
  1041  	ret1 := syscall6(mmioDescend, 4,
  1042  		uintptr(hmmio),
  1043  		uintptr(unsafe.Pointer(pmmcki)),
  1044  		uintptr(unsafe.Pointer(pmmckiParent)),
  1045  		uintptr(fuDescend),
  1046  		0,
  1047  		0)
  1048  	return MMRESULT(ret1)
  1049  }
  1050  
  1051  func MmioFlush(hmmio HMMIO, fuFlush UINT) MMRESULT {
  1052  	ret1 := syscall3(mmioFlush, 2,
  1053  		uintptr(hmmio),
  1054  		uintptr(fuFlush),
  1055  		0)
  1056  	return MMRESULT(ret1)
  1057  }
  1058  
  1059  func MmioGetInfo(hmmio HMMIO, pmmioinfo LPMMIOINFO, fuInfo UINT) MMRESULT {
  1060  	ret1 := syscall3(mmioGetInfo, 3,
  1061  		uintptr(hmmio),
  1062  		uintptr(unsafe.Pointer(pmmioinfo)),
  1063  		uintptr(fuInfo))
  1064  	return MMRESULT(ret1)
  1065  }
  1066  
  1067  func MmioInstallIOProc(fccIOProc FOURCC, pIOProc *MMIOPROC, dwFlags DWORD) *MMIOPROC {
  1068  	ret1 := syscall3(mmioInstallIOProc, 3,
  1069  		uintptr(fccIOProc),
  1070  		uintptr(unsafe.Pointer(pIOProc)),
  1071  		uintptr(dwFlags))
  1072  	return (*MMIOPROC)(unsafe.Pointer(ret1))
  1073  }
  1074  
  1075  func MmioOpen(pszFileName LPWSTR, pmmioinfo LPMMIOINFO, fdwOpen DWORD) HMMIO {
  1076  	ret1 := syscall3(mmioOpen, 3,
  1077  		uintptr(unsafe.Pointer(pszFileName)),
  1078  		uintptr(unsafe.Pointer(pmmioinfo)),
  1079  		uintptr(fdwOpen))
  1080  	return HMMIO(ret1)
  1081  }
  1082  
  1083  func MmioRead(hmmio HMMIO, pch HPSTR, cch LONG) LONG {
  1084  	ret1 := syscall3(mmioRead, 3,
  1085  		uintptr(hmmio),
  1086  		uintptr(unsafe.Pointer(pch)),
  1087  		uintptr(cch))
  1088  	return LONG(ret1)
  1089  }
  1090  
  1091  func MmioRename(pszFileName string, pszNewFileName string, pmmioinfo /*const*/ *MMIOINFO, fdwRename DWORD) MMRESULT {
  1092  	pszFileNameStr := unicode16FromString(pszFileName)
  1093  	pszNewFileNameStr := unicode16FromString(pszNewFileName)
  1094  	ret1 := syscall6(mmioRename, 4,
  1095  		uintptr(unsafe.Pointer(&pszFileNameStr[0])),
  1096  		uintptr(unsafe.Pointer(&pszNewFileNameStr[0])),
  1097  		uintptr(unsafe.Pointer(pmmioinfo)),
  1098  		uintptr(fdwRename),
  1099  		0,
  1100  		0)
  1101  	return MMRESULT(ret1)
  1102  }
  1103  
  1104  func MmioSeek(hmmio HMMIO, lOffset LONG, iOrigin int32) LONG {
  1105  	ret1 := syscall3(mmioSeek, 3,
  1106  		uintptr(hmmio),
  1107  		uintptr(lOffset),
  1108  		uintptr(iOrigin))
  1109  	return LONG(ret1)
  1110  }
  1111  
  1112  func MmioSendMessage(hmmio HMMIO, uMsg UINT, lParam1 LPARAM, lParam2 LPARAM) LRESULT {
  1113  	ret1 := syscall6(mmioSendMessage, 4,
  1114  		uintptr(hmmio),
  1115  		uintptr(uMsg),
  1116  		uintptr(lParam1),
  1117  		uintptr(lParam2),
  1118  		0,
  1119  		0)
  1120  	return LRESULT(ret1)
  1121  }
  1122  
  1123  func MmioSetBuffer(hmmio HMMIO, pchBuffer LPSTR, cchBuffer LONG, fuBuffer UINT) MMRESULT {
  1124  	ret1 := syscall6(mmioSetBuffer, 4,
  1125  		uintptr(hmmio),
  1126  		uintptr(unsafe.Pointer(pchBuffer)),
  1127  		uintptr(cchBuffer),
  1128  		uintptr(fuBuffer),
  1129  		0,
  1130  		0)
  1131  	return MMRESULT(ret1)
  1132  }
  1133  
  1134  func MmioSetInfo(hmmio HMMIO, pmmioinfo /*const*/ *MMIOINFO, fuInfo UINT) MMRESULT {
  1135  	ret1 := syscall3(mmioSetInfo, 3,
  1136  		uintptr(hmmio),
  1137  		uintptr(unsafe.Pointer(pmmioinfo)),
  1138  		uintptr(fuInfo))
  1139  	return MMRESULT(ret1)
  1140  }
  1141  
  1142  func MmioStringToFOURCC(sz string, uFlags UINT) FOURCC {
  1143  	szStr := unicode16FromString(sz)
  1144  	ret1 := syscall3(mmioStringToFOURCC, 2,
  1145  		uintptr(unsafe.Pointer(&szStr[0])),
  1146  		uintptr(uFlags),
  1147  		0)
  1148  	return FOURCC(ret1)
  1149  }
  1150  
  1151  func MmioWrite(hmmio HMMIO, pch /*const*/ HPSTR, cch LONG) LONG {
  1152  	ret1 := syscall3(mmioWrite, 3,
  1153  		uintptr(hmmio),
  1154  		uintptr(unsafe.Pointer(pch)),
  1155  		uintptr(cch))
  1156  	return LONG(ret1)
  1157  }
  1158  
  1159  func SndPlaySound(pszSound string, fuSound UINT) bool {
  1160  	pszSoundStr := unicode16FromString(pszSound)
  1161  	ret1 := syscall3(sndPlaySound, 2,
  1162  		uintptr(unsafe.Pointer(&pszSoundStr[0])),
  1163  		uintptr(fuSound),
  1164  		0)
  1165  	return ret1 != 0
  1166  }
  1167  
  1168  func TimeBeginPeriod(uPeriod UINT) MMRESULT {
  1169  	ret1 := syscall3(timeBeginPeriod, 1,
  1170  		uintptr(uPeriod),
  1171  		0,
  1172  		0)
  1173  	return MMRESULT(ret1)
  1174  }
  1175  
  1176  func TimeEndPeriod(uPeriod UINT) MMRESULT {
  1177  	ret1 := syscall3(timeEndPeriod, 1,
  1178  		uintptr(uPeriod),
  1179  		0,
  1180  		0)
  1181  	return MMRESULT(ret1)
  1182  }
  1183  
  1184  func TimeGetDevCaps(ptc LPTIMECAPS, cbtc UINT) MMRESULT {
  1185  	ret1 := syscall3(timeGetDevCaps, 2,
  1186  		uintptr(unsafe.Pointer(ptc)),
  1187  		uintptr(cbtc),
  1188  		0)
  1189  	return MMRESULT(ret1)
  1190  }
  1191  
  1192  func TimeGetSystemTime(pmmt *MMTIME, cbmmt UINT) MMRESULT {
  1193  	ret1 := syscall3(timeGetSystemTime, 2,
  1194  		uintptr(unsafe.Pointer(pmmt)),
  1195  		uintptr(cbmmt),
  1196  		0)
  1197  	return MMRESULT(ret1)
  1198  }
  1199  
  1200  func TimeGetTime() DWORD {
  1201  	ret1 := syscall3(timeGetTime, 0,
  1202  		0,
  1203  		0,
  1204  		0)
  1205  	return DWORD(ret1)
  1206  }
  1207  
  1208  func TimeKillEvent(uTimerID UINT) MMRESULT {
  1209  	ret1 := syscall3(timeKillEvent, 1,
  1210  		uintptr(uTimerID),
  1211  		0,
  1212  		0)
  1213  	return MMRESULT(ret1)
  1214  }
  1215  
  1216  func TimeSetEvent(uDelay UINT, uResolution UINT, fptc TIMECALLBACK, dwUser *uint32, fuEvent UINT) MMRESULT {
  1217  	fptcCallback := syscall.NewCallback(fptc)
  1218  	ret1 := syscall6(timeSetEvent, 5,
  1219  		uintptr(uDelay),
  1220  		uintptr(uResolution),
  1221  		fptcCallback,
  1222  		uintptr(unsafe.Pointer(dwUser)),
  1223  		uintptr(fuEvent),
  1224  		0)
  1225  	return MMRESULT(ret1)
  1226  }
  1227  
  1228  func WaveInAddBuffer(hwi HWAVEIN, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1229  	ret1 := syscall3(waveInAddBuffer, 3,
  1230  		uintptr(hwi),
  1231  		uintptr(unsafe.Pointer(pwh)),
  1232  		uintptr(cbwh))
  1233  	return MMRESULT(ret1)
  1234  }
  1235  
  1236  func WaveInClose(hwi HWAVEIN) MMRESULT {
  1237  	ret1 := syscall3(waveInClose, 1,
  1238  		uintptr(hwi),
  1239  		0,
  1240  		0)
  1241  	return MMRESULT(ret1)
  1242  }
  1243  
  1244  func WaveInGetDevCaps(uDeviceID *uint32, pwic LPWAVEINCAPS, cbwic UINT) MMRESULT {
  1245  	ret1 := syscall3(waveInGetDevCaps, 3,
  1246  		uintptr(unsafe.Pointer(uDeviceID)),
  1247  		uintptr(unsafe.Pointer(pwic)),
  1248  		uintptr(cbwic))
  1249  	return MMRESULT(ret1)
  1250  }
  1251  
  1252  func WaveInGetErrorText(mmrError MMRESULT, pszText LPWSTR, cchText UINT) MMRESULT {
  1253  	ret1 := syscall3(waveInGetErrorText, 3,
  1254  		uintptr(mmrError),
  1255  		uintptr(unsafe.Pointer(pszText)),
  1256  		uintptr(cchText))
  1257  	return MMRESULT(ret1)
  1258  }
  1259  
  1260  func WaveInGetID(hwi HWAVEIN, puDeviceID *UINT) MMRESULT {
  1261  	ret1 := syscall3(waveInGetID, 2,
  1262  		uintptr(hwi),
  1263  		uintptr(unsafe.Pointer(puDeviceID)),
  1264  		0)
  1265  	return MMRESULT(ret1)
  1266  }
  1267  
  1268  func WaveInGetNumDevs() UINT {
  1269  	ret1 := syscall3(waveInGetNumDevs, 0,
  1270  		0,
  1271  		0,
  1272  		0)
  1273  	return UINT(ret1)
  1274  }
  1275  
  1276  func WaveInGetPosition(hwi HWAVEIN, pmmt *MMTIME, cbmmt UINT) MMRESULT {
  1277  	ret1 := syscall3(waveInGetPosition, 3,
  1278  		uintptr(hwi),
  1279  		uintptr(unsafe.Pointer(pmmt)),
  1280  		uintptr(cbmmt))
  1281  	return MMRESULT(ret1)
  1282  }
  1283  
  1284  func WaveInMessage(hwi HWAVEIN, uMsg UINT, dw1 *uint32, dw2 *uint32) MMRESULT {
  1285  	ret1 := syscall6(waveInMessage, 4,
  1286  		uintptr(hwi),
  1287  		uintptr(uMsg),
  1288  		uintptr(unsafe.Pointer(dw1)),
  1289  		uintptr(unsafe.Pointer(dw2)),
  1290  		0,
  1291  		0)
  1292  	return MMRESULT(ret1)
  1293  }
  1294  
  1295  func WaveInOpen(phwi *HWAVEIN, uDeviceID UINT, pwfx /*const*/ *WAVEFORMATEX, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
  1296  	ret1 := syscall6(waveInOpen, 6,
  1297  		uintptr(unsafe.Pointer(phwi)),
  1298  		uintptr(uDeviceID),
  1299  		uintptr(unsafe.Pointer(pwfx)),
  1300  		uintptr(unsafe.Pointer(dwCallback)),
  1301  		uintptr(unsafe.Pointer(dwInstance)),
  1302  		uintptr(fdwOpen))
  1303  	return MMRESULT(ret1)
  1304  }
  1305  
  1306  func WaveInPrepareHeader(hwi HWAVEIN, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1307  	ret1 := syscall3(waveInPrepareHeader, 3,
  1308  		uintptr(hwi),
  1309  		uintptr(unsafe.Pointer(pwh)),
  1310  		uintptr(cbwh))
  1311  	return MMRESULT(ret1)
  1312  }
  1313  
  1314  func WaveInReset(hwi HWAVEIN) MMRESULT {
  1315  	ret1 := syscall3(waveInReset, 1,
  1316  		uintptr(hwi),
  1317  		0,
  1318  		0)
  1319  	return MMRESULT(ret1)
  1320  }
  1321  
  1322  func WaveInStart(hwi HWAVEIN) MMRESULT {
  1323  	ret1 := syscall3(waveInStart, 1,
  1324  		uintptr(hwi),
  1325  		0,
  1326  		0)
  1327  	return MMRESULT(ret1)
  1328  }
  1329  
  1330  func WaveInStop(hwi HWAVEIN) MMRESULT {
  1331  	ret1 := syscall3(waveInStop, 1,
  1332  		uintptr(hwi),
  1333  		0,
  1334  		0)
  1335  	return MMRESULT(ret1)
  1336  }
  1337  
  1338  func WaveInUnprepareHeader(hwi HWAVEIN, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1339  	ret1 := syscall3(waveInUnprepareHeader, 3,
  1340  		uintptr(hwi),
  1341  		uintptr(unsafe.Pointer(pwh)),
  1342  		uintptr(cbwh))
  1343  	return MMRESULT(ret1)
  1344  }
  1345  
  1346  func WaveOutBreakLoop(hwo HWAVEOUT) MMRESULT {
  1347  	ret1 := syscall3(waveOutBreakLoop, 1,
  1348  		uintptr(hwo),
  1349  		0,
  1350  		0)
  1351  	return MMRESULT(ret1)
  1352  }
  1353  
  1354  func WaveOutClose(hwo HWAVEOUT) MMRESULT {
  1355  	ret1 := syscall3(waveOutClose, 1,
  1356  		uintptr(hwo),
  1357  		0,
  1358  		0)
  1359  	return MMRESULT(ret1)
  1360  }
  1361  
  1362  func WaveOutGetDevCaps(uDeviceID *uint32, pwoc LPWAVEOUTCAPS, cbwoc UINT) MMRESULT {
  1363  	ret1 := syscall3(waveOutGetDevCaps, 3,
  1364  		uintptr(unsafe.Pointer(uDeviceID)),
  1365  		uintptr(unsafe.Pointer(pwoc)),
  1366  		uintptr(cbwoc))
  1367  	return MMRESULT(ret1)
  1368  }
  1369  
  1370  func WaveOutGetErrorText(mmrError MMRESULT, pszText LPWSTR, cchText UINT) MMRESULT {
  1371  	ret1 := syscall3(waveOutGetErrorText, 3,
  1372  		uintptr(mmrError),
  1373  		uintptr(unsafe.Pointer(pszText)),
  1374  		uintptr(cchText))
  1375  	return MMRESULT(ret1)
  1376  }
  1377  
  1378  func WaveOutGetID(hwo HWAVEOUT, puDeviceID *UINT) MMRESULT {
  1379  	ret1 := syscall3(waveOutGetID, 2,
  1380  		uintptr(hwo),
  1381  		uintptr(unsafe.Pointer(puDeviceID)),
  1382  		0)
  1383  	return MMRESULT(ret1)
  1384  }
  1385  
  1386  func WaveOutGetNumDevs() UINT {
  1387  	ret1 := syscall3(waveOutGetNumDevs, 0,
  1388  		0,
  1389  		0,
  1390  		0)
  1391  	return UINT(ret1)
  1392  }
  1393  
  1394  func WaveOutGetPitch(hwo HWAVEOUT, pdwPitch *uint32) MMRESULT {
  1395  	ret1 := syscall3(waveOutGetPitch, 2,
  1396  		uintptr(hwo),
  1397  		uintptr(unsafe.Pointer(pdwPitch)),
  1398  		0)
  1399  	return MMRESULT(ret1)
  1400  }
  1401  
  1402  func WaveOutGetPlaybackRate(hwo HWAVEOUT, pdwRate *uint32) MMRESULT {
  1403  	ret1 := syscall3(waveOutGetPlaybackRate, 2,
  1404  		uintptr(hwo),
  1405  		uintptr(unsafe.Pointer(pdwRate)),
  1406  		0)
  1407  	return MMRESULT(ret1)
  1408  }
  1409  
  1410  func WaveOutGetPosition(hwo HWAVEOUT, pmmt *MMTIME, cbmmt UINT) MMRESULT {
  1411  	ret1 := syscall3(waveOutGetPosition, 3,
  1412  		uintptr(hwo),
  1413  		uintptr(unsafe.Pointer(pmmt)),
  1414  		uintptr(cbmmt))
  1415  	return MMRESULT(ret1)
  1416  }
  1417  
  1418  func WaveOutGetVolume(hwo HWAVEOUT, pdwVolume *uint32) MMRESULT {
  1419  	ret1 := syscall3(waveOutGetVolume, 2,
  1420  		uintptr(hwo),
  1421  		uintptr(unsafe.Pointer(pdwVolume)),
  1422  		0)
  1423  	return MMRESULT(ret1)
  1424  }
  1425  
  1426  func WaveOutMessage(hwo HWAVEOUT, uMsg UINT, dw1 *uint32, dw2 *uint32) MMRESULT {
  1427  	ret1 := syscall6(waveOutMessage, 4,
  1428  		uintptr(hwo),
  1429  		uintptr(uMsg),
  1430  		uintptr(unsafe.Pointer(dw1)),
  1431  		uintptr(unsafe.Pointer(dw2)),
  1432  		0,
  1433  		0)
  1434  	return MMRESULT(ret1)
  1435  }
  1436  
  1437  func WaveOutOpen(phwo *HWAVEOUT, uDeviceID UINT, pwfx /*const*/ *WAVEFORMATEX, dwCallback *uint32, dwInstance *uint32, fdwOpen DWORD) MMRESULT {
  1438  	ret1 := syscall6(waveOutOpen, 6,
  1439  		uintptr(unsafe.Pointer(phwo)),
  1440  		uintptr(uDeviceID),
  1441  		uintptr(unsafe.Pointer(pwfx)),
  1442  		uintptr(unsafe.Pointer(dwCallback)),
  1443  		uintptr(unsafe.Pointer(dwInstance)),
  1444  		uintptr(fdwOpen))
  1445  	return MMRESULT(ret1)
  1446  }
  1447  
  1448  func WaveOutPause(hwo HWAVEOUT) MMRESULT {
  1449  	ret1 := syscall3(waveOutPause, 1,
  1450  		uintptr(hwo),
  1451  		0,
  1452  		0)
  1453  	return MMRESULT(ret1)
  1454  }
  1455  
  1456  func WaveOutPrepareHeader(hwo HWAVEOUT, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1457  	ret1 := syscall3(waveOutPrepareHeader, 3,
  1458  		uintptr(hwo),
  1459  		uintptr(unsafe.Pointer(pwh)),
  1460  		uintptr(cbwh))
  1461  	return MMRESULT(ret1)
  1462  }
  1463  
  1464  func WaveOutReset(hwo HWAVEOUT) MMRESULT {
  1465  	ret1 := syscall3(waveOutReset, 1,
  1466  		uintptr(hwo),
  1467  		0,
  1468  		0)
  1469  	return MMRESULT(ret1)
  1470  }
  1471  
  1472  func WaveOutRestart(hwo HWAVEOUT) MMRESULT {
  1473  	ret1 := syscall3(waveOutRestart, 1,
  1474  		uintptr(hwo),
  1475  		0,
  1476  		0)
  1477  	return MMRESULT(ret1)
  1478  }
  1479  
  1480  func WaveOutSetPitch(hwo HWAVEOUT, dwPitch DWORD) MMRESULT {
  1481  	ret1 := syscall3(waveOutSetPitch, 2,
  1482  		uintptr(hwo),
  1483  		uintptr(dwPitch),
  1484  		0)
  1485  	return MMRESULT(ret1)
  1486  }
  1487  
  1488  func WaveOutSetPlaybackRate(hwo HWAVEOUT, dwRate DWORD) MMRESULT {
  1489  	ret1 := syscall3(waveOutSetPlaybackRate, 2,
  1490  		uintptr(hwo),
  1491  		uintptr(dwRate),
  1492  		0)
  1493  	return MMRESULT(ret1)
  1494  }
  1495  
  1496  func WaveOutSetVolume(hwo HWAVEOUT, dwVolume DWORD) MMRESULT {
  1497  	ret1 := syscall3(waveOutSetVolume, 2,
  1498  		uintptr(hwo),
  1499  		uintptr(dwVolume),
  1500  		0)
  1501  	return MMRESULT(ret1)
  1502  }
  1503  
  1504  func WaveOutUnprepareHeader(hwo HWAVEOUT, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1505  	ret1 := syscall3(waveOutUnprepareHeader, 3,
  1506  		uintptr(hwo),
  1507  		uintptr(unsafe.Pointer(pwh)),
  1508  		uintptr(cbwh))
  1509  	return MMRESULT(ret1)
  1510  }
  1511  
  1512  func WaveOutWrite(hwo HWAVEOUT, pwh LPWAVEHDR, cbwh UINT) MMRESULT {
  1513  	ret1 := syscall3(waveOutWrite, 3,
  1514  		uintptr(hwo),
  1515  		uintptr(unsafe.Pointer(pwh)),
  1516  		uintptr(cbwh))
  1517  	return MMRESULT(ret1)
  1518  }
  1519  
  1520  func DriverCallback(dwCallBack *uint32, uFlags DWORD, hDev HDRVR, wMsg DWORD, dwUser *uint32, dwParam1 *uint32, dwParam2 *uint32) bool {
  1521  	ret1 := syscall9(driverCallback, 7,
  1522  		uintptr(unsafe.Pointer(dwCallBack)),
  1523  		uintptr(uFlags),
  1524  		uintptr(hDev),
  1525  		uintptr(wMsg),
  1526  		uintptr(unsafe.Pointer(dwUser)),
  1527  		uintptr(unsafe.Pointer(dwParam1)),
  1528  		uintptr(unsafe.Pointer(dwParam2)),
  1529  		0,
  1530  		0)
  1531  	return ret1 != 0
  1532  }
  1533  
  1534  func JoyConfigChanged(flags DWORD) MMRESULT {
  1535  	ret1 := syscall3(joyConfigChanged, 1,
  1536  		uintptr(flags),
  1537  		0,
  1538  		0)
  1539  	return MMRESULT(ret1)
  1540  }
  1541  
  1542  func MciDriverNotify(hWndCallBack HWND, wDevID MCIDEVICEID, wStatus UINT) bool {
  1543  	ret1 := syscall3(mciDriverNotify, 3,
  1544  		uintptr(hWndCallBack),
  1545  		uintptr(wDevID),
  1546  		uintptr(wStatus))
  1547  	return ret1 != 0
  1548  }
  1549  
  1550  func MciDriverYield(uDeviceID MCIDEVICEID) UINT {
  1551  	ret1 := syscall3(mciDriverYield, 1,
  1552  		uintptr(uDeviceID),
  1553  		0,
  1554  		0)
  1555  	return UINT(ret1)
  1556  }
  1557  
  1558  func MciExecute(lpstrCommand /*const*/ LPCSTR) bool {
  1559  	ret1 := syscall3(mciExecute, 1,
  1560  		uintptr(unsafe.Pointer(lpstrCommand)),
  1561  		0,
  1562  		0)
  1563  	return ret1 != 0
  1564  }
  1565  
  1566  func MciFreeCommandResource(uTable UINT) bool {
  1567  	ret1 := syscall3(mciFreeCommandResource, 1,
  1568  		uintptr(uTable),
  1569  		0,
  1570  		0)
  1571  	return ret1 != 0
  1572  }
  1573  
  1574  func MciGetDriverData(uDeviceID MCIDEVICEID) *uint32 {
  1575  	ret1 := syscall3(mciGetDriverData, 1,
  1576  		uintptr(uDeviceID),
  1577  		0,
  1578  		0)
  1579  	return (*uint32)(unsafe.Pointer(ret1))
  1580  }
  1581  
  1582  func MciLoadCommandResource(hInst HINSTANCE, resNameW string, aType UINT) UINT {
  1583  	resNameWStr := unicode16FromString(resNameW)
  1584  	ret1 := syscall3(mciLoadCommandResource, 3,
  1585  		uintptr(hInst),
  1586  		uintptr(unsafe.Pointer(&resNameWStr[0])),
  1587  		uintptr(aType))
  1588  	return UINT(ret1)
  1589  }
  1590  
  1591  func MciSetDriverData(uDeviceID MCIDEVICEID, data *uint32) bool {
  1592  	ret1 := syscall3(mciSetDriverData, 2,
  1593  		uintptr(uDeviceID),
  1594  		uintptr(unsafe.Pointer(data)),
  1595  		0)
  1596  	return ret1 != 0
  1597  }
  1598  
  1599  func MmGetCurrentTask() DWORD {
  1600  	ret1 := syscall3(mmGetCurrentTask, 0,
  1601  		0,
  1602  		0,
  1603  		0)
  1604  	return DWORD(ret1)
  1605  }
  1606  
  1607  func MmTaskBlock(tid DWORD) {
  1608  	syscall3(mmTaskBlock, 1,
  1609  		uintptr(tid),
  1610  		0,
  1611  		0)
  1612  }
  1613  
  1614  func MmTaskCreate(cb TASKCALLBACK, ph *HANDLE, client *uint32) UINT {
  1615  	cbCallback := syscall.NewCallback(cb)
  1616  	ret1 := syscall3(mmTaskCreate, 3,
  1617  		cbCallback,
  1618  		uintptr(unsafe.Pointer(ph)),
  1619  		uintptr(unsafe.Pointer(client)))
  1620  	return UINT(ret1)
  1621  }
  1622  
  1623  func MmTaskSignal(tid DWORD) bool {
  1624  	ret1 := syscall3(mmTaskSignal, 1,
  1625  		uintptr(tid),
  1626  		0,
  1627  		0)
  1628  	return ret1 != 0
  1629  }
  1630  
  1631  func MmTaskYield() {
  1632  	syscall3(mmTaskYield, 0,
  1633  		0,
  1634  		0,
  1635  		0)
  1636  }
  1637  
  1638  func MmsystemGetVersion() UINT {
  1639  	ret1 := syscall3(mmsystemGetVersion, 0,
  1640  		0,
  1641  		0,
  1642  		0)
  1643  	return UINT(ret1)
  1644  }