Added another parameter to plug-in functions. This parameter is a structure with pointers to exec_flags and ExecuteCodeSegment. This is backward compatible with older plug-ins because plug-in functions use the __cdecl calling convention which means NSIS clears the stack.

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3751 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2004-10-23 17:43:08 +00:00
parent 54eca79ebf
commit 89d3581649
5 changed files with 39 additions and 6 deletions

View file

@ -6,7 +6,8 @@ HINSTANCE g_hInstance;
HWND g_hwndParent;
void __declspec(dllexport) myFunction(HWND hwndParent, int string_size,
char *variables, stack_t **stacktop)
char *variables, stack_t **stacktop,
extra_parameters *extra)
{
g_hwndParent=hwndParent;

View file

@ -57,6 +57,25 @@ INST_LANG, // $LANGUAGE
__INST_LAST
};
typedef struct {
int autoclose;
int all_user_var;
int exec_error;
int abort;
int exec_reboot;
int reboot_called;
int cur_insttype;
int insttype_changed;
int silent;
int instdir_error;
int rtl;
int errlvl;
} exec_flags;
typedef struct {
exec_flags *exec_flags;
int (__stdcall *ExecuteCodeSegment)(int, HWND);
} extra_parameters;
// utility functions (not required but often useful)
static int __stdcall popstring(char *str)