I don't know John it just seems to me that it isn't really needed to get a buffer in the swap chain. I thought the iterator was enough to do that in the line:
The mSwapChainBuffer[i].Get() part returns a pointer to a buffer. I don't see why that isn't enough to do it on it's own. I'm guessing there's something about COM I'm really not understanding hereCode:md3dDevice->CreateRenderTargetView(mSwapChainBuffer[i].Get(), nullptr, rtvHeapHandle);