diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c
index b64dda1..652436c 100644
--- a/src/winapi_hooks.c
+++ b/src/winapi_hooks.c
@@ -1641,7 +1641,19 @@ HRESULT WINAPI fake_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD
         }
     }
 
-    return real_CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);
+    /* These dlls must be hooked for cutscene uscaling and windowed mode */
+    HMODULE quartz_dll = GetModuleHandleA("quartz");
+    HMODULE msvfw32_dll = GetModuleHandleA("msvfw32");
+
+    HRESULT result = real_CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);
+
+    if ((!quartz_dll && GetModuleHandleA("quartz")) ||
+        (!msvfw32_dll && GetModuleHandleA("msvfw32")))
+    {
+        hook_init(FALSE);
+    }
+
+    return result;
 }
 
 LPTOP_LEVEL_EXCEPTION_FILTER WINAPI fake_SetUnhandledExceptionFilter(