锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线欧美日韩,中文亚洲免费,国产精品高潮粉嫩avhttp://www.shnenglu.com/phenix-burn/闈欒?鏃犳緶涔?鍑鑰?鏃犺椽涔?鏃犺椽鏃犳緶鑰?嫻風(fēng)撼鐧懼窛涔?zh-cnSun, 24 Aug 2025 02:44:31 GMTSun, 24 Aug 2025 02:44:31 GMT60鑾峰緱Frame鎴朓Frame涓殑IHTMLDocumnet2鎺ュ彛http://www.shnenglu.com/phenix-burn/archive/2006/09/05/12059.html鍑や箣鐒?/dc:creator>鍑や箣鐒?/author>Tue, 05 Sep 2006 13:07:00 GMThttp://www.shnenglu.com/phenix-burn/archive/2006/09/05/12059.htmlhttp://www.shnenglu.com/phenix-burn/comments/12059.htmlhttp://www.shnenglu.com/phenix-burn/archive/2006/09/05/12059.html#Feedback3http://www.shnenglu.com/phenix-burn/comments/commentRss/12059.htmlhttp://www.shnenglu.com/phenix-burn/services/trackbacks/12059.html闃呰鍏ㄦ枃

]]>
緗戦〉婧愮爜榪囨護http://www.shnenglu.com/phenix-burn/archive/2006/08/29/11824.html鍑や箣鐒?/dc:creator>鍑や箣鐒?/author>Tue, 29 Aug 2006 08:43:00 GMThttp://www.shnenglu.com/phenix-burn/archive/2006/08/29/11824.htmlhttp://www.shnenglu.com/phenix-burn/comments/11824.htmlhttp://www.shnenglu.com/phenix-burn/archive/2006/08/29/11824.html#Feedback2http://www.shnenglu.com/phenix-burn/comments/commentRss/11824.htmlhttp://www.shnenglu.com/phenix-burn/services/trackbacks/11824.html 鏈緥閫氳繃Mime filter鎶鏈緗戦〉婧愮爜榪涜榪囨護,鏈枃閮ㄥ垎鎽樿嚜銆奌TML浠g爜榪囨護鎶鏈?/a>

       瑕佸疄鐜癏TML浠g爜榪囨護蹇呴渶娉ㄥ唽涓涓垨澶氫釜MIME榪囨護鍣紙Pluggable MIME Filter錛夈侻IME榪囨護鍣ㄦ槸涓涓狢OM瀵硅薄錛屽繀闇瀹炵幇IInternetProtocolSink鍜孖InternetProtocol鎺ュ彛銆?/div>
       鍦ㄥ疄鐜癕IME榪囨護鍣ㄥ璞′箣鍓嶏紝鍏堢湅涓涓嬨奝luggable Protocols Overview銆嬩竴鏂囦腑鍏充簬MIME榪囨護鍣ㄤ笌WEB澶勭悊鍣紙transaction handler錛屽嵆urlmon.dll錛変箣闂存帴鍙g殑璋冪敤鐨勬弿榪幫紙娉細urlmon.dll鍐呴儴瀹炵幇浜咺InternetProtocol鍜孖InternetProtocolSink鎺ュ彛錛夛細
 
1銆?nbsp;WEB澶勭悊鍣ㄨ皟鐢∕IME榪囨護鍣ㄧ殑IInternetProtocolRoot::Start鏂規(guī)硶錛圛InternetProtocol浠嶪InternetProtocolRoot媧劇敓錛夛紱
2銆?nbsp;WEB澶勭悊鍣ㄥ厛鍚庤皟鐢∕IME榪囨護鍣ㄧ殑IInternetProtocolSink::ReportProgress 鍜孖InternetProtocolSink::ReportData鏂規(guī)硶錛?/div>
3銆?span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        MIME榪囨護鍣ㄨ皟鐢╓EB澶勭悊鍣ㄧ殑IInternetProtocol::Read鏂規(guī)硶錛?/div>
4銆?nbsp;MIME榪囨護鍣ㄨ皟鐢╓EB澶勭悊鍣ㄧ殑IInternetProtocolSink::ReportData鏂規(guī)硶錛?/div>
5銆?nbsp;WEB澶勭悊鍣ㄨ皟鐢∕IME榪囨護鍣ㄧ殑IInternetProtoco::Read鏂規(guī)硶錛?/div>
 
鍥犳錛岃瀹炵幇MIME榪囨護鍣紝鏈夊嚑涓噸瑕佺殑鏂規(guī)硶錛?/div>
1銆両InternetProtocolRoot::Start鏂規(guī)硶錛?/div>
HRESULT Start(
    [in] LPCWSTR szUrl,
    [in] IInternetProtocolSink *pOIProtSink,
    [in] IInternetBindInfo *pOIBindInfo,
    [in] DWORD grfPI,
    [in] DWORD dwReserved
);
浣滀負MIME榪囨護瀵硅薄錛宻zUrl浼犲叆鐨勬槸MIME鐨勭被鍨嬶紙濡傛灉鏄痭ame space handlers瀵硅薄錛屽垯璇ュ弬鏁頒負涓涓嵆灝嗕笅杞芥垨瑙f瀽鐨刄RL錛夈傝嫢鏄綘鎯沖緱鍒癠RL錛屽彲浠ラ氳繃pOIBindInfo 鎺ュ彛寰楀埌錛屼笅闈㈡槸紺轟緥錛?/div>
       LPOLESTR pwzUrl ;           
       ULONG uElFetched ;
       pIBindInfo->GetBindString( BINDSTRING_URL , &pwzUrl , 1 , &uElFetched ) 錛?/div>
pOIProtSink鏄敱urlmon.dll鎻愪緵鐨処InternetProtocolSink鎺ュ彛錛屽洜涓哄湪鍚庨潰鐨勫鐞嗚繃紼嬩腑錛岄渶瑕佽皟鐢ㄥ埌璇ユ帴鍙o紝鎵浠ヨ灝嗗畠淇濆瓨錛?/div>
grfPI鏄竴涓灇涓懼彉閲忥紝蹇呴渶鍖呭惈PI_FILTER_MODE鏍囧織錛岃〃紺鴻瀵硅薄榪愯鍦╢ilter妯″紡涓?/div>
dwReserved鏄竴涓寚鍚慞ROTOCOLFILTERDATA緇撴瀯鐨勬寚閽堬紝璇ョ粨鏋勭殑pProtocol鎴愬憳鏄敱urlmon.dll鎻愪緵鐨処InternetProtocol鎺ュ彛錛屽洜涓哄湪鍚庨潰鐨勫鐞嗚繃紼嬩腑闇瑕佽皟鐢ㄥ埌璇ユ帴鍙o紝鎵浠ヨ灝嗗畠淇濆瓨銆傚疄闄呬笂璇ユ帴鍙d篃鍙互閫氳繃pOIProtSink鍙傛暟璋冪敤QueryInterface寰楀埌錛屽悓鏍稰ROTOCOLFILTERDATA緇撴瀯鐨刾ProtocolSink涓巔OIProtSink閮芥槸鎸囧悜鍚屼竴涓帴鍙c?/div>
       鍦⊿tart鏂規(guī)硶涓紝鎴戜滑蹇呴渶鍋氱殑瀹為檯涓婂彧鏄繚瀛榰rlmon.dll鎻愪緵鐨処InternetProtocolSink
鍜孖InternetProtocol鎺ュ彛銆?/div>
 
