Expose default callback functions.

This was suggested in #33.
This commit is contained in:
Joachim Bauch
2016-01-27 00:38:37 +01:00
parent 2e193f153a
commit 905ad75e82
2 changed files with 28 additions and 4 deletions
+4 -4
View File
@@ -423,7 +423,7 @@ BuildImportTable(PMEMORYMODULE module)
return result; return result;
} }
static HCUSTOMMODULE _LoadLibrary(LPCSTR filename, void *userdata) HCUSTOMMODULE MemoryDefaultLoadLibrary(LPCSTR filename, void *userdata)
{ {
HMODULE result; HMODULE result;
UNREFERENCED_PARAMETER(userdata); UNREFERENCED_PARAMETER(userdata);
@@ -435,13 +435,13 @@ static HCUSTOMMODULE _LoadLibrary(LPCSTR filename, void *userdata)
return (HCUSTOMMODULE) result; return (HCUSTOMMODULE) result;
} }
static FARPROC _GetProcAddress(HCUSTOMMODULE module, LPCSTR name, void *userdata) FARPROC MemoryDefaultGetProcAddress(HCUSTOMMODULE module, LPCSTR name, void *userdata)
{ {
UNREFERENCED_PARAMETER(userdata); UNREFERENCED_PARAMETER(userdata);
return (FARPROC) GetProcAddress((HMODULE) module, name); return (FARPROC) GetProcAddress((HMODULE) module, name);
} }
static void _FreeLibrary(HCUSTOMMODULE module, void *userdata) void MemoryDefaultFreeLibrary(HCUSTOMMODULE module, void *userdata)
{ {
UNREFERENCED_PARAMETER(userdata); UNREFERENCED_PARAMETER(userdata);
FreeLibrary((HMODULE) module); FreeLibrary((HMODULE) module);
@@ -449,7 +449,7 @@ static void _FreeLibrary(HCUSTOMMODULE module, void *userdata)
HMEMORYMODULE MemoryLoadLibrary(const void *data, size_t size) HMEMORYMODULE MemoryLoadLibrary(const void *data, size_t size)
{ {
return MemoryLoadLibraryEx(data, size, _LoadLibrary, _GetProcAddress, _FreeLibrary, NULL); return MemoryLoadLibraryEx(data, size, MemoryDefaultLoadLibrary, MemoryDefaultGetProcAddress, MemoryDefaultFreeLibrary, NULL);
} }
HMEMORYMODULE MemoryLoadLibraryEx(const void *data, size_t size, HMEMORYMODULE MemoryLoadLibraryEx(const void *data, size_t size,
+24
View File
@@ -117,6 +117,30 @@ int MemoryLoadString(HMEMORYMODULE, UINT, LPTSTR, int);
*/ */
int MemoryLoadStringEx(HMEMORYMODULE, UINT, LPTSTR, int, WORD); int MemoryLoadStringEx(HMEMORYMODULE, UINT, LPTSTR, int, WORD);
/**
* 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 #ifdef __cplusplus
} }
#endif #endif