But, if you have the server source...

and you have the API specs from M$...

Well you can put 2 and 2 together right?