有个很少的C++源码急着需要翻译成其它源码,版主、高手请进。

本文提供了一段用于检测数据流编码的C++代码,并详细介绍了其工作原理及使用方法。该方法通过调用浏览器接口实现多种编码类型的识别。
有个很少的C++源码急着需要翻译成其它源码,版主、高手请进。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061121222102188.html
下面的源码是用来判断数据流的编码的,由一个叫jiangsheng的朋友提供,在此先谢谢他。  
  但是我不会用C++,现在急着需要用这个源码,请大虾们帮个忙,帮个忙把下面的源码翻译成vb\delphi或net的,或者做个DLL给我,最好是翻译成VB.NET的,小弟不胜感激,在此先谢谢了。Mail:237019683@qq.com

static   HRESULT   DetectCodePage(  
                  IStreamPtr   spStream,  
                  std::vector<DWORD>&   dwCodePages,  
                  DWORD   dwFlag   =   MLDETECTCP_8BIT,  
                  DWORD   dwPrefWinCodePage   =   0)  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  const   int   N   =   32;                                          
                  INT   nScores   =   N;  
                  DetectEncodingInfo   info[N];  
                  hr   =   DetectCodepageInIStream(  
                          dwFlag,  
                          dwPrefWinCodePage,  
                          spStream,  
                          info,  
                          &nScores);  
                  if   (FAILED(hr))  
                  {  
                          return   hr;  
                  }  
   
                  for   (int   i   =   0;   i   <   nScores;   i++)  
                  {  
                          dwCodePages.push_back(info[i].nCodePage);  
                  }  
   
                  return   S_OK;  
          }  
   
          //   IE5.0   or   lator  
          static   HRESULT   DetectCodepageInIStream(  
                  DWORD   dwFlag,  
                  DWORD   dwPrefWinCodePage,  
                  IStream   *pstmIn,  
                  DetectEncodingInfo   *lpEncoding,  
                  INT   *pnScores)  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  try  
                  {  
                          IMultiLanguage2Ptr   spMultiLanguage2   =   GetMultiLanguage();  
                          if   (spMultiLanguage2   ==   NULL)  
                          {  
                                  return   E_FAIL;  
                          }  
          这个是调用浏览器的spMultiLanguage2接口的一个方法DetectCodepageInIStream  
                          hr   =   spMultiLanguage2->DetectCodepageInIStream(  
                                  dwFlag,  
                                  dwPrefWinCodePage,  
                                  pstmIn,  
                                  lpEncoding,  
                                  pnScores);  
                          if   (FAILED(hr))  
                          {  
                                  return   hr;  
                          }  
                  }  
                  catch   (...)  
                  {  
                          return   E_FAIL;  
                  }  
   
                  return   S_OK;  
          }  
   
          static   IMultiLanguagePtr   GetMultiLanguage()  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  IMultiLanguagePtr   spMultiLanguage;  
                  hr   =   spMultiLanguage.CreateInstance(__uuidof(CMultiLanguage));  
                  if   (FAILED(hr))  
                  {  
                          return   NULL;  
                  }  
   
                  return   spMultiLanguage;  
          }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值