applied patch #1912699 - "Pinned" / always loaded plugins support

this patch also adds plugin_api_version to exec_flags so your plug-in can now tell if features it needs are available
more plug-ins that need this will be converted once the patch to make both the stubs and the plug-ins use the same header file is in place

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5809 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2008-11-29 22:03:33 +00:00
parent 9ac4ab0891
commit 4c30821aa5
10 changed files with 173 additions and 7 deletions

View file

@ -23,6 +23,7 @@
#include "ui.h"
#include "components.h"
#include "exec.h"
#include "plugin.h"
#include "lang.h"
#include "resource.h"
@ -48,10 +49,12 @@ struct {
exec_flags *flags;
void *ExecuteCodeSegment;
void *validate_filename;
void *RegisterPluginCallback;
} plugin_extra_parameters = {
&g_exec_flags,
&ExecuteCodeSegment,
&validate_filename
&validate_filename,
&RegisterPluginCallback
};
#if defined(NSIS_SUPPORT_ACTIVEXREG) || defined(NSIS_SUPPORT_CREATESHORTCUT)
@ -996,7 +999,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
update_status_text(LANG_CANNOTFINDSYMBOL,buf0);
log_printf3("Error registering DLL: %s not found in %s",buf0,buf1);
}
if (!parm3) FreeLibrary(h);
if (!parm3 && Plugins_CanUnload(h)) FreeLibrary(h);
}
else
{