I'm not very knowledgeable in general about the subtleties of DXGI, but this looks potentially reasonable. I assume that we'll end up grabbing the window using some internal interface in IDCompositionVisual::SetContent() and then performing a GDI blit?
I'm mildly curious about GetFullscreenState() and GetFullscreenDesc(). I'm also curious if ResizeBuffers() works.
It would probably be good to have a smoke test for presentation as well. I guess we don't have anything in Wine in the way of visual smoke tests, but having a regression test around to make sure that the whole process of presenting doesn't crash seems helpful. Then again, maybe you already have that planned on the dcomp side.
As for specific comments, I think the only thing that I'd mention is that in the tests, I'd just return immediately if we get DXGI_ERROR_UNSUPPORTED rather than checking it on every call.