Quote: "Each place where there is a 0 in the dll call the varible type should of been declared with a as long I think."
No. The third parameter (first 0) is an (optional) address of a callback function (not possible with DBpro), the fourth parameter is the instance of that callback (n/a in DBpro) and the last parameter contains flags for the callback function (n/a in DBpro)
Quote: "There is also a missing varible at the end of the 0,0,0 in the call that should be a varible return."
No. In order to get a value back from a DLL function (if a function returns a value, that is) you call it like this
result = Call Dll(1, "midiOutShortMsg", HMO, Message)
MidiOutShortMsg returns either
0 = No error
70 = The application sent a message without a status byte to a stream handle.
67 = The hardware is busy with other data.
5 = The specified device handle is invalid.
Quote: "but this program as is should not be published as an example on how to correctly make the dll calls."
*Cough*