当已经能播放网络传来的视频文件后,怎么把它保存到本地文件夹中?
要调用DIRCTSHOW中的哪个函数?

解决方案 »

  1.   

    WriteFile,把你收到的数据都写进你指定的文件就行
      

  2.   

    使用CHttpFile就可以直接把网络上的东西下载下来,放入本地文件    strWriteName="Template01.htm"
        strFileName="http://127.0.0.1/" + strWriteName;
        CInternetSession sess;//Create session
        CHttpFile* fileGet;
        CException* e;
        TRY
        {
            fileGet=(CHttpFile*)sess.OpenURL(strFileName);//Open file
        }
        CATCH_ALL(e)
        {
            fileGet = 0;
        }
        END_CATCH_ALL    if(fileGet)
        {
            DWORD dwStatus;
            DWORD dwBuffLen = sizeof(dwStatus);
            BOOL bSuccess = fileGet->QueryInfo(
                HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
                &dwStatus, &dwBuffLen);        if( bSuccess && dwStatus>=  200&& dwStatus<300 ) 
                { CStdioFile     fileWrite; 
                if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))
                {
                    while(fileGet->ReadString(strSentence)){
                        fileWrite.WriteString(strSentence+"\n");
                    }
                    fileWrite.Close();
                    SetDlgItemText(IDC_DOWNMSG, "Downloaded, installing...");
                    How to install, it's none of our business
                 }// if openfile success.
                    else SetDlgItemText(IDC_DOWNMSG,
                    "Local file"+strWriteName+"Error\n"); 
                }// if bSuccess.
                else SetDlgItemText(IDC_DOWNMSG, "No new template.\n
                    Please run it later, or visit my homepage for further message");
            fileGet->Close();
            delete fileGet;
        }
        else
            SetDlgItemText(IDC_DOWNMSG, "Network Problem");
        sess.Close();