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

@ -75,7 +75,7 @@ typedef struct {
int exec_reboot;
int reboot_called;
int XXX_cur_insttype; // deprecated
int XXX_insttype_changed; // deprecated
int plugin_api_version; // used to be XXX_insttype_changed, but that was deprecated
int silent;
int instdir_error;
int rtl;
@ -84,10 +84,23 @@ typedef struct {
int status_update;
} exec_flags_type;
// NSIS Plug-In Callback Messages
enum NSPIM
{
NSPIM_UNLOAD, // This is the last message a plugin gets, do final cleanup
NSPIM_GUIUNLOAD, // Called after .onGUIEnd
};
// Prototype for callbacks registered with extra_parameters->RegisterPluginCallback()
// Return NULL for unknown messages
// Should always be __cdecl for future expansion possibilities
typedef UINT_PTR (*NSISPLUGINCALLBACK)(NSPIM);
typedef struct {
exec_flags_type *exec_flags;
int (__stdcall *ExecuteCodeSegment)(int, HWND);
void (__stdcall *validate_filename)(char *);
BOOL (__stdcall *RegisterPluginCallback)(HMODULE, NSISPLUGINCALLBACK);
} extra_parameters;
// utility functions (not required but often useful)