Changeset 187 for trunk/Utilities/WindowsMediaCodecList/MainDialog.h
- Timestamp:
- Jun 28, 2013, 9:39:00 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Utilities/WindowsMediaCodecList/MainDialog.h
r186 r187 494 494 A(IWMStreamConfig3) 495 495 A(IWMVideoMediaProps) 496 A(IWMPropertyVault) 496 497 #undef A 497 498 }; … … 750 751 sText.AppendFormat(_T(" ") _T("Quality: %d") _T("\r\n"), nQuality); 751 752 sText.Append(_T("\r\n")); 753 } 754 _ATLCATCHALL() 755 { 756 _Z_EXCEPTION(); 757 } 758 #pragma endregion 759 #pragma region IWMPropertyVault 760 const CComQIPtr<IWMPropertyVault> pWmPropertyVault = m_pCodecFormatData->m_pWmStreamConfig; 761 if(pWmPropertyVault) 762 _ATLTRY 763 { 764 DWORD nPropertyCount = 0; 765 __C(pWmPropertyVault->GetPropertyCount(&nPropertyCount)); 766 CRoArrayT<CString> PropertyArray; 767 for(DWORD nPropertyIndex = 0; nPropertyIndex < nPropertyCount; nPropertyIndex++) 768 { 769 DWORD nNameLength = 0; 770 WMT_ATTR_DATATYPE nType; 771 DWORD nValueDataSize = 0; 772 pWmPropertyVault->GetPropertyByIndex(nPropertyIndex, NULL, &nNameLength, &nType, NULL, &nValueDataSize); 773 CTempBufferT<WCHAR> pszName(nNameLength + 1); 774 CTempBufferT<BYTE> pnValueData(nValueDataSize + 2); 775 __C(pWmPropertyVault->GetPropertyByIndex(nPropertyIndex, pszName, &nNameLength, &nType, pnValueData, &nValueDataSize)); 776 CString sProperty; 777 BOOL bHandled = FALSE; 778 switch(nType) 779 { 780 case WMT_TYPE_DWORD: 781 if(nValueDataSize && !(nValueDataSize % sizeof (DWORD))) 782 { 783 const DWORD* pnValues = (const DWORD*) (const BYTE*) pnValueData; 784 const SIZE_T nValueCount = nValueDataSize / sizeof (DWORD); 785 if(nValueCount == 1) 786 sProperty = AtlFormatString(_T("%d 0x%02X"), pnValues[0], pnValues[0]); 787 else 788 sProperty = AtlFormatString(_T("0x%02X, ..."), pnValues[0]); 789 bHandled = TRUE; 790 } 791 break; 792 case WMT_TYPE_STRING: 793 // TODO: ... 794 break; 795 case WMT_TYPE_BINARY: 796 // TODO: ... 797 break; 798 case WMT_TYPE_BOOL: 799 if(nValueDataSize && !(nValueDataSize % sizeof (BOOL))) 800 { 801 const BOOL* pnValues = (const BOOL*) (const BYTE*) pnValueData; 802 const SIZE_T nValueCount = nValueDataSize / sizeof (BOOL); 803 if(nValueCount == 1) 804 sProperty = AtlFormatString(_T("%d"), pnValues[0]); 805 else 806 sProperty = AtlFormatString(_T("%d, ..."), pnValues[0]); 807 bHandled = TRUE; 808 } 809 break; 810 case WMT_TYPE_QWORD: 811 // TODO: ... 812 break; 813 case WMT_TYPE_WORD: 814 // TODO: ... 815 break; 816 case WMT_TYPE_GUID: 817 // TODO: ... 818 break; 819 } 820 if(!bHandled) 821 sProperty = _T("???"); 822 sProperty += AtlFormatString(_T(" (Type %d, Size %d)"), nType, nValueDataSize); 823 _W(PropertyArray.Add(AtlFormatString(_T("%ls: %s"), (LPCWSTR) pszName, sProperty)) >= 0); 824 } 825 if(nPropertyCount) 826 { 827 sText.Append(_T("IWMPropertyVault:\r\n")); 828 sText.AppendFormat(_T(" ") _T("PropertyCount: %d") _T("\r\n"), nPropertyCount); 829 for(SIZE_T nIndex = 0; nIndex < PropertyArray.GetCount(); nIndex++) 830 sText.AppendFormat(_T(" ") _T("%s") _T("\r\n"), PropertyArray[nIndex]); 831 sText.Append(_T("\r\n")); 832 } 752 833 } 753 834 _ATLCATCHALL()
Note: See TracChangeset
for help on using the changeset viewer.