请问2个小疑点

请教2个小问题
1.用对话框选择保存文件类型,点“保存”后,获取路径正确,但没有后缀名。代码如下:
                CFileDialog   *   rcfile;
CString     rfname;
rcfile=new   CFileDialog(FALSE,NULL,   NULL,OFN_HIDEREADONLY   |   OFN_OVERWRITEPROMPT   |OFN_ALLOWMULTISELECT|OFN_EXPLORER, "tw文件(*.tw)|*.tw|wav文件(*.wav)|*.wav|| ");
if(rcfile-> DoModal()   ==   IDOK)
{
rfname   =   rcfile-> GetPathName();
m_rcpath=rfname;
UpdateData(FALSE);
}
else
return;

2.用全局变量修改控件属性时报错,代码大致如下:
    CDEMODlg   *pDlg   =   (CDEMODlg   *)(AfxGetApp()-> GetMainWnd());
    从VC控件中拖了一个IDC_MSFLEXGRID1来用,添加Cmsflexgrid   m_grid;  
在CDEMODlg中的调用正常,自定义了一个函数  
void   List_Write(int   row,int   col,char   *str)  
{  
pDlg-> m_grid.SetRow(row+1);  
pDlg-> m_grid.SetCol(col);  
pDlg-> m_grid.SetText(str);  
}  
调用时报错,跟踪到  
void   AFX_CDECL   CWnd::InvokeHelper(DISPID   dwDispID,   WORD   wFlags,   VARTYPE   vtRet,  
void*   pvRet,   const   BYTE*   pbParamInfo,   ...)  
{  
ASSERT(m_pCtrlSite   !=   NULL);   //   not   an   OLE   control   (not   yet,   at   least)  
…………  

执行   ASSERT(m_pCtrlSite   !=   NULL);   时报错



------解决方案--------------------
CFileDialog rcfile(FALSE, "tw ", NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_EXPLORER, "tw文件(*.tw)|*.tw|wav文件(*.wav)|*.wav|| ");

if(rcfile.DoModal()!= IDOK)
return;

CString rfname = rcfile.GetPathName();
m_rcpath=rfname;
UpdateData(FALSE);