Ходят слухи, что DirectShow умеет рисовать в Surface
Но если лень разбирать с directshow (а заодно терять в произодительности) то вроде можно HBITMAP из DIBSection делать
HBITMAP CreateDIBitmap(
HDC hdc, // handle to DC
CONST BITMAPINFOHEADER *lpbmih, // bitmap data
DWORD fdwInit, // initialization option
CONST VOID *lpbInit, // initialization data
CONST BITMAPINFO *lpbmi, // color-format data
UINT fuUsage // color-data usage
);