// Copyright (C) 2003-2008 Dolphin Project. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2.0. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License 2.0 for more details. // A copy of the GPL 2.0 should have been included with the program. // If not, see http://www.gnu.org/licenses/ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ #include "Plugin.h" namespace Common { DynamicLibrary CPlugin::m_hInstLib; void(__cdecl * CPlugin::m_GetDllInfo) (PLUGIN_INFO * _PluginInfo) = 0; void(__cdecl * CPlugin::m_DllAbout) (HWND _hParent) = 0; void(__cdecl * CPlugin::m_DllConfig) (HWND _hParent) = 0; void CPlugin::Release(void) { m_GetDllInfo = 0; m_DllAbout = 0; m_DllConfig = 0; m_hInstLib.Unload(); } bool CPlugin::Load(const char* _szName) { if (m_hInstLib.Load(_szName)) { m_GetDllInfo = (void (__cdecl*)(PLUGIN_INFO*))m_hInstLib.Get("GetDllInfo"); m_DllAbout = (void (__cdecl*)(HWND))m_hInstLib.Get("DllAbout"); m_DllConfig = (void (__cdecl*)(HWND))m_hInstLib.Get("DllConfig"); return(true); } return(false); } bool CPlugin::GetInfo(PLUGIN_INFO& _pluginInfo) { if (m_GetDllInfo != 0) { m_GetDllInfo(&_pluginInfo); return(true); } return(false); } void CPlugin::Config(HWND _hwnd) { if (m_DllConfig != 0) { m_DllConfig(_hwnd); } } void CPlugin::About(HWND _hwnd) { if (m_DllAbout != 0) { m_DllAbout(_hwnd); } } } // end of namespace Common