CRgn rgn;
rgn.CreateRectRgnIndirect(rect); // (1)
rgn.DeleteObject(); // (1)のリージョンを解放
rgn.CopyRgn(rgn2); // ここでrgnがASSERT(m_hObject != NULL)で引っかかる

DeleteObject()した後でm_hObject変数にNULLをセットするのはプログラマーの役目なんですか?
それともCRgnのメンバ変数をリセットするような方法が他にありますか?