tslediter/funcext/tvclib/utslvclmemstruct.tsf

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.