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:

Code:
md3dDevice->CreateRenderTargetView(mSwapChainBuffer[i].Get(), nullptr, rtvHeapHandle);
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 here