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

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

?? cpi_playlistwindow.c

?? VC++視頻開發(fā)實例集錦(包括“遠程視頻監(jiān)控”"語音識別系統(tǒng)"等13個經(jīng)典例子)
?? C
?? 第 1 頁 / 共 4 頁
字號:
                || pMSG->message == WM_NCRBUTTONDOWN)
                && pMSG->hwnd != windows.wnd_playlist_IPEdit)
        {
            // Get the classname to ensure that it's not our combo popup that's got the message
            char cClassname[64];
            GetClassName(pMSG->hwnd, cClassname, 64);
            if(strcmp("ComboLBox", cClassname))
                CPlaylistWindow_DestroyIPEdit();
        }
    }

    if(globals.m_hhkListView_Posted)
        return CallNextHookEx(globals.m_hhkListView_Posted, iCode, wParam, lParam);
    else
        return 0;
}
//
//
//
void CPlaylistWindow_TrackStackMenu(iItem)
{
    HWND hWndList;
    POINT ptItem;
    RECT rSubItem;
    HMENU hmMenu;
    UINT uiMenuCommand;
    int iSearchItemIDX;
    CP_HPLAYLISTITEM hClickedItem;
    CPe_ItemStackState enClickedItemState;
    BOOL bMultipleSelection;

    // We want to get the subitem's rect in the co-ordinate space of the dialog
    hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl);
    CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, 0);

    // Are there multiple items selected?
    iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
    if(iSearchItemIDX != CPC_INVALIDITEM)
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);
    if(iSearchItemIDX != CPC_INVALIDITEM)
        bMultipleSelection = TRUE;
    else
        bMultipleSelection = FALSE;

    ptItem.x = rSubItem.left;
    ptItem.y = rSubItem.bottom;
    ClientToScreen(hWndList, &ptItem);

    // Create menu
    hmMenu = CreatePopupMenu();

    hClickedItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iItem);
    enClickedItemState = CPL_Stack_GetItemState(globals.m_hPlaylist, hClickedItem);
    if(enClickedItemState != issUnstacked)
    {
        AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYFROMHERE, "Play from here");
        SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYFROMHERE, FALSE);

        if(enClickedItemState != issStacked_Top)
        {
            AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next");
            AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_UNSTACK, "Unstack");
        }

        // Not played yet?
        if(enClickedItemState == issStacked || enClickedItemState == issStacked_Top)
        {
            if(options.repeat_playlist == TRUE)
            {
                AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Repeat after this");
                AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER_NOREP, "Stop after this (repeat->off)");
            }
            else
            {
                AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Stop after this");
            }
        }

        if(enClickedItemState != issStacked_Top)
            AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end");
    }
    else
    {
        AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNOW, "Play now");
        SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYNOW, FALSE);

        AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next");
        AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end");
    }

    AppendMenu(hmMenu, MF_SEPARATOR, 0, NULL);
    AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_CLEARSTACK, "Clear stack");
    AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_RESTACKALL, "Restack all");

    uiMenuCommand = TrackPopupMenuEx(	hmMenu,
                                      TPM_NONOTIFY
                                      | TPM_RETURNCMD
                                      | TPM_RIGHTBUTTON,
                                      ptItem.x, ptItem.y,
                                      IF_GetHWnd(windows.m_hifPlaylist),
                                      NULL);
    DestroyMenu(hmMenu);

    if(uiMenuCommand == IDC_CMDTS_CLEARSTACK)
    {
        CPL_Stack_Clear(globals.m_hPlaylist);
    }
    else if(uiMenuCommand == IDC_CMDTS_RESTACKALL)
    {
        CPL_Stack_RestackAll(globals.m_hPlaylist);
    }
    else if(uiMenuCommand == IDC_CMDTS_PLAYFROMHERE)
    {
        CPL_Stack_SetCursor(globals.m_hPlaylist, hClickedItem);
        CPL_PlayItem(globals.m_hPlaylist, TRUE, pmCurrentItem);
    }
    else if(uiMenuCommand == IDC_CMDTS_UNSTACK)
    {
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        while(iSearchItemIDX != CPC_INVALIDITEM)
        {
            CPL_Stack_Remove(globals.m_hPlaylist, (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX) );
            iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);
        }
    }
    else if(uiMenuCommand == IDC_CMDTS_PLAYNOW)
    {
        CP_HPLAYLISTITEM hFirstItem;

        CPL_Stack_ClipFromCurrent(globals.m_hPlaylist);
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        hFirstItem = NULL;
        while(iSearchItemIDX != CPC_INVALIDITEM)
        {
            CP_HPLAYLISTITEM hItem;

            hItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX);
            if(!hFirstItem)
                hFirstItem = hItem;
            CPL_Stack_Append(globals.m_hPlaylist, hItem);
            iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);
        }
        CPL_Stack_SetCursor(globals.m_hPlaylist, hFirstItem);
        CPL_PlayItem(globals.m_hPlaylist, TRUE, pmCurrentItem);
    }
    else if(uiMenuCommand == IDC_CMDTS_STOPAFTER)
    {
        CPL_Stack_ClipFromItem(globals.m_hPlaylist, hClickedItem);
    }
    else if(uiMenuCommand == IDC_CMDTS_STOPAFTER_NOREP)
    {
        options.repeat_playlist = FALSE;
        InvalidateRect(windows.wnd_main, NULL, FALSE);
        CPL_Stack_ClipFromItem(globals.m_hPlaylist, hClickedItem);
    }
    else if(uiMenuCommand == IDC_CMDTS_PLAYNEXT)
    {
        iSearchItemIDX = CLV_GetPrevSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        while(iSearchItemIDX != CPC_INVALIDITEM)
        {
            CPL_Stack_PlayNext(globals.m_hPlaylist, (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX) );
            iSearchItemIDX = CLV_GetPrevSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);
        }
    }
    else if(uiMenuCommand == IDC_CMDTS_QUEUE)
    {
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        while(iSearchItemIDX != CPC_INVALIDITEM)
        {
            CP_HPLAYLISTITEM hItem;

            hItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX);

            CPL_Stack_Remove(globals.m_hPlaylist, hItem);
            CPL_Stack_Append(globals.m_hPlaylist, hItem);
            iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);
        }
    }
}
//
//
//
void CPlaylistWindow_RenameMenu(const int iItem, const int iSubItem)
{
    HWND hWndList;
    POINT ptItem;
    RECT rSubItem;
    HMENU hmMenu;
    UINT uiMenuCommand;

    // We want to get the subitem's rect in the co-ordinate space of the dialog
    hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl);
    CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, iSubItem);
    ptItem.x = rSubItem.left;
    ptItem.y = rSubItem.bottom;
    ClientToScreen(hWndList, &ptItem);

    // Create menu
    hmMenu = CreatePopupMenu();

    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistAlbumNumberTitle, "Rename to <artist> - <album> - <tracknum> - <title>");
    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistNumberTitle, "Rename to <artist> - <tracknum> - <title>");
    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumberTitle, "Rename to <album> - <tracknum> - <title>");
    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumber, "Rename to <album> - <tracknum>");
    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsNumberTitle, "Rename to <tracknum> - <title>");
    AppendMenu(hmMenu, MF_STRING, (DWORD)rwsTitle, "Rename to <title>");

    uiMenuCommand = TrackPopupMenuEx(	hmMenu,
                                      TPM_NONOTIFY
                                      | TPM_RETURNCMD
                                      | TPM_RIGHTBUTTON,
                                      ptItem.x, ptItem.y,
                                      IF_GetHWnd(windows.m_hifPlaylist),
                                      NULL);
    DestroyMenu(hmMenu);

    if(uiMenuCommand)
    {
        int iSearchItemIDX;
        int iNumberOfErrors;

        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        iNumberOfErrors = 0;
        while(iSearchItemIDX != CPC_INVALIDITEM)
        {
            BOOL bSucceeded;
            bSucceeded = CPLI_RenameTrack((CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX),
                                          (CPe_FilenameFormat)uiMenuCommand);
            iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);

            if(!bSucceeded)
                iNumberOfErrors++;
        }

        if(iNumberOfErrors > 0)
        {
            MessageBox(IF_GetHWnd(windows.m_hifPlaylist),
                       "Some files could not be renamed.\n\nThis could be because they are either currently playing or are read-only.",
                       "Error",
                       MB_OK | MB_ICONASTERISK);
        }
    }
}
//
//
//
void CPlaylistWindow_CreateIPEdit(const int iItem, const int iSubItem)
{
    RECT rSubItem;
    const char* pcClass;
    DWORD dwStyle;
    int iSearchItemIDX;
    UINT uiControlID;
    BOOL bClearNonSelectedItems;
    CP_HPLAYLISTITEM hClickedItem;
    HWND hWndList;
    int iNumItemsSelected;

    // If the clicked item is not read/write then skip this
    hClickedItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iItem);
    if(CPLI_GetReadWriteState(hClickedItem) != rwsReadWrite)
    {
        MessageBox(windows.m_hWndPlaylist, "This file's ID3 tag cannot be updated.  This is because CoolPlayer cannot write to this file.", "Cannot update tag", MB_OK | MB_ICONSTOP);
        return;
    }

    // For some sub items it is not logical to multi update - action these
    if(iSubItem == PLAYLIST_TITLE)
        bClearNonSelectedItems = TRUE;
    else
        bClearNonSelectedItems = FALSE;

    // Go through the selected items and remove the selection of items that
    // cannot be written to (eg because of a read only file)
    iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
    iNumItemsSelected = 1;
    for(;iSearchItemIDX != -1; iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX))
    {
        CP_HPLAYLISTITEM hItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX);
        CPLI_ReadTag(hItem);

        // We've already checked this item
        if(iSearchItemIDX == iItem)
            continue;

        iNumItemsSelected++;
        if(bClearNonSelectedItems == TRUE || CPLI_GetReadWriteState(hItem) != rwsReadWrite)
            CLV_SetItemSelected(globals.m_hPlaylistViewControl, iSearchItemIDX, FALSE);
    }

    // If the "track number" column was clicked - and there are multiple selections - auto number them
    if(iSubItem == PLAYLIST_TRACKNUM && iNumItemsSelected > 1)
    {
        char cStatusMessage[1024];
        int iTrackNumber;

        // Autonumber
        SetCursor(LoadCursor(NULL, IDC_WAIT));
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        iTrackNumber = 1;
        for(;iSearchItemIDX != CPC_INVALIDITEM; iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX))
        {
            CP_HPLAYLISTITEM hItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX);

            sprintf(cStatusMessage, "Tagging \"%s\"", CPLI_GetFilename(hItem));
 			CP_TRACE1("status: %s",cStatusMessage);
           CPIC_SetIndicatorValue("status", cStatusMessage);
            UpdateWindow(IF_GetHWnd(windows.m_hifPlaylist));

