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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? win32msgloader.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
字號(hào):
/* * Copyright 1999-2001,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: Win32MsgLoader.cpp,v 1.12 2004/09/08 13:56:34 peiyongz Exp $ */// ---------------------------------------------------------------------------//  Includes// ---------------------------------------------------------------------------#include <xercesc/util/XercesDefs.hpp>#include <xercesc/util/PlatformUtils.hpp>#include <xercesc/util/XMLMsgLoader.hpp>#include <xercesc/util/XMLString.hpp>#include <xercesc/util/XMLUni.hpp>#include <windows.h>#include "Win32MsgLoader.hpp"//	Function prototypesBOOL APIENTRY DllMain(HINSTANCE hModule,                             DWORD  ul_reason_for_call,                             LPVOID lpReserved);// ---------------------------------------------------------------------------//  Public Constructors and Destructor// ---------------------------------------------------------------------------HINSTANCE globalModuleHandle;BOOL APIENTRY DllMain(HINSTANCE hModule,                      DWORD  ul_reason_for_call,                      LPVOID lpReserved){  switch (ul_reason_for_call) {  case DLL_PROCESS_ATTACH:    globalModuleHandle = hModule;    break;  case DLL_THREAD_ATTACH:    break;  case DLL_THREAD_DETACH:    break;  case DLL_PROCESS_DETACH:    break;  }  return TRUE;}XERCES_CPP_NAMESPACE_BEGIN// ---------------------------------------------------------------------------//  Global module handle// ---------------------------------------------------------------------------Win32MsgLoader::Win32MsgLoader(const XMLCh* const msgDomain) :    fDomainOfs(0)    , fModHandle(0)    , fMsgDomain(0){    // Try to get the module handle    fModHandle = globalModuleHandle;    if (!fModHandle)    {        //        //  If we didn't find it, its probably because its a development        //  build which is built as separate DLLs, so lets look for the DLL        //  that we are part of.        //        static const char* const privDLLName = "IXUTIL";        fModHandle = ::GetModuleHandleA(privDLLName);        // If neither exists, then we give up        if (!fModHandle)        {            // Probably have to call panic here        }    }    // Store the domain name    fMsgDomain = XMLString::replicate(msgDomain, XMLPlatformUtils::fgMemoryManager);    // And precalc the id offset we use for this domain    if (XMLString::equals(fMsgDomain, XMLUni::fgXMLErrDomain))        fDomainOfs = 0;    else if (XMLString::equals(fMsgDomain, XMLUni::fgExceptDomain))        fDomainOfs = 0x2000;    else if (XMLString::equals(fMsgDomain, XMLUni::fgValidityDomain))        fDomainOfs = 0x4000;    else if (XMLString::equals(fMsgDomain, XMLUni::fgXMLDOMMsgDomain))        fDomainOfs = 0x6000;    else        XMLPlatformUtils::panic(PanicHandler::Panic_UnknownMsgDomain);}Win32MsgLoader::~Win32MsgLoader(){    XMLPlatformUtils::fgMemoryManager->deallocate(fMsgDomain);//delete [] fMsgDomain;}// ---------------------------------------------------------------------------//  Implementation of the virtual message loader API// ---------------------------------------------------------------------------////  This is the method that actually does the work of loading a message from//  the attached resources. Note that we don't use LoadStringW here, since it//  won't work on Win98. So we go the next level down and do what LoadStringW//  would have done, since this will work on either platform.//bool Win32MsgLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad                            ,       XMLCh* const            toFill                            , const unsigned int            maxChars){    // In case we error return, and they don't check it...    toFill[0] = 0;    // Adjust the message id by the domain offset    const unsigned int theMsgId = msgToLoad + fDomainOfs;    //    //  Figure out the actual id the id, adjusting it by the domain offset.    //  Then first we calculate the particular 16 string block that this id    //  is in, and the offset within that block of the string in question.    //    const unsigned int theBlock = (theMsgId >> 4) + 1;    const unsigned int theOfs   = theMsgId & 0x000F;    // Try to find this resource. If we fail to find it, return false    HRSRC hMsgRsc = ::FindResourceEx    (        fModHandle        , RT_STRING        , MAKEINTRESOURCE(theBlock)        , MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)    );    if (!hMsgRsc)        return false;    // We found it, so load the block. If this fails, also return a false    HGLOBAL hGbl = ::LoadResource(fModHandle, hMsgRsc);    if (!hGbl)        return false;    // Lock this resource into memory. Again, if it fails, just return false    const XMLCh* pBlock = (const XMLCh*)::LockResource(hGbl);    if (!pBlock)        return false;    //    //  Look through the block for our desired message. Its stored such that    //  the zeroth entry has the length minus the separator null.    //    for (unsigned int index = 0; index < theOfs; index++)        pBlock += *pBlock + 1;    // Calculate how many actual chars we will end up with    const unsigned int actualChars = ((maxChars < *pBlock) ? maxChars : *pBlock);    // Ok, finally now copy as much as we can into the caller's buffer    wcsncpy(toFill, pBlock + 1, actualChars);    toFill[actualChars] = 0;    return true;}bool Win32MsgLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad                            ,       XMLCh* const            toFill                            , const unsigned int            maxChars                            , const XMLCh* const            repText1                            , const XMLCh* const            repText2                            , const XMLCh* const            repText3                            , const XMLCh* const            repText4                            , MemoryManager* const          manager){    // Call the other version to load up the message    if (!loadMsg(msgToLoad, toFill, maxChars))        return false;    // And do the token replacement    XMLString::replaceTokens(toFill, maxChars, repText1, repText2, repText3, repText4, manager);    return true;}bool Win32MsgLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad                            ,       XMLCh* const            toFill                            , const unsigned int            maxChars                            , const char* const             repText1                            , const char* const             repText2                            , const char* const             repText3                            , const char* const             repText4                            , MemoryManager* const          manager){    //    //  Transcode the provided parameters and call the other version,    //  which will do the replacement work.    //    XMLCh* tmp1 = 0;    XMLCh* tmp2 = 0;    XMLCh* tmp3 = 0;    XMLCh* tmp4 = 0;    bool bRet = false;    if (repText1)        tmp1 = XMLString::transcode(repText1, manager);    if (repText2)        tmp2 = XMLString::transcode(repText2, manager);    if (repText3)        tmp3 = XMLString::transcode(repText3, manager);    if (repText4)        tmp4 = XMLString::transcode(repText4, manager);    bRet = loadMsg(msgToLoad, toFill, maxChars, tmp1, tmp2, tmp3, tmp4, manager);    if (tmp1)        manager->deallocate(tmp1);//delete [] tmp1;    if (tmp2)        manager->deallocate(tmp2);//delete [] tmp2;    if (tmp3)        manager->deallocate(tmp3);//delete [] tmp3;    if (tmp4)        manager->deallocate(tmp4);//delete [] tmp4;    return bRet;}XERCES_CPP_NAMESPACE_END

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国模少妇一区二区三区| 日本成人在线电影网| 欧美人伦禁忌dvd放荡欲情| 精品在线观看视频| 亚洲国产精品麻豆| 国产日韩视频一区二区三区| 欧美日韩国产123区| 91视频com| 狠狠色丁香久久婷婷综合_中| 亚洲高清免费观看| 综合精品久久久| 久久综合久久综合九色| 在线91免费看| 在线亚洲高清视频| 99久久99久久精品免费观看| 国产精品一卡二卡在线观看| 视频一区视频二区在线观看| 一区二区三区欧美日| 亚洲日本电影在线| 欧美国产精品中文字幕| 精品国产免费一区二区三区四区 | 91蝌蚪porny| 国产不卡视频一区二区三区| 国产一区二区三区美女| 日韩国产在线一| 亚洲一区二区在线观看视频 | 亚洲欧洲日韩av| 欧美精品一区二区久久婷婷| 日韩欧美高清在线| 欧美va日韩va| 精品日本一线二线三线不卡| 日韩午夜电影av| 91精品国产麻豆国产自产在线| 欧美日韩国产中文| 欧美日韩免费电影| 欧美色倩网站大全免费| 欧美性极品少妇| 欧美日韩一区二区电影| 欧美中文字幕一二三区视频| 欧美主播一区二区三区| 欧美日韩大陆一区二区| 欧美一卡二卡在线| 欧美成va人片在线观看| 精品国产乱码久久久久久图片| 欧美一区二区三区在线看| 欧美肥胖老妇做爰| 欧美xxxx老人做受| 久久九九全国免费| 国产精品传媒在线| 一区二区三区国产| 婷婷久久综合九色综合绿巨人 | 国产一区二区精品在线观看| 狠狠色狠狠色综合日日91app| 国产又黄又大久久| 成人午夜视频网站| 91精彩视频在线观看| 欧美性受xxxx黑人xyx性爽| 欧美高清激情brazzers| 日韩欧美在线观看一区二区三区| 久久久久国产精品麻豆ai换脸| 中文字幕免费不卡在线| 亚洲愉拍自拍另类高清精品| 日本欧美肥老太交大片| 国产在线观看免费一区| 9人人澡人人爽人人精品| 欧美视频在线播放| 欧美精品一区二区久久婷婷| 亚洲日本在线观看| 青青草国产成人99久久| 国产成人在线观看免费网站| 日本韩国精品在线| 日韩一区二区在线播放| 国产欧美日韩激情| 亚洲福利视频导航| 国产一区二区伦理片| 在线视频你懂得一区| 精品国产免费人成在线观看| 亚洲图片另类小说| 秋霞国产午夜精品免费视频| 国产91丝袜在线播放| 欧美无人高清视频在线观看| 日韩欧美www| 亚洲欧美视频在线观看| 久久99精品一区二区三区三区| youjizz久久| 日韩精品中文字幕一区二区三区 | 亚洲成人激情社区| 国产成人精品一区二区三区四区| 欧美三日本三级三级在线播放| 精品99久久久久久| 亚洲一卡二卡三卡四卡无卡久久| 韩国成人福利片在线播放| 91久久精品午夜一区二区| 久久久久久久久岛国免费| 夜色激情一区二区| 国产精品 日产精品 欧美精品| 欧美影片第一页| 国产精品欧美一级免费| 蜜臀av一区二区在线观看 | 欧美日韩你懂得| 综合中文字幕亚洲| 国产精品正在播放| 欧美一区二区在线播放| 亚洲精品欧美激情| 高清成人在线观看| 3d成人h动漫网站入口| 玖玖九九国产精品| 色综合激情久久| 国产精品婷婷午夜在线观看| 麻豆国产欧美一区二区三区| 欧美视频精品在线观看| 亚洲精品视频在线看| 成人一区二区三区中文字幕| 久久影院午夜论| 免费观看在线综合色| 欧美日本免费一区二区三区| 亚洲综合图片区| 色屁屁一区二区| 亚洲另类色综合网站| 不卡的av中国片| 国产女主播视频一区二区| 国内成人自拍视频| 精品国产乱子伦一区| 久久精品国产网站| 日韩精品一区在线| 免费在线视频一区| 91精品国产aⅴ一区二区| 亚洲第一电影网| 欧美四级电影网| 亚洲高清视频中文字幕| 91国产成人在线| 一区二区三区资源| 色婷婷av久久久久久久| 一区二区在线看| 91福利国产精品| 亚洲一区二区三区中文字幕在线| 色综合色综合色综合色综合色综合 | 久久噜噜亚洲综合| 国产美女精品人人做人人爽| 久久精品欧美一区二区三区不卡 | 日韩欧美不卡一区| 韩国三级中文字幕hd久久精品| 久久综合色8888| 波波电影院一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 一本久道久久综合中文字幕| 一区二区成人在线视频| 欧美日韩一区在线观看| 日本一道高清亚洲日美韩| 日韩午夜三级在线| 国产精品一区二区在线观看网站| 国产午夜精品福利| 91视视频在线直接观看在线看网页在线看| 日韩伦理av电影| 欧美高清性hdvideosex| 国产一区二区在线观看视频| 国产精品午夜在线观看| 色狠狠av一区二区三区| 日韩精品欧美精品| 国产午夜精品一区二区三区嫩草| 成人免费电影视频| 亚洲综合图片区| 日韩美女天天操| 成人精品视频一区二区三区尤物| 亚洲人成电影网站色mp4| 欧美日韩国产综合久久| 激情伊人五月天久久综合| 国产精品成人免费| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲第一综合色| 精品日韩成人av| 欧美一区二区三区免费| 中文字幕高清不卡| 国产女同性恋一区二区| 国产传媒欧美日韩成人| 美女在线一区二区| 人妖欧美一区二区| 成人免费毛片嘿嘿连载视频| 99国产精品视频免费观看| 日韩av中文在线观看| 久久国产精品无码网站| 色爱区综合激月婷婷| 久久久99精品免费观看不卡| 91在线国产福利| 久久国产精品一区二区| 亚洲精品网站在线观看| 久久网站最新地址| 欧美日韩一区在线| 国产91在线观看| 蜜臀av一区二区在线免费观看 | 欧美情侣在线播放| 丁香五精品蜜臀久久久久99网站| 亚洲福利视频导航| 成人欧美一区二区三区在线播放| 欧美一区二区性放荡片| 91美女蜜桃在线| 国产成人精品一区二| 日本欧美一区二区三区| 亚洲男帅同性gay1069| ww久久中文字幕|