Skip to content
Open
2 changes: 2 additions & 0 deletions ReShade.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,7 @@
<ModuleDefinitionFile>res\exports.def</ModuleDefinitionFile>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<DelayLoadDLLs>ws2_32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalDependencies>Shlwapi.lib;WinInet.lib;WS2_32.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<ShaderModel>4.0</ShaderModel>
Expand Down Expand Up @@ -621,6 +622,7 @@
<ClCompile Include="source\windows\dinput8.cpp" />
<ClCompile Include="source\windows\user32.cpp" />
<ClCompile Include="source\windows\ws2_32.cpp" />
<ClCompile Include="source\windows\winmm.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\reshade.hpp" />
Expand Down
3 changes: 3 additions & 0 deletions ReShade.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,9 @@
<ClCompile Include="source\windows\ws2_32.cpp">
<Filter>hooks\windows</Filter>
</ClCompile>
<ClCompile Include="source\windows\winmm.cpp">
<Filter>hooks\windows</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="source\dll_log.hpp">
Expand Down
182 changes: 182 additions & 0 deletions res/exports.def
Original file line number Diff line number Diff line change
Expand Up @@ -477,3 +477,185 @@ EXPORTS
; dinput8.dll
DirectInput8Create PRIVATE
GetdfDIJoystick PRIVATE

