That depends very much on who you ask...
I don't know anything about the Microsoft license, but I know you can't just leave out the BSD license, you can (almost) do whatever you like with the BSD licensed code, but you can't just throw out the old license and tag a new one on it. The BSD license contains the following two terms:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
You may want to have a look at the FSF article on licenses, from which it seems the Ms-PL is not compatible with the GPL.
Besides this there is the static versus dynamic linking argument. Some people say that dynamic linking is not a problem since the two pieces of software are distributed as separate entities. Other people claim however that, just the use of the header files (or some equivalent) constitutes a possible license problem, yet other people go even further claiming that the API itself is under license, so even if you used your own interface specification you could be in violation of the license. In the end though this is very muddy water and has, as far as I know, never been tested in court, so noone really can tell you the truth of the matter. It is probably best to stay on the safe side.
Disclaimer: IANAL