[link|http://www.pyeung.com/userdefinedservice.html|Try this]
This page contains some reasonably clear steps along with links to background material. I've used this on a VB6 app on both NT4 and W2K. And I did not have to make any changes to my code! Since you take an existing executable with this method, it isn't language-specific.
Brian Bronson