everything is working perfectly the queue recieves the command and they get sent to the translateCommand function in my program.
mouse_event is implemented in terms of SendInput (or at least it is on 8.1, I haven't checked other builds), so calling SendInput directly is technically faster if you really care about the half-dozen extra cycles (though if you do, you probably have bigger things to worry about). SendInput is unambiguously the better choice.