如何从一个HRGN 得到 CRgn 注意 CRgn是已经定义了 而且不是*CRgn

怎么从一个HRGN 得到 CRgn 注意 CRgn是已经定义了 而且不是*CRgn
C/C++ code

        HRGN hrgn=ExtCreateRegion(0,(ncount+1)*16,(LPRGNDATA)rect);  //hrgn 已经得到一个不是0x00000的句柄
        CRgn newrgn;
    CRgn *crgn=CRgn::FromHandle(hrgn);
        //m_wndrgn.FromHandle(hrgn);//这个方法为什么不行  GetLastError()提示无效句柄  且句柄为0x00000
        //m_wndrgn.Attach(hrgn);   //这个也不行  GetLastError()提示无效句柄  且句柄为0x00000
    m_wndrgn.CopyRgn(crgn);   //这个也不行  GetLastError()提示无效句柄  且句柄为0x00000
    xx=GetLastError();



请分别解答以上3个方法为啥不行。。。再提出解决方案谢谢

------解决方案--------------------
为什么非要要得到一个CRgn?