#pragma warning (disable:4310)
#endif
-#if wxUSE_MEDIACTRL
+#if wxUSE_MEDIACTRL && wxUSE_ACTIVEX
#include "wx/mediactrl.h"
#ifndef WX_PRECOMP
#include "wx/log.h"
+ #include "wx/dcclient.h"
+ #include "wx/timer.h"
+ #include "wx/math.h" // log10 & pow
+ #include "wx/stopwatch.h"
#endif
-#include "wx/math.h" // log10 & pow
#include "wx/msw/private.h" // user info and wndproc setting/getting
-#include "wx/dcclient.h"
-#include "wx/timer.h"
#include "wx/dynlib.h"
-#include "wx/stopwatch.h"
//---------------------------------------------------------------------------
// wxActiveXContainer - includes all the COM-specific stuff we need
wxAMMediaBackend::wxAMMediaBackend()
:m_pAX(NULL),
#ifdef __WXWINCE__
- m_pWMP(NULL)
+ m_pWMP(NULL),
#else
m_pAM(NULL),
- m_pMP(NULL)
+ m_pMP(NULL),
#endif
+ m_bestSize(wxDefaultSize)
{
}
return false;
}
+ m_bestSize = wxDefaultSize;
return true;
}
//---------------------------------------------------------------------------
void wxAMMediaBackend::FinishLoad()
{
- // Get the original video size
- GetAM()->get_ImageSourceWidth((long*)&m_bestSize.x);
- GetAM()->get_ImageSourceHeight((long*)&m_bestSize.y);
-
NotifyMovieLoaded();
}
//---------------------------------------------------------------------------
wxSize wxAMMediaBackend::GetVideoSize() const
{
- return m_bestSize;
+ if (m_bestSize == wxDefaultSize)
+ {
+ wxAMMediaBackend* self = wxConstCast(this, wxAMMediaBackend);
+ long w = 0;
+ long h = 0;
+
+ self->GetAM()->get_ImageSourceWidth(&w);
+ self->GetAM()->get_ImageSourceHeight(&h);
+
+ if (w != 0 && h != 0)
+ self->m_bestSize.Set(w, h);
+ else
+ return wxSize(0,0);
+ }
+
+ return m_bestSize;
}
//---------------------------------------------------------------------------
#include "wx/html/forcelnk.h"
FORCE_LINK_ME(wxmediabackend_am)
-#endif // wxUSE_MEDIACTRL
+#endif // wxUSE_MEDIACTRL && wxUSE_ACTIVEX