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.