⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 propertydlg.cpp

📁 media player 控件源码 用EVC编译可以进行对WINCE下media player控制
💻 CPP
📖 第 1 页 / 共 4 页
字号:
        item.iItem   = itemNumber;
        item.pszText = property;
        if (ListView_InsertItem(m_hListView, &item) != -1)
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        SysFreeString(property);
    }

    // Clip Description
    if (pMediaContent)
    {
        property = L"";
        pMediaContent->get_Description(&property);
    }

    if (*property)
    {
        item.iItem   = itemNumber;
        item.pszText = L"Clip Album:";

        if (ListView_InsertItem(m_hListView, &item) != -1)
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        item.iItem   = itemNumber;
        item.pszText = property;
        if (ListView_InsertItem(m_hListView, &item) != -1)
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        SysFreeString(property);
    }

    // Clip Copyright
    if (pMediaContent)
    {
        property = L"";
        pMediaContent->get_Copyright(&property);
    }

    if (*property)
    {
        item.iItem   = itemNumber;
        item.pszText = L"Clip Copyright:";
        if (ListView_InsertItem(m_hListView, &item) != -1)
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        item.iItem   = itemNumber;
        item.pszText = property;
        if (ListView_InsertItem(m_hListView, &item) != -1)
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        SysFreeString(property);
    }

    // Filename
    item.iItem   = itemNumber;
    item.pszText = L"Filename:";
    if (ListView_InsertItem(m_hListView, &item) != -1)
        itemNumber++;

    if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
        && size.cx > cx)
        cx = size.cx;

    TCHAR * slash = wcsrchr(szFilename, L'\\');
    item.iItem   = itemNumber;
    item.pszText = slash ? ++slash : szFilename;
    if (ListView_InsertItem(m_hListView, &item) != -1)
        itemNumber++;

    if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
        && size.cx > cx)
        cx = size.cx;

    // duration
    if (NULL != pims)
    {
        double   dDuration  = 0.0;
        LONGLONG llDuration = 0;

        pims->GetDuration(&llDuration);

        if (llDuration)
        {
            WCHAR durationText[10] = L"";

            dDuration = llDuration / 1E7;

            Time2String(dDuration, durationText, 10, FALSE, FALSE, L":", L".");

            item.iItem = itemNumber;
            item.pszText = L"Duration:";
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            item.iItem = itemNumber;
            item.pszText = durationText;
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;
        }
    }

    // audio info
    AUDIOINFO audioInfo;
    memset(&audioInfo, 0, sizeof (AUDIOINFO));
    if (SUCCEEDED(AudioInfo(&audioInfo, piba, pnsep, psmc)))
    {
        // codec description
        if (audioInfo.bstrCodecDescription && *audioInfo.bstrCodecDescription)
        {
            item.iItem = itemNumber;
            item.pszText = L"Audio Codec:";
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            item.iItem = itemNumber;
            item.pszText = audioInfo.bstrCodecDescription;
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            SysFreeString(audioInfo.bstrCodecDescription);
        }

        // audio bitrate
        if (audioInfo.lpwcCodecBitrate && *audioInfo.lpwcCodecBitrate)
        {
            item.iItem = itemNumber;
            item.pszText = L"Audio Bitrate:";
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            item.iItem = itemNumber;
            item.pszText = audioInfo.lpwcCodecBitrate;
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            delete [] audioInfo.lpwcCodecBitrate;
        }

        // What's the frequency, Kenneth?
        WCHAR frequency[8];
        if (audioInfo.wfmtWaveFormat.nSamplesPerSec)
        {
            wsprintf(frequency, L"%2.1fKHz", (float)(audioInfo.wfmtWaveFormat.nSamplesPerSec) / 1000.0);

            item.iItem = itemNumber;
            item.pszText = L"Audio Frequency:";
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            item.iItem = itemNumber;
            item.pszText = frequency;
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;
        }

        // stero or mono sound?
        WCHAR stereo[4];
        if (audioInfo.wfmtWaveFormat.nChannels)
        {
            wcscpy(stereo, audioInfo.wfmtWaveFormat.nChannels > 1 ? L"Yes" : L"No");

            item.iItem = itemNumber;
            item.pszText = L"Stereo:";
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;

            item.iItem = itemNumber;
            item.pszText = stereo;
            if (-1 != ListView_InsertItem(m_hListView, &item))
                itemNumber++;

            if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
                && size.cx > cx)
                cx = size.cx;
        }
    }

    // video info
    BSTR videoCodec = NULL;
    if (SUCCEEDED(VideoInfo(&videoCodec, pnsep)))
    {
        item.iItem = itemNumber;
        item.pszText = L"Video Codec:";
        if (-1 != ListView_InsertItem(m_hListView, &item))
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        item.iItem = itemNumber;
        item.pszText = videoCodec;
        if (-1 != ListView_InsertItem(m_hListView, &item))
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        SysFreeString(videoCodec);
    }

    // video resolution
    long lWidth, lHeight;
    WCHAR resolution[10] = L"";
    if (NULL != pibv
        && SUCCEEDED(pibv->get_VideoWidth(&lWidth))
        && SUCCEEDED(pibv->get_VideoHeight(&lHeight))
        && lWidth && lHeight)
    {
        wsprintf(resolution, L"%d x %d", lWidth, lHeight);

        item.iItem = itemNumber;
        item.pszText = L"Video Size:";
        if (-1 != ListView_InsertItem(m_hListView, &item))
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;

        item.iItem = itemNumber;
        item.pszText = resolution;
        if (-1 != ListView_InsertItem(m_hListView, &item))
            itemNumber++;

        if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
            && size.cx > cx)
            cx = size.cx;
    }

    // protected
    item.iItem = itemNumber;
    item.pszText = L"Protected:";
    if (-1 != ListView_InsertItem(m_hListView, &item))
        itemNumber++;

    if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
        && size.cx > cx)
        cx = size.cx;

    item.iItem = itemNumber;
    item.pszText = audioInfo.bSecure ? L"Yes" : L"No";
    if (-1 != ListView_InsertItem(m_hListView, &item))
        itemNumber++;

    if (GetTextExtentExPoint(hdc, item.pszText, _tcslen(item.pszText), 0, NULL, NULL, &size)
        && size.cx > cx)
        cx = size.cx;

    if (hdc)
    {
        ::ReleaseDC(m_hListView, hdc);
    }

    // Clean up list view
    RECT rc;
    LONG width;

    GetClientRect(m_hListView, &rc);

    width = rc.right - rc.left;

    if (ListView_GetCountPerPage(m_hListView) < ListView_GetItemCount(m_hListView))
    {
        width -= GetSystemMetrics(SM_CXVSCROLL);
    }

    if (cx < width)
    {
        cx = width;
    }

    ListView_SetColumnWidth(m_hListView, 0, cx);

    SendMessage(m_hListView, WM_SETREDRAW, TRUE, 0);

    InvalidateRect(m_hListView, NULL, TRUE);

    // Release filter interfaces
    if (NULL != pMediaContent)
    {
        pMediaContent->Release();
        pMediaContent = NULL;
    }

    if (NULL != piba)
    {
        piba->Release();
        piba = NULL;
    }

    if (NULL != pibv)
    {
        pibv->Release();
        pibv = NULL;
    }

    if (NULL != pnsep)
    {
        pnsep->Release();
        pnsep = NULL;
    }

    if (NULL != psmc)
    {
        psmc->Release();
        psmc = NULL;
    }

    if (NULL != pims)
    {
        pims->Release();
        pims = NULL;
    }

    // Release IGraphBuilder
    if (NULL != pGraphBuilder)
    {
         pGraphBuilder->Release();
         pGraphBuilder = NULL;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -