look at vkeybd source