├── winmm_fb
├── stdafx.cpp
├── stdafx.h
├── targetver.h
├── winmm_fb.cpp
├── ReadMe.txt
├── winmm_fb.vcxproj.filters
├── winmm_fb.vcxproj
└── dllmain.cpp
├── Readme.assets
└── gif.gif
├── README.md
└── winmm_fb.sln
/winmm_fb/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LDrakura/DLLhijack-ShellcodeLoader/HEAD/winmm_fb/stdafx.cpp
--------------------------------------------------------------------------------
/winmm_fb/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LDrakura/DLLhijack-ShellcodeLoader/HEAD/winmm_fb/stdafx.h
--------------------------------------------------------------------------------
/Readme.assets/gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LDrakura/DLLhijack-ShellcodeLoader/HEAD/Readme.assets/gif.gif
--------------------------------------------------------------------------------
/winmm_fb/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LDrakura/DLLhijack-ShellcodeLoader/HEAD/winmm_fb/targetver.h
--------------------------------------------------------------------------------
/winmm_fb/winmm_fb.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LDrakura/DLLhijack-ShellcodeLoader/HEAD/winmm_fb/winmm_fb.cpp
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [DLLhijack-ShellcodeLoader](https://github.com/LDrakura/DLLhijack-ShellcodeLoader)
2 |
3 | 测试环境:
4 | - **Win10 1803**
5 | - **VS2015**
6 |
7 | 使用方法:
8 |
9 | 将winmm.dll丢到exe同目录下即可。
10 |
11 | 如:QQ.exe Wechat.exe同目录下。
12 |
13 | ~~可对主进程进行判断,以免多次执行shellcode~~
14 |
15 | 
16 |
17 |
--------------------------------------------------------------------------------
/winmm_fb/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | 动态链接库:winmm_fb 项目概述
3 | ========================================================================
4 |
5 | 应用程序向导已为您创建了此 winmm_fb DLL。
6 |
7 | 本文件概要介绍组成 winmm_fb 应用程序的每个文件的内容。
8 |
9 |
10 | winmm_fb.vcxproj
11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
12 |
13 | winmm_fb.vcxproj.filters
14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
15 |
16 | winmm_fb.cpp
17 | 这是主 DLL 源文件。
18 |
19 | 此 DLL 在创建时不导出任何符号。因此,生成时不会产生 .lib 文件。如果希望此项目成为其他某个项目的项目依赖项,则需要添加代码以从 DLL 导出某些符号,以便产生一个导出库,或者,也可以在项目“属性页”对话框中的“链接器”文件夹中,将“常规”属性页上的“忽略输入库”属性设置为“是”。
20 |
21 | /////////////////////////////////////////////////////////////////////////////
22 | 其他标准文件:
23 |
24 | StdAfx.h, StdAfx.cpp
25 | 这些文件用于生成名为 winmm_fb.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
26 |
27 | /////////////////////////////////////////////////////////////////////////////
28 | 其他注释:
29 |
30 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
31 |
32 | /////////////////////////////////////////////////////////////////////////////
33 |
--------------------------------------------------------------------------------
/winmm_fb.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winmm_fb", "winmm_fb\winmm_fb.vcxproj", "{D81A280F-DFDD-4D62-8C68-C0D1C2380164}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Debug|x64.ActiveCfg = Debug|x64
17 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Debug|x64.Build.0 = Debug|x64
18 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Debug|x86.ActiveCfg = Debug|Win32
19 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Debug|x86.Build.0 = Debug|Win32
20 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Release|x64.ActiveCfg = Release|x64
21 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Release|x64.Build.0 = Release|x64
22 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Release|x86.ActiveCfg = Release|Win32
23 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/winmm_fb/winmm_fb.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 头文件
23 |
24 |
25 | 头文件
26 |
27 |
28 |
29 |
30 | 源文件
31 |
32 |
33 | 源文件
34 |
35 |
36 | 源文件
37 |
38 |
39 |
--------------------------------------------------------------------------------
/winmm_fb/winmm_fb.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 | {D81A280F-DFDD-4D62-8C68-C0D1C2380164}
23 | Win32Proj
24 | winmm_fb
25 | 8.1
26 |
27 |
28 |
29 | DynamicLibrary
30 | true
31 | v140
32 | Unicode
33 |
34 |
35 | DynamicLibrary
36 | false
37 | v140
38 | true
39 | Unicode
40 |
41 |
42 | DynamicLibrary
43 | true
44 | v140
45 | Unicode
46 |
47 |
48 | DynamicLibrary
49 | false
50 | v140
51 | true
52 | Unicode
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 | true
74 |
75 |
76 | true
77 |
78 |
79 | false
80 |
81 |
82 | false
83 |
84 |
85 |
86 | Use
87 | Level3
88 | Disabled
89 | WIN32;_DEBUG;_WINDOWS;_USRDLL;WINMM_FB_EXPORTS;%(PreprocessorDefinitions)
90 |
91 |
92 | Windows
93 | true
94 |
95 |
96 |
97 |
98 | Use
99 | Level3
100 | Disabled
101 | _DEBUG;_WINDOWS;_USRDLL;WINMM_FB_EXPORTS;%(PreprocessorDefinitions)
102 |
103 |
104 | Windows
105 | true
106 |
107 |
108 |
109 |
110 | Level3
111 | Use
112 | MaxSpeed
113 | true
114 | true
115 | WIN32;NDEBUG;_WINDOWS;_USRDLL;WINMM_FB_EXPORTS;%(PreprocessorDefinitions)
116 |
117 |
118 | Windows
119 | true
120 | true
121 | true
122 |
123 |
124 |
125 |
126 | Level3
127 | Use
128 | MaxSpeed
129 | true
130 | true
131 | NDEBUG;_WINDOWS;_USRDLL;WINMM_FB_EXPORTS;%(PreprocessorDefinitions)
132 |
133 |
134 | Windows
135 | true
136 | true
137 | true
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 | false
150 |
151 |
152 | false
153 |
154 |
155 | false
156 |
157 |
158 | false
159 |
160 |
161 |
162 |
163 | Create
164 | Create
165 | Create
166 | Create
167 |
168 |
169 |
170 |
171 |
172 |
173 |
--------------------------------------------------------------------------------
/winmm_fb/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // dllmain.cpp : 定义 DLL 应用程序的入口点。
2 | #include "stdafx.h"
3 |
4 |
5 | //
6 | // created by AheadLib
7 | // github:https://github.com/strivexjun/AheadLib-x86-x64
8 | //
9 |
10 | #include
11 |
12 | #pragma comment( lib, "Shlwapi.lib")
13 |
14 | #pragma comment(linker, "/EXPORT:Noname2=_AheadLib_Unnamed2,@2,NONAME")
15 | #pragma comment(linker, "/EXPORT:mciExecute=_AheadLib_mciExecute,@3")
16 | #pragma comment(linker, "/EXPORT:CloseDriver=_AheadLib_CloseDriver,@4")
17 | #pragma comment(linker, "/EXPORT:DefDriverProc=_AheadLib_DefDriverProc,@5")
18 | #pragma comment(linker, "/EXPORT:DriverCallback=_AheadLib_DriverCallback,@6")
19 | #pragma comment(linker, "/EXPORT:DrvGetModuleHandle=_AheadLib_DrvGetModuleHandle,@7")
20 | #pragma comment(linker, "/EXPORT:GetDriverModuleHandle=_AheadLib_GetDriverModuleHandle,@8")
21 | #pragma comment(linker, "/EXPORT:NotifyCallbackData=_AheadLib_NotifyCallbackData,@9")
22 | #pragma comment(linker, "/EXPORT:OpenDriver=_AheadLib_OpenDriver,@10")
23 | #pragma comment(linker, "/EXPORT:PlaySound=_AheadLib_PlaySound,@11")
24 | #pragma comment(linker, "/EXPORT:PlaySoundA=_AheadLib_PlaySoundA,@12")
25 | #pragma comment(linker, "/EXPORT:PlaySoundW=_AheadLib_PlaySoundW,@13")
26 | #pragma comment(linker, "/EXPORT:SendDriverMessage=_AheadLib_SendDriverMessage,@14")
27 | #pragma comment(linker, "/EXPORT:WOW32DriverCallback=_AheadLib_WOW32DriverCallback,@15")
28 | #pragma comment(linker, "/EXPORT:WOW32ResolveMultiMediaHandle=_AheadLib_WOW32ResolveMultiMediaHandle,@16")
29 | #pragma comment(linker, "/EXPORT:WOWAppExit=_AheadLib_WOWAppExit,@17")
30 | #pragma comment(linker, "/EXPORT:aux32Message=_AheadLib_aux32Message,@18")
31 | #pragma comment(linker, "/EXPORT:auxGetDevCapsA=_AheadLib_auxGetDevCapsA,@19")
32 | #pragma comment(linker, "/EXPORT:auxGetDevCapsW=_AheadLib_auxGetDevCapsW,@20")
33 | #pragma comment(linker, "/EXPORT:auxGetNumDevs=_AheadLib_auxGetNumDevs,@21")
34 | #pragma comment(linker, "/EXPORT:auxGetVolume=_AheadLib_auxGetVolume,@22")
35 | #pragma comment(linker, "/EXPORT:auxOutMessage=_AheadLib_auxOutMessage,@23")
36 | #pragma comment(linker, "/EXPORT:auxSetVolume=_AheadLib_auxSetVolume,@24")
37 | #pragma comment(linker, "/EXPORT:joy32Message=_AheadLib_joy32Message,@25")
38 | #pragma comment(linker, "/EXPORT:joyConfigChanged=_AheadLib_joyConfigChanged,@26")
39 | #pragma comment(linker, "/EXPORT:joyGetDevCapsA=_AheadLib_joyGetDevCapsA,@27")
40 | #pragma comment(linker, "/EXPORT:joyGetDevCapsW=_AheadLib_joyGetDevCapsW,@28")
41 | #pragma comment(linker, "/EXPORT:joyGetNumDevs=_AheadLib_joyGetNumDevs,@29")
42 | #pragma comment(linker, "/EXPORT:joyGetPos=_AheadLib_joyGetPos,@30")
43 | #pragma comment(linker, "/EXPORT:joyGetPosEx=_AheadLib_joyGetPosEx,@31")
44 | #pragma comment(linker, "/EXPORT:joyGetThreshold=_AheadLib_joyGetThreshold,@32")
45 | #pragma comment(linker, "/EXPORT:joyReleaseCapture=_AheadLib_joyReleaseCapture,@33")
46 | #pragma comment(linker, "/EXPORT:joySetCapture=_AheadLib_joySetCapture,@34")
47 | #pragma comment(linker, "/EXPORT:joySetThreshold=_AheadLib_joySetThreshold,@35")
48 | #pragma comment(linker, "/EXPORT:mci32Message=_AheadLib_mci32Message,@36")
49 | #pragma comment(linker, "/EXPORT:mciDriverNotify=_AheadLib_mciDriverNotify,@37")
50 | #pragma comment(linker, "/EXPORT:mciDriverYield=_AheadLib_mciDriverYield,@38")
51 | #pragma comment(linker, "/EXPORT:mciFreeCommandResource=_AheadLib_mciFreeCommandResource,@39")
52 | #pragma comment(linker, "/EXPORT:mciGetCreatorTask=_AheadLib_mciGetCreatorTask,@40")
53 | #pragma comment(linker, "/EXPORT:mciGetDeviceIDA=_AheadLib_mciGetDeviceIDA,@41")
54 | #pragma comment(linker, "/EXPORT:mciGetDeviceIDFromElementIDA=_AheadLib_mciGetDeviceIDFromElementIDA,@42")
55 | #pragma comment(linker, "/EXPORT:mciGetDeviceIDFromElementIDW=_AheadLib_mciGetDeviceIDFromElementIDW,@43")
56 | #pragma comment(linker, "/EXPORT:mciGetDeviceIDW=_AheadLib_mciGetDeviceIDW,@44")
57 | #pragma comment(linker, "/EXPORT:mciGetDriverData=_AheadLib_mciGetDriverData,@45")
58 | #pragma comment(linker, "/EXPORT:mciGetErrorStringA=_AheadLib_mciGetErrorStringA,@46")
59 | #pragma comment(linker, "/EXPORT:mciGetErrorStringW=_AheadLib_mciGetErrorStringW,@47")
60 | #pragma comment(linker, "/EXPORT:mciGetYieldProc=_AheadLib_mciGetYieldProc,@48")
61 | #pragma comment(linker, "/EXPORT:mciLoadCommandResource=_AheadLib_mciLoadCommandResource,@49")
62 | #pragma comment(linker, "/EXPORT:mciSendCommandA=_AheadLib_mciSendCommandA,@50")
63 | #pragma comment(linker, "/EXPORT:mciSendCommandW=_AheadLib_mciSendCommandW,@51")
64 | #pragma comment(linker, "/EXPORT:mciSendStringA=_AheadLib_mciSendStringA,@52")
65 | #pragma comment(linker, "/EXPORT:mciSendStringW=_AheadLib_mciSendStringW,@53")
66 | #pragma comment(linker, "/EXPORT:mciSetDriverData=_AheadLib_mciSetDriverData,@54")
67 | #pragma comment(linker, "/EXPORT:mciSetYieldProc=_AheadLib_mciSetYieldProc,@55")
68 | #pragma comment(linker, "/EXPORT:mid32Message=_AheadLib_mid32Message,@56")
69 | #pragma comment(linker, "/EXPORT:midiConnect=_AheadLib_midiConnect,@57")
70 | #pragma comment(linker, "/EXPORT:midiDisconnect=_AheadLib_midiDisconnect,@58")
71 | #pragma comment(linker, "/EXPORT:midiInAddBuffer=_AheadLib_midiInAddBuffer,@59")
72 | #pragma comment(linker, "/EXPORT:midiInClose=_AheadLib_midiInClose,@60")
73 | #pragma comment(linker, "/EXPORT:midiInGetDevCapsA=_AheadLib_midiInGetDevCapsA,@61")
74 | #pragma comment(linker, "/EXPORT:midiInGetDevCapsW=_AheadLib_midiInGetDevCapsW,@62")
75 | #pragma comment(linker, "/EXPORT:midiInGetErrorTextA=_AheadLib_midiInGetErrorTextA,@63")
76 | #pragma comment(linker, "/EXPORT:midiInGetErrorTextW=_AheadLib_midiInGetErrorTextW,@64")
77 | #pragma comment(linker, "/EXPORT:midiInGetID=_AheadLib_midiInGetID,@65")
78 | #pragma comment(linker, "/EXPORT:midiInGetNumDevs=_AheadLib_midiInGetNumDevs,@66")
79 | #pragma comment(linker, "/EXPORT:midiInMessage=_AheadLib_midiInMessage,@67")
80 | #pragma comment(linker, "/EXPORT:midiInOpen=_AheadLib_midiInOpen,@68")
81 | #pragma comment(linker, "/EXPORT:midiInPrepareHeader=_AheadLib_midiInPrepareHeader,@69")
82 | #pragma comment(linker, "/EXPORT:midiInReset=_AheadLib_midiInReset,@70")
83 | #pragma comment(linker, "/EXPORT:midiInStart=_AheadLib_midiInStart,@71")
84 | #pragma comment(linker, "/EXPORT:midiInStop=_AheadLib_midiInStop,@72")
85 | #pragma comment(linker, "/EXPORT:midiInUnprepareHeader=_AheadLib_midiInUnprepareHeader,@73")
86 | #pragma comment(linker, "/EXPORT:midiOutCacheDrumPatches=_AheadLib_midiOutCacheDrumPatches,@74")
87 | #pragma comment(linker, "/EXPORT:midiOutCachePatches=_AheadLib_midiOutCachePatches,@75")
88 | #pragma comment(linker, "/EXPORT:midiOutClose=_AheadLib_midiOutClose,@76")
89 | #pragma comment(linker, "/EXPORT:midiOutGetDevCapsA=_AheadLib_midiOutGetDevCapsA,@77")
90 | #pragma comment(linker, "/EXPORT:midiOutGetDevCapsW=_AheadLib_midiOutGetDevCapsW,@78")
91 | #pragma comment(linker, "/EXPORT:midiOutGetErrorTextA=_AheadLib_midiOutGetErrorTextA,@79")
92 | #pragma comment(linker, "/EXPORT:midiOutGetErrorTextW=_AheadLib_midiOutGetErrorTextW,@80")
93 | #pragma comment(linker, "/EXPORT:midiOutGetID=_AheadLib_midiOutGetID,@81")
94 | #pragma comment(linker, "/EXPORT:midiOutGetNumDevs=_AheadLib_midiOutGetNumDevs,@82")
95 | #pragma comment(linker, "/EXPORT:midiOutGetVolume=_AheadLib_midiOutGetVolume,@83")
96 | #pragma comment(linker, "/EXPORT:midiOutLongMsg=_AheadLib_midiOutLongMsg,@84")
97 | #pragma comment(linker, "/EXPORT:midiOutMessage=_AheadLib_midiOutMessage,@85")
98 | #pragma comment(linker, "/EXPORT:midiOutOpen=_AheadLib_midiOutOpen,@86")
99 | #pragma comment(linker, "/EXPORT:midiOutPrepareHeader=_AheadLib_midiOutPrepareHeader,@87")
100 | #pragma comment(linker, "/EXPORT:midiOutReset=_AheadLib_midiOutReset,@88")
101 | #pragma comment(linker, "/EXPORT:midiOutSetVolume=_AheadLib_midiOutSetVolume,@89")
102 | #pragma comment(linker, "/EXPORT:midiOutShortMsg=_AheadLib_midiOutShortMsg,@90")
103 | #pragma comment(linker, "/EXPORT:midiOutUnprepareHeader=_AheadLib_midiOutUnprepareHeader,@91")
104 | #pragma comment(linker, "/EXPORT:midiStreamClose=_AheadLib_midiStreamClose,@92")
105 | #pragma comment(linker, "/EXPORT:midiStreamOpen=_AheadLib_midiStreamOpen,@93")
106 | #pragma comment(linker, "/EXPORT:midiStreamOut=_AheadLib_midiStreamOut,@94")
107 | #pragma comment(linker, "/EXPORT:midiStreamPause=_AheadLib_midiStreamPause,@95")
108 | #pragma comment(linker, "/EXPORT:midiStreamPosition=_AheadLib_midiStreamPosition,@96")
109 | #pragma comment(linker, "/EXPORT:midiStreamProperty=_AheadLib_midiStreamProperty,@97")
110 | #pragma comment(linker, "/EXPORT:midiStreamRestart=_AheadLib_midiStreamRestart,@98")
111 | #pragma comment(linker, "/EXPORT:midiStreamStop=_AheadLib_midiStreamStop,@99")
112 | #pragma comment(linker, "/EXPORT:mixerClose=_AheadLib_mixerClose,@100")
113 | #pragma comment(linker, "/EXPORT:mixerGetControlDetailsA=_AheadLib_mixerGetControlDetailsA,@101")
114 | #pragma comment(linker, "/EXPORT:mixerGetControlDetailsW=_AheadLib_mixerGetControlDetailsW,@102")
115 | #pragma comment(linker, "/EXPORT:mixerGetDevCapsA=_AheadLib_mixerGetDevCapsA,@103")
116 | #pragma comment(linker, "/EXPORT:mixerGetDevCapsW=_AheadLib_mixerGetDevCapsW,@104")
117 | #pragma comment(linker, "/EXPORT:mixerGetID=_AheadLib_mixerGetID,@105")
118 | #pragma comment(linker, "/EXPORT:mixerGetLineControlsA=_AheadLib_mixerGetLineControlsA,@106")
119 | #pragma comment(linker, "/EXPORT:mixerGetLineControlsW=_AheadLib_mixerGetLineControlsW,@107")
120 | #pragma comment(linker, "/EXPORT:mixerGetLineInfoA=_AheadLib_mixerGetLineInfoA,@108")
121 | #pragma comment(linker, "/EXPORT:mixerGetLineInfoW=_AheadLib_mixerGetLineInfoW,@109")
122 | #pragma comment(linker, "/EXPORT:mixerGetNumDevs=_AheadLib_mixerGetNumDevs,@110")
123 | #pragma comment(linker, "/EXPORT:mixerMessage=_AheadLib_mixerMessage,@111")
124 | #pragma comment(linker, "/EXPORT:mixerOpen=_AheadLib_mixerOpen,@112")
125 | #pragma comment(linker, "/EXPORT:mixerSetControlDetails=_AheadLib_mixerSetControlDetails,@113")
126 | #pragma comment(linker, "/EXPORT:mmDrvInstall=_AheadLib_mmDrvInstall,@114")
127 | #pragma comment(linker, "/EXPORT:mmGetCurrentTask=_AheadLib_mmGetCurrentTask,@115")
128 | #pragma comment(linker, "/EXPORT:mmTaskBlock=_AheadLib_mmTaskBlock,@116")
129 | #pragma comment(linker, "/EXPORT:mmTaskCreate=_AheadLib_mmTaskCreate,@117")
130 | #pragma comment(linker, "/EXPORT:mmTaskSignal=_AheadLib_mmTaskSignal,@118")
131 | #pragma comment(linker, "/EXPORT:mmTaskYield=_AheadLib_mmTaskYield,@119")
132 | #pragma comment(linker, "/EXPORT:mmioAdvance=_AheadLib_mmioAdvance,@120")
133 | #pragma comment(linker, "/EXPORT:mmioAscend=_AheadLib_mmioAscend,@121")
134 | #pragma comment(linker, "/EXPORT:mmioClose=_AheadLib_mmioClose,@122")
135 | #pragma comment(linker, "/EXPORT:mmioCreateChunk=_AheadLib_mmioCreateChunk,@123")
136 | #pragma comment(linker, "/EXPORT:mmioDescend=_AheadLib_mmioDescend,@124")
137 | #pragma comment(linker, "/EXPORT:mmioFlush=_AheadLib_mmioFlush,@125")
138 | #pragma comment(linker, "/EXPORT:mmioGetInfo=_AheadLib_mmioGetInfo,@126")
139 | #pragma comment(linker, "/EXPORT:mmioInstallIOProcA=_AheadLib_mmioInstallIOProcA,@127")
140 | #pragma comment(linker, "/EXPORT:mmioInstallIOProcW=_AheadLib_mmioInstallIOProcW,@128")
141 | #pragma comment(linker, "/EXPORT:mmioOpenA=_AheadLib_mmioOpenA,@129")
142 | #pragma comment(linker, "/EXPORT:mmioOpenW=_AheadLib_mmioOpenW,@130")
143 | #pragma comment(linker, "/EXPORT:mmioRead=_AheadLib_mmioRead,@131")
144 | #pragma comment(linker, "/EXPORT:mmioRenameA=_AheadLib_mmioRenameA,@132")
145 | #pragma comment(linker, "/EXPORT:mmioRenameW=_AheadLib_mmioRenameW,@133")
146 | #pragma comment(linker, "/EXPORT:mmioSeek=_AheadLib_mmioSeek,@134")
147 | #pragma comment(linker, "/EXPORT:mmioSendMessage=_AheadLib_mmioSendMessage,@135")
148 | #pragma comment(linker, "/EXPORT:mmioSetBuffer=_AheadLib_mmioSetBuffer,@136")
149 | #pragma comment(linker, "/EXPORT:mmioSetInfo=_AheadLib_mmioSetInfo,@137")
150 | #pragma comment(linker, "/EXPORT:mmioStringToFOURCCA=_AheadLib_mmioStringToFOURCCA,@138")
151 | #pragma comment(linker, "/EXPORT:mmioStringToFOURCCW=_AheadLib_mmioStringToFOURCCW,@139")
152 | #pragma comment(linker, "/EXPORT:mmioWrite=_AheadLib_mmioWrite,@140")
153 | #pragma comment(linker, "/EXPORT:mmsystemGetVersion=_AheadLib_mmsystemGetVersion,@141")
154 | #pragma comment(linker, "/EXPORT:mod32Message=_AheadLib_mod32Message,@142")
155 | #pragma comment(linker, "/EXPORT:mxd32Message=_AheadLib_mxd32Message,@143")
156 | #pragma comment(linker, "/EXPORT:sndPlaySoundA=_AheadLib_sndPlaySoundA,@144")
157 | #pragma comment(linker, "/EXPORT:sndPlaySoundW=_AheadLib_sndPlaySoundW,@145")
158 | #pragma comment(linker, "/EXPORT:tid32Message=_AheadLib_tid32Message,@146")
159 | #pragma comment(linker, "/EXPORT:timeBeginPeriod=_AheadLib_timeBeginPeriod,@147")
160 | #pragma comment(linker, "/EXPORT:timeEndPeriod=_AheadLib_timeEndPeriod,@148")
161 | #pragma comment(linker, "/EXPORT:timeGetDevCaps=_AheadLib_timeGetDevCaps,@149")
162 | #pragma comment(linker, "/EXPORT:timeGetSystemTime=_AheadLib_timeGetSystemTime,@150")
163 | #pragma comment(linker, "/EXPORT:timeGetTime=_AheadLib_timeGetTime,@151")
164 | #pragma comment(linker, "/EXPORT:timeKillEvent=_AheadLib_timeKillEvent,@152")
165 | #pragma comment(linker, "/EXPORT:timeSetEvent=_AheadLib_timeSetEvent,@153")
166 | #pragma comment(linker, "/EXPORT:waveInAddBuffer=_AheadLib_waveInAddBuffer,@154")
167 | #pragma comment(linker, "/EXPORT:waveInClose=_AheadLib_waveInClose,@155")
168 | #pragma comment(linker, "/EXPORT:waveInGetDevCapsA=_AheadLib_waveInGetDevCapsA,@156")
169 | #pragma comment(linker, "/EXPORT:waveInGetDevCapsW=_AheadLib_waveInGetDevCapsW,@157")
170 | #pragma comment(linker, "/EXPORT:waveInGetErrorTextA=_AheadLib_waveInGetErrorTextA,@158")
171 | #pragma comment(linker, "/EXPORT:waveInGetErrorTextW=_AheadLib_waveInGetErrorTextW,@159")
172 | #pragma comment(linker, "/EXPORT:waveInGetID=_AheadLib_waveInGetID,@160")
173 | #pragma comment(linker, "/EXPORT:waveInGetNumDevs=_AheadLib_waveInGetNumDevs,@161")
174 | #pragma comment(linker, "/EXPORT:waveInGetPosition=_AheadLib_waveInGetPosition,@162")
175 | #pragma comment(linker, "/EXPORT:waveInMessage=_AheadLib_waveInMessage,@163")
176 | #pragma comment(linker, "/EXPORT:waveInOpen=_AheadLib_waveInOpen,@164")
177 | #pragma comment(linker, "/EXPORT:waveInPrepareHeader=_AheadLib_waveInPrepareHeader,@165")
178 | #pragma comment(linker, "/EXPORT:waveInReset=_AheadLib_waveInReset,@166")
179 | #pragma comment(linker, "/EXPORT:waveInStart=_AheadLib_waveInStart,@167")
180 | #pragma comment(linker, "/EXPORT:waveInStop=_AheadLib_waveInStop,@168")
181 | #pragma comment(linker, "/EXPORT:waveInUnprepareHeader=_AheadLib_waveInUnprepareHeader,@169")
182 | #pragma comment(linker, "/EXPORT:waveOutBreakLoop=_AheadLib_waveOutBreakLoop,@170")
183 | #pragma comment(linker, "/EXPORT:waveOutClose=_AheadLib_waveOutClose,@171")
184 | #pragma comment(linker, "/EXPORT:waveOutGetDevCapsA=_AheadLib_waveOutGetDevCapsA,@172")
185 | #pragma comment(linker, "/EXPORT:waveOutGetDevCapsW=_AheadLib_waveOutGetDevCapsW,@173")
186 | #pragma comment(linker, "/EXPORT:waveOutGetErrorTextA=_AheadLib_waveOutGetErrorTextA,@174")
187 | #pragma comment(linker, "/EXPORT:waveOutGetErrorTextW=_AheadLib_waveOutGetErrorTextW,@175")
188 | #pragma comment(linker, "/EXPORT:waveOutGetID=_AheadLib_waveOutGetID,@176")
189 | #pragma comment(linker, "/EXPORT:waveOutGetNumDevs=_AheadLib_waveOutGetNumDevs,@177")
190 | #pragma comment(linker, "/EXPORT:waveOutGetPitch=_AheadLib_waveOutGetPitch,@178")
191 | #pragma comment(linker, "/EXPORT:waveOutGetPlaybackRate=_AheadLib_waveOutGetPlaybackRate,@179")
192 | #pragma comment(linker, "/EXPORT:waveOutGetPosition=_AheadLib_waveOutGetPosition,@180")
193 | #pragma comment(linker, "/EXPORT:waveOutGetVolume=_AheadLib_waveOutGetVolume,@181")
194 | #pragma comment(linker, "/EXPORT:waveOutMessage=_AheadLib_waveOutMessage,@182")
195 | #pragma comment(linker, "/EXPORT:waveOutOpen=_AheadLib_waveOutOpen,@183")
196 | #pragma comment(linker, "/EXPORT:waveOutPause=_AheadLib_waveOutPause,@184")
197 | #pragma comment(linker, "/EXPORT:waveOutPrepareHeader=_AheadLib_waveOutPrepareHeader,@185")
198 | #pragma comment(linker, "/EXPORT:waveOutReset=_AheadLib_waveOutReset,@186")
199 | #pragma comment(linker, "/EXPORT:waveOutRestart=_AheadLib_waveOutRestart,@187")
200 | #pragma comment(linker, "/EXPORT:waveOutSetPitch=_AheadLib_waveOutSetPitch,@188")
201 | #pragma comment(linker, "/EXPORT:waveOutSetPlaybackRate=_AheadLib_waveOutSetPlaybackRate,@189")
202 | #pragma comment(linker, "/EXPORT:waveOutSetVolume=_AheadLib_waveOutSetVolume,@190")
203 | #pragma comment(linker, "/EXPORT:waveOutUnprepareHeader=_AheadLib_waveOutUnprepareHeader,@191")
204 | #pragma comment(linker, "/EXPORT:waveOutWrite=_AheadLib_waveOutWrite,@192")
205 | #pragma comment(linker, "/EXPORT:wid32Message=_AheadLib_wid32Message,@193")
206 | #pragma comment(linker, "/EXPORT:wod32Message=_AheadLib_wod32Message,@194")
207 |
208 |
209 | PVOID pfnAheadLib_Unnamed2;
210 | PVOID pfnAheadLib_mciExecute;
211 | PVOID pfnAheadLib_CloseDriver;
212 | PVOID pfnAheadLib_DefDriverProc;
213 | PVOID pfnAheadLib_DriverCallback;
214 | PVOID pfnAheadLib_DrvGetModuleHandle;
215 | PVOID pfnAheadLib_GetDriverModuleHandle;
216 | PVOID pfnAheadLib_NotifyCallbackData;
217 | PVOID pfnAheadLib_OpenDriver;
218 | PVOID pfnAheadLib_PlaySound;
219 | PVOID pfnAheadLib_PlaySoundA;
220 | PVOID pfnAheadLib_PlaySoundW;
221 | PVOID pfnAheadLib_SendDriverMessage;
222 | PVOID pfnAheadLib_WOW32DriverCallback;
223 | PVOID pfnAheadLib_WOW32ResolveMultiMediaHandle;
224 | PVOID pfnAheadLib_WOWAppExit;
225 | PVOID pfnAheadLib_aux32Message;
226 | PVOID pfnAheadLib_auxGetDevCapsA;
227 | PVOID pfnAheadLib_auxGetDevCapsW;
228 | PVOID pfnAheadLib_auxGetNumDevs;
229 | PVOID pfnAheadLib_auxGetVolume;
230 | PVOID pfnAheadLib_auxOutMessage;
231 | PVOID pfnAheadLib_auxSetVolume;
232 | PVOID pfnAheadLib_joy32Message;
233 | PVOID pfnAheadLib_joyConfigChanged;
234 | PVOID pfnAheadLib_joyGetDevCapsA;
235 | PVOID pfnAheadLib_joyGetDevCapsW;
236 | PVOID pfnAheadLib_joyGetNumDevs;
237 | PVOID pfnAheadLib_joyGetPos;
238 | PVOID pfnAheadLib_joyGetPosEx;
239 | PVOID pfnAheadLib_joyGetThreshold;
240 | PVOID pfnAheadLib_joyReleaseCapture;
241 | PVOID pfnAheadLib_joySetCapture;
242 | PVOID pfnAheadLib_joySetThreshold;
243 | PVOID pfnAheadLib_mci32Message;
244 | PVOID pfnAheadLib_mciDriverNotify;
245 | PVOID pfnAheadLib_mciDriverYield;
246 | PVOID pfnAheadLib_mciFreeCommandResource;
247 | PVOID pfnAheadLib_mciGetCreatorTask;
248 | PVOID pfnAheadLib_mciGetDeviceIDA;
249 | PVOID pfnAheadLib_mciGetDeviceIDFromElementIDA;
250 | PVOID pfnAheadLib_mciGetDeviceIDFromElementIDW;
251 | PVOID pfnAheadLib_mciGetDeviceIDW;
252 | PVOID pfnAheadLib_mciGetDriverData;
253 | PVOID pfnAheadLib_mciGetErrorStringA;
254 | PVOID pfnAheadLib_mciGetErrorStringW;
255 | PVOID pfnAheadLib_mciGetYieldProc;
256 | PVOID pfnAheadLib_mciLoadCommandResource;
257 | PVOID pfnAheadLib_mciSendCommandA;
258 | PVOID pfnAheadLib_mciSendCommandW;
259 | PVOID pfnAheadLib_mciSendStringA;
260 | PVOID pfnAheadLib_mciSendStringW;
261 | PVOID pfnAheadLib_mciSetDriverData;
262 | PVOID pfnAheadLib_mciSetYieldProc;
263 | PVOID pfnAheadLib_mid32Message;
264 | PVOID pfnAheadLib_midiConnect;
265 | PVOID pfnAheadLib_midiDisconnect;
266 | PVOID pfnAheadLib_midiInAddBuffer;
267 | PVOID pfnAheadLib_midiInClose;
268 | PVOID pfnAheadLib_midiInGetDevCapsA;
269 | PVOID pfnAheadLib_midiInGetDevCapsW;
270 | PVOID pfnAheadLib_midiInGetErrorTextA;
271 | PVOID pfnAheadLib_midiInGetErrorTextW;
272 | PVOID pfnAheadLib_midiInGetID;
273 | PVOID pfnAheadLib_midiInGetNumDevs;
274 | PVOID pfnAheadLib_midiInMessage;
275 | PVOID pfnAheadLib_midiInOpen;
276 | PVOID pfnAheadLib_midiInPrepareHeader;
277 | PVOID pfnAheadLib_midiInReset;
278 | PVOID pfnAheadLib_midiInStart;
279 | PVOID pfnAheadLib_midiInStop;
280 | PVOID pfnAheadLib_midiInUnprepareHeader;
281 | PVOID pfnAheadLib_midiOutCacheDrumPatches;
282 | PVOID pfnAheadLib_midiOutCachePatches;
283 | PVOID pfnAheadLib_midiOutClose;
284 | PVOID pfnAheadLib_midiOutGetDevCapsA;
285 | PVOID pfnAheadLib_midiOutGetDevCapsW;
286 | PVOID pfnAheadLib_midiOutGetErrorTextA;
287 | PVOID pfnAheadLib_midiOutGetErrorTextW;
288 | PVOID pfnAheadLib_midiOutGetID;
289 | PVOID pfnAheadLib_midiOutGetNumDevs;
290 | PVOID pfnAheadLib_midiOutGetVolume;
291 | PVOID pfnAheadLib_midiOutLongMsg;
292 | PVOID pfnAheadLib_midiOutMessage;
293 | PVOID pfnAheadLib_midiOutOpen;
294 | PVOID pfnAheadLib_midiOutPrepareHeader;
295 | PVOID pfnAheadLib_midiOutReset;
296 | PVOID pfnAheadLib_midiOutSetVolume;
297 | PVOID pfnAheadLib_midiOutShortMsg;
298 | PVOID pfnAheadLib_midiOutUnprepareHeader;
299 | PVOID pfnAheadLib_midiStreamClose;
300 | PVOID pfnAheadLib_midiStreamOpen;
301 | PVOID pfnAheadLib_midiStreamOut;
302 | PVOID pfnAheadLib_midiStreamPause;
303 | PVOID pfnAheadLib_midiStreamPosition;
304 | PVOID pfnAheadLib_midiStreamProperty;
305 | PVOID pfnAheadLib_midiStreamRestart;
306 | PVOID pfnAheadLib_midiStreamStop;
307 | PVOID pfnAheadLib_mixerClose;
308 | PVOID pfnAheadLib_mixerGetControlDetailsA;
309 | PVOID pfnAheadLib_mixerGetControlDetailsW;
310 | PVOID pfnAheadLib_mixerGetDevCapsA;
311 | PVOID pfnAheadLib_mixerGetDevCapsW;
312 | PVOID pfnAheadLib_mixerGetID;
313 | PVOID pfnAheadLib_mixerGetLineControlsA;
314 | PVOID pfnAheadLib_mixerGetLineControlsW;
315 | PVOID pfnAheadLib_mixerGetLineInfoA;
316 | PVOID pfnAheadLib_mixerGetLineInfoW;
317 | PVOID pfnAheadLib_mixerGetNumDevs;
318 | PVOID pfnAheadLib_mixerMessage;
319 | PVOID pfnAheadLib_mixerOpen;
320 | PVOID pfnAheadLib_mixerSetControlDetails;
321 | PVOID pfnAheadLib_mmDrvInstall;
322 | PVOID pfnAheadLib_mmGetCurrentTask;
323 | PVOID pfnAheadLib_mmTaskBlock;
324 | PVOID pfnAheadLib_mmTaskCreate;
325 | PVOID pfnAheadLib_mmTaskSignal;
326 | PVOID pfnAheadLib_mmTaskYield;
327 | PVOID pfnAheadLib_mmioAdvance;
328 | PVOID pfnAheadLib_mmioAscend;
329 | PVOID pfnAheadLib_mmioClose;
330 | PVOID pfnAheadLib_mmioCreateChunk;
331 | PVOID pfnAheadLib_mmioDescend;
332 | PVOID pfnAheadLib_mmioFlush;
333 | PVOID pfnAheadLib_mmioGetInfo;
334 | PVOID pfnAheadLib_mmioInstallIOProcA;
335 | PVOID pfnAheadLib_mmioInstallIOProcW;
336 | PVOID pfnAheadLib_mmioOpenA;
337 | PVOID pfnAheadLib_mmioOpenW;
338 | PVOID pfnAheadLib_mmioRead;
339 | PVOID pfnAheadLib_mmioRenameA;
340 | PVOID pfnAheadLib_mmioRenameW;
341 | PVOID pfnAheadLib_mmioSeek;
342 | PVOID pfnAheadLib_mmioSendMessage;
343 | PVOID pfnAheadLib_mmioSetBuffer;
344 | PVOID pfnAheadLib_mmioSetInfo;
345 | PVOID pfnAheadLib_mmioStringToFOURCCA;
346 | PVOID pfnAheadLib_mmioStringToFOURCCW;
347 | PVOID pfnAheadLib_mmioWrite;
348 | PVOID pfnAheadLib_mmsystemGetVersion;
349 | PVOID pfnAheadLib_mod32Message;
350 | PVOID pfnAheadLib_mxd32Message;
351 | PVOID pfnAheadLib_sndPlaySoundA;
352 | PVOID pfnAheadLib_sndPlaySoundW;
353 | PVOID pfnAheadLib_tid32Message;
354 | PVOID pfnAheadLib_timeBeginPeriod;
355 | PVOID pfnAheadLib_timeEndPeriod;
356 | PVOID pfnAheadLib_timeGetDevCaps;
357 | PVOID pfnAheadLib_timeGetSystemTime;
358 | PVOID pfnAheadLib_timeGetTime;
359 | PVOID pfnAheadLib_timeKillEvent;
360 | PVOID pfnAheadLib_timeSetEvent;
361 | PVOID pfnAheadLib_waveInAddBuffer;
362 | PVOID pfnAheadLib_waveInClose;
363 | PVOID pfnAheadLib_waveInGetDevCapsA;
364 | PVOID pfnAheadLib_waveInGetDevCapsW;
365 | PVOID pfnAheadLib_waveInGetErrorTextA;
366 | PVOID pfnAheadLib_waveInGetErrorTextW;
367 | PVOID pfnAheadLib_waveInGetID;
368 | PVOID pfnAheadLib_waveInGetNumDevs;
369 | PVOID pfnAheadLib_waveInGetPosition;
370 | PVOID pfnAheadLib_waveInMessage;
371 | PVOID pfnAheadLib_waveInOpen;
372 | PVOID pfnAheadLib_waveInPrepareHeader;
373 | PVOID pfnAheadLib_waveInReset;
374 | PVOID pfnAheadLib_waveInStart;
375 | PVOID pfnAheadLib_waveInStop;
376 | PVOID pfnAheadLib_waveInUnprepareHeader;
377 | PVOID pfnAheadLib_waveOutBreakLoop;
378 | PVOID pfnAheadLib_waveOutClose;
379 | PVOID pfnAheadLib_waveOutGetDevCapsA;
380 | PVOID pfnAheadLib_waveOutGetDevCapsW;
381 | PVOID pfnAheadLib_waveOutGetErrorTextA;
382 | PVOID pfnAheadLib_waveOutGetErrorTextW;
383 | PVOID pfnAheadLib_waveOutGetID;
384 | PVOID pfnAheadLib_waveOutGetNumDevs;
385 | PVOID pfnAheadLib_waveOutGetPitch;
386 | PVOID pfnAheadLib_waveOutGetPlaybackRate;
387 | PVOID pfnAheadLib_waveOutGetPosition;
388 | PVOID pfnAheadLib_waveOutGetVolume;
389 | PVOID pfnAheadLib_waveOutMessage;
390 | PVOID pfnAheadLib_waveOutOpen;
391 | PVOID pfnAheadLib_waveOutPause;
392 | PVOID pfnAheadLib_waveOutPrepareHeader;
393 | PVOID pfnAheadLib_waveOutReset;
394 | PVOID pfnAheadLib_waveOutRestart;
395 | PVOID pfnAheadLib_waveOutSetPitch;
396 | PVOID pfnAheadLib_waveOutSetPlaybackRate;
397 | PVOID pfnAheadLib_waveOutSetVolume;
398 | PVOID pfnAheadLib_waveOutUnprepareHeader;
399 | PVOID pfnAheadLib_waveOutWrite;
400 | PVOID pfnAheadLib_wid32Message;
401 | PVOID pfnAheadLib_wod32Message;
402 |
403 |
404 | static
405 | HMODULE g_OldModule = NULL;
406 |
407 | VOID WINAPI Free()
408 | {
409 | if (g_OldModule)
410 | {
411 | FreeLibrary(g_OldModule);
412 | }
413 | }
414 |
415 |
416 | BOOL WINAPI Load()
417 | {
418 | TCHAR tzPath[MAX_PATH];
419 | TCHAR tzTemp[MAX_PATH * 2];
420 |
421 | //
422 | // 这里是否从系统目录或当前目录加载原始DLL
423 | //
424 | GetSystemDirectory(tzPath, MAX_PATH);
425 | lstrcat(tzPath, TEXT("\\winmm.dll"));
426 |
427 | g_OldModule = LoadLibrary(tzPath);
428 | if (g_OldModule == NULL)
429 | {
430 | wsprintf(tzTemp, TEXT("无法找到模块 %s,程序无法正常运行"), tzPath);
431 | MessageBox(NULL, tzTemp, TEXT("AheadLib"), MB_ICONSTOP);
432 | }
433 |
434 | return (g_OldModule != NULL);
435 |
436 | }
437 |
438 |
439 | FARPROC WINAPI GetAddress(PCSTR pszProcName)
440 | {
441 | FARPROC fpAddress;
442 | CHAR szProcName[64];
443 | TCHAR tzTemp[MAX_PATH];
444 |
445 | fpAddress = GetProcAddress(g_OldModule, pszProcName);
446 | if (fpAddress == NULL)
447 | {
448 | if (HIWORD(pszProcName) == 0)
449 | {
450 | wsprintfA(szProcName, "#%d", pszProcName);
451 | pszProcName = szProcName;
452 | }
453 |
454 | wsprintf(tzTemp, TEXT("无法找到函数 %hs,程序无法正常运行"), pszProcName);
455 | MessageBox(NULL, tzTemp, TEXT("AheadLib"), MB_ICONSTOP);
456 | ExitProcess(-2);
457 | }
458 | return fpAddress;
459 | }
460 |
461 | BOOL WINAPI Init()
462 | {
463 | pfnAheadLib_Unnamed2 = GetAddress(MAKEINTRESOURCEA(2));
464 | pfnAheadLib_mciExecute = GetAddress("mciExecute");
465 | pfnAheadLib_CloseDriver = GetAddress("CloseDriver");
466 | pfnAheadLib_DefDriverProc = GetAddress("DefDriverProc");
467 | pfnAheadLib_DriverCallback = GetAddress("DriverCallback");
468 | pfnAheadLib_DrvGetModuleHandle = GetAddress("DrvGetModuleHandle");
469 | pfnAheadLib_GetDriverModuleHandle = GetAddress("GetDriverModuleHandle");
470 | pfnAheadLib_NotifyCallbackData = GetAddress("NotifyCallbackData");
471 | pfnAheadLib_OpenDriver = GetAddress("OpenDriver");
472 | pfnAheadLib_PlaySound = GetAddress("PlaySound");
473 | pfnAheadLib_PlaySoundA = GetAddress("PlaySoundA");
474 | pfnAheadLib_PlaySoundW = GetAddress("PlaySoundW");
475 | pfnAheadLib_SendDriverMessage = GetAddress("SendDriverMessage");
476 | pfnAheadLib_WOW32DriverCallback = GetAddress("WOW32DriverCallback");
477 | pfnAheadLib_WOW32ResolveMultiMediaHandle = GetAddress("WOW32ResolveMultiMediaHandle");
478 | pfnAheadLib_WOWAppExit = GetAddress("WOWAppExit");
479 | pfnAheadLib_aux32Message = GetAddress("aux32Message");
480 | pfnAheadLib_auxGetDevCapsA = GetAddress("auxGetDevCapsA");
481 | pfnAheadLib_auxGetDevCapsW = GetAddress("auxGetDevCapsW");
482 | pfnAheadLib_auxGetNumDevs = GetAddress("auxGetNumDevs");
483 | pfnAheadLib_auxGetVolume = GetAddress("auxGetVolume");
484 | pfnAheadLib_auxOutMessage = GetAddress("auxOutMessage");
485 | pfnAheadLib_auxSetVolume = GetAddress("auxSetVolume");
486 | pfnAheadLib_joy32Message = GetAddress("joy32Message");
487 | pfnAheadLib_joyConfigChanged = GetAddress("joyConfigChanged");
488 | pfnAheadLib_joyGetDevCapsA = GetAddress("joyGetDevCapsA");
489 | pfnAheadLib_joyGetDevCapsW = GetAddress("joyGetDevCapsW");
490 | pfnAheadLib_joyGetNumDevs = GetAddress("joyGetNumDevs");
491 | pfnAheadLib_joyGetPos = GetAddress("joyGetPos");
492 | pfnAheadLib_joyGetPosEx = GetAddress("joyGetPosEx");
493 | pfnAheadLib_joyGetThreshold = GetAddress("joyGetThreshold");
494 | pfnAheadLib_joyReleaseCapture = GetAddress("joyReleaseCapture");
495 | pfnAheadLib_joySetCapture = GetAddress("joySetCapture");
496 | pfnAheadLib_joySetThreshold = GetAddress("joySetThreshold");
497 | pfnAheadLib_mci32Message = GetAddress("mci32Message");
498 | pfnAheadLib_mciDriverNotify = GetAddress("mciDriverNotify");
499 | pfnAheadLib_mciDriverYield = GetAddress("mciDriverYield");
500 | pfnAheadLib_mciFreeCommandResource = GetAddress("mciFreeCommandResource");
501 | pfnAheadLib_mciGetCreatorTask = GetAddress("mciGetCreatorTask");
502 | pfnAheadLib_mciGetDeviceIDA = GetAddress("mciGetDeviceIDA");
503 | pfnAheadLib_mciGetDeviceIDFromElementIDA = GetAddress("mciGetDeviceIDFromElementIDA");
504 | pfnAheadLib_mciGetDeviceIDFromElementIDW = GetAddress("mciGetDeviceIDFromElementIDW");
505 | pfnAheadLib_mciGetDeviceIDW = GetAddress("mciGetDeviceIDW");
506 | pfnAheadLib_mciGetDriverData = GetAddress("mciGetDriverData");
507 | pfnAheadLib_mciGetErrorStringA = GetAddress("mciGetErrorStringA");
508 | pfnAheadLib_mciGetErrorStringW = GetAddress("mciGetErrorStringW");
509 | pfnAheadLib_mciGetYieldProc = GetAddress("mciGetYieldProc");
510 | pfnAheadLib_mciLoadCommandResource = GetAddress("mciLoadCommandResource");
511 | pfnAheadLib_mciSendCommandA = GetAddress("mciSendCommandA");
512 | pfnAheadLib_mciSendCommandW = GetAddress("mciSendCommandW");
513 | pfnAheadLib_mciSendStringA = GetAddress("mciSendStringA");
514 | pfnAheadLib_mciSendStringW = GetAddress("mciSendStringW");
515 | pfnAheadLib_mciSetDriverData = GetAddress("mciSetDriverData");
516 | pfnAheadLib_mciSetYieldProc = GetAddress("mciSetYieldProc");
517 | pfnAheadLib_mid32Message = GetAddress("mid32Message");
518 | pfnAheadLib_midiConnect = GetAddress("midiConnect");
519 | pfnAheadLib_midiDisconnect = GetAddress("midiDisconnect");
520 | pfnAheadLib_midiInAddBuffer = GetAddress("midiInAddBuffer");
521 | pfnAheadLib_midiInClose = GetAddress("midiInClose");
522 | pfnAheadLib_midiInGetDevCapsA = GetAddress("midiInGetDevCapsA");
523 | pfnAheadLib_midiInGetDevCapsW = GetAddress("midiInGetDevCapsW");
524 | pfnAheadLib_midiInGetErrorTextA = GetAddress("midiInGetErrorTextA");
525 | pfnAheadLib_midiInGetErrorTextW = GetAddress("midiInGetErrorTextW");
526 | pfnAheadLib_midiInGetID = GetAddress("midiInGetID");
527 | pfnAheadLib_midiInGetNumDevs = GetAddress("midiInGetNumDevs");
528 | pfnAheadLib_midiInMessage = GetAddress("midiInMessage");
529 | pfnAheadLib_midiInOpen = GetAddress("midiInOpen");
530 | pfnAheadLib_midiInPrepareHeader = GetAddress("midiInPrepareHeader");
531 | pfnAheadLib_midiInReset = GetAddress("midiInReset");
532 | pfnAheadLib_midiInStart = GetAddress("midiInStart");
533 | pfnAheadLib_midiInStop = GetAddress("midiInStop");
534 | pfnAheadLib_midiInUnprepareHeader = GetAddress("midiInUnprepareHeader");
535 | pfnAheadLib_midiOutCacheDrumPatches = GetAddress("midiOutCacheDrumPatches");
536 | pfnAheadLib_midiOutCachePatches = GetAddress("midiOutCachePatches");
537 | pfnAheadLib_midiOutClose = GetAddress("midiOutClose");
538 | pfnAheadLib_midiOutGetDevCapsA = GetAddress("midiOutGetDevCapsA");
539 | pfnAheadLib_midiOutGetDevCapsW = GetAddress("midiOutGetDevCapsW");
540 | pfnAheadLib_midiOutGetErrorTextA = GetAddress("midiOutGetErrorTextA");
541 | pfnAheadLib_midiOutGetErrorTextW = GetAddress("midiOutGetErrorTextW");
542 | pfnAheadLib_midiOutGetID = GetAddress("midiOutGetID");
543 | pfnAheadLib_midiOutGetNumDevs = GetAddress("midiOutGetNumDevs");
544 | pfnAheadLib_midiOutGetVolume = GetAddress("midiOutGetVolume");
545 | pfnAheadLib_midiOutLongMsg = GetAddress("midiOutLongMsg");
546 | pfnAheadLib_midiOutMessage = GetAddress("midiOutMessage");
547 | pfnAheadLib_midiOutOpen = GetAddress("midiOutOpen");
548 | pfnAheadLib_midiOutPrepareHeader = GetAddress("midiOutPrepareHeader");
549 | pfnAheadLib_midiOutReset = GetAddress("midiOutReset");
550 | pfnAheadLib_midiOutSetVolume = GetAddress("midiOutSetVolume");
551 | pfnAheadLib_midiOutShortMsg = GetAddress("midiOutShortMsg");
552 | pfnAheadLib_midiOutUnprepareHeader = GetAddress("midiOutUnprepareHeader");
553 | pfnAheadLib_midiStreamClose = GetAddress("midiStreamClose");
554 | pfnAheadLib_midiStreamOpen = GetAddress("midiStreamOpen");
555 | pfnAheadLib_midiStreamOut = GetAddress("midiStreamOut");
556 | pfnAheadLib_midiStreamPause = GetAddress("midiStreamPause");
557 | pfnAheadLib_midiStreamPosition = GetAddress("midiStreamPosition");
558 | pfnAheadLib_midiStreamProperty = GetAddress("midiStreamProperty");
559 | pfnAheadLib_midiStreamRestart = GetAddress("midiStreamRestart");
560 | pfnAheadLib_midiStreamStop = GetAddress("midiStreamStop");
561 | pfnAheadLib_mixerClose = GetAddress("mixerClose");
562 | pfnAheadLib_mixerGetControlDetailsA = GetAddress("mixerGetControlDetailsA");
563 | pfnAheadLib_mixerGetControlDetailsW = GetAddress("mixerGetControlDetailsW");
564 | pfnAheadLib_mixerGetDevCapsA = GetAddress("mixerGetDevCapsA");
565 | pfnAheadLib_mixerGetDevCapsW = GetAddress("mixerGetDevCapsW");
566 | pfnAheadLib_mixerGetID = GetAddress("mixerGetID");
567 | pfnAheadLib_mixerGetLineControlsA = GetAddress("mixerGetLineControlsA");
568 | pfnAheadLib_mixerGetLineControlsW = GetAddress("mixerGetLineControlsW");
569 | pfnAheadLib_mixerGetLineInfoA = GetAddress("mixerGetLineInfoA");
570 | pfnAheadLib_mixerGetLineInfoW = GetAddress("mixerGetLineInfoW");
571 | pfnAheadLib_mixerGetNumDevs = GetAddress("mixerGetNumDevs");
572 | pfnAheadLib_mixerMessage = GetAddress("mixerMessage");
573 | pfnAheadLib_mixerOpen = GetAddress("mixerOpen");
574 | pfnAheadLib_mixerSetControlDetails = GetAddress("mixerSetControlDetails");
575 | pfnAheadLib_mmDrvInstall = GetAddress("mmDrvInstall");
576 | pfnAheadLib_mmGetCurrentTask = GetAddress("mmGetCurrentTask");
577 | pfnAheadLib_mmTaskBlock = GetAddress("mmTaskBlock");
578 | pfnAheadLib_mmTaskCreate = GetAddress("mmTaskCreate");
579 | pfnAheadLib_mmTaskSignal = GetAddress("mmTaskSignal");
580 | pfnAheadLib_mmTaskYield = GetAddress("mmTaskYield");
581 | pfnAheadLib_mmioAdvance = GetAddress("mmioAdvance");
582 | pfnAheadLib_mmioAscend = GetAddress("mmioAscend");
583 | pfnAheadLib_mmioClose = GetAddress("mmioClose");
584 | pfnAheadLib_mmioCreateChunk = GetAddress("mmioCreateChunk");
585 | pfnAheadLib_mmioDescend = GetAddress("mmioDescend");
586 | pfnAheadLib_mmioFlush = GetAddress("mmioFlush");
587 | pfnAheadLib_mmioGetInfo = GetAddress("mmioGetInfo");
588 | pfnAheadLib_mmioInstallIOProcA = GetAddress("mmioInstallIOProcA");
589 | pfnAheadLib_mmioInstallIOProcW = GetAddress("mmioInstallIOProcW");
590 | pfnAheadLib_mmioOpenA = GetAddress("mmioOpenA");
591 | pfnAheadLib_mmioOpenW = GetAddress("mmioOpenW");
592 | pfnAheadLib_mmioRead = GetAddress("mmioRead");
593 | pfnAheadLib_mmioRenameA = GetAddress("mmioRenameA");
594 | pfnAheadLib_mmioRenameW = GetAddress("mmioRenameW");
595 | pfnAheadLib_mmioSeek = GetAddress("mmioSeek");
596 | pfnAheadLib_mmioSendMessage = GetAddress("mmioSendMessage");
597 | pfnAheadLib_mmioSetBuffer = GetAddress("mmioSetBuffer");
598 | pfnAheadLib_mmioSetInfo = GetAddress("mmioSetInfo");
599 | pfnAheadLib_mmioStringToFOURCCA = GetAddress("mmioStringToFOURCCA");
600 | pfnAheadLib_mmioStringToFOURCCW = GetAddress("mmioStringToFOURCCW");
601 | pfnAheadLib_mmioWrite = GetAddress("mmioWrite");
602 | pfnAheadLib_mmsystemGetVersion = GetAddress("mmsystemGetVersion");
603 | pfnAheadLib_mod32Message = GetAddress("mod32Message");
604 | pfnAheadLib_mxd32Message = GetAddress("mxd32Message");
605 | pfnAheadLib_sndPlaySoundA = GetAddress("sndPlaySoundA");
606 | pfnAheadLib_sndPlaySoundW = GetAddress("sndPlaySoundW");
607 | pfnAheadLib_tid32Message = GetAddress("tid32Message");
608 | pfnAheadLib_timeBeginPeriod = GetAddress("timeBeginPeriod");
609 | pfnAheadLib_timeEndPeriod = GetAddress("timeEndPeriod");
610 | pfnAheadLib_timeGetDevCaps = GetAddress("timeGetDevCaps");
611 | pfnAheadLib_timeGetSystemTime = GetAddress("timeGetSystemTime");
612 | pfnAheadLib_timeGetTime = GetAddress("timeGetTime");
613 | pfnAheadLib_timeKillEvent = GetAddress("timeKillEvent");
614 | pfnAheadLib_timeSetEvent = GetAddress("timeSetEvent");
615 | pfnAheadLib_waveInAddBuffer = GetAddress("waveInAddBuffer");
616 | pfnAheadLib_waveInClose = GetAddress("waveInClose");
617 | pfnAheadLib_waveInGetDevCapsA = GetAddress("waveInGetDevCapsA");
618 | pfnAheadLib_waveInGetDevCapsW = GetAddress("waveInGetDevCapsW");
619 | pfnAheadLib_waveInGetErrorTextA = GetAddress("waveInGetErrorTextA");
620 | pfnAheadLib_waveInGetErrorTextW = GetAddress("waveInGetErrorTextW");
621 | pfnAheadLib_waveInGetID = GetAddress("waveInGetID");
622 | pfnAheadLib_waveInGetNumDevs = GetAddress("waveInGetNumDevs");
623 | pfnAheadLib_waveInGetPosition = GetAddress("waveInGetPosition");
624 | pfnAheadLib_waveInMessage = GetAddress("waveInMessage");
625 | pfnAheadLib_waveInOpen = GetAddress("waveInOpen");
626 | pfnAheadLib_waveInPrepareHeader = GetAddress("waveInPrepareHeader");
627 | pfnAheadLib_waveInReset = GetAddress("waveInReset");
628 | pfnAheadLib_waveInStart = GetAddress("waveInStart");
629 | pfnAheadLib_waveInStop = GetAddress("waveInStop");
630 | pfnAheadLib_waveInUnprepareHeader = GetAddress("waveInUnprepareHeader");
631 | pfnAheadLib_waveOutBreakLoop = GetAddress("waveOutBreakLoop");
632 | pfnAheadLib_waveOutClose = GetAddress("waveOutClose");
633 | pfnAheadLib_waveOutGetDevCapsA = GetAddress("waveOutGetDevCapsA");
634 | pfnAheadLib_waveOutGetDevCapsW = GetAddress("waveOutGetDevCapsW");
635 | pfnAheadLib_waveOutGetErrorTextA = GetAddress("waveOutGetErrorTextA");
636 | pfnAheadLib_waveOutGetErrorTextW = GetAddress("waveOutGetErrorTextW");
637 | pfnAheadLib_waveOutGetID = GetAddress("waveOutGetID");
638 | pfnAheadLib_waveOutGetNumDevs = GetAddress("waveOutGetNumDevs");
639 | pfnAheadLib_waveOutGetPitch = GetAddress("waveOutGetPitch");
640 | pfnAheadLib_waveOutGetPlaybackRate = GetAddress("waveOutGetPlaybackRate");
641 | pfnAheadLib_waveOutGetPosition = GetAddress("waveOutGetPosition");
642 | pfnAheadLib_waveOutGetVolume = GetAddress("waveOutGetVolume");
643 | pfnAheadLib_waveOutMessage = GetAddress("waveOutMessage");
644 | pfnAheadLib_waveOutOpen = GetAddress("waveOutOpen");
645 | pfnAheadLib_waveOutPause = GetAddress("waveOutPause");
646 | pfnAheadLib_waveOutPrepareHeader = GetAddress("waveOutPrepareHeader");
647 | pfnAheadLib_waveOutReset = GetAddress("waveOutReset");
648 | pfnAheadLib_waveOutRestart = GetAddress("waveOutRestart");
649 | pfnAheadLib_waveOutSetPitch = GetAddress("waveOutSetPitch");
650 | pfnAheadLib_waveOutSetPlaybackRate = GetAddress("waveOutSetPlaybackRate");
651 | pfnAheadLib_waveOutSetVolume = GetAddress("waveOutSetVolume");
652 | pfnAheadLib_waveOutUnprepareHeader = GetAddress("waveOutUnprepareHeader");
653 | pfnAheadLib_waveOutWrite = GetAddress("waveOutWrite");
654 | pfnAheadLib_wid32Message = GetAddress("wid32Message");
655 | pfnAheadLib_wod32Message = GetAddress("wod32Message");
656 | return TRUE;
657 | }
658 |
659 | DWORD WINAPI ThreadProc(LPVOID lpThreadParameter)
660 | {
661 | HANDLE hProcess;
662 |
663 | PVOID addr1 = reinterpret_cast(0x00401000);
664 | BYTE data1[] = { 0x90, 0x90, 0x90, 0x90 };
665 |
666 | //
667 | // 绕过VMP3.x 的内存保护
668 | //
669 | hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, GetCurrentProcessId());
670 | if (hProcess)
671 | {
672 | WriteProcessMemory(hProcess, addr1, data1, sizeof(data1), NULL);
673 |
674 | CloseHandle(hProcess);
675 | }
676 |
677 | return 0;
678 | }
679 | BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved)
680 | {
681 | if (dwReason == DLL_PROCESS_ATTACH)
682 | {
683 | DisableThreadLibraryCalls(hModule);
684 |
685 | if (Load() && Init())
686 | {
687 |
688 | HANDLE hThread1 = CreateThread(NULL, 0, run, NULL, 0, NULL);
689 | //是否判断宿主进程名
690 | // TCHAR szAppName[MAX_PATH] = TEXT("MyApp.exe");
691 | // TCHAR szCurName[MAX_PATH];
692 |
693 | // GetModuleFileName(NULL, szCurName, MAX_PATH);
694 | // PathStripPath(szCurName);
695 | // if (StrCmpI(szAppName, szAppName) == 0)
696 | // {
697 | // //启动补丁线程或者其他操作
698 | // HANDLE hThread1 = CreateThread(NULL, 0, run, NULL, 0, NULL);
699 | // if (hThread)
700 | // {
701 | // CloseHandle(hThread);
702 | // }
703 | // }
704 | }
705 | }
706 | else if (dwReason == DLL_PROCESS_DETACH)
707 | {
708 | Free();
709 | }
710 |
711 | return TRUE;
712 | }
713 |
714 | EXTERN_C __declspec(naked) void __cdecl AheadLib_Unnamed2(void)
715 | {
716 | __asm jmp pfnAheadLib_Unnamed2;
717 | }
718 |
719 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciExecute(void)
720 | {
721 | __asm jmp pfnAheadLib_mciExecute;
722 | }
723 |
724 | EXTERN_C __declspec(naked) void __cdecl AheadLib_CloseDriver(void)
725 | {
726 | __asm jmp pfnAheadLib_CloseDriver;
727 | }
728 |
729 | EXTERN_C __declspec(naked) void __cdecl AheadLib_DefDriverProc(void)
730 | {
731 | __asm jmp pfnAheadLib_DefDriverProc;
732 | }
733 |
734 | EXTERN_C __declspec(naked) void __cdecl AheadLib_DriverCallback(void)
735 | {
736 | __asm jmp pfnAheadLib_DriverCallback;
737 | }
738 |
739 | EXTERN_C __declspec(naked) void __cdecl AheadLib_DrvGetModuleHandle(void)
740 | {
741 | __asm jmp pfnAheadLib_DrvGetModuleHandle;
742 | }
743 |
744 | EXTERN_C __declspec(naked) void __cdecl AheadLib_GetDriverModuleHandle(void)
745 | {
746 | __asm jmp pfnAheadLib_GetDriverModuleHandle;
747 | }
748 |
749 | EXTERN_C __declspec(naked) void __cdecl AheadLib_NotifyCallbackData(void)
750 | {
751 | __asm jmp pfnAheadLib_NotifyCallbackData;
752 | }
753 |
754 | EXTERN_C __declspec(naked) void __cdecl AheadLib_OpenDriver(void)
755 | {
756 | __asm jmp pfnAheadLib_OpenDriver;
757 | }
758 |
759 | EXTERN_C __declspec(naked) void __cdecl AheadLib_PlaySound(void)
760 | {
761 | __asm jmp pfnAheadLib_PlaySound;
762 | }
763 |
764 | EXTERN_C __declspec(naked) void __cdecl AheadLib_PlaySoundA(void)
765 | {
766 | __asm jmp pfnAheadLib_PlaySoundA;
767 | }
768 |
769 | EXTERN_C __declspec(naked) void __cdecl AheadLib_PlaySoundW(void)
770 | {
771 | __asm jmp pfnAheadLib_PlaySoundW;
772 | }
773 |
774 | EXTERN_C __declspec(naked) void __cdecl AheadLib_SendDriverMessage(void)
775 | {
776 | __asm jmp pfnAheadLib_SendDriverMessage;
777 | }
778 |
779 | EXTERN_C __declspec(naked) void __cdecl AheadLib_WOW32DriverCallback(void)
780 | {
781 | __asm jmp pfnAheadLib_WOW32DriverCallback;
782 | }
783 |
784 | EXTERN_C __declspec(naked) void __cdecl AheadLib_WOW32ResolveMultiMediaHandle(void)
785 | {
786 | __asm jmp pfnAheadLib_WOW32ResolveMultiMediaHandle;
787 | }
788 |
789 | EXTERN_C __declspec(naked) void __cdecl AheadLib_WOWAppExit(void)
790 | {
791 | __asm jmp pfnAheadLib_WOWAppExit;
792 | }
793 |
794 | EXTERN_C __declspec(naked) void __cdecl AheadLib_aux32Message(void)
795 | {
796 | __asm jmp pfnAheadLib_aux32Message;
797 | }
798 |
799 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxGetDevCapsA(void)
800 | {
801 | __asm jmp pfnAheadLib_auxGetDevCapsA;
802 | }
803 |
804 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxGetDevCapsW(void)
805 | {
806 | __asm jmp pfnAheadLib_auxGetDevCapsW;
807 | }
808 |
809 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxGetNumDevs(void)
810 | {
811 | __asm jmp pfnAheadLib_auxGetNumDevs;
812 | }
813 |
814 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxGetVolume(void)
815 | {
816 | __asm jmp pfnAheadLib_auxGetVolume;
817 | }
818 |
819 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxOutMessage(void)
820 | {
821 | __asm jmp pfnAheadLib_auxOutMessage;
822 | }
823 |
824 | EXTERN_C __declspec(naked) void __cdecl AheadLib_auxSetVolume(void)
825 | {
826 | __asm jmp pfnAheadLib_auxSetVolume;
827 | }
828 |
829 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joy32Message(void)
830 | {
831 | __asm jmp pfnAheadLib_joy32Message;
832 | }
833 |
834 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyConfigChanged(void)
835 | {
836 | __asm jmp pfnAheadLib_joyConfigChanged;
837 | }
838 |
839 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetDevCapsA(void)
840 | {
841 | __asm jmp pfnAheadLib_joyGetDevCapsA;
842 | }
843 |
844 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetDevCapsW(void)
845 | {
846 | __asm jmp pfnAheadLib_joyGetDevCapsW;
847 | }
848 |
849 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetNumDevs(void)
850 | {
851 | __asm jmp pfnAheadLib_joyGetNumDevs;
852 | }
853 |
854 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetPos(void)
855 | {
856 | __asm jmp pfnAheadLib_joyGetPos;
857 | }
858 |
859 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetPosEx(void)
860 | {
861 | __asm jmp pfnAheadLib_joyGetPosEx;
862 | }
863 |
864 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyGetThreshold(void)
865 | {
866 | __asm jmp pfnAheadLib_joyGetThreshold;
867 | }
868 |
869 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joyReleaseCapture(void)
870 | {
871 | __asm jmp pfnAheadLib_joyReleaseCapture;
872 | }
873 |
874 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joySetCapture(void)
875 | {
876 | __asm jmp pfnAheadLib_joySetCapture;
877 | }
878 |
879 | EXTERN_C __declspec(naked) void __cdecl AheadLib_joySetThreshold(void)
880 | {
881 | __asm jmp pfnAheadLib_joySetThreshold;
882 | }
883 |
884 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mci32Message(void)
885 | {
886 | __asm jmp pfnAheadLib_mci32Message;
887 | }
888 |
889 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciDriverNotify(void)
890 | {
891 | __asm jmp pfnAheadLib_mciDriverNotify;
892 | }
893 |
894 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciDriverYield(void)
895 | {
896 | __asm jmp pfnAheadLib_mciDriverYield;
897 | }
898 |
899 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciFreeCommandResource(void)
900 | {
901 | __asm jmp pfnAheadLib_mciFreeCommandResource;
902 | }
903 |
904 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetCreatorTask(void)
905 | {
906 | __asm jmp pfnAheadLib_mciGetCreatorTask;
907 | }
908 |
909 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetDeviceIDA(void)
910 | {
911 | __asm jmp pfnAheadLib_mciGetDeviceIDA;
912 | }
913 |
914 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetDeviceIDFromElementIDA(void)
915 | {
916 | __asm jmp pfnAheadLib_mciGetDeviceIDFromElementIDA;
917 | }
918 |
919 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetDeviceIDFromElementIDW(void)
920 | {
921 | __asm jmp pfnAheadLib_mciGetDeviceIDFromElementIDW;
922 | }
923 |
924 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetDeviceIDW(void)
925 | {
926 | __asm jmp pfnAheadLib_mciGetDeviceIDW;
927 | }
928 |
929 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetDriverData(void)
930 | {
931 | __asm jmp pfnAheadLib_mciGetDriverData;
932 | }
933 |
934 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetErrorStringA(void)
935 | {
936 | __asm jmp pfnAheadLib_mciGetErrorStringA;
937 | }
938 |
939 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetErrorStringW(void)
940 | {
941 | __asm jmp pfnAheadLib_mciGetErrorStringW;
942 | }
943 |
944 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciGetYieldProc(void)
945 | {
946 | __asm jmp pfnAheadLib_mciGetYieldProc;
947 | }
948 |
949 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciLoadCommandResource(void)
950 | {
951 | __asm jmp pfnAheadLib_mciLoadCommandResource;
952 | }
953 |
954 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSendCommandA(void)
955 | {
956 | __asm jmp pfnAheadLib_mciSendCommandA;
957 | }
958 |
959 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSendCommandW(void)
960 | {
961 | __asm jmp pfnAheadLib_mciSendCommandW;
962 | }
963 |
964 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSendStringA(void)
965 | {
966 | __asm jmp pfnAheadLib_mciSendStringA;
967 | }
968 |
969 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSendStringW(void)
970 | {
971 | __asm jmp pfnAheadLib_mciSendStringW;
972 | }
973 |
974 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSetDriverData(void)
975 | {
976 | __asm jmp pfnAheadLib_mciSetDriverData;
977 | }
978 |
979 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mciSetYieldProc(void)
980 | {
981 | __asm jmp pfnAheadLib_mciSetYieldProc;
982 | }
983 |
984 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mid32Message(void)
985 | {
986 | __asm jmp pfnAheadLib_mid32Message;
987 | }
988 |
989 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiConnect(void)
990 | {
991 | __asm jmp pfnAheadLib_midiConnect;
992 | }
993 |
994 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiDisconnect(void)
995 | {
996 | __asm jmp pfnAheadLib_midiDisconnect;
997 | }
998 |
999 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInAddBuffer(void)
1000 | {
1001 | __asm jmp pfnAheadLib_midiInAddBuffer;
1002 | }
1003 |
1004 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInClose(void)
1005 | {
1006 | __asm jmp pfnAheadLib_midiInClose;
1007 | }
1008 |
1009 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetDevCapsA(void)
1010 | {
1011 | __asm jmp pfnAheadLib_midiInGetDevCapsA;
1012 | }
1013 |
1014 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetDevCapsW(void)
1015 | {
1016 | __asm jmp pfnAheadLib_midiInGetDevCapsW;
1017 | }
1018 |
1019 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetErrorTextA(void)
1020 | {
1021 | __asm jmp pfnAheadLib_midiInGetErrorTextA;
1022 | }
1023 |
1024 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetErrorTextW(void)
1025 | {
1026 | __asm jmp pfnAheadLib_midiInGetErrorTextW;
1027 | }
1028 |
1029 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetID(void)
1030 | {
1031 | __asm jmp pfnAheadLib_midiInGetID;
1032 | }
1033 |
1034 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInGetNumDevs(void)
1035 | {
1036 | __asm jmp pfnAheadLib_midiInGetNumDevs;
1037 | }
1038 |
1039 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInMessage(void)
1040 | {
1041 | __asm jmp pfnAheadLib_midiInMessage;
1042 | }
1043 |
1044 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInOpen(void)
1045 | {
1046 | __asm jmp pfnAheadLib_midiInOpen;
1047 | }
1048 |
1049 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInPrepareHeader(void)
1050 | {
1051 | __asm jmp pfnAheadLib_midiInPrepareHeader;
1052 | }
1053 |
1054 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInReset(void)
1055 | {
1056 | __asm jmp pfnAheadLib_midiInReset;
1057 | }
1058 |
1059 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInStart(void)
1060 | {
1061 | __asm jmp pfnAheadLib_midiInStart;
1062 | }
1063 |
1064 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInStop(void)
1065 | {
1066 | __asm jmp pfnAheadLib_midiInStop;
1067 | }
1068 |
1069 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiInUnprepareHeader(void)
1070 | {
1071 | __asm jmp pfnAheadLib_midiInUnprepareHeader;
1072 | }
1073 |
1074 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutCacheDrumPatches(void)
1075 | {
1076 | __asm jmp pfnAheadLib_midiOutCacheDrumPatches;
1077 | }
1078 |
1079 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutCachePatches(void)
1080 | {
1081 | __asm jmp pfnAheadLib_midiOutCachePatches;
1082 | }
1083 |
1084 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutClose(void)
1085 | {
1086 | __asm jmp pfnAheadLib_midiOutClose;
1087 | }
1088 |
1089 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetDevCapsA(void)
1090 | {
1091 | __asm jmp pfnAheadLib_midiOutGetDevCapsA;
1092 | }
1093 |
1094 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetDevCapsW(void)
1095 | {
1096 | __asm jmp pfnAheadLib_midiOutGetDevCapsW;
1097 | }
1098 |
1099 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetErrorTextA(void)
1100 | {
1101 | __asm jmp pfnAheadLib_midiOutGetErrorTextA;
1102 | }
1103 |
1104 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetErrorTextW(void)
1105 | {
1106 | __asm jmp pfnAheadLib_midiOutGetErrorTextW;
1107 | }
1108 |
1109 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetID(void)
1110 | {
1111 | __asm jmp pfnAheadLib_midiOutGetID;
1112 | }
1113 |
1114 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetNumDevs(void)
1115 | {
1116 | __asm jmp pfnAheadLib_midiOutGetNumDevs;
1117 | }
1118 |
1119 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutGetVolume(void)
1120 | {
1121 | __asm jmp pfnAheadLib_midiOutGetVolume;
1122 | }
1123 |
1124 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutLongMsg(void)
1125 | {
1126 | __asm jmp pfnAheadLib_midiOutLongMsg;
1127 | }
1128 |
1129 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutMessage(void)
1130 | {
1131 | __asm jmp pfnAheadLib_midiOutMessage;
1132 | }
1133 |
1134 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutOpen(void)
1135 | {
1136 | __asm jmp pfnAheadLib_midiOutOpen;
1137 | }
1138 |
1139 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutPrepareHeader(void)
1140 | {
1141 | __asm jmp pfnAheadLib_midiOutPrepareHeader;
1142 | }
1143 |
1144 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutReset(void)
1145 | {
1146 | __asm jmp pfnAheadLib_midiOutReset;
1147 | }
1148 |
1149 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutSetVolume(void)
1150 | {
1151 | __asm jmp pfnAheadLib_midiOutSetVolume;
1152 | }
1153 |
1154 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutShortMsg(void)
1155 | {
1156 | __asm jmp pfnAheadLib_midiOutShortMsg;
1157 | }
1158 |
1159 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiOutUnprepareHeader(void)
1160 | {
1161 | __asm jmp pfnAheadLib_midiOutUnprepareHeader;
1162 | }
1163 |
1164 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamClose(void)
1165 | {
1166 | __asm jmp pfnAheadLib_midiStreamClose;
1167 | }
1168 |
1169 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamOpen(void)
1170 | {
1171 | __asm jmp pfnAheadLib_midiStreamOpen;
1172 | }
1173 |
1174 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamOut(void)
1175 | {
1176 | __asm jmp pfnAheadLib_midiStreamOut;
1177 | }
1178 |
1179 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamPause(void)
1180 | {
1181 | __asm jmp pfnAheadLib_midiStreamPause;
1182 | }
1183 |
1184 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamPosition(void)
1185 | {
1186 | __asm jmp pfnAheadLib_midiStreamPosition;
1187 | }
1188 |
1189 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamProperty(void)
1190 | {
1191 | __asm jmp pfnAheadLib_midiStreamProperty;
1192 | }
1193 |
1194 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamRestart(void)
1195 | {
1196 | __asm jmp pfnAheadLib_midiStreamRestart;
1197 | }
1198 |
1199 | EXTERN_C __declspec(naked) void __cdecl AheadLib_midiStreamStop(void)
1200 | {
1201 | __asm jmp pfnAheadLib_midiStreamStop;
1202 | }
1203 |
1204 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerClose(void)
1205 | {
1206 | __asm jmp pfnAheadLib_mixerClose;
1207 | }
1208 |
1209 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetControlDetailsA(void)
1210 | {
1211 | __asm jmp pfnAheadLib_mixerGetControlDetailsA;
1212 | }
1213 |
1214 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetControlDetailsW(void)
1215 | {
1216 | __asm jmp pfnAheadLib_mixerGetControlDetailsW;
1217 | }
1218 |
1219 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetDevCapsA(void)
1220 | {
1221 | __asm jmp pfnAheadLib_mixerGetDevCapsA;
1222 | }
1223 |
1224 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetDevCapsW(void)
1225 | {
1226 | __asm jmp pfnAheadLib_mixerGetDevCapsW;
1227 | }
1228 |
1229 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetID(void)
1230 | {
1231 | __asm jmp pfnAheadLib_mixerGetID;
1232 | }
1233 |
1234 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetLineControlsA(void)
1235 | {
1236 | __asm jmp pfnAheadLib_mixerGetLineControlsA;
1237 | }
1238 |
1239 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetLineControlsW(void)
1240 | {
1241 | __asm jmp pfnAheadLib_mixerGetLineControlsW;
1242 | }
1243 |
1244 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetLineInfoA(void)
1245 | {
1246 | __asm jmp pfnAheadLib_mixerGetLineInfoA;
1247 | }
1248 |
1249 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetLineInfoW(void)
1250 | {
1251 | __asm jmp pfnAheadLib_mixerGetLineInfoW;
1252 | }
1253 |
1254 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerGetNumDevs(void)
1255 | {
1256 | __asm jmp pfnAheadLib_mixerGetNumDevs;
1257 | }
1258 |
1259 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerMessage(void)
1260 | {
1261 | __asm jmp pfnAheadLib_mixerMessage;
1262 | }
1263 |
1264 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerOpen(void)
1265 | {
1266 | __asm jmp pfnAheadLib_mixerOpen;
1267 | }
1268 |
1269 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mixerSetControlDetails(void)
1270 | {
1271 | __asm jmp pfnAheadLib_mixerSetControlDetails;
1272 | }
1273 |
1274 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmDrvInstall(void)
1275 | {
1276 | __asm jmp pfnAheadLib_mmDrvInstall;
1277 | }
1278 |
1279 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmGetCurrentTask(void)
1280 | {
1281 | __asm jmp pfnAheadLib_mmGetCurrentTask;
1282 | }
1283 |
1284 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmTaskBlock(void)
1285 | {
1286 | __asm jmp pfnAheadLib_mmTaskBlock;
1287 | }
1288 |
1289 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmTaskCreate(void)
1290 | {
1291 | __asm jmp pfnAheadLib_mmTaskCreate;
1292 | }
1293 |
1294 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmTaskSignal(void)
1295 | {
1296 | __asm jmp pfnAheadLib_mmTaskSignal;
1297 | }
1298 |
1299 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmTaskYield(void)
1300 | {
1301 | __asm jmp pfnAheadLib_mmTaskYield;
1302 | }
1303 |
1304 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioAdvance(void)
1305 | {
1306 | __asm jmp pfnAheadLib_mmioAdvance;
1307 | }
1308 |
1309 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioAscend(void)
1310 | {
1311 | __asm jmp pfnAheadLib_mmioAscend;
1312 | }
1313 |
1314 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioClose(void)
1315 | {
1316 | __asm jmp pfnAheadLib_mmioClose;
1317 | }
1318 |
1319 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioCreateChunk(void)
1320 | {
1321 | __asm jmp pfnAheadLib_mmioCreateChunk;
1322 | }
1323 |
1324 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioDescend(void)
1325 | {
1326 | __asm jmp pfnAheadLib_mmioDescend;
1327 | }
1328 |
1329 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioFlush(void)
1330 | {
1331 | __asm jmp pfnAheadLib_mmioFlush;
1332 | }
1333 |
1334 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioGetInfo(void)
1335 | {
1336 | __asm jmp pfnAheadLib_mmioGetInfo;
1337 | }
1338 |
1339 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioInstallIOProcA(void)
1340 | {
1341 | __asm jmp pfnAheadLib_mmioInstallIOProcA;
1342 | }
1343 |
1344 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioInstallIOProcW(void)
1345 | {
1346 | __asm jmp pfnAheadLib_mmioInstallIOProcW;
1347 | }
1348 |
1349 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioOpenA(void)
1350 | {
1351 | __asm jmp pfnAheadLib_mmioOpenA;
1352 | }
1353 |
1354 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioOpenW(void)
1355 | {
1356 | __asm jmp pfnAheadLib_mmioOpenW;
1357 | }
1358 |
1359 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioRead(void)
1360 | {
1361 | __asm jmp pfnAheadLib_mmioRead;
1362 | }
1363 |
1364 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioRenameA(void)
1365 | {
1366 | __asm jmp pfnAheadLib_mmioRenameA;
1367 | }
1368 |
1369 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioRenameW(void)
1370 | {
1371 | __asm jmp pfnAheadLib_mmioRenameW;
1372 | }
1373 |
1374 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioSeek(void)
1375 | {
1376 | __asm jmp pfnAheadLib_mmioSeek;
1377 | }
1378 |
1379 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioSendMessage(void)
1380 | {
1381 | __asm jmp pfnAheadLib_mmioSendMessage;
1382 | }
1383 |
1384 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioSetBuffer(void)
1385 | {
1386 | __asm jmp pfnAheadLib_mmioSetBuffer;
1387 | }
1388 |
1389 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioSetInfo(void)
1390 | {
1391 | __asm jmp pfnAheadLib_mmioSetInfo;
1392 | }
1393 |
1394 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioStringToFOURCCA(void)
1395 | {
1396 | __asm jmp pfnAheadLib_mmioStringToFOURCCA;
1397 | }
1398 |
1399 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioStringToFOURCCW(void)
1400 | {
1401 | __asm jmp pfnAheadLib_mmioStringToFOURCCW;
1402 | }
1403 |
1404 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmioWrite(void)
1405 | {
1406 | __asm jmp pfnAheadLib_mmioWrite;
1407 | }
1408 |
1409 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mmsystemGetVersion(void)
1410 | {
1411 | __asm jmp pfnAheadLib_mmsystemGetVersion;
1412 | }
1413 |
1414 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mod32Message(void)
1415 | {
1416 | __asm jmp pfnAheadLib_mod32Message;
1417 | }
1418 |
1419 | EXTERN_C __declspec(naked) void __cdecl AheadLib_mxd32Message(void)
1420 | {
1421 | __asm jmp pfnAheadLib_mxd32Message;
1422 | }
1423 |
1424 | EXTERN_C __declspec(naked) void __cdecl AheadLib_sndPlaySoundA(void)
1425 | {
1426 | __asm jmp pfnAheadLib_sndPlaySoundA;
1427 | }
1428 |
1429 | EXTERN_C __declspec(naked) void __cdecl AheadLib_sndPlaySoundW(void)
1430 | {
1431 | __asm jmp pfnAheadLib_sndPlaySoundW;
1432 | }
1433 |
1434 | EXTERN_C __declspec(naked) void __cdecl AheadLib_tid32Message(void)
1435 | {
1436 | __asm jmp pfnAheadLib_tid32Message;
1437 | }
1438 |
1439 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeBeginPeriod(void)
1440 | {
1441 | __asm jmp pfnAheadLib_timeBeginPeriod;
1442 | }
1443 |
1444 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeEndPeriod(void)
1445 | {
1446 | __asm jmp pfnAheadLib_timeEndPeriod;
1447 | }
1448 |
1449 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeGetDevCaps(void)
1450 | {
1451 | __asm jmp pfnAheadLib_timeGetDevCaps;
1452 | }
1453 |
1454 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeGetSystemTime(void)
1455 | {
1456 | __asm jmp pfnAheadLib_timeGetSystemTime;
1457 | }
1458 |
1459 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeGetTime(void)
1460 | {
1461 | __asm jmp pfnAheadLib_timeGetTime;
1462 | }
1463 |
1464 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeKillEvent(void)
1465 | {
1466 | __asm jmp pfnAheadLib_timeKillEvent;
1467 | }
1468 |
1469 | EXTERN_C __declspec(naked) void __cdecl AheadLib_timeSetEvent(void)
1470 | {
1471 | __asm jmp pfnAheadLib_timeSetEvent;
1472 | }
1473 |
1474 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInAddBuffer(void)
1475 | {
1476 | __asm jmp pfnAheadLib_waveInAddBuffer;
1477 | }
1478 |
1479 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInClose(void)
1480 | {
1481 | __asm jmp pfnAheadLib_waveInClose;
1482 | }
1483 |
1484 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetDevCapsA(void)
1485 | {
1486 | __asm jmp pfnAheadLib_waveInGetDevCapsA;
1487 | }
1488 |
1489 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetDevCapsW(void)
1490 | {
1491 | __asm jmp pfnAheadLib_waveInGetDevCapsW;
1492 | }
1493 |
1494 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetErrorTextA(void)
1495 | {
1496 | __asm jmp pfnAheadLib_waveInGetErrorTextA;
1497 | }
1498 |
1499 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetErrorTextW(void)
1500 | {
1501 | __asm jmp pfnAheadLib_waveInGetErrorTextW;
1502 | }
1503 |
1504 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetID(void)
1505 | {
1506 | __asm jmp pfnAheadLib_waveInGetID;
1507 | }
1508 |
1509 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetNumDevs(void)
1510 | {
1511 | __asm jmp pfnAheadLib_waveInGetNumDevs;
1512 | }
1513 |
1514 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInGetPosition(void)
1515 | {
1516 | __asm jmp pfnAheadLib_waveInGetPosition;
1517 | }
1518 |
1519 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInMessage(void)
1520 | {
1521 | __asm jmp pfnAheadLib_waveInMessage;
1522 | }
1523 |
1524 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInOpen(void)
1525 | {
1526 | __asm jmp pfnAheadLib_waveInOpen;
1527 | }
1528 |
1529 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInPrepareHeader(void)
1530 | {
1531 | __asm jmp pfnAheadLib_waveInPrepareHeader;
1532 | }
1533 |
1534 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInReset(void)
1535 | {
1536 | __asm jmp pfnAheadLib_waveInReset;
1537 | }
1538 |
1539 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInStart(void)
1540 | {
1541 | __asm jmp pfnAheadLib_waveInStart;
1542 | }
1543 |
1544 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInStop(void)
1545 | {
1546 | __asm jmp pfnAheadLib_waveInStop;
1547 | }
1548 |
1549 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveInUnprepareHeader(void)
1550 | {
1551 | __asm jmp pfnAheadLib_waveInUnprepareHeader;
1552 | }
1553 |
1554 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutBreakLoop(void)
1555 | {
1556 | __asm jmp pfnAheadLib_waveOutBreakLoop;
1557 | }
1558 |
1559 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutClose(void)
1560 | {
1561 | __asm jmp pfnAheadLib_waveOutClose;
1562 | }
1563 |
1564 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetDevCapsA(void)
1565 | {
1566 | __asm jmp pfnAheadLib_waveOutGetDevCapsA;
1567 | }
1568 |
1569 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetDevCapsW(void)
1570 | {
1571 | __asm jmp pfnAheadLib_waveOutGetDevCapsW;
1572 | }
1573 |
1574 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetErrorTextA(void)
1575 | {
1576 | __asm jmp pfnAheadLib_waveOutGetErrorTextA;
1577 | }
1578 |
1579 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetErrorTextW(void)
1580 | {
1581 | __asm jmp pfnAheadLib_waveOutGetErrorTextW;
1582 | }
1583 |
1584 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetID(void)
1585 | {
1586 | __asm jmp pfnAheadLib_waveOutGetID;
1587 | }
1588 |
1589 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetNumDevs(void)
1590 | {
1591 | __asm jmp pfnAheadLib_waveOutGetNumDevs;
1592 | }
1593 |
1594 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetPitch(void)
1595 | {
1596 | __asm jmp pfnAheadLib_waveOutGetPitch;
1597 | }
1598 |
1599 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetPlaybackRate(void)
1600 | {
1601 | __asm jmp pfnAheadLib_waveOutGetPlaybackRate;
1602 | }
1603 |
1604 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetPosition(void)
1605 | {
1606 | __asm jmp pfnAheadLib_waveOutGetPosition;
1607 | }
1608 |
1609 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutGetVolume(void)
1610 | {
1611 | __asm jmp pfnAheadLib_waveOutGetVolume;
1612 | }
1613 |
1614 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutMessage(void)
1615 | {
1616 | __asm jmp pfnAheadLib_waveOutMessage;
1617 | }
1618 |
1619 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutOpen(void)
1620 | {
1621 | __asm jmp pfnAheadLib_waveOutOpen;
1622 | }
1623 |
1624 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutPause(void)
1625 | {
1626 | __asm jmp pfnAheadLib_waveOutPause;
1627 | }
1628 |
1629 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutPrepareHeader(void)
1630 | {
1631 | __asm jmp pfnAheadLib_waveOutPrepareHeader;
1632 | }
1633 |
1634 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutReset(void)
1635 | {
1636 | __asm jmp pfnAheadLib_waveOutReset;
1637 | }
1638 |
1639 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutRestart(void)
1640 | {
1641 | __asm jmp pfnAheadLib_waveOutRestart;
1642 | }
1643 |
1644 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutSetPitch(void)
1645 | {
1646 | __asm jmp pfnAheadLib_waveOutSetPitch;
1647 | }
1648 |
1649 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutSetPlaybackRate(void)
1650 | {
1651 | __asm jmp pfnAheadLib_waveOutSetPlaybackRate;
1652 | }
1653 |
1654 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutSetVolume(void)
1655 | {
1656 | __asm jmp pfnAheadLib_waveOutSetVolume;
1657 | }
1658 |
1659 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutUnprepareHeader(void)
1660 | {
1661 | __asm jmp pfnAheadLib_waveOutUnprepareHeader;
1662 | }
1663 |
1664 | EXTERN_C __declspec(naked) void __cdecl AheadLib_waveOutWrite(void)
1665 | {
1666 | __asm jmp pfnAheadLib_waveOutWrite;
1667 | }
1668 |
1669 | EXTERN_C __declspec(naked) void __cdecl AheadLib_wid32Message(void)
1670 | {
1671 | __asm jmp pfnAheadLib_wid32Message;
1672 | }
1673 |
1674 | EXTERN_C __declspec(naked) void __cdecl AheadLib_wod32Message(void)
1675 | {
1676 | __asm jmp pfnAheadLib_wod32Message;
1677 | }
1678 |
1679 |
1680 |
--------------------------------------------------------------------------------