You've not said which OS you're working with, or what sort of hardware you're using, or what programming language you're using, but I'm assuming womething re windows.
On the basis of the various things that you say ARE working OK, i.e. the Virtual Midi Synth (I have or had that installed myself) and the basic Windows playback, I'd suggest that everything you need must be there and accessible. However, when you use your own system, it's not being found. I'd be pretty sure the other processes you mention are using the same API things that you are trying to use, so I'd suspect that there's nothing 'wrong' with the API components. Seems more likely that your code is either missing setting something up that needs setting up, or maybe you're trying to do all the right things, but maybe not in quite the right order (to paraphase Eric Morecome)?
The book I have has some code examples (MS VC++) and these supposedly work via the Midi Mapper. I'm sure there is other code examples you might find via the web, I tried a search re the function names mentioned above). It might be useful to check other working systems and compare which functions are being called, and in what order/sequence, and compare this with your current program. If it's not too long, you might attach your code where you are using the API functions.