From: Robert Roebling Date: Thu, 6 Sep 2007 13:37:32 +0000 (+0000) Subject: Move the wxDL_ macros to wxDynLibrary X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/420db5a599289614f465e70dc59bf4900c1a23bf Move the wxDL_ macros to wxDynLibrary git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h index 4d5f948628..a4916b3706 100644 --- a/include/wx/dynlib.h +++ b/include/wx/dynlib.h @@ -105,6 +105,27 @@ enum wxPluginCategory #define wxDYNLIB_FUNCTION(type, name, dynlib) \ type pfn ## name = (type)(dynlib).GetSymbol(_T(#name)) + +// the following macros can be used to redirect a whole +// library to a class and check at run-time if the the +// library is present and contains all required methods. + +#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ + typedef rettype (* name ## Type) args ; \ + name ## Type pfn_ ## name; \ + rettype name args \ + { if (m_ok) return pfn_ ## name shortargs ; return defret; } + +#define wxDL_VOIDMETHOD_DEFINE( name, args, shortargs ) \ + typedef void (* name ## Type) args ; \ + name ## Type pfn_ ## name; \ + void name args \ + { if (m_ok) pfn_ ## name shortargs ; } + +#define wxDL_METHOD_LOAD( lib, name, success ) \ + pfn_ ## name = (name ## Type) lib->GetSymbol( wxT(#name), &success ); \ + if (!success) return; + // ---------------------------------------------------------------------------- // wxDynamicLibraryDetails: contains details about a loaded wxDynamicLibrary // ---------------------------------------------------------------------------- diff --git a/src/gtk/gnome/gprint.cpp b/src/gtk/gnome/gprint.cpp index e1230211fc..1bc67576ff 100644 --- a/src/gtk/gnome/gprint.cpp +++ b/src/gtk/gnome/gprint.cpp @@ -49,16 +49,6 @@ wxFORCE_LINK_THIS_MODULE(gnome_print) // wxGnomePrintLibrary //---------------------------------------------------------------------------- -#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ - typedef rettype (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - rettype name args \ - { if (m_ok) return pfn_ ## name shortargs ; return defret; } - -#define wxDL_METHOD_LOAD( lib, name, success ) \ - pfn_ ## name = (name ## Type) lib->GetSymbol( wxT(#name), &success ); \ - if (!success) return; - class wxGnomePrintLibrary { public: diff --git a/src/gtk/gnome/gvfs.cpp b/src/gtk/gnome/gvfs.cpp index cd5b7cace1..7e44a62b6c 100644 --- a/src/gtk/gnome/gvfs.cpp +++ b/src/gtk/gnome/gvfs.cpp @@ -36,16 +36,6 @@ wxFORCE_LINK_THIS_MODULE(gnome_vfs) // wxGnomeVFSLibrary //---------------------------------------------------------------------------- -#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ - typedef rettype (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - rettype name args \ - { if (m_ok) return pfn_ ## name shortargs ; return defret; } - -#define wxDL_METHOD_LOAD( lib, name, success ) \ - pfn_ ## name = (name ## Type) lib->GetSymbol( wxT(#name), &success ); \ - if (!success) return; - class wxGnomeVFSLibrary { public: diff --git a/src/msw/mediactrl.cpp b/src/msw/mediactrl.cpp index 1578d45777..276fc89b29 100644 --- a/src/msw/mediactrl.cpp +++ b/src/msw/mediactrl.cpp @@ -1665,22 +1665,6 @@ enum //--------------------------------------------------------------------------- // QT Library //--------------------------------------------------------------------------- -#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ - typedef rettype (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - rettype name args \ - { if (m_ok) return pfn_ ## name shortargs ; return defret; } - -#define wxDL_VOIDMETHOD_DEFINE( name, args, shortargs ) \ - typedef void (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - void name args \ - { if (m_ok) pfn_ ## name shortargs ; } - -#define wxDL_METHOD_LOAD( lib, name, success ) \ - pfn_ ## name = (name ## Type) lib.GetSymbol( wxT(#name), &success ); \ - if (!success) return false - class WXDLLIMPEXP_MEDIA wxQuickTimeLibrary { diff --git a/src/msw/mediactrl_qt.cpp b/src/msw/mediactrl_qt.cpp index 0a9b63e3eb..df59e34db5 100644 --- a/src/msw/mediactrl_qt.cpp +++ b/src/msw/mediactrl_qt.cpp @@ -171,22 +171,6 @@ enum //--------------------------------------------------------------------------- // QT Library //--------------------------------------------------------------------------- -#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ - typedef rettype (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - rettype name args \ - { if (m_ok) return pfn_ ## name shortargs ; return defret; } - -#define wxDL_VOIDMETHOD_DEFINE( name, args, shortargs ) \ - typedef void (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ - void name args \ - { if (m_ok) pfn_ ## name shortargs ; } - -#define wxDL_METHOD_LOAD( lib, name, success ) \ - pfn_ ## name = (name ## Type) lib.GetSymbol( wxT(#name), &success ); \ - if (!success) return false - class WXDLLIMPEXP_MEDIA wxQuickTimeLibrary {