亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cygwintransservice.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
        // Make sure a whol char is in the source        if (inPtr + toEat > inEnd)            break;        // Try to translate this next char and check for an error        const unsigned int converted = ::MultiByteToWideChar        (            fWinCP            , MB_PRECOMPOSED | MB_ERR_INVALID_CHARS            , (const char*)inPtr            , toEat            , (LPWSTR)outPtr            , 1        );        if (converted != 1)        {            if (toEat == 1)            {                XMLCh tmpBuf[17];                XMLString::binToText((unsigned int)(*inPtr), tmpBuf, 16, 16, getMemoryManager());                ThrowXMLwithMemMgr2                (                    TranscodingException                    , XMLExcepts::Trans_BadSrcCP                    , tmpBuf                    , getEncodingName()                    , getMemoryManager()                );            }            else            {                ThrowXMLwithMemMgr(TranscodingException, XMLExcepts::Trans_BadSrcSeq, getMemoryManager());            }        }        // Update the char sizes array for this round        *sizesPtr++ = toEat;        // And update the bytes eaten count        bytesEaten += toEat;        // And update our in/out ptrs        inPtr += toEat;        outPtr++;    }    // Return the chars we output    return (outPtr - toFill);}unsigned intCygwinTranscoder::transcodeTo(const  XMLCh* const   srcData                            , const unsigned int    srcCount                            ,       XMLByte* const  toFill                            , const unsigned int    maxBytes                            ,       unsigned int&   charsEaten                            , const UnRepOpts       options){    // Get pointers to the start and end of each buffer    const XMLCh*    srcPtr = srcData;    const XMLCh*    srcEnd = srcData + srcCount;    XMLByte*        outPtr = toFill;    XMLByte*        outEnd = toFill + maxBytes;    //    //  Now loop until we either get our max chars, or cannot get a whole    //  character from the input buffer.    //    //  NOTE: We have to use a loop for this unfortunately because the    //  conversion API is too dumb to tell us how many chars it converted if    //  it couldn't do the whole source.    //    BOOL usedDef;    while ((outPtr < outEnd) && (srcPtr < srcEnd))    {        //        //  Do one char and see if it made it.        const unsigned int bytesStored = ::WideCharToMultiByte        (            fWinCP            , WC_COMPOSITECHECK | WC_SEPCHARS            , (LPCWSTR)srcPtr            , 1            , (char*)outPtr            , outEnd - outPtr            , 0            , &usedDef        );        // If we didn't transcode anything, then we are done        if (!bytesStored)            break;        //        //  If the defaault char was used and the options indicate that        //  this isn't allowed, then throw.        //        if (usedDef && (options == UnRep_Throw))        {            XMLCh tmpBuf[17];            XMLString::binToText((unsigned int)*srcPtr, tmpBuf, 16, 16, getMemoryManager());            ThrowXMLwithMemMgr2            (                TranscodingException                , XMLExcepts::Trans_Unrepresentable                , tmpBuf                , getEncodingName()                , getMemoryManager()            );        }        // Update our pointers        outPtr += bytesStored;        srcPtr++;    }    // Update the chars eaten    charsEaten = srcPtr - srcData;    // And return the bytes we stored    return outPtr - toFill;}bool CygwinTranscoder::canTranscodeTo(const unsigned int toCheck) const{    //    //  If the passed value is really a surrogate embedded together, then    //  we need to break it out into its two chars. Else just one.    //    XMLCh           srcBuf[2];    unsigned int    srcCount = 1;    if (toCheck & 0xFFFF0000)    {        srcBuf[0] = XMLCh((toCheck >> 10) + 0xD800);        srcBuf[1] = XMLCh(toCheck & 0x3FF) + 0xDC00;        srcCount++;    }    else    {        srcBuf[0] = XMLCh(toCheck);    }    //    //  Use a local temp buffer that would hold any sane multi-byte char    //  sequence and try to transcode this guy into it.    //    char tmpBuf[64];    BOOL usedDef;    const unsigned int bytesStored = ::WideCharToMultiByte    (        fWinCP        , WC_COMPOSITECHECK | WC_SEPCHARS        , (LPCWSTR)srcBuf        , srcCount        , tmpBuf        , 64        , 0        , &usedDef    );    if (!bytesStored || usedDef)        return false;    return true;}//---------------------------------------------------------------------------////  class CygwinTranscoder Implementation ...////---------------------------------------------------------------------------// ---------------------------------------------------------------------------//  CygwinLCPTranscoder: Constructors and Destructor// ---------------------------------------------------------------------------CygwinLCPTranscoder::CygwinLCPTranscoder(){}CygwinLCPTranscoder::~CygwinLCPTranscoder(){}// ---------------------------------------------------------------------------//  CygwinLCPTranscoder: Implementation of the virtual transcoder interface// ---------------------------------------------------------------------------unsigned int CygwinLCPTranscoder::calcRequiredSize(const char* const srcText                                                   , MemoryManager* const manager){    if (!srcText)        return 0;    return ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, srcText, -1, NULL, 0);}unsigned int CygwinLCPTranscoder::calcRequiredSize(const XMLCh* const srcText                                                   , MemoryManager* const manager){    if (!srcText)        return 0;    return ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)srcText, -1, NULL, 0, NULL, NULL);}char* CygwinLCPTranscoder::transcode(const XMLCh* const toTranscode){    if (!toTranscode)        return 0;    char* retVal = 0;    if (*toTranscode)    {        // Calc the needed size        const unsigned int neededLen = ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, NULL, 0, NULL, NULL);        if (neededLen == 0)            return 0;        // Allocate a buffer of that size plus one for the null and transcode        // Returned length of WideCharToMultiByte includes terminating NUL.        retVal = new char[neededLen+1];        ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, retVal, neededLen+1, NULL, NULL);        // And cap it off anyway just to make sure        retVal[neededLen] = 0;    }    else    {        retVal = new char[1];        retVal[0] = 0;    }    return retVal;}char* CygwinLCPTranscoder::transcode(const XMLCh* const toTranscode,                                     MemoryManager* const manager){    if (!toTranscode)        return 0;    char* retVal = 0;    if (*toTranscode)    {        // Calc the needed size        const unsigned int neededLen = ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, NULL, 0, NULL, NULL);        if (neededLen == 0)            return 0;        // Allocate a buffer of that size plus one for the null and transcode        // Returned length of WideCharToMultiByte includes terminating NUL.        retVal = (char*) manager->allocate((neededLen+1) * sizeof(char)); //new char[neededLen+1];        ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, retVal, neededLen+1, NULL, NULL);        // And cap it off anyway just to make sure        retVal[neededLen] = 0;    }    else    {        retVal = (char*) manager->allocate(sizeof(char)); //new char[1];        retVal[0] = 0;    }    return retVal;}XMLCh* CygwinLCPTranscoder::transcode(const char* const toTranscode){    if (!toTranscode)        return 0;    XMLCh* retVal = 0;    if (*toTranscode)    {        // Calculate the buffer size required        const unsigned int neededLen = ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, NULL, 0);        if (neededLen == 0)            return 0;        // Allocate a buffer of that size plus one for the null and transcode        retVal = new XMLCh[neededLen + 1];        ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, (LPWSTR)retVal, neededLen + 1);        // Cap it off just to make sure. We are so paranoid!        retVal[neededLen] = 0;    }    else    {        retVal = new XMLCh[1];        retVal[0] = 0;    }    return retVal;}XMLCh* CygwinLCPTranscoder::transcode(const char* const toTranscode,                                      MemoryManager* const manager){    if (!toTranscode)        return 0;    XMLCh* retVal = 0;    if (*toTranscode)    {        // Calculate the buffer size required        const unsigned int neededLen = ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, NULL, 0);        if (neededLen == 0)            return 0;        // Allocate a buffer of that size plus one for the null and transcode        retVal = (XMLCh*) manager->allocate((neededLen + 1) * sizeof(XMLCh)); //new XMLCh[neededLen + 1];        ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, (LPWSTR)retVal, neededLen + 1);        // Cap it off just to make sure. We are so paranoid!        retVal[neededLen] = 0;    }    else    {        retVal = (XMLCh*) manager->allocate(sizeof(XMLCh)); //new XMLCh[1];        retVal[0] = 0;    }    return retVal;}bool CygwinLCPTranscoder::transcode( const   char* const    toTranscode                                    ,       XMLCh* const    toFill                                    , const unsigned int    maxChars                                    , MemoryManager* const  manager){    // Check for a couple of psycho corner cases    if (!toTranscode || !maxChars)    {        toFill[0] = 0;        return true;    }    if (!*toTranscode)    {        toFill[0] = 0;        return true;    }    // This one has a fixed size output, so try it and if it fails it fails    if ( 0 == ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, (LPWSTR)toFill, maxChars + 1) )        return false;    return true;}bool CygwinLCPTranscoder::transcode( const  XMLCh* const    toTranscode                                    ,       char* const     toFill                                    , const unsigned int    maxBytes                                    , MemoryManager* const  manager){    // Watch for a couple of pyscho corner cases    if (!toTranscode || !maxBytes)    {        toFill[0] = 0;        return true;    }    if (!*toTranscode)    {        toFill[0] = 0;        return true;    }    // This one has a fixed size output, so try it and if it fails it fails    if ( 0 == ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, toFill, maxBytes + 1, NULL, NULL) )        return false;    // Cap it off just in case    toFill[maxBytes] = 0;    return true;}XERCES_CPP_NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品三级在线看| 欧美自拍偷拍一区| 日韩中文字幕亚洲一区二区va在线| 国产三级一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 日韩一区二区免费在线观看| 欧美疯狂性受xxxxx喷水图片| 欧美美女直播网站| 91精品国产一区二区三区蜜臀| 91麻豆精品国产综合久久久久久| 制服丝袜国产精品| 日韩午夜三级在线| 国产日韩精品一区二区三区在线| 久久久久97国产精华液好用吗| 中文字幕高清一区| 亚洲欧美综合另类在线卡通| 亚洲另类在线制服丝袜| 中文字幕免费不卡| 欧美精品一区二区精品网| 国产成人精品免费看| 美女久久久精品| 免费av成人在线| 青青草原综合久久大伊人精品| 亚洲国产裸拍裸体视频在线观看乱了 | 天天色综合成人网| 国产精品国产馆在线真实露脸| 99久久久久免费精品国产| 风间由美一区二区三区在线观看 | 精品免费日韩av| 欧美日韩精品电影| 欧美影片第一页| 午夜精品一区二区三区免费视频| 亚洲人精品午夜| 欧美不卡激情三级在线观看| 欧美aaa在线| 欧美电视剧在线观看完整版| 99精品国产99久久久久久白柏| 欧美日韩一区久久| 一区二区三区在线观看网站| 中文字幕一区二区视频| 亚洲福利国产精品| 午夜精品久久久久久久久久久| 亚洲午夜久久久久久久久电影院| 久久69国产一区二区蜜臀 | 精品一区二区三区视频在线观看 | 日本福利一区二区| 欧美日韩在线免费视频| 日韩视频一区二区三区在线播放 | 玉米视频成人免费看| 亚洲国产精品一区二区尤物区| 美女一区二区久久| 久久爱www久久做| 日韩福利电影在线| 成人免费毛片aaaaa**| 国产ts人妖一区二区| 一本大道综合伊人精品热热| 欧美一级电影网站| 中文字幕av资源一区| 亚洲成人av中文| 亚洲欧美综合在线精品| 美国av一区二区| 99国内精品久久| 日韩欧美国产三级电影视频| 一区二区三区欧美| 激情小说欧美图片| 99久久免费视频.com| 在线亚洲+欧美+日本专区| 制服丝袜成人动漫| 亚洲女爱视频在线| 亚洲地区一二三色| 国产很黄免费观看久久| 一本久久精品一区二区| 欧美一级淫片007| 亚洲婷婷综合久久一本伊一区| 午夜精品福利一区二区蜜股av| 开心九九激情九九欧美日韩精美视频电影 | 亚洲欧洲精品一区二区精品久久久 | 一片黄亚洲嫩模| 久色婷婷小香蕉久久| 在线视频国内自拍亚洲视频| 日韩欧美在线影院| 夜夜嗨av一区二区三区网页| 国产成人精品一区二区三区四区| 欧美伦理视频网站| 国产精品欧美经典| 国产精品综合在线视频| 在线电影院国产精品| 中文字幕一区视频| 国产福利精品导航| 精品乱人伦小说| 蜜桃久久精品一区二区| 欧美巨大另类极品videosbest| 亚洲日本免费电影| av亚洲精华国产精华精| 日本韩国精品一区二区在线观看| 中文字幕国产一区二区| 国产91精品一区二区麻豆网站 | 欧美色偷偷大香| 亚洲欧洲精品成人久久奇米网| 国产麻豆成人精品| 国产91精品一区二区麻豆亚洲| 久久先锋影音av鲁色资源网| 国产精品自拍三区| 欧美一区2区视频在线观看| 三级久久三级久久| 久久精品99久久久| 91视频在线看| 国产精品视频线看| 99v久久综合狠狠综合久久| 国产精品私人自拍| 豆国产96在线|亚洲| 国产精品久久久久毛片软件| 成人av网站在线观看| 日本欧美在线观看| 日韩欧美国产一区二区三区 | 在线国产电影不卡| 亚洲欧美日韩国产综合在线| 91精品婷婷国产综合久久| 日韩激情一区二区| 久久一日本道色综合| 欧美伊人久久久久久久久影院| 五月婷婷欧美视频| 亚洲不卡av一区二区三区| 欧美大片拔萝卜| 国模套图日韩精品一区二区| 一区二区三区中文字幕| 国产视频一区在线播放| 99综合电影在线视频| 亚洲欧美日韩国产手机在线| 欧美体内she精高潮| 免费人成在线不卡| 亚洲自拍与偷拍| 欧美变态口味重另类| 国产a精品视频| 久久99精品久久久久久久久久久久 | 欧美精品第1页| 日日嗨av一区二区三区四区| 久久综合精品国产一区二区三区| 97久久久精品综合88久久| 欧美tickling网站挠脚心| 欧美一区二区三区视频在线 | 久久www免费人成看片高清| 国产又黄又大久久| 亚洲福利视频一区二区| 久久久久久久网| 91麻豆精品国产91久久久| 久久精品99国产精品| 久久综合久久综合久久综合| 91福利视频在线| aaa亚洲精品一二三区| 国内外成人在线视频| 日韩欧美电影一区| 极品销魂美女一区二区三区| 日本一区二区成人| 欧美色成人综合| 国产美女一区二区| 亚洲va中文字幕| 国产日产欧美一区| 制服丝袜一区二区三区| 九色综合狠狠综合久久| 一区二区三区免费| 国产欧美精品一区二区色综合 | 久久成人免费网站| 一二三区精品福利视频| 久久久久久亚洲综合| 91精品国产aⅴ一区二区| 欧美中文字幕一二三区视频| 91网站在线观看视频| 狠狠色狠狠色合久久伊人| 一区二区三区在线免费| 亚洲欧洲日韩女同| 久久精品欧美日韩| wwwwww.欧美系列| 日韩欧美国产一区二区三区| 7799精品视频| 精品视频123区在线观看| 在线观看91视频| 色狠狠av一区二区三区| 亚洲一区二区三区爽爽爽爽爽 | 欧美年轻男男videosbes| 91在线观看地址| 欧美偷拍一区二区| 欧美专区亚洲专区| 国产精品 欧美精品| 国产精品久久久久久久久免费桃花 | 亚洲第一二三四区| 丝袜美腿成人在线| 丝袜亚洲另类欧美| 蜜臀av性久久久久av蜜臀妖精| 久久99日本精品| 精品一区二区三区免费视频| 精品一区二区三区在线视频| 久久精品国产免费| 国产一区不卡视频| 成人免费三级在线| 在线免费观看日本一区| 欧美老人xxxx18| 99久久免费精品| 色天天综合色天天久久| 欧美电影一区二区|