Well yes and no... The thing is that NotifyReceivedEvnt only has three bytes, not 6... Because sysex strings can be different lengths, it's not practical to have a function to handle them in such a way. What this means is that you need to monitor every byte with NotifyReceivedByte, and if you get F0, you know a sysex string is beginning, and you can monitor the following bytes; until you get F7, and you know the sysex has ended. The bytes in the middle can be handled in different ways according to your needs, similarly to what you have posted above.