Merge with unofficial 3.22 version compatible with fpc 2.6.4 and 2.7.1 i386 and x64 compilers by "Dmitri K dmiko@mail333.com (dmiko)" principal work
and "Thaddy de Koning thaddy@thaddy.com" (merge 3.22) KOL: * a LOT of declarations\fixes for x64\FPC support (by dmiko and Thaddy) + TList.SortEx - for custom sorting Items + TStrList.IndexOfName_NoCaseFast, TStrList.IndexOfName_Fast, TStrList.Values_NocaseFast[], TStrList.Values_Fast[] - faster than TStrList.IndexOfName\Values\etc.. + TStrList.Remove\RemoveByName - Removes first entry of a Value\LineName in the list + TStrList.IsEmpty - check list empty + TStrList.Add2\Insert2\Delete2\Items2[Idx, Col]\Swap2\IndexOf2\Count2\ColsCount - work with TStrList like with table[Idx, Col] + TStrListEx.SortEx - for custom sorting Items with Objects * SVN_BUG#1: TStrListEx.SortEx - breaks objects association fixed (thanks to tacituseu) * SVN_BUG#2: TControl.FreeCharFormatRec - fixed STATIC_RICHEDIT_DATA define (by tacituseu) * TControl.LVColInsert - return inserted col index + TControl.LVGetHeader - Gets the handle to the header control used by the list-view control + TControl.LVSubItemAtPos - Return index of subitem at the given position + TControl.LVIndexOfEx - Returns first list view item index with subitem ACol matching S + TControl.TVItemInsert - extended version of TVInsert: can set images and set ItemData * NewReadWriteFileStream - smaller code by use winapi flag ofOpenAlways instead FileExists function * TMenu.Destroy\RemoveSubMenu - fixed memory leak on destroy (by dotnet20) * CallDefFrameProc - fixed crash when use MDI - ASM: TStrList.AddStrings\LoadFromStream\MergeFromFile\SaveToFile - switched off because maybe can get crash (need tests) * PAS: TStrList.LoadFromStream\SaveToFile - fixed * TStrList.IndexOfName - small speedup * TStrList.IndexOfName_NoCase - this code "while (p^ <> #0) and (p^ <= ' ') do inc( p );" is deleted, because sometimes get deadlock (wtf code doing!?) * ASM: WndProcTreeView - fixed TV_DRAG_RBUTTON define + TFastStrListEx.NameDelimiter - like in TStrList + TFastStrListEx.SetValue - like in TStrList MCK: * updated to MCK v3.23 (with some fixes) * MCKAppExpert200x wizard - fixed unit name * TKOLListView.SetupLast - fixed crash + TKOLListView.OnLVCustomDraw - added event assign + TKOLMemo.Paint\WYSIWIGPaintImplemented - add visual style for memo in designer mode + !!!ALPHA VERSION!!!: ux visual style mode for some controls in designer mode (PaintType: ptWYSIWIG) (WinXP minimum req.) err.pas: * moved from addons to kolmck folder * fixed exception.message in IDE * source code formating common: * cleaning... * updated readmes * dpk packages replaced and renamed (KOLMCKXXXX.dpk) maybe forgot something... KOLAddons package will be updated later.. git-svn-id: https://svn.code.sf.net/p/kolmck/code@138 91bb2d04-0c0c-4d2d-88a5-bbb6f4c1fa07
This commit is contained in:
345
KOL_ASM.inc
345
KOL_ASM.inc
@@ -1,6 +1,6 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// KOL_ASM.inc (to inlude in KOL.pas)
|
// KOL_ASM.inc (to inlude in KOL.pas)
|
||||||
// v 3.17
|
// v 3.210
|
||||||
|
|
||||||
function MsgBox( const S: KOLString; Flags: DWORD ): DWORD;
|
function MsgBox( const S: KOLString; Flags: DWORD ): DWORD;
|
||||||
asm
|
asm
|
||||||
@@ -982,7 +982,7 @@ asm
|
|||||||
CALL TObj.Destroy
|
CALL TObj.Destroy
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TGraphicTool.ReleaseHandle: Integer;
|
function TGraphicTool.ReleaseHandle: THandle;
|
||||||
asm // //
|
asm // //
|
||||||
PUSH EAX
|
PUSH EAX
|
||||||
CALL Changed
|
CALL Changed
|
||||||
@@ -2800,6 +2800,7 @@ asm
|
|||||||
POP EBP
|
POP EBP
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFDEF fixed_asm}
|
||||||
function File2Str( Handle: THandle): AnsiString;
|
function File2Str( Handle: THandle): AnsiString;
|
||||||
asm
|
asm
|
||||||
PUSH EDX
|
PUSH EDX
|
||||||
@@ -2864,6 +2865,7 @@ asm
|
|||||||
CALL System.@FreeMem
|
CALL System.@FreeMem
|
||||||
@@fin:
|
@@fin:
|
||||||
end;
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function FileWrite( Handle: THandle; const Buffer; Count: DWord): DWord;
|
function FileWrite( Handle: THandle; const Buffer; Count: DWord): DWord;
|
||||||
asm
|
asm
|
||||||
@@ -3007,7 +3009,11 @@ asm
|
|||||||
CALL Clear
|
CALL Clear
|
||||||
LEA EAX, [EBX].FPath
|
LEA EAX, [EBX].FPath
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@@ -3125,15 +3131,23 @@ asm //cmd //opd
|
|||||||
PUSH EDX
|
PUSH EDX
|
||||||
LEA EAX, [EAX].fSection
|
LEA EAX, [EAX].fSection
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
POP EAX
|
POP EAX
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
POP EAX
|
POP EAX
|
||||||
CALL TObj.Destroy
|
CALL TObj.Destroy
|
||||||
@@ -3463,7 +3477,7 @@ asm
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProc_DrawItem( Sender: PControl; var Msg: TMsg; var Rslt: Integer )
|
function WndProc_DrawItem( Sender: PControl; var Msg: TMsg; var Rslt: LResult )
|
||||||
: Boolean;
|
: Boolean;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
CMP word ptr [EDX].TMsg.message, WM_DRAWITEM
|
CMP word ptr [EDX].TMsg.message, WM_DRAWITEM
|
||||||
@@ -3847,7 +3861,7 @@ asm
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcDoEraseBkgnd( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcDoEraseBkgnd( Self_: PControl; var Msg: TMsg; var Rslt: LResult ): Boolean;
|
||||||
asm // //
|
asm // //
|
||||||
CMP word ptr [EDX].TMsg.message, WM_ERASEBKGND
|
CMP word ptr [EDX].TMsg.message, WM_ERASEBKGND
|
||||||
JNE @@ret_false
|
JNE @@ret_false
|
||||||
@@ -3903,7 +3917,7 @@ asm // //
|
|||||||
XOR EAX, EAX
|
XOR EAX, EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcSplitter( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcSplitter( Self_: PControl; var Msg: TMsg; var Rslt: LResult ): Boolean;
|
||||||
asm
|
asm
|
||||||
CMP word ptr [EDX].TMsg.message, WM_NCHITTEST
|
CMP word ptr [EDX].TMsg.message, WM_NCHITTEST
|
||||||
JNE @@noWM_NCHITTEST
|
JNE @@noWM_NCHITTEST
|
||||||
@@ -4399,9 +4413,14 @@ asm
|
|||||||
AND DL, $FE
|
AND DL, $FE
|
||||||
@@3: MOV [EBX].TControl.fLookTabKeys, DL
|
@@3: MOV [EBX].TControl.fLookTabKeys, DL
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
|
TEST EAX, 1 shl eoReadonly //dmiko
|
||||||
|
JNZ @@4 //
|
||||||
|
TEST EAX, 1 shl eoNumber //
|
||||||
|
JNZ @@4 //
|
||||||
MOV EAX, EBX
|
MOV EAX, EBX
|
||||||
MOV EDX, offset[WndProcUnicodeChars]
|
MOV EDX, offset[WndProcUnicodeChars]
|
||||||
CALL TControl.AttachProc
|
CALL TControl.AttachProc
|
||||||
|
@@4:
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
XCHG EAX, EBX
|
XCHG EAX, EBX
|
||||||
POP EBX
|
POP EBX
|
||||||
@@ -4524,7 +4543,7 @@ asm
|
|||||||
POP EAX
|
POP EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcParentResize( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcParentResize( Self_: PControl; var Msg: TMsg; var Rslt: LResult ): Boolean;
|
||||||
asm
|
asm
|
||||||
CMP word ptr [EDX].TMsg.message, CM_SIZE
|
CMP word ptr [EDX].TMsg.message, CM_SIZE
|
||||||
JNZ @@exit
|
JNZ @@exit
|
||||||
@@ -4604,7 +4623,7 @@ asm
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// by Galkov, Jun-2009
|
// by Galkov, Jun-2009
|
||||||
function WndProcNotify( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcNotify( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm
|
asm
|
||||||
CMP word ptr [EDX].TMsg.message, WM_NOTIFY
|
CMP word ptr [EDX].TMsg.message, WM_NOTIFY
|
||||||
JNE @@ret_false
|
JNE @@ret_false
|
||||||
@@ -4637,7 +4656,7 @@ asm
|
|||||||
XOR EAX, EAX
|
XOR EAX, EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcCommonNotify( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcCommonNotify( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm
|
asm
|
||||||
CMP word ptr [EDX].TMsg.message, WM_NOTIFY
|
CMP word ptr [EDX].TMsg.message, WM_NOTIFY
|
||||||
JNE @@ret_false
|
JNE @@ret_false
|
||||||
@@ -4935,7 +4954,7 @@ asm //cmd //opd
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcTabControl( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcTabControl( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
{$IFDEF OLD_ALIGN}
|
{$IFDEF OLD_ALIGN}
|
||||||
PUSH EBP
|
PUSH EBP
|
||||||
@@ -5662,9 +5681,13 @@ asm
|
|||||||
|
|
||||||
LEA EAX, [EBX].fCaption
|
LEA EAX, [EBX].fCaption
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
XCHG EAX, EBX
|
XCHG EAX, EBX
|
||||||
CALL TObj.Destroy
|
CALL TObj.Destroy
|
||||||
@@ -5728,7 +5751,7 @@ asm
|
|||||||
JNZ TControl.GetWindowHandle
|
JNZ TControl.GetWindowHandle
|
||||||
end;}
|
end;}
|
||||||
|
|
||||||
function WndProcMouse(Self_: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
|
function WndProcMouse(Self_: PControl; var Msg: TMsg; var Rslt: LRESULT): Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
@@ -5823,7 +5846,7 @@ end;
|
|||||||
{$IFnDEF USE_GRAPHCTLS}
|
{$IFnDEF USE_GRAPHCTLS}
|
||||||
{$IFnDEF NEW_MODAL}
|
{$IFnDEF NEW_MODAL}
|
||||||
{$IFnDEF USE_MDI}
|
{$IFnDEF USE_MDI}
|
||||||
function TControl.WndProc( var Msg: TMsg ): Integer;
|
function TControl.WndProc( var Msg: TMsg ): LRESULT;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
@@ -6402,9 +6425,13 @@ asm
|
|||||||
XCHG EBX, EAX
|
XCHG EBX, EAX
|
||||||
LEA EAX, [EBX].fCaption
|
LEA EAX, [EBX].fCaption
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrAsg
|
{$IFDEF UStr_}
|
||||||
|
CALL System.@UStrAsg
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrAsg
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrAsg
|
CALL System.@LStrAsg
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
MOV ECX, [EBX].fHandle
|
MOV ECX, [EBX].fHandle
|
||||||
@@ -6997,7 +7024,7 @@ asm
|
|||||||
{$I CustomAppIconRsrcName_ASM.inc} // create such file with DB 'your icon rsrc name' / DD youriconnumber
|
{$I CustomAppIconRsrcName_ASM.inc} // create such file with DB 'your icon rsrc name' / DD youriconnumber
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
DB 'M',0,'A',0,'I',0,'N',0,'I',0,'C',0,'O',0,'N',0,0
|
DB 'M',0,'A',0,'I',0,'N',0,'I',0,'C',0,'O',0,'N',0,0,0 //dmiko
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
DB 'MAINICON'
|
DB 'MAINICON'
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@@ -7018,7 +7045,7 @@ asm
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TControl.CallDefWndProc(var Msg: TMsg): Integer;
|
function TControl.CallDefWndProc(var Msg: TMsg): LRESULT;
|
||||||
asm
|
asm
|
||||||
PUSH [EDX].TMsg.lParam
|
PUSH [EDX].TMsg.lParam
|
||||||
PUSH [EDX].TMsg.wParam
|
PUSH [EDX].TMsg.wParam
|
||||||
@@ -7586,7 +7613,7 @@ asm
|
|||||||
JZ @@loo
|
JZ @@loo
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcForm(Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcForm(Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
const szPaintStruct = sizeof(TPaintStruct);
|
const szPaintStruct = sizeof(TPaintStruct);
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
{$IFDEF ENDSESSION_HALT}
|
{$IFDEF ENDSESSION_HALT}
|
||||||
@@ -7818,7 +7845,7 @@ asm
|
|||||||
POP EAX
|
POP EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcCtrl( Self_: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
|
function WndProcCtrl( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT): Boolean;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
XCHG EBX, EAX
|
XCHG EBX, EAX
|
||||||
@@ -9652,9 +9679,13 @@ asm
|
|||||||
CALL TObj.RefDec
|
CALL TObj.RefDec
|
||||||
@@fin: LEA EAX, [EBX].FTooltip
|
@@fin: LEA EAX, [EBX].FTooltip
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
XCHG EAX, EBX
|
XCHG EAX, EBX
|
||||||
CALL TObj.Destroy
|
CALL TObj.Destroy
|
||||||
@@ -9668,26 +9699,39 @@ asm
|
|||||||
JE @@exit
|
JE @@exit
|
||||||
MOV ECX, [EAX].fIcon
|
MOV ECX, [EAX].fIcon
|
||||||
JECXZ @@exit
|
JECXZ @@exit
|
||||||
|
|
||||||
|
CMP [EAX].FWnd, 0
|
||||||
|
JNZ @@ok_setvalue
|
||||||
|
|
||||||
|
MOV ECX, [EAX].FControl
|
||||||
|
JECXZ @@exit
|
||||||
|
|
||||||
PUSH EDX
|
PUSH EDX
|
||||||
PUSH EAX
|
PUSH EAX
|
||||||
MOV ECX, [EAX].FWnd
|
|
||||||
INC ECX
|
|
||||||
LOOP @@1
|
|
||||||
MOV ECX, [EAX].fControl
|
|
||||||
XOR EAX, EAX
|
|
||||||
JECXZ @@1
|
|
||||||
XCHG EAX, ECX
|
XCHG EAX, ECX
|
||||||
CALL TControl.GetWindowHandle
|
CALL TControl.GetWindowHandle
|
||||||
@@1:
|
TEST EAX, EAX
|
||||||
POP ECX
|
POP EAX
|
||||||
POP EDX
|
POP EDX
|
||||||
XCHG EAX, ECX
|
JZ @@exit
|
||||||
JECXZ @@exit
|
|
||||||
MOV [EAX].fActive, DL
|
@@ok_setvalue:
|
||||||
MOVZX EDX, DL
|
MOVZX EDX, DL
|
||||||
XOR DL, 1
|
XOR DL, 1
|
||||||
ADD EDX, EDX
|
SHL DL, 1
|
||||||
CALL SetTrayIcon
|
PUSHFD
|
||||||
|
PUSH EAX
|
||||||
|
CALL SetTrayIcon
|
||||||
|
POP EDX
|
||||||
|
POPFD
|
||||||
|
JZ @@rslt_FActive
|
||||||
|
|
||||||
|
AND AL, 1
|
||||||
|
XOR AL, 1
|
||||||
|
AND AL, byte ptr [EDX].FActive
|
||||||
|
|
||||||
|
@@rslt_FActive:
|
||||||
|
MOV byte ptr [EDX].FActive, AL
|
||||||
@@exit:
|
@@exit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -9707,7 +9751,7 @@ asm
|
|||||||
@@exit:
|
@@exit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcJustOne( Control: PControl; var Msg: TMsg; var Rslt: Integer ) : Boolean;
|
function WndProcJustOne( Control: PControl; var Msg: TMsg; var Rslt: LRESULT ) : Boolean;
|
||||||
asm
|
asm
|
||||||
MOV ECX, [EDX].TMsg.message
|
MOV ECX, [EDX].TMsg.message
|
||||||
SUB ECX, WM_CLOSE
|
SUB ECX, WM_CLOSE
|
||||||
@@ -9746,20 +9790,21 @@ asm
|
|||||||
POP EAX
|
POP EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TStrList.AddStrings(Strings: PStrList);
|
//dufa
|
||||||
asm
|
//procedure TStrList.AddStrings(Strings: PStrList);
|
||||||
PUSH EAX
|
//asm
|
||||||
XCHG EAX, EDX
|
// PUSH EAX
|
||||||
PUSH 0
|
// XCHG EAX, EDX
|
||||||
MOV EDX, ESP
|
// PUSH 0
|
||||||
CALL GetTextStr
|
// MOV EDX, ESP
|
||||||
POP EDX
|
// CALL GetTextStr
|
||||||
POP EAX
|
// POP EDX
|
||||||
MOV CL, 1
|
// POP EAX
|
||||||
PUSH EDX
|
// MOV CL, 1
|
||||||
CALL SetText
|
// PUSH EDX
|
||||||
CALL RemoveStr
|
// CALL SetText
|
||||||
end;
|
// CALL RemoveStr
|
||||||
|
//end;
|
||||||
|
|
||||||
procedure TStrList.Assign(Strings: PStrList);
|
procedure TStrList.Assign(Strings: PStrList);
|
||||||
asm
|
asm
|
||||||
@@ -9941,6 +9986,7 @@ asm
|
|||||||
@@exit:
|
@@exit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{// bugged.dufa
|
||||||
procedure TStrList.MergeFromFile(const FileName: KOLString);
|
procedure TStrList.MergeFromFile(const FileName: KOLString);
|
||||||
asm
|
asm
|
||||||
PUSH EAX
|
PUSH EAX
|
||||||
@@ -9953,7 +9999,7 @@ asm
|
|||||||
CALL LoadFromStream
|
CALL LoadFromStream
|
||||||
POP EAX
|
POP EAX
|
||||||
JMP TObj.RefDec
|
JMP TObj.RefDec
|
||||||
end;
|
end;}
|
||||||
|
|
||||||
procedure TStrList.SaveToStream(Stream: PStream);
|
procedure TStrList.SaveToStream(Stream: PStream);
|
||||||
asm
|
asm
|
||||||
@@ -10739,7 +10785,7 @@ asm
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TControl.Perform(msgcode: DWORD; wParam, lParam: Integer): Integer; stdcall;
|
function TControl.Perform(msgcode: DWORD; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
||||||
asm
|
asm
|
||||||
PUSH [lParam]
|
PUSH [lParam]
|
||||||
PUSH [wParam]
|
PUSH [wParam]
|
||||||
@@ -10754,7 +10800,7 @@ asm
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TControl.Postmsg(msgcode: DWORD; wParam, lParam: Integer): Boolean; stdcall;
|
function TControl.Postmsg(msgcode: DWORD; wParam: WPARAM; lParam: LPARAM): Boolean; stdcall;
|
||||||
asm
|
asm
|
||||||
PUSH [lParam]
|
PUSH [lParam]
|
||||||
PUSH [wParam]
|
PUSH [wParam]
|
||||||
@@ -10810,9 +10856,13 @@ asm //cmd //opd
|
|||||||
LEA EAX, [EAX].FTitle
|
LEA EAX, [EAX].FTitle
|
||||||
@@loo:
|
@@loo:
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
POP EAX
|
POP EAX
|
||||||
TEST EAX, EAX
|
TEST EAX, EAX
|
||||||
@@ -10832,9 +10882,13 @@ asm //cmd //opd
|
|||||||
LEA EAX, [EAX].FStatusText
|
LEA EAX, [EAX].FStatusText
|
||||||
@@loo:
|
@@loo:
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrClr
|
{$IFDEF USTR_}
|
||||||
|
CALL System.@UStrClr
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrClr
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@LStrClr
|
CALL System.@LStrClr
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
POP EAX
|
POP EAX
|
||||||
TEST EAX, EAX
|
TEST EAX, EAX
|
||||||
@@ -11026,11 +11080,15 @@ asm
|
|||||||
MOV EDX, EAX
|
MOV EDX, EAX
|
||||||
MOV EAX, ESP
|
MOV EAX, ESP
|
||||||
{$IFDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@WStrFromPWChar
|
{$IFDEF UStr_}
|
||||||
|
CALL System.@UStrFromPWChar
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF _D2009orHigher}
|
CALL System.@WStrFromPWChar
|
||||||
XOR ECX, ECX // TODO: safe?
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$ELSE}
|
||||||
|
{$IFDEF _D2009orHigher}
|
||||||
|
XOR ECX, ECX // TODO: safe?
|
||||||
|
{$ENDIF}
|
||||||
CALL System.@LStrFromPChar
|
CALL System.@LStrFromPChar
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
@@ -11235,7 +11293,7 @@ asm
|
|||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
function TimerProc( Wnd : HWnd; Msg : Integer; T : PTimer; CurrentTime : DWord ): Integer;
|
procedure TimerProc( Wnd : HWnd; Msg : DWORD; T : PTimer; CurrentTime : DWord );
|
||||||
stdcall;
|
stdcall;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
{$IFDEF STOPTIMER_AFTER_APPLETTERMINATED}
|
{$IFDEF STOPTIMER_AFTER_APPLETTERMINATED}
|
||||||
@@ -12025,6 +12083,157 @@ asm
|
|||||||
CALL TObj.RefDec
|
CALL TObj.RefDec
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function MoveTetrades(Mem, From:PByte; Size: Integer;incFrom,
|
||||||
|
xx: Integer): Integer;
|
||||||
|
asm
|
||||||
|
PUSH EBX
|
||||||
|
MOV EBX, ECX
|
||||||
|
INC EBX
|
||||||
|
SHR EBX, 1
|
||||||
|
TEST BL, 1
|
||||||
|
JZ @@0
|
||||||
|
INC EBX
|
||||||
|
@@0:
|
||||||
|
PUSH EBX // Result := (Size+1)shr 1; if (Result and 1) <> 0 then inc(Result);
|
||||||
|
XOR EBX, EBX // BH = ff = 0
|
||||||
|
@@1:
|
||||||
|
MOV BL, [EDX]
|
||||||
|
TEST BH, 1
|
||||||
|
JZ @@2
|
||||||
|
ADD EDX, [incFrom] //[EBP+12] // inc(From, incFrom)
|
||||||
|
AND BL, $0F
|
||||||
|
JMP @@3
|
||||||
|
@@2: SHR BL, 4
|
||||||
|
@@3:
|
||||||
|
TEST BYTE PTR [xx], 1 //[EBP+8], 1
|
||||||
|
JZ @@4
|
||||||
|
{$IFNDEF SMALLER_CODE}
|
||||||
|
AND byte ptr [EAX], $F0
|
||||||
|
{$ENDIF}
|
||||||
|
OR byte ptr [EAX], BL
|
||||||
|
INC EAX
|
||||||
|
JMP @@5
|
||||||
|
@@4: SHL BL, 4
|
||||||
|
MOV byte ptr [EAX], BL
|
||||||
|
@@5:
|
||||||
|
INC dword ptr [xx] //[EBP+8]
|
||||||
|
INC BH
|
||||||
|
LOOP @@1
|
||||||
|
|
||||||
|
POP EAX
|
||||||
|
POP EBX
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MoveRLEdata(Mem, From:PByte;Size: Integer;incFrom,
|
||||||
|
xx: Integer): Integer;
|
||||||
|
asm
|
||||||
|
PUSH EBX
|
||||||
|
MOV EBX, ECX
|
||||||
|
INC EBX
|
||||||
|
AND BL, $FE
|
||||||
|
PUSH EBX
|
||||||
|
@@1:
|
||||||
|
MOV BL, byte ptr [EDX]
|
||||||
|
MOV byte ptr [EAX], BL
|
||||||
|
INC EAX
|
||||||
|
ADD EDX, [incFrom]
|
||||||
|
LOOP @@1
|
||||||
|
|
||||||
|
POP EAX
|
||||||
|
POP EBX
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure DecodeRLE(Bmp:PBitmap;Data:Pointer; MaxSize: DWORD;
|
||||||
|
MoveDataFun: TMoveData; shr_x: Integer);
|
||||||
|
asm
|
||||||
|
PUSHAD
|
||||||
|
MOV ESI, EAX
|
||||||
|
XCHG EDI, EDX
|
||||||
|
PUSH EDI // [ESP+12] = Data
|
||||||
|
PUSH ECX // [ESP+8] = MaxSize
|
||||||
|
CALL TBitmap.GetScanLineSize
|
||||||
|
PUSH 0 // [ESP+4] = X
|
||||||
|
PUSH 0 // [ESP+0] = Y
|
||||||
|
DEC EDI
|
||||||
|
@@1:
|
||||||
|
INC EDI
|
||||||
|
MOV EAX, [ESI].TBitmap.FHeight
|
||||||
|
CMP dword ptr [ESP], EAX
|
||||||
|
JGE @@end_while
|
||||||
|
MOV EAX, EDI
|
||||||
|
SUB EAX, dword ptr [ESP+12]
|
||||||
|
CMP EAX, dword ptr [ESP+8]
|
||||||
|
JGE @@end_while
|
||||||
|
|
||||||
|
MOV BL, byte ptr [EDI]
|
||||||
|
TEST BL, BL
|
||||||
|
JNZ @@nozero
|
||||||
|
INC EDI
|
||||||
|
MOV BL, byte ptr [EDI]
|
||||||
|
MOVZX ECX, BL
|
||||||
|
INC ECX
|
||||||
|
LOOP @@z1
|
||||||
|
INC dword ptr [ESP] // inc(Y);
|
||||||
|
MOV dword ptr [ESP+4], ECX // X := 0;
|
||||||
|
JMP @@1
|
||||||
|
@@z1:
|
||||||
|
LOOP @@z2
|
||||||
|
JMP @@end_while
|
||||||
|
@@z2:
|
||||||
|
LOOP @@z3
|
||||||
|
INC EDI
|
||||||
|
MOVZX EAX, byte ptr [EDI]
|
||||||
|
ADD dword ptr [ESP+4], EAX
|
||||||
|
INC EDI
|
||||||
|
MOVZX EAX, byte ptr [EDI]
|
||||||
|
ADD dword ptr [ESP], EAX
|
||||||
|
JMP @@1
|
||||||
|
@@z3:
|
||||||
|
MOV BH, 1
|
||||||
|
CALL @@call_move_data
|
||||||
|
ADD EDI, EAX
|
||||||
|
DEC EDI
|
||||||
|
JMP @@1
|
||||||
|
@@nozero:
|
||||||
|
MOV BH, 0
|
||||||
|
CALL @@call_move_data
|
||||||
|
JMP @@1
|
||||||
|
|
||||||
|
@@call_move_data:
|
||||||
|
INC EDI
|
||||||
|
XOR EAX, EAX
|
||||||
|
MOVZX EDX, BL // Z
|
||||||
|
MOV ECX, dword ptr [ESP+4+4] //X
|
||||||
|
ADD EDX, ECX
|
||||||
|
CMP EDX, [ESI].TBitmap.FWidth
|
||||||
|
JG @@no_move
|
||||||
|
MOVZX EAX, BH
|
||||||
|
PUSH EAX //... , 1 or 0, x)
|
||||||
|
PUSH ECX //... , x)
|
||||||
|
MOV EAX, dword ptr [ESI].TBitmap.fScanLineSize
|
||||||
|
MOV EDX, dword ptr [ESP+0+4+8] // Y
|
||||||
|
MUL EDX
|
||||||
|
ADD EAX, dword ptr [ESI].TBitmap.fDIBBits
|
||||||
|
MOV EDX, dword ptr [ESP+4+4+8] // X
|
||||||
|
MOV CL, byte ptr[shr_x]
|
||||||
|
SHR EDX, CL
|
||||||
|
ADD EAX, EDX
|
||||||
|
MOV EDX, EDI
|
||||||
|
MOVZX ECX, BL
|
||||||
|
CALL dword ptr [MoveDataFun]
|
||||||
|
MOVZX ECX, BL
|
||||||
|
ADD dword ptr [ESP+4+4], ECX // inc(x, z)
|
||||||
|
@@no_move:
|
||||||
|
RET
|
||||||
|
|
||||||
|
@@end_while:
|
||||||
|
POP EDX
|
||||||
|
POP EDX
|
||||||
|
POP ECX
|
||||||
|
POP EDI
|
||||||
|
POPAD
|
||||||
|
end;
|
||||||
|
|
||||||
function TBitmap.ReleaseHandle: HBitmap;
|
function TBitmap.ReleaseHandle: HBitmap;
|
||||||
asm
|
asm
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
@@ -14321,7 +14530,7 @@ asm //cmd //opd
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcUpdate( Sender: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcUpdate( Sender: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm //cmd //opd
|
asm //cmd //opd
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
XCHG EBX, EAX
|
XCHG EBX, EAX
|
||||||
@@ -14582,7 +14791,7 @@ asm
|
|||||||
end;
|
end;
|
||||||
{$ENDIF nASM_VERSION}
|
{$ENDIF nASM_VERSION}
|
||||||
|
|
||||||
function WndProcMouseEnterLeave( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcMouseEnterLeave( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
XCHG ESI, EAX
|
XCHG ESI, EAX
|
||||||
@@ -14906,7 +15115,7 @@ asm
|
|||||||
POP EAX
|
POP EAX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TControl.FormGetIntParam: Integer;
|
function TControl.FormGetIntParam: PtrInt;
|
||||||
asm
|
asm
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
PUSH EDI
|
PUSH EDI
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// KOL_ASM_NOUNICODE.inc (to inlude in KOL.pas)
|
// KOL_ASM_NOUNICODE.inc (to inlude in KOL.pas)
|
||||||
// v 3.141592
|
// v 3.210
|
||||||
|
|
||||||
// this part of code is for case when ASM_VERSION is enabled and the symbol
|
// this part of code is for case when ASM_VERSION is enabled and the symbol
|
||||||
// UNICODE_CTRLS is NOT defined (functions, procedures and methods which work
|
// UNICODE_CTRLS is NOT defined (functions, procedures and methods which work
|
||||||
@@ -220,7 +220,7 @@ asm
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Int2Hex( Value : DWord; Digits : Integer ) : KOLString;
|
function Int2Hex( Value : PtrUInt; Digits : Integer ) : KOLString;
|
||||||
asm // EAX = Value
|
asm // EAX = Value
|
||||||
// EDX = Digits
|
// EDX = Digits
|
||||||
// ECX = @Result
|
// ECX = @Result
|
||||||
@@ -257,7 +257,7 @@ asm // EAX = Value
|
|||||||
ADD ESP, 10h
|
ADD ESP, 10h
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Hex2Int( const Value : AnsiString) : Integer;
|
function Hex2Int( const Value : AnsiString) : PtrInt;
|
||||||
asm
|
asm
|
||||||
CALL EAX2PChar
|
CALL EAX2PChar
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
@@ -293,7 +293,7 @@ asm
|
|||||||
POP ESI
|
POP ESI
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Int2Str( Value : Integer ) : KOLString;
|
function Int2Str( Value : PtrInt ) : KOLString;
|
||||||
asm
|
asm
|
||||||
XOR ECX, ECX
|
XOR ECX, ECX
|
||||||
PUSH ECX
|
PUSH ECX
|
||||||
@@ -2259,7 +2259,7 @@ asm //cmd //opd
|
|||||||
XOR EAX, EAX
|
XOR EAX, EAX
|
||||||
end;
|
end;
|
||||||
{$ELSE NEW VERSION OF WndProcTreeView}
|
{$ELSE NEW VERSION OF WndProcTreeView}
|
||||||
function WndProcTreeView( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcTreeView( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH ESI
|
PUSH ESI
|
||||||
PUSH EDI
|
PUSH EDI
|
||||||
@@ -2307,8 +2307,10 @@ asm
|
|||||||
RET
|
RET
|
||||||
@@chk_TVN_BEGINDRAG: ///////////////////////////////////////////////////////////
|
@@chk_TVN_BEGINDRAG: ///////////////////////////////////////////////////////////
|
||||||
CMP WORD PTR [EDX].TNMTreeView.hdr.code, TVN_BEGINDRAG
|
CMP WORD PTR [EDX].TNMTreeView.hdr.code, TVN_BEGINDRAG
|
||||||
|
{$IFDEF TV_DRAG_RBUTTON} //dufa
|
||||||
JE @@beginDrag
|
JE @@beginDrag
|
||||||
CMP WORD PTR [EDX].TNMTreeView.hdr.code, TVN_BEGINRDRAG
|
CMP WORD PTR [EDX].TNMTreeView.hdr.code, TVN_BEGINRDRAG
|
||||||
|
{$ENDIF} //dufa
|
||||||
JNE @@chk_TVNBEGINLABELEDIT
|
JNE @@chk_TVNBEGINLABELEDIT
|
||||||
@@beginDrag:
|
@@beginDrag:
|
||||||
PUSH [EDX].TNMTreeView.itemNew.hItem
|
PUSH [EDX].TNMTreeView.itemNew.hItem
|
||||||
@@ -2636,7 +2638,7 @@ asm //cmd //opd
|
|||||||
POP EDI
|
POP EDI
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcDateTimePickerNotify( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
|
function WndProcDateTimePickerNotify( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT ): Boolean;
|
||||||
type
|
type
|
||||||
TStrStr = record
|
TStrStr = record
|
||||||
param_Date: TDateTime;
|
param_Date: TDateTime;
|
||||||
@@ -3037,7 +3039,7 @@ asm
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function WndProcKeybd( Self_: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
|
function WndProcKeybd( Self_: PControl; var Msg: TMsg; var Rslt: LRESULT): Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
MOV ECX, [EDX].TMsg.message
|
MOV ECX, [EDX].TMsg.message
|
||||||
@@ -3129,10 +3131,14 @@ asm
|
|||||||
@@getFCaption:
|
@@getFCaption:
|
||||||
MOV EDX, [EBX].fCaption
|
MOV EDX, [EBX].fCaption
|
||||||
XCHG EAX, EDI
|
XCHG EAX, EDI
|
||||||
{$IFNDEF UNICODE_CTRLS}
|
{$IFDEF UNICODE_CTRLS}
|
||||||
CALL System.@LStrAsg
|
{$IFDEF UStr_}
|
||||||
|
CALL System.@UStrFromPChar
|
||||||
|
{$ELSE}
|
||||||
|
CALL System.@WStrFromPChar
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
CALL System.@WStrFromPChar
|
CALL System.@LStrAsg
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@@exit:
|
@@exit:
|
||||||
POP EDI
|
POP EDI
|
||||||
@@ -3475,7 +3481,7 @@ asm
|
|||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTrayIcon.SetTrayIcon(const Value: DWORD);
|
function TTrayIcon.SetTrayIcon(const Value: DWORD): Boolean;
|
||||||
const sz_tid = sizeof( TNotifyIconData );
|
const sz_tid = sizeof( TNotifyIconData );
|
||||||
asm
|
asm
|
||||||
CMP [AppletTerminated], 0
|
CMP [AppletTerminated], 0
|
||||||
@@ -3523,7 +3529,7 @@ asm
|
|||||||
@@exit:
|
@@exit:
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function WndProcJustOneNotify( Control: PControl; var Msg: TMsg; var Rslt: Integer ) : Boolean;
|
function WndProcJustOneNotify( Control: PControl; var Msg: TMsg; var Rslt: LRESULT ) : Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH EBP
|
PUSH EBP
|
||||||
MOV EBP, ESP
|
MOV EBP, ESP
|
||||||
@@ -3734,6 +3740,7 @@ asm
|
|||||||
@@exit: POP EDX
|
@@exit: POP EDX
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ maybebugged.dufa
|
||||||
function TStrList.SaveToFile(const FileName: Ansistring): Boolean;
|
function TStrList.SaveToFile(const FileName: Ansistring): Boolean;
|
||||||
asm
|
asm
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
@@ -3767,7 +3774,7 @@ asm
|
|||||||
@@exit:
|
@@exit:
|
||||||
POP EDX
|
POP EDX
|
||||||
POP EBX
|
POP EBX
|
||||||
end;
|
end;}
|
||||||
|
|
||||||
procedure TControl.SetStatusText(Index: Integer; const Value: KOLString);
|
procedure TControl.SetStatusText(Index: Integer; const Value: KOLString);
|
||||||
asm
|
asm
|
||||||
@@ -4319,7 +4326,7 @@ asm
|
|||||||
ADD ESP, 1028
|
ADD ESP, 1028
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBitmap.LoadFromResourceName(Inst: DWORD; ResName: PAnsiChar);
|
procedure TBitmap.LoadFromResourceName(Inst: HINST; ResName: PAnsiChar);
|
||||||
asm
|
asm
|
||||||
PUSH EBX
|
PUSH EBX
|
||||||
MOV EBX, EAX
|
MOV EBX, EAX
|
||||||
|
164
KOL_ansi.inc
164
KOL_ansi.inc
@@ -155,7 +155,7 @@ type
|
|||||||
NEWTEXTMETRIC = NEWTEXTMETRICA;
|
NEWTEXTMETRIC = NEWTEXTMETRICA;
|
||||||
PNewTextMetricExA = ^TNewTextMetricExA;
|
PNewTextMetricExA = ^TNewTextMetricExA;
|
||||||
// tagNEWTEXTMETRICEXA}
|
// tagNEWTEXTMETRICEXA}
|
||||||
tagNEWTEXTMETRICEXA = packed record
|
tagNEWTEXTMETRICEXA = {packed} record
|
||||||
ntmTm: TNewTextMetricA;
|
ntmTm: TNewTextMetricA;
|
||||||
ntmFontSig: TFontSignature;
|
ntmFontSig: TFontSignature;
|
||||||
end;
|
end;
|
||||||
@@ -164,7 +164,7 @@ type
|
|||||||
NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA;
|
NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA;
|
||||||
PNewTextMetricExW = ^TNewTextMetricExW;
|
PNewTextMetricExW = ^TNewTextMetricExW;
|
||||||
// tagNEWTEXTMETRICEXW}
|
// tagNEWTEXTMETRICEXW}
|
||||||
tagNEWTEXTMETRICEXW = packed record
|
tagNEWTEXTMETRICEXW = {packed} record
|
||||||
ntmTm: TNewTextMetricW;
|
ntmTm: TNewTextMetricW;
|
||||||
ntmFontSig: TFontSignature;
|
ntmFontSig: TFontSignature;
|
||||||
end;
|
end;
|
||||||
@@ -177,13 +177,13 @@ type
|
|||||||
PEnumLogFontW = ^TEnumLogFontW;
|
PEnumLogFontW = ^TEnumLogFontW;
|
||||||
PEnumLogFont = PEnumLogFontA;
|
PEnumLogFont = PEnumLogFontA;
|
||||||
// tagENUMLOGFONTA}
|
// tagENUMLOGFONTA}
|
||||||
tagENUMLOGFONTA = packed record
|
tagENUMLOGFONTA = {packed} record
|
||||||
elfLogFont: TLogFontA;
|
elfLogFont: TLogFontA;
|
||||||
elfFullName: array[0..LF_FULLFACESIZE - 1] of AnsiChar;
|
elfFullName: array[0..LF_FULLFACESIZE - 1] of AnsiChar;
|
||||||
elfStyle: array[0..LF_FACESIZE - 1] of AnsiChar;
|
elfStyle: array[0..LF_FACESIZE - 1] of AnsiChar;
|
||||||
end;
|
end;
|
||||||
// tagENUMLOGFONTW}
|
// tagENUMLOGFONTW}
|
||||||
tagENUMLOGFONTW = packed record
|
tagENUMLOGFONTW = {packed} record
|
||||||
elfLogFont: TLogFontW;
|
elfLogFont: TLogFontW;
|
||||||
elfFullName: array[0..LF_FULLFACESIZE - 1] of WideChar;
|
elfFullName: array[0..LF_FULLFACESIZE - 1] of WideChar;
|
||||||
elfStyle: array[0..LF_FACESIZE - 1] of WideChar;
|
elfStyle: array[0..LF_FACESIZE - 1] of WideChar;
|
||||||
@@ -203,14 +203,14 @@ type
|
|||||||
PEnumLogFontExW = ^TEnumLogFontExW;
|
PEnumLogFontExW = ^TEnumLogFontExW;
|
||||||
PEnumLogFontEx = PEnumLogFontExA;
|
PEnumLogFontEx = PEnumLogFontExA;
|
||||||
// tagENUMLOGFONTEXA}
|
// tagENUMLOGFONTEXA}
|
||||||
tagENUMLOGFONTEXA = packed record
|
tagENUMLOGFONTEXA = {packed} record
|
||||||
elfLogFont: TLogFontA;
|
elfLogFont: TLogFontA;
|
||||||
elfFullName: array[0..LF_FULLFACESIZE - 1] of AnsiChar;
|
elfFullName: array[0..LF_FULLFACESIZE - 1] of AnsiChar;
|
||||||
elfStyle: array[0..LF_FACESIZE - 1] of AnsiChar;
|
elfStyle: array[0..LF_FACESIZE - 1] of AnsiChar;
|
||||||
elfScript: array[0..LF_FACESIZE - 1] of AnsiChar;
|
elfScript: array[0..LF_FACESIZE - 1] of AnsiChar;
|
||||||
end;
|
end;
|
||||||
// tagENUMLOGFONTEXW}
|
// tagENUMLOGFONTEXW}
|
||||||
tagENUMLOGFONTEXW = packed record
|
tagENUMLOGFONTEXW = {packed} record
|
||||||
elfLogFont: TLogFontW;
|
elfLogFont: TLogFontW;
|
||||||
elfFullName: array[0..LF_FULLFACESIZE - 1] of WideChar;
|
elfFullName: array[0..LF_FULLFACESIZE - 1] of WideChar;
|
||||||
elfStyle: array[0..LF_FACESIZE - 1] of WideChar;
|
elfStyle: array[0..LF_FACESIZE - 1] of WideChar;
|
||||||
@@ -271,14 +271,14 @@ type
|
|||||||
PDisplayDeviceW = ^TDisplayDeviceW;
|
PDisplayDeviceW = ^TDisplayDeviceW;
|
||||||
PDisplayDevice = PDisplayDeviceA;
|
PDisplayDevice = PDisplayDeviceA;
|
||||||
// _DISPLAY_DEVICEA}
|
// _DISPLAY_DEVICEA}
|
||||||
_DISPLAY_DEVICEA = packed record
|
_DISPLAY_DEVICEA = {packed} record
|
||||||
cb: DWORD;
|
cb: DWORD;
|
||||||
DeviceName: array[0..31] of AnsiChar;
|
DeviceName: array[0..31] of AnsiChar;
|
||||||
DeviceString: array[0..127] of AnsiChar;
|
DeviceString: array[0..127] of AnsiChar;
|
||||||
StateFlags: DWORD;
|
StateFlags: DWORD;
|
||||||
end;
|
end;
|
||||||
// _DISPLAY_DEVICEW}
|
// _DISPLAY_DEVICEW}
|
||||||
_DISPLAY_DEVICEW = packed record
|
_DISPLAY_DEVICEW = {packed} record
|
||||||
cb: DWORD;
|
cb: DWORD;
|
||||||
DeviceName: array[0..31] of WideChar;
|
DeviceName: array[0..31] of WideChar;
|
||||||
DeviceString: array[0..127] of WideChar;
|
DeviceString: array[0..127] of WideChar;
|
||||||
@@ -377,7 +377,7 @@ type
|
|||||||
PPolyTextW = ^TPolyTextW;
|
PPolyTextW = ^TPolyTextW;
|
||||||
PPolyText = PPolyTextA;
|
PPolyText = PPolyTextA;
|
||||||
// tagPOLYTEXTA}
|
// tagPOLYTEXTA}
|
||||||
tagPOLYTEXTA = packed record
|
tagPOLYTEXTA = {packed} record
|
||||||
x: Integer;
|
x: Integer;
|
||||||
y: Integer;
|
y: Integer;
|
||||||
n: UINT;
|
n: UINT;
|
||||||
@@ -387,7 +387,7 @@ type
|
|||||||
pdx: PINT;
|
pdx: PINT;
|
||||||
end;
|
end;
|
||||||
// tagPOLYTEXTW}
|
// tagPOLYTEXTW}
|
||||||
tagPOLYTEXTW = packed record
|
tagPOLYTEXTW = {packed} record
|
||||||
x: Integer;
|
x: Integer;
|
||||||
y: Integer;
|
y: Integer;
|
||||||
n: UINT;
|
n: UINT;
|
||||||
@@ -411,7 +411,7 @@ type
|
|||||||
PGCPResultsW = ^TGCPResultsW;
|
PGCPResultsW = ^TGCPResultsW;
|
||||||
PGCPResults = PGCPResultsA;
|
PGCPResults = PGCPResultsA;
|
||||||
// tagGCP_RESULTSA}
|
// tagGCP_RESULTSA}
|
||||||
tagGCP_RESULTSA = packed record
|
tagGCP_RESULTSA = {packed} record
|
||||||
lStructSize: DWORD;
|
lStructSize: DWORD;
|
||||||
lpOutString: PAnsiChar;
|
lpOutString: PAnsiChar;
|
||||||
lpOrder: PUINT;
|
lpOrder: PUINT;
|
||||||
@@ -423,7 +423,7 @@ type
|
|||||||
nMaxFit: Integer;
|
nMaxFit: Integer;
|
||||||
end;
|
end;
|
||||||
// tagGCP_RESULTSW}
|
// tagGCP_RESULTSW}
|
||||||
tagGCP_RESULTSW = packed record
|
tagGCP_RESULTSW = {packed} record
|
||||||
lStructSize: DWORD;
|
lStructSize: DWORD;
|
||||||
lpOutString: PWideChar;
|
lpOutString: PWideChar;
|
||||||
lpOrder: PUINT;
|
lpOrder: PUINT;
|
||||||
@@ -450,7 +450,7 @@ const
|
|||||||
MM_MAX_NUMAXES = 16;
|
MM_MAX_NUMAXES = 16;
|
||||||
type
|
type
|
||||||
PAxisInfoA = ^TAxisInfoA;
|
PAxisInfoA = ^TAxisInfoA;
|
||||||
tagAXISINFOA = packed record
|
tagAXISINFOA = {packed} record
|
||||||
axMinValue: Longint;
|
axMinValue: Longint;
|
||||||
axMaxValue: Longint;
|
axMaxValue: Longint;
|
||||||
axAxisName: array[0..MM_MAX_AXES_NAMELEN-1] of AnsiChar;
|
axAxisName: array[0..MM_MAX_AXES_NAMELEN-1] of AnsiChar;
|
||||||
@@ -458,7 +458,7 @@ type
|
|||||||
TAxisInfoA = tagAXISINFOA;
|
TAxisInfoA = tagAXISINFOA;
|
||||||
PAxisInfoW = ^TAxisInfoW;
|
PAxisInfoW = ^TAxisInfoW;
|
||||||
// tagAXISINFOW}
|
// tagAXISINFOW}
|
||||||
tagAXISINFOW = packed record
|
tagAXISINFOW = {packed} record
|
||||||
axMinValue: Longint;
|
axMinValue: Longint;
|
||||||
axMaxValue: Longint;
|
axMaxValue: Longint;
|
||||||
axAxisName: array[0..MM_MAX_AXES_NAMELEN-1] of WideChar;
|
axAxisName: array[0..MM_MAX_AXES_NAMELEN-1] of WideChar;
|
||||||
@@ -467,7 +467,7 @@ type
|
|||||||
PAxisInfo = PAxisInfoA;
|
PAxisInfo = PAxisInfoA;
|
||||||
PAxesListA = ^TAxesListA;
|
PAxesListA = ^TAxesListA;
|
||||||
// tagAXESLISTA}
|
// tagAXESLISTA}
|
||||||
tagAXESLISTA = packed record
|
tagAXESLISTA = {packed} record
|
||||||
axlReserved: DWORD;
|
axlReserved: DWORD;
|
||||||
axlNumAxes: DWORD;
|
axlNumAxes: DWORD;
|
||||||
axlAxisInfo: array[0..MM_MAX_NUMAXES-1] of TAxisInfoA;
|
axlAxisInfo: array[0..MM_MAX_NUMAXES-1] of TAxisInfoA;
|
||||||
@@ -475,7 +475,7 @@ type
|
|||||||
TAxesListA = tagAXESLISTA;
|
TAxesListA = tagAXESLISTA;
|
||||||
PAxesListW = ^TAxesListW;
|
PAxesListW = ^TAxesListW;
|
||||||
// tagAXESLISTW}
|
// tagAXESLISTW}
|
||||||
tagAXESLISTW = packed record
|
tagAXESLISTW = {packed} record
|
||||||
axlReserved: DWORD;
|
axlReserved: DWORD;
|
||||||
axlNumAxes: DWORD;
|
axlNumAxes: DWORD;
|
||||||
axlAxisInfo: array[0..MM_MAX_NUMAXES-1] of TAxisInfoW;
|
axlAxisInfo: array[0..MM_MAX_NUMAXES-1] of TAxisInfoW;
|
||||||
@@ -484,20 +484,20 @@ type
|
|||||||
PAxesList = PAxesListA;
|
PAxesList = PAxesListA;
|
||||||
PEnumLogFontExDVA = ^TEnumLogFontExDVA;
|
PEnumLogFontExDVA = ^TEnumLogFontExDVA;
|
||||||
PDesignVector = ^TDesignVector;
|
PDesignVector = ^TDesignVector;
|
||||||
tagDESIGNVECTOR = packed record
|
tagDESIGNVECTOR = {packed} record
|
||||||
dvReserved: DWORD;
|
dvReserved: DWORD;
|
||||||
dvNumAxes: DWORD;
|
dvNumAxes: DWORD;
|
||||||
dvValues: array[0..MM_MAX_NUMAXES-1] of Longint;
|
dvValues: array[0..MM_MAX_NUMAXES-1] of Longint;
|
||||||
end;
|
end;
|
||||||
TDesignVector = tagDESIGNVECTOR;
|
TDesignVector = tagDESIGNVECTOR;
|
||||||
tagENUMLOGFONTEXDVA = packed record
|
tagENUMLOGFONTEXDVA = {packed} record
|
||||||
elfEnumLogfontEx: TEnumLogFontExA;
|
elfEnumLogfontEx: TEnumLogFontExA;
|
||||||
elfDesignVector: TDesignVector;
|
elfDesignVector: TDesignVector;
|
||||||
end;
|
end;
|
||||||
TEnumLogFontExDVA = tagENUMLOGFONTEXDVA;
|
TEnumLogFontExDVA = tagENUMLOGFONTEXDVA;
|
||||||
PEnumLogFontExDVW = ^TEnumLogFontExDVW;
|
PEnumLogFontExDVW = ^TEnumLogFontExDVW;
|
||||||
// tagENUMLOGFONTEXDVW}
|
// tagENUMLOGFONTEXDVW}
|
||||||
tagENUMLOGFONTEXDVW = packed record
|
tagENUMLOGFONTEXDVW = {packed} record
|
||||||
elfEnumLogfontEx: TEnumLogFontExW;
|
elfEnumLogfontEx: TEnumLogFontExW;
|
||||||
elfDesignVector: TDesignVector;
|
elfDesignVector: TDesignVector;
|
||||||
end;
|
end;
|
||||||
@@ -505,14 +505,14 @@ type
|
|||||||
PEnumLogFontExDV = PEnumLogFontExDVA;
|
PEnumLogFontExDV = PEnumLogFontExDVA;
|
||||||
PEnumTextMetricA = ^TEnumTextMetricA;
|
PEnumTextMetricA = ^TEnumTextMetricA;
|
||||||
// tagENUMTEXTMETRICA}
|
// tagENUMTEXTMETRICA}
|
||||||
tagENUMTEXTMETRICA = packed record
|
tagENUMTEXTMETRICA = {packed} record
|
||||||
etmNewTextMetricEx: TNewTextMetricExA;
|
etmNewTextMetricEx: TNewTextMetricExA;
|
||||||
etmAxesList: TAxesListA;
|
etmAxesList: TAxesListA;
|
||||||
end;
|
end;
|
||||||
TEnumTextMetricA = tagENUMTEXTMETRICA;
|
TEnumTextMetricA = tagENUMTEXTMETRICA;
|
||||||
PEnumTextMetricW = ^TEnumTextMetricW;
|
PEnumTextMetricW = ^TEnumTextMetricW;
|
||||||
// tagENUMTEXTMETRICW}
|
// tagENUMTEXTMETRICW}
|
||||||
tagENUMTEXTMETRICW = packed record
|
tagENUMTEXTMETRICW = {packed} record
|
||||||
etmNewTextMetricEx: TNewTextMetricExW;
|
etmNewTextMetricEx: TNewTextMetricExW;
|
||||||
etmAxesList: TAxesListW;
|
etmAxesList: TAxesListW;
|
||||||
end;
|
end;
|
||||||
@@ -522,7 +522,7 @@ type
|
|||||||
PDocInfoW = ^TDocInfoW;
|
PDocInfoW = ^TDocInfoW;
|
||||||
PDocInfo = PDocInfoA;
|
PDocInfo = PDocInfoA;
|
||||||
// _DOCINFOA}
|
// _DOCINFOA}
|
||||||
_DOCINFOA = packed record
|
_DOCINFOA = {packed} record
|
||||||
cbSize: Integer;
|
cbSize: Integer;
|
||||||
lpszDocName: PAnsiChar;
|
lpszDocName: PAnsiChar;
|
||||||
lpszOutput: PAnsiChar;
|
lpszOutput: PAnsiChar;
|
||||||
@@ -530,7 +530,7 @@ type
|
|||||||
fwType: DWORD;
|
fwType: DWORD;
|
||||||
end;
|
end;
|
||||||
// _DOCINFOW}
|
// _DOCINFOW}
|
||||||
_DOCINFOW = packed record
|
_DOCINFOW = {packed} record
|
||||||
cbSize: Integer;
|
cbSize: Integer;
|
||||||
lpszDocName: PWideChar;
|
lpszDocName: PWideChar;
|
||||||
lpszOutput: PWideChar;
|
lpszOutput: PWideChar;
|
||||||
@@ -552,7 +552,7 @@ type
|
|||||||
PCreateStructW = ^TCreateStructW;
|
PCreateStructW = ^TCreateStructW;
|
||||||
PCreateStruct = PCreateStructA;
|
PCreateStruct = PCreateStructA;
|
||||||
// tagCREATESTRUCTA}
|
// tagCREATESTRUCTA}
|
||||||
tagCREATESTRUCTA = packed record
|
tagCREATESTRUCTA = {packed} record
|
||||||
lpCreateParams: Pointer;
|
lpCreateParams: Pointer;
|
||||||
hInstance: HINST;
|
hInstance: HINST;
|
||||||
hMenu: HMENU;
|
hMenu: HMENU;
|
||||||
@@ -567,7 +567,7 @@ type
|
|||||||
dwExStyle: DWORD;
|
dwExStyle: DWORD;
|
||||||
end;
|
end;
|
||||||
// tagCREATESTRUCTW}
|
// tagCREATESTRUCTW}
|
||||||
tagCREATESTRUCTW = packed record
|
tagCREATESTRUCTW = {packed} record
|
||||||
lpCreateParams: Pointer;
|
lpCreateParams: Pointer;
|
||||||
hInstance: HINST;
|
hInstance: HINST;
|
||||||
hMenu: HMENU;
|
hMenu: HMENU;
|
||||||
@@ -596,7 +596,7 @@ type
|
|||||||
PWndClassExW = ^TWndClassExW;
|
PWndClassExW = ^TWndClassExW;
|
||||||
PWndClassEx = PWndClassExA;
|
PWndClassEx = PWndClassExA;
|
||||||
// tagWNDCLASSEXA}
|
// tagWNDCLASSEXA}
|
||||||
tagWNDCLASSEXA = packed record
|
tagWNDCLASSEXA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
style: UINT;
|
style: UINT;
|
||||||
lpfnWndProc: TFNWndProc;
|
lpfnWndProc: TFNWndProc;
|
||||||
@@ -611,7 +611,7 @@ type
|
|||||||
hIconSm: HICON;
|
hIconSm: HICON;
|
||||||
end;
|
end;
|
||||||
// tagWNDCLASSEXW}
|
// tagWNDCLASSEXW}
|
||||||
tagWNDCLASSEXW = packed record
|
tagWNDCLASSEXW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
style: UINT;
|
style: UINT;
|
||||||
lpfnWndProc: TFNWndProc;
|
lpfnWndProc: TFNWndProc;
|
||||||
@@ -641,7 +641,7 @@ type
|
|||||||
PWndClassW = ^TWndClassW;
|
PWndClassW = ^TWndClassW;
|
||||||
PWndClass = PWndClassA;
|
PWndClass = PWndClassA;
|
||||||
// tagWNDCLASSA}
|
// tagWNDCLASSA}
|
||||||
tagWNDCLASSA = packed record
|
tagWNDCLASSA = {packed} record
|
||||||
style: UINT;
|
style: UINT;
|
||||||
lpfnWndProc: TFNWndProc;
|
lpfnWndProc: TFNWndProc;
|
||||||
cbClsExtra: Integer;
|
cbClsExtra: Integer;
|
||||||
@@ -654,7 +654,7 @@ type
|
|||||||
lpszClassName: PAnsiChar;
|
lpszClassName: PAnsiChar;
|
||||||
end;
|
end;
|
||||||
// tagWNDCLASSW}
|
// tagWNDCLASSW}
|
||||||
tagWNDCLASSW = packed record
|
tagWNDCLASSW = {packed} record
|
||||||
style: UINT;
|
style: UINT;
|
||||||
lpfnWndProc: TFNWndProc;
|
lpfnWndProc: TFNWndProc;
|
||||||
cbClsExtra: Integer;
|
cbClsExtra: Integer;
|
||||||
@@ -706,7 +706,7 @@ type
|
|||||||
PMsgBoxParamsA = ^TMsgBoxParamsA;
|
PMsgBoxParamsA = ^TMsgBoxParamsA;
|
||||||
PMsgBoxParamsW = ^TMsgBoxParamsW;
|
PMsgBoxParamsW = ^TMsgBoxParamsW;
|
||||||
// tagMSGBOXPARAMSA}
|
// tagMSGBOXPARAMSA}
|
||||||
tagMSGBOXPARAMSA = packed record
|
tagMSGBOXPARAMSA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
hwndOwner: HWND;
|
hwndOwner: HWND;
|
||||||
hInstance: HINST;
|
hInstance: HINST;
|
||||||
@@ -719,7 +719,7 @@ type
|
|||||||
dwLanguageId: DWORD;
|
dwLanguageId: DWORD;
|
||||||
end;
|
end;
|
||||||
// tagMSGBOXPARAMSW}
|
// tagMSGBOXPARAMSW}
|
||||||
tagMSGBOXPARAMSW = packed record
|
tagMSGBOXPARAMSW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
hwndOwner: HWND;
|
hwndOwner: HWND;
|
||||||
hInstance: HINST;
|
hInstance: HINST;
|
||||||
@@ -806,7 +806,7 @@ type
|
|||||||
// HELPWININFO}
|
// HELPWININFO}
|
||||||
HELPWININFO = HELPWININFOA;
|
HELPWININFO = HELPWININFOA;
|
||||||
// tagNONCLIENTMETRICSA}
|
// tagNONCLIENTMETRICSA}
|
||||||
tagNONCLIENTMETRICSA = packed record
|
tagNONCLIENTMETRICSA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
iBorderWidth: Integer;
|
iBorderWidth: Integer;
|
||||||
iScrollWidth: Integer;
|
iScrollWidth: Integer;
|
||||||
@@ -824,7 +824,7 @@ type
|
|||||||
lfMessageFont: TLogFontA;
|
lfMessageFont: TLogFontA;
|
||||||
end;
|
end;
|
||||||
// tagNONCLIENTMETRICSW}
|
// tagNONCLIENTMETRICSW}
|
||||||
tagNONCLIENTMETRICSW = packed record
|
tagNONCLIENTMETRICSW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
iBorderWidth: Integer;
|
iBorderWidth: Integer;
|
||||||
iScrollWidth: Integer;
|
iScrollWidth: Integer;
|
||||||
@@ -856,7 +856,7 @@ type
|
|||||||
// NONCLIENTMETRICS}
|
// NONCLIENTMETRICS}
|
||||||
NONCLIENTMETRICS = NONCLIENTMETRICSA;
|
NONCLIENTMETRICS = NONCLIENTMETRICSA;
|
||||||
// tagICONMETRICSA}
|
// tagICONMETRICSA}
|
||||||
tagICONMETRICSA = packed record
|
tagICONMETRICSA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
iHorzSpacing: Integer;
|
iHorzSpacing: Integer;
|
||||||
iVertSpacing: Integer;
|
iVertSpacing: Integer;
|
||||||
@@ -864,7 +864,7 @@ type
|
|||||||
lfFont: TLogFontA;
|
lfFont: TLogFontA;
|
||||||
end;
|
end;
|
||||||
// tagICONMETRICSW}
|
// tagICONMETRICSW}
|
||||||
tagICONMETRICSW = packed record
|
tagICONMETRICSW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
iHorzSpacing: Integer;
|
iHorzSpacing: Integer;
|
||||||
iVertSpacing: Integer;
|
iVertSpacing: Integer;
|
||||||
@@ -890,7 +890,7 @@ type
|
|||||||
PSerialKeysA = ^TSerialKeysA;
|
PSerialKeysA = ^TSerialKeysA;
|
||||||
PSerialKeysW = ^TSerialKeysW;
|
PSerialKeysW = ^TSerialKeysW;
|
||||||
// tagSERIALKEYSA}
|
// tagSERIALKEYSA}
|
||||||
tagSERIALKEYSA = packed record
|
tagSERIALKEYSA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
lpszActivePort: PAnsiChar;
|
lpszActivePort: PAnsiChar;
|
||||||
@@ -900,7 +900,7 @@ type
|
|||||||
iActive: UINT;
|
iActive: UINT;
|
||||||
end;
|
end;
|
||||||
// tagSERIALKEYSW}
|
// tagSERIALKEYSW}
|
||||||
tagSERIALKEYSW = packed record
|
tagSERIALKEYSW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
lpszActivePort: PWideChar;
|
lpszActivePort: PWideChar;
|
||||||
@@ -924,13 +924,13 @@ type
|
|||||||
PHighContrastA = ^THighContrastA;
|
PHighContrastA = ^THighContrastA;
|
||||||
PHighContrastW = ^THighContrastW;
|
PHighContrastW = ^THighContrastW;
|
||||||
// tagHIGHCONTRASTA}
|
// tagHIGHCONTRASTA}
|
||||||
tagHIGHCONTRASTA = packed record
|
tagHIGHCONTRASTA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
lpszDefaultScheme: PAnsiChar;
|
lpszDefaultScheme: PAnsiChar;
|
||||||
end;
|
end;
|
||||||
// tagHIGHCONTRASTW}
|
// tagHIGHCONTRASTW}
|
||||||
tagHIGHCONTRASTW = packed record
|
tagHIGHCONTRASTW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
lpszDefaultScheme: PWideChar;
|
lpszDefaultScheme: PWideChar;
|
||||||
@@ -950,7 +950,7 @@ type
|
|||||||
PSoundsEntryA = ^TSoundsEntryA;
|
PSoundsEntryA = ^TSoundsEntryA;
|
||||||
PSoundsEntryW = ^TSoundsEntryW;
|
PSoundsEntryW = ^TSoundsEntryW;
|
||||||
// tagSOUNDSENTRYA}
|
// tagSOUNDSENTRYA}
|
||||||
tagSOUNDSENTRYA = packed record
|
tagSOUNDSENTRYA = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
iFSTextEffect: DWORD;
|
iFSTextEffect: DWORD;
|
||||||
@@ -965,7 +965,7 @@ type
|
|||||||
iWindowsEffectOrdinal: DWORD;
|
iWindowsEffectOrdinal: DWORD;
|
||||||
end;
|
end;
|
||||||
// tagSOUNDSENTRYW}
|
// tagSOUNDSENTRYW}
|
||||||
tagSOUNDSENTRYW = packed record
|
tagSOUNDSENTRYW = {packed} record
|
||||||
cbSize: UINT;
|
cbSize: UINT;
|
||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
iFSTextEffect: DWORD;
|
iFSTextEffect: DWORD;
|
||||||
@@ -994,7 +994,7 @@ type
|
|||||||
PNumberFmtA = ^TNumberFmtA;
|
PNumberFmtA = ^TNumberFmtA;
|
||||||
PNumberFmtW = ^TNumberFmtW;
|
PNumberFmtW = ^TNumberFmtW;
|
||||||
// _numberfmtA}
|
// _numberfmtA}
|
||||||
_numberfmtA = packed record
|
_numberfmtA = {packed} record
|
||||||
NumDigits: UINT; { number of decimal digits }
|
NumDigits: UINT; { number of decimal digits }
|
||||||
LeadingZero: UINT; { if leading zero in decimal fields }
|
LeadingZero: UINT; { if leading zero in decimal fields }
|
||||||
Grouping: UINT; { group size left of decimal }
|
Grouping: UINT; { group size left of decimal }
|
||||||
@@ -1003,7 +1003,7 @@ type
|
|||||||
NegativeOrder: UINT; { negative number ordering }
|
NegativeOrder: UINT; { negative number ordering }
|
||||||
end;
|
end;
|
||||||
// _numberfmtW}
|
// _numberfmtW}
|
||||||
_numberfmtW = packed record
|
_numberfmtW = {packed} record
|
||||||
NumDigits: UINT; { number of decimal digits }
|
NumDigits: UINT; { number of decimal digits }
|
||||||
LeadingZero: UINT; { if leading zero in decimal fields }
|
LeadingZero: UINT; { if leading zero in decimal fields }
|
||||||
Grouping: UINT; { group size left of decimal }
|
Grouping: UINT; { group size left of decimal }
|
||||||
@@ -1025,7 +1025,7 @@ type
|
|||||||
PCurrencyFmtA = ^TCurrencyFmtA;
|
PCurrencyFmtA = ^TCurrencyFmtA;
|
||||||
PCurrencyFmtW = ^TCurrencyFmtW;
|
PCurrencyFmtW = ^TCurrencyFmtW;
|
||||||
// _currencyfmtA}
|
// _currencyfmtA}
|
||||||
_currencyfmtA = packed record
|
_currencyfmtA = {packed} record
|
||||||
NumDigits: UINT; { number of decimal digits }
|
NumDigits: UINT; { number of decimal digits }
|
||||||
LeadingZero: UINT; { if leading zero in decimal fields }
|
LeadingZero: UINT; { if leading zero in decimal fields }
|
||||||
Grouping: UINT; { group size left of decimal }
|
Grouping: UINT; { group size left of decimal }
|
||||||
@@ -1036,7 +1036,7 @@ type
|
|||||||
lpCurrencySymbol: PAnsiChar; { ptr to currency symbol AnsiString }
|
lpCurrencySymbol: PAnsiChar; { ptr to currency symbol AnsiString }
|
||||||
end;
|
end;
|
||||||
// _currencyfmtW}
|
// _currencyfmtW}
|
||||||
_currencyfmtW = packed record
|
_currencyfmtW = {packed} record
|
||||||
NumDigits: UINT; { number of decimal digits }
|
NumDigits: UINT; { number of decimal digits }
|
||||||
LeadingZero: UINT; { if leading zero in decimal fields }
|
LeadingZero: UINT; { if leading zero in decimal fields }
|
||||||
Grouping: UINT; { group size left of decimal }
|
Grouping: UINT; { group size left of decimal }
|
||||||
@@ -1062,14 +1062,14 @@ type
|
|||||||
PPValueA = ^TPValueA;
|
PPValueA = ^TPValueA;
|
||||||
PPValueW = ^TPValueW;
|
PPValueW = ^TPValueW;
|
||||||
// pvalueA}
|
// pvalueA}
|
||||||
pvalueA = packed record
|
pvalueA = {packed} record
|
||||||
pv_valuename: PAnsiChar; { The value name pointer }
|
pv_valuename: PAnsiChar; { The value name pointer }
|
||||||
pv_valuelen: BOOL;
|
pv_valuelen: BOOL;
|
||||||
pv_value_context: Pointer;
|
pv_value_context: Pointer;
|
||||||
pv_type: DWORD;
|
pv_type: DWORD;
|
||||||
end;
|
end;
|
||||||
// pvalueW}
|
// pvalueW}
|
||||||
pvalueW = packed record
|
pvalueW = {packed} record
|
||||||
pv_valuename: PWideChar; { The value name pointer }
|
pv_valuename: PWideChar; { The value name pointer }
|
||||||
pv_valuelen: BOOL;
|
pv_valuelen: BOOL;
|
||||||
pv_value_context: Pointer;
|
pv_value_context: Pointer;
|
||||||
@@ -1085,14 +1085,14 @@ type
|
|||||||
PValueEntA = ^TValueEntA;
|
PValueEntA = ^TValueEntA;
|
||||||
PValueEntW = ^TValueEntW;
|
PValueEntW = ^TValueEntW;
|
||||||
// value_entA}
|
// value_entA}
|
||||||
value_entA = packed record
|
value_entA = {packed} record
|
||||||
ve_valuename: PAnsiChar;
|
ve_valuename: PAnsiChar;
|
||||||
ve_valuelen: DWORD;
|
ve_valuelen: DWORD;
|
||||||
ve_valueptr: DWORD;
|
ve_valueptr: DWORD;
|
||||||
ve_type: DWORD;
|
ve_type: DWORD;
|
||||||
end;
|
end;
|
||||||
// value_entW}
|
// value_entW}
|
||||||
value_entW = packed record
|
value_entW = {packed} record
|
||||||
ve_valuename: PWideChar;
|
ve_valuename: PWideChar;
|
||||||
ve_valuelen: DWORD;
|
ve_valuelen: DWORD;
|
||||||
ve_valueptr: DWORD;
|
ve_valueptr: DWORD;
|
||||||
@@ -1115,7 +1115,7 @@ type
|
|||||||
PNetResourceA = ^TNetResourceA;
|
PNetResourceA = ^TNetResourceA;
|
||||||
PNetResourceW = ^TNetResourceW;
|
PNetResourceW = ^TNetResourceW;
|
||||||
// _NETRESOURCEA}
|
// _NETRESOURCEA}
|
||||||
_NETRESOURCEA = packed record
|
_NETRESOURCEA = {packed} record
|
||||||
dwScope: DWORD;
|
dwScope: DWORD;
|
||||||
dwType: DWORD;
|
dwType: DWORD;
|
||||||
dwDisplayType: DWORD;
|
dwDisplayType: DWORD;
|
||||||
@@ -1126,7 +1126,7 @@ type
|
|||||||
lpProvider: PAnsiChar;
|
lpProvider: PAnsiChar;
|
||||||
end;
|
end;
|
||||||
// _NETRESOURCEW}
|
// _NETRESOURCEW}
|
||||||
_NETRESOURCEW = packed record
|
_NETRESOURCEW = {packed} record
|
||||||
dwScope: DWORD;
|
dwScope: DWORD;
|
||||||
dwType: DWORD;
|
dwType: DWORD;
|
||||||
dwDisplayType: DWORD;
|
dwDisplayType: DWORD;
|
||||||
@@ -1150,7 +1150,7 @@ type
|
|||||||
PDiscDlgStructA = ^TDiscDlgStructA;
|
PDiscDlgStructA = ^TDiscDlgStructA;
|
||||||
PDiscDlgStructW = ^TDiscDlgStructW;
|
PDiscDlgStructW = ^TDiscDlgStructW;
|
||||||
// _DISCDLGSTRUCTA}
|
// _DISCDLGSTRUCTA}
|
||||||
_DISCDLGSTRUCTA = packed record
|
_DISCDLGSTRUCTA = {packed} record
|
||||||
cbStructure: DWORD; { size of this structure in bytes }
|
cbStructure: DWORD; { size of this structure in bytes }
|
||||||
hwndOwner: HWND; { owner window for the dialog }
|
hwndOwner: HWND; { owner window for the dialog }
|
||||||
lpLocalName: PAnsiChar; { local device name }
|
lpLocalName: PAnsiChar; { local device name }
|
||||||
@@ -1158,7 +1158,7 @@ type
|
|||||||
dwFlags: DWORD;
|
dwFlags: DWORD;
|
||||||
end;
|
end;
|
||||||
// _DISCDLGSTRUCTW}
|
// _DISCDLGSTRUCTW}
|
||||||
_DISCDLGSTRUCTW = packed record
|
_DISCDLGSTRUCTW = {packed} record
|
||||||
cbStructure: DWORD; { size of this structure in bytes }
|
cbStructure: DWORD; { size of this structure in bytes }
|
||||||
hwndOwner: HWND; { owner window for the dialog }
|
hwndOwner: HWND; { owner window for the dialog }
|
||||||
lpLocalName: PWideChar; { local device name }
|
lpLocalName: PWideChar; { local device name }
|
||||||
@@ -1181,11 +1181,11 @@ type
|
|||||||
PUniversalNameInfoA = ^TUniversalNameInfoA;
|
PUniversalNameInfoA = ^TUniversalNameInfoA;
|
||||||
PUniversalNameInfoW = ^TUniversalNameInfoW;
|
PUniversalNameInfoW = ^TUniversalNameInfoW;
|
||||||
// _UNIVERSAL_NAME_INFOA}
|
// _UNIVERSAL_NAME_INFOA}
|
||||||
_UNIVERSAL_NAME_INFOA = packed record
|
_UNIVERSAL_NAME_INFOA = {packed} record
|
||||||
lpUniversalName: PAnsiChar;
|
lpUniversalName: PAnsiChar;
|
||||||
end;
|
end;
|
||||||
// _UNIVERSAL_NAME_INFOW}
|
// _UNIVERSAL_NAME_INFOW}
|
||||||
_UNIVERSAL_NAME_INFOW = packed record
|
_UNIVERSAL_NAME_INFOW = {packed} record
|
||||||
lpUniversalName: PWideChar;
|
lpUniversalName: PWideChar;
|
||||||
end;
|
end;
|
||||||
// _UNIVERSAL_NAME_INFO}
|
// _UNIVERSAL_NAME_INFO}
|
||||||
@@ -1203,13 +1203,13 @@ type
|
|||||||
PRemoteNameInfoA = ^TRemoteNameInfoA;
|
PRemoteNameInfoA = ^TRemoteNameInfoA;
|
||||||
PRemoteNameInfoW = ^TRemoteNameInfoW;
|
PRemoteNameInfoW = ^TRemoteNameInfoW;
|
||||||
// _REMOTE_NAME_INFOA}
|
// _REMOTE_NAME_INFOA}
|
||||||
_REMOTE_NAME_INFOA = packed record
|
_REMOTE_NAME_INFOA = {packed} record
|
||||||
lpUniversalName: PAnsiChar;
|
lpUniversalName: PAnsiChar;
|
||||||
lpConnectionName: PAnsiChar;
|
lpConnectionName: PAnsiChar;
|
||||||
lpRemainingPath: PAnsiChar;
|
lpRemainingPath: PAnsiChar;
|
||||||
end;
|
end;
|
||||||
// _REMOTE_NAME_INFOW}
|
// _REMOTE_NAME_INFOW}
|
||||||
_REMOTE_NAME_INFOW = packed record
|
_REMOTE_NAME_INFOW = {packed} record
|
||||||
lpUniversalName: PWideChar;
|
lpUniversalName: PWideChar;
|
||||||
lpConnectionName: PWideChar;
|
lpConnectionName: PWideChar;
|
||||||
lpRemainingPath: PWideChar;
|
lpRemainingPath: PWideChar;
|
||||||
@@ -1237,7 +1237,7 @@ type
|
|||||||
{$ENDIF _D3orHigher}
|
{$ENDIF _D3orHigher}
|
||||||
{ Alt-Tab Switch window information. }
|
{ Alt-Tab Switch window information. }
|
||||||
PAltTabInfo = ^TAltTabInfo;
|
PAltTabInfo = ^TAltTabInfo;
|
||||||
tagALTTABINFO = packed record
|
tagALTTABINFO = {packed} record
|
||||||
cbSize: DWORD;
|
cbSize: DWORD;
|
||||||
cItems: Integer;
|
cItems: Integer;
|
||||||
cColumns: Integer;
|
cColumns: Integer;
|
||||||
@@ -1703,7 +1703,7 @@ function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT;
|
|||||||
// uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
|
// uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
|
||||||
function CallMsgFilter(var lpMsg: TMsg; nCode: Integer): BOOL; stdcall;
|
function CallMsgFilter(var lpMsg: TMsg; nCode: Integer): BOOL; stdcall;
|
||||||
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
||||||
function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
|
function ChangeDisplaySettings(const lpDevMode: PDeviceMode; dwFlags: DWORD): Longint; stdcall;
|
||||||
function ChangeDisplaySettingsEx(lpszDeviceName: PKOLChar; var lpDevMode: TDeviceMode;
|
function ChangeDisplaySettingsEx(lpszDeviceName: PKOLChar; var lpDevMode: TDeviceMode;
|
||||||
wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint; stdcall;
|
wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint; stdcall;
|
||||||
function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: PKOLChar;
|
function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: PKOLChar;
|
||||||
@@ -1743,7 +1743,7 @@ function DialogBoxIndirectParam(hInstance: HINST; const lpDialogTemplate: TDlgTe
|
|||||||
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
||||||
function DialogBoxParam(hInstance: HINST; lpTemplateName: PKOLChar;
|
function DialogBoxParam(hInstance: HINST; lpTemplateName: PKOLChar;
|
||||||
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
||||||
function DispatchMessage(const lpMsg: TMsg): Longint; stdcall;
|
function DispatchMessage(const lpMsg: TMsg): LRESULT; stdcall;
|
||||||
function DlgDirList(hDlg: HWND; lpPathSpec: PKOLChar;
|
function DlgDirList(hDlg: HWND; lpPathSpec: PKOLChar;
|
||||||
nIDListBox, nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
nIDListBox, nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
||||||
function DlgDirListComboBox(hDlg: HWND; lpPathSpec: PKOLChar;
|
function DlgDirListComboBox(hDlg: HWND; lpPathSpec: PKOLChar;
|
||||||
@@ -1798,7 +1798,7 @@ function GrayString(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: TFNGrayStringProc;
|
|||||||
lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
|
lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
|
||||||
function InsertMenu(hMenu: HMENU; uPosition, uFlags, uIDNewItem: UINT;
|
function InsertMenu(hMenu: HMENU; uPosition, uFlags, uIDNewItem: UINT;
|
||||||
lpNewItem: PKOLChar): BOOL; stdcall;
|
lpNewItem: PKOLChar): BOOL; stdcall;
|
||||||
function InsertMenuItem(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfo): BOOL; stdcall;
|
function InsertMenuItem(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfoA): BOOL; stdcall;
|
||||||
function IsCharAlpha(ch: KOLChar): BOOL; stdcall;
|
function IsCharAlpha(ch: KOLChar): BOOL; stdcall;
|
||||||
function IsCharAlphaNumeric(ch: KOLChar): BOOL; stdcall;
|
function IsCharAlphaNumeric(ch: KOLChar): BOOL; stdcall;
|
||||||
function IsCharLower(ch: KOLChar): BOOL; stdcall;
|
function IsCharLower(ch: KOLChar): BOOL; stdcall;
|
||||||
@@ -1890,6 +1890,20 @@ const
|
|||||||
IDC_HANDs = MakeIntResource(32649);
|
IDC_HANDs = MakeIntResource(32649);
|
||||||
IDC_APPSTARTING = MakeIntResource(32650);
|
IDC_APPSTARTING = MakeIntResource(32650);
|
||||||
IDC_HELP = MakeIntResource(32651);
|
IDC_HELP = MakeIntResource(32651);
|
||||||
|
|
||||||
|
function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
|
||||||
{$ENDIF interface_part} ////////////////////////////////////////////////////////
|
{$ENDIF interface_part} ////////////////////////////////////////////////////////
|
||||||
|
|
||||||
{$IFDEF implementation_part} ///////////////////////////////////////////////////
|
{$IFDEF implementation_part} ///////////////////////////////////////////////////
|
||||||
@@ -2312,5 +2326,31 @@ function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL
|
|||||||
begin
|
begin
|
||||||
Result := _CreateMutex(lpMutexAttributes, Integer(Boolean(bInitialOwner)), lpName);
|
Result := _CreateMutex(lpMutexAttributes, Integer(Boolean(bInitialOwner)), lpName);
|
||||||
end;
|
end;
|
||||||
|
{$IFDEF WIN64}
|
||||||
|
function GetWindowLongPtr; external user32 name 'GetWindowLongPtrA';
|
||||||
|
function SetWindowLongPtr; external user32 name 'SetWindowLongPtrA';
|
||||||
|
function GetClassLongPtr; external user32 name 'GetClassLongPtrA';
|
||||||
|
function SetClassLongPtr; external user32 name 'SetClassLongPtrA';
|
||||||
|
function GetWindowLongPtrA; external user32 name 'GetWindowLongPtrA';
|
||||||
|
function SetWindowLongPtrA; external user32 name 'SetWindowLongPtrA';
|
||||||
|
function GetClassLongPtrA; external user32 name 'GetClassLongPtrA';
|
||||||
|
function SetClassLongPtrA; external user32 name 'SetClassLongPtrA';
|
||||||
|
function GetWindowLongPtrW; external user32 name 'GetWindowLongPtrW';
|
||||||
|
function SetWindowLongPtrW; external user32 name 'SetWindowLongPtrW';
|
||||||
|
function GetClassLongPtrW; external user32 name 'GetClassLongPtrW';
|
||||||
|
function SetClassLongPtrW; external user32 name 'SetClassLongPtrW';
|
||||||
|
{$ELSE}
|
||||||
|
function GetWindowLongPtr; external user32 name 'GetWindowLongA';
|
||||||
|
function SetWindowLongPtr; external user32 name 'SetWindowLongA';
|
||||||
|
function GetClassLongPtr; external user32 name 'GetClassLongA';
|
||||||
|
function SetClassLongPtr; external user32 name 'SetClassLongA';
|
||||||
|
function GetWindowLongPtrA; external user32 name 'GetWindowLongA';
|
||||||
|
function SetWindowLongPtrA; external user32 name 'SetWindowLongA';
|
||||||
|
function GetClassLongPtrA; external user32 name 'GetClassLongA';
|
||||||
|
function SetClassLongPtrA; external user32 name 'SetClassLongA';
|
||||||
|
function GetWindowLongPtrW; external user32 name 'GetWindowLongW';
|
||||||
|
function SetWindowLongPtrW; external user32 name 'SetWindowLongW';
|
||||||
|
function GetClassLongPtrW; external user32 name 'GetClassLongW';
|
||||||
|
function SetClassLongPtrW; external user32 name 'SetClassLongW';
|
||||||
|
{$ENDIF}
|
||||||
{$ENDIF implementation_part} ///////////////////////////////////////////////////
|
{$ENDIF implementation_part} ///////////////////////////////////////////////////
|
||||||
|
@@ -623,6 +623,7 @@ function wglUseFontOutlines(p1: HDC; p2, p3, p4: DWORD;
|
|||||||
p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
|
p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
|
||||||
function AnsiToOem(const lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
|
function AnsiToOem(const lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
|
||||||
function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
||||||
|
function AnsiToOemBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
||||||
function AnsiUpper(lpsz: LPSTR): LPSTR; stdcall;
|
function AnsiUpper(lpsz: LPSTR): LPSTR; stdcall;
|
||||||
function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
|
function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
|
||||||
function AnsiLower(lpsz: LPSTR): LPSTR; stdcall;
|
function AnsiLower(lpsz: LPSTR): LPSTR; stdcall;
|
||||||
@@ -677,7 +678,7 @@ function DialogBoxIndirectParam(hInstance: HINST; const lpDialogTemplate: TDlgTe
|
|||||||
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
||||||
function DialogBoxParam(hInstance: HINST; lpTemplateName: PKOLChar;
|
function DialogBoxParam(hInstance: HINST; lpTemplateName: PKOLChar;
|
||||||
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
|
||||||
function DispatchMessage(const lpMsg: TMsg): Longint; stdcall;
|
function DispatchMessage(const lpMsg: TMsg): LRESULT; stdcall;
|
||||||
function DlgDirList(hDlg: HWND; lpPathSpec: PKOLChar;
|
function DlgDirList(hDlg: HWND; lpPathSpec: PKOLChar;
|
||||||
nIDListBox, nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
nIDListBox, nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
||||||
function DlgDirListComboBox(hDlg: HWND; lpPathSpec: PKOLChar;
|
function DlgDirListComboBox(hDlg: HWND; lpPathSpec: PKOLChar;
|
||||||
@@ -848,6 +849,31 @@ const
|
|||||||
RT_ANICURSOR = PKOLChar(21);
|
RT_ANICURSOR = PKOLChar(21);
|
||||||
RT_ANIICON = PKOLChar(22);
|
RT_ANIICON = PKOLChar(22);
|
||||||
|
|
||||||
|
{$EXTERNALSYM GetWindowLongPtr}
|
||||||
|
function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetWindowLongPtr}
|
||||||
|
function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM GetWindowLongPtrA}
|
||||||
|
function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetWindowLongPtrA}
|
||||||
|
function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM GetWindowLongPtrW}
|
||||||
|
function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetWindowLongPtrW}
|
||||||
|
function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM GetClassLongPtr}
|
||||||
|
function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetClassLongPtr}
|
||||||
|
function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM GetClassLongPtrA}
|
||||||
|
function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetClassLongPtrA}
|
||||||
|
function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM GetClassLongPtrW}
|
||||||
|
function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR; stdcall;
|
||||||
|
{$EXTERNALSYM SetClassLongPtrW}
|
||||||
|
function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): ULONG_PTR; stdcall;
|
||||||
|
|
||||||
{$ENDIF interface_part} ////////////////////////////////////////////////////////
|
{$ENDIF interface_part} ////////////////////////////////////////////////////////
|
||||||
|
|
||||||
{$IFDEF implementation_part} ///////////////////////////////////////////////////
|
{$IFDEF implementation_part} ///////////////////////////////////////////////////
|
||||||
@@ -1124,6 +1150,7 @@ function wglUseFontBitmaps; external opengl32 name 'wglUseFontBitmapsW';
|
|||||||
function wglUseFontOutlines; external opengl32 name 'wglUseFontOutlinesW';
|
function wglUseFontOutlines; external opengl32 name 'wglUseFontOutlinesW';
|
||||||
function AnsiToOem; external user32 name 'CharToOemW';
|
function AnsiToOem; external user32 name 'CharToOemW';
|
||||||
function AnsiToOemBuff; external user32 name 'CharToOemBuffW';
|
function AnsiToOemBuff; external user32 name 'CharToOemBuffW';
|
||||||
|
function AnsiToOemBuffA; external user32 name 'CharToOemBuffA';
|
||||||
function AnsiUpper; external user32 name 'CharUpperW';
|
function AnsiUpper; external user32 name 'CharUpperW';
|
||||||
function AnsiUpperBuff; external user32 name 'CharUpperBuffW';
|
function AnsiUpperBuff; external user32 name 'CharUpperBuffW';
|
||||||
function AnsiLower; external user32 name 'CharLowerW';
|
function AnsiLower; external user32 name 'CharLowerW';
|
||||||
@@ -1274,4 +1301,31 @@ function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL
|
|||||||
begin
|
begin
|
||||||
Result := _CreateMutex(lpMutexAttributes, Integer(Boolean(bInitialOwner)), lpName);
|
Result := _CreateMutex(lpMutexAttributes, Integer(Boolean(bInitialOwner)), lpName);
|
||||||
end;
|
end;
|
||||||
{$ENDIF implementation_part} ///////////////////////////////////////////////////
|
{$IFDEF WIN64}
|
||||||
|
function GetWindowLongPtr; external user32 name 'GetWindowLongPtrW';
|
||||||
|
function SetWindowLongPtr; external user32 name 'SetWindowLongPtrW';
|
||||||
|
function GetClassLongPtr; external user32 name 'GetClassLongPtrW';
|
||||||
|
function SetClassLongPtr; external user32 name 'SetClassLongPtrW';
|
||||||
|
function GetWindowLongPtrA; external user32 name 'GetWindowLongPtrA';
|
||||||
|
function SetWindowLongPtrA; external user32 name 'SetWindowLongPtrA';
|
||||||
|
function GetClassLongPtrA; external user32 name 'GetClassLongPtrA';
|
||||||
|
function SetClassLongPtrA; external user32 name 'SetClassLongPtrA';
|
||||||
|
function GetWindowLongPtrW; external user32 name 'GetWindowLongPtrW';
|
||||||
|
function SetWindowLongPtrW; external user32 name 'SetWindowLongPtrW';
|
||||||
|
function GetClassLongPtrW; external user32 name 'GetClassLongPtrW';
|
||||||
|
function SetClassLongPtrW; external user32 name 'SetClassLongPtrW';
|
||||||
|
{$ELSE}
|
||||||
|
function GetWindowLongPtr; external user32 name 'GetWindowLongW';
|
||||||
|
function SetWindowLongPtr; external user32 name 'SetWindowLongW';
|
||||||
|
function GetClassLongPtr; external user32 name 'GetClassLongW';
|
||||||
|
function SetClassLongPtr; external user32 name 'SetClassLongW';
|
||||||
|
function GetWindowLongPtrA; external user32 name 'GetWindowLongA';
|
||||||
|
function SetWindowLongPtrA; external user32 name 'SetWindowLongA';
|
||||||
|
function GetClassLongPtrA; external user32 name 'GetClassLongA';
|
||||||
|
function SetClassLongPtrA; external user32 name 'SetClassLongA';
|
||||||
|
function GetWindowLongPtrW; external user32 name 'GetWindowLongW';
|
||||||
|
function SetWindowLongPtrW; external user32 name 'SetWindowLongW';
|
||||||
|
function GetClassLongPtrW; external user32 name 'GetClassLongW';
|
||||||
|
function SetClassLongPtrW; external user32 name 'SetClassLongW';
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF implementation_part} ///////////////////////////////////////////////////
|
54
whatsnew.txt
54
whatsnew.txt
@@ -1,3 +1,57 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
3.12.14
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Merge with unofficial 3.22 version compatible with fpc 2.6.4 and 2.7.1 i386 and x64 compilers by "Dmitri K dmiko@mail333.com (dmiko)" principal work
|
||||||
|
and "Thaddy de Koning thaddy@thaddy.com" (merge 3.22)
|
||||||
|
|
||||||
|
KOL:
|
||||||
|
* a LOT of declarations\fixes for x64\FPC support (by dmiko and Thaddy)
|
||||||
|
+ TList.SortEx - for custom sorting Items
|
||||||
|
+ TStrList.IndexOfName_NoCaseFast, TStrList.IndexOfName_Fast, TStrList.Values_NocaseFast[], TStrList.Values_Fast[] - faster than TStrList.IndexOfName\Values\etc..
|
||||||
|
+ TStrList.Remove\RemoveByName - Removes first entry of a Value\LineName in the list
|
||||||
|
+ TStrList.IsEmpty - check list empty
|
||||||
|
+ TStrList.Add2\Insert2\Delete2\Items2[Idx, Col]\Swap2\IndexOf2\Count2\ColsCount - work with TStrList like with table[Idx, Col]
|
||||||
|
+ TStrListEx.SortEx - for custom sorting Items with Objects
|
||||||
|
* SVN_BUG#1: TStrListEx.SortEx - breaks objects association fixed (thanks to tacituseu)
|
||||||
|
* SVN_BUG#2: TControl.FreeCharFormatRec - fixed STATIC_RICHEDIT_DATA define (by tacituseu)
|
||||||
|
* TControl.LVColInsert - return inserted col index
|
||||||
|
+ TControl.LVGetHeader - Gets the handle to the header control used by the list-view control
|
||||||
|
+ TControl.LVSubItemAtPos - Return index of subitem at the given position
|
||||||
|
+ TControl.LVIndexOfEx - Returns first list view item index with subitem ACol matching S
|
||||||
|
+ TControl.TVItemInsert - extended version of TVInsert: can set images and set ItemData
|
||||||
|
* NewReadWriteFileStream - smaller code by use winapi flag ofOpenAlways instead FileExists function
|
||||||
|
* TMenu.Destroy\RemoveSubMenu - fixed memory leak on destroy (by dotnet20)
|
||||||
|
* CallDefFrameProc - fixed crash when use MDI
|
||||||
|
- ASM: TStrList.AddStrings\LoadFromStream\MergeFromFile\SaveToFile - switched off because maybe can get crash (need tests)
|
||||||
|
* PAS: TStrList.LoadFromStream\SaveToFile - fixed
|
||||||
|
* TStrList.IndexOfName - small speedup
|
||||||
|
* TStrList.IndexOfName_NoCase - this code "while (p^ <> #0) and (p^ <= ' ') do inc( p );" is deleted, because sometimes get deadlock (wtf code doing!?)
|
||||||
|
* ASM: WndProcTreeView - fixed TV_DRAG_RBUTTON define
|
||||||
|
+ TFastStrListEx.NameDelimiter - like in TStrList
|
||||||
|
+ TFastStrListEx.SetValue - like in TStrList
|
||||||
|
|
||||||
|
MCK:
|
||||||
|
* updated to MCK v3.23 (with some fixes)
|
||||||
|
* MCKAppExpert200x wizard - fixed unit name
|
||||||
|
* TKOLListView.SetupLast - fixed crash
|
||||||
|
+ TKOLListView.OnLVCustomDraw - added event assign
|
||||||
|
+ TKOLMemo.Paint\WYSIWIGPaintImplemented - add visual style for memo in designer mode
|
||||||
|
+ !!!ALPHA VERSION!!!: ux visual style mode for some controls in designer mode (PaintType: ptWYSIWIG) (WinXP minimum req.)
|
||||||
|
|
||||||
|
err.pas:
|
||||||
|
* moved from addons to kolmck folder
|
||||||
|
* fixed exception.message in IDE
|
||||||
|
* source code formating
|
||||||
|
|
||||||
|
common:
|
||||||
|
* cleaning...
|
||||||
|
* updated readmes
|
||||||
|
* dpk packages replaced and renamed (KOLMCKXXXX.dpk)
|
||||||
|
|
||||||
|
maybe forgot something...
|
||||||
|
|
||||||
|
KOLAddons package will be updated later..
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
24.03.10
|
24.03.10
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user