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

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

?? cpsk_skin.c

?? < VC++視頻音頻開發(fā)>> 這本書的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {
        pRect = &pSkin->mpl_rVScrollBar_Track_Tile;
        ppImage = &pSkin->mpl_pVScrollBar_TrackDn;
    }
    else
        return;

    // Set data members
    if(*ppImage)
        CPIG_DestroyImage(*ppImage);
    *ppImage = CPIG_CreateImage_FromSubFile(hComposite, cFile);
    *pRect = rTileBorders;
    if(*ppImage)
    {
        pRect->right = (*ppImage)->m_szSize.cx - rTileBorders.right;
        pRect->bottom = (*ppImage)->m_szSize.cy - rTileBorders.bottom;
    }
}
//
//
//
void CPSK_ReadSkinCommand_ButtonDraw(CP_COMPOSITEFILE hComposite, CPs_Skin* pSkin, const char* pcParams)
{
    char cElement[32];
    char cStates[12];
    char cFile[128];
    CPs_Image_WithState** ppImage;
    int iNumStates;

    // Decode params
    if(sscanf(pcParams, " %32[A-Za-z_-] , \"%128[^\"]\" , %12s ",
              cElement, cFile, cStates) != 3)
    {
        return;
    }

    // Setup number of states
    if(stricmp(cStates, "2State") == 0)
        iNumStates = 2;
    else
        iNumStates = 2;

    // Decide which data members are affected by this command
    if(stricmp(cElement, "HScrollBar_Left") == 0)
    {
        ppImage = &pSkin->mpl_pHScrollBar_Left;
    }
    else if(stricmp(cElement, "HScrollBar_Right") == 0)
    {
        ppImage = &pSkin->mpl_pHScrollBar_Right;
    }
    else if(stricmp(cElement, "VScrollBar_Up") == 0)
    {
        ppImage = &pSkin->mpl_pVScrollBar_Up;
    }
    else if(stricmp(cElement, "VScrollBar_Down") == 0)
    {
        ppImage = &pSkin->mpl_pVScrollBar_Down;
    }
    else
        return;

    // Set data members
    if(*ppImage)
        CPIG_DestroyImage_WithState(*ppImage);
    *ppImage = CPIG_CreateStateImage(CPIG_CreateImage_FromSubFile(hComposite, cFile), iNumStates);
}
//
//
//
DWORD CPSK_DecodeAlign(const char* pcAlign)
{
    char cAlign[1024];
    char cAlign_Remains[128];
    char cAlignFlag[128];
    DWORD dwAlignFlag = 0;

    strcpy(cAlign, pcAlign);
    while(sscanf(cAlign, " %128[a-zA-Z_] | %[^\0]", cAlignFlag, cAlign_Remains) > 0)
    {
        strcpy(cAlign, cAlign_Remains);
        cAlign_Remains[0] = '\0';

        if(stricmp(cAlignFlag, "ALIGN_LEFT") == 0)
            dwAlignFlag |= CPC_COMMANDTARGET_ALIGN_LEFT;
        else if(stricmp(cAlignFlag, "ALIGN_TOP") == 0)
            dwAlignFlag |= CPC_COMMANDTARGET_ALIGN_TOP;
        else if(stricmp(cAlignFlag, "ALIGN_RIGHT") == 0)
            dwAlignFlag |= CPC_COMMANDTARGET_ALIGN_RIGHT;
        else if(stricmp(cAlignFlag, "ALIGN_BOTTOM") == 0)
            dwAlignFlag |= CPC_COMMANDTARGET_ALIGN_BOTTOM;
    }

    return dwAlignFlag;
}
//
//
//
void CPSK_ReadSkinCommand_AddVerb(CP_COMPOSITEFILE hComposite, CPs_CommandTarget** ppCommandTarget, const char* pcParams)
{
    char cElement[32];
    char cStates[12];
    char cAlign[128];
    char cFile[128];
    int iNumStates;
    POINT ptOffset;
    wp_Verb pfnVerb = NULL;
    DWORD dwAlignFlag;
    CPs_CommandTarget* pNext;

    // Decode params
    if(sscanf(pcParams, " %32[A-Za-z_-] , \"%128[^\"]\" , %12[0-9a-zA-Z] , %d , %d , \"%128[^\"]\" ",
              cElement, cFile, cStates, &ptOffset.x, &ptOffset.y, cAlign) != 6)
    {
        return;
    }

    // Setup number of states
    if(stricmp(cStates, "3State") == 0)
        iNumStates = 3;
    else
        iNumStates = 2;

    // Find the verb with this name
    {
        int iVerbIDX;
        CPs_VerbQueryName queryname;

        queryname.m_pcName = cElement;
        queryname.m_bNameMatched = FALSE;
        for(iVerbIDX = 0; glb_pfnAllVerbs[iVerbIDX]; iVerbIDX++)
        {
            glb_pfnAllVerbs[iVerbIDX](vaQueryName, &queryname);
            if(queryname.m_bNameMatched)
            {
                pfnVerb = glb_pfnAllVerbs[iVerbIDX];
                break;
            }
        }
    }

    // Build the align flags
    dwAlignFlag = CPSK_DecodeAlign(cAlign);

    // Load state image
    pNext = *ppCommandTarget;
    *ppCommandTarget = (CPs_CommandTarget*)malloc(sizeof(CPs_CommandTarget));
    (*ppCommandTarget)->m_pStateImage = CPIG_CreateStateImage(CPIG_CreateImage_FromSubFile(hComposite, cFile), iNumStates);
    (*ppCommandTarget)->m_ptOffset = ptOffset;
    (*ppCommandTarget)->m_dwAlign = dwAlignFlag;
    (*ppCommandTarget)->m_pfnVerb = pfnVerb;
    (*ppCommandTarget)->m_pNext = pNext;
}
//
//
//
void CPSK_ReadSkinCommand_AddIndicator(CP_COMPOSITEFILE hComposite, CPs_Skin* pSkin, const char* pcParams)
{
    char cElement[32];
    char cAlign[128];
    RECT rOffset;
    DWORD dwAlignFlag;
    CPs_Indicator* pNext;

    // Decode params
    if(sscanf(pcParams, " %32[A-Za-z_-] , %d , %d , %d , %d , \"%128[^\"]\" ",
              cElement, &rOffset.left, &rOffset.top, &rOffset.right, &rOffset.bottom, cAlign) != 6)
    {
        return;
    }

    // Build the align flags
    dwAlignFlag = CPSK_DecodeAlign(cAlign);

    // Load state image
    pNext = pSkin->mpl_pIndicators;
    pSkin->mpl_pIndicators = (CPs_Indicator*)malloc(sizeof(CPs_Indicator));
    pSkin->mpl_pIndicators->m_pNext = pNext;
    pSkin->mpl_pIndicators->m_dwAlign = dwAlignFlag;
    pSkin->mpl_pIndicators->m_rAlign = rOffset;
    STR_AllocSetString(&pSkin->mpl_pIndicators->m_pcName, cElement, FALSE);

}
void CPSK_ReadSkinCommand_AddPlaylistVerb(CP_COMPOSITEFILE hComposite, CPs_Skin* pSkin, const char* pcParams)
{
    CPSK_ReadSkinCommand_AddVerb(hComposite, &pSkin->mpl_pCommandTargets, pcParams);
}
//
//
//
void CPSK_ReadSkinLine(CP_COMPOSITEFILE hComposite, CPs_Skin* pSkin, const char* pcLine)
{
    char cCommand[32];
    char cParams[480];

    // Decode command
    if(sscanf(pcLine, " %32s %480[^\0]", cCommand, cParams) != 2)
        return;

    // Skip comments
    if(cCommand[0] == '#')
        return;

    CP_TRACE2("Command:\"%s\" Params:\"%s\"", cCommand, cParams);
    if(stricmp(cCommand, "define") == 0)
        CPSK_ReadSkinCommand_Define(hComposite, pSkin, cParams);
    else if(stricmp(cCommand, "tileddraw") == 0)
        CPSK_ReadSkinCommand_TiledDraw(hComposite, pSkin, cParams);
    else if(stricmp(cCommand, "buttondraw") == 0)
        CPSK_ReadSkinCommand_ButtonDraw(hComposite, pSkin, cParams);
    else if(stricmp(cCommand, "addplaylistverb") == 0)
        CPSK_ReadSkinCommand_AddPlaylistVerb(hComposite, pSkin, cParams);
    else if(stricmp(cCommand, "addplaylistindicator") == 0)
        CPSK_ReadSkinCommand_AddIndicator(hComposite, pSkin, cParams);
}
//
//
//
CPs_Skin* CPSK_LoadSkin(CP_COMPOSITEFILE hComposite, const char* pcSkinFile, const unsigned int iFileSize)
{
    unsigned int iLastLineStartIDX, iCharIDX;
    CPs_Skin* pNewSkin = (CPs_Skin*)malloc(sizeof(CPs_Skin));
    memset(pNewSkin, 0, sizeof(*pNewSkin));

    // Read in the file line by line
    iLastLineStartIDX = 0;
    for(iCharIDX = 0; iCharIDX < iFileSize+1; iCharIDX++)
    {
        if( (pcSkinFile[iCharIDX] == '\r'
                || pcSkinFile[iCharIDX] == '\n'
                || iCharIDX == iFileSize)
                && iLastLineStartIDX < iCharIDX)
        {
            char cBuffer[512];
            int iBytesOnLine;

            iBytesOnLine = iCharIDX-iLastLineStartIDX;
            if(iBytesOnLine >= 512)
                iBytesOnLine = 511;
            memcpy(cBuffer, pcSkinFile + iLastLineStartIDX, iBytesOnLine);
            cBuffer[iBytesOnLine] = '\0';
            CPSK_ReadSkinLine(hComposite, pNewSkin, cBuffer);

            // Set the line start for the next line
            if(pcSkinFile[iCharIDX + 1] == '\n')
                iCharIDX++;
            iLastLineStartIDX = iCharIDX + 1;
        }
    }

    return pNewSkin;
}
//
//
//

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线视频一区| 国产在线精品一区二区三区不卡 | 亚洲精品免费在线| 色综合天天狠狠| 亚洲 欧美综合在线网络| 精品国产一区二区精华| 成人免费毛片aaaaa**| 一区二区三区在线视频免费 | 99久久久精品| 亚洲成人自拍一区| 精品国产三级电影在线观看| 欧美综合色免费| 国产**成人网毛片九色| 日本v片在线高清不卡在线观看| 日本一区二区三区国色天香| 日韩三级在线免费观看| 欧美中文一区二区三区| 成人精品亚洲人成在线| 久久99久久99| 午夜日韩在线观看| 亚洲自拍都市欧美小说| 亚洲欧美视频在线观看| 国产精品久久久久久户外露出| 欧美v日韩v国产v| 88在线观看91蜜桃国自产| 在线日韩一区二区| 91天堂素人约啪| 成人av在线播放网址| 国产精品自拍网站| 久久国产精品免费| 久久国产精品一区二区| 免费在线观看一区二区三区| 日韩在线卡一卡二| 亚洲第一搞黄网站| 一个色综合网站| 亚洲一区二区视频在线观看| 亚洲美女少妇撒尿| 亚洲欧美日韩在线| 亚洲精品成人在线| 一区二区三区资源| 亚洲精品五月天| 亚洲视频在线一区| 亚洲激情六月丁香| 亚洲在线视频免费观看| 亚洲国产日韩精品| 日韩黄色片在线观看| 日韩高清不卡在线| 蜜芽一区二区三区| 久久精品国产秦先生| 狠狠色丁香久久婷婷综合丁香| 国产一区二区三区久久久| 国产一区二区三区免费| 国产精品亚洲视频| 成人国产精品免费网站| 91美女在线视频| 欧美自拍偷拍午夜视频| 欧美在线观看18| 91精品国产全国免费观看| 日韩一级成人av| 国产亚洲短视频| 国产精品国产三级国产aⅴ中文| 亚洲精品精品亚洲| 午夜伦欧美伦电影理论片| 蜜臀av性久久久久蜜臀aⅴ| 国产精品一线二线三线精华| 成人91在线观看| 91国偷自产一区二区开放时间| 91精品办公室少妇高潮对白| 7777精品伊人久久久大香线蕉经典版下载| 欧美一级欧美三级| 中文字幕欧美国产| 一二三四社区欧美黄| 蜜桃一区二区三区在线观看| 成人深夜福利app| 欧美在线free| 久久精品综合网| 亚洲国产精品欧美一二99| 激情综合网天天干| 97精品国产露脸对白| 欧美日韩电影在线播放| 久久精品日韩一区二区三区| 亚洲精选视频免费看| 青青国产91久久久久久| 成人美女视频在线观看18| 欧美中文字幕亚洲一区二区va在线 | 亚洲欧美aⅴ...| 免费成人在线观看| 99视频在线观看一区三区| 6080国产精品一区二区| 久久精品人人爽人人爽| 亚洲电影一区二区三区| 国产一区二区三区不卡在线观看 | 午夜影视日本亚洲欧洲精品| 亚洲精品一二三| 美女在线视频一区| 91精品国产91久久久久久最新毛片| 日韩一二三四区| 夜夜亚洲天天久久| 国产成人午夜片在线观看高清观看| 国产精品中文字幕欧美| 欧美色区777第一页| 国产人久久人人人人爽| 亚洲国产精品尤物yw在线观看| 奇米一区二区三区av| 日韩欧美国产综合在线一区二区三区| 色久综合一二码| 久久久不卡网国产精品一区| 亚洲电影视频在线| caoporen国产精品视频| 久久久美女毛片| 美美哒免费高清在线观看视频一区二区| 成人美女视频在线观看| 2020国产精品| 久久精品国产亚洲高清剧情介绍| 欧美午夜在线观看| 又紧又大又爽精品一区二区| 粉嫩嫩av羞羞动漫久久久| 日韩精品一区国产麻豆| 亚洲成av人**亚洲成av**| 97精品国产97久久久久久久久久久久| 精品日韩一区二区三区免费视频| 午夜亚洲国产au精品一区二区| 不卡一区在线观看| 欧美激情一区二区在线| 韩国三级中文字幕hd久久精品| 欧美精品123区| 五月综合激情日本mⅴ| 在线观看91视频| 亚洲综合色自拍一区| 日本乱码高清不卡字幕| 亚洲美女免费视频| 色综合中文字幕| 一色屋精品亚洲香蕉网站| 99精品欧美一区二区三区综合在线| 久久亚洲一级片| 国产不卡在线视频| 中文欧美字幕免费| 丁香一区二区三区| 欧美高清在线一区| 99久久精品免费看| 亚洲男女一区二区三区| 在线观看成人免费视频| 亚洲国产成人av好男人在线观看| 91高清在线观看| 丝袜亚洲另类丝袜在线| 欧美精品在欧美一区二区少妇 | 亚洲成a人片在线不卡一二三区| 欧美综合天天夜夜久久| 亚洲宅男天堂在线观看无病毒| 欧美日韩中文字幕一区| 亚洲不卡一区二区三区| 91麻豆精品国产91久久久| 日韩中文字幕1| 精品成人a区在线观看| 国产成人福利片| 中文字幕一区二| 欧美亚洲国产一区二区三区va | 久久久国产精品麻豆| 国产成a人亚洲精品| 亚洲人妖av一区二区| 欧美日韩日日摸| 久久精品国产77777蜜臀| 欧美精品一区二区三区很污很色的| 国产一区在线看| 亚洲免费电影在线| 91精品国产高清一区二区三区 | 欧美成人性福生活免费看| 国产成人av自拍| 洋洋av久久久久久久一区| 91精品国产麻豆| 成人app软件下载大全免费| 亚洲一区二区三区四区不卡| 日韩午夜激情视频| 粉嫩在线一区二区三区视频| 亚洲午夜精品17c| 国产亚洲精品超碰| 91国产免费看| 国产乱色国产精品免费视频| 亚洲欧美日韩国产另类专区| 日韩一区二区三区av| 99久久99久久综合| 日本人妖一区二区| 中文字幕亚洲不卡| 日韩一区二区三区免费看| 成人精品高清在线| 蜜桃视频在线观看一区| 18成人在线视频| 精品国产免费人成电影在线观看四季| 99久久综合精品| 美女看a上一区| 亚洲在线一区二区三区| 久久免费视频一区| 欧美视频一区在线观看| 国产成人av资源| 国产乱国产乱300精品| 怡红院av一区二区三区| 久久久www免费人成精品| 欧美日韩国产片| 成年人网站91| 国产乱理伦片在线观看夜一区|