2銆両InternetProtocolSink::ReportProgress鏂規(guī)硶錛?/div>
HRESULT ReportProgress(
    [in] ULONG ulStatusCode,
    [in] LPCWSTR szStatusText 錛?/div>
浣滀負MIME榪囨護鍣紝ulStatusCode涓鑸兘鏄疊INDSTATUS_CACHEFILENAMEAVAILABLE , 褰搖lStatusCode涓築INDSTATUS_CACHEFILENAMEAVAILABLE鏃訛紝szStatusText涓轟復(fù)鏃剁紦瀛樻枃浠剁殑璺緞鍚嶇О錛屼絾鏈変竴浜涚綉欏靛茍涓嶅啓鍒扮紦瀛橀噷錛屾墍浠zStatusText鍙兘涓虹┖瀛楃涓層?/div>
 
3銆両InternetProtocolSink::ReportData鏂規(guī)硶錛?/div>
HRESULT ReportData(
    [in] DWORD grfBSCF,
    [in] ULONG ulProgress,
    [in] ULONG ulProgressMax
);
IE涓嬭澆鏂囦歡榪囩▼涓垨涓嬭澆瀹屾瘯鏃朵細璋冪敤MIME榪囨護鍣ㄧ殑ReportData鏂規(guī)硶錛寀lProgressMax涓烘枃浠舵繪槸鏁版嵁閲忥紝ulProgress涓轟笅杞借繘搴︼紝鐞嗚涓婂綋鏂囦歡鍏ㄩ儴涓嬭澆瀹屽悗,ulProgress搴旂瓑浜巙lProgressMax(瀹為檯涓婏紝褰撶綉欏墊枃浠朵笉鏄緢澶ф椂錛屽嵆浣縰lProgress涓嶇瓑浜巙lProgressMax鏃訛紝鏂囦歡涔熷彲鑳藉叏閮ㄤ笅杞戒笅鏉?錛岃繕鏈変竴涓弽搴旀枃浠朵笅杞芥儏鍐電殑鍙傛暟鏄痝rfBSCF銆傛湁鏃訛紝ReportData鏂規(guī)硶浼氳Web澶勭悊鍣ㄨ皟鐢ㄥ嬈°?
    ReportData鏄繃婊ょ綉欏靛唴瀹規(guī)垨淇敼緗戦〉鍐呭姣旇緝鍚堥傜殑鍦版柟銆傚湪姝ゅ湴錛屽彲浠ュ皢緗戦〉鍐呭閫氳繃璋冪敤Read淇濆瓨鍒拌嚜宸茬殑緙撳瓨鎴栨祦涓茍鍋氶傚綋鐨勫鐞嗭紙娉ㄦ剰媯鏌ュ瓧絎︾殑緙栫爜錛夈?/div>
鏈鍚庯紝鍒繕浜嗚皟鐢╓eb澶勭悊鍣ㄧ殑IInternetProtocolSink::ReportData鏂規(guī)硶錛屽悜瀹冩眹鎶ユ暟鎹笅杞界殑鎯呭喌銆俉eb澶勭悊鍣ㄥ緱鍒版閫氱煡鍚庯紝灝變細璋冪敤MIME榪囨護鍣ㄧ殑IInternetProtocol::Read錛屾鏃訛紝浣犲氨鍙互灝嗕慨鏀瑰悗鐨勬暟鎹氦緇橶EB澶勭悊鍣ㄣ?/div>
    涓嬮潰鐨勪唬鐮佺ず渚嬩簡濡備綍鍦≧eportData涓皟鐢╓eb澶勭悊鍣ㄧ殑Read棰勫厛淇濆瓨鏁版嵁錛?/div>
                     CString Ts("");
       char p[1024];
       HRESULT hr;
       ULONG Readtotal;
       do
       {
              memset(p,0,sizeof(p));
              hr = UrlMonProtocol->Read(p, sizeof(p)-1, &Readtotal);
              CString pTemp(p);
              Ts=Ts+pTemp;
}while((hr != S_FALSE) && (hr != INET_E_DOWNLOAD_FAILURE) && (hr != INET_E_DATA_NOT_AVAILABLE));
 
Read鎴愬姛鍙栧緱鏁版嵁涓鑸彧榪斿洖S_OK鎴朣_FALSE ,榪斿洖S_OK琛ㄧず榪樻湁鏁版嵁錛岃孲_FALSE
琛ㄧず鏁版嵁宸茶鍙栧畬姣曪紝鍥犳寰幆鐨勬潯浠惰涓?hr==S_OK銆傞偅A澶勭殑鏉′歡鍒ゆ柇涓轟粈涔堜笉鏄?/div>
if( hr == S_OK || hr == S_FALSE ) 鍛紝 鍥犱負鎴戝彂鐜版煇浜涙儏鍐典笅錛孯ead鍙兘榪斿洖鍏?/div>
瀹冨鹼紝浣嗕粛鐒舵湁鎴愬姛璇誨彇涓閮ㄥ垎鏁版嵁鍑烘潵錛屾暟鎹殑澶у皬灝辨槸Readtotal鎸囧畾鐨勫箋傚鏋滃皢
閭i儴鍒嗘暟鎹仐钀斤紝緗戦〉灝嗘棤娉曟甯歌В鏋愩?/div>
       涓嬪垪浠g爜寤虹珛涓存椂鏂囦歡錛?/div>
if (CacheFileName == "")
       {
                     TCHAR FName[512];
CreateUrlCacheEntry(OLE2T(Url), Ts.GetLength(), _T("htm"), FName, 0);
                     CFile hFile;
                     hFile.Open(FName, CFile::modeCreate|CFile::modeWrite);
                     hFile.Write(Ts,Ts.GetLength()); 
                     ReportProgress(BINDSTATUS_CACHEFILENAMEAVAILABLE, T2W(FName));
       }
       淇敼緗戦〉浠g爜錛?/div>
Ts.Replace(_T("鐧懼害"),_T("鍗冨害"));
       涓烘祻瑙堝櫒鍑嗗濂芥暟鎹細
TotalSize= Ts.GetLength() ;
              CreateStreamOnHGlobal(0, true, &DataStream);
              const char * pTs = Ts.GetBuffer(Ts.GetLength());
              ULONG cbWritten;
              DataStream->Write(pTs,Ts.GetLength(),&cbWritten);
              Ts.ReleaseBuffer();
              pTs = NULL;
 
              ULARGE_INTEGER Dummy;
              _LARGE_INTEGER zero;
              zero.QuadPart =0;
              DataStream->Seek ( zero, STREAM_SEEK_SET, &Dummy);
 
4銆両InternetProtocol::Read鏂規(guī)硶
    璇ユ柟娉曠敱WEB澶勭悊鍣ㄨ皟鐢ㄦ潵鍙栧緱嫻忚鍣ㄨ瑙f瀽鐨勬暟鎹傚湪涓婁竴鏂規(guī)硶ReportData涓?/div>
鎴戜滑宸茬粡灝嗘墍鏈夋暟鎹紦瀛樺埌嫻佷腑錛屽洜姝わ紝榪欓噷鍙渶灝嗘祦涓殑鏁版嵁榪斿洖緇橶EB澶勭悊鍣ㄣ?/div>
涓嬮潰鐨勪唬鐮佺ず渚嬩簡Read涓殑綆鍗曞鐞嗭細
                  DataStream->Read(pv, cb, pcbRead);
       Written+=*pcbRead;
       if (Written == TotalSize)
       {
              return S_FALSE;
       }
       else
       {
              return S_OK;
       }
    鍗冧竾娉ㄦ剰錛屽湪鏁版嵁宸茶鍙栧畬姣曟椂瑕佽繑鍥濻_FALSE , 涓嶇劧鍙兘瀵艱嚧Read琚棤絀峰驚鐜皟鐢ㄣ傚鐞嗗畬榪欏嚑涓柟娉曞悗錛屽熀鏈槸澶у姛閫犳垚錛屽叾瀹冧竴浜涙柟娉曞鐞嗗崄鍒嗙畝鍗曪紝鍙互鍙傝冧笂闈㈡彁鍒扮殑渚嬪瓙銆?span> 

婧愪唬鐮佷笅杞?/font>


]]>
亚洲AV无码久久| 亚洲乱码日产精品a级毛片久久| 日韩乱码人妻无码中文字幕久久 | 久久国产劲爆AV内射—百度| 亚洲人成伊人成综合网久久久| 国内精品久久久久影院一蜜桃| 国内精品欧美久久精品| 伊人久久大香线蕉综合Av| 9999国产精品欧美久久久久久| 狠狠色噜噜色狠狠狠综合久久| 色综合久久中文色婷婷| 久久综合亚洲色一区二区三区| 色偷偷888欧美精品久久久| 狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲乱亚洲乱淫久久| 久久亚洲精精品中文字幕| 色8激情欧美成人久久综合电| 国内精品久久久久影院日本| 精品久久久无码21p发布| 国产99久久久久久免费看| 国产午夜精品久久久久免费视| 久久影院午夜理论片无码| 国产精品无码久久久久| 国产精品天天影视久久综合网| 日产精品久久久一区二区| 国产精品中文久久久久久久| 久久精品中文字幕有码| 久久99亚洲综合精品首页| 91精品观看91久久久久久| 国产三级久久久精品麻豆三级 | 人妻精品久久无码区| 狠狠色婷婷久久一区二区| 亚洲国产精品无码久久| 久久久无码精品亚洲日韩蜜臀浪潮| 天天影视色香欲综合久久| 久久精品亚洲福利| 无码乱码观看精品久久| 亚洲а∨天堂久久精品9966| 亚洲午夜精品久久久久久浪潮| 午夜精品久久影院蜜桃| 久久久久久久久久久久久久|