; winmm.dll (winmm.lib)
CloseDriver = HookCloseDriver PRIVATE
DefDriverProc = HookDefDriverProc PRIVATE
DriverCallback = HookDriverCallback PRIVATE
DrvGetModuleHandle = HookDrvGetModuleHandle PRIVATE
GetDriverModuleHandle = HookGetDriverModuleHandle PRIVATE
OpenDriver = HookOpenDriver PRIVATE
; PlaySound = HookPlaySound PRIVATE
PlaySoundA = HookPlaySoundA PRIVATE
PlaySoundW = HookPlaySoundW PRIVATE
SendDriverMessage = HookSendDriverMessage PRIVATE
; WOWAppExit = HookWOWAppExit PRIVATE
auxGetDevCapsA = HookauxGetDevCapsA PRIVATE
auxGetDevCapsW = HookauxGetDevCapsW PRIVATE
auxGetNumDevs = HookauxGetNumDevs PRIVATE
auxGetVolume = HookauxGetVolume PRIVATE
auxOutMessage = HookauxOutMessage PRIVATE
auxSetVolume = HookauxSetVolume PRIVATE
joyConfigChanged = HookjoyConfigChanged PRIVATE
joyGetDevCapsA = HookjoyGetDevCapsA PRIVATE
joyGetDevCapsW = HookjoyGetDevCapsW PRIVATE
joyGetNumDevs = HookjoyGetNumDevs PRIVATE
joyGetPos = HookjoyGetPos PRIVATE
joyGetPosEx = HookjoyGetPosEx PRIVATE
joyGetThreshold = HookjoyGetThreshold PRIVATE
joyReleaseCapture = HookjoyReleaseCapture PRIVATE
joySetCapture = HookjoySetCapture PRIVATE
joySetThreshold = HookjoySetThreshold PRIVATE
mciDriverNotify = HookmciDriverNotify PRIVATE
mciDriverYield = HookmciDriverYield PRIVATE
;mciExecute = HookmciExecute PRIVATE
mciFreeCommandResource = HookmciFreeCommandResource PRIVATE
mciGetCreatorTask = HookmciGetCreatorTask PRIVATE
mciGetDeviceIDA = HookmciGetDeviceIDA PRIVATE
mciGetDeviceIDFromElementIDA = HookmciGetDeviceIDFromElementIDA PRIVATE
mciGetDeviceIDFromElementIDW = HookmciGetDeviceIDFromElementIDW PRIVATE
mciGetDeviceIDW = HookmciGetDeviceIDW PRIVATE
mciGetDriverData = HookmciGetDriverData PRIVATE
mciGetErrorStringA = HookmciGetErrorStringA PRIVATE
mciGetErrorStringW = HookmciGetErrorStringW PRIVATE
mciGetYieldProc = HookmciGetYieldProc PRIVATE
mciLoadCommandResource = HookmciLoadCommandResource PRIVATE
mciSendCommandA = HookmciSendCommandA PRIVATE
mciSendCommandW = HookmciSendCommandW PRIVATE
mciSendStringA = HookmciSendStringA PRIVATE
mciSendStringW = HookmciSendStringW PRIVATE
mciSetDriverData = HookmciSetDriverData PRIVATE
mciSetYieldProc = HookmciSetYieldProc PRIVATE
midiConnect = HookmidiConnect PRIVATE
midiDisconnect = HookmidiDisconnect PRIVATE
midiInAddBuffer = HookmidiInAddBuffer PRIVATE
midiInClose = HookmidiInClose PRIVATE
midiInGetDevCapsA = HookmidiInGetDevCapsA PRIVATE
midiInGetDevCapsW = HookmidiInGetDevCapsW PRIVATE
midiInGetErrorTextA = HookmidiInGetErrorTextA PRIVATE
midiInGetErrorTextW = HookmidiInGetErrorTextW PRIVATE
midiInGetID = HookmidiInGetID PRIVATE
midiInGetNumDevs = HookmidiInGetNumDevs PRIVATE
midiInMessage = HookmidiInMessage PRIVATE
midiInOpen = HookmidiInOpen PRIVATE
midiInPrepareHeader = HookmidiInPrepareHeader PRIVATE
midiInReset = HookmidiInReset PRIVATE
midiInStart = HookmidiInStart PRIVATE
midiInStop = HookmidiInStop PRIVATE
midiInUnprepareHeader = HookmidiInUnprepareHeader PRIVATE
midiOutCacheDrumPatches = HookmidiOutCacheDrumPatches PRIVATE
midiOutCachePatches = HookmidiOutCachePatches PRIVATE
midiOutClose = HookmidiOutClose PRIVATE
midiOutGetDevCapsA = HookmidiOutGetDevCapsA PRIVATE
midiOutGetDevCapsW = HookmidiOutGetDevCapsW PRIVATE
midiOutGetErrorTextA = HookmidiOutGetErrorTextA PRIVATE
midiOutGetErrorTextW = HookmidiOutGetErrorTextW PRIVATE
midiOutGetID = HookmidiOutGetID PRIVATE
midiOutGetNumDevs = HookmidiOutGetNumDevs PRIVATE
midiOutGetVolume = HookmidiOutGetVolume PRIVATE
midiOutLongMsg = HookmidiOutLongMsg PRIVATE
midiOutMessage = HookmidiOutMessage PRIVATE
midiOutOpen = HookmidiOutOpen PRIVATE
midiOutPrepareHeader = HookmidiOutPrepareHeader PRIVATE
midiOutReset = HookmidiOutReset PRIVATE
midiOutSetVolume = HookmidiOutSetVolume PRIVATE
midiOutShortMsg = HookmidiOutShortMsg PRIVATE
midiOutUnprepareHeader = HookmidiOutUnprepareHeader PRIVATE
midiStreamClose = HookmidiStreamClose PRIVATE
midiStreamOpen = HookmidiStreamOpen PRIVATE
midiStreamOut = HookmidiStreamOut PRIVATE
midiStreamPause = HookmidiStreamPause PRIVATE
midiStreamPosition = HookmidiStreamPosition PRIVATE
midiStreamProperty = HookmidiStreamProperty PRIVATE
midiStreamRestart = HookmidiStreamRestart PRIVATE
midiStreamStop = HookmidiStreamStop PRIVATE
mixerClose = HookmixerClose PRIVATE
mixerGetControlDetailsA = HookmixerGetControlDetailsA PRIVATE
mixerGetControlDetailsW = HookmixerGetControlDetailsW PRIVATE
mixerGetDevCapsA = HookmixerGetDevCapsA PRIVATE
mixerGetDevCapsW = HookmixerGetDevCapsW PRIVATE
mixerGetID = HookmixerGetID PRIVATE
mixerGetLineControlsA = HookmixerGetLineControlsA PRIVATE
mixerGetLineControlsW = HookmixerGetLineControlsW PRIVATE
mixerGetLineInfoA = HookmixerGetLineInfoA PRIVATE
mixerGetLineInfoW = HookmixerGetLineInfoW PRIVATE
mixerGetNumDevs = HookmixerGetNumDevs PRIVATE
mixerMessage = HookmixerMessage PRIVATE
mixerOpen = HookmixerOpen PRIVATE
mixerSetControlDetails = HookmixerSetControlDetails PRIVATE
mmDrvInstall = HookmmDrvInstall PRIVATE
;mmGetCurrentTask = HookmmGetCurrentTask PRIVATE
;mmTaskBlock = HookmmTaskBlock PRIVATE
;mmTaskCreate = HookmmTaskCreate PRIVATE
;mmTaskSignal = HookmmTaskSignal PRIVATE
;mmTaskYield = HookmmTaskYield PRIVATE
mmioAdvance = HookmmioAdvance PRIVATE
mmioAscend = HookmmioAscend PRIVATE
mmioClose = HookmmioClose PRIVATE
mmioCreateChunk = HookmmioCreateChunk PRIVATE
mmioDescend = HookmmioDescend PRIVATE
mmioFlush = HookmmioFlush PRIVATE
mmioGetInfo = HookmmioGetInfo PRIVATE
mmioInstallIOProcA = HookmmioInstallIOProcA PRIVATE
mmioInstallIOProcW = HookmmioInstallIOProcW PRIVATE
mmioOpenA = HookmmioOpenA PRIVATE
mmioOpenW = HookmmioOpenW PRIVATE
mmioRead = HookmmioRead PRIVATE
mmioRenameA = HookmmioRenameA PRIVATE
mmioRenameW = HookmmioRenameW PRIVATE
mmioSeek = HookmmioSeek PRIVATE
mmioSendMessage = HookmmioSendMessage PRIVATE
mmioSetBuffer = HookmmioSetBuffer PRIVATE
mmioSetInfo = HookmmioSetInfo PRIVATE
mmioStringToFOURCCA = HookmmioStringToFOURCCA PRIVATE
mmioStringToFOURCCW = HookmmioStringToFOURCCW PRIVATE
mmioWrite = HookmmioWrite PRIVATE
;mmsystemGetVersion = HookmmsystemGetVersion PRIVATE
sndPlaySoundA = HooksndPlaySoundA PRIVATE
sndPlaySoundW = HooksndPlaySoundW PRIVATE
timeBeginPeriod = HooktimeBeginPeriod PRIVATE
timeEndPeriod = HooktimeEndPeriod PRIVATE
timeGetDevCaps = HooktimeGetDevCaps PRIVATE
timeGetSystemTime = HooktimeGetSystemTime PRIVATE
timeGetTime = HooktimeGetTime PRIVATE
timeKillEvent = HooktimeKillEvent PRIVATE
timeSetEvent = HooktimeSetEvent PRIVATE
waveInAddBuffer = HookwaveInAddBuffer PRIVATE
waveInClose = HookwaveInClose PRIVATE
waveInGetDevCapsA = HookwaveInGetDevCapsA PRIVATE
waveInGetDevCapsW = HookwaveInGetDevCapsW PRIVATE
waveInGetErrorTextA = HookwaveInGetErrorTextA PRIVATE
waveInGetErrorTextW = HookwaveInGetErrorTextW PRIVATE
waveInGetID = HookwaveInGetID PRIVATE
waveInGetNumDevs = HookwaveInGetNumDevs PRIVATE
waveInGetPosition = HookwaveInGetPosition PRIVATE
waveInMessage = HookwaveInMessage PRIVATE
waveInOpen = HookwaveInOpen PRIVATE
waveInPrepareHeader = HookwaveInPrepareHeader PRIVATE
waveInReset = HookwaveInReset PRIVATE
waveInStart = HookwaveInStart PRIVATE
waveInStop = HookwaveInStop PRIVATE
waveInUnprepareHeader = HookwaveInUnprepareHeader PRIVATE
waveOutBreakLoop = HookwaveOutBreakLoop PRIVATE
waveOutClose = HookwaveOutClose PRIVATE
waveOutGetDevCapsA = HookwaveOutGetDevCapsA PRIVATE
waveOutGetDevCapsW = HookwaveOutGetDevCapsW PRIVATE
waveOutGetErrorTextA = HookwaveOutGetErrorTextA PRIVATE
waveOutGetErrorTextW = HookwaveOutGetErrorTextW PRIVATE
waveOutGetID = HookwaveOutGetID PRIVATE
waveOutGetNumDevs = HookwaveOutGetNumDevs PRIVATE
waveOutGetPitch = HookwaveOutGetPitch PRIVATE
waveOutGetPlaybackRate = HookwaveOutGetPlaybackRate PRIVATE
waveOutGetPosition = HookwaveOutGetPosition PRIVATE
waveOutGetVolume = HookwaveOutGetVolume PRIVATE
waveOutMessage = HookwaveOutMessage PRIVATE
waveOutOpen = HookwaveOutOpen PRIVATE
waveOutPause = HookwaveOutPause PRIVATE
waveOutPrepareHeader = HookwaveOutPrepareHeader PRIVATE
waveOutReset = HookwaveOutReset PRIVATE
waveOutRestart = HookwaveOutRestart PRIVATE
waveOutSetPitch = HookwaveOutSetPitch PRIVATE
waveOutSetPlaybackRate = HookwaveOutSetPlaybackRate PRIVATE
waveOutSetVolume = HookwaveOutSetVolume PRIVATE
waveOutUnprepareHeader = HookwaveOutUnprepareHeader PRIVATE
waveOutWrite = HookwaveOutWrite PRIVATE
5 changes: 5 additions & 0 deletions source/dll_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,11 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD fdwReason, LPVOID)
reshade::hooks::register_module(get_system_path() / L"dinput8.dll");
}

// Register Windows Multimedia module in case it was used to load ReShade (but ignore otherwise)
if (_wcsicmp(module_name.c_str(), L"winmm") == 0)
reshade::hooks::register_module(get_system_path() / L"winmm.dll");


#if RESHADE_ADDON == 1
if (!GetEnvironmentVariableW(L"RESHADE_DISABLE_NETWORK_HOOK", nullptr, 0))
{
Expand Down
Loading