Direct2d is a pain in the ass for games. If EndDraw() returns ERROR_RECREATE you have to recreate the render target, and that means you have to recreate ALL of your bitmaps. Apparently you can't create the render target and expect it to survive the lifetime of your app. As for DirectDraw... hasn't that been deprecated? I suggest opengl or some library that uses it, because opengl is much easier to use for 2d rendering than directx and its COM stuff.
Direct2D is a separate API. It was released with windows 7 and backported to vista and it replaces GDI for hardware accelerated GUI rendering. You don't need the Directx SDK to use it or anything.