LPDIRECT3DSURFACE9 rendersurf_old;
LPDIRECT3DSURFACE9 depthsurf_old;
m_device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &rendersurf_old);
m_device->GetDepthStencilSurface(&depthsurf_old);
rendersurf_old->Release();
depthsurf_old->Release();
RECT rect;
GetClientRect(m_hwnd, &rect);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
m_d3dpp.BackBufferWidth = m_width = width;
m_d3dpp.BackBufferHeight = m_height = height;
DXASSERT(m_device->CreateAdditionalSwapChain(&m_d3dpp, &m_swapchain));
DXASSERT(m_swapchain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &m_rendersurface));
DXASSERT(m_device->CreateDepthStencilSurface(m_width, m_height, m_d3dpp.AutoDepthStencilFormat, m_d3dpp.MultiSampleType, m_d3dpp.MultiSampleQuality, TRUE, &m_depthsurface, 0));
Is the basic code I'm using and I'm pretty sure it's based on the code from that post.