I figured i’d weigh in on the playlist talk…
I don’t like them or use them EVER so i can’t offer any help there.
But I coded a c++ app that transfers content to the device in MTP mode
and one of the things i was playing around with is retrieving various types of info,
such as the supported format types. Basicly you can use the MTP framework system
to query a device for what features the device supports. And Microsoft actualy advises
people to do this before doing any transactions with the device.
Im gonna add a chunk of code i used for FormatCode enumeration…
The code is probably not usefull to anyone but Note,
I added a comment to each entry that is supported.
So if it does not say " // Supported" then i would NOT bother wasting your time…
One last thing not suprisingly WMDM_FORMATCODE_M3UPLAYLIST -> IS <- supported
but i thought that this -> WMDM_FORMATCODE_ABSTRACTAUDIOVIDEOPLAYLIST was interesting
Although i don’t know what that means as in what format etc.
Anyway here is the c++ from my app…
struct SType\_String
{
LONG dwType;
char\* pszString;
};
void GetFormatCodeString( char\* &szFormatCode, LONG dwFormatCode )
{ // Updated with format codes from v11 SDK header.
static SType\_String sTypeStringArray[] = {
{ WMDM\_FORMATCODE\_NOTUSED, "NotUsed"},
{ WMDM\_FORMATCODE\_ALLIMAGES, "AllImages"},
{ WMDM\_FORMATCODE\_UNDEFINED, "Undefined"}, // Supported
{ WMDM\_FORMATCODE\_ASSOCIATION, "Association"}, // Supported
{ WMDM\_FORMATCODE\_SCRIPT, "Script"},
{ WMDM\_FORMATCODE\_EXECUTABLE, "Executable"},
{ WMDM\_FORMATCODE\_TEXT, "Text"},
{ WMDM\_FORMATCODE\_HTML, "HTML"},
{ WMDM\_FORMATCODE\_DPOF, "DPOF"},
{ WMDM\_FORMATCODE\_AIFF, "AIFF"},
{ WMDM\_FORMATCODE\_WAVE, "Wave"}, // Supported
{ WMDM\_FORMATCODE\_MP3, "MP3"}, // Supported
{ WMDM\_FORMATCODE\_AVI, "AVI"}, // Supported
{ WMDM\_FORMATCODE\_MPEG, "MPEG"},
{ WMDM\_FORMATCODE\_ASF, "ASF"}, // Supported
// WMDM\_FORMATCODE\_RESERVED\_FIRST = 0x300D,
// WMDM\_FORMATCODE\_RESERVED\_LAST = 0x37FF,
{ WMDM\_FORMATCODE\_IMAGE\_UNDEFINED, "Image Undefined"},
{ WMDM\_FORMATCODE\_IMAGE\_EXIF, "Image Exif"}, // Supported
{ WMDM\_FORMATCODE\_IMAGE\_TIFFEP, "Image TiffEP"},
{ WMDM\_FORMATCODE\_IMAGE\_FLASHPIX, "Image FlashPix"},
{ WMDM\_FORMATCODE\_IMAGE\_BMP, "Image BMP"}, // Supported
{ WMDM\_FORMATCODE\_IMAGE\_CIFF, "Image CIFF"},
{ WMDM\_FORMATCODE\_IMAGE\_GIF , "Image GIF"},
{ WMDM\_FORMATCODE\_IMAGE\_JFIF, "Image JFIF"},
{ WMDM\_FORMATCODE\_IMAGE\_PCD , "Image PCD"},
{ WMDM\_FORMATCODE\_IMAGE\_PICT, "Image PICT"},
{ WMDM\_FORMATCODE\_IMAGE\_PNG , "Image PNG"},
{ WMDM\_FORMATCODE\_IMAGE\_TIFF, "Image TIFF"},
{ WMDM\_FORMATCODE\_IMAGE\_TIFFIT, "Image TIFFIT"},
{ WMDM\_FORMATCODE\_IMAGE\_JP2, "Image JP2"},
{ WMDM\_FORMATCODE\_IMAGE\_JPX, "Image JPX"},
// WMDM\_FORMATCODE\_IMAGE\_RESERVED\_FIRST = 0x3811,
// WMDM\_FORMATCODE\_IMAGE\_RESERVED\_LAST = 0x3FFF,
{ WMDM\_FORMATCODE\_UNDEFINEDFIRMWARE, "Undefined Firmware"},
{ WMDM\_FORMATCODE\_WINDOWSIMAGEFORMAT, "Windows Image Format"},
{ WMDM\_FORMATCODE\_UNDEFINEDAUDIO, "Undefined Audio"},
{ WMDM\_FORMATCODE\_WMA, "WMA"}, // Supported
{ WMDM\_FORMATCODE\_OGG, "OGG"}, // Supported
{ WMDM\_FORMATCODE\_AAC, "AAC"}, // Supported
{ WMDM\_FORMATCODE\_AUDIBLE, "Audible"},
{ WMDM\_FORMATCODE\_FLAC, "Flac"}, // Supported
{ WMDM\_FORMATCODE\_UNDEFINEDVIDEO, "Undefined Video"},
{ WMDM\_FORMATCODE\_WMV, "WMV"}, // Supported
{ WMDM\_FORMATCODE\_MP4, "MP4"}, // Supported
{ WMDM\_FORMATCODE\_MP2, "MP2"},
{ WMDM\_FORMATCODE\_3GP, "3GP"},
{ WMDM\_FORMATCODE\_UNDEFINEDCOLLECTION, "Undefined Collection"},
{ WMDM\_FORMATCODE\_ABSTRACTMULTIMEDIAALBUM, "Abstract Multimedia Album"},
{ WMDM\_FORMATCODE\_ABSTRACTIMAGEALBUM, "Abstract Image Album"},
{ WMDM\_FORMATCODE\_ABSTRACTAUDIOALBUM, "Abstract Audio Album"}, // Supported
{ WMDM\_FORMATCODE\_ABSTRACTVIDEOALBUM, "Abstract Video Album"},
{ WMDM\_FORMATCODE\_ABSTRACTAUDIOVIDEOPLAYLIST, "Abstract AudioVideo Playlist"}, // Supported
{ WMDM\_FORMATCODE\_ABSTRACTCONTACTGROUP, "Abstract Contact Group"},
{ WMDM\_FORMATCODE\_ABSTRACTMESSAGEFOLDER, "Abstract Message Folder"},
{ WMDM\_FORMATCODE\_ABSTRACTCHAPTEREDPRODUCTION, "Abstract Chaptered Production"},
{ WMDM\_FORMATCODE\_MEDIA\_CAST, "Media Cast"},
{ WMDM\_FORMATCODE\_WPLPLAYLIST, "WPL Playlist"},
{ WMDM\_FORMATCODE\_M3UPLAYLIST, "M3U Playlist"}, // Supported
{ WMDM\_FORMATCODE\_MPLPLAYLIST, "MPL Playlist"},
{ WMDM\_FORMATCODE\_ASXPLAYLIST, "ASX Playlist"},
{ WMDM\_FORMATCODE\_PLSPLAYLIST, "PLS Playlist"},
{ WMDM\_FORMATCODE\_UNDEFINEDDOCUMENT, "Undefined Document"},
{ WMDM\_FORMATCODE\_ABSTRACTDOCUMENT, "Abstract Document"},
{ WMDM\_FORMATCODE\_XMLDOCUMENT, "XML Document"},
{ WMDM\_FORMATCODE\_MICROSOFTWORDDOCUMENT, "MS Word Document"},
{ WMDM\_FORMATCODE\_MHTCOMPILEDHTMLDOCUMENT, "MHT Compiled HTML Document"},
{ WMDM\_FORMATCODE\_MICROSOFTEXCELSPREADSHEET, "MS Excel Spreadsheet"},
{ WMDM\_FORMATCODE\_MICROSOFTPOWERPOINTDOCUMENT, "MS Powerpoint Document"},
{ WMDM\_FORMATCODE\_UNDEFINEDMESSAGE, "Undefined Message"},
{ WMDM\_FORMATCODE\_ABSTRACTMESSAGE, "Abstract Message"},
{ WMDM\_FORMATCODE\_UNDEFINEDCONTACT, "Undefined Contact"},
{ WMDM\_FORMATCODE\_ABSTRACTCONTACT, "Abstract Contact"},
{ WMDM\_FORMATCODE\_VCARD2, "Vcard 2"},
{ WMDM\_FORMATCODE\_VCARD3, "Vcard 3"},
{ WMDM\_FORMATCODE\_UNDEFINEDCALENDARITEM, "Undefined Calendar item"},
{ WMDM\_FORMATCODE\_ABSTRACTCALENDARITEM, "Abstract Calendar item"},
{ WMDM\_FORMATCODE\_VCALENDAR1, "Vcalendar 1"},
{ WMDM\_FORMATCODE\_VCALENDAR2, "Vcalendar 2"},
{ WMDM\_FORMATCODE\_UNDEFINEDWINDOWSEXECUTABLE, "Undefined Windows Executable"},
{ WMDM\_FORMATCODE\_M4A, "M4A"},
{ WMDM\_FORMATCODE\_3GPA, "3GPA"},
{ WMDM\_FORMATCODE\_SECTION, "Section"}
};
// Look for the format code
szFormatCode = "\<unknown\>";
for( int iIndex = 0; iIndex \< sizeof(sTypeStringArray) / sizeof(sTypeStringArray[0]); iIndex++ )
{
// Is this bit set, if it is then add the attribute as a string
if( sTypeStringArray[iIndex].dwType == dwFormatCode )
{
szFormatCode = sTypeStringArray[iIndex].pszString;
break;
}
}
}