MMRESULT midiOutOpen(
LPHMIDIOUT phmo, //this is a long pointer which is an offset
UINT uDeviceID, //uint translates to an unsigned long in QB64
DWORD_PTR dwCallback, //DWORD_PTR means long pointer. A long pointer is an offset
DWORD_PTR dwInstance, //DWORD_PTR means long pointer. A long pointer is an offset
DWORD fdwOpen
); //MMRESULT is an unsigned long
MMRESULT midiOutShortMsg(
HMIDIOUT hmo, //this is a handle, which is an offset. A handle is 4 bytes in 32 bit and 8 in 64. So is an offset.
DWORD dwMsg
); //this returns an unsigned long as well
MMRESULT midiOutClose(
HMIDIOUT hmo //a handle, which is an offset
); //returns an unsigned long
UINT midiOutGetNumDevs(); //takes no arguments and returns a UINT (unsigned long)