| 131 | } |
| 132 | |
| 133 | VOID ResolveApis() { |
| 134 | CHAR k32[] = { 'k','e','r','n','e','l','3','2','.','d','l','l', '\0' }; |
| 135 | CHAR o32[] = { 'o','l','e','a','u','t','3','2','.','d','l','l', '\0' }; |
| 136 | CHAR u32[] = { 'u','s','e','r','3','2','.','d','l','l', '\0' }; |
| 137 | CHAR msc[] = { 'm', 's', 'c', 'o', 'r', 'e', 'e', '.', 'd', 'l', 'l', '\0' }; |
| 138 | |
| 139 | PVOID a_k32 = LoadLibraryA(k32); |
| 140 | PVOID a_u32 = LoadLibraryA(u32); |
| 141 | PVOID a_o32 = LoadLibraryA(o32); |
| 142 | PVOID a_msc = LoadLibraryA(msc); |
| 143 | |
| 144 | xGetProcAddr(a_k32, H_API_CREATEMAILSLOTA, (PHANDLE)&Api.CreateMailslotA); |
| 145 | xGetProcAddr(a_k32, H_API_CREATEEVENTA, (PHANDLE)&Api.CreateEventA); |
| 146 | xGetProcAddr(a_k32, H_API_GETMAILSLOTINFO, (PHANDLE)&Api.GetMailslotInfo); |
| 147 | xGetProcAddr(a_k32, H_API_GLOBALALLOC, (PHANDLE)&Api.GlobalAlloc); |
| 148 | xGetProcAddr(a_k32, H_API_CREATEFILEA, (PHANDLE)&Api.CreateFileA); |
| 149 | xGetProcAddr(a_k32, H_API_READFILE, (PHANDLE)&Api.ReadFile); |
| 150 | xGetProcAddr(a_k32, H_API_GLOBALFREE, (PHANDLE)&Api.GlobalFree); |
| 151 | xGetProcAddr(a_k32, H_API_CLOSEHANDLE, (PHANDLE)&Api.CloseHandle); |
| 152 | xGetProcAddr(a_k32, H_API_ALLOCCONSOLE, (PHANDLE)&Api.AllocConsole); |
| 153 | xGetProcAddr(a_k32, H_API_GETCONSOLEWINDOW, (PHANDLE)&Api.GetConsoleWindow); |
| 154 | xGetProcAddr(a_k32, H_API_GETSTDHANDLE, (PHANDLE)&Api.GetStdHandle); |
| 155 | xGetProcAddr(a_k32, H_API_SETSTDHANDLE, (PHANDLE)&Api.SetStdHandle); |
| 156 | xGetProcAddr(a_k32, H_API_FREECONSOLE, (PHANDLE)&Api.FreeConsole); |
| 157 | |
| 158 | xGetProcAddr(a_o32, H_API_SAFEARRAYCREATE, (PHANDLE)&Api.SafeArrayCreate); |
| 159 | xGetProcAddr(a_o32, H_API_SAFEARRAYACCESSDATA, (PHANDLE)&Api.SafeArrayAccessData); |
| 160 | xGetProcAddr(a_o32, H_API_SAFEARRAYUNACCESSDATA, (PHANDLE)&Api.SafeArrayUnaccessData); |
| 161 | xGetProcAddr(a_o32, H_API_SAFEARRAYCREATEVECTOR, (PHANDLE)&Api.SafeArrayCreateVector); |
| 162 | xGetProcAddr(a_o32, H_API_SAFEARRAYPUTELEMENT, (PHANDLE)&Api.SafeArrayPutElement); |
| 163 | xGetProcAddr(a_o32, H_API_SAFEARRAYDESTROY, (PHANDLE)&Api.SafeArrayDestroy); |
| 164 | xGetProcAddr(a_o32, H_API_SYSALLOCSTRING, (PHANDLE)&Api.SysAllocString); |
| 165 | xGetProcAddr(a_o32, H_API_VARIANTCLEAR, (PHANDLE)&Api.VariantClear); |
| 166 | |
| 167 | xGetProcAddr(a_msc, H_API_CLRCREATEINSTANCE, (PHANDLE)&Api.CLRCreateInstance); |
| 168 | |
| 169 | xGetProcAddr(a_u32, H_API_SHOWWINDOW, (PHANDLE)&Api.ShowWindow); |
| 170 | } |
| 171 | |
| 172 | /*Make MailSlot*/ |
| 173 | BOOL WINAPI MakeSlot(LPCSTR lpszSlotName, HANDLE* mailHandle) |