SOL9 Sample: WMPLocalLibrary

SOL9 2.0 Samples

1 Screenshot


2 Source code

/*
 * WMPLocalLibrary.cpp 
 * Copyright (c) 2015 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2011/12/07
// 2012/01/22 Please compile in UNICODE mode. Modified to use FileWriter

#include <sol/COMInitializer.h>
#include <sol/Locale.h>

#include <sol/wmp/WMPPlayer.h>
#include <sol/wmp/WMPLibrary.h>
#include <sol/wmp/WMPLibraryServices.h>
#include <sol/wmp/WMPMediaCollection.h>
#include <sol/wmp/WMPPlaylist.h>
#include <sol/wmp/WMPMedia.h>

int _tmain(int argc, TCHAR* argv[])
 
{
  if (argc != 3) {
    printf("Usage:%s mediaType xmlFileName\n", argv[0]);
    printf(" mediaType: audio|video|photo|playlist|other\n");
    return 0;
  }

  _bstr_t mediaType(argv[1]);

  COMInitializer initializer;
  
  const TCHAR* fileName = argv[2];

  Locale locale;

  try { 
    FileWriter writer = fileName;

    writer.writeln(L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
    writer.writeln(L"<%s>", argv[0]);

    WMPPlayer player;
 
    WMPLibraryServices services = player.getLibraryServices();

    long lcount = services.getLocalLibraryCount();
      
    writer.writeln(L"<Library MediaType=\"%s\" Count=\"%d\">", 
      (const wchar_t*)mediaType, lcount);

    for (long n = 0; n<lcount; n++) {
      WMPLibrary library =services.getLocalLibrary(n);

      WMPMediaCollection mediaCollection = library.getMediaCollection();
      IWMPQueryPtr query =mediaCollection.createQuery();
      
      _bstr_t attribute = "Name";
      WMPPlaylist playlist = mediaCollection.getPlaylistByQuery(query, mediaType, 
        attribute, VARIANT_TRUE);
  
      long count = playlist.getCount();
      writer.writeln(L"<Playlist Count=\"%d\">", count);

      for (long i = 0; i<count; i++) {
        WMPMedia media = playlist.getItem(i);
        media.writeProperties(writer);
      }
      writer.writeln(L"</Playlist>");
    }
    writer.writeln(L"</Library>");
    writer.writeln(L"</%s>", argv[0]);

  } catch (...) {
    printf("Exception\n");
  }
}

Last modified: 2 May 2016

Copyright (c) 2016 Antillia.com ALL RIGHTS RESERVED.