GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — MemoryModule/MemoryModule.h at master · fcccode/MemoryModule Expand file tree/ Copy pathMemoryModule.hMore file actions 168 lines (143 loc) · 4.64 KB / Copy pathMemoryModule.hFile metadata and controls168 lines (143 loc) · 4.64 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 /* * Memory DLL loading code * Version 0.0.4 * * Copyright (c) 2004-2015 by Joachim Bauch / [email protected] * http://www.joachim-bauch.de * * The contents of this file are subject to the Mozilla Public License Version * 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is MemoryModule.h * * The Initial Developer of the Original Code is Joachim Bauch. * * Portions created by Joachim Bauch are Copyright (C) 2004-2015 * Joachim Bauch. All Rights Reserved. * */ #ifndef __MEMORY_MODULE_HEADER #define __MEMORY_MODULE_HEADER #include <windows.h> typedef void *HMEMORYMODULE; typedef void *HMEMORYRSRC; typedef void *HCUSTOMMODULE; #ifdef __cplusplus extern "C" { #endif typedef LPVOID (*CustomAllocFunc)(LPVOID, SIZE_T, DWORD, DWORD, void*); typedef BOOL (*CustomFreeFunc)(LPVOID, SIZE_T, DWORD, void*); typedef HCUSTOMMODULE (*CustomLoadLibraryFunc)(LPCSTR, void *); typedef FARPROC (*CustomGetProcAddressFunc)(HCUSTOMMODULE, LPCSTR, void *); typedef void (*CustomFreeLibraryFunc)(HCUSTOMMODULE, void *); /** * Load EXE/DLL from memory location with the given size. * * All dependencies are resolved using default LoadLibrary/GetProcAddress * calls through the Windows API. */ HMEMORYMODULE MemoryLoadLibrary(const void *, size_t); /** * Load EXE/DLL from memory location with the given size using custom dependency * resolvers. * * Dependencies will be resolved using passed callback methods. */ HMEMORYMODULE MemoryLoadLibraryEx(const void *, size_t, CustomAllocFunc, CustomFreeFunc, CustomLoadLibraryFunc, CustomGetProcAddressFunc, CustomFreeLibraryFunc, void *); /** * Get address of exported method. Supports loading both by name and by * ordinal value. */ FARPROC MemoryGetProcAddress(HMEMORYMODULE, LPCSTR); /** * Free previously loaded EXE/DLL. */ void MemoryFreeLibrary(HMEMORYMODULE); /** * Execute entry point (EXE only). The entry point can only be executed * if the EXE has been loaded to the correct base address or it could * be relocated (i.e. relocation information have not been stripped by * the linker). * * Important: calling this function will not return, i.e. once the loaded * EXE finished running, the process will terminate. * * Returns a negative value if the entry point could not be executed. */ int MemoryCallEntryPoint(HMEMORYMODULE); /** * Find the location of a resource with the specified type and name. */ HMEMORYRSRC MemoryFindResource(HMEMORYMODULE, LPCTSTR, LPCTSTR); /** * Find the location of a resource with the specified type, name and language. */ HMEMORYRSRC MemoryFindResourceEx(HMEMORYMODULE, LPCTSTR, LPCTSTR, WORD); /** * Get the size of the resource in bytes. */ DWORD MemorySizeofResource(HMEMORYMODULE, HMEMORYRSRC); /** * Get a pointer to the contents of the resource. */ LPVOID MemoryLoadResource(HMEMORYMODULE, HMEMORYRSRC); /** * Load a string resource. */ int MemoryLoadString(HMEMORYMODULE, UINT, LPTSTR, int); /** * Load a string resource with a given language. */ int MemoryLoadStringEx(HMEMORYMODULE, UINT, LPTSTR, int, WORD); /** * Default implementation of CustomAllocFunc that calls VirtualAlloc * internally to allocate memory for a library * * This is the default as used by MemoryLoadLibrary. */ LPVOID MemoryDefaultAlloc(LPVOID, SIZE_T, DWORD, DWORD, void *); /** * Default implementation of CustomFreeFunc that calls VirtualFree * internally to free the memory used by a library * * This is the default as used by MemoryLoadLibrary. */ BOOL MemoryDefaultFree(LPVOID, SIZE_T, DWORD, void *); /** * Default implementation of CustomLoadLibraryFunc that calls LoadLibraryA * internally to load an additional libary. * * This is the default as used by MemoryLoadLibrary. */ HCUSTOMMODULE MemoryDefaultLoadLibrary(LPCSTR, void *); /** * Default implementation of CustomGetProcAddressFunc that calls GetProcAddress * internally to get the address of an exported function. * * This is the default as used by MemoryLoadLibrary. */ FARPROC MemoryDefaultGetProcAddress(HCUSTOMMODULE, LPCSTR, void *); /** * Default implementation of CustomFreeLibraryFunc that calls FreeLibrary * internally to release an additional libary. * * This is the default as used by MemoryLoadLibrary. */ void MemoryDefaultFreeLibrary(HCUSTOMMODULE, void *); #ifdef __cplusplus } #endif #endif // __MEMORY_MODULE_HEADER |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |