This is somewhat off-topic, and I apologize in advance, but:
I'm starting to get into some CoreMIDI programming; I want to write a good patch editor for the Oberheim Matrix-1000. Right now I'm trying to scan through the CoreMIDI database, identify the Matrix synths, and send a device inquiry sysex to each one found and display the result. The trouble I'm having is, I can use the GetNextExternalDevice calls and see all of the synths that are defined in my Audio Midi Setup configuration, and I can get the source and destination endpoints for each one, but the destination endpoints don't seem to work -- if I give one to MIDISysexSendRequest, the data doesn't go anywhere. That is, the system claims it sent it, but the synth doesn't respond and I don't see anything happening on the MIDI interface.
My question is: can you get usable endpoints from an external device reference? Or do you have to work backwards from there, figure out what interface and port it is on, and then use the endpoints associated with that port? I've Googled around some and I haven't found any code that shows the use of the external devices (all of the examples seem to be written for internal soft synths).