Адаптация моего комментария в качестве ответа ...
Я не знаю, что делает исправленный тип версии безопасным, но это более безопасный (менее подверженный ошибкам) вызов.
Можно вызвать функцию dll midiOutOpen
с параметром null
dwCallbackInstance
с MidiOpenFlags = MidiOpenFlags.CALLBACK_FUNCTION
. Если функция dll не проверяет нулевое значение, это вызовет некоторые помехи.
С принятой функцией выводится параметр midiOutOpen
, поэтому опасности нет.
Я не знаю, что такое SetLastError = true
, но я думаю, что оболочка могла бы проверить LastError
и действовать соответствующим образом (сгенерировать исключение?)