From 3fd4aa8ec90c19f9da24f487ea9efdda0683da9c Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 11 Oct 2000 16:05:55 +0000 Subject: [PATCH] * stdcall for callbacks (merged) --- rtl/win32/syswin32.pp | 481 ++++++++++++++++++------------------ rtl/win32/wininc/ascdef.inc | 7 +- rtl/win32/wininc/ascfun.inc | 7 +- rtl/win32/wininc/base.inc | 96 +++---- rtl/win32/wininc/struct.inc | 25 +- rtl/win32/wininc/unidef.inc | 7 +- rtl/win32/wininc/unifun.inc | 7 +- 7 files changed, 326 insertions(+), 304 deletions(-) diff --git a/rtl/win32/syswin32.pp b/rtl/win32/syswin32.pp index 1cd2a33cd5..5d5dd1b8d7 100644 --- a/rtl/win32/syswin32.pp +++ b/rtl/win32/syswin32.pp @@ -915,323 +915,323 @@ end; *) const - SEVERITY_SUCCESS = $00000000; - SEVERITY_INFORMATIONAL = $40000000; - SEVERITY_WARNING = $80000000; - SEVERITY_ERROR = $C0000000; + SEVERITY_SUCCESS = $00000000; + SEVERITY_INFORMATIONAL = $40000000; + SEVERITY_WARNING = $80000000; + SEVERITY_ERROR = $C0000000; const - STATUS_SEGMENT_NOTIFICATION = $40000005; - DBG_TERMINATE_THREAD = $40010003; - DBG_TERMINATE_PROCESS = $40010004; - DBG_CONTROL_C = $40010005; - DBG_CONTROL_BREAK = $40010008; + STATUS_SEGMENT_NOTIFICATION = $40000005; + DBG_TERMINATE_THREAD = $40010003; + DBG_TERMINATE_PROCESS = $40010004; + DBG_CONTROL_C = $40010005; + DBG_CONTROL_BREAK = $40010008; - STATUS_GUARD_PAGE_VIOLATION = $80000001; - STATUS_DATATYPE_MISALIGNMENT = $80000002; - STATUS_BREAKPOINT = $80000003; - STATUS_SINGLE_STEP = $80000004; - DBG_EXCEPTION_NOT_HANDLED = $80010001; + STATUS_GUARD_PAGE_VIOLATION = $80000001; + STATUS_DATATYPE_MISALIGNMENT = $80000002; + STATUS_BREAKPOINT = $80000003; + STATUS_SINGLE_STEP = $80000004; + DBG_EXCEPTION_NOT_HANDLED = $80010001; - STATUS_ACCESS_VIOLATION = $C0000005; - STATUS_IN_PAGE_ERROR = $C0000006; - STATUS_INVALID_HANDLE = $C0000008; - STATUS_NO_MEMORY = $C0000017; - STATUS_ILLEGAL_INSTRUCTION = $C000001D; - STATUS_NONCONTINUABLE_EXCEPTION = $C0000025; - STATUS_INVALID_DISPOSITION = $C0000026; - STATUS_ARRAY_BOUNDS_EXCEEDED = $C000008C; - STATUS_FLOAT_DENORMAL_OPERAND = $C000008D; - STATUS_FLOAT_DIVIDE_BY_ZERO = $C000008E; - STATUS_FLOAT_INEXACT_RESULT = $C000008F; - STATUS_FLOAT_INVALID_OPERATION = $C0000090; - STATUS_FLOAT_OVERFLOW = $C0000091; - STATUS_FLOAT_STACK_CHECK = $C0000092; - STATUS_FLOAT_UNDERFLOW = $C0000093; - STATUS_INTEGER_DIVIDE_BY_ZERO = $C0000094; - STATUS_INTEGER_OVERFLOW = $C0000095; - STATUS_PRIVILEGED_INSTRUCTION = $C0000096; - STATUS_STACK_OVERFLOW = $C00000FD; - STATUS_CONTROL_C_EXIT = $C000013A; - STATUS_FLOAT_MULTIPLE_FAULTS = $C00002B4; - STATUS_FLOAT_MULTIPLE_TRAPS = $C00002B5; - STATUS_REG_NAT_CONSUMPTION = $C00002C9; + STATUS_ACCESS_VIOLATION = $C0000005; + STATUS_IN_PAGE_ERROR = $C0000006; + STATUS_INVALID_HANDLE = $C0000008; + STATUS_NO_MEMORY = $C0000017; + STATUS_ILLEGAL_INSTRUCTION = $C000001D; + STATUS_NONCONTINUABLE_EXCEPTION = $C0000025; + STATUS_INVALID_DISPOSITION = $C0000026; + STATUS_ARRAY_BOUNDS_EXCEEDED = $C000008C; + STATUS_FLOAT_DENORMAL_OPERAND = $C000008D; + STATUS_FLOAT_DIVIDE_BY_ZERO = $C000008E; + STATUS_FLOAT_INEXACT_RESULT = $C000008F; + STATUS_FLOAT_INVALID_OPERATION = $C0000090; + STATUS_FLOAT_OVERFLOW = $C0000091; + STATUS_FLOAT_STACK_CHECK = $C0000092; + STATUS_FLOAT_UNDERFLOW = $C0000093; + STATUS_INTEGER_DIVIDE_BY_ZERO = $C0000094; + STATUS_INTEGER_OVERFLOW = $C0000095; + STATUS_PRIVILEGED_INSTRUCTION = $C0000096; + STATUS_STACK_OVERFLOW = $C00000FD; + STATUS_CONTROL_C_EXIT = $C000013A; + STATUS_FLOAT_MULTIPLE_FAULTS = $C00002B4; + STATUS_FLOAT_MULTIPLE_TRAPS = $C00002B5; + STATUS_REG_NAT_CONSUMPTION = $C00002C9; - EXCEPTION_EXECUTE_HANDLER = 1; - EXCEPTION_CONTINUE_EXECUTION = -1; - EXCEPTION_CONTINUE_SEARCH = 0; + EXCEPTION_EXECUTE_HANDLER = 1; + EXCEPTION_CONTINUE_EXECUTION = -1; + EXCEPTION_CONTINUE_SEARCH = 0; - EXCEPTION_MAXIMUM_PARAMETERS = 15; + EXCEPTION_MAXIMUM_PARAMETERS = 15; - CONTEXT_X86 = $00010000; - CONTEXT_CONTROL = CONTEXT_X86 or $00000001; - CONTEXT_INTEGER = CONTEXT_X86 or $00000002; - CONTEXT_SEGMENTS = CONTEXT_X86 or $00000004; - CONTEXT_FLOATING_POINT = CONTEXT_X86 or $00000008; - CONTEXT_DEBUG_REGISTERS = CONTEXT_X86 or $00000010; - CONTEXT_EXTENDED_REGISTERS = CONTEXT_X86 or $00000020; + CONTEXT_X86 = $00010000; + CONTEXT_CONTROL = CONTEXT_X86 or $00000001; + CONTEXT_INTEGER = CONTEXT_X86 or $00000002; + CONTEXT_SEGMENTS = CONTEXT_X86 or $00000004; + CONTEXT_FLOATING_POINT = CONTEXT_X86 or $00000008; + CONTEXT_DEBUG_REGISTERS = CONTEXT_X86 or $00000010; + CONTEXT_EXTENDED_REGISTERS = CONTEXT_X86 or $00000020; - CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; - MAXIMUM_SUPPORTED_EXTENSION = 512; + MAXIMUM_SUPPORTED_EXTENSION = 512; type - PFloatingSaveArea = ^TFloatingSaveArea; - TFloatingSaveArea = packed record - ControlWord : Cardinal; - StatusWord : Cardinal; - TagWord : Cardinal; - ErrorOffset : Cardinal; - ErrorSelector : Cardinal; - DataOffset : Cardinal; - DataSelector : Cardinal; - RegisterArea : array[0..79] of Byte; - Cr0NpxState : Cardinal; - end; + PFloatingSaveArea = ^TFloatingSaveArea; + TFloatingSaveArea = packed record + ControlWord : Cardinal; + StatusWord : Cardinal; + TagWord : Cardinal; + ErrorOffset : Cardinal; + ErrorSelector : Cardinal; + DataOffset : Cardinal; + DataSelector : Cardinal; + RegisterArea : array[0..79] of Byte; + Cr0NpxState : Cardinal; + end; - PContext = ^TContext; - TContext = packed record - // - // The flags values within this flag control the contents of - // a CONTEXT record. - // - ContextFlags : Cardinal; + PContext = ^TContext; + TContext = packed record + // + // The flags values within this flag control the contents of + // a CONTEXT record. + // + ContextFlags : Cardinal; - // - // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is - // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT - // included in CONTEXT_FULL. - // - Dr0, Dr1, Dr2, - Dr3, Dr6, Dr7 : Cardinal; + // + // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is + // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT + // included in CONTEXT_FULL. + // + Dr0, Dr1, Dr2, + Dr3, Dr6, Dr7 : Cardinal; - // - // This section is specified/returned if the - // ContextFlags word contains the flag CONTEXT_FLOATING_POINT. - // - FloatSave : TFloatingSaveArea; + // + // This section is specified/returned if the + // ContextFlags word contains the flag CONTEXT_FLOATING_POINT. + // + FloatSave : TFloatingSaveArea; - // - // This section is specified/returned if the - // ContextFlags word contains the flag CONTEXT_SEGMENTS. - // - SegGs, SegFs, - SegEs, SegDs : Cardinal; + // + // This section is specified/returned if the + // ContextFlags word contains the flag CONTEXT_SEGMENTS. + // + SegGs, SegFs, + SegEs, SegDs : Cardinal; - // - // This section is specified/returned if the - // ContextFlags word contains the flag CONTEXT_INTEGER. - // - Edi, Esi, Ebx, - Edx, Ecx, Eax : Cardinal; + // + // This section is specified/returned if the + // ContextFlags word contains the flag CONTEXT_INTEGER. + // + Edi, Esi, Ebx, + Edx, Ecx, Eax : Cardinal; - // - // This section is specified/returned if the - // ContextFlags word contains the flag CONTEXT_CONTROL. - // - Ebp : Cardinal; - Eip : Cardinal; - SegCs : Cardinal; - EFlags, Esp, SegSs : Cardinal; + // + // This section is specified/returned if the + // ContextFlags word contains the flag CONTEXT_CONTROL. + // + Ebp : Cardinal; + Eip : Cardinal; + SegCs : Cardinal; + EFlags, Esp, SegSs : Cardinal; - // - // This section is specified/returned if the ContextFlags word - // contains the flag CONTEXT_EXTENDED_REGISTERS. - // The format and contexts are processor specific - // - ExtendedRegisters : array[0..MAXIMUM_SUPPORTED_EXTENSION-1] of Byte; - end; + // + // This section is specified/returned if the ContextFlags word + // contains the flag CONTEXT_EXTENDED_REGISTERS. + // The format and contexts are processor specific + // + ExtendedRegisters : array[0..MAXIMUM_SUPPORTED_EXTENSION-1] of Byte; + end; type - PExceptionRecord = ^TExceptionRecord; - TExceptionRecord = packed record - ExceptionCode : Longint; - ExceptionFlags : Longint; - ExceptionRecord : PExceptionRecord; - ExceptionAddress : Pointer; - NumberParameters : Longint; - ExceptionInformation : array[0..EXCEPTION_MAXIMUM_PARAMETERS-1] of Pointer; - end; + PExceptionRecord = ^TExceptionRecord; + TExceptionRecord = packed record + ExceptionCode : Longint; + ExceptionFlags : Longint; + ExceptionRecord : PExceptionRecord; + ExceptionAddress : Pointer; + NumberParameters : Longint; + ExceptionInformation : array[0..EXCEPTION_MAXIMUM_PARAMETERS-1] of Pointer; + end; - PExceptionPointers = ^TExceptionPointers; - TExceptionPointers = packed record - ExceptionRecord : PExceptionRecord; - ContextRecord : PContext; - end; + PExceptionPointers = ^TExceptionPointers; + TExceptionPointers = packed record + ExceptionRecord : PExceptionRecord; + ContextRecord : PContext; + end; { type of functions that should be used for exception handling } - TTopLevelExceptionFilter = function (excep : PExceptionPointers) : Longint; + TTopLevelExceptionFilter = function (excep : PExceptionPointers) : Longint; function SetUnhandledExceptionFilter(lpTopLevelExceptionFilter : TTopLevelExceptionFilter) : TTopLevelExceptionFilter; - external 'kernel32' name 'SetUnhandledExceptionFilter'; + external 'kernel32' name 'SetUnhandledExceptionFilter'; const - MaxExceptionLevel = 16; - exceptLevel : Byte = 0; + MaxExceptionLevel = 16; + exceptLevel : Byte = 0; var - exceptEip : array[0..MaxExceptionLevel-1] of Longint; - exceptError : array[0..MaxExceptionLevel-1] of Byte; - resetFPU : array[0..MaxExceptionLevel-1] of Boolean; + exceptEip : array[0..MaxExceptionLevel-1] of Longint; + exceptError : array[0..MaxExceptionLevel-1] of Byte; + resetFPU : array[0..MaxExceptionLevel-1] of Boolean; {$ifdef SYSTEMEXCEPTIONDEBUG} procedure DebugHandleErrorAddrFrame(error, addr, frame : longint); begin - if IsConsole then begin - write(stderr,'HandleErrorAddrFrame(error=',error); - write(stderr,',addr=',hexstr(addr,8)); - writeln(stderr,',frame=',hexstr(frame,8),')'); - end; - HandleErrorAddrFrame(error,addr,frame); + if IsConsole then begin + write(stderr,'HandleErrorAddrFrame(error=',error); + write(stderr,',addr=',hexstr(addr,8)); + writeln(stderr,',frame=',hexstr(frame,8),')'); + end; + HandleErrorAddrFrame(error,addr,frame); end; {$endif SYSTEMEXCEPTIONDEBUG} procedure JumpToHandleErrorFrame; var - eip, ebp, error : Longint; + eip, ebp, error : Longint; begin - // save ebp - asm - movl (%ebp),%eax - movl %eax,ebp - end; - if (exceptLevel > 0) then - dec(exceptLevel); + // save ebp + asm + movl (%ebp),%eax + movl %eax,ebp + end; + if (exceptLevel > 0) then + dec(exceptLevel); - eip:=exceptEip[exceptLevel]; - error:=exceptError[exceptLevel]; + eip:=exceptEip[exceptLevel]; + error:=exceptError[exceptLevel]; {$ifdef SYSTEMEXCEPTIONDEBUG} - if IsConsole then - writeln(stderr,'In JumpToHandleErrorFrame error=',error); - end; + if IsConsole then + writeln(stderr,'In JumpToHandleErrorFrame error=',error); + end; {$endif SYSTEMEXCEPTIONDEBUG} - if resetFPU[exceptLevel] then asm - fninit - fldcw fpucw - end; - { build a fake stack } - asm - movl ebp,%eax - pushl %eax - movl eip,%eax - pushl %eax - movl error,%eax - pushl %eax - movl eip,%eax - pushl %eax - movl ebp,%ebp // Change frame pointer + if resetFPU[exceptLevel] then asm + fninit + fldcw fpucw + end; + { build a fake stack } + asm + movl ebp,%eax + pushl %eax + movl eip,%eax + pushl %eax + movl error,%eax + pushl %eax + movl eip,%eax + pushl %eax + movl ebp,%ebp // Change frame pointer {$ifdef SYSTEMEXCEPTIONDEBUG} - jmpl DebugHandleErrorAddrFrame + jmpl DebugHandleErrorAddrFrame {$else not SYSTEMEXCEPTIONDEBUG} - jmpl HandleErrorAddrFrame + jmpl HandleErrorAddrFrame {$endif SYSTEMEXCEPTIONDEBUG} - end; + end; end; -function syswin32_i386_exception_handler(excep : PExceptionPointers) : Longint; +function syswin32_i386_exception_handler(excep : PExceptionPointers) : Longint;stdcall; var - frame, - res : longint; + frame, + res : longint; function SysHandleErrorFrame(error, frame : Longint; must_reset_fpu : Boolean) : Longint; begin - if (frame = 0) then - SysHandleErrorFrame:=EXCEPTION_CONTINUE_SEARCH - else begin - if (exceptLevel >= MaxExceptionLevel) then exit; + if (frame = 0) then + SysHandleErrorFrame:=EXCEPTION_CONTINUE_SEARCH + else begin + if (exceptLevel >= MaxExceptionLevel) then exit; - exceptEip[exceptLevel] := excep^.ContextRecord^.Eip; - exceptError[exceptLevel] := error; - resetFPU[exceptLevel] := must_reset_fpu; - inc(exceptLevel); + exceptEip[exceptLevel] := excep^.ContextRecord^.Eip; + exceptError[exceptLevel] := error; + resetFPU[exceptLevel] := must_reset_fpu; + inc(exceptLevel); - excep^.ContextRecord^.Eip := Longint(@JumpToHandleErrorFrame); - excep^.ExceptionRecord^.ExceptionCode := 0; + excep^.ContextRecord^.Eip := Longint(@JumpToHandleErrorFrame); + excep^.ExceptionRecord^.ExceptionCode := 0; - SysHandleErrorFrame := EXCEPTION_CONTINUE_EXECUTION; + SysHandleErrorFrame := EXCEPTION_CONTINUE_EXECUTION; {$ifdef SYSTEMEXCEPTIONDEBUG} - if IsConsole then begin - writeln(stderr,'Exception Continue Exception set at ', - hexstr(exceptEip[exceptLevel],8)); - writeln(stderr,'Eip changed to ', - hexstr(longint(@JumpToHandleErrorFrame),8), ' error=', error); - end; + if IsConsole then begin + writeln(stderr,'Exception Continue Exception set at ', + hexstr(exceptEip[exceptLevel],8)); + writeln(stderr,'Eip changed to ', + hexstr(longint(@JumpToHandleErrorFrame),8), ' error=', error); + end; {$endif SYSTEMEXCEPTIONDEBUG} - end; + end; end; begin - if excep^.ContextRecord^.SegSs=_SS then - frame := excep^.ContextRecord^.Ebp - else - frame := 0; - res := EXCEPTION_CONTINUE_SEARCH; + if excep^.ContextRecord^.SegSs=_SS then + frame := excep^.ContextRecord^.Ebp + else + frame := 0; + res := EXCEPTION_CONTINUE_SEARCH; {$ifdef SYSTEMEXCEPTIONDEBUG} - if IsConsole then Writeln(stderr,'Exception ', - hexstr(excep^.ExceptionRecord^.ExceptionCode, 8)); + if IsConsole then Writeln(stderr,'Exception ', + hexstr(excep^.ExceptionRecord^.ExceptionCode, 8)); {$endif SYSTEMEXCEPTIONDEBUG} - case excep^.ExceptionRecord^.ExceptionCode of - STATUS_INTEGER_DIVIDE_BY_ZERO, - STATUS_FLOAT_DIVIDE_BY_ZERO : - res := SysHandleErrorFrame(200, frame, true); - STATUS_ARRAY_BOUNDS_EXCEEDED : - res := SysHandleErrorFrame(201, frame, false); - STATUS_STACK_OVERFLOW : - res := SysHandleErrorFrame(202, frame, false); - STATUS_FLOAT_OVERFLOW : - res := SysHandleErrorFrame(205, frame, true); - STATUS_FLOAT_UNDERFLOW : - res := SysHandleErrorFrame(206, frame, true); + case excep^.ExceptionRecord^.ExceptionCode of + STATUS_INTEGER_DIVIDE_BY_ZERO, + STATUS_FLOAT_DIVIDE_BY_ZERO : + res := SysHandleErrorFrame(200, frame, true); + STATUS_ARRAY_BOUNDS_EXCEEDED : + res := SysHandleErrorFrame(201, frame, false); + STATUS_STACK_OVERFLOW : + res := SysHandleErrorFrame(202, frame, false); + STATUS_FLOAT_OVERFLOW : + res := SysHandleErrorFrame(205, frame, true); + STATUS_FLOAT_UNDERFLOW : + res := SysHandleErrorFrame(206, frame, true); {excep^.ContextRecord^.FloatSave.StatusWord := excep^.ContextRecord^.FloatSave.StatusWord and $ffffff00;} - STATUS_FLOAT_INVALID_OPERATION, - STATUS_FLOAT_STACK_CHECK : - res := SysHandleErrorFrame(207, frame, true); - STATUS_INTEGER_OVERFLOW : - res := SysHandleErrorFrame(215, frame, false); - STATUS_ACCESS_VIOLATION, - STATUS_FLOAT_DENORMAL_OPERAND : - res := SysHandleErrorFrame(216, frame, true); - else begin - if ((excep^.ExceptionRecord^.ExceptionCode and SEVERITY_ERROR) = SEVERITY_ERROR) then - res := SysHandleErrorFrame(217, frame, true); - end; - end; - syswin32_i386_exception_handler := res; + STATUS_FLOAT_INVALID_OPERATION, + STATUS_FLOAT_STACK_CHECK : + res := SysHandleErrorFrame(207, frame, true); + STATUS_INTEGER_OVERFLOW : + res := SysHandleErrorFrame(215, frame, false); + STATUS_ACCESS_VIOLATION, + STATUS_FLOAT_DENORMAL_OPERAND : + res := SysHandleErrorFrame(216, frame, true); + else begin + if ((excep^.ExceptionRecord^.ExceptionCode and SEVERITY_ERROR) = SEVERITY_ERROR) then + res := SysHandleErrorFrame(217, frame, true); + end; + end; + syswin32_i386_exception_handler := res; end; procedure install_exception_handlers; {$ifdef SYSTEMEXCEPTIONDEBUG} var - oldexceptaddr, - newexceptaddr : Longint; + oldexceptaddr, + newexceptaddr : Longint; {$endif SYSTEMEXCEPTIONDEBUG} begin {$ifdef SYSTEMEXCEPTIONDEBUG} - asm - movl $0,%eax - movl %fs:(%eax),%eax - movl %eax,oldexceptaddr - end; + asm + movl $0,%eax + movl %fs:(%eax),%eax + movl %eax,oldexceptaddr + end; {$endif SYSTEMEXCEPTIONDEBUG} - SetUnhandledExceptionFilter(@syswin32_i386_exception_handler); + SetUnhandledExceptionFilter(@syswin32_i386_exception_handler); {$ifdef SYSTEMEXCEPTIONDEBUG} - asm - movl $0,%eax - movl %fs:(%eax),%eax - movl %eax,newexceptaddr - end; - if IsConsole then - writeln(stderr,'Old exception ',hexstr(oldexceptaddr,8), - ' new exception ',hexstr(newexceptaddr,8)); + asm + movl $0,%eax + movl %fs:(%eax),%eax + movl %eax,newexceptaddr + end; + if IsConsole then + writeln(stderr,'Old exception ',hexstr(oldexceptaddr,8), + ' new exception ',hexstr(newexceptaddr,8)); {$endif SYSTEMEXCEPTIONDEBUG} end; procedure remove_exception_handlers; begin - SetUnhandledExceptionFilter(nil); + SetUnhandledExceptionFilter(nil); end; {$else not i386 (Processor specific !!)} @@ -1380,7 +1380,10 @@ end. { $Log$ - Revision 1.4 2000-09-11 20:19:28 florian + Revision 1.5 2000-10-11 16:05:55 peter + * stdcall for callbacks (merged) + + Revision 1.4 2000/09/11 20:19:28 florian * complete exception handling provided by Thomas Schatzl Revision 1.3 2000/09/04 19:36:59 peter @@ -1389,4 +1392,4 @@ end. Revision 1.2 2000/07/13 11:33:58 michael + removed logs -} +} \ No newline at end of file diff --git a/rtl/win32/wininc/ascdef.inc b/rtl/win32/wininc/ascdef.inc index f2732e4e3d..8c354b5ede 100644 --- a/rtl/win32/wininc/ascdef.inc +++ b/rtl/win32/wininc/ascdef.inc @@ -447,7 +447,7 @@ function FindExecutable(_para1:pchar; _para2:pchar;_para3:pchar):HINST; external function ShellAbout(_para1:HWND; _para2:pchar; _para3:pchar;_para4:HICON):longint; external 'shell32' name 'ShellAboutA'; function ShellExecute(_para1:HWND; _para2:pchar; _para3:pchar;_para4:pchar; _para5:pchar;_para6:longint):HINST; external 'shell32' name 'ShellExecuteA'; function DdeCreateStringHandle(_para1:DWORD; _para2:pchar;_para3:longint):HSZ; external 'user32' name 'DdeCreateStringHandleA'; -function DdeInitialize(_para1:LPDWORD; _para2:CALLB; _para3:DWORD; _para4:DWORD):UINT;external 'user32' name 'DdeInitializeA'; +function DdeInitialize(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4:DWORD):UINT;external 'user32' name 'DdeInitializeA'; function DdeQueryString(_para1:DWORD; _para2:HSZ; _para3:pchar;_para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringA'; function LogonUser(_para1:LPSTR; _para2:LPSTR; _para3:LPSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserA'; function CreateProcessAsUser(_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCTSTR; @@ -487,7 +487,10 @@ end; { $Log$ - Revision 1.2 2000-07-13 11:33:58 michael + Revision 1.3 2000-10-11 16:05:55 peter + * stdcall for callbacks (merged) + + Revision 1.2 2000/07/13 11:33:58 michael + removed logs } diff --git a/rtl/win32/wininc/ascfun.inc b/rtl/win32/wininc/ascfun.inc index 62970fadf5..cb030b22d5 100644 --- a/rtl/win32/wininc/ascfun.inc +++ b/rtl/win32/wininc/ascfun.inc @@ -448,7 +448,7 @@ function FindExecutableA(_para1:pchar; _para2:pchar;_para3:pchar):HINST; externa function ShellAboutA(_para1:HWND; _para2:pchar; _para3:pchar;_para4:HICON):longint; external 'shell32' name 'ShellAboutA'; function ShellExecuteA(_para1:HWND; _para2:pchar; _para3:pchar;_para4:pchar; _para5:pchar;_para6:longint):HINST; external 'shell32' name 'ShellExecuteA'; function DdeCreateStringHandleA(_para1:DWORD; _para2:pchar;_para3:longint):HSZ; external 'user32' name 'DdeCreateStringHandleA'; -function DdeInitializeA(_para1:LPDWORD; _para2:CALLB; _para3:DWORD; _para4:DWORD):UINT;external 'user32' name 'DdeInitializeA'; +function DdeInitializeA(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4:DWORD):UINT;external 'user32' name 'DdeInitializeA'; function DdeQueryStringA(_para1:DWORD; _para2:HSZ; _para3:pchar;_para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringA'; function LogonUserA(_para1:LPSTR; _para2:LPSTR; _para3:LPSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserA'; function CreateProcessAsUserA(_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCTSTR; @@ -488,7 +488,10 @@ end; { $Log$ - Revision 1.2 2000-07-13 11:33:58 michael + Revision 1.3 2000-10-11 16:05:56 peter + * stdcall for callbacks (merged) + + Revision 1.2 2000/07/13 11:33:58 michael + removed logs } diff --git a/rtl/win32/wininc/base.inc b/rtl/win32/wininc/base.inc index 44f6aa5211..ea6ce048dc 100644 --- a/rtl/win32/wininc/base.inc +++ b/rtl/win32/wininc/base.inc @@ -503,101 +503,101 @@ type - BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint; + BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;stdcall; - LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; PTHREAD_START_ROUTINE = Pointer; LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; - EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD; + EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD;stdcall; - LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; + DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall; - PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint; + PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;stdcall; - LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR); + LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR);stdcall; - PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; + PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall; - WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT; + WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall; FARPROC = pointer; PROC = FARPROC; - ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL; + ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL;stdcall; - ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL; + ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL;stdcall; - ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL; + ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL;stdcall; DESKTOPENUMPROC = FARPROC; - ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL; + ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;stdcall; - ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL; + ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;stdcall; - SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT); + SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT);stdcall; - TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD); + TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD);stdcall; GRAYSTRINGPROC = FARPROC; - DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL; + DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;stdcall; - PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL; + PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL;stdcall; - PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL; + PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;stdcall; - HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT; + HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;stdcall; - ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM); + ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);stdcall; - LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM); + LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);stdcall; - TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL; + TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;stdcall; - LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT; + LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;stdcall; - ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint; + ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;stdcall; - EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:INT):LONG;CDECL; + EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:INT):LONG;stdcall; - PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint; + PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall; - LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; - CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; - DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; - TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; - CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL; + CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall; - PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL; + PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;stdcall; - LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL; + LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;stdcall; - PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT; + PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall; - PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT; + PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;stdcall; - PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL; + PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;stdcall; (* Not convertable by H2PAS #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} @@ -655,10 +655,11 @@ type - CALLB = procedure ;CDECL; - { PFNCALLBACK = CALLB; } - PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;cdecl; + PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;stdcall; + { CALLB = procedure ;CDECL; } + CALLB = PFNCALLBACK; + SECURITY_CONTEXT_TRACKING_MODE = WINBOOL; { End of stuff from ddeml.h in old Cygnus headers } @@ -940,7 +941,10 @@ type { $Log$ - Revision 1.3 2000-08-16 18:35:19 peter + Revision 1.4 2000-10-11 16:05:56 peter + * stdcall for callbacks (merged) + + Revision 1.3 2000/08/16 18:35:19 peter * removed word=word declaration Revision 1.2 2000/07/13 11:33:58 michael diff --git a/rtl/win32/wininc/struct.inc b/rtl/win32/wininc/struct.inc index 3c178836e7..81c071c15f 100644 --- a/rtl/win32/wininc/struct.inc +++ b/rtl/win32/wininc/struct.inc @@ -4142,7 +4142,7 @@ TMSG = MSG; PMSG = ^MSG; - MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO); + MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);stdcall; TMSGBOXCALLBACK = MSGBOXCALLBACK; MSGBOXPARAMS = record @@ -4973,7 +4973,7 @@ TPROCESSINFORMATION = PROCESS_INFORMATION; PPROCESSINFORMATION = ^PROCESS_INFORMATION; - LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT; + LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT;stdcall; TFNPSPCALLBACK = LPFNPSPCALLBACK; PROPSHEETPAGE = record @@ -5037,10 +5037,10 @@ PPROPSHEETHEADER = ^PROPSHEETHEADER; { PropertySheet callbacks } - LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL; + LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL;stdcall; TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE; - LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL; + LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL;stdcall; TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES; PROTOCOL_INFO = record @@ -6202,17 +6202,17 @@ TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT; PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT; - ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint; + ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint;stdcall; - ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint; + ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint;stdcall; - ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint; + ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;stdcall; - FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint; + FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;stdcall; - FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint; + FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall; - LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED); + LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);stdcall; { Structures for the extensions to OpenGL } @@ -6961,7 +6961,10 @@ type { $Log$ - Revision 1.2 2000-07-13 11:34:01 michael + Revision 1.3 2000-10-11 16:05:56 peter + * stdcall for callbacks (merged) + + Revision 1.2 2000/07/13 11:34:01 michael + removed logs } diff --git a/rtl/win32/wininc/unidef.inc b/rtl/win32/wininc/unidef.inc index 9b700c8d3f..e7d60e1c8b 100644 --- a/rtl/win32/wininc/unidef.inc +++ b/rtl/win32/wininc/unidef.inc @@ -454,7 +454,7 @@ function FindExecutable(_para1:LPCWSTR; _para2:LPCWSTR; _para3:LPCWSTR):HINST; e function ShellAbout(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:HICON):longint; external 'shell32' name 'ShellAboutW'; function ShellExecute(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR; _para5:LPCWSTR;_para6:longint):HINST; external 'shell32' name 'ShellExecuteW'; function DdeCreateStringHandle(_para1:DWORD; _para2:LPCWSTR; _para3:longint):HSZ; external 'user32' name 'DdeCreateStringHandleW'; -function DdeInitialize(_para1:LPDWORD; _para2:CALLB; _para3:DWORD; _para4:DWORD):UINT; external 'user32' name 'DdeInitializeW'; +function DdeInitialize(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4:DWORD):UINT; external 'user32' name 'DdeInitializeW'; function DdeQueryString(_para1:DWORD; _para2:HSZ; _para3:LPCWSTR; _para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringW'; function LogonUser(_para1:LPWSTR; _para2:LPWSTR; _para3:LPWSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserW'; function CreateProcessAsUser(_para1:HANDLE; _para2:LPCWSTR; _para3:LPWSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCWSTR; _para10:LPSTARTUPINFO;_para11:LPPROCESS_INFORMATION):WINBOOL @@ -493,7 +493,10 @@ end; { $Log$ - Revision 1.2 2000-07-13 11:34:03 michael + Revision 1.3 2000-10-11 16:05:56 peter + * stdcall for callbacks (merged) + + Revision 1.2 2000/07/13 11:34:03 michael + removed logs } diff --git a/rtl/win32/wininc/unifun.inc b/rtl/win32/wininc/unifun.inc index 817dfef450..c24c1a0867 100644 --- a/rtl/win32/wininc/unifun.inc +++ b/rtl/win32/wininc/unifun.inc @@ -454,7 +454,7 @@ function FindExecutableW(_para1:LPCWSTR; _para2:LPCWSTR; _para3:LPCWSTR):HINST; function ShellAboutW(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:HICON):longint; external 'shell32' name 'ShellAboutW'; function ShellExecuteW(_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR; _para5:LPCWSTR;_para6:longint):HINST; external 'shell32' name 'ShellExecuteW'; function DdeCreateStringHandleW(_para1:DWORD; _para2:LPCWSTR; _para3:longint):HSZ; external 'user32' name 'DdeCreateStringHandleW'; -function DdeInitializeW(_para1:LPDWORD; _para2:CALLB; _para3:DWORD; _para4:DWORD):UINT; external 'user32' name 'DdeInitializeW'; +function DdeInitializeW(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4:DWORD):UINT; external 'user32' name 'DdeInitializeW'; function DdeQueryStringW(_para1:DWORD; _para2:HSZ; _para3:LPCWSTR; _para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringW'; function LogonUserW(_para1:LPWSTR; _para2:LPWSTR; _para3:LPWSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserW'; function CreateProcessAsUserW(_para1:HANDLE; _para2:LPCWSTR; _para3:LPWSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCWSTR; @@ -493,7 +493,10 @@ end; { $Log$ - Revision 1.2 2000-07-13 11:34:03 michael + Revision 1.3 2000-10-11 16:05:56 peter + * stdcall for callbacks (merged) + + Revision 1.2 2000/07/13 11:34:03 michael + removed logs }