//            CPLI_SetTrackNum(hItem, iTrackNumber);
            CPLI_WriteTag(hItem);
            iTrackNumber++;
        }
        SetCursor(LoadCursor(NULL, IDC_ARROW));
        CPIC_SetIndicatorValue("status", NULL);
        return;
    }

    // If the length was clicked - work out the lengths for all selected items
    if(iSubItem == PLAYLIST_LENGTH)
    {
        char cStatusMessage[1024];

        SetCursor(LoadCursor(NULL, IDC_WAIT));
        iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);
        for(; iSearchItemIDX != CPC_INVALIDITEM; iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX))
        {
            CP_HPLAYLISTITEM hItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX);

            CPLI_CalculateLength(hItem);
            sprintf(cStatusMessage, "Tagging \"%s\"", CPLI_GetFilename(hItem));
            
			CPIC_SetIndicatorValue("status", cStatusMessage);
			CP_TRACE1("status: %s",cStatusMessage);
           UpdateWindow(IF_GetHWnd(windows.m_hifPlaylist));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品―色哟哟| hitomi一区二区三区精品| 欧美成人在线直播| 免费成人在线网站| 日韩欧美久久久| 久久99精品久久只有精品| 精品日韩一区二区三区免费视频| 免费精品视频在线| 26uuuu精品一区二区| 国产大片一区二区| 国产精品久久久久久久浪潮网站| 日韩视频在线你懂得| 久久久久久免费| 欧美一区二区福利视频| 久久人人超碰精品| 国产成人av电影在线播放| 国产日韩一级二级三级| 国产91精品精华液一区二区三区| 国产精品天天摸av网| 色综合婷婷久久| 亚洲成av人影院在线观看网| 日韩一区二区免费高清| 国产一区二区三区香蕉| 综合中文字幕亚洲| 欧美精三区欧美精三区| 经典三级一区二区| ●精品国产综合乱码久久久久| 色婷婷av久久久久久久| 日本美女一区二区三区| 国产无人区一区二区三区| 99久久99久久精品免费观看| 天天色综合成人网| 久久精品亚洲乱码伦伦中文 | 成人一级黄色片| 国产精品一区二区男女羞羞无遮挡| 一本大道久久a久久精二百| 午夜视频在线观看一区| 久久久亚洲高清| 91色.com| 久久精品国内一区二区三区| 国产精品欧美久久久久一区二区| 欧美日韩亚洲综合一区二区三区| 国内精品久久久久影院色| 中文字幕在线观看不卡| 欧美一级夜夜爽| 成人黄色一级视频| 丝袜诱惑制服诱惑色一区在线观看| 久久久久久久久97黄色工厂| 欧美日韩黄色一区二区| 国产99久久久精品| 午夜激情一区二区三区| 欧美激情一区二区三区蜜桃视频| 欧美日本韩国一区| 国产精品亚洲综合一区在线观看| 欧美一级欧美三级| 日韩女优av电影| 欧美欧美欧美欧美首页| 一区二区三区av电影 | 26uuu久久天堂性欧美| 成人激情小说网站| 韩国一区二区视频| 日韩精品午夜视频| 亚洲天堂免费在线观看视频| 久久久五月婷婷| 欧美一区二区三区免费| 91蝌蚪porny九色| 国产传媒一区在线| 欧美a级理论片| 亚洲福利视频一区二区| 中文字幕综合网| 国产欧美久久久精品影院| 日韩欧美一区二区三区在线| 欧美日产在线观看| 欧美网站一区二区| 国产91精品免费| 久久精品99国产精品| 日韩一级二级三级| 东方aⅴ免费观看久久av| 日韩福利电影在线观看| 亚洲福利一区二区| 一区二区在线观看免费 | 亚洲成人自拍网| 亚洲精品va在线观看| 亚洲欧美日韩国产成人精品影院| 中文字幕第一区二区| 国产欧美视频一区二区三区| 久久久亚洲午夜电影| 国产日韩视频一区二区三区| 久久综合色鬼综合色| 26uuu色噜噜精品一区二区| 精品成人私密视频| 337p日本欧洲亚洲大胆色噜噜| 日韩精品一区二区三区视频| 日韩美女天天操| 久久综合九色综合欧美98| 日韩欧美亚洲国产精品字幕久久久 | 91精彩视频在线观看| 美女国产一区二区三区| 国产欧美一区二区精品性色| 国产人成一区二区三区影院| 久久久久久久综合日本| 欧美国产综合一区二区| 最新热久久免费视频| 亚洲一区二区四区蜜桃| 午夜精品福利在线| 精品一区二区三区在线播放| 国产成人精品免费网站| 波多野结衣精品在线| 欧美在线影院一区二区| 91精品国产入口在线| 精品国产3级a| 国产精品看片你懂得| 亚洲r级在线视频| 久久疯狂做爰流白浆xx| 成人丝袜高跟foot| 欧美亚洲高清一区| 精品日韩在线一区| 亚洲欧洲国产日本综合| 在线观看一区不卡| 欧美激情一区三区| 精品国产乱子伦一区| 久久久久久久久久久久电影 | 91小视频免费观看| 99久久精品国产麻豆演员表| 91久久人澡人人添人人爽欧美 | 精品视频免费在线| 欧美精品一区在线观看| 国产精品天干天干在线综合| 中文字幕亚洲一区二区av在线| 亚洲精品福利视频网站| 日韩av电影免费观看高清完整版| 国产成人午夜精品影院观看视频 | 3751色影院一区二区三区| 日韩欧美一区二区三区在线| 国产亚洲综合色| 亚洲午夜一区二区| 国产永久精品大片wwwapp| 91在线一区二区| 在线不卡的av| 亚洲国产精品二十页| 久久精品视频免费观看| 午夜视频在线观看一区| 久久99国产精品成人| 91女人视频在线观看| 欧美精选午夜久久久乱码6080| 久久只精品国产| 午夜电影一区二区三区| 欧美日韩在线综合| 久久久久久9999| 一区二区免费视频| 国产一区不卡在线| 91美女蜜桃在线| 久久综合色天天久久综合图片| 一区二区三区在线影院| 国产麻豆成人精品| 欧美日产在线观看| 亚洲乱码国产乱码精品精小说| 国产在线一区二区| 在线观看不卡视频| 国产精品美女一区二区在线观看| 日韩在线播放一区二区| 欧美视频三区在线播放| 日本一区二区三区四区在线视频| 日本一不卡视频| 日本韩国视频一区二区| 日本一区二区三区在线不卡 | 精品剧情在线观看| 亚洲午夜羞羞片| 色琪琪一区二区三区亚洲区| 国产午夜三级一区二区三| 日本女优在线视频一区二区| 91国产丝袜在线播放| 国产精品毛片大码女人 | 亚洲高清免费一级二级三级| 99综合电影在线视频| 久久精品夜色噜噜亚洲aⅴ| 日本不卡一二三区黄网| 欧美日韩中文字幕精品| 国产精品久久午夜| 丰满白嫩尤物一区二区| 欧美不卡视频一区| 免费成人在线观看| 91精品欧美综合在线观看最新| 秋霞av亚洲一区二区三| 欧美日韩久久一区二区| 亚洲综合一区在线| 91亚洲国产成人精品一区二区三| 欧美激情在线观看视频免费| kk眼镜猥琐国模调教系列一区二区 | 日韩欧美在线123| 午夜精品在线视频一区| 欧美三级视频在线播放| 日本网站在线观看一区二区三区 | 99re热这里只有精品免费视频| 国产人久久人人人人爽| 成人一区二区在线观看| 中文字幕免费不卡| 色呦呦国产精品| 国产精品中文欧美| 国产丝袜在线精品|