├── proxydll_winmm ├── winmm.rc ├── proxydll_winmm.vcxproj.filters ├── winmm_x64.def ├── winmm_x86.def ├── winmm.asm └── proxydll_winmm.vcxproj ├── proxydll_cryptsp ├── cryptsp.rc ├── proxydll_cryptsp.vcxproj.filters ├── cryptsp.def ├── cryptsp.asm └── proxydll_cryptsp.vcxproj ├── proxydll_version ├── version.rc ├── version.def ├── proxydll_version.vcxproj.filters ├── version.asm └── proxydll_version.vcxproj ├── common ├── dllmain.c ├── proxydll.c └── proxydll.h ├── LICENSE ├── proxydll_template.sln └── .gitignore /proxydll_winmm/winmm.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blaquee/proxydll_template/HEAD/proxydll_winmm/winmm.rc -------------------------------------------------------------------------------- /proxydll_cryptsp/cryptsp.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blaquee/proxydll_template/HEAD/proxydll_cryptsp/cryptsp.rc -------------------------------------------------------------------------------- /proxydll_version/version.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blaquee/proxydll_template/HEAD/proxydll_version/version.rc -------------------------------------------------------------------------------- /proxydll_version/version.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | GetFileVersionInfoA @1 3 | GetFileVersionInfoByHandle @2 4 | GetFileVersionInfoExW @3 5 | GetFileVersionInfoSizeA @4 6 | GetFileVersionInfoSizeExW @5 7 | GetFileVersionInfoSizeW @6 8 | GetFileVersionInfoW @7 9 | VerFindFileA @8 10 | VerFindFileW @9 11 | VerInstallFileA @10 12 | VerInstallFileW @11 13 | VerLanguageNameA @12 14 | VerLanguageNameW @13 15 | VerQueryValueA @14 16 | VerQueryValueW @15 17 | -------------------------------------------------------------------------------- /common/dllmain.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "proxydll.h" 4 | 5 | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { 6 | switch (ul_reason_for_call) { 7 | case DLL_PROCESS_ATTACH: 8 | DisableThreadLibraryCalls(hModule); 9 | break; 10 | case DLL_PROCESS_DETACH: 11 | if (!lpReserved) 12 | real_dll_free(); 13 | break; 14 | default: 15 | break; 16 | } 17 | return TRUE; 18 | } 19 | -------------------------------------------------------------------------------- /proxydll_cryptsp/proxydll_cryptsp.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | common 6 | 7 | 8 | common 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | {a419a3e2-05b9-4f17-a07b-82aa23e5d12f} 23 | 24 | 25 | 26 | 27 | common 28 | 29 | 30 | -------------------------------------------------------------------------------- /proxydll_version/proxydll_version.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | common 6 | 7 | 8 | common 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | {61927976-e711-4ecb-be24-7c765ecccf0f} 23 | 24 | 25 | 26 | 27 | common 28 | 29 | 30 | -------------------------------------------------------------------------------- /proxydll_winmm/proxydll_winmm.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | common 6 | 7 | 8 | common 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | {e3b33302-1dfe-4546-83d3-97086c343e03} 24 | 25 | 26 | 27 | 28 | common 29 | 30 | 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /common/proxydll.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "proxydll.h" 5 | 6 | static HMODULE hmod = NULL; 7 | static LPCSTR export_names[] = { 8 | EXPORT_NAMES 9 | #if defined(_X86_) && defined(EXPORT_NAMES32) 10 | , EXPORT_NAMES32 11 | #endif 12 | }; 13 | static FARPROC export_procs[_countof(export_names)] = { 0 }; 14 | 15 | BOOL real_dll_init(void) { 16 | if (!hmod) { 17 | TCHAR path[MAX_PATH]; 18 | GetSystemDirectory(path, _countof(path)); 19 | _tcscat_s(path, _countof(path), _T(DLL_FNAME)); 20 | hmod = LoadLibrary(path); 21 | } 22 | return (hmod != NULL); 23 | } 24 | 25 | BOOL real_dll_free(void) { 26 | if (!hmod) 27 | return FALSE; 28 | 29 | BOOL result = FreeLibrary(hmod); 30 | if (result) 31 | hmod = NULL; 32 | 33 | return result; 34 | } 35 | 36 | FARPROC resolve_export_proc(size_t index) { 37 | if (index < _countof(export_names)) { 38 | if (hmod && export_procs[index]) 39 | return export_procs[index]; 40 | 41 | if (real_dll_init()) 42 | return export_procs[index] = GetProcAddress(hmod, export_names[index]); 43 | } 44 | return NULL; 45 | } 46 | -------------------------------------------------------------------------------- /proxydll_cryptsp/cryptsp.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | CheckSignatureInFile @1 3 | CryptAcquireContextA @2 4 | CryptAcquireContextW @3 5 | CryptContextAddRef @4 6 | CryptCreateHash @5 7 | CryptDecrypt @6 8 | CryptDeriveKey @7 9 | CryptDestroyHash @8 10 | CryptDestroyKey @9 11 | CryptDuplicateHash @10 12 | CryptDuplicateKey @11 13 | CryptEncrypt @12 14 | CryptEnumProviderTypesA @13 15 | CryptEnumProviderTypesW @14 16 | CryptEnumProvidersA @15 17 | CryptEnumProvidersW @16 18 | CryptExportKey @17 19 | CryptGenKey @18 20 | CryptGenRandom @19 21 | CryptGetDefaultProviderA @20 22 | CryptGetDefaultProviderW @21 23 | CryptGetHashParam @22 24 | CryptGetKeyParam @23 25 | CryptGetProvParam @24 26 | CryptGetUserKey @25 27 | CryptHashData @26 28 | CryptHashSessionKey @27 29 | CryptImportKey @28 30 | CryptReleaseContext @29 31 | CryptSetHashParam @30 32 | CryptSetKeyParam @31 33 | CryptSetProvParam @32 34 | CryptSetProviderA @33 35 | CryptSetProviderExA @34 36 | CryptSetProviderExW @35 37 | CryptSetProviderW @36 38 | CryptSignHashA @37 39 | CryptSignHashW @38 40 | CryptVerifySignatureA @39 41 | CryptVerifySignatureW @40 42 | SystemFunction035 @41 43 | -------------------------------------------------------------------------------- /proxydll_version/version.asm: -------------------------------------------------------------------------------- 1 | ifndef x64 2 | .model flat 3 | endif 4 | 5 | .code 6 | 7 | ifndef x64 8 | resolve_export_proc proto C, arg1:dword 9 | else 10 | extern resolve_export_proc:proc 11 | endif 12 | 13 | M_EXPORT_PROC macro export, index 14 | export proc 15 | ifndef x64 16 | invoke resolve_export_proc, index 17 | jmp dword ptr eax 18 | else 19 | push rcx 20 | push rdx 21 | push r8 22 | push r9 23 | push r10 24 | push r11 25 | sub rsp, 28h 26 | if index eq 0 27 | xor rcx, rcx 28 | else 29 | mov rcx, index 30 | endif 31 | call resolve_export_proc 32 | add rsp, 28h 33 | pop r11 34 | pop r10 35 | pop r9 36 | pop r8 37 | pop rdx 38 | pop rcx 39 | jmp qword ptr rax 40 | endif 41 | export endp 42 | endm 43 | 44 | M_EXPORT_PROC GetFileVersionInfoA, 0 45 | M_EXPORT_PROC GetFileVersionInfoByHandle, 1 46 | M_EXPORT_PROC GetFileVersionInfoExW, 2 47 | M_EXPORT_PROC GetFileVersionInfoSizeA, 3 48 | M_EXPORT_PROC GetFileVersionInfoSizeExW, 4 49 | M_EXPORT_PROC GetFileVersionInfoSizeW, 5 50 | M_EXPORT_PROC GetFileVersionInfoW, 6 51 | M_EXPORT_PROC VerFindFileA, 7 52 | M_EXPORT_PROC VerFindFileW, 8 53 | M_EXPORT_PROC VerInstallFileA, 9 54 | M_EXPORT_PROC VerInstallFileW, 10 55 | M_EXPORT_PROC VerLanguageNameA, 11 56 | M_EXPORT_PROC VerLanguageNameW, 12 57 | M_EXPORT_PROC VerQueryValueA, 13 58 | M_EXPORT_PROC VerQueryValueW, 14 59 | 60 | end 61 | -------------------------------------------------------------------------------- /proxydll_cryptsp/cryptsp.asm: -------------------------------------------------------------------------------- 1 | ifndef x64 2 | .model flat 3 | endif 4 | 5 | .code 6 | 7 | ifndef x64 8 | resolve_export_proc proto C, arg1:dword 9 | else 10 | extern resolve_export_proc:proc 11 | endif 12 | 13 | M_EXPORT_PROC macro export, index 14 | export proc 15 | ifndef x64 16 | invoke resolve_export_proc, index 17 | jmp dword ptr eax 18 | else 19 | push rcx 20 | push rdx 21 | push r8 22 | push r9 23 | push r10 24 | push r11 25 | sub rsp, 28h 26 | if index eq 0 27 | xor rcx, rcx 28 | else 29 | mov rcx, index 30 | endif 31 | call resolve_export_proc 32 | add rsp, 28h 33 | pop r11 34 | pop r10 35 | pop r9 36 | pop r8 37 | pop rdx 38 | pop rcx 39 | jmp qword ptr rax 40 | endif 41 | export endp 42 | endm 43 | 44 | M_EXPORT_PROC CheckSignatureInFile, 0 45 | M_EXPORT_PROC CryptAcquireContextA, 1 46 | M_EXPORT_PROC CryptAcquireContextW, 2 47 | M_EXPORT_PROC CryptContextAddRef, 3 48 | M_EXPORT_PROC CryptCreateHash, 4 49 | M_EXPORT_PROC CryptDecrypt, 5 50 | M_EXPORT_PROC CryptDeriveKey, 6 51 | M_EXPORT_PROC CryptDestroyHash, 7 52 | M_EXPORT_PROC CryptDestroyKey, 8 53 | M_EXPORT_PROC CryptDuplicateHash, 9 54 | M_EXPORT_PROC CryptDuplicateKey, 10 55 | M_EXPORT_PROC CryptEncrypt, 11 56 | M_EXPORT_PROC CryptEnumProviderTypesA, 12 57 | M_EXPORT_PROC CryptEnumProviderTypesW, 13 58 | M_EXPORT_PROC CryptEnumProvidersA, 14 59 | M_EXPORT_PROC CryptEnumProvidersW, 15 60 | M_EXPORT_PROC CryptExportKey, 16 61 | M_EXPORT_PROC CryptGenKey, 17 62 | M_EXPORT_PROC CryptGenRandom, 18 63 | M_EXPORT_PROC CryptGetDefaultProviderA, 19 64 | M_EXPORT_PROC CryptGetDefaultProviderW, 20 65 | M_EXPORT_PROC CryptGetHashParam, 21 66 | M_EXPORT_PROC CryptGetKeyParam, 22 67 | M_EXPORT_PROC CryptGetProvParam, 23 68 | M_EXPORT_PROC CryptGetUserKey, 24 69 | M_EXPORT_PROC CryptHashData, 25 70 | M_EXPORT_PROC CryptHashSessionKey, 26 71 | M_EXPORT_PROC CryptImportKey, 27 72 | M_EXPORT_PROC CryptReleaseContext, 28 73 | M_EXPORT_PROC CryptSetHashParam, 29 74 | M_EXPORT_PROC CryptSetKeyParam, 30 75 | M_EXPORT_PROC CryptSetProvParam, 31 76 | M_EXPORT_PROC CryptSetProviderA, 32 77 | M_EXPORT_PROC CryptSetProviderExA, 33 78 | M_EXPORT_PROC CryptSetProviderExW, 34 79 | M_EXPORT_PROC CryptSetProviderW, 35 80 | M_EXPORT_PROC CryptSignHashA, 36 81 | M_EXPORT_PROC CryptSignHashW, 37 82 | M_EXPORT_PROC CryptVerifySignatureA, 38 83 | M_EXPORT_PROC CryptVerifySignatureW, 39 84 | M_EXPORT_PROC SystemFunction035, 40 85 | 86 | end 87 | -------------------------------------------------------------------------------- /proxydll_template.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26730.8 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxydll_cryptsp", "proxydll_cryptsp\proxydll_cryptsp.vcxproj", "{BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxydll_version", "proxydll_version\proxydll_version.vcxproj", "{482F0850-C79D-43EB-909D-8A18CE257986}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxydll_winmm", "proxydll_winmm\proxydll_winmm.vcxproj", "{233067FD-465A-418B-AB27-1531BB3043AC}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|x64 = Debug|x64 15 | Debug|x86 = Debug|x86 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Debug|x64.ActiveCfg = Debug|x64 21 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Debug|x64.Build.0 = Debug|x64 22 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Debug|x86.ActiveCfg = Debug|Win32 23 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Debug|x86.Build.0 = Debug|Win32 24 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Release|x64.ActiveCfg = Release|x64 25 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Release|x64.Build.0 = Release|x64 26 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Release|x86.ActiveCfg = Release|Win32 27 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25}.Release|x86.Build.0 = Release|Win32 28 | {482F0850-C79D-43EB-909D-8A18CE257986}.Debug|x64.ActiveCfg = Debug|x64 29 | {482F0850-C79D-43EB-909D-8A18CE257986}.Debug|x64.Build.0 = Debug|x64 30 | {482F0850-C79D-43EB-909D-8A18CE257986}.Debug|x86.ActiveCfg = Debug|Win32 31 | {482F0850-C79D-43EB-909D-8A18CE257986}.Debug|x86.Build.0 = Debug|Win32 32 | {482F0850-C79D-43EB-909D-8A18CE257986}.Release|x64.ActiveCfg = Release|x64 33 | {482F0850-C79D-43EB-909D-8A18CE257986}.Release|x64.Build.0 = Release|x64 34 | {482F0850-C79D-43EB-909D-8A18CE257986}.Release|x86.ActiveCfg = Release|Win32 35 | {482F0850-C79D-43EB-909D-8A18CE257986}.Release|x86.Build.0 = Release|Win32 36 | {233067FD-465A-418B-AB27-1531BB3043AC}.Debug|x64.ActiveCfg = Debug|x64 37 | {233067FD-465A-418B-AB27-1531BB3043AC}.Debug|x64.Build.0 = Debug|x64 38 | {233067FD-465A-418B-AB27-1531BB3043AC}.Debug|x86.ActiveCfg = Debug|Win32 39 | {233067FD-465A-418B-AB27-1531BB3043AC}.Debug|x86.Build.0 = Debug|Win32 40 | {233067FD-465A-418B-AB27-1531BB3043AC}.Release|x64.ActiveCfg = Release|x64 41 | {233067FD-465A-418B-AB27-1531BB3043AC}.Release|x64.Build.0 = Release|x64 42 | {233067FD-465A-418B-AB27-1531BB3043AC}.Release|x86.ActiveCfg = Release|Win32 43 | {233067FD-465A-418B-AB27-1531BB3043AC}.Release|x86.Build.0 = Release|Win32 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {C76F2EC8-211E-4BE4-8F2F-D0FA41E2CCC5} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /proxydll_winmm/winmm_x64.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | WINMM_2 @2 NONAME 3 | CloseDriver @3 4 | DefDriverProc @4 5 | DriverCallback @5 6 | DrvGetModuleHandle @6 7 | GetDriverModuleHandle @7 8 | OpenDriver @8 9 | PlaySound @9 10 | PlaySoundA @10 11 | PlaySoundW @11 12 | SendDriverMessage @12 13 | WOWAppExit @13 14 | auxGetDevCapsA @14 15 | auxGetDevCapsW @15 16 | auxGetNumDevs @16 17 | auxGetVolume @17 18 | auxOutMessage @18 19 | auxSetVolume @19 20 | joyConfigChanged @20 21 | joyGetDevCapsA @21 22 | joyGetDevCapsW @22 23 | joyGetNumDevs @23 24 | joyGetPos @24 25 | joyGetPosEx @25 26 | joyGetThreshold @26 27 | joyReleaseCapture @27 28 | joySetCapture @28 29 | joySetThreshold @29 30 | mciDriverNotify @30 31 | mciDriverYield @31 32 | mciExecute @32 33 | mciFreeCommandResource @33 34 | mciGetCreatorTask @34 35 | mciGetDeviceIDA @35 36 | mciGetDeviceIDFromElementIDA @36 37 | mciGetDeviceIDFromElementIDW @37 38 | mciGetDeviceIDW @38 39 | mciGetDriverData @39 40 | mciGetErrorStringA @40 41 | mciGetErrorStringW @41 42 | mciGetYieldProc @42 43 | mciLoadCommandResource @43 44 | mciSendCommandA @44 45 | mciSendCommandW @45 46 | mciSendStringA @46 47 | mciSendStringW @47 48 | mciSetDriverData @48 49 | mciSetYieldProc @49 50 | midiConnect @50 51 | midiDisconnect @51 52 | midiInAddBuffer @52 53 | midiInClose @53 54 | midiInGetDevCapsA @54 55 | midiInGetDevCapsW @55 56 | midiInGetErrorTextA @56 57 | midiInGetErrorTextW @57 58 | midiInGetID @58 59 | midiInGetNumDevs @59 60 | midiInMessage @60 61 | midiInOpen @61 62 | midiInPrepareHeader @62 63 | midiInReset @63 64 | midiInStart @64 65 | midiInStop @65 66 | midiInUnprepareHeader @66 67 | midiOutCacheDrumPatches @67 68 | midiOutCachePatches @68 69 | midiOutClose @69 70 | midiOutGetDevCapsA @70 71 | midiOutGetDevCapsW @71 72 | midiOutGetErrorTextA @72 73 | midiOutGetErrorTextW @73 74 | midiOutGetID @74 75 | midiOutGetNumDevs @75 76 | midiOutGetVolume @76 77 | midiOutLongMsg @77 78 | midiOutMessage @78 79 | midiOutOpen @79 80 | midiOutPrepareHeader @80 81 | midiOutReset @81 82 | midiOutSetVolume @82 83 | midiOutShortMsg @83 84 | midiOutUnprepareHeader @84 85 | midiStreamClose @85 86 | midiStreamOpen @86 87 | midiStreamOut @87 88 | midiStreamPause @88 89 | midiStreamPosition @89 90 | midiStreamProperty @90 91 | midiStreamRestart @91 92 | midiStreamStop @92 93 | mixerClose @93 94 | mixerGetControlDetailsA @94 95 | mixerGetControlDetailsW @95 96 | mixerGetDevCapsA @96 97 | mixerGetDevCapsW @97 98 | mixerGetID @98 99 | mixerGetLineControlsA @99 100 | mixerGetLineControlsW @100 101 | mixerGetLineInfoA @101 102 | mixerGetLineInfoW @102 103 | mixerGetNumDevs @103 104 | mixerMessage @104 105 | mixerOpen @105 106 | mixerSetControlDetails @106 107 | mmDrvInstall @107 108 | mmGetCurrentTask @108 109 | mmTaskBlock @109 110 | mmTaskCreate @110 111 | mmTaskSignal @111 112 | mmTaskYield @112 113 | mmioAdvance @113 114 | mmioAscend @114 115 | mmioClose @115 116 | mmioCreateChunk @116 117 | mmioDescend @117 118 | mmioFlush @118 119 | mmioGetInfo @119 120 | mmioInstallIOProcA @120 121 | mmioInstallIOProcW @121 122 | mmioOpenA @122 123 | mmioOpenW @123 124 | mmioRead @124 125 | mmioRenameA @125 126 | mmioRenameW @126 127 | mmioSeek @127 128 | mmioSendMessage @128 129 | mmioSetBuffer @129 130 | mmioSetInfo @130 131 | mmioStringToFOURCCA @131 132 | mmioStringToFOURCCW @132 133 | mmioWrite @133 134 | mmsystemGetVersion @134 135 | sndPlaySoundA @135 136 | sndPlaySoundW @136 137 | timeBeginPeriod @137 138 | timeEndPeriod @138 139 | timeGetDevCaps @139 140 | timeGetSystemTime @140 141 | timeGetTime @141 142 | timeKillEvent @142 143 | timeSetEvent @143 144 | waveInAddBuffer @144 145 | waveInClose @145 146 | waveInGetDevCapsA @146 147 | waveInGetDevCapsW @147 148 | waveInGetErrorTextA @148 149 | waveInGetErrorTextW @149 150 | waveInGetID @150 151 | waveInGetNumDevs @151 152 | waveInGetPosition @152 153 | waveInMessage @153 154 | waveInOpen @154 155 | waveInPrepareHeader @155 156 | waveInReset @156 157 | waveInStart @157 158 | waveInStop @158 159 | waveInUnprepareHeader @159 160 | waveOutBreakLoop @160 161 | waveOutClose @161 162 | waveOutGetDevCapsA @162 163 | waveOutGetDevCapsW @163 164 | waveOutGetErrorTextA @164 165 | waveOutGetErrorTextW @165 166 | waveOutGetID @166 167 | waveOutGetNumDevs @167 168 | waveOutGetPitch @168 169 | waveOutGetPlaybackRate @169 170 | waveOutGetPosition @170 171 | waveOutGetVolume @171 172 | waveOutMessage @172 173 | waveOutOpen @173 174 | waveOutPause @174 175 | waveOutPrepareHeader @175 176 | waveOutReset @176 177 | waveOutRestart @177 178 | waveOutSetPitch @178 179 | waveOutSetPlaybackRate @179 180 | waveOutSetVolume @180 181 | waveOutUnprepareHeader @181 182 | waveOutWrite @182 183 | -------------------------------------------------------------------------------- /proxydll_winmm/winmm_x86.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | WINMM_2 @2 NONAME 3 | CloseDriver @3 4 | DefDriverProc @4 5 | DriverCallback @5 6 | DrvGetModuleHandle @6 7 | GetDriverModuleHandle @7 8 | NotifyCallbackData @8 9 | OpenDriver @9 10 | PlaySound @10 11 | PlaySoundA @11 12 | PlaySoundW @12 13 | SendDriverMessage @13 14 | WOW32DriverCallback @14 15 | WOW32ResolveMultiMediaHandle @15 16 | WOWAppExit @16 17 | aux32Message @17 18 | auxGetDevCapsA @18 19 | auxGetDevCapsW @19 20 | auxGetNumDevs @20 21 | auxGetVolume @21 22 | auxOutMessage @22 23 | auxSetVolume @23 24 | joy32Message @24 25 | joyConfigChanged @25 26 | joyGetDevCapsA @26 27 | joyGetDevCapsW @27 28 | joyGetNumDevs @28 29 | joyGetPos @29 30 | joyGetPosEx @30 31 | joyGetThreshold @31 32 | joyReleaseCapture @32 33 | joySetCapture @33 34 | joySetThreshold @34 35 | mci32Message @35 36 | mciDriverNotify @36 37 | mciDriverYield @37 38 | mciExecute @38 39 | mciFreeCommandResource @39 40 | mciGetCreatorTask @40 41 | mciGetDeviceIDA @41 42 | mciGetDeviceIDFromElementIDA @42 43 | mciGetDeviceIDFromElementIDW @43 44 | mciGetDeviceIDW @44 45 | mciGetDriverData @45 46 | mciGetErrorStringA @46 47 | mciGetErrorStringW @47 48 | mciGetYieldProc @48 49 | mciLoadCommandResource @49 50 | mciSendCommandA @50 51 | mciSendCommandW @51 52 | mciSendStringA @52 53 | mciSendStringW @53 54 | mciSetDriverData @54 55 | mciSetYieldProc @55 56 | mid32Message @56 57 | midiConnect @57 58 | midiDisconnect @58 59 | midiInAddBuffer @59 60 | midiInClose @60 61 | midiInGetDevCapsA @61 62 | midiInGetDevCapsW @62 63 | midiInGetErrorTextA @63 64 | midiInGetErrorTextW @64 65 | midiInGetID @65 66 | midiInGetNumDevs @66 67 | midiInMessage @67 68 | midiInOpen @68 69 | midiInPrepareHeader @69 70 | midiInReset @70 71 | midiInStart @71 72 | midiInStop @72 73 | midiInUnprepareHeader @73 74 | midiOutCacheDrumPatches @74 75 | midiOutCachePatches @75 76 | midiOutClose @76 77 | midiOutGetDevCapsA @77 78 | midiOutGetDevCapsW @78 79 | midiOutGetErrorTextA @79 80 | midiOutGetErrorTextW @80 81 | midiOutGetID @81 82 | midiOutGetNumDevs @82 83 | midiOutGetVolume @83 84 | midiOutLongMsg @84 85 | midiOutMessage @85 86 | midiOutOpen @86 87 | midiOutPrepareHeader @87 88 | midiOutReset @88 89 | midiOutSetVolume @89 90 | midiOutShortMsg @90 91 | midiOutUnprepareHeader @91 92 | midiStreamClose @92 93 | midiStreamOpen @93 94 | midiStreamOut @94 95 | midiStreamPause @95 96 | midiStreamPosition @96 97 | midiStreamProperty @97 98 | midiStreamRestart @98 99 | midiStreamStop @99 100 | mixerClose @100 101 | mixerGetControlDetailsA @101 102 | mixerGetControlDetailsW @102 103 | mixerGetDevCapsA @103 104 | mixerGetDevCapsW @104 105 | mixerGetID @105 106 | mixerGetLineControlsA @106 107 | mixerGetLineControlsW @107 108 | mixerGetLineInfoA @108 109 | mixerGetLineInfoW @109 110 | mixerGetNumDevs @110 111 | mixerMessage @111 112 | mixerOpen @112 113 | mixerSetControlDetails @113 114 | mmDrvInstall @114 115 | mmGetCurrentTask @115 116 | mmTaskBlock @116 117 | mmTaskCreate @117 118 | mmTaskSignal @118 119 | mmTaskYield @119 120 | mmioAdvance @120 121 | mmioAscend @121 122 | mmioClose @122 123 | mmioCreateChunk @123 124 | mmioDescend @124 125 | mmioFlush @125 126 | mmioGetInfo @126 127 | mmioInstallIOProcA @127 128 | mmioInstallIOProcW @128 129 | mmioOpenA @129 130 | mmioOpenW @130 131 | mmioRead @131 132 | mmioRenameA @132 133 | mmioRenameW @133 134 | mmioSeek @134 135 | mmioSendMessage @135 136 | mmioSetBuffer @136 137 | mmioSetInfo @137 138 | mmioStringToFOURCCA @138 139 | mmioStringToFOURCCW @139 140 | mmioWrite @140 141 | mmsystemGetVersion @141 142 | mod32Message @142 143 | mxd32Message @143 144 | sndPlaySoundA @144 145 | sndPlaySoundW @145 146 | tid32Message @146 147 | timeBeginPeriod @147 148 | timeEndPeriod @148 149 | timeGetDevCaps @149 150 | timeGetSystemTime @150 151 | timeGetTime @151 152 | timeKillEvent @152 153 | timeSetEvent @153 154 | waveInAddBuffer @154 155 | waveInClose @155 156 | waveInGetDevCapsA @156 157 | waveInGetDevCapsW @157 158 | waveInGetErrorTextA @158 159 | waveInGetErrorTextW @159 160 | waveInGetID @160 161 | waveInGetNumDevs @161 162 | waveInGetPosition @162 163 | waveInMessage @163 164 | waveInOpen @164 165 | waveInPrepareHeader @165 166 | waveInReset @166 167 | waveInStart @167 168 | waveInStop @168 169 | waveInUnprepareHeader @169 170 | waveOutBreakLoop @170 171 | waveOutClose @171 172 | waveOutGetDevCapsA @172 173 | waveOutGetDevCapsW @173 174 | waveOutGetErrorTextA @174 175 | waveOutGetErrorTextW @175 176 | waveOutGetID @176 177 | waveOutGetNumDevs @177 178 | waveOutGetPitch @178 179 | waveOutGetPlaybackRate @179 180 | waveOutGetPosition @180 181 | waveOutGetVolume @181 182 | waveOutMessage @182 183 | waveOutOpen @183 184 | waveOutPause @184 185 | waveOutPrepareHeader @185 186 | waveOutReset @186 187 | waveOutRestart @187 188 | waveOutSetPitch @188 189 | waveOutSetPlaybackRate @189 190 | waveOutSetVolume @190 191 | waveOutUnprepareHeader @191 192 | waveOutWrite @192 193 | wid32Message @193 194 | wod32Message @194 195 | -------------------------------------------------------------------------------- /common/proxydll.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef PROXYDLL_CRYPTSP_EXPORTS 4 | #define DLL_FNAME "\\cryptsp.dll" 5 | #define EXPORT_NAMES \ 6 | "CheckSignatureInFile", "CryptAcquireContextA", "CryptAcquireContextW", "CryptContextAddRef", "CryptCreateHash", \ 7 | "CryptDecrypt", "CryptDeriveKey", "CryptDestroyHash", "CryptDestroyKey", "CryptDuplicateHash", \ 8 | "CryptDuplicateKey", "CryptEncrypt", "CryptEnumProviderTypesA", "CryptEnumProviderTypesW", "CryptEnumProvidersA", \ 9 | "CryptEnumProvidersW", "CryptExportKey", "CryptGenKey", "CryptGenRandom", "CryptGetDefaultProviderA", \ 10 | "CryptGetDefaultProviderW", "CryptGetHashParam", "CryptGetKeyParam", "CryptGetProvParam", "CryptGetUserKey", \ 11 | "CryptHashData", "CryptHashSessionKey", "CryptImportKey", "CryptReleaseContext", "CryptSetHashParam", \ 12 | "CryptSetKeyParam", "CryptSetProvParam", "CryptSetProviderA", "CryptSetProviderExA", "CryptSetProviderExW", \ 13 | "CryptSetProviderW", "CryptSignHashA", "CryptSignHashW", "CryptVerifySignatureA", "CryptVerifySignatureW", \ 14 | "SystemFunction035" 15 | #elif defined(PROXYDLL_VERSION_EXPORTS) 16 | #define DLL_FNAME "\\version.dll" 17 | #define EXPORT_NAMES \ 18 | "GetFileVersionInfoA", "GetFileVersionInfoByHandle", "GetFileVersionInfoExW", "GetFileVersionInfoSizeA", "GetFileVersionInfoSizeExW", \ 19 | "GetFileVersionInfoSizeW", "GetFileVersionInfoW", "VerFindFileA", "VerFindFileW", "VerInstallFileA", \ 20 | "VerInstallFileW", "VerLanguageNameA", "VerLanguageNameW", "VerQueryValueA", "VerQueryValueW" 21 | #elif defined(PROXYDLL_WINMM_EXPORTS) 22 | #define DLL_FNAME "\\winmm.dll" 23 | #define EXPORT_NAMES \ 24 | MAKEINTRESOURCEA(2), "CloseDriver", "DefDriverProc", "DriverCallback", "DrvGetModuleHandle", \ 25 | "GetDriverModuleHandle", "OpenDriver", "PlaySound", "PlaySoundA", "PlaySoundW", \ 26 | "SendDriverMessage", "WOWAppExit", "auxGetDevCapsA", "auxGetDevCapsW", "auxGetNumDevs", \ 27 | "auxGetVolume", "auxOutMessage", "auxSetVolume", "joyConfigChanged", "joyGetDevCapsA", \ 28 | "joyGetDevCapsW", "joyGetNumDevs", "joyGetPos", "joyGetPosEx", "joyGetThreshold", \ 29 | "joyReleaseCapture", "joySetCapture", "joySetThreshold", "mciDriverNotify", "mciDriverYield", \ 30 | "mciExecute", "mciFreeCommandResource", "mciGetCreatorTask", "mciGetDeviceIDA", "mciGetDeviceIDFromElementIDA", \ 31 | "mciGetDeviceIDFromElementIDW", "mciGetDeviceIDW", "mciGetDriverData", "mciGetErrorStringA", "mciGetErrorStringW", \ 32 | "mciGetYieldProc", "mciLoadCommandResource", "mciSendCommandA", "mciSendCommandW", "mciSendStringA", \ 33 | "mciSendStringW", "mciSetDriverData", "mciSetYieldProc", "midiConnect", "midiDisconnect", \ 34 | "midiInAddBuffer", "midiInClose", "midiInGetDevCapsA", "midiInGetDevCapsW", "midiInGetErrorTextA", \ 35 | "midiInGetErrorTextW", "midiInGetID", "midiInGetNumDevs", "midiInMessage", "midiInOpen", \ 36 | "midiInPrepareHeader", "midiInReset", "midiInStart", "midiInStop", "midiInUnprepareHeader", \ 37 | "midiOutCacheDrumPatches", "midiOutCachePatches", "midiOutClose", "midiOutGetDevCapsA", "midiOutGetDevCapsW", \ 38 | "midiOutGetErrorTextA", "midiOutGetErrorTextW", "midiOutGetID", "midiOutGetNumDevs", "midiOutGetVolume", \ 39 | "midiOutLongMsg", "midiOutMessage", "midiOutOpen", "midiOutPrepareHeader", "midiOutReset", \ 40 | "midiOutSetVolume", "midiOutShortMsg", "midiOutUnprepareHeader", "midiStreamClose", "midiStreamOpen", \ 41 | "midiStreamOut", "midiStreamPause", "midiStreamPosition", "midiStreamProperty", "midiStreamRestart", \ 42 | "midiStreamStop", "mixerClose", "mixerGetControlDetailsA", "mixerGetControlDetailsW", "mixerGetDevCapsA", \ 43 | "mixerGetDevCapsW", "mixerGetID", "mixerGetLineControlsA", "mixerGetLineControlsW", "mixerGetLineInfoA", \ 44 | "mixerGetLineInfoW", "mixerGetNumDevs", "mixerMessage", "mixerOpen", "mixerSetControlDetails", \ 45 | "mmDrvInstall", "mmGetCurrentTask", "mmTaskBlock", "mmTaskCreate", "mmTaskSignal", \ 46 | "mmTaskYield", "mmioAdvance", "mmioAscend", "mmioClose", "mmioCreateChunk", \ 47 | "mmioDescend", "mmioFlush", "mmioGetInfo", "mmioInstallIOProcA", "mmioInstallIOProcW", \ 48 | "mmioOpenA", "mmioOpenW", "mmioRead", "mmioRenameA", "mmioRenameW", \ 49 | "mmioSeek", "mmioSendMessage", "mmioSetBuffer", "mmioSetInfo", "mmioStringToFOURCCA", \ 50 | "mmioStringToFOURCCW", "mmioWrite", "mmsystemGetVersion", "sndPlaySoundA", "sndPlaySoundW", \ 51 | "timeBeginPeriod", "timeEndPeriod", "timeGetDevCaps", "timeGetSystemTime", "timeGetTime", \ 52 | "timeKillEvent", "timeSetEvent", "waveInAddBuffer", "waveInClose", "waveInGetDevCapsA", \ 53 | "waveInGetDevCapsW", "waveInGetErrorTextA", "waveInGetErrorTextW", "waveInGetID", "waveInGetNumDevs", \ 54 | "waveInGetPosition", "waveInMessage", "waveInOpen", "waveInPrepareHeader", "waveInReset", \ 55 | "waveInStart", "waveInStop", "waveInUnprepareHeader", "waveOutBreakLoop", "waveOutClose", \ 56 | "waveOutGetDevCapsA", "waveOutGetDevCapsW", "waveOutGetErrorTextA", "waveOutGetErrorTextW", "waveOutGetID", \ 57 | "waveOutGetNumDevs", "waveOutGetPitch", "waveOutGetPlaybackRate", "waveOutGetPosition", "waveOutGetVolume", \ 58 | "waveOutMessage", "waveOutOpen", "waveOutPause", "waveOutPrepareHeader", "waveOutReset", \ 59 | "waveOutRestart", "waveOutSetPitch", "waveOutSetPlaybackRate", "waveOutSetVolume", "waveOutUnprepareHeader", \ 60 | "waveOutWrite" 61 | #ifdef _X86_ 62 | #define EXPORT_NAMES32 \ 63 | "NotifyCallbackData", "WOW32DriverCallback", "WOW32ResolveMultiMediaHandle", "aux32Message", "joy32Message", \ 64 | "mci32Message", "mid32Message", "mod32Message", "mxd32Message", "tid32Message", \ 65 | "wid32Message", "wod32Message" 66 | #endif 67 | #endif 68 | 69 | BOOL real_dll_init(void); 70 | BOOL real_dll_free(void); 71 | FARPROC resolve_export_proc(size_t index); 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.suo 8 | *.user 9 | *.userosscache 10 | *.sln.docstates 11 | 12 | # User-specific files (MonoDevelop/Xamarin Studio) 13 | *.userprefs 14 | 15 | # Build results 16 | [Dd]ebug/ 17 | [Dd]ebugPublic/ 18 | [Rr]elease/ 19 | [Rr]eleases/ 20 | x64/ 21 | x86/ 22 | bld/ 23 | [Bb]in/ 24 | [Oo]bj/ 25 | [Ll]og/ 26 | 27 | # Visual Studio 2015 cache/options directory 28 | .vs/ 29 | # Uncomment if you have tasks that create the project's static files in wwwroot 30 | #wwwroot/ 31 | 32 | # MSTest test Results 33 | [Tt]est[Rr]esult*/ 34 | [Bb]uild[Ll]og.* 35 | 36 | # NUNIT 37 | *.VisualState.xml 38 | TestResult.xml 39 | 40 | # Build Results of an ATL Project 41 | [Dd]ebugPS/ 42 | [Rr]eleasePS/ 43 | dlldata.c 44 | 45 | # .NET Core 46 | project.lock.json 47 | project.fragment.lock.json 48 | artifacts/ 49 | **/Properties/launchSettings.json 50 | 51 | *_i.c 52 | *_p.c 53 | *_i.h 54 | *.ilk 55 | *.meta 56 | *.obj 57 | *.pch 58 | *.pdb 59 | *.pgc 60 | *.pgd 61 | *.rsp 62 | *.sbr 63 | *.tlb 64 | *.tli 65 | *.tlh 66 | *.tmp 67 | *.tmp_proj 68 | *.log 69 | *.vspscc 70 | *.vssscc 71 | .builds 72 | *.pidb 73 | *.svclog 74 | *.scc 75 | 76 | # Chutzpah Test files 77 | _Chutzpah* 78 | 79 | # Visual C++ cache files 80 | ipch/ 81 | *.aps 82 | *.ncb 83 | *.opendb 84 | *.opensdf 85 | *.sdf 86 | *.cachefile 87 | *.VC.db 88 | *.VC.VC.opendb 89 | 90 | # Visual Studio profiler 91 | *.psess 92 | *.vsp 93 | *.vspx 94 | *.sap 95 | 96 | # TFS 2012 Local Workspace 97 | $tf/ 98 | 99 | # Guidance Automation Toolkit 100 | *.gpState 101 | 102 | # ReSharper is a .NET coding add-in 103 | _ReSharper*/ 104 | *.[Rr]e[Ss]harper 105 | *.DotSettings.user 106 | 107 | # JustCode is a .NET coding add-in 108 | .JustCode 109 | 110 | # TeamCity is a build add-in 111 | _TeamCity* 112 | 113 | # DotCover is a Code Coverage Tool 114 | *.dotCover 115 | 116 | # Visual Studio code coverage results 117 | *.coverage 118 | *.coveragexml 119 | 120 | # NCrunch 121 | _NCrunch_* 122 | .*crunch*.local.xml 123 | nCrunchTemp_* 124 | 125 | # MightyMoose 126 | *.mm.* 127 | AutoTest.Net/ 128 | 129 | # Web workbench (sass) 130 | .sass-cache/ 131 | 132 | # Installshield output folder 133 | [Ee]xpress/ 134 | 135 | # DocProject is a documentation generator add-in 136 | DocProject/buildhelp/ 137 | DocProject/Help/*.HxT 138 | DocProject/Help/*.HxC 139 | DocProject/Help/*.hhc 140 | DocProject/Help/*.hhk 141 | DocProject/Help/*.hhp 142 | DocProject/Help/Html2 143 | DocProject/Help/html 144 | 145 | # Click-Once directory 146 | publish/ 147 | 148 | # Publish Web Output 149 | *.[Pp]ublish.xml 150 | *.azurePubxml 151 | # TODO: Comment the next line if you want to checkin your web deploy settings 152 | # but database connection strings (with potential passwords) will be unencrypted 153 | *.pubxml 154 | *.publishproj 155 | 156 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 157 | # checkin your Azure Web App publish settings, but sensitive information contained 158 | # in these scripts will be unencrypted 159 | PublishScripts/ 160 | 161 | # NuGet Packages 162 | *.nupkg 163 | # The packages folder can be ignored because of Package Restore 164 | **/packages/* 165 | # except build/, which is used as an MSBuild target. 166 | !**/packages/build/ 167 | # Uncomment if necessary however generally it will be regenerated when needed 168 | #!**/packages/repositories.config 169 | # NuGet v3's project.json files produces more ignorable files 170 | *.nuget.props 171 | *.nuget.targets 172 | 173 | # Microsoft Azure Build Output 174 | csx/ 175 | *.build.csdef 176 | 177 | # Microsoft Azure Emulator 178 | ecf/ 179 | rcf/ 180 | 181 | # Windows Store app package directories and files 182 | AppPackages/ 183 | BundleArtifacts/ 184 | Package.StoreAssociation.xml 185 | _pkginfo.txt 186 | 187 | # Visual Studio cache files 188 | # files ending in .cache can be ignored 189 | *.[Cc]ache 190 | # but keep track of directories ending in .cache 191 | !*.[Cc]ache/ 192 | 193 | # Others 194 | ClientBin/ 195 | ~$* 196 | *~ 197 | *.dbmdl 198 | *.dbproj.schemaview 199 | *.jfm 200 | *.pfx 201 | *.publishsettings 202 | orleans.codegen.cs 203 | 204 | # Since there are multiple workflows, uncomment next line to ignore bower_components 205 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 206 | #bower_components/ 207 | 208 | # RIA/Silverlight projects 209 | Generated_Code/ 210 | 211 | # Backup & report files from converting an old project file 212 | # to a newer Visual Studio version. Backup files are not needed, 213 | # because we have git ;-) 214 | _UpgradeReport_Files/ 215 | Backup*/ 216 | UpgradeLog*.XML 217 | UpgradeLog*.htm 218 | 219 | # SQL Server files 220 | *.mdf 221 | *.ldf 222 | *.ndf 223 | 224 | # Business Intelligence projects 225 | *.rdl.data 226 | *.bim.layout 227 | *.bim_*.settings 228 | 229 | # Microsoft Fakes 230 | FakesAssemblies/ 231 | 232 | # GhostDoc plugin setting file 233 | *.GhostDoc.xml 234 | 235 | # Node.js Tools for Visual Studio 236 | .ntvs_analysis.dat 237 | node_modules/ 238 | 239 | # Typescript v1 declaration files 240 | typings/ 241 | 242 | # Visual Studio 6 build log 243 | *.plg 244 | 245 | # Visual Studio 6 workspace options file 246 | *.opt 247 | 248 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 249 | *.vbw 250 | 251 | # Visual Studio LightSwitch build output 252 | **/*.HTMLClient/GeneratedArtifacts 253 | **/*.DesktopClient/GeneratedArtifacts 254 | **/*.DesktopClient/ModelManifest.xml 255 | **/*.Server/GeneratedArtifacts 256 | **/*.Server/ModelManifest.xml 257 | _Pvt_Extensions 258 | 259 | # Paket dependency manager 260 | .paket/paket.exe 261 | paket-files/ 262 | 263 | # FAKE - F# Make 264 | .fake/ 265 | 266 | # JetBrains Rider 267 | .idea/ 268 | *.sln.iml 269 | 270 | # CodeRush 271 | .cr/ 272 | 273 | # Python Tools for Visual Studio (PTVS) 274 | __pycache__/ 275 | *.pyc 276 | 277 | # Cake - Uncomment if you are using it 278 | # tools/** 279 | # !tools/packages.config 280 | 281 | # Telerik's JustMock configuration file 282 | *.jmconfig 283 | 284 | # BizTalk build output 285 | *.btp.cs 286 | *.btm.cs 287 | *.odx.cs 288 | *.xsd.cs 289 | -------------------------------------------------------------------------------- /proxydll_winmm/winmm.asm: -------------------------------------------------------------------------------- 1 | ifndef x64 2 | .model flat 3 | endif 4 | 5 | .code 6 | 7 | ifndef x64 8 | resolve_export_proc proto C, arg1:dword 9 | else 10 | extern resolve_export_proc:proc 11 | endif 12 | 13 | M_EXPORT_PROC macro export, index 14 | export proc 15 | ifndef x64 16 | invoke resolve_export_proc, index 17 | jmp dword ptr eax 18 | else 19 | push rcx 20 | push rdx 21 | push r8 22 | push r9 23 | push r10 24 | push r11 25 | sub rsp, 28h 26 | if index eq 0 27 | xor rcx, rcx 28 | else 29 | mov rcx, index 30 | endif 31 | call resolve_export_proc 32 | add rsp, 28h 33 | pop r11 34 | pop r10 35 | pop r9 36 | pop r8 37 | pop rdx 38 | pop rcx 39 | jmp qword ptr rax 40 | endif 41 | export endp 42 | endm 43 | 44 | M_EXPORT_PROC WINMM_2, 0 45 | M_EXPORT_PROC CloseDriver, 1 46 | M_EXPORT_PROC DefDriverProc, 2 47 | M_EXPORT_PROC DriverCallback, 3 48 | M_EXPORT_PROC DrvGetModuleHandle, 4 49 | M_EXPORT_PROC GetDriverModuleHandle, 5 50 | M_EXPORT_PROC OpenDriver, 6 51 | M_EXPORT_PROC PlaySound, 7 52 | M_EXPORT_PROC PlaySoundA, 8 53 | M_EXPORT_PROC PlaySoundW, 9 54 | M_EXPORT_PROC SendDriverMessage, 10 55 | M_EXPORT_PROC WOWAppExit, 11 56 | M_EXPORT_PROC auxGetDevCapsA, 12 57 | M_EXPORT_PROC auxGetDevCapsW, 13 58 | M_EXPORT_PROC auxGetNumDevs, 14 59 | M_EXPORT_PROC auxGetVolume, 15 60 | M_EXPORT_PROC auxOutMessage, 16 61 | M_EXPORT_PROC auxSetVolume, 17 62 | M_EXPORT_PROC joyConfigChanged, 18 63 | M_EXPORT_PROC joyGetDevCapsA, 19 64 | M_EXPORT_PROC joyGetDevCapsW, 20 65 | M_EXPORT_PROC joyGetNumDevs, 21 66 | M_EXPORT_PROC joyGetPos, 22 67 | M_EXPORT_PROC joyGetPosEx, 23 68 | M_EXPORT_PROC joyGetThreshold, 24 69 | M_EXPORT_PROC joyReleaseCapture, 25 70 | M_EXPORT_PROC joySetCapture, 26 71 | M_EXPORT_PROC joySetThreshold, 27 72 | M_EXPORT_PROC mciDriverNotify, 28 73 | M_EXPORT_PROC mciDriverYield, 29 74 | M_EXPORT_PROC mciExecute, 30 75 | M_EXPORT_PROC mciFreeCommandResource, 31 76 | M_EXPORT_PROC mciGetCreatorTask, 32 77 | M_EXPORT_PROC mciGetDeviceIDA, 33 78 | M_EXPORT_PROC mciGetDeviceIDFromElementIDA, 34 79 | M_EXPORT_PROC mciGetDeviceIDFromElementIDW, 35 80 | M_EXPORT_PROC mciGetDeviceIDW, 36 81 | M_EXPORT_PROC mciGetDriverData, 37 82 | M_EXPORT_PROC mciGetErrorStringA, 38 83 | M_EXPORT_PROC mciGetErrorStringW, 39 84 | M_EXPORT_PROC mciGetYieldProc, 40 85 | M_EXPORT_PROC mciLoadCommandResource, 41 86 | M_EXPORT_PROC mciSendCommandA, 42 87 | M_EXPORT_PROC mciSendCommandW, 43 88 | M_EXPORT_PROC mciSendStringA, 44 89 | M_EXPORT_PROC mciSendStringW, 45 90 | M_EXPORT_PROC mciSetDriverData, 46 91 | M_EXPORT_PROC mciSetYieldProc, 47 92 | M_EXPORT_PROC midiConnect, 48 93 | M_EXPORT_PROC midiDisconnect, 49 94 | M_EXPORT_PROC midiInAddBuffer, 50 95 | M_EXPORT_PROC midiInClose, 51 96 | M_EXPORT_PROC midiInGetDevCapsA, 52 97 | M_EXPORT_PROC midiInGetDevCapsW, 53 98 | M_EXPORT_PROC midiInGetErrorTextA, 54 99 | M_EXPORT_PROC midiInGetErrorTextW, 55 100 | M_EXPORT_PROC midiInGetID, 56 101 | M_EXPORT_PROC midiInGetNumDevs, 57 102 | M_EXPORT_PROC midiInMessage, 58 103 | M_EXPORT_PROC midiInOpen, 59 104 | M_EXPORT_PROC midiInPrepareHeader, 60 105 | M_EXPORT_PROC midiInReset, 61 106 | M_EXPORT_PROC midiInStart, 62 107 | M_EXPORT_PROC midiInStop, 63 108 | M_EXPORT_PROC midiInUnprepareHeader, 64 109 | M_EXPORT_PROC midiOutCacheDrumPatches, 65 110 | M_EXPORT_PROC midiOutCachePatches, 66 111 | M_EXPORT_PROC midiOutClose, 67 112 | M_EXPORT_PROC midiOutGetDevCapsA, 68 113 | M_EXPORT_PROC midiOutGetDevCapsW, 69 114 | M_EXPORT_PROC midiOutGetErrorTextA, 70 115 | M_EXPORT_PROC midiOutGetErrorTextW, 71 116 | M_EXPORT_PROC midiOutGetID, 72 117 | M_EXPORT_PROC midiOutGetNumDevs, 73 118 | M_EXPORT_PROC midiOutGetVolume, 74 119 | M_EXPORT_PROC midiOutLongMsg, 75 120 | M_EXPORT_PROC midiOutMessage, 76 121 | M_EXPORT_PROC midiOutOpen, 77 122 | M_EXPORT_PROC midiOutPrepareHeader, 78 123 | M_EXPORT_PROC midiOutReset, 79 124 | M_EXPORT_PROC midiOutSetVolume, 80 125 | M_EXPORT_PROC midiOutShortMsg, 81 126 | M_EXPORT_PROC midiOutUnprepareHeader, 82 127 | M_EXPORT_PROC midiStreamClose, 83 128 | M_EXPORT_PROC midiStreamOpen, 84 129 | M_EXPORT_PROC midiStreamOut, 85 130 | M_EXPORT_PROC midiStreamPause, 86 131 | M_EXPORT_PROC midiStreamPosition, 87 132 | M_EXPORT_PROC midiStreamProperty, 88 133 | M_EXPORT_PROC midiStreamRestart, 89 134 | M_EXPORT_PROC midiStreamStop, 90 135 | M_EXPORT_PROC mixerClose, 91 136 | M_EXPORT_PROC mixerGetControlDetailsA, 92 137 | M_EXPORT_PROC mixerGetControlDetailsW, 93 138 | M_EXPORT_PROC mixerGetDevCapsA, 94 139 | M_EXPORT_PROC mixerGetDevCapsW, 95 140 | M_EXPORT_PROC mixerGetID, 96 141 | M_EXPORT_PROC mixerGetLineControlsA, 97 142 | M_EXPORT_PROC mixerGetLineControlsW, 98 143 | M_EXPORT_PROC mixerGetLineInfoA, 99 144 | M_EXPORT_PROC mixerGetLineInfoW, 100 145 | M_EXPORT_PROC mixerGetNumDevs, 101 146 | M_EXPORT_PROC mixerMessage, 102 147 | M_EXPORT_PROC mixerOpen, 103 148 | M_EXPORT_PROC mixerSetControlDetails, 104 149 | M_EXPORT_PROC mmDrvInstall, 105 150 | M_EXPORT_PROC mmGetCurrentTask, 106 151 | M_EXPORT_PROC mmTaskBlock, 107 152 | M_EXPORT_PROC mmTaskCreate, 108 153 | M_EXPORT_PROC mmTaskSignal, 109 154 | M_EXPORT_PROC mmTaskYield, 110 155 | M_EXPORT_PROC mmioAdvance, 111 156 | M_EXPORT_PROC mmioAscend, 112 157 | M_EXPORT_PROC mmioClose, 113 158 | M_EXPORT_PROC mmioCreateChunk, 114 159 | M_EXPORT_PROC mmioDescend, 115 160 | M_EXPORT_PROC mmioFlush, 116 161 | M_EXPORT_PROC mmioGetInfo, 117 162 | M_EXPORT_PROC mmioInstallIOProcA, 118 163 | M_EXPORT_PROC mmioInstallIOProcW, 119 164 | M_EXPORT_PROC mmioOpenA, 120 165 | M_EXPORT_PROC mmioOpenW, 121 166 | M_EXPORT_PROC mmioRead, 122 167 | M_EXPORT_PROC mmioRenameA, 123 168 | M_EXPORT_PROC mmioRenameW, 124 169 | M_EXPORT_PROC mmioSeek, 125 170 | M_EXPORT_PROC mmioSendMessage, 126 171 | M_EXPORT_PROC mmioSetBuffer, 127 172 | M_EXPORT_PROC mmioSetInfo, 128 173 | M_EXPORT_PROC mmioStringToFOURCCA, 129 174 | M_EXPORT_PROC mmioStringToFOURCCW, 130 175 | M_EXPORT_PROC mmioWrite, 131 176 | M_EXPORT_PROC mmsystemGetVersion, 132 177 | M_EXPORT_PROC sndPlaySoundA, 133 178 | M_EXPORT_PROC sndPlaySoundW, 134 179 | M_EXPORT_PROC timeBeginPeriod, 135 180 | M_EXPORT_PROC timeEndPeriod, 136 181 | M_EXPORT_PROC timeGetDevCaps, 137 182 | M_EXPORT_PROC timeGetSystemTime, 138 183 | M_EXPORT_PROC timeGetTime, 139 184 | M_EXPORT_PROC timeKillEvent, 140 185 | M_EXPORT_PROC timeSetEvent, 141 186 | M_EXPORT_PROC waveInAddBuffer, 142 187 | M_EXPORT_PROC waveInClose, 143 188 | M_EXPORT_PROC waveInGetDevCapsA, 144 189 | M_EXPORT_PROC waveInGetDevCapsW, 145 190 | M_EXPORT_PROC waveInGetErrorTextA, 146 191 | M_EXPORT_PROC waveInGetErrorTextW, 147 192 | M_EXPORT_PROC waveInGetID, 148 193 | M_EXPORT_PROC waveInGetNumDevs, 149 194 | M_EXPORT_PROC waveInGetPosition, 150 195 | M_EXPORT_PROC waveInMessage, 151 196 | M_EXPORT_PROC waveInOpen, 152 197 | M_EXPORT_PROC waveInPrepareHeader, 153 198 | M_EXPORT_PROC waveInReset, 154 199 | M_EXPORT_PROC waveInStart, 155 200 | M_EXPORT_PROC waveInStop, 156 201 | M_EXPORT_PROC waveInUnprepareHeader, 157 202 | M_EXPORT_PROC waveOutBreakLoop, 158 203 | M_EXPORT_PROC waveOutClose, 159 204 | M_EXPORT_PROC waveOutGetDevCapsA, 160 205 | M_EXPORT_PROC waveOutGetDevCapsW, 161 206 | M_EXPORT_PROC waveOutGetErrorTextA, 162 207 | M_EXPORT_PROC waveOutGetErrorTextW, 163 208 | M_EXPORT_PROC waveOutGetID, 164 209 | M_EXPORT_PROC waveOutGetNumDevs, 165 210 | M_EXPORT_PROC waveOutGetPitch, 166 211 | M_EXPORT_PROC waveOutGetPlaybackRate, 167 212 | M_EXPORT_PROC waveOutGetPosition, 168 213 | M_EXPORT_PROC waveOutGetVolume, 169 214 | M_EXPORT_PROC waveOutMessage, 170 215 | M_EXPORT_PROC waveOutOpen, 171 216 | M_EXPORT_PROC waveOutPause, 172 217 | M_EXPORT_PROC waveOutPrepareHeader, 173 218 | M_EXPORT_PROC waveOutReset, 174 219 | M_EXPORT_PROC waveOutRestart, 175 220 | M_EXPORT_PROC waveOutSetPitch, 176 221 | M_EXPORT_PROC waveOutSetPlaybackRate, 177 222 | M_EXPORT_PROC waveOutSetVolume, 178 223 | M_EXPORT_PROC waveOutUnprepareHeader, 179 224 | M_EXPORT_PROC waveOutWrite, 180 225 | 226 | ifndef x64 227 | M_EXPORT_PROC NotifyCallbackData, 181 228 | M_EXPORT_PROC WOW32DriverCallback, 182 229 | M_EXPORT_PROC WOW32ResolveMultiMediaHandle, 183 230 | M_EXPORT_PROC aux32Message, 184 231 | M_EXPORT_PROC joy32Message, 185 232 | M_EXPORT_PROC mci32Message, 186 233 | M_EXPORT_PROC mid32Message, 187 234 | M_EXPORT_PROC mod32Message, 188 235 | M_EXPORT_PROC mxd32Message, 189 236 | M_EXPORT_PROC tid32Message, 190 237 | M_EXPORT_PROC wid32Message, 191 238 | M_EXPORT_PROC wod32Message, 192 239 | endif 240 | 241 | end 242 | -------------------------------------------------------------------------------- /proxydll_cryptsp/proxydll_cryptsp.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | x64 37 | x64 38 | 39 | 40 | 41 | 15.0 42 | {BD80F2E3-3EF4-49CC-A97F-4BCD78FEBA25} 43 | Win32Proj 44 | proxydll_cryptsp 45 | 10.0.15063.0 46 | 47 | 48 | 49 | DynamicLibrary 50 | true 51 | v141 52 | Unicode 53 | 54 | 55 | DynamicLibrary 56 | false 57 | v141 58 | true 59 | Unicode 60 | 61 | 62 | DynamicLibrary 63 | true 64 | v141 65 | Unicode 66 | 67 | 68 | DynamicLibrary 69 | false 70 | v141 71 | true 72 | Unicode 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | true 95 | false 96 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 97 | cryptsp 98 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 99 | 100 | 101 | true 102 | false 103 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 104 | cryptsp 105 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 106 | 107 | 108 | false 109 | false 110 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 111 | cryptsp 112 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 113 | 114 | 115 | false 116 | false 117 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 118 | cryptsp 119 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 120 | 121 | 122 | 123 | 124 | 125 | Level3 126 | Disabled 127 | WIN32;_DEBUG;_WINDOWS;_USRDLL;PROXYDLL_CRYPTSP_EXPORTS;%(PreprocessorDefinitions) 128 | MultiThreadedDebug 129 | 130 | 131 | Windows 132 | %(AdditionalDependencies) 133 | cryptsp.def 134 | 135 | 136 | 137 | 138 | 139 | 140 | Level3 141 | Disabled 142 | _DEBUG;_WINDOWS;_USRDLL;PROXYDLL_CRYPTSP_EXPORTS;%(PreprocessorDefinitions) 143 | MultiThreadedDebug 144 | 145 | 146 | Windows 147 | %(AdditionalDependencies) 148 | cryptsp.def 149 | 150 | 151 | 152 | 153 | Level3 154 | 155 | 156 | MaxSpeed 157 | true 158 | true 159 | WIN32;NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_CRYPTSP_EXPORTS;%(PreprocessorDefinitions) 160 | MultiThreaded 161 | 162 | 163 | Windows 164 | true 165 | true 166 | false 167 | %(AdditionalDependencies) 168 | cryptsp.def 169 | false 170 | 171 | 172 | 173 | 174 | Level3 175 | 176 | 177 | MaxSpeed 178 | true 179 | true 180 | NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_CRYPTSP_EXPORTS;%(PreprocessorDefinitions) 181 | MultiThreaded 182 | 183 | 184 | Windows 185 | true 186 | true 187 | false 188 | %(AdditionalDependencies) 189 | cryptsp.def 190 | 191 | 192 | 193 | 194 | 195 | 196 | -------------------------------------------------------------------------------- /proxydll_version/proxydll_version.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | x64 37 | x64 38 | 39 | 40 | 41 | 15.0 42 | {482F0850-C79D-43EB-909D-8A18CE257986} 43 | Win32Proj 44 | proxydll_version 45 | 10.0.15063.0 46 | 47 | 48 | 49 | DynamicLibrary 50 | true 51 | v141 52 | Unicode 53 | 54 | 55 | DynamicLibrary 56 | false 57 | v141 58 | true 59 | Unicode 60 | 61 | 62 | DynamicLibrary 63 | true 64 | v141 65 | Unicode 66 | 67 | 68 | DynamicLibrary 69 | false 70 | v141 71 | true 72 | Unicode 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | true 95 | false 96 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 97 | version 98 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 99 | 100 | 101 | true 102 | false 103 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 104 | version 105 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 106 | 107 | 108 | false 109 | false 110 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 111 | version 112 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 113 | 114 | 115 | false 116 | false 117 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 118 | version 119 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 120 | 121 | 122 | 123 | 124 | 125 | Level3 126 | Disabled 127 | WIN32;_DEBUG;_WINDOWS;_USRDLL;PROXYDLL_VERSION_EXPORTS;%(PreprocessorDefinitions) 128 | MultiThreadedDebug 129 | 130 | 131 | Windows 132 | %(AdditionalDependencies) 133 | version.def 134 | 135 | 136 | 137 | 138 | 139 | 140 | Level3 141 | Disabled 142 | _DEBUG;_WINDOWS;_USRDLL;PROXYDLL_VERSION_EXPORTS;%(PreprocessorDefinitions) 143 | MultiThreadedDebug 144 | 145 | 146 | Windows 147 | %(AdditionalDependencies) 148 | version.def 149 | 150 | 151 | 152 | 153 | Level3 154 | 155 | 156 | MaxSpeed 157 | true 158 | true 159 | WIN32;NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_VERSION_EXPORTS;%(PreprocessorDefinitions) 160 | MultiThreaded 161 | 162 | 163 | Windows 164 | true 165 | true 166 | false 167 | %(AdditionalDependencies) 168 | version.def 169 | false 170 | 171 | 172 | 173 | 174 | Level3 175 | 176 | 177 | MaxSpeed 178 | true 179 | true 180 | NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_VERSION_EXPORTS;%(PreprocessorDefinitions) 181 | MultiThreaded 182 | 183 | 184 | Windows 185 | true 186 | true 187 | false 188 | %(AdditionalDependencies) 189 | version.def 190 | 191 | 192 | 193 | 194 | 195 | 196 | -------------------------------------------------------------------------------- /proxydll_winmm/proxydll_winmm.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | x64 38 | x64 39 | false 40 | false 41 | 42 | 43 | 44 | 15.0 45 | {233067FD-465A-418B-AB27-1531BB3043AC} 46 | Win32Proj 47 | proxydll_winmm 48 | 10.0.15063.0 49 | 50 | 51 | 52 | DynamicLibrary 53 | true 54 | v141 55 | Unicode 56 | 57 | 58 | DynamicLibrary 59 | false 60 | v141 61 | true 62 | Unicode 63 | 64 | 65 | DynamicLibrary 66 | true 67 | v141 68 | Unicode 69 | 70 | 71 | DynamicLibrary 72 | false 73 | v141 74 | true 75 | Unicode 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | true 98 | false 99 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 100 | winmm 101 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 102 | 103 | 104 | true 105 | false 106 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 107 | winmm 108 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 109 | 110 | 111 | false 112 | false 113 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 114 | winmm 115 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 116 | 117 | 118 | false 119 | false 120 | $(ProjectDir)bin\$(Configuration)\$(PlatformTarget)\ 121 | winmm 122 | $(ProjectDir)$(BaseIntermediateOutputPath)$(ProjectName)\$(Configuration)\$(PlatformTarget)\ 123 | 124 | 125 | 126 | 127 | 128 | Level3 129 | Disabled 130 | WIN32;_DEBUG;_WINDOWS;_USRDLL;PROXYDLL_WINMM_EXPORTS;%(PreprocessorDefinitions) 131 | MultiThreadedDebug 132 | 133 | 134 | Windows 135 | %(AdditionalDependencies) 136 | winmm_x86.def 137 | 138 | 139 | 140 | 141 | 142 | 143 | Level3 144 | Disabled 145 | _DEBUG;_WINDOWS;_USRDLL;PROXYDLL_WINMM_EXPORTS;%(PreprocessorDefinitions) 146 | MultiThreadedDebug 147 | 148 | 149 | Windows 150 | %(AdditionalDependencies) 151 | winmm_x64.def 152 | 153 | 154 | 155 | 156 | Level3 157 | 158 | 159 | MaxSpeed 160 | true 161 | true 162 | WIN32;NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_WINMM_EXPORTS;%(PreprocessorDefinitions) 163 | MultiThreaded 164 | 165 | 166 | Windows 167 | true 168 | true 169 | false 170 | %(AdditionalDependencies) 171 | winmm_x86.def 172 | false 173 | 174 | 175 | 176 | 177 | Level3 178 | 179 | 180 | MaxSpeed 181 | true 182 | true 183 | NDEBUG;_WINDOWS;_USRDLL;PROXYDLL_WINMM_EXPORTS;%(PreprocessorDefinitions) 184 | MultiThreaded 185 | 186 | 187 | Windows 188 | true 189 | true 190 | false 191 | %(AdditionalDependencies) 192 | winmm_x64.def 193 | 194 | 195 | 196 | 197 | 198 | 199 | --------------------------------------------------------------------------------