diff --git a/src/spice2x/external/docker/Dockerfile b/src/spice2x/external/docker/Dockerfile index 29a6476..a010f38 100644 --- a/src/spice2x/external/docker/Dockerfile +++ b/src/spice2x/external/docker/Dockerfile @@ -7,6 +7,7 @@ RUN pacman --noconfirm -Syu git \ ninja \ cmake \ unzip \ + wget \ mingw-w64-crt \ mingw-w64-winpthreads \ mingw-w64-gcc \ diff --git a/src/spice2x/hooks/sndbhook.cpp b/src/spice2x/hooks/sndbhook.cpp index 028c55e..697fc35 100644 --- a/src/spice2x/hooks/sndbhook.cpp +++ b/src/spice2x/hooks/sndbhook.cpp @@ -7,6 +7,7 @@ #include "util/libutils.h" #include "util/utils.h" #include "avs/core.h" +#include #include @@ -85,10 +86,12 @@ typedef HRESULT (*MFCreateMFByteStreamOnStream_t)(IStream *, IMFByteStream **); typedef HRESULT (*MFCreateSourceReaderFromByteStream_t)(IMFByteStream *, IMFAttributes *, IMFSourceReader **); typedef HRESULT (*MFStartup_t)(ULONG, DWORD); typedef HRESULT (*MFShutdown_t)(); +typedef IStream *(*SHCreateMemStream_t)(const BYTE *, UINT); MFCreateMFByteStreamOnStream_t MFCreateMFByteStreamOnStream; MFCreateSourceReaderFromByteStream_t MFCreateSourceReaderFromByteStream; MFStartup_t MFStartup; MFShutdown_t MFShutdown; +SHCreateMemStream_t SHCreateMemStream; struct wav_hdr { char sig_riff[4] = {'R', 'I', 'F', 'F'}; @@ -229,13 +232,15 @@ bool init() HMODULE mf_ = libutils::try_library("mf.dll"); HMODULE mfreadwrite_ = libutils::try_library("mfreadwrite.dll"); HMODULE mfplat_ = libutils::try_library("mfplat.dll"); - if (!mf_ || !mfreadwrite_ || !mfplat_) return false; + HMODULE shlwapi_ = libutils::try_library("shlwapi.dll"); + if (!mf_ || !mfreadwrite_ || !mfplat_ || !shlwapi_) return false; // Required by linker MFCreateMFByteStreamOnStream = (MFCreateMFByteStreamOnStream_t) GetProcAddress(mfplat_, "MFCreateMFByteStreamOnStream"); MFStartup = (MFStartup_t) GetProcAddress(mfplat_, "MFStartup"); MFShutdown = (MFShutdown_t) GetProcAddress(mfplat_, "MFShutdown"); MFCreateSourceReaderFromByteStream = (MFCreateSourceReaderFromByteStream_t) GetProcAddress(mfreadwrite_, "MFCreateSourceReaderFromByteStream"); + SHCreateMemStream = (SHCreateMemStream_t) GetProcAddress(shlwapi_, "SHCreateMemStream"); if (!MFCreateMFByteStreamOnStream || !MFCreateSourceReaderFromByteStream || !MFStartup || !MFShutdown || FAILED(MFStartup(MF_VERSION, MFSTARTUP_FULL))) return false; diff --git a/src/spice2x/hooks/wmischook.cpp b/src/spice2x/hooks/wmischook.cpp index 6966f4f..a38c5ae 100644 --- a/src/spice2x/hooks/wmischook.cpp +++ b/src/spice2x/hooks/wmischook.cpp @@ -5,6 +5,7 @@ #include "util/libutils.h" #include "util/utils.h" #include +#include namespace hooks::wmisc::msacm