1566 lines
57 KiB
Plaintext
1566 lines
57 KiB
Plaintext
unit utslvclmemstruct;
|
|
{**
|
|
@explan(说明) 接口内存管理类 %%
|
|
@date(20220429) %%
|
|
**}
|
|
interface
|
|
uses cstructurelib,utslvclauxiliary;
|
|
|
|
type TTagMSG=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明) 消息循环对象类 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hwnd","intptr",0),
|
|
("message","int",0),
|
|
("wparam","intptr",0),
|
|
("lparam","intptr",0),
|
|
("time","int",0),
|
|
("pt","int[2]",
|
|
(0,0)),
|
|
("lprivate","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hwnd index "hwnd" read _getvalue_ write _setvalue_;
|
|
property message index "message" read _getvalue_ write _setvalue_;
|
|
property wparam index "wparam" read _getvalue_ write _setvalue_;
|
|
property lparam index "lparam" read _getvalue_ write _setvalue_;
|
|
property time index "time" read _getvalue_ write _setvalue_;
|
|
property pt index "pt" read _getvalue_ write _setvalue_;
|
|
property lprivate index "lprivate" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type TNOTIFYICONDATAA=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("cbsize","int",0),
|
|
("hwnd","intptr",0),
|
|
("uid","int",0),
|
|
("uflags","int",0),
|
|
("ucallbackmessage","int",0),
|
|
("hicon","intptr",0),
|
|
("sztip","char[128]",0),
|
|
("dwstate","int",0),
|
|
("dwstatemask","int",0),
|
|
("szinfo","char[256]",0),
|
|
("dummyunionname","int",0),
|
|
("szinfotitle","char[64]",0),
|
|
("dwinfoflags","int",0),
|
|
("guiditem","user",(
|
|
("data1","int",0),("data2","short",0),("data3","short",0),("data4","char[8]","")
|
|
)),
|
|
("hballoonicon","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
cbsize := _size_();
|
|
end
|
|
property cbsize index "cbsize" read _getvalue_ write _setvalue_;
|
|
property hwnd index "hwnd" read _getvalue_ write _setvalue_;
|
|
property uid index "uid" read _getvalue_ write _setvalue_;
|
|
property uflags index "uflags" read _getvalue_ write _setvalue_;
|
|
property ucallbackmessage index "ucallbackmessage" read _getvalue_ write _setvalue_;
|
|
property hicon index "hicon" read _getvalue_ write _setvalue_;
|
|
property sztip index "sztip" read _getvalue_ write _setvalue_;
|
|
property dwstate index "dwstate" read _getvalue_ write _setvalue_;
|
|
property dwstatemask index "dwstatemask" read _getvalue_ write _setvalue_;
|
|
property szinfo index "szinfo" read _getvalue_ write _setvalue_;
|
|
property uTimeout index "dummyunionname" read _getvalue_ write _setvalue_;
|
|
property uVersion index "dummyunionname" read _getvalue_ write _setvalue_;
|
|
property dummyunionname index "dummyunionname" read _getvalue_ write _setvalue_;
|
|
property szinfotitle index "szinfotitle" read _getvalue_ write _setvalue_;
|
|
property dwinfoflags index "dwinfoflags" read _getvalue_ write _setvalue_;
|
|
property guiditem index "guiditem" read _getvalue_ write _setvalue_;
|
|
property hballoonicon index "hballoonicon" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type TtagSIZE=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
(0,"int",0),
|
|
(1,"int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property cx index 0 read _getvalue_ write _setvalue_;
|
|
property cy index 1 read _getvalue_ write _setvalue_;
|
|
end
|
|
type TCPoint=class(TtagSIZE)
|
|
function create(p);
|
|
begin
|
|
inherited;
|
|
end
|
|
end
|
|
type TCRect=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明)矩形区域内存分配 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
(0,"int",0),
|
|
(1,"int",0),
|
|
(2,"int",0),
|
|
(3,"int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property left index 0 read _getvalue_ write _setvalue_;
|
|
property top index 1 read _getvalue_ write _setvalue_;
|
|
property right index 2 read _getvalue_ write _setvalue_;
|
|
property bottom index 3 read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type TCRectF=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
(0,"float",0),
|
|
(1,"float",0),
|
|
(2,"float",0),
|
|
(3,"float",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property left index 0 read _getvalue_ write _setvalue_;
|
|
property top index 1 read _getvalue_ write _setvalue_;
|
|
property right index 2 read _getvalue_ write _setvalue_;
|
|
property bottom index 3 read _getvalue_ write _setvalue_;
|
|
end
|
|
type TCPointF=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
(0,"float",0),
|
|
(1,"float",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property cx index 0 read _getvalue_ write _setvalue_;
|
|
property cy index 1 read _getvalue_ write _setvalue_;
|
|
end
|
|
type TCREATESTRUCT=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("lpcreateparams","intptr",0),
|
|
("hinstance","intptr",0),
|
|
("hmenu","intptr",0),
|
|
("hwndparent","intptr",0),
|
|
("cy","int",0),
|
|
("cx","int",0),
|
|
("y","int",0),
|
|
("x","int",0),
|
|
("style","int",0),
|
|
("lpszname","char*",100),
|
|
("lpszclass","char*",100),
|
|
("dwexstyle","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property lpcreateparams index "lpcreateparams" read _getvalue_ write _setvalue_;
|
|
property hinstance index "hinstance" read _getvalue_ write _setvalue_;
|
|
property hmenu index "hmenu" read _getvalue_ write _setvalue_;
|
|
property hwndparent index "hwndparent" read _getvalue_ write _setvalue_;
|
|
property cy index "cy" read _getvalue_ write _setvalue_;
|
|
property cx index "cx" read _getvalue_ write _setvalue_;
|
|
property y index "y" read _getvalue_ write _setvalue_;
|
|
property x index "x" read _getvalue_ write _setvalue_;
|
|
property style index "style" read _getvalue_ write _setvalue_;
|
|
property lpszname index "lpszname" read _getvalue_ write _setvalue_;
|
|
property lpszclass index "lpszclass" read _getvalue_ write _setvalue_;
|
|
property dwexstyle index "dwexstyle" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TScrollinfo = class(tslcstructureobj) //滚动条
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT :=
|
|
MemoryAlignmentCalculate(
|
|
array(
|
|
("cbsize","int",0),
|
|
("fmask","int",0),
|
|
("nmin","int",0),
|
|
("nmax","int",0),
|
|
("npage","int",0),
|
|
("npos","int",0),
|
|
("ntrackpos","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
cbsize := _size_();
|
|
end
|
|
property cbsize:integer index "cbsize" read _getvalue_ write _setvalue_;
|
|
property fmask:integer index "fmask" read _getvalue_ write _setvalue_;
|
|
property nmin:integer index "nmin" read _getvalue_ write _setvalue_;
|
|
property nmax:integer index "nmax" read _getvalue_ write _setvalue_;
|
|
property npage:integer index "npage" read _getvalue_ write _setvalue_;
|
|
property npos:integer index "npos" read _getvalue_ write _setvalue_;
|
|
property ntrackpos:integer index "ntrackpos" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TPAINTSTRUCT=class(tslcstructureobj)
|
|
{**
|
|
@expaln(说明)wm_paint消息结构体 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hdc","intptr",0),
|
|
("ferase","int",0),
|
|
("rcpaint","int[4]",
|
|
(0,0,0,0)),
|
|
("frestore","int",0),
|
|
("fincupdate","int",0),
|
|
("rgbreserved","byte[32]",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hdc index "hdc" read _getvalue_;
|
|
property ferase index "ferase" read _getvalue_;
|
|
property rcpaint index "rcpaint" read _getvalue_;
|
|
property frestore index "frestore" read _getvalue_;
|
|
property fincupdate index "fincupdate" read _getvalue_;
|
|
property rgbreserved index "rgbreserved" read _getvalue_;
|
|
end
|
|
type TBrowseinfoA=class(tcstructwithcharptr)
|
|
{**
|
|
@explan(说明)文件夹选择结构构造 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hwndowner","intptr",0),
|
|
("pidlroot","intptr",0),
|
|
("pszdisplayname","intptr",0),
|
|
("lpsztitle","intptr",0),
|
|
("ulflags","int",0),
|
|
("lpfn","intptr",0),
|
|
("lparam","intptr",0),
|
|
("iimage","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),nil,array("lpsztitle":nil,"pszdisplayname":nil));
|
|
lpsztitle := 1024;
|
|
pszdisplayname := 1024;
|
|
end
|
|
property hwndowner index "hwndowner" read _getvalue_ write _setvalue_;
|
|
property pidlroot index "pidlroot" read _getvalue_ write _setvalue_;
|
|
property pszdisplayname index "pszdisplayname" read _getvalue_ write _setvalue_;
|
|
property lpsztitle index "lpsztitle" read _getvalue_ write _setvalue_;
|
|
property ulflags index "ulflags" read _getvalue_ write _setvalue_;
|
|
property lpfn index "lpfn" read _getvalue_ write _setvalue_;
|
|
property lparam index "lparam" read _getvalue_ write _setvalue_;
|
|
property iimage index "iimage" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TBrowseinfoA_=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明)文件夹选择结构读取 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hwndowner","intptr",0),
|
|
("pidlroot","intptr",0),
|
|
("pszdisplayname","intptr",0),
|
|
("lpsztitle","intptr",0),
|
|
("ulflags","int",0),
|
|
("lpfn","intptr",0),
|
|
("lparam","intptr",0),
|
|
("iimage","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
end
|
|
type TtagOFNA=class(tcstructwithcharptr) //字体构造
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := array(
|
|
("lstructsize","int",152),
|
|
("hwndowner","intptr",0),
|
|
("hinstance","intptr",0),
|
|
("lpstrfilter","intptr",0),
|
|
("lpstrcustomfilter","intptr",0),
|
|
("nmaxcustfilter","int",0),
|
|
("nfilterindex","int",1),
|
|
("lpstrfile","char*",2049),
|
|
("nmaxfile","int",2048),
|
|
("lpstrfiletitle","char*",512),
|
|
("nmaxfiletitle","int",511),
|
|
("lpstrinitialdir","intptr",0),
|
|
("lpstrtitle","intptr",0),
|
|
("flags","int",0), //6148
|
|
("nfileoffset","byte[2]",(0,0)),
|
|
("nfileextension","byte[2]",(0,0)),
|
|
("lpstrdefext","intptr",0),
|
|
("lcustdata","intptr",0),
|
|
("lpfnhook","intptr",0),
|
|
("lptemplatename","intptr",0),
|
|
("pvreserved","intptr",0),
|
|
("dwreserved","int",0),
|
|
("flagsex","int",0));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create()
|
|
begin
|
|
inherited create(getstruct(),array(
|
|
"lpstrfiletitle":"nmaxfiletitle",
|
|
"lpstrfile":"nmaxfile",
|
|
"lpstrcustomfilter":"nmaxcustfilter",
|
|
"lpstrtitle":nil,
|
|
"lpstrdefext":nil),array(
|
|
"lpstrfilter":nil
|
|
));
|
|
lstructsize := _size_();
|
|
end
|
|
property lstructsize index "lstructsize" read _getvalue_ write _setvalue_;
|
|
property hwndowner index "hwndowner" read _getvalue_ write _setvalue_;
|
|
property hinstance index "hinstance" read _getvalue_ write _setvalue_;
|
|
property lpstrfilter index "lpstrfilter" read _getvalue_ write _setvalue_;
|
|
property lpstrcustomfilter index "lpstrcustomfilter" read _getvalue_ write _setvalue_;
|
|
property nmaxcustfilter index "nmaxcustfilter" read _getvalue_ write _setvalue_;
|
|
property nfilterindex index "nfilterindex" read _getvalue_ write _setvalue_;
|
|
property lpstrfile index "lpstrfile" read _getvalue_ write _setvalue_;
|
|
property nmaxfile index "nmaxfile" read _getvalue_ write _setvalue_;
|
|
property lpstrfiletitle index "lpstrfiletitle" read _getvalue_ write _setvalue_;
|
|
property nmaxfiletitle index "nmaxfiletitle" read _getvalue_ write _setvalue_;
|
|
property lpstrinitialdir index "lpstrinitialdir" read _getvalue_ write _setvalue_;
|
|
property lpstrtitle index "lpstrtitle" read _getvalue_ write _setvalue_;
|
|
property flags index "flags" read _getvalue_ write _setvalue_;
|
|
property nfileoffset index "nfileoffset" read _getvalue_ write _setvalue_;
|
|
property nfileextension index "nfileextension" read _getvalue_ write _setvalue_;
|
|
property lpstrdefext index "lpstrdefext" read _getvalue_ write _setvalue_;
|
|
property lcustdata index "lcustdata" read _getvalue_ write _setvalue_;
|
|
property lpfnhook index "lpfnhook" read _getvalue_ write _setvalue_;
|
|
property lptemplatename index "lptemplatename" read _getvalue_ write _setvalue_;
|
|
property lpeditinfo index "lpeditinfo" read _getvalue_ write _setvalue_;
|
|
property lpstrprompt index "lpstrprompt" read _getvalue_ write _setvalue_;
|
|
property pvreserved index "pvreserved" read _getvalue_ write _setvalue_;
|
|
property dwreserved index "dwreserved" read _getvalue_ write _setvalue_;
|
|
property flagsex index "flagsex" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TtagOFNA_ = class(tslcstructureobj) //字体读取
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(
|
|
array(
|
|
("lstructsize","int",152),
|
|
("hwndowner","intptr",0),
|
|
("hinstance","intptr",0),
|
|
("lpstrfilter","intptr",0),
|
|
("lpstrcustomfilter","intptr",0),
|
|
("nmaxcustfilter","int",0),
|
|
("nfilterindex","int",1),
|
|
("lpstrfile","intptr",2049),
|
|
("nmaxfile","int",2048),
|
|
("lpstrfiletitle","intptr",512),
|
|
("nmaxfiletitle","int",511),
|
|
("lpstrinitialdir","intptr",0),
|
|
("lpstrtitle","intptr",0),
|
|
("flags","int",0), //6148
|
|
("nfileoffset","byte[2]",(0,0)),
|
|
("nfileextension","byte[2]",(0,0)),
|
|
("lpstrdefext","intptr",0),
|
|
("lcustdata","intptr",0),
|
|
("lpfnhook","intptr",0),
|
|
("lptemplatename","intptr",0),
|
|
("pvreserved","intptr",0),
|
|
("dwreserved","int",0),
|
|
("flagsex","int",0)));
|
|
//lpstrdefext
|
|
return SSTRUCT;
|
|
end
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
end
|
|
type TSHBMP=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("bmtype","int",0),
|
|
("bmwidth","int",0),
|
|
("bmheight","int",0),
|
|
("bmwidthbytes","int",0),
|
|
("bmplanes","short",0),
|
|
("bmbitspixel","short",0),
|
|
("bmbits","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
function getstruct2()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("bmtype","int",0),
|
|
("bmwidth","int",0),
|
|
("bmheight","int",0),
|
|
("bmwidthbytes","int",0),
|
|
("bmplanes","byte",0),
|
|
("bmbitspixel","byte",0),
|
|
{$ifdef win64}
|
|
("nop1","byte[6]",array(0,0,0,0,0,0)),
|
|
{$else}
|
|
("nop1","byte[2]",array(0,0)),
|
|
{$endif}
|
|
("bmbits","intptr",100)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property bmtype index "bmtype" read _getvalue_ write _setvalue_;
|
|
property bmwidth index "bmwidth" read _getvalue_ write _setvalue_;
|
|
property bmheight index "bmheight" read _getvalue_ write _setvalue_;
|
|
property bmwidthbytes index "bmwidthbytes" read _getvalue_ write _setvalue_;
|
|
property bmplanes index "bmplanes" read _getvalue_ write _setvalue_;
|
|
property bmbitspixel index "bmbitspixel" read _getvalue_ write _setvalue_;
|
|
property nop1 index "nop1" read _getvalue_ write _setvalue_;
|
|
property bmbits index "bmbits" read _getvalue_ write _setvalue_;
|
|
{**
|
|
@ignore(忽略) %%
|
|
@param(bmwidth)(integer) 宽度%%;
|
|
@param(bmheight)(integer) 高度%%;
|
|
@param(bmwidthbytes)(integer) 行字节数%%;
|
|
@param(bmplanes)(integer) 调色板位数%%;
|
|
@param(bmbitspixel)(integer) 像素%%;
|
|
**}
|
|
end
|
|
|
|
|
|
type TSHICON=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("ficon","int",0),
|
|
("xhotspot","int",0),
|
|
("yhotspot","int",0),
|
|
("hbmmask","intptr",0),
|
|
("hbmcolor","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property ficon index "ficon" read _getvalue_ write _setvalue_;
|
|
property xhotspot index "xhotspot" read _getvalue_ write _setvalue_;
|
|
property yhotspot index "yhotspot" read _getvalue_ write _setvalue_;
|
|
property hbmmask index "hbmmask" read _getvalue_ write _setvalue_;
|
|
property hbmcolor index "hbmcolor" read _getvalue_ write _setvalue_;
|
|
end
|
|
type ttagCHOOSECOLORA=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明) 颜色选择结构体类 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("lstructsize","int",0),
|
|
("hwndowner","intptr",0),
|
|
("hinstance","intptr",0),
|
|
("rgbresult","int",0),
|
|
("lpcustcolors","user*",array((0,"int[16]",array(0)))),
|
|
("flags","int",0),
|
|
("lcustdata","intptr",0),
|
|
("lpfnhook","intptr",0),
|
|
("lptemplatename","char*",100)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
lstructsize := _size_();
|
|
end
|
|
property lstructsize index "lstructsize" read _getvalue_ write _setvalue_;
|
|
property hwndowner index "hwndowner" read _getvalue_ write _setvalue_;
|
|
property hinstance index "hinstance" read _getvalue_ write _setvalue_;
|
|
property rgbresult index "rgbresult" read _getvalue_ write _setvalue_;
|
|
property lpcustcolors index "lpcustcolors" read _getvalue_ write _setvalue_;
|
|
property flags index "flags" read _getvalue_ write _setvalue_;
|
|
property lcustdata index "lcustdata" read _getvalue_ write _setvalue_;
|
|
property lpfnhook index "lpfnhook" read _getvalue_ write _setvalue_;
|
|
property lptemplatename index "lptemplatename" read _getvalue_ write _setvalue_;
|
|
end
|
|
type ttagCHOOSEFONTA=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明)字体选择结构体 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
Flogfont;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("lstructsize","int",0),
|
|
("hwndowner","intptr",0),
|
|
("hdc","intptr",0),
|
|
("lplogfont","intptr",0),
|
|
("ipointsize","int",0),
|
|
("flags","int",0),
|
|
("rgbcolors","int",0),
|
|
("lcustdata","intptr",0),
|
|
("lpfnhook","intptr",0),
|
|
("lptemplatename","char*",100),
|
|
("hinstance","intptr",0),
|
|
("lpszstyle","intptr",100),
|
|
("nfonttype","short",0),
|
|
("___missing_alignment__","short",0),
|
|
("nsizemin","int",0),
|
|
("nsizemax","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
lg := inherited _getvalue_("lplogfont");
|
|
Flogfont := new ttagLOGFONTA(lg ?: nil);
|
|
lplogfont := Flogfont._getptr_;
|
|
lstructsize := _size_();
|
|
end
|
|
function _getvalue_(id);override;
|
|
begin
|
|
if id="lplogfont" then
|
|
begin
|
|
return new ttagLOGFONTA(inherited);
|
|
end else
|
|
return inherited;
|
|
end
|
|
function _setvalue_(id,v);override;
|
|
begin
|
|
if id="lplogfont" and ifnumber(v)and v then
|
|
begin
|
|
inherited _setvalue_(id,v);
|
|
end else
|
|
if v is class(ttagLOGFONTA)then
|
|
begin
|
|
inherited _setvalue_(id,v._getptr_);
|
|
end else
|
|
inherited;
|
|
end
|
|
function SetFontInfo(v);
|
|
begin
|
|
if ifarray(v)then
|
|
begin
|
|
for i,vi in v do
|
|
begin
|
|
Flogfont._setvalue_(i,vi);
|
|
end
|
|
end
|
|
end
|
|
property lstructsize index "lstructsize" read _getvalue_ write _setvalue_;
|
|
property hwndowner index "hwndowner" read _getvalue_ write _setvalue_;
|
|
property hdc index "hdc" read _getvalue_ write _setvalue_;
|
|
property lplogfont index "lplogfont" read _getvalue_ write _setvalue_;
|
|
property ipointsize index "ipointsize" read _getvalue_ write _setvalue_;
|
|
property flags index "flags" read _getvalue_ write _setvalue_;
|
|
property rgbcolors index "rgbcolors" read _getvalue_ write _setvalue_;
|
|
property lcustdata index "lcustdata" read _getvalue_ write _setvalue_;
|
|
property lpfnhook index "lpfnhook" read _getvalue_ write _setvalue_;
|
|
property lptemplatename index "lptemplatename" read _getvalue_ write _setvalue_;
|
|
property hinstance index "hinstance" read _getvalue_ write _setvalue_;
|
|
property lpszstyle index "lpszstyle" read _getvalue_ write _setvalue_;
|
|
property nfonttype index "nfonttype" read _getvalue_ write _setvalue_;
|
|
//property ___missing_alignment__ index "___missing_alignment__" read _getvalue_ write _setvalue_;
|
|
property nsizemin index "nsizemin" read _getvalue_ write _setvalue_;
|
|
property nsizemax index "nsizemax" read _getvalue_ write _setvalue_;
|
|
end
|
|
type ttagLOGFONTA=class(tslcstructureobj)
|
|
{**
|
|
@explan(说明) 逻辑字体对象结构表示 %%
|
|
**}
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("height","int",15),
|
|
("width","int",0),
|
|
("escapement","int",0),
|
|
("orientation","int",0),
|
|
("weight","int",400),
|
|
("italic","byte",0),
|
|
("underline","byte",0),
|
|
("strikeout","byte",0),
|
|
("charset","byte",134),
|
|
("outprecision","byte",3),
|
|
("clipprecision","byte",2),
|
|
("quality","byte",1),
|
|
("pitchandfamily","byte",FIXED_PITCH),
|
|
("facename","char[32]","新宋体")));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property height index "height" read _getvalue_ write _setvalue_;
|
|
property width index "width" read _getvalue_ write _setvalue_;
|
|
property escapement index "escapement" read _getvalue_ write _setvalue_;
|
|
property orientation index "orientation" read _getvalue_ write _setvalue_;
|
|
property weight index "weight" read _getvalue_ write _setvalue_;
|
|
property italic index "italic" read _getvalue_ write _setvalue_;
|
|
property underline index "underline" read _getvalue_ write _setvalue_;
|
|
property strikeout index "strikeout" read _getvalue_ write _setvalue_;
|
|
property charset index "charset" read _getvalue_ write _setvalue_;
|
|
property outprecision index "outprecision" read _getvalue_ write _setvalue_;
|
|
property clipprecision index "clipprecision" read _getvalue_ write _setvalue_;
|
|
property quality index "quality" read _getvalue_ write _setvalue_;
|
|
property pitchandfamily index "pitchandfamily" read _getvalue_ write _setvalue_;
|
|
property facename index "facename" read _getvalue_ write _setvalue_;
|
|
end
|
|
type ttagTEXTMETRICA=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("tmheight","int",0),
|
|
("tmascent","int",0),
|
|
("tmdescent","int",0),
|
|
("tminternalleading","int",0),
|
|
("tmexternalleading","int",0),
|
|
("tmavecharwidth","int",0),
|
|
("tmmaxcharwidth","int",0),
|
|
("tmweight","int",0),
|
|
("tmoverhang","int",0),
|
|
("tmdigitizedaspectx","int",0),
|
|
("tmdigitizedaspecty","int",0),
|
|
("tmfirstchar","byte",0),
|
|
("tmlastchar","byte",0),
|
|
("tmdefaultchar","byte",0),
|
|
("tmbreakchar","byte",0),
|
|
("tmitalic","byte",0),
|
|
("tmunderlined","byte",0),
|
|
("tmstruckout","byte",0),
|
|
("tmpitchandfamily","byte",0),
|
|
("tmcharset","byte",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property tmheight index "tmheight" read _getvalue_ write _setvalue_;
|
|
property tmascent index "tmascent" read _getvalue_ write _setvalue_;
|
|
property tmdescent index "tmdescent" read _getvalue_ write _setvalue_;
|
|
property tminternalleading index "tminternalleading" read _getvalue_ write _setvalue_;
|
|
property tmexternalleading index "tmexternalleading" read _getvalue_ write _setvalue_;
|
|
property tmavecharwidth index "tmavecharwidth" read _getvalue_ write _setvalue_;
|
|
property tmmaxcharwidth index "tmmaxcharwidth" read _getvalue_ write _setvalue_;
|
|
property tmweight index "tmweight" read _getvalue_ write _setvalue_;
|
|
property tmoverhang index "tmoverhang" read _getvalue_ write _setvalue_;
|
|
property tmdigitizedaspectx index "tmdigitizedaspectx" read _getvalue_ write _setvalue_;
|
|
property tmdigitizedaspecty index "tmdigitizedaspecty" read _getvalue_ write _setvalue_;
|
|
property tmfirstchar index "tmfirstchar" read _getvalue_ write _setvalue_;
|
|
property tmlastchar index "tmlastchar" read _getvalue_ write _setvalue_;
|
|
property tmdefaultchar index "tmdefaultchar" read _getvalue_ write _setvalue_;
|
|
property tmbreakchar index "tmbreakchar" read _getvalue_ write _setvalue_;
|
|
property tmitalic index "tmitalic" read _getvalue_ write _setvalue_;
|
|
property tmunderlined index "tmunderlined" read _getvalue_ write _setvalue_;
|
|
property tmstruckout index "tmstruckout" read _getvalue_ write _setvalue_;
|
|
property tmpitchandfamily index "tmpitchandfamily" read _getvalue_ write _setvalue_;
|
|
property tmcharset index "tmcharset" read _getvalue_ write _setvalue_;
|
|
end
|
|
type Ttagdrawtextparams=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(("cbsize","int",0)
|
|
,("itablength","int",4)
|
|
,("ileftmargin","int",0)
|
|
,("irightmargin","int",0)
|
|
,("uilengthdrawn","int",0)
|
|
));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
cbsize := _size_();
|
|
end
|
|
property cbsize index "cbsize" read _getvalue_ write _setvalue_;
|
|
property itablength index "itablength" read _getvalue_ write _setvalue_;
|
|
property ileftmargin index "ileftmargin" read _getvalue_ write _setvalue_;
|
|
property irightmargin index "irightmargin" read _getvalue_ write _setvalue_;
|
|
property uilengthdrawn index "uilengthdrawn" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TSTYLESTRUCT = class(tslcstructureobj) //样式相关
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(
|
|
array(
|
|
("styleold","int",0),
|
|
("stylenew","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property styleold index "styleold" read _getvalue_ write _setvalue_ ;
|
|
property stylenew index "stylenew" read _getvalue_ write _setvalue_ ;
|
|
end
|
|
|
|
type tvclwindowpos_class= class(tslcstructureobj) //窗口位置信息
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct();
|
|
begin
|
|
if not SSTRUCT then
|
|
begin
|
|
SSTRUCT := MemoryAlignmentCalculate(
|
|
array(("hwndinsertafter","intptr",0),
|
|
("hwnd","intptr",0),
|
|
("x","int",0),
|
|
("y","int",0),
|
|
("cx","int",0),
|
|
("cy","int",0),
|
|
("flags","int",0)));
|
|
end
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr);override;
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property x:integer index "x" read _getvalue_ write _setvalue_;
|
|
property y:integer index "y" read _getvalue_ write _setvalue_;
|
|
property cx:integer index "cx" read _getvalue_ write _setvalue_;
|
|
property cy:integer index "cy" read _getvalue_ write _setvalue_;
|
|
property flags:integer index "flags" read _getvalue_ write _setvalue_;
|
|
property hwndinsertafter:integer index "hwndinsertafter" read _getvalue_ write _setvalue_;
|
|
property hwnd:integer index "hwnd" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TNMHDR=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hwndfrom","intptr",0),
|
|
("idfrom","intptr",0),
|
|
("code","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
class function memsize();
|
|
begin
|
|
if not SSTRUCT then getstruct();
|
|
if SSTRUCT then
|
|
begin
|
|
ldata := length(SSTRUCT)-1;
|
|
return SSTRUCT[ldata,3]+SSTRUCT[ldata,4]-SSTRUCT[0,3];
|
|
end
|
|
return 0;
|
|
end
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hwndfrom index "hwndfrom" read _getvalue_ write _setvalue_;
|
|
property idfrom index "idfrom" read _getvalue_ write _setvalue_;
|
|
property code index "code" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TWINDOWINFO=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("cbsize","int",0),
|
|
("rcwindow","int[4]",
|
|
(0,0,0,0)),
|
|
("rcclient","int[4]",
|
|
(0,0,0,0)),
|
|
("dwstyle","int",0),
|
|
("dwexstyle","int",0),
|
|
("dwwindowstatus","int",0),
|
|
("cxwindowborders","int",0),
|
|
("cywindowborders","int",0),
|
|
("atomwindowtype","byte[2]",(0,0)),
|
|
("wcreatorversion","short",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property cbsize index "cbsize" read _getvalue_ write _setvalue_;
|
|
property rcwindow index "rcwindow" read _getvalue_ write _setvalue_;
|
|
property rcclient index "rcclient" read _getvalue_ write _setvalue_;
|
|
property dwstyle index "dwstyle" read _getvalue_ write _setvalue_;
|
|
property dwexstyle index "dwexstyle" read _getvalue_ write _setvalue_;
|
|
property dwwindowstatus index "dwwindowstatus" read _getvalue_ write _setvalue_;
|
|
property cxwindowborders index "cxwindowborders" read _getvalue_ write _setvalue_;
|
|
property cywindowborders index "cywindowborders" read _getvalue_ write _setvalue_;
|
|
property atomwindowtype index "atomwindowtype" read _getvalue_ write _setvalue_;
|
|
property wcreatorversion index "wcreatorversion" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TCHECK_RESULT=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("errline","int",0),
|
|
("errmsg","char[4096]",0)
|
|
));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property errline index "errline" read _getvalue_ write _setvalue_;
|
|
property errmsg index "errmsg" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
|
|
type TNMMOUSE=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hdr","user",array(
|
|
("hwndfrom","intptr",0),
|
|
("idfrom","intptr",0),
|
|
("code","int",0))),
|
|
("dwitemspec","intptr",0),
|
|
("dwitemdata","intptr",0),
|
|
("pt","int[2]",
|
|
(0,0)),
|
|
("dwhitinfo","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hdr index "hdr" read _getvalue_ write _setvalue_;
|
|
property dwitemspec index "dwitemspec" read _getvalue_ write _setvalue_;
|
|
property dwitemdata index "dwitemdata" read _getvalue_ write _setvalue_;
|
|
property pt index "pt" read _getvalue_ write _setvalue_;
|
|
property dwhitinfo index "dwhitinfo" read _getvalue_ write _setvalue_;
|
|
end
|
|
type Ttagminmaxinfo=class(tslcstructureobj) //窗口大小相关
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("ptreserved","int[2]",
|
|
(0,0)),
|
|
("ptmaxsize","int[2]",
|
|
(0,0)),
|
|
("ptmaxposition","int[2]",
|
|
(0,0)),
|
|
("ptmintracksize","int[2]",
|
|
(0,0)),
|
|
("ptmaxtracksize","int[2]",
|
|
(0,0))));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property ptreserved index "ptreserved" read _getvalue_ write _setvalue_;
|
|
property ptmaxsize index "ptmaxsize" read _getvalue_ write _setvalue_;
|
|
property ptmaxposition index "ptmaxposition" read _getvalue_ write _setvalue_;
|
|
property ptmintracksize index "ptmintracksize" read _getvalue_ write _setvalue_;
|
|
property ptmaxtracksize index "ptmaxtracksize" read _getvalue_ write _setvalue_;
|
|
end
|
|
///////////////////////////////////////////////////////////////
|
|
type tagWNDCLASSA=class(tslcstructureobj) // 窗口类对象 %%
|
|
static classstruct;
|
|
class function getstruct();
|
|
begin
|
|
if not classstruct then
|
|
begin
|
|
classstruct := MemoryAlignmentCalculate(array(
|
|
("cbsize","int",0),
|
|
("style","int",0),
|
|
("lpfnwndproc","intptr",0),
|
|
("cbclsextra","int",0),
|
|
("cbwndextra","int",0),
|
|
("hinstance","intptr",0),
|
|
("hicon","intptr",0),
|
|
("hcursor","intptr",0),
|
|
("hbrbackground","intptr",0),
|
|
("lpszmenuname","intptr",0), //("lpszmenuname","char*",100),
|
|
("lpszclassname","char*",100),
|
|
("hiconsm","intptr",0)));
|
|
end
|
|
return classstruct;
|
|
end
|
|
function create(ptr);
|
|
begin
|
|
class(tslcstructureobj).create(getstruct(),ptr);
|
|
_setvalue_("cbsize",_size_());
|
|
end
|
|
property style:integer index "style" read _getvalue_ write _setvalue_;
|
|
property cbsize:integer index "cbsize" read _getvalue_ write _setvalue_;
|
|
property lpfnwndproc:pointer index "lpfnwndproc" read _getvalue_ write _setvalue_;
|
|
property cbclsextra:integer index "cbclsextra" read _getvalue_ write _setvalue_;
|
|
property cbwndextra:integer index "cbwndextra" read _getvalue_ write _setvalue_;
|
|
property hinstance:pointer index "hinstance" read _getvalue_ write _setvalue_;
|
|
property cbwndextra:integer index "cbwndextra" read _getvalue_ write _setvalue_;
|
|
property hicon:pointer index "hicon" read _getvalue_ write _setvalue_;
|
|
property hcursor:pointer index "hcursor" read _getvalue_ write _setvalue_;
|
|
property lpszmenuname:pointer index "lpszmenuname" read _getvalue_ write _setvalue_;
|
|
property hbrbackground:pointer index "hbrbackground" read _getvalue_ write _setvalue_;
|
|
property lpszclassname:string index "lpszclassname" read _getvalue_ write _setvalue_;
|
|
property hiconsm:pointer index "hiconsm" read _getvalue_ write _setvalue_;
|
|
end
|
|
/////////////////////////////windows进程相关结构体//////////
|
|
type T_startupinfoa=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("cb","int",0),
|
|
("lpreserved","intptr",0),
|
|
("lpdesktop","intptr",0),
|
|
("lptitle","intptr",0),
|
|
("dwx","int",0),
|
|
("dwy","int",0),
|
|
("dwxsize","int",0),
|
|
("dwysize","int",0),
|
|
("dwxcountchars","int",0),
|
|
("dwycountchars","int",0),
|
|
("dwfillattribute","int",0),
|
|
("dwflags","int",0),
|
|
("wshowwindow","short",0),
|
|
("cbreserved2","short",0),
|
|
("lpreserved2","intptr",0),
|
|
("hstdinput","intptr",0),
|
|
("hstdoutput","intptr",0),
|
|
("hstderror","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
cb := _size_();
|
|
end
|
|
property cb index "cb" read _getvalue_ write _setvalue_;
|
|
property lpreserved index "lpreserved" read _getvalue_ write _setvalue_;
|
|
property lpdesktop index "lpdesktop" read _getvalue_ write _setvalue_;
|
|
property lptitle index "lptitle" read _getvalue_ write _setvalue_;
|
|
property dwx index "dwx" read _getvalue_ write _setvalue_;
|
|
property dwy index "dwy" read _getvalue_ write _setvalue_;
|
|
property dwxsize index "dwxsize" read _getvalue_ write _setvalue_;
|
|
property dwysize index "dwysize" read _getvalue_ write _setvalue_;
|
|
property dwxcountchars index "dwxcountchars" read _getvalue_ write _setvalue_;
|
|
property dwycountchars index "dwycountchars" read _getvalue_ write _setvalue_;
|
|
property dwfillattribute index "dwfillattribute" read _getvalue_ write _setvalue_;
|
|
property dwflags index "dwflags" read _getvalue_ write _setvalue_;
|
|
property wshowwindow index "wshowwindow" read _getvalue_ write _setvalue_;
|
|
property cbreserved2 index "cbreserved2" read _getvalue_ write _setvalue_;
|
|
property lpreserved2 index "lpreserved2" read _getvalue_ write _setvalue_;
|
|
property hstdinput index "hstdinput" read _getvalue_ write _setvalue_;
|
|
property hstdoutput index "hstdoutput" read _getvalue_ write _setvalue_;
|
|
property hstderror index "hstderror" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type T_process_information=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hprocess","intptr",0),
|
|
("hthread","intptr",0),
|
|
("dwprocessid","int",0),
|
|
("dwthreadid","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hprocess index "hprocess" read _getvalue_ write _setvalue_;
|
|
property hthread index "hthread" read _getvalue_ write _setvalue_;
|
|
property dwprocessid index "dwprocessid" read _getvalue_ write _setvalue_;
|
|
property dwthreadid index "dwthreadid" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type T_security_attributes=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("nlength","int",0),
|
|
("lpsecuritydescriptor","intptr",0),
|
|
("binherithandle","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
nlength := _size_();
|
|
end
|
|
property nlength index "nlength" read _getvalue_ write _setvalue_;
|
|
property lpsecuritydescriptor index "lpsecuritydescriptor" read _getvalue_ write _setvalue_;
|
|
property binherithandle index "binherithandle" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TCreateParams=class()
|
|
{**
|
|
@explan(说明) 窗口控件构造参数对象 %%
|
|
**}
|
|
{**
|
|
@ignore(忽略)
|
|
**}
|
|
private
|
|
FParams;
|
|
public
|
|
{**
|
|
@param(Caption)(string) 控件标题 %%
|
|
@param(Style)(integer) 控件样式 %%
|
|
@param(ExStyle)(integer) 控件扩展样式 %%
|
|
@param(winclass)() 窗口类样式 %%
|
|
**}
|
|
Caption:string;
|
|
Style:integer;
|
|
ExStyle:integer;
|
|
X,Y:Integer;
|
|
CreateWithSubClass;
|
|
Width,Height:Integer;
|
|
WndParent:HWnd;
|
|
Param:Pointer;
|
|
winclass:tagWNDCLASSA;
|
|
subclass:tagWNDCLASSA;
|
|
WinClassName:string;
|
|
{**
|
|
@param(tagWNDCLASSA)() 依赖标准控件基类 %%
|
|
@param(WinClassName)() 窗口类名称 %%
|
|
@param(SubClassName)() 依赖窗口基类名称 %%
|
|
@param(subclasswndproc)() 依赖窗口基类消息函数 %%
|
|
@param(Winclasswndproc)() 窗口类消息函数 %%
|
|
@param(cstyle)(integer) 窗口类样式 %%
|
|
@param(id)(integer) 窗口id 自动分配 %%
|
|
@param(happ)(pointer) 进程句柄 自动分配 %%
|
|
**}
|
|
SubClassName:string;
|
|
subclasswndproc:pointer;
|
|
Winclasswndproc:pointer;
|
|
id;
|
|
cstyle;
|
|
//cbrush;
|
|
happ;
|
|
public
|
|
function create();
|
|
begin
|
|
FParams := array();
|
|
Caption := "";
|
|
Style := 0;
|
|
ExStyle := 0;
|
|
id := x := y := 0;
|
|
Width := Height := 0;
|
|
WndParent := 0;
|
|
Param := 0;
|
|
WinClassName := 0;
|
|
SubClassName := 0;
|
|
WinClassName := "tsui_window";
|
|
subclasswndproc := 0;
|
|
Winclasswndproc := 0;
|
|
winclass := new tagWNDCLASSA();
|
|
subclass := new tagWNDCLASSA();
|
|
cbsize := winclass._size_();
|
|
winclass._setvalue_("cbsize",cbsize);
|
|
subclass._setvalue_("cbsize",cbsize);
|
|
cstyle := 0;
|
|
end
|
|
function operator[](index);
|
|
begin
|
|
if ifstring(index)then
|
|
begin
|
|
nindex := lowercase(index);
|
|
try
|
|
return invoke(self(true),nindex);
|
|
except
|
|
return FParams[nindex];
|
|
end
|
|
end else
|
|
return FParams[index];
|
|
end
|
|
function operator[1](index,value);
|
|
begin
|
|
if ifstring(index)then
|
|
begin
|
|
nindex := lowercase(index);
|
|
try
|
|
invoke(self(true),index,1,value);
|
|
except
|
|
FParams[nindex]:= value;
|
|
end
|
|
end else
|
|
FParams[index]:= value;
|
|
end
|
|
end
|
|
|
|
////////////////////////socket 结构体////////////////////////////////////
|
|
type TSockaddr=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("sa_family","short",0),
|
|
("sa_data","char[14]",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property sa_family index "sa_family" read _getvalue_ write _setvalue_;
|
|
property sa_data index "sa_data" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TSockaddr_in=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
FOpr;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("sin_family","short",0),
|
|
("sin_port","short",0),
|
|
("sin_addr","int",0),
|
|
("sin_zero","char[8]",0)));
|
|
return SSTRUCT;
|
|
end
|
|
function writeIntShortN(n,V);
|
|
begin
|
|
if not(n >= 0 and n <= 1)then exit;
|
|
nv := sin_addr;
|
|
bs := FOpr.IntToShorts(nv);
|
|
bs[n]:= v;
|
|
sin_addr := FOpr.ShortsToInt(bs);
|
|
end
|
|
function writeIntByteN(n,V);
|
|
begin
|
|
if not(n >= 0 and n <= 3)then exit;
|
|
nv := sin_addr;
|
|
bs := FOpr.IntAsBytes(nv);
|
|
bs[n]:= v;
|
|
sin_addr := FOpr.bytesasint(bs);
|
|
end
|
|
function ReadIntShortN(N);
|
|
begin
|
|
if not(n >= 0 and n <= 1)then exit;
|
|
nv := sin_addr;
|
|
bs := FOpr.IntToShorts(nv);
|
|
return bs[n];
|
|
end
|
|
function ReadIntByteN(N);
|
|
begin
|
|
if not(n >= 0 and n <= 3)then exit;
|
|
nv := sin_addr;
|
|
bs := FOpr.IntAsBytes(nv);
|
|
return bs[n];
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
FOpr := new TByteDataOP();
|
|
end
|
|
property s_b1 index 0 read ReadIntByteN write writeIntByteN;
|
|
property s_b2 index 1 read ReadIntByteN write writeIntByteN;
|
|
property s_b3 index 2 read ReadIntByteN write writeIntByteN;
|
|
property s_b4 index 3 read ReadIntByteN write writeIntByteN;
|
|
property s_w1 index 0 read ReadIntShortN write writeIntShortN;
|
|
property s_w2 index 1 read ReadIntShortN write writeIntShortN;
|
|
property sin_family index "sin_family" read _getvalue_ write _setvalue_;
|
|
property sin_port index "sin_port" read _getvalue_ write _setvalue_;
|
|
property sin_addr index "sin_addr" read _getvalue_ write _setvalue_;
|
|
property sin_zero index "sin_zero" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TSockaddr_in6=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("sin6_family","short",0),
|
|
("sin6_port","short",0),
|
|
("sin6_flowinfo","long",0),
|
|
("sin6_addr","byte[16]",array()), //union byte16 short8
|
|
("sin6_scope_id","long",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property sin6_family index "sin6_family" read _getvalue_ write _setvalue_;
|
|
property sin6_port index "sin6_port" read _getvalue_ write _setvalue_;
|
|
property sin6_flowinfo index "sin6_flowinfo" read _getvalue_ write _setvalue_;
|
|
property sin6_addr index "sin6_addr" read _getvalue_ write _setvalue_;
|
|
property sin6_scope_id index "sin6_scope_id" read _getvalue_ write _setvalue_;
|
|
end
|
|
type TWSADATA=class(tslcstructureobj) //有点不理解
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then
|
|
{$IFDEF win64}
|
|
SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("wversion","short",0),
|
|
("whighversion","short",0),
|
|
("imaxsockets","short",0),
|
|
("imaxudpdg","short",0),
|
|
("lpvendorinfo","char*",100),
|
|
("szdescription","char[257]",0),
|
|
("szsystemstatus","char[129]",0)));
|
|
{$ELSE}
|
|
SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("wversion","short",0),
|
|
("whighversion","short",0),
|
|
("szdescription","char[157]",0),
|
|
("szsystemstatus","char[129]",0),
|
|
("imaxsockets","short",0),
|
|
("imaxudpdg","short",0),
|
|
("lpvendorinfo","char*",100)));
|
|
{$ENDIF}
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property wversion index "wversion" read _getvalue_ write _setvalue_;
|
|
property whighversion index "whighversion" read _getvalue_ write _setvalue_;
|
|
property imaxsockets index "imaxsockets" read _getvalue_ write _setvalue_;
|
|
property imaxudpdg index "imaxudpdg" read _getvalue_ write _setvalue_;
|
|
property lpvendorinfo index "lpvendorinfo" read _getvalue_ write _setvalue_;
|
|
property szdescription index "szdescription" read _getvalue_ write _setvalue_;
|
|
property szsystemstatus index "szsystemstatus" read _getvalue_ write _setvalue_;
|
|
end
|
|
type Ttagprocessentry32=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(("dwsize","int",0)
|
|
,("cntusage","int",0)
|
|
,("th32processid","int",0)
|
|
,("th32defaultheapid","intptr",0)
|
|
,("th32moduleid","int",0)
|
|
,("cntthreads","int",0)
|
|
,("th32parentprocessid","int",0)
|
|
,("pcpriclassbase","int",0)
|
|
,("dwflags","int",0)
|
|
,("szexefile","char[260]",0)
|
|
));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
dwsize := _size_();
|
|
end
|
|
property dwsize index "dwsize" read _getvalue_ write _setvalue_;
|
|
property cntusage index "cntusage" read _getvalue_ write _setvalue_;
|
|
property th32processid index "th32processid" read _getvalue_ write _setvalue_;
|
|
property th32defaultheapid index "th32defaultheapid" read _getvalue_ write _setvalue_;
|
|
property th32moduleid index "th32moduleid" read _getvalue_ write _setvalue_;
|
|
property cntthreads index "cntthreads" read _getvalue_ write _setvalue_;
|
|
property th32parentprocessid index "th32parentprocessid" read _getvalue_ write _setvalue_;
|
|
property pcpriclassbase index "pcpriclassbase" read _getvalue_ write _setvalue_;
|
|
property dwflags index "dwflags" read _getvalue_ write _setvalue_;
|
|
property szexefile index "szexefile" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
type Ttagmoduleentry32=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(("dwsize","int",0)
|
|
,("th32moduleid","int",0)
|
|
,("th32processid","int",0)
|
|
,("glblcntusage","int",0)
|
|
,("proccntusage","int",0)
|
|
,("modbaseaddr","intptr",0)
|
|
,("modbasesize","int",0)
|
|
,("hmodule","intptr",0)
|
|
,("szmodule","char[256]",0)
|
|
,("szexepath","char[260]",0)
|
|
));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
dwsize := _size_();
|
|
end
|
|
property dwsize index "dwsize" read _getvalue_ write _setvalue_;
|
|
property th32moduleid index "th32moduleid" read _getvalue_ write _setvalue_;
|
|
property th32processid index "th32processid" read _getvalue_ write _setvalue_;
|
|
property glblcntusage index "glblcntusage" read _getvalue_ write _setvalue_;
|
|
property proccntusage index "proccntusage" read _getvalue_ write _setvalue_;
|
|
property modbaseaddr index "modbaseaddr" read _getvalue_ write _setvalue_;
|
|
property modbasesize index "modbasesize" read _getvalue_ write _setvalue_;
|
|
property hmodule index "hmodule" read _getvalue_ write _setvalue_;
|
|
property szmodule index "szmodule" read _getvalue_ write _setvalue_;
|
|
property szexepath index "szexepath" read _getvalue_ write _setvalue_;
|
|
end
|
|
type tagCOMPOSITIONFORM=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("dwstyle","int",4),
|
|
("ptcurrentpos","intptr",0),
|
|
("rcarea","int[4]",array(0,0,0,0))),nil,nil,1);
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create()
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
FPonter := new TCPoint();
|
|
_setvalue_("ptcurrentpos",FPonter._getptr_());
|
|
end
|
|
property dwstyle index "dwstyle" read _getvalue_ write _setvalue_;
|
|
property ptcurrentpos read FPonter;
|
|
property rcarea index "rcarea" read _getvalue_ write _setvalue_;
|
|
private
|
|
FPonter;
|
|
end
|
|
type Ttagxform=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
(0,"float",0),
|
|
(1,"float",0),
|
|
(2,"float",0),
|
|
(3,"float",0),
|
|
(4,"float",0),
|
|
(5,"float",0)
|
|
)
|
|
);
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property eM11 index 0 read _getvalue_ write _setvalue_;
|
|
property eM12 index 1 read _getvalue_ write _setvalue_;
|
|
property eM21 index 2 read _getvalue_ write _setvalue_;
|
|
property eM22 index 3 read _getvalue_ write _setvalue_;
|
|
property edx index 4 read _getvalue_ write _setvalue_;
|
|
property edy index 5 read _getvalue_ write _setvalue_;
|
|
end
|
|
implementation
|
|
(*
|
|
|
|
type TMONITORINFO=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("cbsize","int",0),
|
|
("rcmonitor","int[4]",
|
|
(0,0,0,0)),
|
|
("rcwork","int[4]",
|
|
(0,0,0,0)),
|
|
("dwflags","int",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
cbsize := _size_();
|
|
end
|
|
property cbsize index "cbsize" read _getvalue_ write _setvalue_;
|
|
property rcmonitor index "rcmonitor" read _getvalue_ write _setvalue_;
|
|
property rcwork index "rcwork" read _getvalue_ write _setvalue_;
|
|
property dwflags index "dwflags" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
//工具栏,状态栏
|
|
type ttagNMCUSTOMDRAWINFO=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hdr","user",
|
|
(
|
|
("hwndfrom","intptr",0),
|
|
("idfrom","intptr",0),
|
|
("code","int",0))),
|
|
("dwdrawstage","int",0),
|
|
("hdc","intptr",0),
|
|
("rc","int[4]",
|
|
(0,0,0,0)),
|
|
("dwitemspec","intptr",0),
|
|
("uitemstate","int",0),
|
|
("litemlparam","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
property hdr index "hdr" read _getvalue_ write _setvalue_;
|
|
property dwdrawstage index "dwdrawstage" read _getvalue_ write _setvalue_;
|
|
property hdc index "hdc" read _getvalue_ write _setvalue_;
|
|
property rc index "rc" read _getvalue_ write _setvalue_;
|
|
property dwitemspec index "dwitemspec" read _getvalue_ write _setvalue_;
|
|
property uitemstate index "uitemstate" read _getvalue_ write _setvalue_;
|
|
property litemlparam index "litemlparam" read _getvalue_ write _setvalue_;
|
|
end
|
|
|
|
|
|
*)
|
|
{type ttagNMLISTVIEW=class(tslcstructureobj)
|
|
private
|
|
static SSTRUCT;
|
|
class function getstruct()
|
|
begin
|
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
("hdr","user",
|
|
(
|
|
("hwndfrom","intptr",0),
|
|
("idfrom","intptr",0),
|
|
("code","int",0))),
|
|
("iitem","int",0),
|
|
("isubitem","int",0),
|
|
("unewstate","int",0),
|
|
("uoldstate","int",0),
|
|
("uchanged","int",0),
|
|
("ptaction","int[2]",
|
|
(0,0)),
|
|
("lparam","intptr",0)));
|
|
return SSTRUCT;
|
|
end
|
|
public
|
|
function create(ptr)
|
|
begin
|
|
inherited create(getstruct(),ptr);
|
|
end
|
|
end}
|
|
|
|
initialization
|
|
|
|
|
|
|
|
|
|
end. |