Witam, mam problem następującej natury. Chce pobrać z Windows Media Playera w wersji 10 informacje o aktualnie odtwarzanych mediach. Wystarczy mi tylko informacja play/stop/pause. Znalazłem w Windows SDK kilkadziesiąt funkcji które pozwalają na praktyczne dowolne sterowanie odtwarzaczem, tylko że żadna z tych które sprawdzałem mi nie działa, ani te zwracające informację ani wysyłające rozkazy.
Napisałem następujący kod w Visual Studio 2010:

#include <atlbase.h>
#include <atlwin.h>
#include <wmp.h>
#include <stdio.h>
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{

    CoInitialize(NULL);
    HRESULT hr = S_OK;
    WMPPlayState PlayInfo;

    CComPtr<IWMPCore> wmp;
    hr = wmp.CoCreateInstance( __uuidof(WindowsMediaPlayer), 0, CLSCTX_INPROC_SERVER );

	while(1){
		hr = wmp->get_playState(&PlayInfo);
		printf("Stan: %i\r", PlayInfo);
		Sleep(10);
	}

    wmp.Release();
    CoUninitialize();

    return 0;
}

Program kompiluje się i uruchamia bez błędów.

Funkcja get_playState zwraca informacje o stanie odtwarzania, u mnie jaki by on nie był zawsze zwraca 0, czyli "wmppsUndefined".

HRESULT get_playState(
  [out]  WMPPlayState *pwmpps
);

Proszę o jakąś pomoc, co może być tego przyczyną? Z powodu braku błędów nie wiem gdzie szukać przyczyny problemu.