I don't have as much to say this time.
You should release the interfaces you create in your tests, so there are no memory leaks.
I would change the second argument type of the instance creation functions to IUnknown**. When I see an LPVOID* argument on a COM-related function, I immediately expect to see a REFIID argument and a QueryInterface somewhere in the function. Really, all the caller expects is an IUnknown pointer (it takes care of querying the correct interface), so the signature should reflect that.
The way the IGameExplorer and IGameExplorer2 interfaces are shared looks good to me. I would probably combine those patches and start with a stub IGameExplorer/IGameExplorer2 implementation. But it's easy to combine patches and not so easy to split them, so maybe you should err on the side of keeping things separate.