DirectX7の質問ですがよろしいでしょうか。

DDSURFACEDESC2 ddsd;
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
hr = this->m_pDD->CreateSurface(&ddsd, &this->m_pPrimarySurface, NULL);
if (hr != DD_OK){ return FALSE;}

でプライマリサーフェイスを作ろうとしてるのですが、ことごとく失敗します。
要因はどこにあると思いますか?