summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/windows/winutil.h
diff options
context:
space:
mode:
author Giuseppe Gorgoglione <gorgogsp@gmail.com>2016-05-28 04:14:15 +0200
committer Giuseppe Gorgoglione <gorgogsp@gmail.com>2016-06-11 20:14:09 +0200
commit58dc78b6eba373d88fe7ef68f9ce3c2c43e635d6 (patch)
tree90af8c2c2323070c2c336153de8376d83a3f1f44 /src/osd/windows/winutil.h
parentea1b66f146e4c6663e06b124f8665f878c43ce0c (diff)
Introduce dynamic_module
This is a central cross-platform facility to dynamically bind functions from shared libraries. Updated all OSD modules to use it.
Diffstat (limited to 'src/osd/windows/winutil.h')
-rw-r--r--src/osd/windows/winutil.h156
1 files changed, 0 insertions, 156 deletions
diff --git a/src/osd/windows/winutil.h b/src/osd/windows/winutil.h
index d122679438e..2598a920864 100644
--- a/src/osd/windows/winutil.h
+++ b/src/osd/windows/winutil.h
@@ -18,160 +18,4 @@ osd_dir_entry_type win_attributes_to_entry_type(DWORD attributes);
BOOL win_is_gui_application(void);
HMODULE WINAPI GetModuleHandleUni();
-//-----------------------------------------------------------
-// Lazy loaded function using LoadLibrary / GetProcAddress
-//-----------------------------------------------------------
-
-class lazy_loaded_function
-{
-private:
- std::string m_name;
- std::vector<std::wstring> m_dll_names;
- HMODULE m_module;
- bool m_initialized;
-
-protected:
- void check_init() const;
- FARPROC m_pfn;
-
-public:
- lazy_loaded_function(const char * name, const wchar_t* dll_name);
- lazy_loaded_function(const char * name, const wchar_t** dll_names, int dll_count);
- ~lazy_loaded_function();
- int initialize();
- const char * name() const { return m_name.c_str(); }
-};
-
-// No parameters
-template <class TRet>
-class lazy_loaded_function_ret : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_ret(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_ret(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()()
- {
- check_init();
- return ((TRet(__stdcall *) ())m_pfn)();
- }
-};
-
-// One parameter
-template <class TRet, class P1>
-class lazy_loaded_function_p1 : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_p1(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_p1(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()(P1 p1)
- {
- check_init();
- return ((TRet(__stdcall *) (P1))m_pfn)(p1);
- }
-};
-
-// Two parameters
-template <class TRet, class P1, class P2>
-class lazy_loaded_function_p2 : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_p2(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_p2(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()(P1 p1, P2 p2)
- {
- check_init();
- return ((TRet(__stdcall *) (P1, P2))m_pfn)(p1, p2);
- }
-};
-
-// Three parameters
-template <class TRet, class P1, class P2, class P3>
-class lazy_loaded_function_p3 : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_p3(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_p3(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()(P1 p1, P2 p2, P3 p3)
- {
- check_init();
- return ((TRet(__stdcall *) (P1, P2, P3))m_pfn)(p1, p2, p3);
- }
-};
-
-// Four parameters
-template <class TRet, class P1, class P2, class P3, class P4>
-class lazy_loaded_function_p4 : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_p4(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_p4(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()(P1 p1, P2 p2, P3 p3, P4 p4)
- {
- check_init();
- return ((TRet(__stdcall *) (P1, P2, P3, P4))m_pfn)(p1, p2, p3, p4);
- }
-};
-
-// Five parameters
-template <class TRet, class P1, class P2, class P3, class P4, class P5>
-class lazy_loaded_function_p5 : public lazy_loaded_function
-{
-public:
- lazy_loaded_function_p5(const char * name, const wchar_t* dll_name)
- : lazy_loaded_function(name, &dll_name, 1)
- {
- }
-
- lazy_loaded_function_p5(const char * name, const wchar_t** dll_names, int dll_count)
- : lazy_loaded_function(name, dll_names, dll_count)
- {
- }
-
- TRet operator ()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
- {
- check_init();
- return ((TRet(__stdcall *) (P1, P2, P3, P4, P5))m_pfn)(p1, p2, p3, p4, p5);
- }
-};
-
#endif // __WINUTIL__