Hej.Byta från wmp 6.4 till wmp 9 series
Har en fin gammal activex i en av våra activexer, nämligen wmp 6.4. Tyvärr verkar det som att compability layer i 9 serien har lagt av lite grann, så jag skulle behöva byta till wmp 9 i koden. Men hittar inte nån vettig dokumentation om hur jag ska gå tillväga nånstans.
Har provat exemplet som finns i SDK:
AtlAxWinInit();
CComPtr<IAxWinHostWindow> spHost;
HRESULT hr;
m_wndView = new CAxWindow;
m_wndView->Create(pParent->m_hWnd, m_rcWnd, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
if (NULL == m_wndView->m_hWnd)
return 0;//goto FAILURE;
// load OCX in window
hr = m_wndView->QueryHost(&spHost);
if (FAILED(hr))
return 0;//goto FAILURE;
hr = spHost->CreateControl(CComBSTR(_T("{6BF52A52-394A-11d3-B153-00C04F79FAA6}")), m_wndView->m_hWnd, 0);
if (FAILED(hr))
return 0;//goto FAILURE;
hr = m_wndView->QueryControl(&m_spWMPPlayer);
if (FAILED(hr))
return 0;//goto FAILURE;
Får en krash här - m_wndView->Create(pParent->m_hWnd, m_rcWnd, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
pParent, pParent->m_hwnd och m_rcWnd är inte null och funkar utmärkt när man skapar andra objekt.
Provad även att skapa klasser från wmp dll:en. I 6.4 kunde jag göra det här:
m_pMediaPlayer = new CMediaPlayer;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
if (m_bBorder) dwStyle |= WS_BORDER;
BOOL bResult = m_pMediaPlayer->Create(NULL, dwStyle, m_rcWnd, pParent, 0);
if (bResult) {
//fixa med kontrollen
}
Men jag hittar ingen create nånstans i interfacet till wmp9, inte i dokumentationen och inte i koden. Hur fasen bestämmer jag hur stor den ska vara, och när skapas den?
Det här var det jag försökte göra:
m_pMediaPlayer9 = new CWMPPlayer();
m_pMediaPlayer9->crea
m_pMediaPlayer9->put_URL
men hittade ingen create. Har använt vs .net 2003 wizarden add class och sedan add mfc class from activeX för att generera lite .h och .cpp filer för att komma åt funktionalitet.
Snälla hjälp mig. Jag är så jäkla trött på den här förbenade wmp spelaren nu.