| 
				 CString sURL(URL->bstrVal); 
    int id=sURL.ReverseFind('\\');      //反向查找"\和/" 
    if(id==-1)  sURL.ReverseFind('/'); 
    try 
    { 
        if(sURL.Mid(id+1).CompareNoCase("ToDialog")) 
            throw(0);   //不是预定义的URL 
        if(((PostData->vt) & (VT_VARIANT | VT_BYREF))==0) 
            throw(0); 
        VARIANT * v=PostData->pvarVal; 
        if(((v->vt) & (VT_UI1 | VT_ARRAY))==0) 
            throw(0); 
        SAFEARRAY *pArr=v->parray; 
        CString sData=(LPCSTR)pArr->pvData;     //至此,得到传送的数据流 
        // 数据流的结构 
        // 变量1=值1&变量2=值2&......变量n=值n   
        CStringArray arrPart; 
        while(TRUE)     //按照 '&' 进行拆分 
        { 
            id=sData.Find('&'); 
            if(id==-1){ arrPart.Add(sData); break;  } 
            arrPart.Add(sData.Left(id)); 
            sData=sData.Mid(id+1); 
        } 
        CString sResult; 
        for(int nPart=0;nPart<arrPart.GetSize();nPart++) 
        {   //循环处理每个“变量=值”的部分 
            CString sPart=arrPart.GetAt(nPart); //取出 
            id=sPart.Find('='); 
            ASSERT(id!=-1); 
            CString sName = sPart.Left(id);     //变量名 
            CString sValue= sPart.Mid(id+1);    //值 
            sName = WebStr2Str(sName);      //转换Web字符串到标准字符串 
            sValue= WebStr2Str(sValue); 
            sResult += sName+" = "+sValue+"<br>"; 
        } 
        //以下是演示使用DHTML 
        IHTMLDocument2 *pDoc=(IHTMLDocument2 *)m_explore.GetDocument(); 
        VARIANT *param; 
        SAFEARRAY *sfArray; 
        BSTR bstr = sResult.AllocSysString(); 
        sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1); 
        if(sfArray && pDoc) 
        { 
            if(S_OK == SafeArrayAccessData(sfArray,(LPVOID*) & param)) 
            { 
                param->vt = VT_BSTR; 
                param->bstrVal = bstr; 
                SafeArrayUnaccessData(sfArray); 
                pDoc->write(sfArray); 
            } 
            SysFreeString(bstr); 
            if (sfArray)    SafeArrayDestroy(sfArray); 
        } 			
				 |