--- a/src/plugins/wmf/player/mfvideorenderercontrol.cpp
+++ b/src/plugins/wmf/player/mfvideorenderercontrol.cpp
@@ -56,6 +56,23 @@
 //#define DEBUG_MEDIAFOUNDATION
 #define PAD_TO_DWORD(x)  (((x) + 3) & ~3)
 
+    // Custom interface for handling IMFStreamSink::PlaceMarker calls asynchronously.
+    #ifdef __MINGW32__
+    DEFINE_GUID(IID_IMarker, 0xa3ff32de, 0x1031, 0x438a, 0x8b,0x47,0x82,0xf8,0xac,0xda,0x59,0xb7);
+    //const GUID IID_IMarker = { 0xa3ff32de, 0x1031, 0x438a, { 0x8b,0x47,0x82,0xf8,0xac,0xda,0x59,0xb7 } };
+    #endif
+    MIDL_INTERFACE("a3ff32de-1031-438a-8b47-82f8acda59b7")
+    IMarker : public IUnknown
+    {
+        virtual STDMETHODIMP GetMarkerType(MFSTREAMSINK_MARKER_TYPE *pType) = 0;
+        virtual STDMETHODIMP GetMarkerValue(PROPVARIANT *pvar) = 0;
+        virtual STDMETHODIMP GetContext(PROPVARIANT *pvar) = 0;
+    };
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMarker, 0xa3ff32de, 0x1031, 0x438a, 0x8b,0x47,0x82,0xf8,0xac,0xda,0x59,0xb7)
+#endif
+
 namespace
 {
     class MediaSampleVideoBuffer : public QAbstractVideoBuffer
@@ -116,15 +133,6 @@ namespace
         MapMode m_mapMode;
     };
 
-    // Custom interface for handling IMFStreamSink::PlaceMarker calls asynchronously.
-    MIDL_INTERFACE("a3ff32de-1031-438a-8b47-82f8acda59b7")
-    IMarker : public IUnknown
-    {
-        virtual STDMETHODIMP GetMarkerType(MFSTREAMSINK_MARKER_TYPE *pType) = 0;
-        virtual STDMETHODIMP GetMarkerValue(PROPVARIANT *pvar) = 0;
-        virtual STDMETHODIMP GetContext(PROPVARIANT *pvar) = 0;
-    };
-
     class Marker : public IMarker
     {
     public:
@@ -904,7 +912,6 @@ namespace
             MFTIME m_time;
         };
 
-    protected:
         void customEvent(QEvent *event)
         {
             QMutexLocker locker(&m_mutex);
--- a/src/plugins/wmf/player/player.pri
+++ b/src/plugins/wmf/player/player.pri
@@ -1,6 +1,6 @@
 INCLUDEPATH += $$PWD
 
-LIBS += -lgdi32 -luser32
+LIBS += -lgdi32 -luser32 -lamstrmid
 QMAKE_USE += wmf
 
 HEADERS += \
