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:
parent
54eca79ebf
commit
89d3581649
5 changed files with 39 additions and 6 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue