X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2980921209fdf004244a72ebf88658987e2a986..cbeda384e51acb82e13994cb67ac1714669cae10:/include/wx/dynload.h diff --git a/include/wx/dynload.h b/include/wx/dynload.h index 1484964048..8b079d4630 100644 --- a/include/wx/dynload.h +++ b/include/wx/dynload.h @@ -13,10 +13,6 @@ #ifndef _WX_DYNAMICLOADER_H__ #define _WX_DYNAMICLOADER_H__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "dynload.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -29,7 +25,7 @@ #include "wx/hashmap.h" #include "wx/module.h" -class WXDLLIMPEXP_BASE wxPluginLibrary; +class WXDLLIMPEXP_FWD_BASE wxPluginLibrary; WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxPluginLibrary *, wxDLManifest, @@ -86,17 +82,19 @@ public: private: - wxClassInfo *m_before; // sm_first before loading this lib - wxClassInfo *m_after; // ..and after. + const wxClassInfo *m_before; // sm_first before loading this lib + const wxClassInfo *m_after; // ..and after. size_t m_linkcount; // Ref count of library link calls size_t m_objcount; // ..and (pluggable) object instantiations. wxModuleList m_wxmodules; // any wxModules that we initialised. + void UpdateClasses(); // Update ms_classes + void RestoreClasses(); // Removes this library from ms_classes void RegisterModules(); // Init any wxModules in the lib. void UnregisterModules(); // Cleanup any wxModules we installed. - DECLARE_NO_COPY_CLASS(wxPluginLibrary) + wxDECLARE_NO_COPY_CLASS(wxPluginLibrary); }; @@ -110,21 +108,14 @@ public: int flags = wxDL_DEFAULT ); static bool UnloadLibrary(const wxString &libname); - // This is used by wxDllLoader. It's wrapped in the compatibility - // macro because it's of arguable use outside of that. - -#if WXWIN_COMPATIBILITY_2_2 - static wxPluginLibrary *GetObjectFromHandle(wxDllType handle); -#endif - // Instance methods. - wxPluginManager() : m_entry(NULL) {}; + wxPluginManager() : m_entry(NULL) {} wxPluginManager(const wxString &libname, int flags = wxDL_DEFAULT) { Load(libname, flags); } - ~wxPluginManager() { Unload(); } + ~wxPluginManager() { if ( IsLoaded() ) Unload(); } bool Load(const wxString &libname, int flags = wxDL_DEFAULT); void Unload(); @@ -153,7 +144,7 @@ private: // We could allow this class to be copied if we really // wanted to, but not without modification. - DECLARE_NO_COPY_CLASS(wxPluginManager) + wxDECLARE_NO_COPY_CLASS(wxPluginManager); };