msi: Call Custom function via wrapper.
This commit is contained in:
parent
b9da31f112
commit
9fab263d39
|
@ -647,6 +647,28 @@ static UINT get_action_info( const GUID *guid, INT *type, MSIHANDLE *handle,
|
|||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef __i386__
|
||||
extern UINT CUSTOMPROC_wrapper( MsiCustomActionEntryPoint proc, MSIHANDLE handle );
|
||||
__ASM_GLOBAL_FUNC( CUSTOMPROC_wrapper,
|
||||
"pushl %ebp\n\t"
|
||||
__ASM_CFI(".cfi_adjust_cfa_offset 4\n\t")
|
||||
__ASM_CFI(".cfi_rel_offset %ebp,0\n\t")
|
||||
"movl %esp,%ebp\n\t"
|
||||
__ASM_CFI(".cfi_def_cfa_register %ebp\n\t")
|
||||
"pushl 12(%ebp)\n\t"
|
||||
"movl 8(%ebp),%eax\n\t"
|
||||
"call *%eax\n\t"
|
||||
"leave\n\t"
|
||||
__ASM_CFI(".cfi_def_cfa %esp,4\n\t")
|
||||
__ASM_CFI(".cfi_same_value %ebp\n\t")
|
||||
"ret" )
|
||||
#else
|
||||
static inline UINT CUSTOMPROC_wrapper( MsiCustomActionEntryPoint proc, MSIHANDLE handle )
|
||||
{
|
||||
return proc(handle);
|
||||
}
|
||||
#endif
|
||||
|
||||
static DWORD ACTION_CallDllFunction( const GUID *guid )
|
||||
{
|
||||
MsiCustomActionEntryPoint fn;
|
||||
|
@ -685,7 +707,7 @@ static DWORD ACTION_CallDllFunction( const GUID *guid )
|
|||
|
||||
__TRY
|
||||
{
|
||||
r = fn( hPackage );
|
||||
r = CUSTOMPROC_wrapper( fn, hPackage );
|
||||
}
|
||||
__EXCEPT_PAGE_FAULT
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue