commctrl.pp 387 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 1999-2004 by Marco van de Voort
  4. member of the Free Pascal development team.
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. Original copyright statement follows.
  11. **************************************************************************
  12. * *
  13. * commctrl.h - - Interface for the Windows Common Controls *
  14. * *
  15. * Version 1.2 *
  16. * *
  17. * Copyright (c) Microsoft Corporation. All rights reserved. *
  18. * *
  19. **************************************************************************
  20. Note: This is an initial translation, and probably _full_ of bugs, this
  21. is because my conversion tool was flawed, and a lot of postediting
  22. was needed, which is bound to introduce bugs and inconsequencies
  23. This is an huge unit, and its maintenance and compability is not
  24. a top-priority.
  25. I prefer patches as bugfix over bugreports, and
  26. preferably patches with lots of fixes at once.
  27. If you can't make a patch, at least research the bug thoroughly,
  28. and provide as much info as possible (which windows version,
  29. the C prototype from the sdk, etc)
  30. Help the FPC team, and try to do as much as possible yourself.
  31. }
  32. Unit CommCtrl;
  33. Interface
  34. {$Mode ObjFPC}
  35. Uses Windows,CTypes,ActiveX;
  36. // --------------------
  37. // --------------------
  38. CONST CommCtrlDLL = 'comctl32.dll';
  39. // Some reasonal defaults.
  40. // for XP only set NT to $%0501 and IE to $0600
  41. //
  42. // The NT conditional is only used for XP/no XP.
  43. {$DEFINE WIN32_IE=$0500}
  44. {$DEFINE IE3PLUS}
  45. {$DEFINE IE4PLUS}
  46. {$define IE5plus}
  47. {$define WIN32XP}
  48. {$define ie501plus}
  49. {$ifdef win32}
  50. {$define _win32}
  51. {$endif win32}
  52. {$ifdef win64}
  53. {$define _win32}
  54. {$endif win64}
  55. {$DEFINE WIN32_WINNT=0} // NO XP
  56. {$DEFINE __IStream_INTERFACE_DEFINED__} // lpstream defined in activex afaik.
  57. // Sanity check in source. Not translated:
  58. //if (WIN32_IE < $0400) && defined(WIN32_WINNT) && (WIN32_WINNT >= $0500)}
  59. // #error _WIN32_IE setting conflicts with _WIN32_WINNT setting
  60. //
  61. // Users of this header may define any number of these constants to avoid
  62. // the definitions of each functional group.
  63. //
  64. // NOTOOLBAR Customizable bitmap-button toolbar control.
  65. // NOUPDOWN Up and Down arrow increment/decrement control.
  66. // NOSTATUSBAR Status bar control.
  67. // NOMENUHELP APIs to help manage menus, especially with a status bar.
  68. // NOTRACKBAR Customizable column-width tracking control.
  69. // NODRAGLIST APIs to make a listbox source and sink drag&drop actions.
  70. // NOPROGRESS Progress gas gauge.
  71. // NOHOTKEY HotKey control
  72. // NOHEADER Header bar control.
  73. // NOIMAGEAPIS ImageList apis.
  74. // NOLISTVIEW ListView control.
  75. // NOTREEVIEW TreeView control.
  76. // NOTABCONTROL Tab control.
  77. // NOANIMATE Animate control.
  78. // NOBUTTON Button control.
  79. // NOSTATIC Static control.
  80. // NOEDIT Edit control.
  81. // NOLISTBOX Listbox control.
  82. // NOCOMBOBOX Combobox control.
  83. // NOSCROLLBAR Scrollbar control.
  84. //
  85. //=============================================================================
  86. // include <prsht.h>
  87. Procedure InitCommonControls; stdcall; external commctrldll name 'InitCommonControls';
  88. {$ifdef ie3plus}
  89. TYPE
  90. tagINITCOMMONCONTROLSEX = Record
  91. dwSize : DWORD; // size of this structure
  92. dwICC : DWORD; // flags indicating which classes to be initialized
  93. END;
  94. _INITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
  95. LPINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
  96. TINITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX;
  97. PINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX;
  98. CONST
  99. ICC_LISTVIEW_CLASSES = $00000001; // listview, header
  100. ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips
  101. ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips
  102. ICC_TAB_CLASSES = $00000008; // tab, tooltips
  103. ICC_UPDOWN_CLASS = $00000010; // updown
  104. ICC_PROGRESS_CLASS = $00000020; // progress
  105. ICC_HOTKEY_CLASS = $00000040; // hotkey
  106. ICC_ANIMATE_CLASS = $00000080; // animate
  107. ICC_WIN95_CLASSES = $000000FF;
  108. ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown
  109. ICC_USEREX_CLASSES = $00000200; // comboex
  110. ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control
  111. {$ifdef ie4plus}
  112. ICC_INTERNET_CLASSES = $00000800;
  113. ICC_PAGESCROLLER_CLASS = $00001000; // page scroller
  114. ICC_NATIVEFNTCTL_CLASS = $00002000; // native font control
  115. {$ENDIF}
  116. {$ifdef WIN32XP}
  117. ICC_STANDARD_CLASSES = $00004000;
  118. ICC_LINK_CLASS = $00008000;
  119. {$ENDIF}
  120. function InitCommonControlsEx(var rec : TINITCOMMONCONTROLSEX):BOOL; stdcall; external commctrldll name 'InitCommonControlsEx';
  121. {$ENDIF} // _WIN32_IE >= 0x0300
  122. CONST
  123. ODT_HEADER = 100;
  124. ODT_TAB = 101;
  125. ODT_LISTVIEW = 102;
  126. //====== WM_NOTIFY codes (NMHDR.code values) ==================================
  127. CONST
  128. NM_FIRST = (0- 0); // generic to all controls
  129. NM_LAST = (0- 99);
  130. LVN_FIRST = (0-100); // listview
  131. LVN_LAST = (0-199);
  132. // Property sheet reserved (0U-200U) - (0U-299U) - see prsht.h
  133. HDN_FIRST = (0-300); // header
  134. HDN_LAST = (0-399);
  135. TVN_FIRST = (0-400); // treeview
  136. TVN_LAST = (0-499);
  137. TTN_FIRST = (0-520); // tooltips
  138. TTN_LAST = (0-549);
  139. TCN_FIRST = (0-550); // tab control
  140. TCN_LAST = (0-580);
  141. // Shell reserved (0U-580U) - (0U-589U)
  142. CDN_FIRST = (0-601); // common dialog (new)
  143. CDN_LAST = (0-699);
  144. TBN_FIRST = (0-700); // toolbar
  145. TBN_LAST = (0-720);
  146. UDN_FIRST = (0-721); // updown
  147. UDN_LAST = (0-740);
  148. {$ifdef ie3plus}
  149. MCN_FIRST = (0-750); // monthcal
  150. MCN_LAST = (0-759);
  151. DTN_FIRST = (0-760); // datetimepick
  152. DTN_LAST = (0-799);
  153. CBEN_FIRST = (0-800); // combo box ex
  154. CBEN_LAST = (0-830);
  155. RBN_FIRST = (0-831); // rebar
  156. RBN_LAST = (0-859);
  157. {$ENDIF}
  158. {$ifdef ie4plus}
  159. IPN_FIRST = (0-860); // internet address
  160. IPN_LAST = (0-879); // internet address
  161. SBN_FIRST = (0-880); // status bar
  162. SBN_LAST = (0-899);
  163. PGN_FIRST = (0-900); // Pager Control
  164. PGN_LAST = (0-950);
  165. {$ENDIF}
  166. {$ifdef ie5plus}
  167. {$IFNDEF WMN_FIRST}
  168. WMN_FIRST = (0-1000);
  169. WMN_LAST = (0-1200);
  170. {$ENDIF}
  171. {$ENDIF}
  172. {$ifdef Win32XP}
  173. BCN_FIRST = (0-1250);
  174. BCN_LAST = (0-1350);
  175. {$ENDIF}
  176. MSGF_COMMCTRL_BEGINDRAG = $4200;
  177. MSGF_COMMCTRL_SIZEHEADER = $4201;
  178. MSGF_COMMCTRL_DRAGSELECT = $4202;
  179. MSGF_COMMCTRL_TOOLBARCUST = $4203;
  180. //====== Ranges for control message IDs =======================================
  181. LVM_FIRST = $1000; // ListView messages
  182. TV_FIRST = $1100; // TreeView messages
  183. HDM_FIRST = $1200; // Header messages
  184. TCM_FIRST = $1300; // Tab control messages
  185. {$ifdef ie4plus}
  186. PGM_FIRST = $1400; // Pager control messages
  187. {$ifdef win32xp}
  188. ECM_FIRST = $1500; // Edit control messages
  189. BCM_FIRST = $1600; // Button control messages
  190. CBM_FIRST = $1700; // Combobox control messages
  191. {$ENDIF}
  192. CCM_FIRST = $2000; // Common control shared messages
  193. CCM_LAST = (CCM_FIRST + $200);
  194. CCM_SETBKCOLOR = (CCM_FIRST + 1); // lParam is bkColor
  195. TYPE
  196. tagCOLORSCHEME = Record
  197. dwSize : DWORD;
  198. clrBtnHighlight : COLORREF; // highlight color
  199. clrBtnShadow : COLORREF; // shadow color
  200. END;
  201. COLORSCHEME = tagCOLORSCHEME;
  202. LPCOLORSCHEME = ^tagCOLORSCHEME;
  203. TCOLORSCHEME = tagCOLORSCHEME;
  204. PCOLORSCHEME = ^tagCOLORSCHEME;
  205. CONST
  206. CCM_SETCOLORSCHEME = (CCM_FIRST + 2); // lParam is color scheme
  207. CCM_GETCOLORSCHEME = (CCM_FIRST + 3); // fills in COLORSCHEME pointed to by lParam
  208. CCM_GETDROPTARGET = (CCM_FIRST + 4);
  209. CCM_SETUNICODEFORMAT = (CCM_FIRST + 5);
  210. CCM_GETUNICODEFORMAT = (CCM_FIRST + 6);
  211. {$ifdef ie5plus}
  212. {$ifdef win32xp}
  213. COMCTL32_VERSION = 6;
  214. {$ELSE}
  215. COMCTL32_VERSION = 5;
  216. {$ENDIF}
  217. CCM_SETVERSION = (CCM_FIRST + $7);
  218. CCM_GETVERSION = (CCM_FIRST + $8);
  219. CCM_SETNOTIFYWINDOW = (CCM_FIRST + $9); // wParam == hwndParent.
  220. {$ifdef win32xp}
  221. CCM_SETWINDOWTHEME = (CCM_FIRST + $b);
  222. CCM_DPISCALE = (CCM_FIRST + $c); // wParam == Awareness
  223. {$ENDIF}
  224. {$ENDIF} // (_WIN32_IE >= 0x0500)
  225. {$ENDIF} // (_WIN32_IE >= 0x0400)
  226. {$ifdef ie4plus}
  227. // for tooltips
  228. INFOTIPSIZE = 1024;
  229. {$ENDIF}
  230. //====== WM_NOTIFY Macros =====================================================
  231. // Macro 8
  232. Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var _lParam : NMHDR ;fn :Pointer);
  233. // Macro 9
  234. Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn :pointer ):LRESULT;
  235. //====== Generic WM_NOTIFY notification codes =================================
  236. CONST
  237. NM_OUTOFMEMORY = (NM_FIRST-1);
  238. NM_CLICK = (NM_FIRST-2); // uses NMCLICK struct
  239. NM_DBLCLK = (NM_FIRST-3);
  240. NM_RETURN = (NM_FIRST-4);
  241. NM_RCLICK = (NM_FIRST-5); // uses NMCLICK struct
  242. NM_RDBLCLK = (NM_FIRST-6);
  243. NM_SETFOCUS = (NM_FIRST-7);
  244. NM_KILLFOCUS = (NM_FIRST-8);
  245. {$ifdef ie3plus}
  246. NM_CUSTOMDRAW = (NM_FIRST-12);
  247. NM_HOVER = (NM_FIRST-13);
  248. {$ENDIF}
  249. {$ifdef ie4plus}
  250. NM_NCHITTEST = (NM_FIRST-14); // uses NMMOUSE struct
  251. NM_KEYDOWN = (NM_FIRST-15); // uses NMKEY struct
  252. NM_RELEASEDCAPTURE = (NM_FIRST-16);
  253. NM_SETCURSOR = (NM_FIRST-17); // uses NMMOUSE struct
  254. NM_CHAR = (NM_FIRST-18); // uses NMCHAR struct
  255. {$ENDIF}
  256. {$ifdef ie401plus}
  257. NM_TOOLTIPSCREATED = (NM_FIRST-19); // notify of when the tooltips window is create
  258. {$ENDIF}
  259. {$ifdef ie5plus}
  260. NM_LDOWN = (NM_FIRST-20);
  261. NM_RDOWN = (NM_FIRST-21);
  262. NM_THEMECHANGED = (NM_FIRST-22);
  263. {$ENDIF}
  264. {$IFNDEF CCSIZEOF_STRUCT}
  265. // Macro 10
  266. // #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
  267. {$ENDIF}
  268. //====== Generic WM_NOTIFY notification structures ============================
  269. {$ifdef ie401plus}
  270. TYPE
  271. tagNMTOOLTIPSCREATED = Record
  272. hdr : NMHDR;
  273. hwndToolTips : HWND;
  274. END;
  275. NMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED;
  276. LPNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED;
  277. TNMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED;
  278. PNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED;
  279. {$ENDIF}
  280. {$ifdef ie4plus}
  281. Type
  282. tagNMMOUSE = Record
  283. hdr : NMHDR;
  284. dwItemSpec : DWORD_PTR;
  285. dwItemData : DWORD_PTR;
  286. pt : POINT;
  287. dwHitInfo : LPARAM; // any specifics about where on the item or control the mouse is
  288. END;
  289. NMMOUSE = tagNMMOUSE;
  290. LPNMMOUSE = ^tagNMMOUSE;
  291. TNMMOUSE = tagNMMOUSE;
  292. PNMMOUSE = ^tagNMMOUSE;
  293. NMCLICK = NMMOUSE;
  294. LPNMCLICK = LPNMMOUSE;
  295. // Generic structure to request an object of a specific type.
  296. tagNMOBJECTNOTIFY = Record
  297. hdr : NMHDR;
  298. iItem : cint;
  299. {$IFDEF __IID_DEFINED__}
  300. piid : PIID;
  301. {$ELSE}
  302. piid : Pointer;
  303. {$ENDIF}
  304. pObject : Pointer;
  305. hResult : HRESULT;
  306. dwFlags : DWORD; // control specific flags (hints as to where in iItem it hit)
  307. END;
  308. NMOBJECTNOTIFY = tagNMOBJECTNOTIFY;
  309. LPNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY;
  310. TNMOBJECTNOTIFY = tagNMOBJECTNOTIFY;
  311. PNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY;
  312. // Generic structure for a key
  313. tagNMKEY = Record
  314. hdr : NMHDR;
  315. nVKey : UINT;
  316. uFlags : UINT;
  317. END;
  318. NMKEY = tagNMKEY;
  319. LPNMKEY = ^tagNMKEY;
  320. TNMKEY = tagNMKEY;
  321. PNMKEY = ^tagNMKEY;
  322. // Generic structure for a character
  323. tagNMCHAR = Record
  324. hdr : NMHDR;
  325. ch : UINT;
  326. dwItemPrev : DWORD; // Item previously selected
  327. dwItemNext : DWORD; // Item to be selected
  328. END;
  329. NMCHAR = tagNMCHAR;
  330. LPNMCHAR = ^tagNMCHAR;
  331. TNMCHAR = tagNMCHAR;
  332. PNMCHAR = ^tagNMCHAR;
  333. {$ENDIF} // _WIN32_IE >= 0x0400
  334. {$ifdef ie3plus}
  335. //==================== CUSTOM DRAW ==========================================
  336. // custom draw return flags
  337. // values under 0x00010000 are reserved for global custom draw values.
  338. // above that are for specific controls
  339. CONST
  340. CDRF_DODEFAULT = $00000000;
  341. CDRF_NEWFONT = $00000002;
  342. CDRF_SKIPDEFAULT = $00000004;
  343. CDRF_NOTIFYPOSTPAINT = $00000010;
  344. CDRF_NOTIFYITEMDRAW = $00000020;
  345. {$ifdef ie4plus}
  346. CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
  347. {$ENDIF}
  348. CDRF_NOTIFYPOSTERASE = $00000040;
  349. // drawstage flags
  350. // values under 0x00010000 are reserved for global custom draw values.
  351. // above that are for specific controls
  352. CDDS_PREPAINT = $00000001;
  353. CDDS_POSTPAINT = $00000002;
  354. CDDS_PREERASE = $00000003;
  355. CDDS_POSTERASE = $00000004;
  356. // the 0x000010000 bit means it's individual item specific
  357. CDDS_ITEM = $00010000;
  358. CDDS_ITEMPREPAINT = (CDDS_ITEM OR CDDS_PREPAINT);
  359. CDDS_ITEMPOSTPAINT = (CDDS_ITEM OR CDDS_POSTPAINT);
  360. CDDS_ITEMPREERASE = (CDDS_ITEM OR CDDS_PREERASE);
  361. CDDS_ITEMPOSTERASE = (CDDS_ITEM OR CDDS_POSTERASE);
  362. {$ifdef ie4plus}
  363. CDDS_SUBITEM = $00020000;
  364. {$ENDIF}
  365. // itemState flags
  366. CDIS_SELECTED = $0001;
  367. CDIS_GRAYED = $0002;
  368. CDIS_DISABLED = $0004;
  369. CDIS_CHECKED = $0008;
  370. CDIS_FOCUS = $0010;
  371. CDIS_DEFAULT = $0020;
  372. CDIS_HOT = $0040;
  373. CDIS_MARKED = $0080;
  374. CDIS_INDETERMINATE = $0100;
  375. {$ifdef win32xp}
  376. CDIS_SHOWKEYBOARDCUES = $0200;
  377. {$ENDIF}
  378. TYPE
  379. tagNMCUSTOMDRAWINFO = Record
  380. hdr : NMHDR;
  381. dwDrawStage : DWORD;
  382. hdc : HDC;
  383. rc : RECT;
  384. dwItemSpec : DWORD_PTR; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
  385. uItemState : UINT;
  386. lItemlParam : LPARAM;
  387. END;
  388. NMCUSTOMDRAW = tagNMCUSTOMDRAWINFO;
  389. LPNMCUSTOMDRAW = ^tagNMCUSTOMDRAWINFO;
  390. TNMCUSTOMDRAWINFO = tagNMCUSTOMDRAWINFO;
  391. PNMCUSTOMDRAWINFO = ^tagNMCUSTOMDRAWINFO;
  392. PNMCustomDraw = PNMCUSTOMDRAWINFO;
  393. TNMCustomDraw = tagNMCUSTOMDRAWINFO;
  394. tagNMTTCUSTOMDRAW = Record
  395. nmcd : NMCUSTOMDRAW;
  396. uDrawFlags : UINT;
  397. END;
  398. NMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW;
  399. LPNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW;
  400. TNMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW;
  401. PNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW;
  402. {$ENDIF} // _WIN32_IE >= 0x0300
  403. //====== IMAGE APIS ===========================================================
  404. {$IFNDEF NOIMAGEAPIS}
  405. CONST
  406. CLR_NONE = DWORD($FFFFFFFF);
  407. CLR_DEFAULT = DWORD($FF000000);
  408. {$IFNDEF IMAGELISTDRAWPARAMS}
  409. {$ifdef ie3plus}
  410. TYPE
  411. _IMAGELISTDRAWPARAMS = Record
  412. cbSize : DWORD;
  413. himl : HIMAGELIST;
  414. i : cint;
  415. hdcDst : HDC;
  416. x : cint;
  417. y : cint;
  418. cx : cint;
  419. cy : cint;
  420. xBitmap : cint; // x offest from the upperleft of bitmap
  421. yBitmap : cint; // y offset from the upperleft of bitmap
  422. rgbBk : COLORREF;
  423. rgbFg : COLORREF;
  424. fStyle : UINT;
  425. dwRop : DWORD;
  426. {$ifdef win32xp}
  427. fState : DWORD;
  428. Frame : DWORD;
  429. crEffect : COLORREF;
  430. {$ENDIF}
  431. END;
  432. IMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS;
  433. LPIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
  434. TIMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS;
  435. PIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS;
  436. // #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop)
  437. {$ENDIF} // _WIN32_IE >= 0x0300
  438. {$ENDIF}
  439. CONST
  440. ILC_MASK = $00000001;
  441. ILC_COLOR = $00000000;
  442. ILC_COLORDDB = $000000FE;
  443. ILC_COLOR4 = $00000004;
  444. ILC_COLOR8 = $00000008;
  445. ILC_COLOR16 = $00000010;
  446. ILC_COLOR24 = $00000018;
  447. ILC_COLOR32 = $00000020;
  448. ILC_PALETTE = $00000800; // (not implemented)
  449. {$ifdef win32xp}
  450. ILC_MIRROR = $00002000; // Mirror the icons contained, if the process is mirrored
  451. ILC_PERITEMMIRROR = $00008000; // Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip
  452. {$ENDIF}
  453. function ImageList_Create(cx:cint;cy:cint;flags:UINT;cInitial:cint;cGrow:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Create';
  454. function ImageList_Destroy(himl:HIMAGELIST):BOOL; stdcall; external commctrldll name 'ImageList_Destroy';
  455. function ImageList_GetImageCount(himl:HIMAGELIST):cint; stdcall; external commctrldll name 'ImageList_GetImageCount';
  456. {$ifdef ie3plus}
  457. function ImageList_SetImageCount(himl:HIMAGELIST;uNewCount:UINT):BOOL; stdcall; external commctrldll name 'ImageList_SetImageCount';
  458. {$ENDIF}
  459. function ImageList_Add(himl:HIMAGELIST;hbmImage:HBITMAP;hbmMask:HBITMAP):cint; stdcall; external commctrldll name 'ImageList_Add';
  460. function ImageList_ReplaceIcon(himl:HIMAGELIST;i:cint;hicon:HICON):cint; stdcall; external commctrldll name 'ImageList_ReplaceIcon';
  461. function ImageList_SetBkColor(himl:HIMAGELIST;clrBk:COLORREF):COLORREF; stdcall; external commctrldll name 'ImageList_SetBkColor';
  462. function ImageList_GetBkColor(himl:HIMAGELIST):COLORREF; stdcall; external commctrldll name 'ImageList_GetBkColor';
  463. function ImageList_SetOverlayImage(himl:HIMAGELIST;iImage:cint;iOverlay:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetOverlayImage';
  464. // Macro 11
  465. Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
  466. CONST
  467. ILD_NORMAL = $00000000;
  468. ILD_TRANSPARENT = $00000001;
  469. ILD_MASK = $00000010;
  470. ILD_IMAGE = $00000020;
  471. {$ifdef ie3plus}
  472. ILD_ROP = $00000040;
  473. {$ENDIF}
  474. ILD_BLEND25 = $00000002;
  475. ILD_BLEND50 = $00000004;
  476. ILD_OVERLAYMASK = $00000F00;
  477. // Macro 12
  478. // #define INDEXTOOVERLAYMASK(i) ((i) << 8)
  479. CONST
  480. ILD_PRESERVEALPHA = $00001000; // This preserves the alpha channel in dest
  481. ILD_SCALE = $00002000; // Causes the image to be scaled to cx, cy instead of clipped
  482. ILD_DPISCALE = $00004000;
  483. ILD_SELECTED = ILD_BLEND50;
  484. ILD_FOCUS = ILD_BLEND25;
  485. ILD_BLEND = ILD_BLEND50;
  486. CLR_HILIGHT = CLR_DEFAULT;
  487. ILS_NORMAL = $00000000;
  488. ILS_GLOW = $00000001;
  489. ILS_SHADOW = $00000002;
  490. ILS_SATURATE = $00000004;
  491. ILS_ALPHA = $00000008;
  492. function ImageList_Draw(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Draw';
  493. {$IFDEF _WIN32}
  494. function ImageList_Replace(himl:HIMAGELIST;i:cint;hbmImage:HBITMAP;hbmMask:HBITMAP):BOOL; stdcall; external commctrldll name 'ImageList_Replace';
  495. function ImageList_AddMasked(himl:HIMAGELIST;hbmImage:HBITMAP;crMask:COLORREF):cint; stdcall; external commctrldll name 'ImageList_AddMasked';
  496. function ImageList_DrawEx(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;dx:cint;dy:cint;rgbBk:COLORREF;rgbFg:COLORREF;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_DrawEx';
  497. {$ifdef ie3plus}
  498. function ImageList_DrawIndirect(pimldp:PIMAGELISTDRAWPARAMS):BOOL; stdcall; external commctrldll name 'ImageList_DrawIndirect';
  499. {$ENDIF}
  500. function ImageList_Remove(himl:HIMAGELIST;i:cint):BOOL; stdcall; external commctrldll name 'ImageList_Remove';
  501. function ImageList_GetIcon(himl:HIMAGELIST;i:cint;flags:UINT):HICON; stdcall; external commctrldll name 'ImageList_GetIcon';
  502. function ImageList_LoadImageA(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA';
  503. function ImageList_LoadImageW(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW';
  504. function ImageList_LoadImage(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA';
  505. function ImageList_LoadImage(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW';
  506. {$IFDEF UNICODE}
  507. // function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageW';
  508. {$ELSE}
  509. // function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA';
  510. {$ENDIF}
  511. {$ifdef ie3plus}
  512. CONST
  513. ILCF_MOVE = ($00000000);
  514. ILCF_SWAP = ($00000001);
  515. function ImageList_Copy(himlDst:HIMAGELIST;iDst:cint;himlSrc:HIMAGELIST;iSrc:cint;uFlags:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Copy';
  516. {$ENDIF}
  517. function ImageList_BeginDrag(himlTrack:HIMAGELIST;iTrack:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_BeginDrag';
  518. function ImageList_EndDrag:BOOL; stdcall; external commctrldll name 'ImageList_EndDrag';
  519. function ImageList_DragEnter(hwndLock:HWND;x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragEnter';
  520. function ImageList_DragLeave(hwndLock:HWND):BOOL; stdcall; external commctrldll name 'ImageList_DragLeave';
  521. function ImageList_DragMove(x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragMove';
  522. function ImageList_SetDragCursorImage(himlDrag:HIMAGELIST;iDrag:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetDragCursorImage';
  523. function ImageList_DragShowNolock(fShow:BOOL):BOOL; stdcall; external commctrldll name 'ImageList_DragShowNolock';
  524. function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_GetDragImage';
  525. // Macro 13
  526. Procedure ImageList_RemoveAll(himl:HIMAGELIST);
  527. // Macro 14
  528. Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
  529. // Macro 15
  530. Procedure ImageList_LoadBitmap(hi:HInst;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
  531. {$IFDEF __IStream_INTERFACE_DEFINED__}
  532. function ImageList_Read(pstm:ISTREAM):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Read';
  533. function ImageList_Write(himl:HIMAGELIST;pstm:ISTREAM):BOOL; stdcall; external commctrldll name 'ImageList_Write';
  534. {$ifdef Win32XP}
  535. CONST
  536. ILP_NORMAL = 0; // Writes or reads the stream using new sematics for this version of comctl32
  537. ILP_DOWNLEVEL = 1; // Write or reads the stream using downlevel sematics.
  538. function ImageList_ReadEx(dwFlags:DWORD;pstm:ISTREAM;riid:REFIID;ppv:PPointer):HRESULT; stdcall; external commctrldll name 'ImageList_ReadEx';
  539. function ImageList_WriteEx(himl:HIMAGELIST;dwFlags:DWORD;pstm:ISTREAM):HRESULT; stdcall; external commctrldll name 'ImageList_WriteEx';
  540. {$ENDIF}
  541. {$ENDIF}
  542. {$IFNDEF IMAGEINFO}
  543. TYPE
  544. _IMAGEINFO = Record
  545. hbmImage : HBITMAP;
  546. hbmMask : HBITMAP;
  547. Unused1 : cint;
  548. Unused2 : cint;
  549. rcImage : RECT;
  550. END;
  551. IMAGEINFO = _IMAGEINFO;
  552. LPIMAGEINFO = ^_IMAGEINFO;
  553. TIMAGEINFO = _IMAGEINFO;
  554. PIMAGEINFO = ^_IMAGEINFO;
  555. {$ENDIF}
  556. function ImageList_GetIconSize(himl:HIMAGELIST;cx:Pint;cy:Pint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize';
  557. function ImageList_GetIconSize(himl:HIMAGELIST;var cx:cint;var cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize';
  558. function ImageList_SetIconSize(himl:HIMAGELIST;cx:cint;cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetIconSize';
  559. function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;pImageInfo:PIMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo';
  560. function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;var pImageInfo:_IMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo';
  561. function ImageList_Merge(himl1:HIMAGELIST;i1:cint;himl2:HIMAGELIST;i2:cint;dx:cint;dy:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Merge';
  562. {$ifdef ie4plus}
  563. function ImageList_Duplicate(himl:HIMAGELIST):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Duplicate';
  564. {$ENDIF}
  565. {$ENDIF}
  566. {$ENDIF}
  567. //====== HEADER CONTROL =======================================================
  568. {$IFNDEF NOHEADER}
  569. {$IFDEF _WIN32}
  570. CONST
  571. WC_HEADERA = 'SysHeader32';
  572. WC_HEADERW = {L}'SysHeader32';
  573. {$IFDEF UNICODE}
  574. WC_HEADER = WC_HEADERW;
  575. {$ELSE}
  576. WC_HEADER = WC_HEADERA;
  577. {$ENDIF}
  578. {$ELSE}
  579. CONST
  580. WC_HEADER = 'SysHeader';
  581. {$ENDIF}
  582. CONST
  583. // begin_r_commctrl
  584. HDS_HORZ = $0000;
  585. HDS_BUTTONS = $0002;
  586. {$ifdef ie3plus}
  587. HDS_HOTTRACK = $0004;
  588. {$ENDIF}
  589. HDS_HIDDEN = $0008;
  590. {$ifdef ie3plus}
  591. HDS_DRAGDROP = $0040;
  592. HDS_FULLDRAG = $0080;
  593. {$ENDIF}
  594. {$ifdef ie5plus}
  595. HDS_FILTERBAR = $0100;
  596. {$ENDIF}
  597. {$ifdef win32xp}
  598. HDS_FLAT = $0200;
  599. {$ENDIF}
  600. // end_r_commctrl
  601. {$ifdef ie5plus}
  602. HDFT_ISSTRING = $0000; // HD_ITEM.pvFilter points to a HD_TEXTFILTER
  603. HDFT_ISNUMBER = $0001; // HD_ITEM.pvFilter points to a INT
  604. HDFT_HASNOVALUE = $8000; // clear the filter, by setting this bit
  605. TYPE
  606. _HD_TEXTFILTERA = Record
  607. pszText : LPSTR; // [in] pointer to the buffer containing the filter (ANSI)
  608. cchTextMax : cint; // [in] max size of buffer/edit control buffer
  609. END;
  610. HD_TEXTFILTERA = _HD_TEXTFILTERA;
  611. LPHD_TEXTFILTERA = ^_HD_TEXTFILTERA;
  612. THD_TEXTFILTERA = _HD_TEXTFILTERA;
  613. PHD_TEXTFILTERA = ^_HD_TEXTFILTERA;
  614. _HD_TEXTFILTERW = Record
  615. pszText : LPWSTR; // [in] pointer to the buffer contiaining the filter (UNICODE)
  616. cchTextMax : cint; // [in] max size of buffer/edit control buffer
  617. END;
  618. HD_TEXTFILTERW = _HD_TEXTFILTERW;
  619. LPHD_TEXTFILTERW = ^_HD_TEXTFILTERW;
  620. THD_TEXTFILTERW = _HD_TEXTFILTERW;
  621. PHD_TEXTFILTERW = ^_HD_TEXTFILTERW;
  622. {$IFDEF UNICODE}
  623. HD_TEXTFILTER = HD_TEXTFILTERW;
  624. HDTEXTFILTER = HD_TEXTFILTERW;
  625. LPHD_TEXTFILTER = LPHD_TEXTFILTERW;
  626. LPHDTEXTFILTER = LPHD_TEXTFILTERW;
  627. {$ELSE}
  628. HD_TEXTFILTER = HD_TEXTFILTERA;
  629. HDTEXTFILTER = HD_TEXTFILTERA;
  630. LPHD_TEXTFILTER = LPHD_TEXTFILTERA;
  631. LPHDTEXTFILTER = LPHD_TEXTFILTERA;
  632. {$ENDIF}
  633. {$ENDIF} // _WIN32_IE >= 0x0500
  634. TYPE
  635. _HD_ITEMA = Record
  636. mask : UINT;
  637. cxy : cint;
  638. pszText : LPSTR;
  639. hbm : HBITMAP;
  640. cchTextMax : cint;
  641. fmt : cint;
  642. lParam : LPARAM;
  643. {$ifdef ie3plus}
  644. iImage : cint; // index of bitmap in ImageList
  645. iOrder : cint; // where to draw this item
  646. {$ENDIF}
  647. {$ifdef ie5plus}
  648. _type : UINT; // [in] filter type (defined what pvFilter is a pointer to)
  649. pvFilter : Pointer; // [in] fillter data see above
  650. {$ENDIF}
  651. END;
  652. HDITEMA = _HD_ITEMA;
  653. pHDITEMA = ^_HD_ITEMA;
  654. LPHDITEMA = ^_HD_ITEMA;
  655. THD_ITEMA = _HD_ITEMA;
  656. PHD_ITEMA = ^_HD_ITEMA;
  657. THDItem = THD_ITEMA;
  658. PHDItem = PHD_ITEMA;
  659. // #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam)
  660. // #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam)
  661. _HD_ITEMW = Record
  662. mask : UINT;
  663. cxy : cint;
  664. pszText : LPWSTR;
  665. hbm : HBITMAP;
  666. cchTextMax : cint;
  667. fmt : cint;
  668. lParam : LPARAM;
  669. {$ifdef ie3plus}
  670. iImage : cint; // index of bitmap in ImageList
  671. iOrder : cint;
  672. {$ENDIF}
  673. {$ifdef ie5plus}
  674. _type : UINT; // [in] filter type (defined what pvFilter is a pointer to)
  675. pvFilter : Pointer; // [in] fillter data see above
  676. {$ENDIF}
  677. END;
  678. HDITEMW = _HD_ITEMW;
  679. pHDITEMW = ^_HD_ITEMW;
  680. LPHDITEMW = ^_HD_ITEMW;
  681. THD_ITEMW = _HD_ITEMW;
  682. PHD_ITEMW = ^_HD_ITEMW;
  683. TYPE
  684. {$IFDEF UNICODE}
  685. HDITEM = HDITEMW;
  686. LPHDITEM = LPHDITEMW;
  687. // HDITEM_V1_SIZE = HDITEMW_V1_SIZE;
  688. {$ELSE}
  689. HDITEM = HDITEMA;
  690. LPHDITEM = LPHDITEMA;
  691. // HDITEM_V1_SIZE = HDITEMA_V1_SIZE;
  692. {$ENDIF}
  693. HD_ITEM = HDITEM;
  694. CONST
  695. HDI_WIDTH = $0001;
  696. HDI_HEIGHT = HDI_WIDTH;
  697. HDI_TEXT = $0002;
  698. HDI_FORMAT = $0004;
  699. HDI_LPARAM = $0008;
  700. HDI_BITMAP = $0010;
  701. {$ifdef ie3plus}
  702. HDI_IMAGE = $0020;
  703. HDI_DI_SETITEM = $0040;
  704. HDI_ORDER = $0080;
  705. {$ENDIF}
  706. {$ifdef ie5plus}
  707. HDI_FILTER = $0100;
  708. {$ENDIF}
  709. HDF_LEFT = $0000;
  710. HDF_RIGHT = $0001;
  711. HDF_CENTER = $0002;
  712. HDF_JUSTIFYMASK = $0003;
  713. HDF_RTLREADING = $0004;
  714. HDF_OWNERDRAW = $8000;
  715. HDF_STRING = $4000;
  716. HDF_BITMAP = $2000;
  717. {$ifdef ie3plus}
  718. HDF_BITMAP_ON_RIGHT = $1000;
  719. HDF_IMAGE = $0800;
  720. {$ENDIF}
  721. {$ifdef win32xp}
  722. HDF_SORTUP = $0400;
  723. HDF_SORTDOWN = $0200;
  724. {$ENDIF}
  725. HDM_GETITEMCOUNT = (HDM_FIRST + 0);
  726. // Macro 16
  727. Function Header_GetItemCount( hwndHD : hwnd):cint;
  728. CONST
  729. HDM_INSERTITEMA = (HDM_FIRST + 1);
  730. HDM_INSERTITEMW = (HDM_FIRST + 10);
  731. {$IFDEF UNICODE}
  732. HDM_INSERTITEM = HDM_INSERTITEMW;
  733. {$ELSE}
  734. HDM_INSERTITEM = HDM_INSERTITEMA;
  735. {$ENDIF}
  736. // Macro 17
  737. Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
  738. CONST
  739. HDM_DELETEITEM = (HDM_FIRST + 2);
  740. // Macro 18
  741. Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
  742. CONST
  743. HDM_GETITEMA = (HDM_FIRST + 3);
  744. HDM_GETITEMW = (HDM_FIRST + 11);
  745. {$IFDEF UNICODE}
  746. HDM_GETITEM = HDM_GETITEMW;
  747. {$ELSE}
  748. HDM_GETITEM = HDM_GETITEMA;
  749. {$ENDIF}
  750. // Macro 19
  751. Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL;
  752. CONST
  753. HDM_SETITEMA = (HDM_FIRST + 4);
  754. HDM_SETITEMW = (HDM_FIRST + 12);
  755. {$IFDEF UNICODE}
  756. HDM_SETITEM = HDM_SETITEMW;
  757. {$ELSE}
  758. HDM_SETITEM = HDM_SETITEMA;
  759. {$ENDIF}
  760. // Macro 20
  761. Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL;
  762. TYPE
  763. _HD_LAYOUT = Record
  764. prc : PRECT;
  765. pwpos : PWINDOWPOS;
  766. END;
  767. HDLAYOUT = _HD_LAYOUT;
  768. LPHDLAYOUT = ^_HD_LAYOUT;
  769. THD_LAYOUT = _HD_LAYOUT;
  770. PHD_LAYOUT = ^_HD_LAYOUT;
  771. CONST
  772. HDM_LAYOUT = (HDM_FIRST + 5);
  773. {$ifdef ie3plus}
  774. TYPE
  775. HD_LAYOUT = HDLAYOUT;
  776. {$ELSE}
  777. // HDLAYOUT = HD_LAYOUT;
  778. {$ENDIF}
  779. // Macro 21
  780. Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL;
  781. CONST
  782. HHT_NOWHERE = $0001;
  783. HHT_ONHEADER = $0002;
  784. HHT_ONDIVIDER = $0004;
  785. HHT_ONDIVOPEN = $0008;
  786. {$ifdef ie5plus}
  787. HHT_ONFILTER = $0010;
  788. HHT_ONFILTERBUTTON = $0020;
  789. {$ENDIF}
  790. HHT_ABOVE = $0100;
  791. HHT_BELOW = $0200;
  792. HHT_TORIGHT = $0400;
  793. HHT_TOLEFT = $0800;
  794. TYPE
  795. _HD_HITTESTINFO = Record
  796. case integer of
  797. 1: (pt : POINT;flags : UINT;iItem : cint);
  798. { delphi }
  799. 2: (point : POINT;dummyflags : UINT;Item : cint);
  800. END;
  801. HDHITTESTINFO = _HD_HITTESTINFO;
  802. HD_HITTESTINFO = _HD_HITTESTINFO;
  803. LPHDHITTESTINFO = ^_HD_HITTESTINFO;
  804. THD_HITTESTINFO = _HD_HITTESTINFO;
  805. PHD_HITTESTINFO = ^_HD_HITTESTINFO;
  806. THDHitTestInfo = THD_HITTESTINFO;
  807. PHDHitTestInfo = LPHDHITTESTINFO;
  808. CONST
  809. HDM_HITTEST = (HDM_FIRST + 6);
  810. {$ifdef ie3plus}
  811. HDM_GETITEMRECT = (HDM_FIRST + 7);
  812. // Macro 22
  813. Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
  814. CONST
  815. HDM_SETIMAGELIST = (HDM_FIRST + 8);
  816. // Macro 23
  817. Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
  818. CONST
  819. HDM_GETIMAGELIST = (HDM_FIRST + 9);
  820. // Macro 24
  821. Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
  822. CONST
  823. HDM_ORDERTOINDEX = (HDM_FIRST + 15);
  824. // Macro 25
  825. Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
  826. CONST
  827. HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16); // wparam = which item (by index)
  828. // Macro 26
  829. Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
  830. CONST
  831. HDM_GETORDERARRAY = (HDM_FIRST + 17);
  832. // Macro 27
  833. Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
  834. CONST
  835. HDM_SETORDERARRAY = (HDM_FIRST + 18);
  836. // Macro 28
  837. Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline;
  838. // lparam = int array of size HDM_GETITEMCOUNT
  839. // the array specifies the order that all items should be displayed.
  840. // e.g. { 2, 0, 1}
  841. // says the index 2 item should be shown in the 0ths position
  842. // index 0 should be shown in the 1st position
  843. // index 1 should be shown in the 2nd position
  844. CONST
  845. HDM_SETHOTDIVIDER = (HDM_FIRST + 19);
  846. // Macro 29
  847. Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
  848. // convenience message for external dragdrop
  849. // wParam = BOOL specifying whether the lParam is a dwPos of the cursor
  850. // position or the index of which divider to hotlight
  851. // lParam = depends on wParam (-1 and wParm = FALSE turns off hotlight)
  852. {$ENDIF} // _WIN32_IE >= 0x0300
  853. {$ifdef ie5plus}
  854. CONST
  855. HDM_SETBITMAPMARGIN = (HDM_FIRST + 20);
  856. // Macro 30
  857. Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
  858. CONST
  859. HDM_GETBITMAPMARGIN = (HDM_FIRST + 21);
  860. // Macro 31
  861. Function Header_GetBitmapMargin( hwnd : hwnd):cint;
  862. {$ENDIF}
  863. {$ifdef ie4plus}
  864. CONST
  865. HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  866. // Macro 32
  867. Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  868. CONST
  869. HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  870. // Macro 33
  871. Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
  872. {$ENDIF}
  873. {$ifdef ie5plus}
  874. CONST
  875. HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST+22);
  876. // Macro 34
  877. Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
  878. CONST
  879. HDM_EDITFILTER = (HDM_FIRST+23);
  880. // Macro 35
  881. Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
  882. // Clear filter takes -1 as a column value to indicate that all
  883. // the filter should be cleared. When this happens you will
  884. // only receive a single filter changed notification.
  885. CONST
  886. HDM_CLEARFILTER = (HDM_FIRST+24);
  887. // Macro 36
  888. Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
  889. // Macro 37
  890. Function Header_ClearAllFilters( hwnd : hwnd):cint;
  891. {$ENDIF}
  892. CONST
  893. HDN_ITEMCHANGINGA = (HDN_FIRST-0);
  894. HDN_ITEMCHANGINGW = (HDN_FIRST-20);
  895. HDN_ITEMCHANGEDA = (HDN_FIRST-1);
  896. HDN_ITEMCHANGEDW = (HDN_FIRST-21);
  897. HDN_ITEMCLICKA = (HDN_FIRST-2);
  898. HDN_ITEMCLICKW = (HDN_FIRST-22);
  899. HDN_ITEMDBLCLICKA = (HDN_FIRST-3);
  900. HDN_ITEMDBLCLICKW = (HDN_FIRST-23);
  901. HDN_DIVIDERDBLCLICKA = (HDN_FIRST-5);
  902. HDN_DIVIDERDBLCLICKW = (HDN_FIRST-25);
  903. HDN_BEGINTRACKA = (HDN_FIRST-6);
  904. HDN_BEGINTRACKW = (HDN_FIRST-26);
  905. HDN_ENDTRACKA = (HDN_FIRST-7);
  906. HDN_ENDTRACKW = (HDN_FIRST-27);
  907. HDN_TRACKA = (HDN_FIRST-8);
  908. HDN_TRACKW = (HDN_FIRST-28);
  909. {$ifdef ie3plus}
  910. HDN_GETDISPINFOA = (HDN_FIRST-9);
  911. HDN_GETDISPINFOW = (HDN_FIRST-29);
  912. HDN_BEGINDRAG = (HDN_FIRST-10);
  913. HDN_ENDDRAG = (HDN_FIRST-11);
  914. {$ENDIF}
  915. {$ifdef ie5plus}
  916. HDN_FILTERCHANGE = (HDN_FIRST-12);
  917. HDN_FILTERBTNCLICK = (HDN_FIRST-13);
  918. {$ENDIF}
  919. {$IFDEF UNICODE}
  920. HDN_ITEMCHANGING = HDN_ITEMCHANGINGW;
  921. HDN_ITEMCHANGED = HDN_ITEMCHANGEDW;
  922. HDN_ITEMCLICK = HDN_ITEMCLICKW;
  923. HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW;
  924. HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW;
  925. HDN_BEGINTRACK = HDN_BEGINTRACKW;
  926. HDN_ENDTRACK = HDN_ENDTRACKW;
  927. HDN_TRACK = HDN_TRACKW;
  928. {$ifdef ie3plus}
  929. HDN_GETDISPINFO = HDN_GETDISPINFOW;
  930. {$ENDIF}
  931. {$ELSE}
  932. HDN_ITEMCHANGING = HDN_ITEMCHANGINGA;
  933. HDN_ITEMCHANGED = HDN_ITEMCHANGEDA;
  934. HDN_ITEMCLICK = HDN_ITEMCLICKA;
  935. HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKA;
  936. HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA;
  937. HDN_BEGINTRACK = HDN_BEGINTRACKA;
  938. HDN_ENDTRACK = HDN_ENDTRACKA;
  939. HDN_TRACK = HDN_TRACKA;
  940. {$ifdef ie3plus}
  941. HDN_GETDISPINFO = HDN_GETDISPINFOA;
  942. {$ENDIF}
  943. {$ENDIF}
  944. TYPE
  945. tagNMHEADERA = Record
  946. hdr : NMHDR;
  947. case integer of
  948. 1: (iItem : cint;iButton : cint;pitem : PHDITEMA);
  949. { delphi: }
  950. 2: (Item : cint;Button : cint);
  951. END;
  952. NMHEADERA = tagNMHEADERA;
  953. LPNMHEADERA = ^tagNMHEADERA;
  954. TNMHEADERA = tagNMHEADERA;
  955. PNMHEADERA = ^tagNMHEADERA;
  956. tagNMHEADERW = Record
  957. hdr : NMHDR;
  958. iItem : cint;
  959. iButton : cint;
  960. pitem : PHDITEMW;
  961. END;
  962. NMHEADERW = tagNMHEADERW;
  963. LPNMHEADERW = ^tagNMHEADERW;
  964. TNMHEADERW = tagNMHEADERW;
  965. PNMHEADERW = ^tagNMHEADERW;
  966. {$IFDEF UNICODE}
  967. NMHEADER = NMHEADERW;
  968. LPNMHEADER = LPNMHEADERW;
  969. {$ELSE}
  970. NMHEADER = NMHEADERA;
  971. LPNMHEADER = LPNMHEADERA;
  972. {$ENDIF}
  973. {$ifdef ie3plus}
  974. HD_NOTIFYA = NMHEADERA;
  975. HD_NOTIFYW = NMHEADERW;
  976. {$ELSE}
  977. // tagNMHEADERA = _HD_NOTIFY;
  978. // NMHEADERA = HD_NOTIFYA;
  979. // tagHMHEADERW = _HD_NOTIFYW;
  980. // NMHEADERW = HD_NOTIFYW;
  981. {$ENDIF}
  982. HD_NOTIFY = NMHEADER;
  983. THDNotify = HD_NOTIFY;
  984. PHDNotify = ^HD_NOTIFY;
  985. tagNMHDDISPINFOW = Record
  986. hdr : NMHDR;
  987. iItem : cint;
  988. mask : UINT;
  989. pszText : LPWSTR;
  990. cchTextMax : cint;
  991. iImage : cint;
  992. lParam : LPARAM;
  993. END;
  994. NMHDDISPINFOW = tagNMHDDISPINFOW;
  995. LPNMHDDISPINFOW = ^tagNMHDDISPINFOW;
  996. TNMHDDISPINFOW = tagNMHDDISPINFOW;
  997. PNMHDDISPINFOW = ^tagNMHDDISPINFOW;
  998. tagNMHDDISPINFOA = Record
  999. hdr : NMHDR;
  1000. iItem : cint;
  1001. mask : UINT;
  1002. pszText : LPSTR;
  1003. cchTextMax : cint;
  1004. iImage : cint;
  1005. lParam : LPARAM;
  1006. END;
  1007. NMHDDISPINFOA = tagNMHDDISPINFOA;
  1008. LPNMHDDISPINFOA = ^tagNMHDDISPINFOA;
  1009. TNMHDDISPINFOA = tagNMHDDISPINFOA;
  1010. PNMHDDISPINFOA = ^tagNMHDDISPINFOA;
  1011. {$IFDEF UNICODE}
  1012. NMHDDISPINFO = NMHDDISPINFOW;
  1013. LPNMHDDISPINFO = LPNMHDDISPINFOW;
  1014. {$ELSE}
  1015. NMHDDISPINFO = NMHDDISPINFOA;
  1016. LPNMHDDISPINFO = LPNMHDDISPINFOA;
  1017. {$ENDIF}
  1018. {$ifdef ie5plus}
  1019. tagNMHDFILTERBTNCLICK = Record
  1020. hdr : NMHDR;
  1021. iItem : cint;
  1022. rc : RECT;
  1023. END;
  1024. NMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK;
  1025. LPNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK;
  1026. TNMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK;
  1027. PNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK;
  1028. {$ENDIF}
  1029. {$ENDIF} // NOHEADER
  1030. //====== TOOLBAR CONTROL ======================================================
  1031. {$IFNDEF NOTOOLBAR}
  1032. {$IFDEF _WIN32}
  1033. CONST
  1034. TOOLBARCLASSNAMEW = {L}'ToolbarWindow32';
  1035. TOOLBARCLASSNAMEA = 'ToolbarWindow32';
  1036. {$IFDEF UNICODE}
  1037. TOOLBARCLASSNAME = TOOLBARCLASSNAMEW;
  1038. {$ELSE}
  1039. TOOLBARCLASSNAME = TOOLBARCLASSNAMEA;
  1040. {$ENDIF}
  1041. {$ELSE}
  1042. TOOLBARCLASSNAME = 'ToolbarWindow';
  1043. {$ENDIF}
  1044. TYPE
  1045. _TBBUTTON = Record
  1046. iBitmap : cint;
  1047. idCommand : cint;
  1048. fsState : BYTE;
  1049. fsStyle : BYTE;
  1050. {$IFDEF _WIN64}
  1051. bReserved : ARRAY[0..5] OF BYTE; // padding for alignment
  1052. {$ELSE}
  1053. {$IFDEF _WIN32}
  1054. bReserved : ARRAY[0..1] OF BYTE; // padding for alignment
  1055. {$ENDIF}
  1056. {$ENDIF}
  1057. dwData : DWORD_PTR;
  1058. iString : INT_PTR;
  1059. END;
  1060. TBBUTTON = _TBBUTTON;
  1061. PTBBUTTON = {NEAR} ^_TBBUTTON; // ???
  1062. LPTBBUTTON = ^_TBBUTTON;
  1063. TTBBUTTON = _TBBUTTON;
  1064. // PTBBUTTON = ^_TBBUTTON;
  1065. LPCTBBUTTON = {const} ^TBBUTTON;
  1066. _COLORMAP = Record
  1067. xfrom : COLORREF;
  1068. xto : COLORREF;
  1069. END;
  1070. COLORMAP = _COLORMAP;
  1071. LPCOLORMAP = ^_COLORMAP;
  1072. TCOLORMAP = _COLORMAP;
  1073. PCOLORMAP = ^_COLORMAP;
  1074. function CreateToolbarEx(hwnd:HWND;ws:DWORD;wID:UINT;nBitmaps:cint;
  1075. hBMInst:HINST;
  1076. wBMID:UINT_PTR;lpButtons:LPCTBBUTTON;iNumButtons:cint;dxButton:cint;
  1077. dyButton:cint;dxBitmap:cint;dyBitmap:cint;uStructSize:UINT):HWND; stdcall; external commctrldll name 'CreateToolbarEx';
  1078. function CreateMappedBitmap(hInstance:HINST;idBitmap:INT_PTR;wFlags:UINT;lpColorMap:LPCOLORMAP;iNumMaps:cint):HBITMAP; stdcall; external commctrldll name 'CreateMappedBitmap';
  1079. CONST
  1080. CMB_MASKED = $02;
  1081. TBSTATE_CHECKED = $01;
  1082. TBSTATE_PRESSED = $02;
  1083. TBSTATE_ENABLED = $04;
  1084. TBSTATE_HIDDEN = $08;
  1085. TBSTATE_INDETERMINATE = $10;
  1086. TBSTATE_WRAP = $20;
  1087. {$ifdef ie3plus}
  1088. TBSTATE_ELLIPSES = $40;
  1089. {$ENDIF}
  1090. {$ifdef ie4plus}
  1091. TBSTATE_MARKED = $80;
  1092. {$ENDIF}
  1093. TBSTYLE_BUTTON = $0000; // obsolete; use BTNS_BUTTON instead
  1094. TBSTYLE_SEP = $0001; // obsolete; use BTNS_SEP instead
  1095. TBSTYLE_CHECK = $0002; // obsolete; use BTNS_CHECK instead
  1096. TBSTYLE_GROUP = $0004; // obsolete; use BTNS_GROUP instead
  1097. TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP OR TBSTYLE_CHECK);// obsolete; use BTNS_CHECKGROUP instead
  1098. {$ifdef ie3plus}
  1099. TBSTYLE_DROPDOWN = $0008; // obsolete; use BTNS_DROPDOWN instead
  1100. {$ENDIF}
  1101. {$ifdef ie4plus}
  1102. TBSTYLE_AUTOSIZE = $0010; // obsolete; use BTNS_AUTOSIZE instead
  1103. TBSTYLE_NOPREFIX = $0020; // obsolete; use BTNS_NOPREFIX instead
  1104. {$ENDIF}
  1105. TBSTYLE_TOOLTIPS = $0100;
  1106. TBSTYLE_WRAPABLE = $0200;
  1107. TBSTYLE_ALTDRAG = $0400;
  1108. {$ifdef ie3plus}
  1109. TBSTYLE_FLAT = $0800;
  1110. TBSTYLE_LIST = $1000;
  1111. TBSTYLE_CUSTOMERASE = $2000;
  1112. {$ENDIF}
  1113. {$ifdef ie4plus}
  1114. TBSTYLE_REGISTERDROP = $4000;
  1115. TBSTYLE_TRANSPARENT = $8000;
  1116. TBSTYLE_EX_DRAWDDARROWS = $00000001;
  1117. {$ENDIF}
  1118. {$ifdef ie5plus}
  1119. BTNS_BUTTON = TBSTYLE_BUTTON; // 0x0000
  1120. BTNS_SEP = TBSTYLE_SEP; // 0x0001
  1121. BTNS_CHECK = TBSTYLE_CHECK; // 0x0002
  1122. BTNS_GROUP = TBSTYLE_GROUP; // 0x0004
  1123. BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP; // (TBSTYLE_GROUP | TBSTYLE_CHECK)
  1124. BTNS_DROPDOWN = TBSTYLE_DROPDOWN; // 0x0008
  1125. BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE; // 0x0010; automatically calculate the cx of the button
  1126. BTNS_NOPREFIX = TBSTYLE_NOPREFIX; // 0x0020; this button should not have accel prefix
  1127. {$ifdef ie501plus}
  1128. BTNS_SHOWTEXT = $0040; // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
  1129. {$ENDIF} // 0x0501
  1130. BTNS_WHOLEDROPDOWN = $0080; // draw drop-down arrow, but without split arrow section
  1131. {$ENDIF}
  1132. {$ifdef ie501plus}
  1133. TBSTYLE_EX_MIXEDBUTTONS = $00000008;
  1134. TBSTYLE_EX_HIDECLIPPEDBUTTONS = $00000010; // don't show partially obscured buttons
  1135. {$ENDIF} // 0x0501
  1136. {$ifdef win32xp}
  1137. TBSTYLE_EX_DOUBLEBUFFER = $00000080; // Double Buffer the toolbar
  1138. {$ENDIF}
  1139. {$ifdef ie4plus}
  1140. // Custom Draw Structure
  1141. TYPE
  1142. _NMTBCUSTOMDRAW = Record
  1143. nmcd : NMCUSTOMDRAW;
  1144. hbrMonoDither : HBRUSH;
  1145. hbrLines : HBRUSH; // For drawing lines on buttons
  1146. hpenLines : HPEN; // For drawing lines on buttons
  1147. clrText : COLORREF; // Color of text
  1148. clrMark : COLORREF; // Color of text bk when marked. (only if TBSTATE_MARKED)
  1149. clrTextHighlight : COLORREF; // Color of text when highlighted
  1150. clrBtnFace : COLORREF; // Background of the button
  1151. clrBtnHighlight : COLORREF; // 3D highlight
  1152. clrHighlightHotTrack : COLORREF; // In conjunction with fHighlightHotTrack
  1153. rcText : RECT; // Rect for text
  1154. nStringBkMode : cint;
  1155. nHLStringBkMode : cint;
  1156. {$ifdef win32xp}
  1157. iListGap : cint;
  1158. {$ENDIF}
  1159. END;
  1160. NMTBCUSTOMDRAW = _NMTBCUSTOMDRAW;
  1161. LPNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW;
  1162. TNMTBCUSTOMDRAW = _NMTBCUSTOMDRAW;
  1163. PNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW;
  1164. // Toolbar custom draw return flags
  1165. CONST
  1166. TBCDRF_NOEDGES = $00010000; // Don't draw button edges
  1167. TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
  1168. TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
  1169. TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
  1170. TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
  1171. {$ENDIF}
  1172. {$ifdef ie5plus}
  1173. TBCDRF_BLENDICON = $00200000; // Use ILD_BLEND50 on the icon image
  1174. TBCDRF_NOBACKGROUND = $00400000; // Use ILD_BLEND50 on the icon image
  1175. {$ENDIF}
  1176. CONST
  1177. TB_ENABLEBUTTON = (WM_USER + 1);
  1178. TB_CHECKBUTTON = (WM_USER + 2);
  1179. TB_PRESSBUTTON = (WM_USER + 3);
  1180. TB_HIDEBUTTON = (WM_USER + 4);
  1181. TB_INDETERMINATE = (WM_USER + 5);
  1182. {$ifdef ie4plus}
  1183. TB_MARKBUTTON = (WM_USER + 6);
  1184. {$ENDIF}
  1185. TB_ISBUTTONENABLED = (WM_USER + 9);
  1186. TB_ISBUTTONCHECKED = (WM_USER + 10);
  1187. TB_ISBUTTONPRESSED = (WM_USER + 11);
  1188. TB_ISBUTTONHIDDEN = (WM_USER + 12);
  1189. TB_ISBUTTONINDETERMINATE = (WM_USER + 13);
  1190. {$ifdef ie4plus}
  1191. TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14);
  1192. {$ENDIF}
  1193. TB_SETSTATE = (WM_USER + 17);
  1194. TB_GETSTATE = (WM_USER + 18);
  1195. TB_ADDBITMAP = (WM_USER + 19);
  1196. {$IFDEF _WIN32}
  1197. TYPE
  1198. tagTBADDBITMAP = Record
  1199. hInst : HINST;
  1200. nID : UINT_PTR;
  1201. END;
  1202. TBADDBITMAP = tagTBADDBITMAP;
  1203. LPTBADDBITMAP = ^tagTBADDBITMAP;
  1204. TTBADDBITMAP = tagTBADDBITMAP;
  1205. PTBADDBITMAP = ^tagTBADDBITMAP;
  1206. CONST
  1207. HINST_COMMCTRL = HINST(-1);
  1208. IDB_STD_SMALL_COLOR = 0;
  1209. IDB_STD_LARGE_COLOR = 1;
  1210. IDB_VIEW_SMALL_COLOR = 4;
  1211. IDB_VIEW_LARGE_COLOR = 5;
  1212. {$ifdef ie3plus}
  1213. IDB_HIST_SMALL_COLOR = 8;
  1214. IDB_HIST_LARGE_COLOR = 9;
  1215. {$ENDIF}
  1216. // icon indexes for standard bitmap
  1217. STD_CUT = 0;
  1218. STD_COPY = 1;
  1219. STD_PASTE = 2;
  1220. STD_UNDO = 3;
  1221. STD_REDOW = 4;
  1222. STD_DELETE = 5;
  1223. STD_FILENEW = 6;
  1224. STD_FILEOPEN = 7;
  1225. STD_FILESAVE = 8;
  1226. STD_PRINTPRE = 9;
  1227. STD_PROPERTIES = 10;
  1228. STD_HELP = 11;
  1229. STD_FIND = 12;
  1230. STD_REPLACE = 13;
  1231. STD_PRINT = 14;
  1232. // icon indexes for standard view bitmap
  1233. VIEW_LARGEICONS = 0;
  1234. VIEW_SMALLICONS = 1;
  1235. VIEW_LIST = 2;
  1236. VIEW_DETAILS = 3;
  1237. VIEW_SORTNAME = 4;
  1238. VIEW_SORTSIZE = 5;
  1239. VIEW_SORTDATE = 6;
  1240. VIEW_SORTTYPE = 7;
  1241. VIEW_PARENTFOLDER = 8;
  1242. VIEW_NETCONNECT = 9;
  1243. VIEW_NETDISCONNECT = 10;
  1244. VIEW_NEWFOLDER = 11;
  1245. {$ifdef ie4plus}
  1246. VIEW_VIEWMENU = 12;
  1247. {$ENDIF}
  1248. {$ifdef ie3plus}
  1249. HIST_BACK = 0;
  1250. HIST_FORWARD = 1;
  1251. HIST_FAVORITES = 2;
  1252. HIST_ADDTOFAVORITES = 3;
  1253. HIST_VIEWTREE = 4;
  1254. {$ENDIF}
  1255. {$ENDIF}
  1256. {$ifdef ie4plus}
  1257. TB_ADDBUTTONSA = (WM_USER + 20);
  1258. TB_INSERTBUTTONA = (WM_USER + 21);
  1259. {$ELSE}
  1260. TB_ADDBUTTONS = (WM_USER + 20);
  1261. TB_INSERTBUTTON = (WM_USER + 21);
  1262. {$ENDIF}
  1263. TB_DELETEBUTTON = (WM_USER + 22);
  1264. TB_GETBUTTON = (WM_USER + 23);
  1265. TB_BUTTONCOUNT = (WM_USER + 24);
  1266. TB_COMMANDTOINDEX = (WM_USER + 25);
  1267. {$IFDEF _WIN32}
  1268. TYPE
  1269. tagTBSAVEPARAMSA = Record
  1270. hkr : HKEY;
  1271. pszSubKey : LPCSTR;
  1272. pszValueName : LPCSTR;
  1273. END;
  1274. TBSAVEPARAMSA = tagTBSAVEPARAMSA;
  1275. LPTBSAVEPARAMSA = ^tagTBSAVEPARAMSA;
  1276. TTBSAVEPARAMSA = tagTBSAVEPARAMSA;
  1277. PTBSAVEPARAMSA = ^tagTBSAVEPARAMSA;
  1278. tagTBSAVEPARAMSW = Record
  1279. hkr : HKEY;
  1280. pszSubKey : LPCWSTR;
  1281. pszValueName : LPCWSTR;
  1282. END;
  1283. TBSAVEPARAMSW = tagTBSAVEPARAMSW;
  1284. LPTBSAVEPARAMW = ^tagTBSAVEPARAMSW;
  1285. TTBSAVEPARAMSW = tagTBSAVEPARAMSW;
  1286. PTBSAVEPARAMSW = ^tagTBSAVEPARAMSW;
  1287. {$IFDEF UNICODE}
  1288. TBSAVEPARAMS = TBSAVEPARAMSW;
  1289. LPTBSAVEPARAMS = LPTBSAVEPARAMSW;
  1290. {$ELSE}
  1291. TBSAVEPARAMS = TBSAVEPARAMSA;
  1292. LPTBSAVEPARAMS = LPTBSAVEPARAMSA;
  1293. {$ENDIF}
  1294. {$ENDIF} // _WIN32
  1295. CONST
  1296. TB_SAVERESTOREA = (WM_USER + 26);
  1297. TB_SAVERESTOREW = (WM_USER + 76);
  1298. TB_CUSTOMIZE = (WM_USER + 27);
  1299. TB_ADDSTRINGA = (WM_USER + 28);
  1300. TB_ADDSTRINGW = (WM_USER + 77);
  1301. TB_GETITEMRECT = (WM_USER + 29);
  1302. TB_BUTTONSTRUCTSIZE = (WM_USER + 30);
  1303. TB_SETBUTTONSIZE = (WM_USER + 31);
  1304. TB_SETBITMAPSIZE = (WM_USER + 32);
  1305. TB_AUTOSIZE = (WM_USER + 33);
  1306. TB_GETTOOLTIPS = (WM_USER + 35);
  1307. TB_SETTOOLTIPS = (WM_USER + 36);
  1308. TB_SETPARENT = (WM_USER + 37);
  1309. TB_SETROWS = (WM_USER + 39);
  1310. TB_GETROWS = (WM_USER + 40);
  1311. TB_SETCMDID = (WM_USER + 42);
  1312. TB_CHANGEBITMAP = (WM_USER + 43);
  1313. TB_GETBITMAP = (WM_USER + 44);
  1314. TB_GETBUTTONTEXTA = (WM_USER + 45);
  1315. TB_GETBUTTONTEXTW = (WM_USER + 75);
  1316. TB_REPLACEBITMAP = (WM_USER + 46);
  1317. {$ifdef ie3plus}
  1318. TB_SETINDENT = (WM_USER + 47);
  1319. TB_SETIMAGELIST = (WM_USER + 48);
  1320. TB_GETIMAGELIST = (WM_USER + 49);
  1321. TB_LOADIMAGES = (WM_USER + 50);
  1322. TB_GETRECT = (WM_USER + 51); // wParam is the Cmd instead of index
  1323. TB_SETHOTIMAGELIST = (WM_USER + 52);
  1324. TB_GETHOTIMAGELIST = (WM_USER + 53);
  1325. TB_SETDISABLEDIMAGELIST = (WM_USER + 54);
  1326. TB_GETDISABLEDIMAGELIST = (WM_USER + 55);
  1327. TB_SETSTYLE = (WM_USER + 56);
  1328. TB_GETSTYLE = (WM_USER + 57);
  1329. TB_GETBUTTONSIZE = (WM_USER + 58);
  1330. TB_SETBUTTONWIDTH = (WM_USER + 59);
  1331. TB_SETMAXTEXTROWS = (WM_USER + 60);
  1332. TB_GETTEXTROWS = (WM_USER + 61);
  1333. {$ENDIF} // _WIN32_IE >= 0x0300
  1334. CONST
  1335. {$IFDEF UNICODE}
  1336. TB_SAVERESTORE = TB_SAVERESTOREW;
  1337. TB_ADDSTRING = TB_ADDSTRINGW;
  1338. {$ELSE}
  1339. TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
  1340. TB_SAVERESTORE = TB_SAVERESTOREA;
  1341. TB_ADDSTRING = TB_ADDSTRINGA;
  1342. {$ENDIF}
  1343. {$ifdef ie4plus}
  1344. CONST
  1345. TB_GETOBJECT = (WM_USER + 62); // wParam == IID, lParam void **ppv
  1346. TB_GETHOTITEM = (WM_USER + 71);
  1347. TB_SETHOTITEM = (WM_USER + 72); // wParam == iHotItem
  1348. TB_SETANCHORHIGHLIGHT = (WM_USER + 73); // wParam == TRUE/FALSE
  1349. TB_GETANCHORHIGHLIGHT = (WM_USER + 74);
  1350. TB_MAPACCELERATORA = (WM_USER + 78); // wParam == ch, lParam int * pidBtn
  1351. TYPE
  1352. TBINSERTMARK = Record
  1353. iButton : cint;
  1354. dwFlags : DWORD;
  1355. END;
  1356. LPTBINSERTMARK = ^TBINSERTMARK;
  1357. TTBINSERTMARK = TBINSERTMARK;
  1358. PTBINSERTMARK = ^TBINSERTMARK;
  1359. CONST
  1360. TBIMHT_AFTER = $00000001; // TRUE = insert After iButton, otherwise before
  1361. TBIMHT_BACKGROUND = $00000002; // TRUE iff missed buttons completely
  1362. TB_GETINSERTMARK = (WM_USER + 79); // lParam == LPTBINSERTMARK
  1363. TB_SETINSERTMARK = (WM_USER + 80); // lParam == LPTBINSERTMARK
  1364. TB_INSERTMARKHITTEST = (WM_USER + 81); // wParam == LPPOINT lParam == LPTBINSERTMARK
  1365. TB_MOVEBUTTON = (WM_USER + 82);
  1366. TB_GETMAXSIZE = (WM_USER + 83); // lParam == LPSIZE
  1367. TB_SETEXTENDEDSTYLE = (WM_USER + 84); // For TBSTYLE_EX_*
  1368. TB_GETEXTENDEDSTYLE = (WM_USER + 85); // For TBSTYLE_EX_*
  1369. TB_GETPADDING = (WM_USER + 86);
  1370. TB_SETPADDING = (WM_USER + 87);
  1371. TB_SETINSERTMARKCOLOR = (WM_USER + 88);
  1372. TB_GETINSERTMARKCOLOR = (WM_USER + 89);
  1373. TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme
  1374. TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
  1375. TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  1376. TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  1377. TB_MAPACCELERATORW = (WM_USER + 90); // wParam == ch, lParam int * pidBtn
  1378. CONST
  1379. {$IFDEF UNICODE}
  1380. TB_MAPACCELERATOR = TB_MAPACCELERATORW;
  1381. {$ELSE}
  1382. TB_MAPACCELERATOR = TB_MAPACCELERATORA;
  1383. {$ENDIF}
  1384. {$ENDIF} // _WIN32_IE >= 0x0400
  1385. TYPE
  1386. TBREPLACEBITMAP = Record
  1387. hInstOld : HINST;
  1388. nIDOld : UINT_PTR;
  1389. hInstNew : HINST;
  1390. nIDNew : UINT_PTR;
  1391. nButtons : cint;
  1392. END;
  1393. LPTBREPLACEBITMAP = ^TBREPLACEBITMAP;
  1394. TTBREPLACEBITMAP = TBREPLACEBITMAP;
  1395. PTBREPLACEBITMAP = ^TBREPLACEBITMAP;
  1396. {$IFDEF _WIN32}
  1397. CONST
  1398. TBBF_LARGE = $0001;
  1399. TB_GETBITMAPFLAGS = (WM_USER + 41);
  1400. {$ifdef ie4plus}
  1401. TBIF_IMAGE = $00000001;
  1402. TBIF_TEXT = $00000002;
  1403. TBIF_STATE = $00000004;
  1404. TBIF_STYLE = $00000008;
  1405. TBIF_LPARAM = $00000010;
  1406. TBIF_COMMAND = $00000020;
  1407. TBIF_SIZE = $00000040;
  1408. {$ifdef ie5plus}
  1409. TBIF_BYINDEX = $80000000; // this specifies that the wparam in Get/SetButtonInfo is an index, not id
  1410. {$ENDIF}
  1411. TYPE
  1412. TBBUTTONINFOA = Record
  1413. cbSize : UINT;
  1414. dwMask : DWORD;
  1415. idCommand : cint;
  1416. iImage : cint;
  1417. fsState : BYTE;
  1418. fsStyle : BYTE;
  1419. cx : WORD;
  1420. lParam : DWORD_PTR;
  1421. pszText : LPSTR;
  1422. cchText : cint;
  1423. END;
  1424. LPTBBUTTONINFOA = ^TBBUTTONINFOA;
  1425. TTBBUTTONINFOA = TBBUTTONINFOA;
  1426. PTBBUTTONINFOA = ^TBBUTTONINFOA;
  1427. TBBUTTONINFOW = Record
  1428. cbSize : UINT;
  1429. dwMask : DWORD;
  1430. idCommand : cint;
  1431. iImage : cint;
  1432. fsState : BYTE;
  1433. fsStyle : BYTE;
  1434. cx : WORD;
  1435. lParam : DWORD_PTR;
  1436. pszText : LPWSTR;
  1437. cchText : cint;
  1438. END;
  1439. LPTBBUTTONINFOW = ^TBBUTTONINFOW;
  1440. TTBBUTTONINFOW= TBBUTTONINFOW;
  1441. PTBBUTTONINFOW= ^TBBUTTONINFOW;
  1442. {$IFDEF UNICODE}
  1443. TBBUTTONINFO = TBBUTTONINFOW;
  1444. LPTBBUTTONINFO = LPTBBUTTONINFOW;
  1445. {$ELSE}
  1446. TBBUTTONINFO = TBBUTTONINFOA;
  1447. LPTBBUTTONINFO = LPTBBUTTONINFOA;
  1448. {$ENDIF}
  1449. TTBButtonInfo = TBBUTTONINFO;
  1450. PTBButtonInfo = LPTBBUTTONINFO;
  1451. // BUTTONINFO APIs do NOT support the string pool.
  1452. CONST
  1453. TB_GETBUTTONINFOW = (WM_USER + 63);
  1454. TB_SETBUTTONINFOW = (WM_USER + 64);
  1455. TB_GETBUTTONINFOA = (WM_USER + 65);
  1456. TB_SETBUTTONINFOA = (WM_USER + 66);
  1457. {$IFDEF UNICODE}
  1458. CONST
  1459. TB_GETBUTTONINFO = TB_GETBUTTONINFOW;
  1460. TB_SETBUTTONINFO = TB_SETBUTTONINFOW;
  1461. {$ELSE}
  1462. CONST
  1463. TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
  1464. TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
  1465. {$ENDIF}
  1466. CONST
  1467. TB_INSERTBUTTONW = (WM_USER + 67);
  1468. TB_ADDBUTTONSW = (WM_USER + 68);
  1469. TB_HITTEST = (WM_USER + 69);
  1470. // New post Win95/NT4 for InsertButton and AddButton. if iString member
  1471. // is a pointer to a string, it will be handled as a string like listview
  1472. // (although LPSTR_TEXTCALLBACK is not supported).
  1473. {$IFDEF UNICODE}
  1474. CONST
  1475. TB_INSERTBUTTON = TB_INSERTBUTTONW;
  1476. TB_ADDBUTTONS = TB_ADDBUTTONSW;
  1477. {$ELSE}
  1478. CONST
  1479. TB_INSERTBUTTON = TB_INSERTBUTTONA;
  1480. TB_ADDBUTTONS = TB_ADDBUTTONSA;
  1481. {$ENDIF}
  1482. CONST
  1483. TB_SETDRAWTEXTFLAGS = (WM_USER + 70); // wParam == mask lParam == bit values
  1484. {$ENDIF} // _WIN32_IE >= 0x0400
  1485. {$ifdef ie5plus}
  1486. TB_GETSTRINGW = (WM_USER + 91);
  1487. TB_GETSTRINGA = (WM_USER + 92);
  1488. {$IFDEF UNICODE}
  1489. TB_GETSTRING = TB_GETSTRINGW;
  1490. {$ELSE}
  1491. TB_GETSTRING = TB_GETSTRINGA;
  1492. {$ENDIF}
  1493. {$ENDIF} // _WIN32_IE >= 0x0500
  1494. {$ifdef win32xp}
  1495. CONST
  1496. TBMF_PAD = $00000001;
  1497. TBMF_BARPAD = $00000002;
  1498. TBMF_BUTTONSPACING = $00000004;
  1499. TYPE
  1500. TBMETRICS = Record
  1501. cbSize : UINT;
  1502. dwMask : DWORD;
  1503. cxPad : cint; // PAD
  1504. cyPad : cint;
  1505. cxBarPad : cint; // BARPAD
  1506. cyBarPad : cint;
  1507. cxButtonSpacing : cint; // BUTTONSPACING
  1508. cyButtonSpacing : cint;
  1509. END;
  1510. LPTBMETRICS = ^TBMETRICS;
  1511. TTBMETRICS = TBMETRICS;
  1512. PTBMETRICS = ^TBMETRICS;
  1513. CONST
  1514. TB_GETMETRICS = (WM_USER + 101);
  1515. TB_SETMETRICS = (WM_USER + 102);
  1516. {$ENDIF}
  1517. {$ifdef win32xp}
  1518. TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
  1519. {$ENDIF}
  1520. TBN_GETBUTTONINFOA = (TBN_FIRST-0);
  1521. TBN_BEGINDRAG = (TBN_FIRST-1);
  1522. TBN_ENDDRAG = (TBN_FIRST-2);
  1523. TBN_BEGINADJUST = (TBN_FIRST-3);
  1524. TBN_ENDADJUST = (TBN_FIRST-4);
  1525. TBN_RESET = (TBN_FIRST-5);
  1526. TBN_QUERYINSERT = (TBN_FIRST-6);
  1527. TBN_QUERYDELETE = (TBN_FIRST-7);
  1528. TBN_TOOLBARCHANGE = (TBN_FIRST-8);
  1529. TBN_CUSTHELP = (TBN_FIRST-9);
  1530. {$ifdef ie3plus}
  1531. TBN_DROPDOWN = (TBN_FIRST - 10);
  1532. {$ENDIF}
  1533. {$ifdef ie4plus}
  1534. TBN_GETOBJECT = (TBN_FIRST - 12);
  1535. // Structure for TBN_HOTITEMCHANGE notification
  1536. //
  1537. TYPE
  1538. tagNMTBHOTITEM = Record
  1539. hdr : NMHDR;
  1540. idOld : cint;
  1541. idNew : cint;
  1542. dwFlags : DWORD; // HICF_*
  1543. END;
  1544. NMTBHOTITEM = tagNMTBHOTITEM;
  1545. LPNMTBHOTITEM = ^tagNMTBHOTITEM;
  1546. TNMTBHOTITEM = tagNMTBHOTITEM;
  1547. PNMTBHOTITEM = ^tagNMTBHOTITEM;
  1548. // Hot item change flags
  1549. CONST
  1550. HICF_OTHER = $00000000;
  1551. HICF_MOUSE = $00000001; // Triggered by mouse
  1552. HICF_ARROWKEYS = $00000002; // Triggered by arrow keys
  1553. HICF_ACCELERATOR = $00000004; // Triggered by accelerator
  1554. HICF_DUPACCEL = $00000008; // This accelerator is not unique
  1555. HICF_ENTERING = $00000010; // idOld is invalid
  1556. HICF_LEAVING = $00000020; // idNew is invalid
  1557. HICF_RESELECT = $00000040; // hot item reselected
  1558. HICF_LMOUSE = $00000080; // left mouse button selected
  1559. HICF_TOGGLEDROPDOWN = $00000100; // Toggle button's dropdown state
  1560. TBN_HOTITEMCHANGE = (TBN_FIRST - 13);
  1561. TBN_DRAGOUT = (TBN_FIRST - 14); // this is sent when the user clicks down on a button then drags off the button
  1562. TBN_DELETINGBUTTON = (TBN_FIRST - 15); // uses TBNOTIFY
  1563. TBN_GETDISPINFOA = (TBN_FIRST - 16); // This is sent when the toolbar needs some display information
  1564. TBN_GETDISPINFOW = (TBN_FIRST - 17); // This is sent when the toolbar needs some display information
  1565. TBN_GETINFOTIPA = (TBN_FIRST - 18);
  1566. TBN_GETINFOTIPW = (TBN_FIRST - 19);
  1567. TBN_GETBUTTONINFOW = (TBN_FIRST - 20);
  1568. {$ifdef ie5plus}
  1569. TBN_RESTORE = (TBN_FIRST - 21);
  1570. TBN_SAVE = (TBN_FIRST - 22);
  1571. TBN_INITCUSTOMIZE = (TBN_FIRST - 23);
  1572. TBNRF_HIDEHELP = $00000001;
  1573. TBNRF_ENDCUSTOMIZE = $00000002;
  1574. {$ENDIF} // (_WIN32_IE >= 0x0500)
  1575. {$ifdef ie5plus}
  1576. TYPE
  1577. tagNMTBSAVE = Record
  1578. hdr : NMHDR;
  1579. pData : PDWORD;
  1580. pCurrent : PDWORD;
  1581. cbData : UINT;
  1582. iItem : cint;
  1583. cButtons : cint;
  1584. tbButton : TBBUTTON;
  1585. END;
  1586. NMTBSAVE = tagNMTBSAVE;
  1587. LPNMTBSAVE = ^tagNMTBSAVE;
  1588. TNMTBSAVE = tagNMTBSAVE;
  1589. PNMTBSAVE = ^tagNMTBSAVE;
  1590. tagNMTBRESTORE = Record
  1591. hdr : NMHDR;
  1592. pData : PDWORD;
  1593. pCurrent : PDWORD;
  1594. cbData : UINT;
  1595. iItem : cint;
  1596. cButtons : cint;
  1597. cbBytesPerRecord : cint;
  1598. tbButton : TBBUTTON;
  1599. END;
  1600. NMTBRESTORE = tagNMTBRESTORE;
  1601. LPNMTBRESTORE = ^tagNMTBRESTORE;
  1602. TNMTBRESTORE = tagNMTBRESTORE;
  1603. PNMTBRESTORE = ^tagNMTBRESTORE;
  1604. {$ENDIF} // (_WIN32_IE >= 0x0500)
  1605. tagNMTBGETINFOTIPA = Record
  1606. hdr : NMHDR;
  1607. pszText : LPSTR;
  1608. cchTextMax : cint;
  1609. iItem : cint;
  1610. lParam : LPARAM;
  1611. END;
  1612. NMTBGETINFOTIPA = tagNMTBGETINFOTIPA;
  1613. LPNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA;
  1614. TNMTBGETINFOTIPA = tagNMTBGETINFOTIPA;
  1615. PNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA;
  1616. tagNMTBGETINFOTIPW = Record
  1617. hdr : NMHDR;
  1618. pszText : LPWSTR;
  1619. cchTextMax : cint;
  1620. iItem : cint;
  1621. lParam : LPARAM;
  1622. END;
  1623. NMTBGETINFOTIPW = tagNMTBGETINFOTIPW;
  1624. LPNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW;
  1625. TNMTBGETINFOTIPW = tagNMTBGETINFOTIPW;
  1626. PNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW;
  1627. {$IFDEF UNICODE}
  1628. CONST
  1629. TBN_GETINFOTIP = TBN_GETINFOTIPW;
  1630. TYPE
  1631. NMTBGETINFOTIP = NMTBGETINFOTIPW;
  1632. LPNMTBGETINFOTIP = LPNMTBGETINFOTIPW;
  1633. {$ELSE}
  1634. CONST
  1635. TBN_GETINFOTIP = TBN_GETINFOTIPA;
  1636. TYPE
  1637. NMTBGETINFOTIP = NMTBGETINFOTIPA;
  1638. LPNMTBGETINFOTIP = LPNMTBGETINFOTIPA;
  1639. {$ENDIF}
  1640. CONST
  1641. TBNF_IMAGE = $00000001;
  1642. TBNF_TEXT = $00000002;
  1643. TBNF_DI_SETITEM = $10000000;
  1644. TYPE
  1645. NMTBDISPINFOA = Record
  1646. hdr : NMHDR;
  1647. dwMask : DWORD; // [in] Specifies the values requested .[out] Client ask the data to be set for future use
  1648. idCommand : cint; // [in] id of button we're requesting info for
  1649. lParam : DWORD_PTR; // [in] lParam of button
  1650. iImage : cint; // [out] image index
  1651. pszText : LPSTR; // [out] new text for item
  1652. cchText : cint; // [in] size of buffer pointed to by pszText
  1653. END;
  1654. LPNMTBDISPINFOA = ^NMTBDISPINFOA;
  1655. TNMTBDISPINFOA = NMTBDISPINFOA;
  1656. PNMTBDISPINFOA = ^NMTBDISPINFOA;
  1657. NMTBDISPINFOW = Record
  1658. hdr : NMHDR;
  1659. dwMask : DWORD; //[in] Specifies the values requested .[out] Client ask the data to be set for future use
  1660. idCommand : cint; // [in] id of button we're requesting info for
  1661. lParam : DWORD_PTR; // [in] lParam of button
  1662. iImage : cint; // [out] image index
  1663. pszText : LPWSTR; // [out] new text for item
  1664. cchText : cint; // [in] size of buffer pointed to by pszText
  1665. END;
  1666. LPNMTBDISPINFOW = ^NMTBDISPINFOW;
  1667. TNMTBDISPINFOW = NMTBDISPINFOW;
  1668. PNMTBDISPINFOW = ^NMTBDISPINFOW;
  1669. {$IFDEF UNICODE}
  1670. CONST
  1671. TBN_GETDISPINFO = TBN_GETDISPINFOW;
  1672. TYPE
  1673. NMTBDISPINFO = NMTBDISPINFOW;
  1674. LPNMTBDISPINFO = LPNMTBDISPINFOW;
  1675. {$ELSE}
  1676. CONST
  1677. TBN_GETDISPINFO = TBN_GETDISPINFOA;
  1678. TYPE
  1679. NMTBDISPINFO = NMTBDISPINFOA;
  1680. LPNMTBDISPINFO = LPNMTBDISPINFOA;
  1681. {$ENDIF}
  1682. // Return codes for TBN_DROPDOWN
  1683. CONST
  1684. TBDDRET_DEFAULT = 0;
  1685. TBDDRET_NODEFAULT = 1;
  1686. TBDDRET_TREATPRESSED = 2; // Treat as a standard press button
  1687. {$ENDIF}
  1688. {$IFDEF UNICODE}
  1689. TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
  1690. {$ELSE}
  1691. TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
  1692. {$ENDIF}
  1693. TYPE
  1694. {$ifdef ie3plus}
  1695. tagNMTOOLBARA = Record
  1696. hdr : NMHDR;
  1697. iItem : cint;
  1698. tbButton : TBBUTTON;
  1699. cchText : cint;
  1700. pszText : LPSTR;
  1701. {$ifdef ie5plus}
  1702. rcButton : RECT;
  1703. {$ENDIF}
  1704. END;
  1705. NMTOOLBARA = tagNMTOOLBARA;
  1706. LPNMTOOLBARA = ^tagNMTOOLBARA;
  1707. LPNMTOOLBAR = LPNMTOOLBARA;
  1708. TNMTOOLBARA = tagNMTOOLBARA;
  1709. PNMTOOLBARA = LPNMTOOLBARA;
  1710. {$ENDIF}
  1711. LPTBNOTIFY = LPNMTOOLBARA;
  1712. TBNOTIFYA = NMTOOLBARA;
  1713. {$ifdef ie3plus}
  1714. tagNMTOOLBARW = Record
  1715. hdr : NMHDR;
  1716. iItem : cint;
  1717. tbButton : TBBUTTON;
  1718. cchText : cint;
  1719. pszText : LPWSTR;
  1720. {$ifdef ie5plus}
  1721. rcButton : RECT;
  1722. {$ENDIF}
  1723. END;
  1724. NMTOOLBARW = tagNMTOOLBARW;
  1725. LPNMTOOLBARW = ^tagNMTOOLBARW;
  1726. TNMTOOLBARW = tagNMTOOLBARW;
  1727. PNMTOOLBARW = ^tagNMTOOLBARW;
  1728. {$ENDIF}
  1729. {$ifdef ie3plus}
  1730. TBNOTIFYW = NMTOOLBARW;
  1731. LPTBNOTIFYA = LPNMTOOLBARA;
  1732. {$ELSE}
  1733. tagNMTOOLBARA = tagTBNOTIFYA;
  1734. NMTOOLBARA = TBNOTIFYA;
  1735. LPNMTOOLBARA = LPTBNOTIFYA;
  1736. tagNMTOOLBARW = tagTBNOTIFYW;
  1737. NMTOOLBARW = TBNOTIFYW;
  1738. LPNMTOOLBARW = LPTBNOTIFYW;
  1739. {$ENDIF}
  1740. {$IFDEF UNICODE}
  1741. NMTOOLBAR = NMTOOLBARW;
  1742. LPNMTOOLBAR = LPNMTOOLBARW;
  1743. {$ELSE}
  1744. NMTOOLBAR = NMTOOLBARA;
  1745. TNMTOOLBAR = NMTOOLBARA;
  1746. PNMTOOLBAR = LPNMTOOLBARA;
  1747. {$ENDIF}
  1748. TBNOTIFY = NMTOOLBAR;
  1749. {$ENDIF}
  1750. {$ENDIF} // NOTOOLBAR
  1751. LPTBNOTIFYW = LPNMTOOLBARW;
  1752. {$ifdef ie3plus}
  1753. //====== REBAR CONTROL ========================================================
  1754. {$IFNDEF NOREBAR}
  1755. {$IFDEF _WIN32}
  1756. CONST
  1757. REBARCLASSNAMEW = {L}'ReBarWindow32';
  1758. REBARCLASSNAMEA = 'ReBarWindow32';
  1759. {$IFDEF UNICODE}
  1760. REBARCLASSNAME = REBARCLASSNAMEW;
  1761. {$ELSE}
  1762. REBARCLASSNAME = REBARCLASSNAMEA;
  1763. {$ENDIF}
  1764. {$ELSE}
  1765. CONST
  1766. REBARCLASSNAME = 'ReBarWindow';
  1767. {$ENDIF}
  1768. CONST
  1769. RBIM_IMAGELIST = $00000001;
  1770. // begin_r_commctrl
  1771. {$ifdef ie4plus}
  1772. RBS_TOOLTIPS = $0100;
  1773. RBS_VARHEIGHT = $0200;
  1774. RBS_BANDBORDERS = $0400;
  1775. RBS_FIXEDORDER = $0800;
  1776. RBS_REGISTERDROP = $1000;
  1777. RBS_AUTOSIZE = $2000;
  1778. RBS_VERTICALGRIPPER = $4000; // this always has the vertical gripper (default for horizontal mode)
  1779. RBS_DBLCLKTOGGLE = $8000;
  1780. {$ELSE}
  1781. RBS_TOOLTIPS = $00000100;
  1782. RBS_VARHEIGHT = $00000200;
  1783. RBS_BANDBORDERS = $00000400;
  1784. RBS_FIXEDORDER = $00000800;
  1785. {$ENDIF} // _WIN32_IE >= 0x0400
  1786. // end_r_commctrl
  1787. TYPE
  1788. tagREBARINFO = Record
  1789. cbSize : UINT;
  1790. fMask : UINT;
  1791. {$IFNDEF NOIMAGEAPIS}
  1792. himl : HIMAGELIST;
  1793. {$ELSE}
  1794. himl : HANDLE;
  1795. {$ENDIF}
  1796. END;
  1797. REBARINFO = tagREBARINFO;
  1798. LPREBARINFO = ^tagREBARINFO;
  1799. TREBARINFO = tagREBARINFO;
  1800. PREBARINFO = ^tagREBARINFO;
  1801. CONST
  1802. RBBS_BREAK = $00000001; // break to new line
  1803. RBBS_FIXEDSIZE = $00000002; // band can't be sized
  1804. RBBS_CHILDEDGE = $00000004; // edge around top & bottom of child window
  1805. RBBS_HIDDEN = $00000008; // don't show
  1806. RBBS_NOVERT = $00000010; // don't show when vertical
  1807. RBBS_FIXEDBMP = $00000020; // bitmap doesn't move during band resize
  1808. {$ifdef ie4plus }
  1809. RBBS_VARIABLEHEIGHT = $00000040; // allow autosizing of this child vertically
  1810. RBBS_GRIPPERALWAYS = $00000080; // always show the gripper
  1811. RBBS_NOGRIPPER = $00000100; // never show the gripper
  1812. {$ifdef ie5plus}
  1813. RBBS_USECHEVRON = $00000200; // display drop-down button for this band if it's sized smaller than ideal width
  1814. {$ifdef IE501plus}
  1815. RBBS_HIDETITLE = $00000400; // keep band title hidden
  1816. RBBS_TOPALIGN = $00000800; // keep band title hidden
  1817. {$ENDIF} // 0x0501 //
  1818. {$ENDIF} // 0x0500 //
  1819. {$ENDIF} // 0x0400 //
  1820. RBBIM_STYLE = $00000001;
  1821. RBBIM_COLORS = $00000002;
  1822. RBBIM_TEXT = $00000004;
  1823. RBBIM_IMAGE = $00000008;
  1824. RBBIM_CHILD = $00000010;
  1825. RBBIM_CHILDSIZE = $00000020;
  1826. RBBIM_SIZE = $00000040;
  1827. RBBIM_BACKGROUND = $00000080;
  1828. RBBIM_ID = $00000100;
  1829. {$ifdef ie4plus}
  1830. RBBIM_IDEALSIZE = $00000200;
  1831. RBBIM_LPARAM = $00000400;
  1832. RBBIM_HEADERSIZE = $00000800; // control the size of the header
  1833. {$ENDIF}
  1834. TYPE
  1835. tagREBARBANDINFOA = Record
  1836. cbSize : UINT;
  1837. fMask : UINT;
  1838. fStyle : UINT;
  1839. clrFore : COLORREF;
  1840. clrBack : COLORREF;
  1841. lpText : LPSTR;
  1842. cch : UINT;
  1843. iImage : cint;
  1844. hwndChild : HWND;
  1845. cxMinChild : UINT;
  1846. cyMinChild : UINT;
  1847. cx : UINT;
  1848. hbmBack : HBITMAP;
  1849. wID : UINT;
  1850. {$ifdef ie4plus}
  1851. cyChild : UINT;
  1852. cyMaxChild : UINT;
  1853. cyIntegral : UINT;
  1854. cxIdeal : UINT;
  1855. lParam : LPARAM;
  1856. cxHeader : UINT;
  1857. {$ENDIF}
  1858. END;
  1859. REBARBANDINFOA = tagREBARBANDINFOA;
  1860. LPREBARBANDINFOA = ^tagREBARBANDINFOA;
  1861. TREBARBANDINFOA = tagREBARBANDINFOA;
  1862. PREBARBANDINFOA = ^tagREBARBANDINFOA;
  1863. LPCREBARBANDINFOA = ^REBARBANDINFOA;
  1864. // #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID)
  1865. // #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID)
  1866. tagREBARBANDINFOW = Record
  1867. cbSize : UINT;
  1868. fMask : UINT;
  1869. fStyle : UINT;
  1870. clrFore : COLORREF;
  1871. clrBack : COLORREF;
  1872. lpText : LPWSTR;
  1873. cch : UINT;
  1874. iImage : cint;
  1875. hwndChild : HWND;
  1876. cxMinChild : UINT;
  1877. cyMinChild : UINT;
  1878. cx : UINT;
  1879. hbmBack : HBITMAP;
  1880. wID : UINT;
  1881. {$ifdef ie4plus}
  1882. cyChild : UINT;
  1883. cyMaxChild : UINT;
  1884. cyIntegral : UINT;
  1885. cxIdeal : UINT;
  1886. lParam : LPARAM;
  1887. cxHeader : UINT;
  1888. {$ENDIF}
  1889. END;
  1890. REBARBANDINFOW = tagREBARBANDINFOW;
  1891. LPREBARBANDINFOW = ^tagREBARBANDINFOW;
  1892. TREBARBANDINFOW = tagREBARBANDINFOW;
  1893. PREBARBANDINFOW = ^tagREBARBANDINFOW;
  1894. LPCREBARBANDINFOW = {const} ^REBARBANDINFOW;
  1895. {$IFDEF UNICODE}
  1896. REBARBANDINFO = REBARBANDINFOW;
  1897. LPREBARBANDINFO = LPREBARBANDINFOW;
  1898. LPCREBARBANDINFO = LPCREBARBANDINFOW;
  1899. // REBARBANDINFO_V3_SIZE = REBARBANDINFOW_V3_SIZE;
  1900. {$ELSE}
  1901. REBARBANDINFO = REBARBANDINFOA;
  1902. LPREBARBANDINFO = LPREBARBANDINFOA;
  1903. LPCREBARBANDINFO = LPCREBARBANDINFOA;
  1904. TRebarBandInfo = REBARBANDINFO;
  1905. PRebarBandInfo = ^LPREBARBANDINFO;
  1906. // REBARBANDINFO_V3_SIZE = REBARBANDINFOA_V3_SIZE;
  1907. {$ENDIF}
  1908. CONST
  1909. RB_INSERTBANDA = (WM_USER + 1);
  1910. RB_DELETEBAND = (WM_USER + 2);
  1911. RB_GETBARINFO = (WM_USER + 3);
  1912. RB_SETBARINFO = (WM_USER + 4);
  1913. {$ifdef IE4plus}
  1914. RB_GETBANDINFO = (WM_USER + 5);
  1915. RB_GETBANDINFO_PRE_IE4 = (WM_USER + 5);
  1916. {$ENDIF}
  1917. RB_SETBANDINFOA = (WM_USER + 6);
  1918. RB_SETPARENT = (WM_USER + 7);
  1919. {$ifdef ie4plus}
  1920. RB_HITTEST = (WM_USER + 8);
  1921. RB_GETRECT = (WM_USER + 9);
  1922. {$ENDIF}
  1923. RB_INSERTBANDW = (WM_USER + 10);
  1924. RB_SETBANDINFOW = (WM_USER + 11);
  1925. RB_GETBANDCOUNT = (WM_USER + 12);
  1926. RB_GETROWCOUNT = (WM_USER + 13);
  1927. RB_GETROWHEIGHT = (WM_USER + 14);
  1928. {$ifdef ie4plus}
  1929. RB_IDTOINDEX = (WM_USER + 16); // wParam == id
  1930. RB_GETTOOLTIPS = (WM_USER + 17);
  1931. RB_SETTOOLTIPS = (WM_USER + 18);
  1932. RB_SETBKCOLOR = (WM_USER + 19); // sets the default BK color
  1933. RB_GETBKCOLOR = (WM_USER + 20); // defaults to CLR_NONE
  1934. RB_SETTEXTCOLOR = (WM_USER + 21);
  1935. RB_GETTEXTCOLOR = (WM_USER + 22); // defaults to 0x00000000
  1936. {$ifdef Win32XP}
  1937. RBSTR_CHANGERECT = $0001; // flags for RB_SIZETORECT
  1938. {$ENDIF}
  1939. RB_SIZETORECT = (WM_USER + 23); // resize the rebar/break bands and such to this rect (lparam)
  1940. {$ENDIF} // _WIN32_IE >= 0x0400
  1941. RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme
  1942. RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam
  1943. {$IFDEF UNICODE}
  1944. RB_INSERTBAND = RB_INSERTBANDW;
  1945. RB_SETBANDINFO = RB_SETBANDINFOW;
  1946. {$ELSE}
  1947. RB_INSERTBAND = RB_INSERTBANDA;
  1948. RB_SETBANDINFO = RB_SETBANDINFOA;
  1949. {$ENDIF}
  1950. {$ifdef ie4plus}
  1951. // for manual drag control
  1952. // lparam == cursor pos
  1953. // -1 means do it yourself.
  1954. // -2 means use what you had saved before
  1955. CONST
  1956. RB_BEGINDRAG = (WM_USER + 24);
  1957. RB_ENDDRAG = (WM_USER + 25);
  1958. RB_DRAGMOVE = (WM_USER + 26);
  1959. RB_GETBARHEIGHT = (WM_USER + 27);
  1960. RB_GETBANDINFOW = (WM_USER + 28);
  1961. RB_GETBANDINFOA = (WM_USER + 29);
  1962. //TYPE
  1963. {$IFDEF UNICODE}
  1964. // RB_GETBANDINFO = RB_GETBANDINFOW;
  1965. {$ELSE}
  1966. // RB_GETBANDINFO = RB_GETBANDINFOA;
  1967. {$ENDIF}
  1968. CONST
  1969. RB_MINIMIZEBAND = (WM_USER + 30);
  1970. RB_MAXIMIZEBAND = (WM_USER + 31);
  1971. RB_GETDROPTARGET = (CCM_GETDROPTARGET);
  1972. RB_GETBANDBORDERS = (WM_USER + 34); // returns in lparam = lprc the amount of edges added to band wparam
  1973. RB_SHOWBAND = (WM_USER + 35); // show/hide band
  1974. RB_SETPALETTE = (WM_USER + 37);
  1975. RB_GETPALETTE = (WM_USER + 38);
  1976. RB_MOVEBAND = (WM_USER + 39);
  1977. RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  1978. RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  1979. {$ENDIF} // _WIN32_IE >= 0x0400
  1980. {$ifdef win32xp}
  1981. RB_GETBANDMARGINS = (WM_USER + 40);
  1982. RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
  1983. {$ENDIF}
  1984. {$ifdef ie5plus}
  1985. RB_PUSHCHEVRON = (WM_USER + 43);
  1986. {$ENDIF} // _WIN32_IE >= 0x0500
  1987. RBN_HEIGHTCHANGE = (RBN_FIRST - 0);
  1988. {$ifdef ie4plus}
  1989. RBN_GETOBJECT = (RBN_FIRST - 1);
  1990. RBN_LAYOUTCHANGED = (RBN_FIRST - 2);
  1991. RBN_AUTOSIZE = (RBN_FIRST - 3);
  1992. RBN_BEGINDRAG = (RBN_FIRST - 4);
  1993. RBN_ENDDRAG = (RBN_FIRST - 5);
  1994. RBN_DELETINGBAND = (RBN_FIRST - 6); // Uses NMREBAR
  1995. RBN_DELETEDBAND = (RBN_FIRST - 7); // Uses NMREBAR
  1996. RBN_CHILDSIZE = (RBN_FIRST - 8);
  1997. {$ifdef ie5plus}
  1998. RBN_CHEVRONPUSHED = (RBN_FIRST - 10);
  1999. {$ENDIF} // _WIN32_IE >= 0x0500
  2000. {$ifdef ie5plus}
  2001. RBN_MINMAX = (RBN_FIRST - 21);
  2002. {$ENDIF}
  2003. {$ifdef Win32XP}
  2004. RBN_AUTOBREAK = (RBN_FIRST - 22);
  2005. {$ENDIF}
  2006. TYPE
  2007. tagNMREBARCHILDSIZE = Record
  2008. hdr : NMHDR;
  2009. uBand : UINT;
  2010. wID : UINT;
  2011. rcChild : RECT;
  2012. rcBand : RECT;
  2013. END;
  2014. NMREBARCHILDSIZE = tagNMREBARCHILDSIZE;
  2015. LPNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE;
  2016. TNMREBARCHILDSIZE = tagNMREBARCHILDSIZE;
  2017. PNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE;
  2018. tagNMREBAR = Record
  2019. hdr : NMHDR;
  2020. dwMask : DWORD; // RBNM_*
  2021. uBand : UINT;
  2022. fStyle : UINT;
  2023. wID : UINT;
  2024. lParam : LPARAM;
  2025. END;
  2026. NMREBAR = tagNMREBAR;
  2027. LPNMREBAR = ^tagNMREBAR;
  2028. TNMREBAR = tagNMREBAR;
  2029. PNMREBAR = ^tagNMREBAR;
  2030. // Mask flags for NMREBAR
  2031. CONST
  2032. RBNM_ID = $00000001;
  2033. RBNM_STYLE = $00000002;
  2034. RBNM_LPARAM = $00000004;
  2035. TYPE
  2036. tagNMRBAUTOSIZE = Record
  2037. hdr : NMHDR;
  2038. fChanged : BOOL;
  2039. rcTarget : RECT;
  2040. rcActual : RECT;
  2041. END;
  2042. NMRBAUTOSIZE = tagNMRBAUTOSIZE;
  2043. LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
  2044. TNMRBAUTOSIZE = tagNMRBAUTOSIZE;
  2045. PNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
  2046. {$ifdef ie5plus}
  2047. tagNMREBARCHEVRON = Record
  2048. hdr : NMHDR;
  2049. uBand : UINT;
  2050. wID : UINT;
  2051. lParam : LPARAM;
  2052. rc : RECT;
  2053. lParamNM : LPARAM;
  2054. END;
  2055. NMREBARCHEVRON = tagNMREBARCHEVRON;
  2056. LPNMREBARCHEVRON = ^tagNMREBARCHEVRON;
  2057. TNMREBARCHEVRON = tagNMREBARCHEVRON;
  2058. PNMREBARCHEVRON = ^tagNMREBARCHEVRON;
  2059. {$ENDIF}
  2060. {$ifdef Win32XP}
  2061. CONST
  2062. RBAB_AUTOSIZE = $0001; // These are not flags and are all mutually exclusive
  2063. RBAB_ADDBAND = $0002;
  2064. TYPE
  2065. tagNMREBARAUTOBREAK = Record
  2066. hdr : NMHDR;
  2067. uBand : UINT;
  2068. wID : UINT;
  2069. lParam : LPARAM;
  2070. uMsg : UINT;
  2071. fStyleCurrent : UINT;
  2072. fAutoBreak : BOOL;
  2073. END;
  2074. NMREBARAUTOBREAK = tagNMREBARAUTOBREAK;
  2075. LPNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK;
  2076. TNMREBARAUTOBREAK = tagNMREBARAUTOBREAK;
  2077. PNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK;
  2078. {$ENDIF}
  2079. CONST
  2080. RBHT_NOWHERE = $0001;
  2081. RBHT_CAPTION = $0002;
  2082. RBHT_CLIENT = $0003;
  2083. RBHT_GRABBER = $0004;
  2084. {$ifdef ie5plus}
  2085. RBHT_CHEVRON = $0008;
  2086. {$ENDIF}
  2087. TYPE
  2088. _RB_HITTESTINFO = Record
  2089. pt : POINT;
  2090. flags : UINT;
  2091. iBand : cint;
  2092. END;
  2093. RBHITTESTINFO = _RB_HITTESTINFO;
  2094. LPRBHITTESTINFO = ^_RB_HITTESTINFO;
  2095. TRB_HITTESTINFO = _RB_HITTESTINFO;
  2096. PRB_HITTESTINFO = ^_RB_HITTESTINFO;
  2097. PRBHitTestInfo = PRB_HITTESTINFO;
  2098. TRBHitTestInfo = TRB_HITTESTINFO;
  2099. {$ENDIF} // _WIN32_IE >= 0x0400
  2100. {$ENDIF} // NOREBAR
  2101. {$ENDIF} // _WIN32_IE >= 0x0300
  2102. //====== TOOLTIPS CONTROL =====================================================
  2103. {$IFNDEF NOTOOLTIPS}
  2104. {$IFDEF _WIN32}
  2105. CONST
  2106. TOOLTIPS_CLASSW = {L}'tooltips_class32';
  2107. TOOLTIPS_CLASSA = 'tooltips_class32';
  2108. {$IFDEF UNICODE}
  2109. TOOLTIPS_CLASS = TOOLTIPS_CLASSW;
  2110. {$ELSE}
  2111. TOOLTIPS_CLASS = TOOLTIPS_CLASSA;
  2112. {$ENDIF}
  2113. {$ELSE}
  2114. CONST
  2115. TOOLTIPS_CLASS = 'tooltips_class';
  2116. {$ENDIF}
  2117. TYPE
  2118. tagTOOLINFOA = Record
  2119. cbSize : UINT;
  2120. uFlags : UINT;
  2121. hwnd : HWND;
  2122. uId : UINT_PTR;
  2123. rect : RECT;
  2124. hinst : HINST;
  2125. lpszText : LPSTR;
  2126. {$ifdef ie3plus}
  2127. lParam : LPARAM;
  2128. {$ENDIF}
  2129. {$ifdef Win32XP}
  2130. lpReserved : Pointer;
  2131. {$ENDIF}
  2132. END;
  2133. TTTOOLINFOA = tagTOOLINFOA;
  2134. PTOOLINFOA = {near} ^tagTOOLINFOA;
  2135. LPTTTOOLINFOA = ^tagTOOLINFOA;
  2136. TTOOLINFOA = tagTOOLINFOA;
  2137. LPTOOLINFOA = ^tagTOOLINFOA;
  2138. tagTOOLINFOW = Record
  2139. cbSize : UINT;
  2140. uFlags : UINT;
  2141. hwnd : HWND;
  2142. uId : UINT_PTR;
  2143. rect : RECT;
  2144. hinst : HINST;
  2145. lpszText : LPWSTR;
  2146. {$ifdef ie3plus}
  2147. lParam : LPARAM;
  2148. {$ENDIF}
  2149. {$ifdef Win32XP}
  2150. lpReserved : Pointer;
  2151. {$ENDIF}
  2152. END;
  2153. TTTOOLINFOW = tagTOOLINFOW;
  2154. PTOOLINFOW = {near} ^tagTOOLINFOW;
  2155. LPTTTOOLINFOW = ^tagTOOLINFOW;
  2156. TTOOLINFOW = tagTOOLINFOW;
  2157. LPTOOLINFOW = ^tagTOOLINFOW;
  2158. {$IFDEF UNICODE}
  2159. TTTOOLINFO = TTTOOLINFOW;
  2160. PTOOLINFO = PTOOLINFOW;
  2161. LPTTTOOLINFO = LPTTTOOLINFOW;
  2162. // TTTOOLINFO_V1_SIZE = TTTOOLINFOW_V1_SIZE;
  2163. {$ELSE}
  2164. PTOOLINFO = PTOOLINFOA;
  2165. TTTOOLINFO = TTTOOLINFOA;
  2166. LPTTTOOLINFO = LPTTTOOLINFOA;
  2167. // TTTOOLINFO_V1_SIZE = TTTOOLINFOA_V1_SIZE;
  2168. {$ENDIF}
  2169. TYPE
  2170. {$ifdef ie3plus}
  2171. // LPTOOLINFOA = LPTTTOOLINFOA;
  2172. // LPTOOLINFOW = LPTTTOOLINFOW;
  2173. TOOLINFOA = TTTOOLINFOA;
  2174. TOOLINFOW = TTTOOLINFOW;
  2175. {$ELSE}
  2176. // TTTOOLINFOA = TOOLINFOA;
  2177. // LPTTTOOLINFOA = LPTOOLINFOA;
  2178. // TTTOOLINFOW = TOOLINFOW;
  2179. // LPTTTOOLINFOW = LPTOOLINFOW;
  2180. {$ENDIF}
  2181. LPTOOLINFO = LPTTTOOLINFO;
  2182. TOOLINFO = TTTOOLINFO;
  2183. // #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText)
  2184. // #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText)
  2185. // #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam)
  2186. // #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam)
  2187. // #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved)
  2188. // #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved)
  2189. CONST
  2190. // begin_r_commctrl
  2191. TTS_ALWAYSTIP = $01;
  2192. TTS_NOPREFIX = $02;
  2193. {$ifdef ie5plus}
  2194. TTS_NOANIMATE = $10;
  2195. TTS_NOFADE = $20;
  2196. TTS_BALLOON = $40;
  2197. TTS_CLOSE = $80;
  2198. {$ENDIF}
  2199. // end_r_commctrl
  2200. TTF_IDISHWND = $0001;
  2201. // Use this to center around trackpoint in trackmode
  2202. // -OR- to center around tool in normal mode.
  2203. // Use TTF_ABSOLUTE to place the tip exactly at the track coords when
  2204. // in tracking mode. TTF_ABSOLUTE can be used in conjunction with TTF_CENTERTIP
  2205. // to center the tip absolutely about the track point.
  2206. TTF_CENTERTIP = $0002;
  2207. TTF_RTLREADING = $0004;
  2208. TTF_SUBCLASS = $0010;
  2209. {$ifdef ie3plus}
  2210. TTF_TRACK = $0020;
  2211. TTF_ABSOLUTE = $0080;
  2212. TTF_TRANSPARENT = $0100;
  2213. {$ifdef ie501plus}
  2214. TTF_PARSELINKS = $1000;
  2215. {$ENDIF} // _WIN32_IE >= 0x0501
  2216. TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback
  2217. {$ENDIF} // _WIN32_IE >= 0x0300
  2218. TTDT_AUTOMATIC = 0;
  2219. TTDT_RESHOW = 1;
  2220. TTDT_AUTOPOP = 2;
  2221. TTDT_INITIAL = 3;
  2222. // ToolTip Icons (Set with TTM_SETTITLE)
  2223. TTI_NONE = 0;
  2224. TTI_INFO = 1;
  2225. TTI_WARNING = 2;
  2226. TTI_ERROR = 3;
  2227. // Tool Tip Messages
  2228. TTM_ACTIVATE = (WM_USER + 1);
  2229. TTM_SETDELAYTIME = (WM_USER + 3);
  2230. TTM_ADDTOOLA = (WM_USER + 4);
  2231. TTM_ADDTOOLW = (WM_USER + 50);
  2232. TTM_DELTOOLA = (WM_USER + 5);
  2233. TTM_DELTOOLW = (WM_USER + 51);
  2234. TTM_NEWTOOLRECTA = (WM_USER + 6);
  2235. TTM_NEWTOOLRECTW = (WM_USER + 52);
  2236. TTM_RELAYEVENT = (WM_USER + 7);
  2237. TTM_GETTOOLINFOA = (WM_USER + 8);
  2238. TTM_GETTOOLINFOW = (WM_USER + 53);
  2239. TTM_SETTOOLINFOA = (WM_USER + 9);
  2240. TTM_SETTOOLINFOW = (WM_USER + 54);
  2241. TTM_HITTESTA = (WM_USER + 10);
  2242. TTM_HITTESTW = (WM_USER + 55);
  2243. TTM_GETTEXTA = (WM_USER + 11);
  2244. TTM_GETTEXTW = (WM_USER + 56);
  2245. TTM_UPDATETIPTEXTA = (WM_USER + 12);
  2246. TTM_UPDATETIPTEXTW = (WM_USER + 57);
  2247. TTM_GETTOOLCOUNT = (WM_USER + 13);
  2248. TTM_ENUMTOOLSA = (WM_USER + 14);
  2249. TTM_ENUMTOOLSW = (WM_USER + 58);
  2250. TTM_GETCURRENTTOOLA = (WM_USER + 15);
  2251. TTM_GETCURRENTTOOLW = (WM_USER + 59);
  2252. TTM_WINDOWFROMPOINT = (WM_USER + 16);
  2253. {$ifdef ie3plus}
  2254. TTM_TRACKACTIVATE = (WM_USER + 17); // wParam = TRUE/FALSE start end lparam = LPTOOLINFO
  2255. TTM_TRACKPOSITION = (WM_USER + 18); // lParam = dwPos
  2256. TTM_SETTIPBKCOLOR = (WM_USER + 19);
  2257. TTM_SETTIPTEXTCOLOR = (WM_USER + 20);
  2258. TTM_GETDELAYTIME = (WM_USER + 21);
  2259. TTM_GETTIPBKCOLOR = (WM_USER + 22);
  2260. TTM_GETTIPTEXTCOLOR = (WM_USER + 23);
  2261. TTM_SETMAXTIPWIDTH = (WM_USER + 24);
  2262. TTM_GETMAXTIPWIDTH = (WM_USER + 25);
  2263. TTM_SETMARGIN = (WM_USER + 26); // lParam = lprc
  2264. TTM_GETMARGIN = (WM_USER + 27); // lParam = lprc
  2265. TTM_POP = (WM_USER + 28);
  2266. {$ENDIF}
  2267. {$ifdef ie4plus}
  2268. TTM_UPDATE = (WM_USER + 29);
  2269. {$ENDIF}
  2270. {$ifdef ie5plus}
  2271. TTM_GETBUBBLESIZE = (WM_USER + 30);
  2272. TTM_ADJUSTRECT = (WM_USER + 31);
  2273. TTM_SETTITLEA = (WM_USER + 32); // wParam = TTI_*, lParam = char* szTitle
  2274. TTM_SETTITLEW = (WM_USER + 33); // wParam = TTI_*, lParam = wchar* szTitle
  2275. {$ENDIF}
  2276. {$ifdef Win32XP}
  2277. TTM_POPUP = (WM_USER + 34);
  2278. TTM_GETTITLE = (WM_USER + 35); // wParam = 0, lParam = TTGETTITLE*
  2279. TYPE
  2280. _TTGETTITLE = Record
  2281. dwSize : DWORD;
  2282. uTitleBitmap : UINT;
  2283. cch : UINT;
  2284. pszTitle : PWCHAR;
  2285. END;
  2286. TTGETTITLE = _TTGETTITLE;
  2287. PTTGETTITLE = ^_TTGETTITLE;
  2288. TTTGETTITLE = _TTGETTITLE;
  2289. PTTTGETTITLE = ^TTTGETTITLE;
  2290. {$ENDIF}
  2291. const
  2292. {$IFDEF UNICODE}
  2293. TTM_ADDTOOL = TTM_ADDTOOLW;
  2294. TTM_DELTOOL = TTM_DELTOOLW;
  2295. TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW;
  2296. TTM_GETTOOLINFO = TTM_GETTOOLINFOW;
  2297. TTM_SETTOOLINFO = TTM_SETTOOLINFOW;
  2298. TTM_HITTEST = TTM_HITTESTW;
  2299. TTM_GETTEXT = TTM_GETTEXTW;
  2300. TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW;
  2301. TTM_ENUMTOOLS = TTM_ENUMTOOLSW;
  2302. TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW;
  2303. {$ifdef ie5plus}
  2304. TTM_SETTITLE = TTM_SETTITLEW;
  2305. {$ENDIF}
  2306. {$ELSE}
  2307. TTM_ADDTOOL = TTM_ADDTOOLA;
  2308. TTM_DELTOOL = TTM_DELTOOLA;
  2309. TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA;
  2310. TTM_GETTOOLINFO = TTM_GETTOOLINFOA;
  2311. TTM_SETTOOLINFO = TTM_SETTOOLINFOA;
  2312. TTM_HITTEST = TTM_HITTESTA;
  2313. TTM_GETTEXT = TTM_GETTEXTA;
  2314. TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA;
  2315. TTM_ENUMTOOLS = TTM_ENUMTOOLSA;
  2316. TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA;
  2317. {$ifdef ie5plus}
  2318. TTM_SETTITLE = TTM_SETTITLEA;
  2319. {$ENDIF}
  2320. {$ENDIF}
  2321. {$ifdef win32xp}
  2322. CONST
  2323. TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
  2324. {$ENDIF}
  2325. TYPE
  2326. _TT_HITTESTINFOA = Record
  2327. hwnd : HWND;
  2328. pt : POINT;
  2329. ti : TTTOOLINFOA;
  2330. END;
  2331. TTHITTESTINFOA = _TT_HITTESTINFOA;
  2332. LPTTHITTESTINFOA = ^_TT_HITTESTINFOA;
  2333. TTT_HITTESTINFOA = _TT_HITTESTINFOA;
  2334. PTT_HITTESTINFOA = ^_TT_HITTESTINFOA;
  2335. _TT_HITTESTINFOW = Record
  2336. hwnd : HWND;
  2337. pt : POINT;
  2338. ti : TTTOOLINFOW;
  2339. END;
  2340. TTHITTESTINFOW = _TT_HITTESTINFOW;
  2341. LPTTHITTESTINFOW = ^_TT_HITTESTINFOW;
  2342. TTT_HITTESTINFOW = _TT_HITTESTINFOW;
  2343. PTT_HITTESTINFOW = ^_TT_HITTESTINFOW;
  2344. {$IFDEF UNICODE}
  2345. TTHITTESTINFO = TTHITTESTINFOW;
  2346. LPTTHITTESTINFO = LPTTHITTESTINFOW;
  2347. {$ELSE}
  2348. TTHITTESTINFO = TTHITTESTINFOA;
  2349. LPTTHITTESTINFO = LPTTHITTESTINFOA;
  2350. {$ENDIF}
  2351. LPHITTESTINFO = LPTTHITTESTINFO;
  2352. {$ifdef ie3plus}
  2353. LPHITTESTINFOW = LPTTHITTESTINFOW;
  2354. LPHITTESTINFOA = LPTTHITTESTINFOA;
  2355. {$ELSE}
  2356. // LPTTHITTESTINFOA = LPHITTESTINFOA;
  2357. // LPTTHITTESTINFOW = LPHITTESTINFOW;
  2358. {$ENDIF}
  2359. CONST
  2360. TTN_GETDISPINFOA = (TTN_FIRST - 0);
  2361. TTN_GETDISPINFOW = (TTN_FIRST - 10);
  2362. TTN_SHOW = (TTN_FIRST - 1);
  2363. TTN_POP = (TTN_FIRST - 2);
  2364. TTN_LINKCLICK = (TTN_FIRST - 3);
  2365. CONST
  2366. {$IFDEF UNICODE}
  2367. TTN_GETDISPINFO = TTN_GETDISPINFOW;
  2368. {$ELSE}
  2369. TTN_GETDISPINFO = TTN_GETDISPINFOA;
  2370. {$ENDIF}
  2371. CONST
  2372. TTN_NEEDTEXT = TTN_GETDISPINFO;
  2373. TTN_NEEDTEXTA = TTN_GETDISPINFOA;
  2374. TTN_NEEDTEXTW = TTN_GETDISPINFOW;
  2375. TYPE
  2376. // #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags)
  2377. // #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags)
  2378. tagNMTTDISPINFOA = Record
  2379. hdr : NMHDR;
  2380. lpszText : LPSTR;
  2381. szText : Array[0..79] of char;
  2382. hinst : HINST;
  2383. uFlags : UINT;
  2384. {$ifdef ie3plus}
  2385. lParam : LPARAM;
  2386. {$ENDIF}
  2387. END;
  2388. NMTTDISPINFOA = tagNMTTDISPINFOA;
  2389. LPNMTTDISPINFOA = ^tagNMTTDISPINFOA;
  2390. TNMTTDISPINFOA = tagNMTTDISPINFOA;
  2391. PNMTTDISPINFOA = ^tagNMTTDISPINFOA;
  2392. tagNMTTDISPINFOW = Record
  2393. hdr : NMHDR;
  2394. lpszText : LPWSTR;
  2395. szText : Array[0..79] of WCHAR;
  2396. hinst : HINST;
  2397. uFlags : UINT;
  2398. {$ifdef ie3plus}
  2399. lParam : LPARAM;
  2400. {$ENDIF}
  2401. END;
  2402. NMTTDISPINFOW = tagNMTTDISPINFOW;
  2403. LPNMTTDISPINFOW = ^tagNMTTDISPINFOW;
  2404. TNMTTDISPINFOW = tagNMTTDISPINFOW;
  2405. PNMTTDISPINFOW = ^tagNMTTDISPINFOW;
  2406. {$ifdef ie3plus}
  2407. TOOLTIPTEXTW = NMTTDISPINFOW;
  2408. TOOLTIPTEXTA = NMTTDISPINFOA;
  2409. LPTOOLTIPTEXTA = LPNMTTDISPINFOA;
  2410. LPTOOLTIPTEXTW = LPNMTTDISPINFOW;
  2411. TTOOLTIPTEXTW = NMTTDISPINFOW;
  2412. PTOOLTIPTEXTW = LPNMTTDISPINFOW;
  2413. {$ELSE}
  2414. // tagNMTTDISPINFOA = tagTOOLTIPTEXTA;
  2415. NMTTDISPINFOA = TOOLTIPTEXTA;
  2416. // LPNMTTDISPINFOA = LPTOOLTIPTEXTA;
  2417. tagNMTTDISPINFOW = tagTOOLTIPTEXTW;
  2418. NMTTDISPINFOW = TOOLTIPTEXTW;
  2419. LPNMTTDISPINFOW = LPTOOLTIPTEXTW;
  2420. {$ENDIF}
  2421. TYPE
  2422. {$IFDEF UNICODE}
  2423. NMTTDISPINFO = NMTTDISPINFOW;
  2424. LPNMTTDISPINFO = LPNMTTDISPINFOW;
  2425. // NMTTDISPINFO_V1_SIZE = NMTTDISPINFOW_V1_SIZE;
  2426. {$ELSE}
  2427. NMTTDISPINFO = NMTTDISPINFOA;
  2428. LPNMTTDISPINFO = LPNMTTDISPINFOA;
  2429. // NMTTDISPINFO_V1_SIZE = NMTTDISPINFOA_V1_SIZE;
  2430. {$ENDIF}
  2431. TOOLTIPTEXT = NMTTDISPINFO;
  2432. LPTOOLTIPTEXT = LPNMTTDISPINFO;
  2433. {$ENDIF} // NOTOOLTIPS
  2434. //====== STATUS BAR CONTROL ===================================================
  2435. {$IFNDEF NOSTATUSBAR}
  2436. // begin_r_commctrl
  2437. CONST
  2438. SBARS_SIZEGRIP = $0100;
  2439. {$ifdef ie5plus}
  2440. SBARS_TOOLTIPS = $0800;
  2441. {$ENDIF}
  2442. {$ifdef ie4plus}
  2443. // this is a status bar flag, preference to SBARS_TOOLTIPS
  2444. SBT_TOOLTIPS = $0800;
  2445. {$ENDIF}
  2446. // end_r_commctrl
  2447. procedure DrawStatusTextA(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA';
  2448. Procedure DrawStatusTextW(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW';
  2449. function CreateStatusWindowA(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA';
  2450. function CreateStatusWindowW(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW';
  2451. {$IFDEF UNICODE}
  2452. function CreateStatusWindow(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA';
  2453. procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA';
  2454. {$ELSE}
  2455. function CreateStatusWindow(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW';
  2456. Procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW';
  2457. {$ENDIF}
  2458. CONST
  2459. {$IFDEF _WIN32}
  2460. STATUSCLASSNAMEW = {L}'msctls_statusbar32';
  2461. STATUSCLASSNAMEA = 'msctls_statusbar32';
  2462. {$IFDEF UNICODE}
  2463. STATUSCLASSNAME = STATUSCLASSNAMEW;
  2464. {$ELSE}
  2465. STATUSCLASSNAME = STATUSCLASSNAMEA;
  2466. {$ENDIF}
  2467. {$ELSE}
  2468. STATUSCLASSNAME = 'msctls_statusbar';
  2469. {$ENDIF}
  2470. SB_SETTEXTA = (WM_USER+1);
  2471. SB_SETTEXTW = (WM_USER+11);
  2472. SB_GETTEXTA = (WM_USER+2);
  2473. SB_GETTEXTW = (WM_USER+13);
  2474. SB_GETTEXTLENGTHA = (WM_USER+3);
  2475. SB_GETTEXTLENGTHW = (WM_USER+12);
  2476. SB_SETPARTS = (WM_USER+4);
  2477. SB_GETPARTS = (WM_USER+6);
  2478. SB_GETBORDERS = (WM_USER+7);
  2479. SB_SETMINHEIGHT = (WM_USER+8);
  2480. SB_SIMPLE = (WM_USER+9);
  2481. SB_GETRECT = (WM_USER+10);
  2482. {$ifdef ie3plus}
  2483. SB_ISSIMPLE = (WM_USER+14);
  2484. {$ENDIF}
  2485. {$ifdef ie4plus}
  2486. SB_SETICON = (WM_USER+15);
  2487. SB_SETTIPTEXTA = (WM_USER+16);
  2488. SB_SETTIPTEXTW = (WM_USER+17);
  2489. SB_GETTIPTEXTA = (WM_USER+18);
  2490. SB_GETTIPTEXTW = (WM_USER+19);
  2491. SB_GETICON = (WM_USER+20);
  2492. SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  2493. SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  2494. {$ENDIF}
  2495. {$IFDEF UNICODE}
  2496. SB_GETTEXT = SB_GETTEXTW;
  2497. SB_SETTEXT = SB_SETTEXTW;
  2498. SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW;
  2499. {$ifdef ie4plus}
  2500. SB_SETTIPTEXT = SB_SETTIPTEXTW;
  2501. SB_GETTIPTEXT = SB_GETTIPTEXTW;
  2502. {$ENDIF}
  2503. {$ELSE}
  2504. SB_GETTEXT = SB_GETTEXTA;
  2505. SB_SETTEXT = SB_SETTEXTA;
  2506. SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA;
  2507. {$ifdef ie4plus}
  2508. SB_SETTIPTEXT = SB_SETTIPTEXTA;
  2509. SB_GETTIPTEXT = SB_GETTIPTEXTA;
  2510. {$ENDIF}
  2511. {$ENDIF}
  2512. SBT_OWNERDRAW = $1000;
  2513. SBT_NOBORDERS = $0100;
  2514. SBT_POPOUT = $0200;
  2515. SBT_RTLREADING = $0400;
  2516. {$ifdef ie5plus}
  2517. SBT_NOTABPARSING = $0800;
  2518. {$ENDIF}
  2519. SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
  2520. /// status bar notifications
  2521. {$ifdef ie4plus}
  2522. SBN_SIMPLEMODECHANGE = (SBN_FIRST - 0);
  2523. {$ENDIF}
  2524. {$ifdef ie5plus}
  2525. // refers to the data saved for simple mode
  2526. SB_SIMPLEID = $00ff;
  2527. {$ENDIF}
  2528. {$ENDIF} // NOSTATUSBAR
  2529. //====== MENU HELP ============================================================
  2530. {$IFNDEF NOMENUHELP}
  2531. Procedure MenuHelp(uMsg:UINT;wParam:WPARAM;lParam:LPARAM;hMainMenu:HMENU;hInst:HINST;hwndStatus:HWND;lpwIDs:PUINT); stdcall; external commctrldll name 'MenuHelp';
  2532. function ShowHideMenuCtl(hWnd:HWND;uFlags:UINT_PTR;lpInfo:LPINT):BOOL; stdcall; external commctrldll name 'ShowHideMenuCtl';
  2533. Procedure GetEffectiveClientRect(hWnd:HWND;lprc:LPRECT;lpInfo:LPINT); stdcall; external commctrldll name 'GetEffectiveClientRect';
  2534. CONST
  2535. MINSYSCOMMAND = SC_SIZE;
  2536. {$ENDIF}
  2537. //====== TRACKBAR CONTROL =====================================================
  2538. {$IFNDEF NOTRACKBAR}
  2539. CONST
  2540. {$IFDEF _WIN32}
  2541. TRACKBAR_CLASSA = 'msctls_trackbar32';
  2542. TRACKBAR_CLASSW = {L}'msctls_trackbar32';
  2543. {$IFDEF UNICODE}
  2544. TRACKBAR_CLASS = TRACKBAR_CLASSW;
  2545. {$ELSE}
  2546. TRACKBAR_CLASS = TRACKBAR_CLASSA;
  2547. {$ENDIF}
  2548. {$ELSE}
  2549. TRACKBAR_CLASS = 'msctls_trackbar';
  2550. {$ENDIF}
  2551. // begin_r_commctrl
  2552. TBS_AUTOTICKS = $0001;
  2553. TBS_VERT = $0002;
  2554. TBS_HORZ = $0000;
  2555. TBS_TOP = $0004;
  2556. TBS_BOTTOM = $0000;
  2557. TBS_LEFT = $0004;
  2558. TBS_RIGHT = $0000;
  2559. TBS_BOTH = $0008;
  2560. TBS_NOTICKS = $0010;
  2561. TBS_ENABLESELRANGE = $0020;
  2562. TBS_FIXEDLENGTH = $0040;
  2563. TBS_NOTHUMB = $0080;
  2564. {$ifdef ie3plus}
  2565. TBS_TOOLTIPS = $0100;
  2566. {$ENDIF}
  2567. {$ifdef ie5plus}
  2568. TBS_REVERSED = $0200; // Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low"
  2569. {$ENDIF}
  2570. {$ifdef ie501plus}
  2571. TBS_DOWNISLEFT = $0400; // Down=Left and Up=Right (default is Down=Right and Up=Left)
  2572. {$ENDIF}
  2573. // end_r_commctrl
  2574. TBM_GETPOS = (WM_USER);
  2575. TBM_GETRANGEMIN = (WM_USER+1);
  2576. TBM_GETRANGEMAX = (WM_USER+2);
  2577. TBM_GETTIC = (WM_USER+3);
  2578. TBM_SETTIC = (WM_USER+4);
  2579. TBM_SETPOS = (WM_USER+5);
  2580. TBM_SETRANGE = (WM_USER+6);
  2581. TBM_SETRANGEMIN = (WM_USER+7);
  2582. TBM_SETRANGEMAX = (WM_USER+8);
  2583. TBM_CLEARTICS = (WM_USER+9);
  2584. TBM_SETSEL = (WM_USER+10);
  2585. TBM_SETSELSTART = (WM_USER+11);
  2586. TBM_SETSELEND = (WM_USER+12);
  2587. TBM_GETPTICS = (WM_USER+14);
  2588. TBM_GETTICPOS = (WM_USER+15);
  2589. TBM_GETNUMTICS = (WM_USER+16);
  2590. TBM_GETSELSTART = (WM_USER+17);
  2591. TBM_GETSELEND = (WM_USER+18);
  2592. TBM_CLEARSEL = (WM_USER+19);
  2593. TBM_SETTICFREQ = (WM_USER+20);
  2594. TBM_SETPAGESIZE = (WM_USER+21);
  2595. TBM_GETPAGESIZE = (WM_USER+22);
  2596. TBM_SETLINESIZE = (WM_USER+23);
  2597. TBM_GETLINESIZE = (WM_USER+24);
  2598. TBM_GETTHUMBRECT = (WM_USER+25);
  2599. TBM_GETCHANNELRECT = (WM_USER+26);
  2600. TBM_SETTHUMBLENGTH = (WM_USER+27);
  2601. TBM_GETTHUMBLENGTH = (WM_USER+28);
  2602. {$ifdef ie3plus}
  2603. TBM_SETTOOLTIPS = (WM_USER+29);
  2604. TBM_GETTOOLTIPS = (WM_USER+30);
  2605. TBM_SETTIPSIDE = (WM_USER+31);
  2606. // TrackBar Tip Side flags
  2607. TBTS_TOP = 0;
  2608. TBTS_LEFT = 1;
  2609. TBTS_BOTTOM = 2;
  2610. TBTS_RIGHT = 3;
  2611. TBM_SETBUDDY = (WM_USER+32); // wparam = BOOL fLeft; (or right)
  2612. TBM_GETBUDDY = (WM_USER+33); // wparam = BOOL fLeft; (or right)
  2613. {$ENDIF}
  2614. {$ifdef ie4plus}
  2615. TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  2616. TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  2617. {$ENDIF}
  2618. TB_LINEUP = 0;
  2619. TB_LINEDOWN = 1;
  2620. TB_PAGEUP = 2;
  2621. TB_PAGEDOWN = 3;
  2622. TB_THUMBPOSITION = 4;
  2623. TB_THUMBTRACK = 5;
  2624. TB_TOP = 6;
  2625. TB_BOTTOM = 7;
  2626. TB_ENDTRACK = 8;
  2627. {$ifdef ie3plus}
  2628. // custom draw item specs
  2629. TBCD_TICS = $0001;
  2630. TBCD_THUMB = $0002;
  2631. TBCD_CHANNEL = $0003;
  2632. {$ENDIF}
  2633. {$ENDIF} // trackbar
  2634. //====== DRAG LIST CONTROL ====================================================
  2635. {$IFNDEF NODRAGLIST}
  2636. TYPE
  2637. tagDRAGLISTINFO = Record
  2638. uNotification : UINT;
  2639. hWnd : HWND;
  2640. ptCursor : POINT;
  2641. END;
  2642. DRAGLISTINFO = tagDRAGLISTINFO;
  2643. LPDRAGLISTINFO = ^tagDRAGLISTINFO;
  2644. TDRAGLISTINFO = tagDRAGLISTINFO;
  2645. PDRAGLISTINFO = ^tagDRAGLISTINFO;
  2646. CONST
  2647. DL_BEGINDRAG = (WM_USER+133);
  2648. DL_DRAGGING = (WM_USER+134);
  2649. DL_DROPPED = (WM_USER+135);
  2650. DL_CANCELDRAG = (WM_USER+136);
  2651. DL_CURSORSET = 0;
  2652. DL_STOPCURSOR = 1;
  2653. DL_COPYCURSOR = 2;
  2654. DL_MOVECURSOR = 3;
  2655. DRAGLISTMSGSTRING = 'commctrl_DragListMsg'; // TEXT("commctrl_DragListMsg");
  2656. function MakeDragList(hLB:HWND):BOOL; stdcall; external commctrldll name 'MakeDragList';
  2657. Procedure DrawInsert(handParent:HWND;hLB:HWND;nItem:cint); stdcall; external commctrldll name 'DrawInsert';
  2658. function LBItemFromPt(hLB:HWND;pt:POINT;bAutoScroll:BOOL):cint; stdcall; external commctrldll name 'LBItemFromPt';
  2659. {$ENDIF}
  2660. //====== UPDOWN CONTROL =======================================================
  2661. {$IFNDEF NOUPDOWN}
  2662. CONST
  2663. {$IFDEF _WIN32}
  2664. UPDOWN_CLASSA = 'msctls_updown32';
  2665. UPDOWN_CLASSW = {L}'msctls_updown32';
  2666. {$IFDEF UNICODE}
  2667. UPDOWN_CLASS = UPDOWN_CLASSW;
  2668. {$ELSE}
  2669. UPDOWN_CLASS = UPDOWN_CLASSA;
  2670. {$ENDIF}
  2671. {$ELSE}
  2672. UPDOWN_CLASS = 'msctls_updown';
  2673. {$ENDIF}
  2674. TYPE
  2675. _UDACCEL = Record
  2676. nSec : UINT;
  2677. nInc : UINT;
  2678. END;
  2679. UDACCEL = _UDACCEL;
  2680. LPUDACCEL = ^_UDACCEL;
  2681. TUDACCEL = _UDACCEL;
  2682. PUDACCEL = ^_UDACCEL;
  2683. CONST
  2684. UD_MAXVAL = $7fff;
  2685. UD_MINVAL = (-UD_MAXVAL);
  2686. // begin_r_commctrl
  2687. UDS_WRAP = $0001;
  2688. UDS_SETBUDDYINT = $0002;
  2689. UDS_ALIGNRIGHT = $0004;
  2690. UDS_ALIGNLEFT = $0008;
  2691. UDS_AUTOBUDDY = $0010;
  2692. UDS_ARROWKEYS = $0020;
  2693. UDS_HORZ = $0040;
  2694. UDS_NOTHOUSANDS = $0080;
  2695. {$ifdef ie3plus}
  2696. UDS_HOTTRACK = $0100;
  2697. {$ENDIF}
  2698. // end_r_commctrl
  2699. UDM_SETRANGE = (WM_USER+101);
  2700. UDM_GETRANGE = (WM_USER+102);
  2701. UDM_SETPOS = (WM_USER+103);
  2702. UDM_GETPOS = (WM_USER+104);
  2703. UDM_SETBUDDY = (WM_USER+105);
  2704. UDM_GETBUDDY = (WM_USER+106);
  2705. UDM_SETACCEL = (WM_USER+107);
  2706. UDM_GETACCEL = (WM_USER+108);
  2707. UDM_SETBASE = (WM_USER+109);
  2708. UDM_GETBASE = (WM_USER+110);
  2709. {$ifdef ie4plus}
  2710. UDM_SETRANGE32 = (WM_USER+111);
  2711. UDM_GETRANGE32 = (WM_USER+112); // wParam & lParam are LPINT
  2712. UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  2713. UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  2714. {$ENDIF}
  2715. {$ifdef ie5plus}
  2716. UDM_SETPOS32 = (WM_USER+113);
  2717. UDM_GETPOS32 = (WM_USER+114);
  2718. {$ENDIF}
  2719. function CreateUpDownControl(dwStyle:DWORD;x:cint;y:cint;cx:cint;cy:cint;hParent:HWND;nID:cint;hInst:HINST;hBuddy:HWND;nUpper:cint;nLower:cint;nPos:cint):HWND; stdcall; external commctrldll name 'CreateUpDownControl';
  2720. TYPE
  2721. _NM_UPDOWN = Record
  2722. hdr : NMHDR;
  2723. iPos : cint;
  2724. iDelta : cint;
  2725. END;
  2726. NMUPDOWN = _NM_UPDOWN;
  2727. LPNMUPDOWN = ^_NM_UPDOWN;
  2728. TNM_UPDOWN = _NM_UPDOWN;
  2729. PNM_UPDOWN = ^_NM_UPDOWN;
  2730. {$ifdef ie3plus}
  2731. NM_UPDOWN = NMUPDOWN;
  2732. LPNM_UPDOWN = LPNMUPDOWN;
  2733. {$ELSE}
  2734. NMUPDOWN = NM_UPDOWN;
  2735. LPNMUPDOWN = LPNM_UPDOWN;
  2736. {$ENDIF}
  2737. CONST
  2738. UDN_DELTAPOS = (UDN_FIRST - 1);
  2739. {$ENDIF} // NOUPDOWN
  2740. //====== PROGRESS CONTROL =====================================================
  2741. {$IFNDEF NOPROGRESS}
  2742. CONST
  2743. {$IFDEF _WIN32}
  2744. PROGRESS_CLASSA = 'msctls_progress32';
  2745. PROGRESS_CLASSW = {L}'msctls_progress32';
  2746. {$IFDEF UNICODE}
  2747. PROGRESS_CLASS = PROGRESS_CLASSW;
  2748. {$ELSE}
  2749. PROGRESS_CLASS = PROGRESS_CLASSA;
  2750. {$ENDIF}
  2751. {$ELSE}
  2752. PROGRESS_CLASS = 'msctls_progress';
  2753. {$ENDIF}
  2754. // begin_r_commctrl
  2755. {$ifdef ie3plus}
  2756. PBS_SMOOTH = $01;
  2757. PBS_VERTICAL = $04;
  2758. {$ENDIF}
  2759. // end_r_commctrl
  2760. PBM_SETRANGE = (WM_USER+1);
  2761. PBM_SETPOS = (WM_USER+2);
  2762. PBM_DELTAPOS = (WM_USER+3);
  2763. PBM_SETSTEP = (WM_USER+4);
  2764. PBM_STEPIT = (WM_USER+5);
  2765. {$ifdef ie3plus}
  2766. PBM_SETRANGE32 = (WM_USER+6); // lParam = high, wParam = low
  2767. TYPE
  2768. PBRANGE = Record
  2769. iLow : cint;
  2770. iHigh : cint;
  2771. END;
  2772. PPBRANGE = ^PBRANGE;
  2773. TPBRANGE = PBRANGE;
  2774. // PPBRANGE = ^PBRANGE;
  2775. CONST
  2776. PBM_GETRANGE = (WM_USER+7); // wParam = return (TRUE ? low : high). lParam = PPBRANGE or NULL
  2777. PBM_GETPOS = (WM_USER+8);
  2778. {$ifdef ie4plus}
  2779. PBM_SETBARCOLOR = (WM_USER+9); // lParam = bar color
  2780. {$ENDIF} // _WIN32_IE >= 0x0400
  2781. PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
  2782. {$ENDIF} // _WIN32_IE >= 0x0300
  2783. {$ENDIF} // NOPROGRESS
  2784. //====== HOTKEY CONTROL =======================================================
  2785. {$IFNDEF NOHOTKEY}
  2786. HOTKEYF_SHIFT = $01;
  2787. HOTKEYF_CONTROL = $02;
  2788. HOTKEYF_ALT = $04;
  2789. {$IFDEF _MAC}
  2790. HOTKEYF_EXT = $80;
  2791. {$ELSE}
  2792. HOTKEYF_EXT = $08;
  2793. {$ENDIF}
  2794. HKCOMB_NONE = $0001;
  2795. HKCOMB_S = $0002;
  2796. HKCOMB_C = $0004;
  2797. HKCOMB_A = $0008;
  2798. HKCOMB_SC = $0010;
  2799. HKCOMB_SA = $0020;
  2800. HKCOMB_CA = $0040;
  2801. HKCOMB_SCA = $0080;
  2802. HKM_SETHOTKEY = (WM_USER+1);
  2803. HKM_GETHOTKEY = (WM_USER+2);
  2804. HKM_SETRULES = (WM_USER+3);
  2805. {$IFDEF _WIN32}
  2806. HOTKEY_CLASSA = 'msctls_hotkey32';
  2807. HOTKEY_CLASSW = widestring('msctls_hotkey32');
  2808. {$IFDEF UNICODE}
  2809. HOTKEY_CLASS = HOTKEY_CLASSW;
  2810. {$ELSE}
  2811. HOTKEY_CLASS = HOTKEY_CLASSA;
  2812. {$ENDIF}
  2813. {$ELSE}
  2814. HOTKEY_CLASS = 'msctls_hotkey';
  2815. {$ENDIF}
  2816. {$ENDIF} // NOHOTKEY
  2817. HOTKEYCLASS = HOTKEY_CLASSA;
  2818. // begin_r_commctrl
  2819. //====== COMMON CONTROL STYLES ================================================
  2820. CCS_TOP = DWORD($00000001){L};
  2821. CCS_NOMOVEY = DWORD($00000002){L};
  2822. CCS_BOTTOM = DWORD($00000003){L};
  2823. CCS_NORESIZE = DWORD($00000004){L};
  2824. CCS_NOPARENTALIGN = DWORD($00000008){L};
  2825. CCS_ADJUSTABLE = DWORD($00000020){L};
  2826. CCS_NODIVIDER = DWORD($00000040){L};
  2827. {$ifdef ie3plus}
  2828. CCS_VERT = DWORD($00000080){L};
  2829. CCS_LEFT = (CCS_VERT OR CCS_TOP);
  2830. CCS_RIGHT = (CCS_VERT OR CCS_BOTTOM);
  2831. CCS_NOMOVEX = (CCS_VERT OR CCS_NOMOVEY);
  2832. {$ENDIF}
  2833. // end_r_commctrl
  2834. //====== LISTVIEW CONTROL =====================================================
  2835. {$IFNDEF NOLISTVIEW}
  2836. {$IFDEF _WIN32}
  2837. WC_LISTVIEWA = 'SysListView32';
  2838. WC_LISTVIEWW = {L}'SysListView32';
  2839. {$IFDEF UNICODE}
  2840. WC_LISTVIEW = WC_LISTVIEWW;
  2841. {$ELSE}
  2842. WC_LISTVIEW = WC_LISTVIEWA;
  2843. {$ENDIF}
  2844. {$ELSE}
  2845. WC_LISTVIEW = 'SysListView';
  2846. {$ENDIF}
  2847. // begin_r_commctrl
  2848. LVS_ICON = $0000;
  2849. LVS_REPORT = $0001;
  2850. LVS_SMALLICON = $0002;
  2851. LVS_LIST = $0003;
  2852. LVS_TYPEMASK = $0003;
  2853. LVS_SINGLESEL = $0004;
  2854. LVS_SHOWSELALWAYS = $0008;
  2855. LVS_SORTASCENDING = $0010;
  2856. LVS_SORTDESCENDING = $0020;
  2857. LVS_SHAREIMAGELISTS = $0040;
  2858. LVS_NOLABELWRAP = $0080;
  2859. LVS_AUTOARRANGE = $0100;
  2860. LVS_EDITLABELS = $0200;
  2861. {$ifdef ie3plus}
  2862. LVS_OWNERDATA = $1000;
  2863. {$ENDIF}
  2864. LVS_NOSCROLL = $2000;
  2865. LVS_TYPESTYLEMASK = $fc00;
  2866. LVS_ALIGNTOP = $0000;
  2867. LVS_ALIGNLEFT = $0800;
  2868. LVS_ALIGNMASK = $0c00;
  2869. LVS_OWNERDRAWFIXED = $0400;
  2870. LVS_NOCOLUMNHEADER = $4000;
  2871. LVS_NOSORTHEADER = $8000;
  2872. // end_r_commctrl
  2873. {$ifdef ie4plus}
  2874. LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  2875. // Macro 38
  2876. Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  2877. CONST
  2878. LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  2879. // Macro 39
  2880. Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
  2881. {$ENDIF}
  2882. CONST
  2883. LVM_GETBKCOLOR = (LVM_FIRST + 0);
  2884. // Macro 40
  2885. Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
  2886. CONST
  2887. LVM_SETBKCOLOR = (LVM_FIRST + 1);
  2888. // Macro 41
  2889. Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
  2890. CONST
  2891. LVM_GETIMAGELIST = (LVM_FIRST + 2);
  2892. // Macro 42
  2893. Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
  2894. CONST
  2895. LVSIL_NORMAL = 0;
  2896. LVSIL_SMALL = 1;
  2897. LVSIL_STATE = 2;
  2898. LVM_SETIMAGELIST = (LVM_FIRST + 3);
  2899. // Macro 43
  2900. Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
  2901. CONST
  2902. LVM_GETITEMCOUNT = (LVM_FIRST + 4);
  2903. // Macro 44
  2904. Function ListView_GetItemCount( hwnd : hwnd):cint;
  2905. CONST
  2906. LVIF_TEXT = $0001;
  2907. LVIF_IMAGE = $0002;
  2908. LVIF_PARAM = $0004;
  2909. LVIF_STATE = $0008;
  2910. {$ifdef ie3plus}
  2911. LVIF_INDENT = $0010;
  2912. LVIF_NORECOMPUTE = $0800;
  2913. {$ENDIF}
  2914. {$ifdef win32xp}
  2915. LVIF_GROUPID = $0100;
  2916. LVIF_COLUMNS = $0200;
  2917. {$ENDIF}
  2918. LVIS_FOCUSED = $0001;
  2919. LVIS_SELECTED = $0002;
  2920. LVIS_CUT = $0004;
  2921. LVIS_DROPHILITED = $0008;
  2922. LVIS_GLOW = $0010;
  2923. LVIS_ACTIVATING = $0020;
  2924. LVIS_OVERLAYMASK = $0F00;
  2925. LVIS_STATEIMAGEMASK = $F000;
  2926. // Macro 45
  2927. // #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  2928. CONST
  2929. I_INDENTCALLBACK = (-1);
  2930. {$ENDIF}
  2931. {$ifdef win32xp}
  2932. CONST
  2933. I_GROUPIDCALLBACK = (-1);
  2934. I_GROUPIDNONE = (-2);
  2935. {$ENDIF}
  2936. // #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam)
  2937. // #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam)
  2938. TYPE
  2939. tagLVITEMA = Record
  2940. mask : UINT;
  2941. iItem : cint;
  2942. iSubItem : cint;
  2943. state : UINT;
  2944. stateMask : UINT;
  2945. pszText : LPSTR;
  2946. cchTextMax : cint;
  2947. iImage : cint;
  2948. lParam : LPARAM;
  2949. {$ifdef ie3plus}
  2950. iIndent : cint;
  2951. {$ENDIF}
  2952. {$ifdef win32xp}
  2953. iGroupId : cint;
  2954. cColumns : UINT; // tile view columns
  2955. puColumns : PUINT;
  2956. {$ENDIF}
  2957. END;
  2958. LVITEMA = tagLVITEMA;
  2959. LPLVITEMA = ^tagLVITEMA;
  2960. TLVITEMA = tagLVITEMA;
  2961. PLVITEMA = ^tagLVITEMA;
  2962. tagLVITEMW = Record
  2963. mask : UINT;
  2964. iItem : cint;
  2965. iSubItem : cint;
  2966. state : UINT;
  2967. stateMask : UINT;
  2968. pszText : LPWSTR;
  2969. cchTextMax : cint;
  2970. iImage : cint;
  2971. lParam : LPARAM;
  2972. {$ifdef ie3plus}
  2973. iIndent : cint;
  2974. {$ENDIF}
  2975. {$ifdef win32xp}
  2976. iGroupId : cint;
  2977. cColumns : UINT; // tile view columns
  2978. puColumns : PUINT;
  2979. {$ENDIF}
  2980. END;
  2981. LVITEMW = tagLVITEMW;
  2982. LPLVITEMW = ^tagLVITEMW;
  2983. TLVITEMW = tagLVITEMW;
  2984. PLVITEMW = ^tagLVITEMW;
  2985. {$IFDEF UNICODE}
  2986. LVITEM = LVITEMW;
  2987. LPLVITEM = LPLVITEMW;
  2988. // LVITEM_V1_SIZE = LVITEMW_V1_SIZE;
  2989. {$ELSE}
  2990. TYPE
  2991. LVITEM = LVITEMA;
  2992. LPLVITEM = LPLVITEMA;
  2993. // LVITEM_V1_SIZE = LVITEMA_V1_SIZE;
  2994. {$ENDIF}
  2995. Type
  2996. {$ifdef ie3plus}
  2997. LV_ITEMA = LVITEMA;
  2998. LV_ITEMW = LVITEMW;
  2999. {$ELSE}
  3000. tagLVITEMA = _LV_ITEMA;
  3001. LVITEMA = LV_ITEMA;
  3002. tagLVITEMW = _LV_ITEMW;
  3003. LVITEMW = LV_ITEMW;
  3004. {$ENDIF}
  3005. LV_ITEM = LVITEM;
  3006. TLVItem = LVITEM;
  3007. PLVItem = LPLVITEM;
  3008. CONST
  3009. LPSTR_TEXTCALLBACKW = LPWSTR(-1);
  3010. LPSTR_TEXTCALLBACKA = LPSTR (-1);
  3011. {$IFDEF UNICODE}
  3012. LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKW;
  3013. {$ELSE}
  3014. LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKA;
  3015. {$ENDIF}
  3016. CONST
  3017. I_IMAGECALLBACK = (-1);
  3018. {$ifdef ie501plus}
  3019. I_IMAGENONE = (-2);
  3020. {$ENDIF} // 0x0501
  3021. {$ifdef win32xp}
  3022. // For tileview
  3023. I_COLUMNSCALLBACK = UINT(-1);
  3024. {$ENDIF}
  3025. LVM_GETITEMA = (LVM_FIRST + 5);
  3026. LVM_GETITEMW = (LVM_FIRST + 75);
  3027. {$IFDEF UNICODE}
  3028. LVM_GETITEM = LVM_GETITEMW;
  3029. {$ELSE}
  3030. LVM_GETITEM = LVM_GETITEMA;
  3031. {$ENDIF}
  3032. // Macro 46
  3033. Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL;
  3034. CONST
  3035. LVM_SETITEMA = (LVM_FIRST + 6);
  3036. LVM_SETITEMW = (LVM_FIRST + 76);
  3037. {$IFDEF UNICODE}
  3038. LVM_SETITEM = LVM_SETITEMW;
  3039. {$ELSE}
  3040. LVM_SETITEM = LVM_SETITEMA;
  3041. {$ENDIF}
  3042. // Macro 47
  3043. Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
  3044. CONST
  3045. LVM_INSERTITEMA = (LVM_FIRST + 7);
  3046. LVM_INSERTITEMW = (LVM_FIRST + 77);
  3047. {$IFDEF UNICODE}
  3048. LVM_INSERTITEM = LVM_INSERTITEMW;
  3049. {$ELSE}
  3050. LVM_INSERTITEM = LVM_INSERTITEMA;
  3051. {$ENDIF}
  3052. // Macro 48
  3053. Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
  3054. CONST
  3055. LVM_DELETEITEM = (LVM_FIRST + 8);
  3056. // Macro 49
  3057. Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
  3058. CONST
  3059. LVM_DELETEALLITEMS = (LVM_FIRST + 9);
  3060. // Macro 50
  3061. Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
  3062. CONST
  3063. LVM_GETCALLBACKMASK = (LVM_FIRST + 10);
  3064. // Macro 51
  3065. Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
  3066. CONST
  3067. LVM_SETCALLBACKMASK = (LVM_FIRST + 11);
  3068. // Macro 52
  3069. Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
  3070. CONST
  3071. LVNI_ALL = $0000;
  3072. LVNI_FOCUSED = $0001;
  3073. LVNI_SELECTED = $0002;
  3074. LVNI_CUT = $0004;
  3075. LVNI_DROPHILITED = $0008;
  3076. LVNI_ABOVE = $0100;
  3077. LVNI_BELOW = $0200;
  3078. LVNI_TOLEFT = $0400;
  3079. LVNI_TORIGHT = $0800;
  3080. LVM_GETNEXTITEM = (LVM_FIRST + 12);
  3081. // Macro 53
  3082. Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint ):cint;
  3083. CONST
  3084. LVFI_PARAM = $0001;
  3085. LVFI_STRING = $0002;
  3086. LVFI_PARTIAL = $0008;
  3087. LVFI_WRAP = $0020;
  3088. LVFI_NEARESTXY = $0040;
  3089. TYPE
  3090. tagLVFINDINFOA = Record
  3091. flags : UINT;
  3092. psz : LPCSTR;
  3093. lParam : LPARAM;
  3094. pt : POINT;
  3095. vkDirection : UINT;
  3096. END;
  3097. LVFINDINFOA = tagLVFINDINFOA;
  3098. LPFINDINFOA = ^tagLVFINDINFOA;
  3099. TLVFINDINFOA = tagLVFINDINFOA;
  3100. PLVFINDINFOA = ^tagLVFINDINFOA;
  3101. tagLVFINDINFOW = Record
  3102. flags : UINT;
  3103. psz : LPCWSTR;
  3104. lParam : LPARAM;
  3105. pt : POINT;
  3106. vkDirection : UINT;
  3107. END;
  3108. LVFINDINFOW = tagLVFINDINFOW;
  3109. LPFINDINFOW = ^tagLVFINDINFOW;
  3110. TLVFINDINFOW = tagLVFINDINFOW;
  3111. PLVFINDINFOW = ^tagLVFINDINFOW;
  3112. {$IFDEF UNICODE}
  3113. LVFINDINFO = LVFINDINFOW;
  3114. {$ELSE}
  3115. LVFINDINFO = LVFINDINFOA;
  3116. {$ENDIF}
  3117. {$ifdef ie3plus}
  3118. LV_FINDINFOA = LVFINDINFOA;
  3119. LV_FINDINFOW = LVFINDINFOW;
  3120. {$ELSE}
  3121. tagLVFINDINFOA = _LV_FINDINFOA;
  3122. LVFINDINFOA = LV_FINDINFOA;
  3123. tagLVFINDINFOW = _LV_FINDINFOW;
  3124. LVFINDINFOW = LV_FINDINFOW;
  3125. {$ENDIF}
  3126. TLVFindInfo = LVFINDINFO;
  3127. PLVFindInfo = ^LVFindInfo;
  3128. LV_FINDINFO = LVFINDINFO;
  3129. CONST
  3130. LVM_FINDITEMA = (LVM_FIRST + 13);
  3131. LVM_FINDITEMW = (LVM_FIRST + 83);
  3132. {$IFDEF UNICODE}
  3133. LVM_FINDITEM = LVM_FINDITEMW;
  3134. {$ELSE}
  3135. LVM_FINDITEM = LVM_FINDITEMA;
  3136. {$ENDIF}
  3137. // Macro 54
  3138. Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
  3139. CONST
  3140. LVIR_BOUNDS = 0;
  3141. LVIR_ICON = 1;
  3142. LVIR_LABEL = 2;
  3143. LVIR_SELECTBOUNDS = 3;
  3144. LVM_GETITEMRECT = (LVM_FIRST + 14);
  3145. // Macro 55 NI
  3146. Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL;
  3147. CONST
  3148. LVM_SETITEMPOSITION = (LVM_FIRST + 15);
  3149. // Macro 56
  3150. Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
  3151. CONST
  3152. LVM_GETITEMPOSITION = (LVM_FIRST + 16);
  3153. // Macro 57
  3154. Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL;
  3155. CONST
  3156. LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17);
  3157. LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87);
  3158. {$IFDEF UNICODE}
  3159. LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW;
  3160. {$ELSE}
  3161. LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA;
  3162. {$ENDIF}
  3163. // Macro 58
  3164. Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
  3165. CONST
  3166. LVHT_NOWHERE = $0001;
  3167. LVHT_ONITEMICON = $0002;
  3168. LVHT_ONITEMLABEL = $0004;
  3169. LVHT_ONITEMSTATEICON = $0008;
  3170. LVHT_ONITEM = (LVHT_ONITEMICON OR LVHT_ONITEMLABEL OR LVHT_ONITEMSTATEICON);
  3171. LVHT_ABOVE = $0008;
  3172. LVHT_BELOW = $0010;
  3173. LVHT_TORIGHT = $0020;
  3174. LVHT_TOLEFT = $0040;
  3175. // #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem)
  3176. TYPE
  3177. tagLVHITTESTINFO = Record
  3178. pt : POINT;
  3179. flags : UINT;
  3180. iItem : cint;
  3181. {$ifdef ie3plus}
  3182. iSubItem : cint; // this is was NOT in win95. valid only for LVM_SUBITEMHITTEST
  3183. {$ENDIF}
  3184. END;
  3185. LVHITTESTINFO = tagLVHITTESTINFO;
  3186. LPLVHITTESTINFO = ^tagLVHITTESTINFO;
  3187. TLVHITTESTINFO = tagLVHITTESTINFO;
  3188. PLVHITTESTINFO = ^tagLVHITTESTINFO;
  3189. {$ifdef ie3plus}
  3190. LV_HITTESTINFO = LVHITTESTINFO;
  3191. {$ELSE}
  3192. tagLVHITTESTINFO = _LV_HITTESTINFO;
  3193. LVHITTESTINFO = LV_HITTESTINFO;
  3194. {$ENDIF}
  3195. CONST
  3196. LVM_HITTEST = (LVM_FIRST + 18);
  3197. // Macro 59
  3198. Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint;
  3199. CONST
  3200. LVM_ENSUREVISIBLE = (LVM_FIRST + 19);
  3201. // Macro 60
  3202. Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline;
  3203. Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline;
  3204. CONST
  3205. LVM_SCROLL = (LVM_FIRST + 20);
  3206. // Macro 61
  3207. Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
  3208. CONST
  3209. LVM_REDRAWITEMS = (LVM_FIRST + 21);
  3210. // Macro 62
  3211. Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
  3212. CONST
  3213. LVA_DEFAULT = $0000;
  3214. LVA_ALIGNLEFT = $0001;
  3215. LVA_ALIGNTOP = $0002;
  3216. LVA_ALIGNRIGHT = $0003;
  3217. LVA_ALIGNBOTTOM = $0004;
  3218. LVA_SNAPTOGRID = $0005;
  3219. LVA_SORTASCENDING = $0100;
  3220. LVA_SORTDESCENDING = $0200;
  3221. LVM_ARRANGE = (LVM_FIRST + 22);
  3222. // Macro 63
  3223. Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
  3224. CONST
  3225. LVM_EDITLABELA = (LVM_FIRST + 23);
  3226. LVM_EDITLABELW = (LVM_FIRST + 118);
  3227. {$IFDEF UNICODE}
  3228. LVM_EDITLABEL = LVM_EDITLABELW;
  3229. {$ELSE}
  3230. LVM_EDITLABEL = LVM_EDITLABELA;
  3231. {$ENDIF}
  3232. // Macro 64
  3233. Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
  3234. CONST
  3235. LVM_GETEDITCONTROL = (LVM_FIRST + 24);
  3236. // Macro 65
  3237. Function ListView_GetEditControl( hwndLV : hwnd):HWND;
  3238. // #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem)
  3239. // #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem)
  3240. TYPE
  3241. tagLVCOLUMNA = Record
  3242. mask : UINT;
  3243. fmt : cint;
  3244. cx : cint;
  3245. pszText : LPSTR;
  3246. cchTextMax : cint;
  3247. iSubItem : cint;
  3248. {$ifdef ie3plus}
  3249. iImage : cint;
  3250. iOrder : cint;
  3251. {$ENDIF}
  3252. END;
  3253. LVCOLUMNA = tagLVCOLUMNA;
  3254. LPLVCOLUMNA = ^tagLVCOLUMNA;
  3255. TLVCOLUMNA = tagLVCOLUMNA;
  3256. PLVCOLUMNA = ^tagLVCOLUMNA;
  3257. tagLVCOLUMNW = Record
  3258. mask : UINT;
  3259. fmt : cint;
  3260. cx : cint;
  3261. pszText : LPWSTR;
  3262. cchTextMax : cint;
  3263. iSubItem : cint;
  3264. {$ifdef ie3plus}
  3265. iImage : cint;
  3266. iOrder : cint;
  3267. {$ENDIF}
  3268. END;
  3269. LVCOLUMNW = tagLVCOLUMNW;
  3270. LPLVCOLUMNW = ^tagLVCOLUMNW;
  3271. TLVCOLUMNW = tagLVCOLUMNW;
  3272. PLVCOLUMNW = ^tagLVCOLUMNW;
  3273. {$IFDEF UNICODE}
  3274. LVCOLUMN = LVCOLUMNW;
  3275. LPLVCOLUMN = LPLVCOLUMNW;
  3276. // LVCOLUMN_V1_SIZE = LVCOLUMNW_V1_SIZE;
  3277. {$ELSE}
  3278. LVCOLUMN = LVCOLUMNA;
  3279. LPLVCOLUMN = LPLVCOLUMNA;
  3280. // LVCOLUMN_V1_SIZE = LVCOLUMNA_V1_SIZE;
  3281. {$ENDIF}
  3282. {$ifdef ie3plus}
  3283. LV_COLUMNA = LVCOLUMNA;
  3284. LV_COLUMNW = LVCOLUMNW;
  3285. {$ELSE}
  3286. tagLVCOLUMNA = _LV_COLUMNA;
  3287. LVCOLUMNA = LV_COLUMNA;
  3288. tagLVCOLUMNW = _LV_COLUMNW;
  3289. LVCOLUMNW = LV_COLUMNW;
  3290. {$ENDIF}
  3291. LV_COLUMN = LVCOLUMN;
  3292. TLVColumn = LVCOLUMN;
  3293. PLVColumn = LPLVCOLUMN;
  3294. CONST
  3295. LVCF_FMT = $0001;
  3296. LVCF_WIDTH = $0002;
  3297. LVCF_TEXT = $0004;
  3298. LVCF_SUBITEM = $0008;
  3299. {$ifdef ie3plus}
  3300. LVCF_IMAGE = $0010;
  3301. LVCF_ORDER = $0020;
  3302. {$ENDIF}
  3303. LVCFMT_LEFT = $0000;
  3304. LVCFMT_RIGHT = $0001;
  3305. LVCFMT_CENTER = $0002;
  3306. LVCFMT_JUSTIFYMASK = $0003;
  3307. {$ifdef ie3plus}
  3308. LVCFMT_IMAGE = $0800;
  3309. LVCFMT_BITMAP_ON_RIGHT = $1000;
  3310. LVCFMT_COL_HAS_IMAGES = $8000;
  3311. {$ENDIF}
  3312. LVM_GETCOLUMNA = (LVM_FIRST + 25);
  3313. LVM_GETCOLUMNW = (LVM_FIRST + 95);
  3314. {$IFDEF UNICODE}
  3315. LVM_GETCOLUMN = LVM_GETCOLUMNW;
  3316. {$ELSE}
  3317. LVM_GETCOLUMN = LVM_GETCOLUMNA;
  3318. {$ENDIF}
  3319. // Macro 66
  3320. Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL;
  3321. CONST
  3322. LVM_SETCOLUMNA = (LVM_FIRST + 26);
  3323. LVM_SETCOLUMNW = (LVM_FIRST + 96);
  3324. {$IFDEF UNICODE}
  3325. LVM_SETCOLUMN = LVM_SETCOLUMNW;
  3326. {$ELSE}
  3327. LVM_SETCOLUMN = LVM_SETCOLUMNA;
  3328. {$ENDIF}
  3329. // Macro 67
  3330. Function ListView_SetColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):BOOL;
  3331. CONST
  3332. LVM_INSERTCOLUMNA = (LVM_FIRST + 27);
  3333. LVM_INSERTCOLUMNW = (LVM_FIRST + 97);
  3334. {$IFDEF UNICODE} // was already not active (spaces) in .h
  3335. // # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW
  3336. {$ELSE}
  3337. // # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA
  3338. {$ENDIF}
  3339. // Macro 68
  3340. Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):cint;
  3341. CONST
  3342. LVM_DELETECOLUMN = (LVM_FIRST + 28);
  3343. // Macro 69
  3344. Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
  3345. CONST
  3346. LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29);
  3347. // Macro 70
  3348. Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
  3349. CONST
  3350. LVSCW_AUTOSIZE = -1;
  3351. LVSCW_AUTOSIZE_USEHEADER = -2;
  3352. LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30);
  3353. // Macro 71
  3354. Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx : cint ):BOOL;
  3355. {$ifdef ie3plus}
  3356. CONST
  3357. LVM_GETHEADER = (LVM_FIRST + 31);
  3358. // Macro 72
  3359. Function ListView_GetHeader( hwnd : hwnd):HWND;
  3360. {$ENDIF}
  3361. CONST
  3362. LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33);
  3363. // Macro 73
  3364. Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline;
  3365. Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline;
  3366. CONST
  3367. LVM_GETVIEWRECT = (LVM_FIRST + 34);
  3368. // Macro 74
  3369. Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL;
  3370. CONST
  3371. LVM_GETTEXTCOLOR = (LVM_FIRST + 35);
  3372. // Macro 75
  3373. Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
  3374. CONST
  3375. LVM_SETTEXTCOLOR = (LVM_FIRST + 36);
  3376. // Macro 76
  3377. Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
  3378. CONST
  3379. LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37);
  3380. // Macro 77
  3381. Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
  3382. CONST
  3383. LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38);
  3384. // Macro 78
  3385. Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
  3386. CONST
  3387. LVM_GETTOPINDEX = (LVM_FIRST + 39);
  3388. // Macro 79
  3389. Function ListView_GetTopIndex( hwndLV : hwnd):cint;
  3390. CONST
  3391. LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40);
  3392. // Macro 80
  3393. Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
  3394. CONST
  3395. LVM_GETORIGIN = (LVM_FIRST + 41);
  3396. // Macro 81
  3397. Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL;
  3398. CONST
  3399. LVM_UPDATE = (LVM_FIRST + 42);
  3400. // Macro 82
  3401. Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
  3402. CONST
  3403. LVM_SETITEMSTATE = (LVM_FIRST + 43);
  3404. // Macro 83
  3405. Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
  3406. {$ifdef ie3plus}
  3407. // Macro 84
  3408. Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : bool );
  3409. {$ENDIF}
  3410. CONST
  3411. LVM_GETITEMSTATE = (LVM_FIRST + 44);
  3412. // Macro 85
  3413. Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
  3414. {$ifdef ie3plus}
  3415. // Macro 86
  3416. Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
  3417. {$ENDIF}
  3418. CONST
  3419. LVM_GETITEMTEXTA = (LVM_FIRST + 45);
  3420. LVM_GETITEMTEXTW = (LVM_FIRST + 115);
  3421. {$IFDEF UNICODE}
  3422. LVM_GETITEMTEXT = LVM_GETITEMTEXTW;
  3423. {$ELSE}
  3424. LVM_GETITEMTEXT = LVM_GETITEMTEXTA;
  3425. {$ENDIF}
  3426. // Macro 87
  3427. Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
  3428. CONST
  3429. LVM_SETITEMTEXTA = (LVM_FIRST + 46);
  3430. LVM_SETITEMTEXTW = (LVM_FIRST + 116);
  3431. {$IFDEF UNICODE}
  3432. LVM_SETITEMTEXT = LVM_SETITEMTEXTW;
  3433. {$ELSE}
  3434. LVM_SETITEMTEXT = LVM_SETITEMTEXTA;
  3435. {$ENDIF}
  3436. // Macro 88
  3437. Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
  3438. {$ifdef ie3plus}
  3439. // these flags only apply to LVS_OWNERDATA listviews in report or list mode
  3440. CONST
  3441. LVSICF_NOINVALIDATEALL = $00000001;
  3442. LVSICF_NOSCROLL = $00000002;
  3443. {$ENDIF}
  3444. LVM_SETITEMCOUNT = (LVM_FIRST + 47);
  3445. // Macro 89
  3446. Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
  3447. {$ifdef ie3plus}
  3448. // Macro 90
  3449. Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
  3450. {$ENDIF}
  3451. TYPE
  3452. PFNLVCOMPARE=Function(a,b,c:LPARAM):cint;
  3453. TLVCompare = PFNLVCOMPARE;
  3454. CONST
  3455. LVM_SORTITEMS = (LVM_FIRST + 48);
  3456. // Macro 91
  3457. Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
  3458. CONST
  3459. LVM_SETITEMPOSITION32 = (LVM_FIRST + 49);
  3460. // Macro 92
  3461. Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
  3462. CONST
  3463. LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50);
  3464. // Macro 93
  3465. Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
  3466. CONST
  3467. LVM_GETITEMSPACING = (LVM_FIRST + 51);
  3468. // Macro 94
  3469. Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
  3470. CONST
  3471. LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52);
  3472. LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117);
  3473. {$IFDEF UNICODE}
  3474. LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGW;
  3475. {$ELSE}
  3476. LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA;
  3477. {$ENDIF}
  3478. // Macro 95
  3479. Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
  3480. {$ifdef ie3plus}
  3481. CONST
  3482. LVM_SETICONSPACING = (LVM_FIRST + 53);
  3483. // -1 for cx and cy means we'll use the default (system settings)
  3484. // 0 for cx or cy means use the current setting (allows you to change just one param)
  3485. // Macro 96
  3486. Function ListView_SetIconSpacing( hwndLV : hwnd; cx, cy : cint ):DWORD;
  3487. CONST
  3488. LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54); // optional wParam == mask
  3489. // Macro 97
  3490. Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw : cint ):DWORD;
  3491. {$ifdef ie4plus}
  3492. // Macro 98
  3493. Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
  3494. {$ENDIF}
  3495. CONST
  3496. LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55);
  3497. // Macro 99
  3498. Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
  3499. CONST
  3500. LVS_EX_GRIDLINES = $00000001;
  3501. LVS_EX_SUBITEMIMAGES = $00000002;
  3502. LVS_EX_CHECKBOXES = $00000004;
  3503. LVS_EX_TRACKSELECT = $00000008;
  3504. LVS_EX_HEADERDRAGDROP = $00000010;
  3505. LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only
  3506. LVS_EX_ONECLICKACTIVATE = $00000040;
  3507. LVS_EX_TWOCLICKACTIVATE = $00000080;
  3508. {$ifdef ie4plus}
  3509. LVS_EX_FLATSB = $00000100;
  3510. LVS_EX_REGIONAL = $00000200;
  3511. LVS_EX_INFOTIP = $00000400; // listview does InfoTips for you
  3512. LVS_EX_UNDERLINEHOT = $00000800;
  3513. LVS_EX_UNDERLINECOLD = $00001000;
  3514. LVS_EX_MULTIWORKAREAS = $00002000;
  3515. {$ENDIF}
  3516. {$ifdef ie5plus}
  3517. LVS_EX_LABELTIP = $00004000; // listview unfolds partly hidden labels if it does not have infotip text
  3518. LVS_EX_BORDERSELECT = $00008000; // border selection style instead of highlight
  3519. {$ENDIF} // End (_WIN32_IE >= 0x0500)
  3520. {$ifdef win32xp}
  3521. LVS_EX_DOUBLEBUFFER = $00010000;
  3522. LVS_EX_HIDELABELS = $00020000;
  3523. LVS_EX_SINGLEROW = $00040000;
  3524. LVS_EX_SNAPTOGRID = $00080000; // Icons automatically snap to grid.
  3525. LVS_EX_SIMPLESELECT = $00100000; // Also changes overlay rendering to top right for icon mode.
  3526. {$ENDIF}
  3527. LVM_GETSUBITEMRECT = (LVM_FIRST + 56);
  3528. // Macro 100
  3529. Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
  3530. CONST
  3531. LVM_SUBITEMHITTEST = (LVM_FIRST + 57);
  3532. // Macro 101
  3533. Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
  3534. CONST
  3535. LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58);
  3536. // Macro 102
  3537. Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
  3538. CONST
  3539. LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59);
  3540. // Macro 103
  3541. Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
  3542. CONST
  3543. LVM_SETHOTITEM = (LVM_FIRST + 60);
  3544. // Macro 104
  3545. Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
  3546. CONST
  3547. LVM_GETHOTITEM = (LVM_FIRST + 61);
  3548. // Macro 105
  3549. Function ListView_GetHotItem( hwnd : hwnd):cint;
  3550. CONST
  3551. LVM_SETHOTCURSOR = (LVM_FIRST + 62);
  3552. // Macro 106
  3553. Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
  3554. CONST
  3555. LVM_GETHOTCURSOR = (LVM_FIRST + 63);
  3556. // Macro 107
  3557. Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
  3558. CONST
  3559. LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64);
  3560. // Macro 108
  3561. Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
  3562. {$ENDIF} // _WIN32_IE >= 0x0300
  3563. {$ifdef ie4plus}
  3564. CONST
  3565. LV_MAX_WORKAREAS = 16;
  3566. LVM_SETWORKAREAS = (LVM_FIRST + 65);
  3567. // Macro 109
  3568. Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;inline;
  3569. Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint; prc : PRECT ):BOOL;inline;
  3570. CONST
  3571. LVM_GETWORKAREAS = (LVM_FIRST + 70);
  3572. // Macro 110
  3573. Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
  3574. CONST
  3575. LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73);
  3576. // Macro 111
  3577. Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL;
  3578. CONST
  3579. LVM_GETSELECTIONMARK = (LVM_FIRST + 66);
  3580. // Macro 112
  3581. Function ListView_GetSelectionMark( hwnd : hwnd):cint;
  3582. CONST
  3583. LVM_SETSELECTIONMARK = (LVM_FIRST + 67);
  3584. // Macro 113
  3585. Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
  3586. CONST
  3587. LVM_SETHOVERTIME = (LVM_FIRST + 71);
  3588. // Macro 114
  3589. Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
  3590. CONST
  3591. LVM_GETHOVERTIME = (LVM_FIRST + 72);
  3592. // Macro 115
  3593. Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
  3594. CONST
  3595. LVM_SETTOOLTIPS = (LVM_FIRST + 74);
  3596. // Macro 116
  3597. Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
  3598. CONST
  3599. LVM_GETTOOLTIPS = (LVM_FIRST + 78);
  3600. // Macro 117
  3601. Function ListView_GetToolTips( hwndLV : hwnd):HWND;
  3602. CONST
  3603. LVM_SORTITEMSEX = (LVM_FIRST + 81);
  3604. // Macro 118
  3605. Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
  3606. TYPE
  3607. tagLVBKIMAGEA = Record
  3608. ulFlags : ULONG; // LVBKIF_*
  3609. hbm : HBITMAP;
  3610. pszImage : LPSTR;
  3611. cchImageMax : UINT;
  3612. xOffsetPercent : cint;
  3613. yOffsetPercent : cint;
  3614. END;
  3615. LVBKIMAGEA = tagLVBKIMAGEA;
  3616. LPLVBKIMAGEA = ^tagLVBKIMAGEA;
  3617. TLVBKIMAGEA = tagLVBKIMAGEA;
  3618. PLVBKIMAGEA = ^tagLVBKIMAGEA;
  3619. tagLVBKIMAGEW = Record
  3620. ulFlags : ULONG; // LVBKIF_*
  3621. hbm : HBITMAP;
  3622. pszImage : LPWSTR;
  3623. cchImageMax : UINT;
  3624. xOffsetPercent : cint;
  3625. yOffsetPercent : cint;
  3626. END;
  3627. LVBKIMAGEW = tagLVBKIMAGEW;
  3628. LPLVBKIMAGEW = ^tagLVBKIMAGEW;
  3629. TLVBKIMAGEW = tagLVBKIMAGEW;
  3630. PLVBKIMAGEW = ^tagLVBKIMAGEW;
  3631. CONST
  3632. LVBKIF_SOURCE_NONE = $00000000;
  3633. LVBKIF_SOURCE_HBITMAP = $00000001;
  3634. LVBKIF_SOURCE_URL = $00000002;
  3635. LVBKIF_SOURCE_MASK = $00000003;
  3636. LVBKIF_STYLE_NORMAL = $00000000;
  3637. LVBKIF_STYLE_TILE = $00000010;
  3638. LVBKIF_STYLE_MASK = $00000010;
  3639. {$ifdef win32xp}
  3640. LVBKIF_FLAG_TILEOFFSET = $00000100;
  3641. LVBKIF_TYPE_WATERMARK = $10000000;
  3642. {$ENDIF}
  3643. LVM_SETBKIMAGEA = (LVM_FIRST + 68);
  3644. LVM_SETBKIMAGEW = (LVM_FIRST + 138);
  3645. LVM_GETBKIMAGEA = (LVM_FIRST + 69);
  3646. LVM_GETBKIMAGEW = (LVM_FIRST + 139);
  3647. {$ifdef win32xp}
  3648. LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140);
  3649. // Macro 119
  3650. Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
  3651. CONST
  3652. LVM_SETTILEWIDTH = (LVM_FIRST + 141);
  3653. // Macro 120
  3654. Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
  3655. CONST
  3656. LV_VIEW_ICON = $0000;
  3657. LV_VIEW_DETAILS = $0001;
  3658. LV_VIEW_SMALLICON = $0002;
  3659. LV_VIEW_LIST = $0003;
  3660. LV_VIEW_TILE = $0004;
  3661. LV_VIEW_MAX = $0004;
  3662. LVM_SETVIEW = (LVM_FIRST + 142);
  3663. // Macro 121
  3664. Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
  3665. CONST
  3666. LVM_GETVIEW = (LVM_FIRST + 143);
  3667. // Macro 122
  3668. Function ListView_GetView( hwnd : hwnd):DWORD;
  3669. CONST
  3670. LVGF_NONE = $00000000;
  3671. LVGF_HEADER = $00000001;
  3672. LVGF_FOOTER = $00000002;
  3673. LVGF_STATE = $00000004;
  3674. LVGF_ALIGN = $00000008;
  3675. LVGF_GROUPID = $00000010;
  3676. LVGS_NORMAL = $00000000;
  3677. LVGS_COLLAPSED = $00000001;
  3678. LVGS_HIDDEN = $00000002;
  3679. LVGA_HEADER_LEFT = $00000001;
  3680. LVGA_HEADER_CENTER = $00000002;
  3681. LVGA_HEADER_RIGHT = $00000004; // Don't forget to validate exclusivity
  3682. LVGA_FOOTER_LEFT = $00000008;
  3683. LVGA_FOOTER_CENTER = $00000010;
  3684. LVGA_FOOTER_RIGHT = $00000020; // Don't forget to validate exclusivity
  3685. TYPE
  3686. tagLVGROUP = Record
  3687. cbSize : UINT;
  3688. mask : UINT;
  3689. pszHeader : LPWSTR;
  3690. cchHeader : cint;
  3691. pszFooter : LPWSTR;
  3692. cchFooter : cint;
  3693. iGroupId : cint;
  3694. stateMask : UINT;
  3695. state : UINT;
  3696. uAlign : UINT;
  3697. END;
  3698. LVGROUP = tagLVGROUP;
  3699. PLVGROUP = ^tagLVGROUP;
  3700. TLVGROUP = tagLVGROUP;
  3701. CONST
  3702. LVM_INSERTGROUP = (LVM_FIRST + 145);
  3703. // Macro 123
  3704. Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
  3705. CONST
  3706. LVM_SETGROUPINFO = (LVM_FIRST + 147);
  3707. // Macro 124
  3708. Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
  3709. CONST
  3710. LVM_GETGROUPINFO = (LVM_FIRST + 149);
  3711. // Macro 125
  3712. Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
  3713. CONST
  3714. LVM_REMOVEGROUP = (LVM_FIRST + 150);
  3715. // Macro 126
  3716. Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
  3717. CONST
  3718. LVM_MOVEGROUP = (LVM_FIRST + 151);
  3719. // Macro 127
  3720. Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
  3721. CONST
  3722. LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154);
  3723. // Macro 128
  3724. Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
  3725. CONST
  3726. LVGMF_NONE = $00000000;
  3727. LVGMF_BORDERSIZE = $00000001;
  3728. LVGMF_BORDERCOLOR = $00000002;
  3729. LVGMF_TEXTCOLOR = $00000004;
  3730. TYPE
  3731. tagLVGROUPMETRICS = Record
  3732. cbSize : UINT;
  3733. mask : UINT;
  3734. Left : UINT;
  3735. Top : UINT;
  3736. Right : UINT;
  3737. Bottom : UINT;
  3738. crLeft : COLORREF;
  3739. crTop : COLORREF;
  3740. crRight : COLORREF;
  3741. crBottom : COLORREF;
  3742. crHeader : COLORREF;
  3743. crFooter : COLORREF;
  3744. END;
  3745. LVGROUPMETRICS = tagLVGROUPMETRICS;
  3746. PLVGROUPMETRICS = ^tagLVGROUPMETRICS;
  3747. TLVGROUPMETRICS = tagLVGROUPMETRICS;
  3748. CONST
  3749. LVM_SETGROUPMETRICS = (LVM_FIRST + 155);
  3750. // Macro 129
  3751. Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
  3752. CONST
  3753. LVM_GETGROUPMETRICS = (LVM_FIRST + 156);
  3754. // Macro 130
  3755. Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
  3756. CONST
  3757. LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157);
  3758. // Macro 131
  3759. Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
  3760. TYPE
  3761. PFNLVGROUPCOMPARE = function(i,j:cint;k:pointer):cint; StdCall;
  3762. CONST
  3763. LVM_SORTGROUPS = (LVM_FIRST + 158);
  3764. // Macro 132
  3765. Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
  3766. TYPE
  3767. tagLVINSERTGROUPSORTED = Record
  3768. pfnGroupCompare : PFNLVGROUPCOMPARE;
  3769. pvData : Pointer;
  3770. lvGroup : LVGROUP;
  3771. END;
  3772. LVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED;
  3773. PLVINSERTGROUPSORTED = ^tagLVINSERTGROUPSORTED;
  3774. TLVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED;
  3775. CONST
  3776. LVM_INSERTGROUPSORTED = (LVM_FIRST + 159);
  3777. // Macro 133
  3778. Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
  3779. CONST
  3780. LVM_REMOVEALLGROUPS = (LVM_FIRST + 160);
  3781. // Macro 134
  3782. Procedure ListView_RemoveAllGroups( hwnd : hwnd);
  3783. CONST
  3784. LVM_HASGROUP = (LVM_FIRST + 161);
  3785. // Macro 135
  3786. Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId : DWORD );
  3787. CONST
  3788. LVTVIF_AUTOSIZE = $00000000;
  3789. LVTVIF_FIXEDWIDTH = $00000001;
  3790. LVTVIF_FIXEDHEIGHT = $00000002;
  3791. LVTVIF_FIXEDSIZE = $00000003;
  3792. LVTVIM_TILESIZE = $00000001;
  3793. LVTVIM_COLUMNS = $00000002;
  3794. LVTVIM_LABELMARGIN = $00000004;
  3795. TYPE
  3796. tagLVTILEVIEWINFO = Record
  3797. cbSize : UINT;
  3798. dwMask : DWORD; //LVTVIM_*
  3799. dwFlags : DWORD; //LVTVIF_*
  3800. sizeTile : SIZE;
  3801. cLines : cint;
  3802. rcLabelMargin : RECT;
  3803. END;
  3804. LVTILEVIEWINFO = tagLVTILEVIEWINFO;
  3805. PLVTILEVIEWINFO = ^tagLVTILEVIEWINFO;
  3806. TLVTILEVIEWINFO = tagLVTILEVIEWINFO;
  3807. tagLVTILEINFO = Record
  3808. cbSize : UINT;
  3809. iItem : cint;
  3810. cColumns : UINT;
  3811. puColumns : PUINT;
  3812. END;
  3813. LVTILEINFO = tagLVTILEINFO;
  3814. PLVTILEINFO = ^tagLVTILEINFO;
  3815. TLVTILEINFO = tagLVTILEINFO;
  3816. CONST
  3817. LVM_SETTILEVIEWINFO = (LVM_FIRST + 162);
  3818. // Macro 136
  3819. Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
  3820. CONST
  3821. LVM_GETTILEVIEWINFO = (LVM_FIRST + 163);
  3822. // Macro 137
  3823. Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
  3824. CONST
  3825. LVM_SETTILEINFO = (LVM_FIRST + 164);
  3826. // Macro 138
  3827. Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
  3828. CONST
  3829. LVM_GETTILEINFO = (LVM_FIRST + 165);
  3830. // Macro 139
  3831. Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
  3832. TYPE
  3833. LVINSERTMARK = Record
  3834. cbSize : UINT;
  3835. dwFlags : DWORD;
  3836. iItem : cint;
  3837. dwReserved : DWORD;
  3838. END;
  3839. LPLVINSERTMARK = ^LVINSERTMARK;
  3840. TLVINSERTMARK = LVINSERTMARK;
  3841. PLVINSERTMARK = ^LVINSERTMARK;
  3842. CONST
  3843. LVIM_AFTER = $00000001; // TRUE = insert After iItem, otherwise before
  3844. LVM_SETINSERTMARK = (LVM_FIRST + 166);
  3845. // Macro 140
  3846. Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
  3847. CONST
  3848. LVM_GETINSERTMARK = (LVM_FIRST + 167);
  3849. // Macro 141
  3850. Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
  3851. CONST
  3852. LVM_INSERTMARKHITTEST = (LVM_FIRST + 168);
  3853. // Macro 142
  3854. Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
  3855. CONST
  3856. LVM_GETINSERTMARKRECT = (LVM_FIRST + 169);
  3857. // Macro 143
  3858. Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
  3859. CONST
  3860. LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170);
  3861. // Macro 144
  3862. Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
  3863. CONST
  3864. LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171);
  3865. // Macro 145
  3866. Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
  3867. TYPE
  3868. tagLVSETINFOTIP = Record
  3869. cbSize : UINT;
  3870. dwFlags : DWORD;
  3871. pszText : LPWSTR;
  3872. iItem : cint;
  3873. iSubItem : cint;
  3874. END;
  3875. LVSETINFOTIP = tagLVSETINFOTIP;
  3876. PLVSETINFOTIP = ^tagLVSETINFOTIP;
  3877. TLVSETINFOTIP = tagLVSETINFOTIP;
  3878. CONST
  3879. LVM_SETINFOTIP = (LVM_FIRST + 173);
  3880. // Macro 146
  3881. Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
  3882. CONST
  3883. LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174);
  3884. // Macro 147
  3885. Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
  3886. CONST
  3887. LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175);
  3888. // Macro 148
  3889. Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
  3890. CONST
  3891. LVM_GETOUTLINECOLOR = (LVM_FIRST + 176);
  3892. // Macro 149
  3893. Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
  3894. CONST
  3895. LVM_SETOUTLINECOLOR = (LVM_FIRST + 177);
  3896. // Macro 150
  3897. Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
  3898. CONST
  3899. LVM_CANCELEDITLABEL = (LVM_FIRST + 179);
  3900. // Macro 151
  3901. Procedure ListView_CancelEditLabel( hwnd : hwnd);
  3902. // These next to methods make it easy to identify an item that can be repositioned
  3903. // within listview. For example: Many developers use the lParam to store an identifier that is
  3904. // unique. Unfortunatly, in order to find this item, they have to iterate through all of the items
  3905. // in the listview. Listview will maintain a unique identifier. The upper bound is the size of a DWORD.
  3906. CONST
  3907. LVM_MAPINDEXTOID = (LVM_FIRST + 180);
  3908. // Macro 152
  3909. Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
  3910. CONST
  3911. LVM_MAPIDTOINDEX = (LVM_FIRST + 181);
  3912. // Macro 153
  3913. Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
  3914. {$ENDIF}
  3915. Type
  3916. {$IFDEF UNICODE}
  3917. LVBKIMAGE = LVBKIMAGEW;
  3918. LPLVBKIMAGE = LPLVBKIMAGEW;
  3919. CONST
  3920. LVM_SETBKIMAGE = LVM_SETBKIMAGEW;
  3921. LVM_GETBKIMAGE = LVM_GETBKIMAGEW;
  3922. {$ELSE}
  3923. LVBKIMAGE = LVBKIMAGEA;
  3924. LPLVBKIMAGE = LPLVBKIMAGEA;
  3925. CONST
  3926. LVM_SETBKIMAGE = LVM_SETBKIMAGEA;
  3927. LVM_GETBKIMAGE = LVM_GETBKIMAGEA;
  3928. {$ENDIF}
  3929. // Macro 154
  3930. Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
  3931. // Macro 155
  3932. Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
  3933. {$ENDIF} // _WIN32_IE >= 0x0400
  3934. TYPE
  3935. tagNMLISTVIEW = Record
  3936. hdr : NMHDR;
  3937. iItem : cint;
  3938. iSubItem : cint;
  3939. uNewState : UINT;
  3940. uOldState : UINT;
  3941. uChanged : UINT;
  3942. ptAction : POINT;
  3943. lParam : LPARAM;
  3944. END;
  3945. NMLISTVIEW = tagNMLISTVIEW;
  3946. LPNMLISTVIEW = ^tagNMLISTVIEW;
  3947. TNMLISTVIEW = tagNMLISTVIEW;
  3948. PNMLISTVIEW = ^tagNMLISTVIEW;
  3949. {$ifdef IE4plus}
  3950. // NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400
  3951. // therefore all the fields are the same except for extra uKeyFlags
  3952. // they are used to store key flags at the time of the single click with
  3953. // delayed activation - because by the time the timer goes off a user may
  3954. // not hold the keys (shift, ctrl) any more
  3955. tagNMITEMACTIVATE = Record
  3956. hdr : NMHDR;
  3957. iItem : cint;
  3958. iSubItem : cint;
  3959. uNewState : UINT;
  3960. uOldState : UINT;
  3961. uChanged : UINT;
  3962. ptAction : POINT;
  3963. lParam : LPARAM;
  3964. uKeyFlags : UINT;
  3965. END;
  3966. NMITEMACTIVATE = tagNMITEMACTIVATE;
  3967. LPNMITEMACTIVATE = ^tagNMITEMACTIVATE;
  3968. TNMITEMACTIVATE = tagNMITEMACTIVATE;
  3969. PNMITEMACTIVATE = ^tagNMITEMACTIVATE;
  3970. // key flags stored in uKeyFlags
  3971. CONST
  3972. LVKF_ALT = $0001;
  3973. LVKF_CONTROL = $0002;
  3974. LVKF_SHIFT = $0004;
  3975. {$ENDIF} //(_WIN32_IE >= 0x0400)
  3976. Type
  3977. {$ifdef ie3plus}
  3978. LPNM_LISTVIEW = LPNMLISTVIEW;
  3979. NM_LISTVIEW = NMLISTVIEW;
  3980. {$ELSE}
  3981. tagNMLISTVIEW = _NM_LISTVIEW;
  3982. NMLISTVIEW = NM_LISTVIEW;
  3983. LPNMLISTVIEW = LPNM_LISTVIEW;
  3984. {$ENDIF}
  3985. {$ifdef ie3plus}
  3986. // #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk)
  3987. TYPE
  3988. tagNMLVCUSTOMDRAW = Record
  3989. nmcd : NMCUSTOMDRAW;
  3990. clrText : COLORREF;
  3991. clrTextBk : COLORREF;
  3992. {$ifdef ie4plus}
  3993. iSubItem : cint;
  3994. {$ENDIF}
  3995. {$ifdef win32xp}
  3996. dwItemType : DWORD;
  3997. clrFace : COLORREF;
  3998. iIconEffect : cint;
  3999. iIconPhase : cint;
  4000. iPartId : cint;
  4001. iStateId : cint;
  4002. rcText : RECT;
  4003. uAlign : UINT; // Alignment. Use LVGA_HEADER_CENTER, LVGA_HEADER_RIGHT, LVGA_HEADER_LEFT
  4004. {$ENDIF}
  4005. END;
  4006. NMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW;
  4007. LPNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW;
  4008. TNMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW;
  4009. PNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW;
  4010. // dwItemType
  4011. CONST
  4012. LVCDI_ITEM = $00000000;
  4013. LVCDI_GROUP = $00000001;
  4014. // ListView custom draw return values
  4015. LVCDRF_NOSELECT = $00010000;
  4016. LVCDRF_NOGROUPFRAME = $00020000;
  4017. TYPE
  4018. tagNMLVCACHEHINT = Record
  4019. hdr : NMHDR;
  4020. iFrom : cint;
  4021. iTo : cint;
  4022. END;
  4023. NMLVCACHEHINT = tagNMLVCACHEHINT;
  4024. LPNMLVCACHEHINT = ^tagNMLVCACHEHINT;
  4025. TNMLVCACHEHINT = tagNMLVCACHEHINT;
  4026. PNMLVCACHEHINT = ^tagNMLVCACHEHINT;
  4027. LPNM_CACHEHINT = LPNMLVCACHEHINT;
  4028. PNM_CACHEHINT = LPNMLVCACHEHINT;
  4029. NM_CACHEHINT = NMLVCACHEHINT;
  4030. tagNMLVFINDITEMA = Record
  4031. hdr : NMHDR;
  4032. iStart : cint;
  4033. lvfi : LVFINDINFOA;
  4034. END;
  4035. NMLVFINDITEMA = tagNMLVFINDITEMA;
  4036. LPNMLVFINDITEMA = ^tagNMLVFINDITEMA;
  4037. TNMLVFINDITEMA = tagNMLVFINDITEMA;
  4038. PNMLVFINDITEMA = ^tagNMLVFINDITEMA;
  4039. tagNMLVFINDITEMW = Record
  4040. hdr : NMHDR;
  4041. iStart : cint;
  4042. lvfi : LVFINDINFOW;
  4043. END;
  4044. NMLVFINDITEMW = tagNMLVFINDITEMW;
  4045. LPNMLVFINDITEMW = ^tagNMLVFINDITEMW;
  4046. TNMLVFINDITEMW = tagNMLVFINDITEMW;
  4047. PNMLVFINDITEMW = ^tagNMLVFINDITEMW;
  4048. PNM_FINDITEMA = LPNMLVFINDITEMA;
  4049. LPNM_FINDITEMA = LPNMLVFINDITEMA;
  4050. NM_FINDITEMA = NMLVFINDITEMA;
  4051. PNM_FINDITEMW = LPNMLVFINDITEMW;
  4052. LPNM_FINDITEMW = LPNMLVFINDITEMW;
  4053. NM_FINDITEMW = NMLVFINDITEMW;
  4054. {$IFDEF UNICODE}
  4055. PNM_FINDITEM = PNM_FINDITEMW;
  4056. LPNM_FINDITEM = LPNM_FINDITEMW;
  4057. NM_FINDITEM = NM_FINDITEMW;
  4058. NMLVFINDITEM = NMLVFINDITEMW;
  4059. LPNMLVFINDITEM = LPNMLVFINDITEMW;
  4060. {$ELSE}
  4061. PNM_FINDITEM = PNM_FINDITEMA;
  4062. LPNM_FINDITEM = LPNM_FINDITEMA;
  4063. NM_FINDITEM = NM_FINDITEMA;
  4064. NMLVFINDITEM = NMLVFINDITEMA;
  4065. LPNMLVFINDITEM = LPNMLVFINDITEMA;
  4066. {$ENDIF}
  4067. PNMLVFindItem = LPNMLVFINDITEM;
  4068. TNMLVFindItem = NMLVFINDITEM;
  4069. tagNMLVODSTATECHANGE = Record
  4070. hdr : NMHDR;
  4071. iFrom : cint;
  4072. iTo : cint;
  4073. uNewState : UINT;
  4074. uOldState : UINT;
  4075. END;
  4076. NMLVODSTATECHANGE = tagNMLVODSTATECHANGE;
  4077. LPNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE;
  4078. TNMLVODSTATECHANGE = tagNMLVODSTATECHANGE;
  4079. PNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE;
  4080. PNM_ODSTATECHANGE = LPNMLVODSTATECHANGE;
  4081. LPNM_ODSTATECHANGE = LPNMLVODSTATECHANGE;
  4082. NM_ODSTATECHANGE = NMLVODSTATECHANGE;
  4083. {$ENDIF} // _WIN32_IE >= 0x0300
  4084. CONST
  4085. LVN_ITEMCHANGING = (LVN_FIRST-0);
  4086. LVN_ITEMCHANGED = (LVN_FIRST-1);
  4087. LVN_INSERTITEM = (LVN_FIRST-2);
  4088. LVN_DELETEITEM = (LVN_FIRST-3);
  4089. LVN_DELETEALLITEMS = (LVN_FIRST-4);
  4090. LVN_BEGINLABELEDITA = (LVN_FIRST-5);
  4091. LVN_BEGINLABELEDITW = (LVN_FIRST-75);
  4092. LVN_ENDLABELEDITA = (LVN_FIRST-6);
  4093. LVN_ENDLABELEDITW = (LVN_FIRST-76);
  4094. LVN_COLUMNCLICK = (LVN_FIRST-8);
  4095. LVN_BEGINDRAG = (LVN_FIRST-9);
  4096. LVN_BEGINRDRAG = (LVN_FIRST-11);
  4097. {$ifdef ie3plus}
  4098. LVN_ODCACHEHINT = (LVN_FIRST-13);
  4099. LVN_ODFINDITEMA = (LVN_FIRST-52);
  4100. LVN_ODFINDITEMW = (LVN_FIRST-79);
  4101. LVN_ITEMACTIVATE = (LVN_FIRST-14);
  4102. LVN_ODSTATECHANGED = (LVN_FIRST-15);
  4103. Const
  4104. {$IFDEF UNICODE}
  4105. LVN_ODFINDITEM = LVN_ODFINDITEMW;
  4106. {$ELSE}
  4107. LVN_ODFINDITEM = LVN_ODFINDITEMA;
  4108. {$ENDIF}
  4109. {$ENDIF} // _WIN32_IE >= 0x0300
  4110. CONST
  4111. {$ifdef ie4plus}
  4112. LVN_HOTTRACK = (LVN_FIRST-21);
  4113. {$ENDIF}
  4114. LVN_GETDISPINFOA = (LVN_FIRST-50);
  4115. LVN_GETDISPINFOW = (LVN_FIRST-77);
  4116. LVN_SETDISPINFOA = (LVN_FIRST-51);
  4117. LVN_SETDISPINFOW = (LVN_FIRST-78);
  4118. Const
  4119. {$IFDEF UNICODE}
  4120. LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITW;
  4121. LVN_ENDLABELEDIT = LVN_ENDLABELEDITW;
  4122. LVN_GETDISPINFO = LVN_GETDISPINFOW;
  4123. LVN_SETDISPINFO = LVN_SETDISPINFOW;
  4124. {$ELSE}
  4125. LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITA;
  4126. LVN_ENDLABELEDIT = LVN_ENDLABELEDITA;
  4127. LVN_GETDISPINFO = LVN_GETDISPINFOA;
  4128. LVN_SETDISPINFO = LVN_SETDISPINFOA;
  4129. {$ENDIF}
  4130. CONST
  4131. LVIF_DI_SETITEM = $1000;
  4132. TYPE
  4133. tagLVDISPINFO = Record
  4134. hdr : NMHDR;
  4135. item : LVITEMA;
  4136. END;
  4137. NMLVDISPINFOA = tagLVDISPINFO;
  4138. LPNMLVDISPINFOA = ^tagLVDISPINFO;
  4139. TLVDISPINFO = tagLVDISPINFO;
  4140. PLVDISPINFO = ^tagLVDISPINFO;
  4141. tagLVDISPINFOW = Record
  4142. hdr : NMHDR;
  4143. item : LVITEMW;
  4144. END;
  4145. NMLVDISPINFOW = tagLVDISPINFOW;
  4146. LPNMLVDISPINFOW = ^tagLVDISPINFOW;
  4147. TLVDISPINFOW = tagLVDISPINFOW;
  4148. PLVDISPINFOW = ^tagLVDISPINFOW;
  4149. {$IFDEF UNICODE}
  4150. NMLVDISPINFO = NMLVDISPINFOW;
  4151. {$ELSE}
  4152. NMLVDISPINFO = NMLVDISPINFOA;
  4153. {$ENDIF}
  4154. {$ifdef ie3plus}
  4155. LV_DISPINFOA = NMLVDISPINFOA;
  4156. LV_DISPINFOW = NMLVDISPINFOW;
  4157. {$ELSE}
  4158. tagLVDISPINFO = _LV_DISPINFO;
  4159. NMLVDISPINFOA = LV_DISPINFOA;
  4160. tagLVDISPINFOW = _LV_DISPINFOW;
  4161. NMLVDISPINFOW = LV_DISPINFOW;
  4162. {$ENDIF}
  4163. LV_DISPINFO = NMLVDISPINFO;
  4164. CONST
  4165. LVN_KEYDOWN = (LVN_FIRST-55);
  4166. {$IFDEF _WIN32}
  4167. // include <pshpack1.h>
  4168. {$ENDIF}
  4169. TYPE
  4170. tagLVKEYDOWN = Record
  4171. hdr : NMHDR;
  4172. wVKey : WORD;
  4173. flags : UINT;
  4174. END;
  4175. NMLVKEYDOWN = tagLVKEYDOWN;
  4176. LPNMLVKEYDOWN = ^tagLVKEYDOWN;
  4177. TLVKEYDOWN = tagLVKEYDOWN;
  4178. PLVKEYDOWN = ^tagLVKEYDOWN;
  4179. {$IFDEF _WIN32}
  4180. //include <poppack.h>
  4181. {$ENDIF}
  4182. {$ifdef ie3plus}
  4183. CONST
  4184. LVN_MARQUEEBEGIN = (LVN_FIRST-56);
  4185. {$ENDIF}
  4186. {$ifdef ie4plus}
  4187. TYPE
  4188. tagNMLVGETINFOTIPA = Record
  4189. hdr : NMHDR;
  4190. dwFlags : DWORD;
  4191. pszText : LPSTR;
  4192. cchTextMax : cint;
  4193. iItem : cint;
  4194. iSubItem : cint;
  4195. lParam : LPARAM;
  4196. END;
  4197. NMLVGETINFOTIPA = tagNMLVGETINFOTIPA;
  4198. LPNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA;
  4199. TNMLVGETINFOTIPA = tagNMLVGETINFOTIPA;
  4200. PNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA;
  4201. tagNMLVGETINFOTIPW = Record
  4202. hdr : NMHDR;
  4203. dwFlags : DWORD;
  4204. pszText : LPWSTR;
  4205. cchTextMax : cint;
  4206. iItem : cint;
  4207. iSubItem : cint;
  4208. lParam : LPARAM;
  4209. END;
  4210. NMLVGETINFOTIPW = tagNMLVGETINFOTIPW;
  4211. LPNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW;
  4212. TNMLVGETINFOTIPW = tagNMLVGETINFOTIPW;
  4213. PNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW;
  4214. {$ifdef ie3plus}
  4215. LV_KEYDOWN = NMLVKEYDOWN;
  4216. {$ELSE}
  4217. tagLVKEYDOWN = _LV_KEYDOWN;
  4218. NMLVKEYDOWN = LV_KEYDOWN;
  4219. {$ENDIF}
  4220. // NMLVGETINFOTIPA.dwFlag values
  4221. CONST
  4222. LVGIT_UNFOLDED = $0001;
  4223. LVN_GETINFOTIPA = (LVN_FIRST-57);
  4224. LVN_GETINFOTIPW = (LVN_FIRST-58);
  4225. Const
  4226. {$IFDEF UNICODE}
  4227. LVN_GETINFOTIP = LVN_GETINFOTIPW;
  4228. type
  4229. NMLVGETINFOTIP = NMLVGETINFOTIPW;
  4230. LPNMLVGETINFOTIP = LPNMLVGETINFOTIPW;
  4231. {$ELSE}
  4232. LVN_GETINFOTIP = LVN_GETINFOTIPA;
  4233. type
  4234. NMLVGETINFOTIP = NMLVGETINFOTIPA;
  4235. LPNMLVGETINFOTIP = LPNMLVGETINFOTIPA;
  4236. {$ENDIF}
  4237. {$ENDIF} // _WIN32_IE >= 0x0400
  4238. {$ifdef win32xp}
  4239. tagNMLVSCROLL = Record
  4240. hdr : NMHDR;
  4241. dx : cint;
  4242. dy : cint;
  4243. END;
  4244. NMLVSCROLL = tagNMLVSCROLL;
  4245. LPNMLVSCROLL = ^tagNMLVSCROLL;
  4246. TNMLVSCROLL = tagNMLVSCROLL;
  4247. PNMLVSCROLL = ^tagNMLVSCROLL;
  4248. CONST
  4249. LVN_BEGINSCROLL = (LVN_FIRST-80) ;
  4250. LVN_ENDSCROLL = (LVN_FIRST-81);
  4251. // {$ENDIF}
  4252. {$ENDIF} // NOLISTVIEW
  4253. //====== TREEVIEW CONTROL =====================================================
  4254. {$IFNDEF NOTREEVIEW}
  4255. CONST
  4256. {$IFDEF _WIN32}
  4257. WC_TREEVIEWA = 'SysTreeView32';
  4258. WC_TREEVIEWW = {L}'SysTreeView32';
  4259. {$IFDEF UNICODE}
  4260. WC_TREEVIEW = WC_TREEVIEWW;
  4261. {$ELSE}
  4262. WC_TREEVIEW = WC_TREEVIEWA;
  4263. {$ENDIF}
  4264. {$ELSE}
  4265. WC_TREEVIEW = 'SysTreeView';
  4266. {$ENDIF}
  4267. // begin_r_commctrl
  4268. TVS_HASBUTTONS = $0001;
  4269. TVS_HASLINES = $0002;
  4270. TVS_LINESATROOT = $0004;
  4271. TVS_EDITLABELS = $0008;
  4272. TVS_DISABLEDRAGDROP = $0010;
  4273. TVS_SHOWSELALWAYS = $0020;
  4274. {$ifdef ie3plus}
  4275. TVS_RTLREADING = $0040;
  4276. TVS_NOTOOLTIPS = $0080;
  4277. TVS_CHECKBOXES = $0100;
  4278. TVS_TRACKSELECT = $0200;
  4279. {$ifdef ie4plus}
  4280. TVS_SINGLEEXPAND = $0400;
  4281. TVS_INFOTIP = $0800;
  4282. TVS_FULLROWSELECT = $1000;
  4283. TVS_NOSCROLL = $2000;
  4284. TVS_NONEVENHEIGHT = $4000;
  4285. {$ENDIF}
  4286. {$ifdef ie5plus}
  4287. TVS_NOHSCROLL = $8000; // TVS_NOSCROLL overrides this
  4288. {$ENDIF}
  4289. {$ENDIF}
  4290. // end_r_commctrl
  4291. TYPE
  4292. HTREEITEM = ^TREEITEM;
  4293. CONST
  4294. TVIF_TEXT = $0001;
  4295. TVIF_IMAGE = $0002;
  4296. TVIF_PARAM = $0004;
  4297. TVIF_STATE = $0008;
  4298. TVIF_HANDLE = $0010;
  4299. TVIF_SELECTEDIMAGE = $0020;
  4300. TVIF_CHILDREN = $0040;
  4301. {$ifdef ie4plus}
  4302. TVIF_INTEGRAL = $0080;
  4303. {$ENDIF}
  4304. TVIS_SELECTED = $0002;
  4305. TVIS_CUT = $0004;
  4306. TVIS_DROPHILITED = $0008;
  4307. TVIS_BOLD = $0010;
  4308. TVIS_EXPANDED = $0020;
  4309. TVIS_EXPANDEDONCE = $0040;
  4310. {$ifdef ie3plus}
  4311. TVIS_EXPANDPARTIAL = $0080;
  4312. {$ENDIF}
  4313. TVIS_OVERLAYMASK = $0F00;
  4314. TVIS_STATEIMAGEMASK = $F000;
  4315. TVIS_USERMASK = $F000;
  4316. I_CHILDRENCALLBACK = (-1);
  4317. Type
  4318. tagTVITEMA = Record
  4319. mask : UINT;
  4320. hItem : HTREEITEM;
  4321. state : UINT;
  4322. stateMask : UINT;
  4323. pszText : LPSTR;
  4324. cchTextMax : cint;
  4325. iImage : cint;
  4326. iSelectedImage : cint;
  4327. cChildren : cint;
  4328. lParam : LPARAM;
  4329. END;
  4330. TVITEMA = tagTVITEMA;
  4331. LPTVITEMA = ^tagTVITEMA;
  4332. TTVITEMA = tagTVITEMA;
  4333. PTVITEMA = ^tagTVITEMA;
  4334. tagTVITEMW = Record
  4335. mask : UINT;
  4336. hItem : HTREEITEM;
  4337. state : UINT;
  4338. stateMask : UINT;
  4339. pszText : LPWSTR;
  4340. cchTextMax : cint;
  4341. iImage : cint;
  4342. iSelectedImage : cint;
  4343. cChildren : cint;
  4344. lParam : LPARAM;
  4345. END;
  4346. TVITEMW = tagTVITEMW;
  4347. LPTVITEMW = ^tagTVITEMW;
  4348. TTVITEMW = tagTVITEMW;
  4349. PTVITEMW = ^tagTVITEMW;
  4350. {$ifdef ie4plus}
  4351. // only used for Get and Set messages. no notifies
  4352. tagTVITEMEXA = Record
  4353. mask : UINT;
  4354. hItem : HTREEITEM;
  4355. state : UINT;
  4356. stateMask : UINT;
  4357. pszText : LPSTR;
  4358. cchTextMax : cint;
  4359. iImage : cint;
  4360. iSelectedImage : cint;
  4361. cChildren : cint;
  4362. lParam : LPARAM;
  4363. iIntegral : cint;
  4364. END;
  4365. TVITEMEXA = tagTVITEMEXA;
  4366. LPTVITEMEXA = ^tagTVITEMEXA;
  4367. TTVITEMEXA = tagTVITEMEXA;
  4368. PTVITEMEXA = ^tagTVITEMEXA;
  4369. // only used for Get and Set messages. no notifies
  4370. tagTVITEMEXW = Record
  4371. mask : UINT;
  4372. hItem : HTREEITEM;
  4373. state : UINT;
  4374. stateMask : UINT;
  4375. pszText : LPWSTR;
  4376. cchTextMax : cint;
  4377. iImage : cint;
  4378. iSelectedImage : cint;
  4379. cChildren : cint;
  4380. lParam : LPARAM;
  4381. iIntegral : cint;
  4382. END;
  4383. TVITEMEXW = tagTVITEMEXW;
  4384. LPTVITEMEXW = ^tagTVITEMEXW;
  4385. TTVITEMEXW = tagTVITEMEXW;
  4386. PTVITEMEXW = ^tagTVITEMEXW;
  4387. TYPE
  4388. {$ifdef ie3plus}
  4389. LPTV_ITEMW = LPTVITEMW;
  4390. LPTV_ITEMA = LPTVITEMA;
  4391. TV_ITEMW = TVITEMW;
  4392. TV_ITEMA = TVITEMA;
  4393. {$ELSE}
  4394. tagTVITEMA = _TV_ITEMA;
  4395. TVITEMA = TV_ITEMA;
  4396. LPTVITEMA = LPTV_ITEMA;
  4397. tagTVITEMW = _TV_ITEMW;
  4398. TVITEMW = TV_ITEMW;
  4399. LPTVITEMW = LPTV_ITEMW;
  4400. {$ENDIF}
  4401. TTVItem = TVITEMA;
  4402. PTVItem = LPTVITEMA;
  4403. {$IFDEF UNICODE}
  4404. TVITEMEX = TVITEMEXW;
  4405. LPTVITEMEX = LPTVITEMEXW;
  4406. {$ELSE}
  4407. TVITEMEX = TVITEMEXA;
  4408. LPTVITEMEX = LPTVITEMEXA;
  4409. {$ENDIF} // UNICODE
  4410. {$ENDIF}
  4411. {$IFDEF UNICODE}
  4412. TVITEM = TVITEMW;
  4413. LPTVITEM = LPTVITEMW;
  4414. {$ELSE}
  4415. TVITEM = TVITEMA;
  4416. LPTVITEM = LPTVITEMA;
  4417. {$ENDIF}
  4418. LPTV_ITEM = LPTVITEM;
  4419. TV_ITEM = TVITEM;
  4420. CONST
  4421. TVI_ROOT = HTREEITEM(ULONG_PTR(-$10000));
  4422. TVI_FIRST = HTREEITEM(ULONG_PTR(-$0FFFF));
  4423. TVI_LAST = HTREEITEM(ULONG_PTR(-$0FFFE));
  4424. TVI_SORT = HTREEITEM(ULONG_PTR(-$0FFFD));
  4425. // #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item)
  4426. // #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item)
  4427. Type
  4428. tagTVINSERTSTRUCTA = Record
  4429. hParent : HTREEITEM;
  4430. hInsertAfter : HTREEITEM;
  4431. {$ifdef ie4plus}
  4432. case boolean of
  4433. false: (itemex : TVITEMEXA);
  4434. True: (item : TV_ITEMA);
  4435. {$ELSE}
  4436. item : TV_ITEMA;
  4437. {$ENDIF}
  4438. END;
  4439. TVINSERTSTRUCTA = tagTVINSERTSTRUCTA;
  4440. LPTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA;
  4441. TTVINSERTSTRUCTA = tagTVINSERTSTRUCTA;
  4442. PTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA;
  4443. TTVINSERTSTRUCT = TTVINSERTSTRUCTA;
  4444. PTVINSERTSTRUCT = PTVINSERTSTRUCTA;
  4445. tagTVINSERTSTRUCTW = Record
  4446. hParent : HTREEITEM;
  4447. hInsertAfter : HTREEITEM;
  4448. {$ifdef ie4plus}
  4449. case boolean of
  4450. false: (itemex : TVITEMEXW);
  4451. True: (item : TV_ITEMW);
  4452. {$ELSE}
  4453. item : TV_ITEMW;
  4454. {$ENDIF}
  4455. END;
  4456. TVINSERTSTRUCTW = tagTVINSERTSTRUCTW;
  4457. LPTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW;
  4458. TTVINSERTSTRUCTW = tagTVINSERTSTRUCTW;
  4459. PTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW;
  4460. {$IFDEF UNICODE}
  4461. TVINSERTSTRUCT = TVINSERTSTRUCTW;
  4462. LPTVINSERTSTRUCT = LPTVINSERTSTRUCTW;
  4463. // TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTW_V1_SIZE;
  4464. {$ELSE}
  4465. TVINSERTSTRUCT = TVINSERTSTRUCTA;
  4466. LPTVINSERTSTRUCT = LPTVINSERTSTRUCTA;
  4467. // TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTA_V1_SIZE;
  4468. {$ENDIF}
  4469. CONST
  4470. TVM_INSERTITEMA = (TV_FIRST + 0);
  4471. TVM_INSERTITEMW = (TV_FIRST + 50);
  4472. {$IFDEF UNICODE}
  4473. TVM_INSERTITEM = TVM_INSERTITEMW;
  4474. {$ELSE}
  4475. TVM_INSERTITEM = TVM_INSERTITEMA;
  4476. {$ENDIF}
  4477. TYPE
  4478. {$ifdef ie3plus}
  4479. LPTV_INSERTSTRUCTA = LPTVINSERTSTRUCTA;
  4480. LPTV_INSERTSTRUCTW = LPTVINSERTSTRUCTW;
  4481. TV_INSERTSTRUCTA = TVINSERTSTRUCTA;
  4482. TV_INSERTSTRUCTW = TVINSERTSTRUCTW;
  4483. {$ELSE}
  4484. tagTVINSERTSTRUCTA = _TV_INSERTSTRUCTA;
  4485. TVINSERTSTRUCTA = TV_INSERTSTRUCTA;
  4486. LPTVINSERTSTRUCTA = LPTV_INSERTSTRUCTA;
  4487. tagTVINSERTSTRUCTW = _TV_INSERTSTRUCTW;
  4488. TVINSERTSTRUCTW = TV_INSERTSTRUCTW;
  4489. LPTVINSERTSTRUCTW = LPTV_INSERTSTRUCTW;
  4490. {$ENDIF}
  4491. TV_INSERTSTRUCT = TVINSERTSTRUCT;
  4492. LPTV_INSERTSTRUCT = LPTVINSERTSTRUCT;
  4493. // Macro 156
  4494. Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline;
  4495. Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline;
  4496. CONST
  4497. TVM_DELETEITEM = (TV_FIRST + 1);
  4498. // Macro 157
  4499. Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
  4500. // Macro 158
  4501. Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
  4502. CONST
  4503. TVM_EXPAND = (TV_FIRST + 2);
  4504. // Macro 159
  4505. Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
  4506. CONST
  4507. TVE_COLLAPSE = $0001;
  4508. TVE_EXPAND = $0002;
  4509. TVE_TOGGLE = $0003;
  4510. {$ifdef ie3plus}
  4511. TVE_EXPANDPARTIAL = $4000;
  4512. {$ENDIF}
  4513. TVE_COLLAPSERESET = $8000;
  4514. TVM_GETITEMRECT = (TV_FIRST + 4);
  4515. // Macro 160
  4516. Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline;
  4517. Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline;
  4518. CONST
  4519. TVM_GETCOUNT = (TV_FIRST + 5);
  4520. // Macro 161
  4521. Function TreeView_GetCount( hwnd : hwnd):UINT;
  4522. CONST
  4523. TVM_GETINDENT = (TV_FIRST + 6);
  4524. // Macro 162
  4525. Function TreeView_GetIndent( hwnd : hwnd):UINT;
  4526. CONST
  4527. TVM_SETINDENT = (TV_FIRST + 7);
  4528. // Macro 163
  4529. Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
  4530. CONST
  4531. TVM_GETIMAGELIST = (TV_FIRST + 8);
  4532. // Macro 164
  4533. Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
  4534. CONST
  4535. TVSIL_NORMAL = 0;
  4536. TVSIL_STATE = 2;
  4537. TVM_SETIMAGELIST = (TV_FIRST + 9);
  4538. // Macro 165
  4539. Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint):HIMAGELIST;
  4540. CONST
  4541. TVM_GETNEXTITEM = (TV_FIRST + 10);
  4542. // Macro 166
  4543. Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
  4544. CONST
  4545. TVGN_ROOT = $0000;
  4546. TVGN_NEXT = $0001;
  4547. TVGN_PREVIOUS = $0002;
  4548. TVGN_PARENT = $0003;
  4549. TVGN_CHILD = $0004;
  4550. TVGN_FIRSTVISIBLE = $0005;
  4551. TVGN_NEXTVISIBLE = $0006;
  4552. TVGN_PREVIOUSVISIBLE = $0007;
  4553. TVGN_DROPHILITE = $0008;
  4554. TVGN_CARET = $0009;
  4555. {$ifdef ie4plus}
  4556. TVGN_LASTVISIBLE = $000A;
  4557. {$ENDIF} // _WIN32_IE >= 0x0400
  4558. {$ifdef win32xp}
  4559. TVSI_NOSINGLEEXPAND = $8000; // Should not conflict with TVGN flags.
  4560. {$ENDIF}
  4561. function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4562. function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4563. function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4564. function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4565. function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline;
  4566. function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4567. function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  4568. function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline;
  4569. function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline;
  4570. function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline;
  4571. function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline;
  4572. function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline;
  4573. CONST
  4574. TVM_SELECTITEM = (TV_FIRST + 11);
  4575. // Macro 178
  4576. Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
  4577. // Macro 179
  4578. Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
  4579. // Macro 180
  4580. Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
  4581. // Macro 181
  4582. Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
  4583. CONST
  4584. TVM_GETITEMA = (TV_FIRST + 12);
  4585. TVM_GETITEMW = (TV_FIRST + 62);
  4586. {$IFDEF UNICODE}
  4587. TYPE
  4588. TVM_GETITEM = TVM_GETITEMW;
  4589. {$ELSE}
  4590. TVM_GETITEM = TVM_GETITEMA;
  4591. {$ENDIF}
  4592. // Macro 182
  4593. Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL;
  4594. CONST
  4595. TVM_SETITEMA = (TV_FIRST + 13);
  4596. TVM_SETITEMW = (TV_FIRST + 63);
  4597. {$IFDEF UNICODE}
  4598. TYPE
  4599. TVM_SETITEM = TVM_SETITEMW;
  4600. {$ELSE}
  4601. TVM_SETITEM = TVM_SETITEMA;
  4602. {$ENDIF}
  4603. // Macro 183
  4604. Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL;
  4605. CONST
  4606. TVM_EDITLABELA = (TV_FIRST + 14);
  4607. TVM_EDITLABELW = (TV_FIRST + 65);
  4608. {$IFDEF UNICODE}
  4609. TYPE
  4610. TVM_EDITLABEL = TVM_EDITLABELW;
  4611. {$ELSE}
  4612. TVM_EDITLABEL = TVM_EDITLABELA;
  4613. {$ENDIF}
  4614. // Macro 184
  4615. Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
  4616. CONST
  4617. TVM_GETEDITCONTROL = (TV_FIRST + 15);
  4618. // Macro 185
  4619. Function TreeView_GetEditControl( hwnd : hwnd):HWND;
  4620. CONST
  4621. TVM_GETVISIBLECOUNT = (TV_FIRST + 16);
  4622. // Macro 186
  4623. Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
  4624. CONST
  4625. TVM_HITTEST = (TV_FIRST + 17);
  4626. TYPE
  4627. tagTVHITTESTINFO = Record
  4628. pt : POINT;
  4629. flags : UINT;
  4630. hItem : HTREEITEM;
  4631. END;
  4632. TVHITTESTINFO = tagTVHITTESTINFO;
  4633. LPTVHITTESTINFO = ^tagTVHITTESTINFO;
  4634. TTVHITTESTINFO = tagTVHITTESTINFO;
  4635. PTVHITTESTINFO = ^tagTVHITTESTINFO;
  4636. {$ifdef ie3plus}
  4637. LPTV_HITTESTINFO = LPTVHITTESTINFO;
  4638. TV_HITTESTINFO = TVHITTESTINFO;
  4639. {$ELSE}
  4640. tagTVHITTESTINFO = _TV_HITTESTINFO;
  4641. TVHITTESTINFO = TV_HITTESTINFO;
  4642. LPTVHITTESTINFO = LPTV_HITTESTINFO;
  4643. {$ENDIF}
  4644. CONST
  4645. TVHT_NOWHERE = $0001;
  4646. TVHT_ONITEMICON = $0002;
  4647. TVHT_ONITEMLABEL = $0004;
  4648. TVHT_ONITEM = (TVHT_ONITEMICON OR TVHT_ONITEMLABEL OR TVHT_ONITEMSTATEICON);
  4649. TVHT_ONITEMINDENT = $0008;
  4650. TVHT_ONITEMBUTTON = $0010;
  4651. TVHT_ONITEMRIGHT = $0020;
  4652. TVHT_ONITEMSTATEICON = $0040;
  4653. TVHT_ABOVE = $0100;
  4654. TVHT_BELOW = $0200;
  4655. TVHT_TORIGHT = $0400;
  4656. TVHT_TOLEFT = $0800;
  4657. TVM_CREATEDRAGIMAGE = (TV_FIRST + 18);
  4658. // Macro 187
  4659. Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline;
  4660. Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline;
  4661. // Macro 188
  4662. Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
  4663. CONST
  4664. TVM_SORTCHILDREN = (TV_FIRST + 19);
  4665. // Macro 189
  4666. Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
  4667. CONST
  4668. TVM_ENSUREVISIBLE = (TV_FIRST + 20);
  4669. // Macro 190
  4670. Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
  4671. CONST
  4672. TVM_ENDEDITLABELNOW = (TV_FIRST + 22);
  4673. // Macro 192
  4674. Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline;
  4675. Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline;
  4676. CONST
  4677. TVM_GETISEARCHSTRINGA = (TV_FIRST + 23);
  4678. TVM_GETISEARCHSTRINGW = (TV_FIRST + 64);
  4679. {$IFDEF UNICODE}
  4680. TYPE
  4681. TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGW;
  4682. {$ELSE}
  4683. TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGA;
  4684. {$ENDIF}
  4685. {$ifdef ie3plus}
  4686. CONST
  4687. TVM_SETTOOLTIPS = (TV_FIRST + 24);
  4688. // Macro 193
  4689. Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
  4690. CONST
  4691. TVM_GETTOOLTIPS = (TV_FIRST + 25);
  4692. // Macro 194
  4693. Function TreeView_GetToolTips( hwnd : hwnd):HWND;
  4694. {$ENDIF}
  4695. // Macro 195
  4696. Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
  4697. {$ifdef ie4plus}
  4698. CONST
  4699. TVM_SETINSERTMARK = (TV_FIRST + 26);
  4700. // Macro 196
  4701. Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LPARAM ; fAfter : WPARAM ):BOOL;
  4702. CONST
  4703. TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  4704. // Macro 197
  4705. Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  4706. CONST
  4707. TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  4708. // Macro 198
  4709. Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
  4710. {$ENDIF}
  4711. {$ifdef ie4plus}
  4712. CONST
  4713. TVM_SETITEMHEIGHT = (TV_FIRST + 27);
  4714. // Macro 199
  4715. Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
  4716. CONST
  4717. TVM_GETITEMHEIGHT = (TV_FIRST + 28);
  4718. // Macro 200
  4719. Function TreeView_GetItemHeight( hwnd : hwnd):cint;
  4720. CONST
  4721. TVM_SETBKCOLOR = (TV_FIRST + 29);
  4722. // Macro 201
  4723. Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  4724. CONST
  4725. TVM_SETTEXTCOLOR = (TV_FIRST + 30);
  4726. // Macro 202
  4727. Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  4728. CONST
  4729. TVM_GETBKCOLOR = (TV_FIRST + 31);
  4730. // Macro 203
  4731. Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
  4732. CONST
  4733. TVM_GETTEXTCOLOR = (TV_FIRST + 32);
  4734. // Macro 204
  4735. Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
  4736. CONST
  4737. TVM_SETSCROLLTIME = (TV_FIRST + 33);
  4738. // Macro 205
  4739. Function TreeView_SetScrollTime( hwnd : hwnd; uTime :wparam ):UINT;
  4740. CONST
  4741. TVM_GETSCROLLTIME = (TV_FIRST + 34);
  4742. // Macro 206
  4743. Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
  4744. CONST
  4745. TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37);
  4746. // Macro 207
  4747. Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  4748. CONST
  4749. TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38);
  4750. // Macro 208
  4751. Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
  4752. {$ENDIF} // (_WIN32_IE >= 0x0400)
  4753. {$ifdef ie5plus}
  4754. // tvm_?etitemstate only uses mask, state and stateMask.
  4755. // so unicode or ansi is irrelevant.
  4756. // Macro 209
  4757. Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
  4758. // Macro 210
  4759. Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
  4760. CONST
  4761. TVM_GETITEMSTATE = (TV_FIRST + 39);
  4762. // Macro 211
  4763. Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
  4764. // Macro 212
  4765. Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
  4766. CONST
  4767. TVM_SETLINECOLOR = (TV_FIRST + 40);
  4768. // Macro 213
  4769. Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  4770. CONST
  4771. TVM_GETLINECOLOR = (TV_FIRST + 41);
  4772. // Macro 214
  4773. Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
  4774. {$ENDIF}
  4775. {$ifdef Win32XP}
  4776. CONST
  4777. TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42);
  4778. // Macro 215
  4779. Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id : UINT ):HTREEITEM;
  4780. CONST
  4781. TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43);
  4782. // Macro 216
  4783. Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
  4784. {$ENDIF}
  4785. TYPE
  4786. PFNTVCOMPARE =function (lparam1:LPARAM;lparam2:LPARAM;lParamSort:LParam): cint; STDCALL;
  4787. TTVCompare = PFNTVCOMPARE;
  4788. tagTVSORTCB = Record
  4789. hParent : HTREEITEM;
  4790. lpfnCompare : PFNTVCOMPARE;
  4791. lParam : LPARAM;
  4792. END;
  4793. TVSORTCB = tagTVSORTCB;
  4794. LPTVSORTCB = ^tagTVSORTCB;
  4795. TTVSORTCB = tagTVSORTCB;
  4796. PTVSORTCB = ^tagTVSORTCB;
  4797. {$ifdef ie3plus}
  4798. LPTV_SORTCB = LPTVSORTCB;
  4799. TV_SORTCB = TVSORTCB;
  4800. {$ELSE}
  4801. tagTVSORTCB = _TV_SORTCB;
  4802. TVSORTCB = TV_SORTCB;
  4803. LPTVSORTCB = LPTV_SORTCB;
  4804. {$ENDIF}
  4805. tagNMTREEVIEWA = Record
  4806. hdr : NMHDR;
  4807. action : UINT;
  4808. itemOld : TVITEMA;
  4809. itemNew : TVITEMA;
  4810. ptDrag : POINT;
  4811. END;
  4812. NMTREEVIEWA = tagNMTREEVIEWA;
  4813. LPNMTREEVIEWA = ^tagNMTREEVIEWA;
  4814. TNMTREEVIEWA = tagNMTREEVIEWA;
  4815. PNMTREEVIEWA = ^tagNMTREEVIEWA;
  4816. PNMTreeView = PNMTreeViewA;
  4817. TNMTreeView = TNMTreeViewA;
  4818. tagNMTREEVIEWW = Record
  4819. hdr : NMHDR;
  4820. action : UINT;
  4821. itemOld : TVITEMW;
  4822. itemNew : TVITEMW;
  4823. ptDrag : POINT;
  4824. END;
  4825. NMTREEVIEWW = tagNMTREEVIEWW;
  4826. LPNMTREEVIEWW = ^tagNMTREEVIEWW;
  4827. TNMTREEVIEWW = tagNMTREEVIEWW;
  4828. PNMTREEVIEWW = ^tagNMTREEVIEWW;
  4829. {$IFDEF UNICODE}
  4830. NMTREEVIEW = NMTREEVIEWW;
  4831. LPNMTREEVIEW = LPNMTREEVIEWW;
  4832. {$ELSE}
  4833. NMTREEVIEW = NMTREEVIEWA;
  4834. LPNMTREEVIEW = LPNMTREEVIEWA;
  4835. {$ENDIF}
  4836. {$ifdef ie3plus}
  4837. LPNM_TREEVIEWA = LPNMTREEVIEWA;
  4838. LPNM_TREEVIEWW = LPNMTREEVIEWW;
  4839. NM_TREEVIEWW = NMTREEVIEWW;
  4840. NM_TREEVIEWA = NMTREEVIEWA;
  4841. {$ELSE}
  4842. tagNMTREEVIEWA = _NM_TREEVIEWA;
  4843. tagNMTREEVIEWW = _NM_TREEVIEWW;
  4844. NMTREEVIEWA = NM_TREEVIEWA;
  4845. NMTREEVIEWW = NM_TREEVIEWW;
  4846. LPNMTREEVIEWA = LPNM_TREEVIEWA;
  4847. LPNMTREEVIEWW = LPNM_TREEVIEWW;
  4848. {$ENDIF}
  4849. LPNM_TREEVIEW = LPNMTREEVIEW;
  4850. NM_TREEVIEW = NMTREEVIEW;
  4851. CONST
  4852. TVN_SELCHANGINGA = (TVN_FIRST-1);
  4853. TVN_SELCHANGINGW = (TVN_FIRST-50);
  4854. TVN_SELCHANGEDA = (TVN_FIRST-2);
  4855. TVN_SELCHANGEDW = (TVN_FIRST-51);
  4856. TVC_UNKNOWN = $0000;
  4857. TVC_BYMOUSE = $0001;
  4858. TVC_BYKEYBOARD = $0002;
  4859. TVN_GETDISPINFOA = (TVN_FIRST-3);
  4860. TVN_GETDISPINFOW = (TVN_FIRST-52);
  4861. TVN_SETDISPINFOA = (TVN_FIRST-4);
  4862. TVN_SETDISPINFOW = (TVN_FIRST-53);
  4863. TVIF_DI_SETITEM = $1000;
  4864. Type
  4865. tagTVDISPINFOA = Record
  4866. hdr : NMHDR;
  4867. item : TVITEMA;
  4868. END;
  4869. NMTVDISPINFOA = tagTVDISPINFOA;
  4870. LPNMTVDISPINFOA = ^tagTVDISPINFOA;
  4871. TTVDISPINFOA = tagTVDISPINFOA;
  4872. PTVDISPINFOA = ^tagTVDISPINFOA;
  4873. TTVDispInfo = TTVDISPINFOA;
  4874. PTVDispInfo = PTVDISPINFOA;
  4875. tagTVDISPINFOW = Record
  4876. hdr : NMHDR;
  4877. item : TVITEMW;
  4878. END;
  4879. NMTVDISPINFOW = tagTVDISPINFOW;
  4880. LPNMTVDISPINFOW = ^tagTVDISPINFOW;
  4881. TTVDISPINFOW = tagTVDISPINFOW;
  4882. PTVDISPINFOW = ^tagTVDISPINFOW;
  4883. {$IFDEF UNICODE}
  4884. NMTVDISPINFO = NMTVDISPINFOW;
  4885. LPNMTVDISPINFO = LPNMTVDISPINFOW;
  4886. {$ELSE}
  4887. NMTVDISPINFO = NMTVDISPINFOA;
  4888. LPNMTVDISPINFO = LPNMTVDISPINFOA;
  4889. {$ENDIF}
  4890. {$ifdef ie3plus}
  4891. TV_DISPINFOA = NMTVDISPINFOA;
  4892. TV_DISPINFOW = NMTVDISPINFOW;
  4893. {$ELSE}
  4894. tagTVDISPINFOA = _TV_DISPINFOA;
  4895. NMTVDISPINFOA = TV_DISPINFOA;
  4896. tagTVDISPINFOW = _TV_DISPINFOW;
  4897. NMTVDISPINFOW = TV_DISPINFOW;
  4898. {$ENDIF}
  4899. TV_DISPINFO = NMTVDISPINFO;
  4900. CONST
  4901. TVM_SORTCHILDRENCB = (TV_FIRST + 21);
  4902. // Macro 191
  4903. Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline;
  4904. Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline;
  4905. CONST
  4906. TVN_ITEMEXPANDINGA = (TVN_FIRST-5);
  4907. TVN_ITEMEXPANDINGW = (TVN_FIRST-54);
  4908. TVN_ITEMEXPANDEDA = (TVN_FIRST-6);
  4909. TVN_ITEMEXPANDEDW = (TVN_FIRST-55);
  4910. TVN_BEGINDRAGA = (TVN_FIRST-7);
  4911. TVN_BEGINDRAGW = (TVN_FIRST-56);
  4912. TVN_BEGINRDRAGA = (TVN_FIRST-8);
  4913. TVN_BEGINRDRAGW = (TVN_FIRST-57);
  4914. TVN_DELETEITEMA = (TVN_FIRST-9);
  4915. TVN_DELETEITEMW = (TVN_FIRST-58);
  4916. TVN_BEGINLABELEDITA = (TVN_FIRST-10);
  4917. TVN_BEGINLABELEDITW = (TVN_FIRST-59);
  4918. TVN_ENDLABELEDITA = (TVN_FIRST-11);
  4919. TVN_ENDLABELEDITW = (TVN_FIRST-60);
  4920. TVN_KEYDOWN = (TVN_FIRST-12);
  4921. {$ifdef ie4plus}
  4922. TVN_GETINFOTIPA = (TVN_FIRST-13);
  4923. TVN_GETINFOTIPW = (TVN_FIRST-14);
  4924. TVN_SINGLEEXPAND = (TVN_FIRST-15);
  4925. TVNRET_DEFAULT = 0;
  4926. TVNRET_SKIPOLD = 1;
  4927. TVNRET_SKIPNEW = 2;
  4928. {$ENDIF} // 0x400
  4929. {$IFDEF _WIN32}
  4930. // #include <pshpack1.h>
  4931. {$ENDIF}
  4932. TYPE
  4933. tagTVKEYDOWN = Record
  4934. hdr : NMHDR;
  4935. wVKey : WORD;
  4936. flags : UINT;
  4937. END;
  4938. NMTVKEYDOWN = tagTVKEYDOWN;
  4939. LPNMTVKEYDOWN = ^tagTVKEYDOWN;
  4940. TTVKEYDOWN = tagTVKEYDOWN;
  4941. PTVKEYDOWN = ^tagTVKEYDOWN;
  4942. {$ifdef ie3plus}
  4943. TV_KEYDOWN = NMTVKEYDOWN;
  4944. {$ELSE}
  4945. tagTVKEYDOWN = _TV_KEYDOWN;
  4946. NMTVKEYDOWN = TV_KEYDOWN;
  4947. {$ENDIF}
  4948. {$IFDEF _WIN32}
  4949. // #include <poppack.h>
  4950. {$ENDIF}
  4951. Const
  4952. {$IFDEF UNICODE}
  4953. TVN_SELCHANGING = TVN_SELCHANGINGW;
  4954. TVN_SELCHANGED = TVN_SELCHANGEDW;
  4955. TVN_GETDISPINFO = TVN_GETDISPINFOW;
  4956. TVN_SETDISPINFO = TVN_SETDISPINFOW;
  4957. TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGW;
  4958. TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDW;
  4959. TVN_BEGINDRAG = TVN_BEGINDRAGW;
  4960. TVN_BEGINRDRAG = TVN_BEGINRDRAGW;
  4961. TVN_DELETEITEM = TVN_DELETEITEMW;
  4962. TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITW;
  4963. TVN_ENDLABELEDIT = TVN_ENDLABELEDITW;
  4964. {$ELSE}
  4965. TVN_SELCHANGING = TVN_SELCHANGINGA;
  4966. TVN_SELCHANGED = TVN_SELCHANGEDA;
  4967. TVN_GETDISPINFO = TVN_GETDISPINFOA;
  4968. TVN_SETDISPINFO = TVN_SETDISPINFOA;
  4969. TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA;
  4970. TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA;
  4971. TVN_BEGINDRAG = TVN_BEGINDRAGA;
  4972. TVN_BEGINRDRAG = TVN_BEGINRDRAGA;
  4973. TVN_DELETEITEM = TVN_DELETEITEMA;
  4974. TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA;
  4975. TVN_ENDLABELEDIT = TVN_ENDLABELEDITA;
  4976. {$ENDIF}
  4977. {$ifdef ie3plus}
  4978. // #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk)
  4979. Type
  4980. tagNMTVCUSTOMDRAW = Record
  4981. nmcd : NMCUSTOMDRAW;
  4982. clrText : COLORREF;
  4983. clrTextBk : COLORREF;
  4984. {$ifdef ie4plus}
  4985. iLevel : cint;
  4986. {$ENDIF}
  4987. END;
  4988. NMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW;
  4989. LPNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW;
  4990. TNMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW;
  4991. PNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW;
  4992. {$ENDIF}
  4993. {$ifdef ie4plus}
  4994. // for tooltips
  4995. tagNMTVGETINFOTIPA = Record
  4996. hdr : NMHDR;
  4997. pszText : LPSTR;
  4998. cchTextMax : cint;
  4999. hItem : HTREEITEM;
  5000. lParam : LPARAM;
  5001. END;
  5002. NMTVGETINFOTIPA = tagNMTVGETINFOTIPA;
  5003. LPNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA;
  5004. TNMTVGETINFOTIPA = tagNMTVGETINFOTIPA;
  5005. PNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA;
  5006. tagNMTVGETINFOTIPW = Record
  5007. hdr : NMHDR;
  5008. pszText : LPWSTR;
  5009. cchTextMax : cint;
  5010. hItem : HTREEITEM;
  5011. lParam : LPARAM;
  5012. END;
  5013. NMTVGETINFOTIPW = tagNMTVGETINFOTIPW;
  5014. LPNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW;
  5015. TNMTVGETINFOTIPW = tagNMTVGETINFOTIPW;
  5016. PNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW;
  5017. CONST
  5018. {$IFDEF UNICODE}
  5019. TVN_GETINFOTIP = TVN_GETINFOTIPW;
  5020. TYPE
  5021. NMTVGETINFOTIP = NMTVGETINFOTIPW;
  5022. LPNMTVGETINFOTIP = LPNMTVGETINFOTIPW;
  5023. {$ELSE}
  5024. TVN_GETINFOTIP = TVN_GETINFOTIPA;
  5025. TYPE
  5026. NMTVGETINFOTIP = NMTVGETINFOTIPA;
  5027. LPNMTVGETINFOTIP = LPNMTVGETINFOTIPA;
  5028. {$ENDIF}
  5029. // treeview's customdraw return meaning don't draw images. valid on CDRF_NOTIFYITEMPREPAINT
  5030. CONST
  5031. TVCDRF_NOIMAGES = $00010000;
  5032. {$ENDIF} // _WIN32_IE >= 0x0400
  5033. {$ENDIF} // NOTREEVIEW
  5034. {$ifdef ie3plus}
  5035. {$IFNDEF NOUSEREXCONTROLS}
  5036. //////////////////// ComboBoxEx ////////////////////////////////
  5037. WC_COMBOBOXEXW = {L}'ComboBoxEx32';
  5038. WC_COMBOBOXEXA = 'ComboBoxEx32';
  5039. {$IFDEF UNICODE}
  5040. WC_COMBOBOXEX = WC_COMBOBOXEXW;
  5041. {$ELSE}
  5042. WC_COMBOBOXEX = WC_COMBOBOXEXA;
  5043. {$ENDIF}
  5044. CONST
  5045. CBEIF_TEXT = $00000001;
  5046. CBEIF_IMAGE = $00000002;
  5047. CBEIF_SELECTEDIMAGE = $00000004;
  5048. CBEIF_OVERLAY = $00000008;
  5049. CBEIF_INDENT = $00000010;
  5050. CBEIF_LPARAM = $00000020;
  5051. CBEIF_DI_SETITEM = $10000000;
  5052. TYPE
  5053. tagCOMBOBOXEXITEMA = Record
  5054. mask : UINT;
  5055. iItem : INT_PTR;
  5056. pszText : LPSTR;
  5057. cchTextMax : cint;
  5058. iImage : cint;
  5059. iSelectedImage : cint;
  5060. iOverlay : cint;
  5061. iIndent : cint;
  5062. lParam : LPARAM;
  5063. END;
  5064. COMBOBOXEXITEMA = tagCOMBOBOXEXITEMA;
  5065. PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA;
  5066. TCOMBOBOXEXITEMA = tagCOMBOBOXEXITEMA;
  5067. // PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA;
  5068. PCCOMBOBOXEXITEMA = ^COMBOBOXEXITEMA;
  5069. tagCOMBOBOXEXITEMW = Record
  5070. mask : UINT;
  5071. iItem : INT_PTR;
  5072. pszText : LPWSTR;
  5073. cchTextMax : cint;
  5074. iImage : cint;
  5075. iSelectedImage : cint;
  5076. iOverlay : cint;
  5077. iIndent : cint;
  5078. lParam : LPARAM;
  5079. END;
  5080. COMBOBOXEXITEMW = tagCOMBOBOXEXITEMW;
  5081. PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW;
  5082. TCOMBOBOXEXITEMW = tagCOMBOBOXEXITEMW;
  5083. // PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW;
  5084. PCCOMBOBOXEXITEMW = ^COMBOBOXEXITEMW;
  5085. {$IFDEF UNICODE}
  5086. COMBOBOXEXITEM = COMBOBOXEXITEMW;
  5087. PCOMBOBOXEXITEM = PCOMBOBOXEXITEMW;
  5088. PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMW;
  5089. {$ELSE}
  5090. COMBOBOXEXITEM = COMBOBOXEXITEMA;
  5091. PCOMBOBOXEXITEM = PCOMBOBOXEXITEMA;
  5092. PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMA;
  5093. {$ENDIF}
  5094. TComboBoxExItem = COMBOBOXEXITEM;
  5095. CONST
  5096. CBEM_INSERTITEMA = (WM_USER + 1);
  5097. CBEM_SETIMAGELIST = (WM_USER + 2);
  5098. CBEM_GETIMAGELIST = (WM_USER + 3);
  5099. CBEM_GETITEMA = (WM_USER + 4);
  5100. CBEM_SETITEMA = (WM_USER + 5);
  5101. CBEM_DELETEITEM = CB_DELETESTRING;
  5102. CBEM_GETCOMBOCONTROL = (WM_USER + 6);
  5103. CBEM_GETEDITCONTROL = (WM_USER + 7);
  5104. {$ifdef ie4plus}
  5105. CBEM_SETEXSTYLE = (WM_USER + 8); // use SETEXTENDEDSTYLE instead
  5106. CBEM_SETEXTENDEDSTYLE = (WM_USER + 14); // lparam == new style, wParam (optional) == mask
  5107. CBEM_GETEXSTYLE = (WM_USER + 9); // use GETEXTENDEDSTYLE instead
  5108. CBEM_GETEXTENDEDSTYLE = (WM_USER + 9);
  5109. CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  5110. CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  5111. {$ELSE}
  5112. CBEM_SETEXSTYLE = (WM_USER + 8);
  5113. CBEM_GETEXSTYLE = (WM_USER + 9);
  5114. {$ENDIF}
  5115. CBEM_HASEDITCHANGED = (WM_USER + 10);
  5116. CBEM_INSERTITEMW = (WM_USER + 11);
  5117. CBEM_SETITEMW = (WM_USER + 12);
  5118. CBEM_GETITEMW = (WM_USER + 13);
  5119. {$IFDEF UNICODE}
  5120. CBEM_INSERTITEM = CBEM_INSERTITEMW;
  5121. CBEM_SETITEM = CBEM_SETITEMW;
  5122. CBEM_GETITEM = CBEM_GETITEMW;
  5123. {$ELSE}
  5124. CBEM_INSERTITEM = CBEM_INSERTITEMA;
  5125. CBEM_SETITEM = CBEM_SETITEMA;
  5126. CBEM_GETITEM = CBEM_GETITEMA;
  5127. {$ENDIF}
  5128. {$ifdef win32xp}
  5129. CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
  5130. {$ENDIF}
  5131. CBES_EX_NOEDITIMAGE = $00000001;
  5132. CBES_EX_NOEDITIMAGEINDENT = $00000002;
  5133. CBES_EX_PATHWORDBREAKPROC = $00000004;
  5134. {$ifdef ie4plus}
  5135. CBES_EX_NOSIZELIMIT = $00000008;
  5136. CBES_EX_CASESENSITIVE = $00000010;
  5137. TYPE
  5138. DummyStruct9 = Record
  5139. hdr : NMHDR;
  5140. ceItem : COMBOBOXEXITEMA;
  5141. END;
  5142. NMCOMBOBOXEXA = DummyStruct9;
  5143. PNMCOMBOBOXEXA = ^DummyStruct9;
  5144. TDummyStruct9 = DummyStruct9;
  5145. PDummyStruct9 = ^DummyStruct9;
  5146. DummyStruct10 = Record
  5147. hdr : NMHDR;
  5148. ceItem : COMBOBOXEXITEMW;
  5149. END;
  5150. NMCOMBOBOXEXW = DummyStruct10;
  5151. PNMCOMBOBOXEXW = ^DummyStruct10;
  5152. TDummyStruct10 = DummyStruct10;
  5153. PDummyStruct10 = ^DummyStruct10;
  5154. {$ELSE}
  5155. DummyStruct11 = Record
  5156. hdr : NMHDR;
  5157. ceItem : COMBOBOXEXITEM;
  5158. END;
  5159. NMCOMBOBOXEX = DummyStruct11;
  5160. PNMCOMBOBOXEX = ^DummyStruct11;
  5161. TDummyStruct11 = DummyStruct11;
  5162. PDummyStruct11 = ^DummyStruct11;
  5163. CONST
  5164. CBEN_GETDISPINFO = (CBEN_FIRST - 0);
  5165. {$ENDIF} // _WIN32_IE >= 0x0400
  5166. CONST
  5167. {$ifdef ie4plus}
  5168. CBEN_GETDISPINFOA = (CBEN_FIRST - 0);
  5169. {$ENDIF}
  5170. CBEN_INSERTITEM = (CBEN_FIRST - 1);
  5171. CBEN_DELETEITEM = (CBEN_FIRST - 2);
  5172. CBEN_BEGINEDIT = (CBEN_FIRST - 4);
  5173. CBEN_ENDEDITA = (CBEN_FIRST - 5);
  5174. CBEN_ENDEDITW = (CBEN_FIRST - 6);
  5175. {$ifdef ie4plus}
  5176. CBEN_GETDISPINFOW = (CBEN_FIRST - 7);
  5177. {$ENDIF}
  5178. {$ifdef ie4plus}
  5179. CBEN_DRAGBEGINA = (CBEN_FIRST - 8);
  5180. CBEN_DRAGBEGINW = (CBEN_FIRST - 9);
  5181. {$IFDEF UNICODE}
  5182. CBEN_DRAGBEGIN = CBEN_DRAGBEGINW;
  5183. {$ELSE}
  5184. CBEN_DRAGBEGIN = CBEN_DRAGBEGINA;
  5185. {$ENDIF}
  5186. {$ENDIF} //(_WIN32_IE >= 0x0400)
  5187. TYPE
  5188. {$IFDEF UNICODE}
  5189. NMCOMBOBOXEX = NMCOMBOBOXEXW;
  5190. PNMCOMBOBOXEX = PNMCOMBOBOXEXW;
  5191. CONST
  5192. CBEN_GETDISPINFO = CBEN_GETDISPINFOW;
  5193. {$ELSE}
  5194. NMCOMBOBOXEX = NMCOMBOBOXEXA;
  5195. PNMCOMBOBOXEX = PNMCOMBOBOXEXA;
  5196. CONST
  5197. CBEN_GETDISPINFO = CBEN_GETDISPINFOA;
  5198. {$ENDIF}
  5199. // lParam specifies why the endedit is happening
  5200. {$IFDEF UNICODE}
  5201. CBEN_ENDEDIT = CBEN_ENDEDITW;
  5202. {$ELSE}
  5203. CBEN_ENDEDIT = CBEN_ENDEDITA;
  5204. {$ENDIF}
  5205. CONST
  5206. CBENF_KILLFOCUS = 1;
  5207. CBENF_RETURN = 2;
  5208. CBENF_ESCAPE = 3;
  5209. CBENF_DROPDOWN = 4;
  5210. CBEMAXSTRLEN = 260;
  5211. {$ifdef ie4plus}
  5212. // CBEN_DRAGBEGIN sends this information ...
  5213. TYPE
  5214. DummyStruct12 = Record
  5215. hdr : NMHDR;
  5216. iItemid : cint;
  5217. szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
  5218. END;
  5219. NMCBEDRAGBEGINW = DummyStruct12;
  5220. LPNMCBEDRAGBEGINW = ^DummyStruct12;
  5221. PNMCBEDRAGBEGINW = ^DummyStruct12;
  5222. TDummyStruct12 = DummyStruct12;
  5223. PDummyStruct12 = ^DummyStruct12;
  5224. DummyStruct13 = Record
  5225. hdr : NMHDR;
  5226. iItemid : cint;
  5227. szText : Array[0..CBEMAXSTRLEN-1] OF char;
  5228. END;
  5229. NMCBEDRAGBEGINA = DummyStruct13;
  5230. LPNMCBEDRAGBEGINA = ^DummyStruct13;
  5231. PNMCBEDRAGBEGINA = ^DummyStruct13;
  5232. TDummyStruct13 = DummyStruct13;
  5233. PDummyStruct13 = ^DummyStruct13;
  5234. {$IFDEF UNICODE}
  5235. NMCBEDRAGBEGIN = NMCBEDRAGBEGINW;
  5236. LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINW;
  5237. PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINW;
  5238. {$ELSE}
  5239. NMCBEDRAGBEGIN = NMCBEDRAGBEGINA;
  5240. LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINA;
  5241. PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINA;
  5242. {$ENDIF}
  5243. {$ENDIF} // _WIN32_IE >= 0x0400
  5244. // CBEN_ENDEDIT sends this information...
  5245. // fChanged if the user actually did anything
  5246. // iNewSelection gives what would be the new selection unless the notify is failed
  5247. // iNewSelection may be CB_ERR if there's no match
  5248. DummyStruct14 = Record
  5249. hdr : NMHDR;
  5250. fChanged : BOOL;
  5251. iNewSelection : cint;
  5252. szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR;
  5253. iWhy : cint;
  5254. END;
  5255. NMCBEENDEDITW = DummyStruct14;
  5256. LPNMCBEENDEDITW = ^DummyStruct14;
  5257. PNMCBEENDEDITW = ^DummyStruct14;
  5258. TDummyStruct14 = DummyStruct14;
  5259. PDummyStruct14 = ^DummyStruct14;
  5260. DummyStruct15 = Record
  5261. hdr : NMHDR;
  5262. fChanged : BOOL;
  5263. iNewSelection : cint;
  5264. szText : Array[0..CBEMAXSTRLEN-1] OF char;
  5265. iWhy : cint;
  5266. END;
  5267. NMCBEENDEDITA = DummyStruct15;
  5268. LPNMCBEENDEDITA = ^DummyStruct15;
  5269. PNMCBEENDEDITA = ^DummyStruct15;
  5270. TDummyStruct15 = DummyStruct15;
  5271. PDummyStruct15 = ^DummyStruct15;
  5272. {$IFDEF UNICODE}
  5273. NMCBEENDEDIT = NMCBEENDEDITW;
  5274. LPNMCBEENDEDIT = LPNMCBEENDEDITW;
  5275. PNMCBEENDEDIT = PNMCBEENDEDITW;
  5276. {$ELSE}
  5277. NMCBEENDEDIT = NMCBEENDEDITA;
  5278. LPNMCBEENDEDIT = LPNMCBEENDEDITA;
  5279. PNMCBEENDEDIT = PNMCBEENDEDITA;
  5280. {$ENDIF}
  5281. {$ENDIF}
  5282. {$ENDIF} // _WIN32_IE >= 0x0300
  5283. //====== TAB CONTROL ==========================================================
  5284. {$IFNDEF NOTABCONTROL}
  5285. {$IFDEF _WIN32}
  5286. CONST
  5287. WC_TABCONTROLA = 'SysTabControl32';
  5288. WC_TABCONTROLW = {L}'SysTabControl32';
  5289. {$IFDEF UNICODE}
  5290. TYPE
  5291. WC_TABCONTROL = WC_TABCONTROLW;
  5292. {$ELSE}
  5293. WC_TABCONTROL = WC_TABCONTROLA;
  5294. {$ENDIF}
  5295. {$ELSE}
  5296. CONST
  5297. WC_TABCONTROL = 'SysTabControl';
  5298. {$ENDIF}
  5299. // begin_r_commctrl
  5300. {$ifdef ie3plus}
  5301. TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab
  5302. TCS_BOTTOM = $0002;
  5303. TCS_RIGHT = $0002;
  5304. TCS_MULTISELECT = $0004; // allow multi-select in button mode
  5305. {$ENDIF}
  5306. {$ifdef ie4plus}
  5307. TCS_FLATBUTTONS = $0008;
  5308. {$ENDIF}
  5309. TCS_FORCEICONLEFT = $0010;
  5310. TCS_FORCELABELLEFT = $0020;
  5311. {$ifdef ie3plus}
  5312. TCS_HOTTRACK = $0040;
  5313. TCS_VERTICAL = $0080;
  5314. {$ENDIF}
  5315. TCS_TABS = $0000;
  5316. TCS_BUTTONS = $0100;
  5317. TCS_SINGLELINE = $0000;
  5318. TCS_MULTILINE = $0200;
  5319. TCS_RIGHTJUSTIFY = $0000;
  5320. TCS_FIXEDWIDTH = $0400;
  5321. TCS_RAGGEDRIGHT = $0800;
  5322. TCS_FOCUSONBUTTONDOWN = $1000;
  5323. TCS_OWNERDRAWFIXED = $2000;
  5324. TCS_TOOLTIPS = $4000;
  5325. TCS_FOCUSNEVER = $8000;
  5326. // end_r_commctrl
  5327. {$ifdef ie4plus}
  5328. // EX styles for use with TCM_SETEXTENDEDSTYLE
  5329. TCS_EX_FLATSEPARATORS = $00000001;
  5330. TCS_EX_REGISTERDROP = $00000002;
  5331. {$ENDIF}
  5332. TCM_GETIMAGELIST = (TCM_FIRST + 2);
  5333. // Macro 217
  5334. Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
  5335. CONST
  5336. TCM_SETIMAGELIST = (TCM_FIRST + 3);
  5337. // Macro 218
  5338. Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
  5339. CONST
  5340. TCM_GETITEMCOUNT = (TCM_FIRST + 4);
  5341. // Macro 219
  5342. Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
  5343. CONST
  5344. TCIF_TEXT = $0001;
  5345. TCIF_IMAGE = $0002;
  5346. TCIF_RTLREADING = $0004;
  5347. TCIF_PARAM = $0008;
  5348. {$ifdef ie3plus}
  5349. TCIF_STATE = $0010;
  5350. TCIS_BUTTONPRESSED = $0001;
  5351. {$ENDIF}
  5352. {$ifdef ie4plus}
  5353. TCIS_HIGHLIGHTED = $0002;
  5354. {$ENDIF}
  5355. TYPE
  5356. tagTCITEMHEADERA = Record
  5357. mask : UINT;
  5358. lpReserved1 : UINT;
  5359. lpReserved2 : UINT;
  5360. pszText : LPSTR;
  5361. cchTextMax : cint;
  5362. iImage : cint;
  5363. END;
  5364. TCITEMHEADERA = tagTCITEMHEADERA;
  5365. LPTCITEMHEADERA = ^tagTCITEMHEADERA;
  5366. TTCITEMHEADERA = tagTCITEMHEADERA;
  5367. PTCITEMHEADERA = ^tagTCITEMHEADERA;
  5368. tagTCITEMHEADERW = Record
  5369. mask : UINT;
  5370. lpReserved1 : UINT;
  5371. lpReserved2 : UINT;
  5372. pszText : LPWSTR;
  5373. cchTextMax : cint;
  5374. iImage : cint;
  5375. END;
  5376. TCITEMHEADERW = tagTCITEMHEADERW;
  5377. LPTCITEMHEADERW = ^tagTCITEMHEADERW;
  5378. TTCITEMHEADERW = tagTCITEMHEADERW;
  5379. PTCITEMHEADERW = ^tagTCITEMHEADERW;
  5380. {$IFDEF UNICODE}
  5381. TCITEMHEADER = TCITEMHEADERW;
  5382. LPTCITEMHEADER = LPTCITEMHEADERW;
  5383. {$ELSE}
  5384. TCITEMHEADER = TCITEMHEADERA;
  5385. LPTCITEMHEADER = LPTCITEMHEADERA;
  5386. {$ENDIF}
  5387. {$ifdef ie3plus}
  5388. TC_ITEMHEADERA = TCITEMHEADERA;
  5389. TC_ITEMHEADERW = TCITEMHEADERW;
  5390. {$ELSE}
  5391. tagTCITEMHEADERA = _TC_ITEMHEADERA;
  5392. TCITEMHEADERA = TC_ITEMHEADERA;
  5393. tagTCITEMHEADERW = _TC_ITEMHEADERW;
  5394. TCITEMHEADERW = TC_ITEMHEADERW;
  5395. {$ENDIF}
  5396. TC_ITEMHEADER = TCITEMHEADER;
  5397. tagTCITEMA = Record
  5398. mask : UINT;
  5399. {$ifdef ie3plus}
  5400. dwState : DWORD;
  5401. dwStateMask : DWORD;
  5402. {$ELSE}
  5403. lpReserved1 : UINT;
  5404. lpReserved2 : UINT;
  5405. {$ENDIF}
  5406. pszText : LPSTR;
  5407. cchTextMax : cint;
  5408. iImage : cint;
  5409. lParam : LPARAM;
  5410. END;
  5411. TCITEMA = tagTCITEMA;
  5412. LPTCITEMA = ^tagTCITEMA;
  5413. TTCITEMA = tagTCITEMA;
  5414. PTCITEMA = ^tagTCITEMA;
  5415. tagTCITEMW = Record
  5416. mask : UINT;
  5417. {$ifdef ie3plus}
  5418. dwState : DWORD;
  5419. dwStateMask : DWORD;
  5420. {$ELSE}
  5421. lpReserved1 : UINT;
  5422. lpReserved2 : UINT;
  5423. {$ENDIF}
  5424. pszText : LPWSTR;
  5425. cchTextMax : cint;
  5426. iImage : cint;
  5427. lParam : LPARAM;
  5428. END;
  5429. TCITEMW = tagTCITEMW;
  5430. LPTCITEMW = ^tagTCITEMW;
  5431. TTCITEMW = tagTCITEMW;
  5432. PTCITEMW = ^tagTCITEMW;
  5433. {$IFDEF UNICODE}
  5434. TCITEM = TCITEMW;
  5435. LPTCITEM = LPTCITEMW;
  5436. {$ELSE}
  5437. TCITEM = TCITEMA;
  5438. LPTCITEM = LPTCITEMA;
  5439. {$ENDIF}
  5440. {$ifdef ie3plus}
  5441. TC_ITEMA = TCITEMA;
  5442. TC_ITEMW = TCITEMW;
  5443. {$ELSE}
  5444. tagTCITEMA = _TC_ITEMA;
  5445. TCITEMA = TC_ITEMA;
  5446. tagTCITEMW = _TC_ITEMW;
  5447. TCITEMW = TC_ITEMW;
  5448. {$ENDIF}
  5449. TC_ITEM = TCITEM;
  5450. CONST
  5451. TCM_GETITEMA = (TCM_FIRST + 5);
  5452. TCM_GETITEMW = (TCM_FIRST + 60);
  5453. {$IFDEF UNICODE}
  5454. TYPE
  5455. TCM_GETITEM = TCM_GETITEMW;
  5456. {$ELSE}
  5457. TCM_GETITEM = TCM_GETITEMA;
  5458. {$ENDIF}
  5459. // Macro 220
  5460. Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
  5461. CONST
  5462. TCM_SETITEMA = (TCM_FIRST + 6);
  5463. TCM_SETITEMW = (TCM_FIRST + 61);
  5464. {$IFDEF UNICODE}
  5465. TYPE
  5466. TCM_SETITEM = TCM_SETITEMW;
  5467. {$ELSE}
  5468. TCM_SETITEM = TCM_SETITEMA;
  5469. {$ENDIF}
  5470. // Macro 221
  5471. Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
  5472. CONST
  5473. TCM_INSERTITEMA = (TCM_FIRST + 7);
  5474. TCM_INSERTITEMW = (TCM_FIRST + 62);
  5475. {$IFDEF UNICODE}
  5476. TCM_INSERTITEM = TCM_INSERTITEMW;
  5477. {$ELSE}
  5478. TCM_INSERTITEM = TCM_INSERTITEMA;
  5479. {$ENDIF}
  5480. // Macro 222
  5481. Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;CONST pitem : TC_ITEM ):cint;
  5482. CONST
  5483. TCM_DELETEITEM = (TCM_FIRST + 8);
  5484. // Macro 223
  5485. Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
  5486. CONST
  5487. TCM_DELETEALLITEMS = (TCM_FIRST + 9);
  5488. // Macro 224
  5489. Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
  5490. CONST
  5491. TCM_GETITEMRECT = (TCM_FIRST + 10);
  5492. // Macro 225
  5493. Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL;
  5494. CONST
  5495. TCM_GETCURSEL = (TCM_FIRST + 11);
  5496. // Macro 226
  5497. Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
  5498. CONST
  5499. TCM_SETCURSEL = (TCM_FIRST + 12);
  5500. // Macro 227
  5501. Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
  5502. CONST
  5503. TCHT_NOWHERE = $0001;
  5504. TCHT_ONITEMICON = $0002;
  5505. TCHT_ONITEMLABEL = $0004;
  5506. TCHT_ONITEM = (TCHT_ONITEMICON OR TCHT_ONITEMLABEL);
  5507. TYPE
  5508. tagTCHITTESTINFO = Record
  5509. pt : POINT;
  5510. flags : UINT;
  5511. END;
  5512. TCHITTESTINFO = tagTCHITTESTINFO;
  5513. LPTCHITTESTINFO = ^tagTCHITTESTINFO;
  5514. TTCHITTESTINFO = tagTCHITTESTINFO;
  5515. PTCHITTESTINFO = ^tagTCHITTESTINFO;
  5516. {$ifdef ie3plus}
  5517. LPTC_HITTESTINFO = LPTCHITTESTINFO;
  5518. TC_HITTESTINFO = TCHITTESTINFO;
  5519. {$ELSE}
  5520. tagTCHITTESTINFO = _TC_HITTESTINFO;
  5521. TCHITTESTINFO = TC_HITTESTINFO;
  5522. LPTCHITTESTINFO = LPTC_HITTESTINFO;
  5523. {$ENDIF}
  5524. CONST
  5525. TCM_HITTEST = (TCM_FIRST + 13);
  5526. // Macro 228
  5527. Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;inline;
  5528. Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline;
  5529. CONST
  5530. TCM_SETITEMEXTRA = (TCM_FIRST + 14);
  5531. // Macro 229
  5532. Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
  5533. CONST
  5534. TCM_ADJUSTRECT = (TCM_FIRST + 40);
  5535. // Macro 230
  5536. Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint;
  5537. CONST
  5538. TCM_SETITEMSIZE = (TCM_FIRST + 41);
  5539. // Macro 231
  5540. Function TabCtrl_SetItemSize( hwnd : hwnd; x :lparam ; y : lparam ):DWORD;
  5541. CONST
  5542. TCM_REMOVEIMAGE = (TCM_FIRST + 42);
  5543. // Macro 232
  5544. Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : wparam );
  5545. CONST
  5546. TCM_SETPADDING = (TCM_FIRST + 43);
  5547. // Macro 233
  5548. Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : lparam ; cy : lparam );
  5549. CONST
  5550. TCM_GETROWCOUNT = (TCM_FIRST + 44);
  5551. // Macro 234
  5552. Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
  5553. CONST
  5554. TCM_GETTOOLTIPS = (TCM_FIRST + 45);
  5555. // Macro 235
  5556. Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
  5557. CONST
  5558. TCM_SETTOOLTIPS = (TCM_FIRST + 46);
  5559. // Macro 236
  5560. Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
  5561. CONST
  5562. TCM_GETCURFOCUS = (TCM_FIRST + 47);
  5563. // Macro 237
  5564. Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
  5565. CONST
  5566. TCM_SETCURFOCUS = (TCM_FIRST + 48);
  5567. // Macro 238
  5568. Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LParam );
  5569. {$ifdef ie3plus}
  5570. CONST
  5571. TCM_SETMINTABWIDTH = (TCM_FIRST + 49);
  5572. // Macro 239
  5573. Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WParam ):cint;
  5574. CONST
  5575. TCM_DESELECTALL = (TCM_FIRST + 50);
  5576. // Macro 240
  5577. Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM );
  5578. {$ENDIF}
  5579. {$ifdef ie4plus}
  5580. CONST
  5581. TCM_HIGHLIGHTITEM = (TCM_FIRST + 51);
  5582. // Macro 241
  5583. Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool):BOOL;
  5584. CONST
  5585. TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52); // optional wParam == mask
  5586. // Macro 242
  5587. Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw :LPARAM ):DWORD;
  5588. CONST
  5589. TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53);
  5590. // Macro 243
  5591. Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
  5592. CONST
  5593. TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  5594. // Macro 244
  5595. Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  5596. CONST
  5597. TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  5598. // Macro 245
  5599. Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
  5600. {$ENDIF} // _WIN32_IE >= 0x0400
  5601. CONST
  5602. TCN_KEYDOWN = (TCN_FIRST - 0);
  5603. {$IFDEF _WIN32}
  5604. // #include <pshpack1.h>
  5605. {$ENDIF}
  5606. TYPE
  5607. tagTCKEYDOWN = Record
  5608. hdr : NMHDR;
  5609. wVKey : WORD;
  5610. flags : UINT;
  5611. END;
  5612. NMTCKEYDOWN = tagTCKEYDOWN;
  5613. TTCKEYDOWN = tagTCKEYDOWN;
  5614. PTCKEYDOWN = ^tagTCKEYDOWN;
  5615. {$ifdef ie3plus}
  5616. TC_KEYDOWN = NMTCKEYDOWN;
  5617. {$ELSE}
  5618. tagTCKEYDOWN = _TC_KEYDOWN;
  5619. NMTCKEYDOWN = TC_KEYDOWN;
  5620. {$ENDIF}
  5621. {$IFDEF _WIN32}
  5622. // #include <poppack.h>
  5623. {$ENDIF}
  5624. CONST
  5625. TCN_SELCHANGE = (TCN_FIRST - 1);
  5626. TCN_SELCHANGING = (TCN_FIRST - 2);
  5627. {$ifdef ie4plus}
  5628. TCN_GETOBJECT = (TCN_FIRST - 3);
  5629. {$ENDIF} // _WIN32_IE >= 0x0400
  5630. {$ifdef ie5plus}
  5631. TCN_FOCUSCHANGE = (TCN_FIRST - 4);
  5632. {$ENDIF} // _WIN32_IE >= 0x0500
  5633. {$ENDIF} // NOTABCONTROL
  5634. //====== ANIMATE CONTROL ======================================================
  5635. {$IFNDEF NOANIMATE}
  5636. {$IFDEF _WIN32}
  5637. ANIMATE_CLASSW = {L}'SysAnimate32';
  5638. ANIMATE_CLASSA = 'SysAnimate32';
  5639. {$IFDEF UNICODE}
  5640. ANIMATE_CLASS = ANIMATE_CLASSW;
  5641. {$ELSE}
  5642. ANIMATE_CLASS = ANIMATE_CLASSA;
  5643. {$ENDIF}
  5644. // begin_r_commctrl
  5645. CONST
  5646. ACS_CENTER = $0001;
  5647. ACS_TRANSPARENT = $0002;
  5648. ACS_AUTOPLAY = $0004;
  5649. {$ifdef ie3plus}
  5650. ACS_TIMER = $0008; // don't use threads... use timers
  5651. {$ENDIF}
  5652. // end_r_commctrl
  5653. ACM_OPENA = (WM_USER+100);
  5654. ACM_OPENW = (WM_USER+103);
  5655. {$IFDEF UNICODE}
  5656. ACM_OPEN = ACM_OPENW;
  5657. {$ELSE}
  5658. ACM_OPEN = ACM_OPENA;
  5659. {$ENDIF}
  5660. CONST
  5661. ACM_PLAY = (WM_USER+101);
  5662. ACM_STOP = (WM_USER+102);
  5663. ACN_START = 1;
  5664. ACN_STOP = 2;
  5665. // Macro 246
  5666. Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND;
  5667. // Macro 247
  5668. // #define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
  5669. // Macro 248
  5670. // #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
  5671. // Macro 249
  5672. // #define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
  5673. // Macro 250
  5674. // #define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
  5675. // Macro 251
  5676. // #define Animate_Close(hwnd) Animate_Open(hwnd, NULL)
  5677. // Macro 252
  5678. // #define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1)
  5679. {$ENDIF}
  5680. {$ENDIF} // NOANIMATE
  5681. {$ifdef ie3plus}
  5682. //====== MONTHCAL CONTROL ======================================================
  5683. {$IFNDEF NOMONTHCAL}
  5684. {$IFDEF _WIN32}
  5685. CONST
  5686. MONTHCAL_CLASSW = {L}'SysMonthCal32';
  5687. MONTHCAL_CLASSA = 'SysMonthCal32';
  5688. {$IFDEF UNICODE}
  5689. MONTHCAL_CLASS = MONTHCAL_CLASSW;
  5690. {$ELSE}
  5691. MONTHCAL_CLASS = MONTHCAL_CLASSA;
  5692. {$ENDIF}
  5693. TYPE
  5694. // bit-packed array of "bold" info for a month
  5695. // if a bit is on, that day is drawn bold
  5696. MONTHDAYSTATE = DWORD;
  5697. LPMONTHDAYSTATE = ^MONTHDAYSTATE;
  5698. TMonthDayState = MONTHDAYSTATE;
  5699. PMonthDayState = LPMONTHDAYSTATE;
  5700. CONST
  5701. MCM_FIRST = $1000;
  5702. // BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst)
  5703. // returns FALSE if MCS_MULTISELECT
  5704. // returns TRUE and sets *pst to the currently selected date otherwise
  5705. CONST
  5706. MCM_GETCURSEL = (MCM_FIRST + 1);
  5707. // Macro 253
  5708. // #define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
  5709. function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  5710. // BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst)
  5711. // returns FALSE if MCS_MULTISELECT
  5712. // returns TURE and sets the currently selected date to *pst otherwise
  5713. CONST
  5714. MCM_SETCURSEL = (MCM_FIRST + 2);
  5715. // Macro 254
  5716. // #define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
  5717. // DWORD MonthCal_GetMaxSelCount(HWND hmc)
  5718. // returns the maximum number of selectable days allowed
  5719. function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;inline;
  5720. function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :TSYSTEMTIME):Bool;inline;
  5721. CONST
  5722. MCM_GETMAXSELCOUNT = (MCM_FIRST + 3);
  5723. // Macro 255
  5724. // #define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L)
  5725. // BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n)
  5726. // sets the max number days that can be selected iff MCS_MULTISELECT
  5727. function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
  5728. CONST
  5729. MCM_SETMAXSELCOUNT = (MCM_FIRST + 4);
  5730. // Macro 256
  5731. // #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L)
  5732. function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
  5733. // BOOL MonthCal_GetSelRange(HWND hmc, LPSYSTEMTIME rgst)
  5734. // sets rgst[0] to the first day of the selection range
  5735. // sets rgst[1] to the last day of the selection range
  5736. CONST
  5737. MCM_GETSELRANGE = (MCM_FIRST + 5);
  5738. // Macro 257
  5739. // #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
  5740. // BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst)
  5741. // selects the range of days from rgst[0] to rgst[1]
  5742. function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  5743. CONST
  5744. MCM_SETSELRANGE = (MCM_FIRST + 6);
  5745. // Macro 258
  5746. // #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
  5747. // DWORD MonthCal_GetMonthRange(HWND hmc, DWORD gmr, LPSYSTEMTIME rgst)
  5748. // if rgst specified, sets rgst[0] to the starting date and
  5749. // and rgst[1] to the ending date of the the selectable (non-grayed)
  5750. // days if GMR_VISIBLE or all the displayed days (including grayed)
  5751. // if GMR_DAYSTATE.
  5752. // returns the number of months spanned by the above range.
  5753. function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  5754. CONST
  5755. MCM_GETMONTHRANGE = (MCM_FIRST + 7);
  5756. // Macro 259
  5757. // #define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
  5758. // BOOL MonthCal_SetDayState(HWND hmc, int cbds, DAYSTATE *rgds)
  5759. // cbds is the count of DAYSTATE items in rgds and it must be equal
  5760. // to the value returned from MonthCal_GetMonthRange(hmc, GMR_DAYSTATE, NULL)
  5761. // This sets the DAYSTATE bits for each month (grayed and non-grayed
  5762. // days) displayed in the calendar. The first bit in a month's DAYSTATE
  5763. // corresponts to bolding day 1, the second bit affects day 2, etc.
  5764. function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
  5765. CONST
  5766. MCM_SETDAYSTATE = (MCM_FIRST + 8);
  5767. // Macro 260
  5768. // #define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
  5769. // BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc)
  5770. // sets *prc the minimal size needed to display one month
  5771. // To display two months, undo the AdjustWindowRect calculation already done to
  5772. // this rect, double the width, and redo the AdjustWindowRect calculation --
  5773. // the monthcal control will display two calendars in this window (if you also
  5774. // double the vertical size, you will get 4 calendars)
  5775. // NOTE: if you want to gurantee that the "Today" string is not clipped,
  5776. // get the MCM_GETMAXTODAYWIDTH and use the max of that width and this width
  5777. function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
  5778. CONST
  5779. MCM_GETMINREQRECT = (MCM_FIRST + 9);
  5780. // Macro 261
  5781. // #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
  5782. // set colors to draw control with -- see MCSC_ bits below
  5783. function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline;
  5784. function MonthCal_GetMinReqRect(hwndMC:HWND; var lpr :TRect):Bool;inline;
  5785. CONST
  5786. MCM_SETCOLOR = (MCM_FIRST + 10);
  5787. // Macro 262
  5788. // #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
  5789. function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline;
  5790. CONST
  5791. MCM_GETCOLOR = (MCM_FIRST + 11);
  5792. // Macro 263
  5793. // #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
  5794. function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
  5795. CONST
  5796. MCSC_BACKGROUND = 0; // the background color (between months)
  5797. MCSC_TEXT = 1; // the dates
  5798. MCSC_TITLEBK = 2; // background of the title
  5799. MCSC_TITLETEXT = 3;
  5800. MCSC_MONTHBK = 4; // background within the month cal
  5801. MCSC_TRAILINGTEXT = 5; // the text color of header & trailing days
  5802. // set what day is "today" send NULL to revert back to real date
  5803. MCM_SETTODAY = (MCM_FIRST + 12);
  5804. // Macro 264
  5805. // #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
  5806. // get what day is "today"
  5807. // returns BOOL for success/failure
  5808. function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
  5809. CONST
  5810. MCM_GETTODAY = (MCM_FIRST + 13);
  5811. // Macro 265
  5812. // #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
  5813. // determine what pinfo->pt is over
  5814. function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
  5815. CONST
  5816. MCM_HITTEST = (MCM_FIRST + 14);
  5817. TYPE
  5818. DummyStruct16 = Record
  5819. cbSize : UINT;
  5820. pt : POINT;
  5821. uHit : UINT; // out param
  5822. st : SYSTEMTIME;
  5823. END;
  5824. MCHITTESTINFO = DummyStruct16;
  5825. PMCHITTESTINFO = ^DummyStruct16;
  5826. TDummyStruct16 = DummyStruct16;
  5827. PDummyStruct16 = ^DummyStruct16;
  5828. // Macro 266
  5829. FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
  5830. CONST
  5831. MCHT_TITLE = $00010000;
  5832. MCHT_CALENDAR = $00020000;
  5833. MCHT_TODAYLINK = $00030000;
  5834. MCHT_NEXT = $01000000; // these indicate that hitting
  5835. MCHT_PREV = $02000000; // here will go to the next/prev month
  5836. MCHT_NOWHERE = $00000000;
  5837. MCHT_TITLEBK = (MCHT_TITLE);
  5838. MCHT_TITLEMONTH = (MCHT_TITLE OR $0001);
  5839. MCHT_TITLEYEAR = (MCHT_TITLE OR $0002);
  5840. MCHT_TITLEBTNNEXT = (MCHT_TITLE OR MCHT_NEXT OR $0003);
  5841. MCHT_TITLEBTNPREV = (MCHT_TITLE OR MCHT_PREV OR $0003);
  5842. MCHT_CALENDARBK = (MCHT_CALENDAR);
  5843. MCHT_CALENDARDATE = (MCHT_CALENDAR OR $0001);
  5844. MCHT_CALENDARDATENEXT = (MCHT_CALENDARDATE OR MCHT_NEXT);
  5845. MCHT_CALENDARDATEPREV = (MCHT_CALENDARDATE OR MCHT_PREV);
  5846. MCHT_CALENDARDAY = (MCHT_CALENDAR OR $0002);
  5847. MCHT_CALENDARWEEKNUM = (MCHT_CALENDAR OR $0003);
  5848. // set first day of week to iDay:
  5849. // 0 for Monday, 1 for Tuesday, ..., 6 for Sunday
  5850. // -1 for means use locale info
  5851. MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15);
  5852. // Macro 267
  5853. function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
  5854. // DWORD result... low word has the day. high word is bool if this is app set
  5855. // or not (FALSE == using locale info)
  5856. CONST
  5857. MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16);
  5858. // Macro 268
  5859. Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
  5860. // DWORD MonthCal_GetRange(HWND hmc, LPSYSTEMTIME rgst)
  5861. // modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
  5862. // modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
  5863. // returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
  5864. CONST
  5865. MCM_GETRANGE = (MCM_FIRST + 17);
  5866. // Macro 269
  5867. Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
  5868. // BOOL MonthCal_SetRange(HWND hmc, DWORD gdtr, LPSYSTEMTIME rgst)
  5869. // if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
  5870. // if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
  5871. // returns TRUE on success, FALSE on error (such as invalid parameters)
  5872. CONST
  5873. MCM_SETRANGE = (MCM_FIRST + 18);
  5874. // Macro 270
  5875. Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
  5876. // int MonthCal_GetMonthDelta(HWND hmc)
  5877. // returns the number of months one click on a next/prev button moves by
  5878. CONST
  5879. MCM_GETMONTHDELTA = (MCM_FIRST + 19);
  5880. // Macro 271
  5881. Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
  5882. // int MonthCal_SetMonthDelta(HWND hmc, int n)
  5883. // sets the month delta to n. n==0 reverts to moving by a page of months
  5884. // returns the previous value of n.
  5885. CONST
  5886. MCM_SETMONTHDELTA = (MCM_FIRST + 20);
  5887. // Macro 272
  5888. Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
  5889. // DWORD MonthCal_GetMaxTodayWidth(HWND hmc, LPSIZE psz)
  5890. // sets *psz to the maximum width/height of the "Today" string displayed
  5891. // at the bottom of the calendar (as long as MCS_NOTODAY is not specified)
  5892. CONST
  5893. MCM_GETMAXTODAYWIDTH = (MCM_FIRST + 21);
  5894. // Macro 273
  5895. Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
  5896. {$ifdef ie4plus}
  5897. CONST
  5898. MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  5899. // Macro 274
  5900. Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
  5901. CONST
  5902. MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  5903. // Macro 275
  5904. Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
  5905. {$ENDIF}
  5906. // MCN_SELCHANGE is sent whenever the currently displayed date changes
  5907. // via month change, year change, keyboard navigation, prev/next button
  5908. //
  5909. TYPE
  5910. tagNMSELCHANGE = Record
  5911. nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY
  5912. stSelStart : SYSTEMTIME;
  5913. stSelEnd : SYSTEMTIME;
  5914. END;
  5915. NMSELCHANGE = tagNMSELCHANGE;
  5916. LPNMSELCHANGE = ^tagNMSELCHANGE;
  5917. TNMSELCHANGE = tagNMSELCHANGE;
  5918. PNMSELCHANGE = ^tagNMSELCHANGE;
  5919. CONST
  5920. MCN_SELCHANGE = (MCN_FIRST + 1);
  5921. // MCN_GETDAYSTATE is sent for MCS_DAYSTATE controls whenever new daystate
  5922. // information is needed (month or year scroll) to draw bolding information.
  5923. // The app must fill in cDayState months worth of information starting from
  5924. // stStart date. The app may fill in the array at prgDayState or change
  5925. // prgDayState to point to a different array out of which the information
  5926. // will be copied. (similar to tooltips)
  5927. //
  5928. TYPE
  5929. tagNMDAYSTATE = Record
  5930. nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY
  5931. stStart : SYSTEMTIME;
  5932. cDayState : cint;
  5933. prgDayState : LPMONTHDAYSTATE; // points to cDayState MONTHDAYSTATEs
  5934. END;
  5935. NMDAYSTATE = tagNMDAYSTATE;
  5936. LPNMDAYSTATE = ^tagNMDAYSTATE;
  5937. TNMDAYSTATE = tagNMDAYSTATE;
  5938. PNMDAYSTATE = ^tagNMDAYSTATE;
  5939. CONST
  5940. MCN_GETDAYSTATE = (MCN_FIRST + 3);
  5941. // MCN_SELECT is sent whenever a selection has occured (via mouse or keyboard)
  5942. //
  5943. TYPE
  5944. NMSELECT = NMSELCHANGE;
  5945. LPNMSELECT = ^NMSELCHANGE;
  5946. CONST
  5947. MCN_SELECT = (MCN_FIRST + 4);
  5948. // begin_r_commctrl
  5949. MCS_DAYSTATE = $0001;
  5950. MCS_MULTISELECT = $0002;
  5951. MCS_WEEKNUMBERS = $0004;
  5952. {$ifdef ie4plus}
  5953. MCS_NOTODAYCIRCLE = $0008;
  5954. MCS_NOTODAY = $0010;
  5955. {$ELSE}
  5956. MCS_NOTODAY = $0008;
  5957. {$ENDIF}
  5958. // end_r_commctrl
  5959. GMR_VISIBLE = 0; // visible portion of display
  5960. GMR_DAYSTATE = 1; // above plus the grayed out parts of
  5961. // partially displayed months
  5962. {$ENDIF} // _WIN32
  5963. {$ENDIF} // NOMONTHCAL
  5964. //====== DATETIMEPICK CONTROL ==================================================
  5965. {$IFNDEF NODATETIMEPICK}
  5966. {$IFDEF _WIN32}
  5967. DATETIMEPICK_CLASSW = {L}'SysDateTimePick32';
  5968. DATETIMEPICK_CLASSA = 'SysDateTimePick32';
  5969. {$IFDEF UNICODE}
  5970. TYPE
  5971. DATETIMEPICK_CLASS = DATETIMEPICK_CLASSW;
  5972. {$ELSE}
  5973. DATETIMEPICK_CLASS = DATETIMEPICK_CLASSA;
  5974. {$ENDIF}
  5975. CONST
  5976. DTM_FIRST = $1000;
  5977. // DWORD DateTimePick_GetSystemtime(HWND hdp, LPSYSTEMTIME pst)
  5978. // returns GDT_NONE if "none" is selected (DTS_SHOWNONE only)
  5979. // returns GDT_VALID and modifies *pst to be the currently selected value
  5980. DTM_GETSYSTEMTIME = (DTM_FIRST + 1);
  5981. // Macro 276
  5982. // #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
  5983. // BOOL DateTime_SetSystemtime(HWND hdp, DWORD gd, LPSYSTEMTIME pst)
  5984. // if gd==GDT_NONE, sets datetimepick to None (DTS_SHOWNONE only)
  5985. // if gd==GDT_VALID, sets datetimepick to *pst
  5986. // returns TRUE on success, FALSE on error (such as bad params)
  5987. CONST
  5988. DTM_SETSYSTEMTIME = (DTM_FIRST + 2);
  5989. // Macro 277
  5990. // #define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
  5991. function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline;
  5992. // DWORD DateTime_GetRange(HWND hdp, LPSYSTEMTIME rgst)
  5993. // modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
  5994. // modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
  5995. // returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
  5996. CONST
  5997. DTM_GETRANGE = (DTM_FIRST + 3);
  5998. // Macro 278
  5999. // #define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
  6000. // BOOL DateTime_SetRange(HWND hdp, DWORD gdtr, LPSYSTEMTIME rgst)
  6001. // if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
  6002. // if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
  6003. // returns TRUE on success, FALSE on error (such as invalid parameters)
  6004. CONST
  6005. DTM_SETRANGE = (DTM_FIRST + 4);
  6006. // Macro 279
  6007. // #define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
  6008. function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline;
  6009. // BOOL DateTime_SetFormat(HWND hdp, LPCTSTR sz)
  6010. // sets the display formatting string to sz (see GetDateFormat and GetTimeFormat for valid formatting chars)
  6011. // NOTE: 'X' is a valid formatting character which indicates that the application
  6012. // will determine how to display information. Such apps must support DTN_WMKEYDOWN,
  6013. // DTN_FORMAT, and DTN_FORMATQUERY.
  6014. CONST
  6015. DTM_SETFORMATA = (DTM_FIRST + 5);
  6016. DTM_SETFORMATW = (DTM_FIRST + 50);
  6017. {$IFDEF UNICODE}
  6018. TYPE
  6019. DTM_SETFORMAT = DTM_SETFORMATW;
  6020. {$ELSE}
  6021. DTM_SETFORMAT = DTM_SETFORMATA;
  6022. {$ENDIF}
  6023. // Macro 280
  6024. // #define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
  6025. CONST
  6026. DTM_SETMCCOLOR = (DTM_FIRST + 6);
  6027. // Macro 281
  6028. // #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
  6029. function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline;
  6030. CONST
  6031. DTM_GETMCCOLOR = (DTM_FIRST + 7);
  6032. // Macro 282
  6033. // #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
  6034. // HWND DateTime_GetMonthCal(HWND hdp)
  6035. // returns the HWND of the MonthCal popup window. Only valid
  6036. // between DTN_DROPDOWN and DTN_CLOSEUP notifications.
  6037. CONST
  6038. DTM_GETMONTHCAL = (DTM_FIRST + 8);
  6039. // Macro 283
  6040. // #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
  6041. function DateTime_GetMonthCal(hdp: HWND): HWND;inline;
  6042. {$ifdef ie4plus}
  6043. CONST
  6044. DTM_SETMCFONT = (DTM_FIRST + 9);
  6045. // Macro 284
  6046. // #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
  6047. CONST
  6048. DTM_GETMCFONT = (DTM_FIRST + 10);
  6049. // Macro 285
  6050. // #define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
  6051. {$ENDIF} // _WIN32_IE >= 0x0400
  6052. // begin_r_commctrl
  6053. CONST
  6054. DTS_UPDOWN = $0001; // use UPDOWN instead of MONTHCAL
  6055. DTS_SHOWNONE = $0002; // allow a NONE selection
  6056. DTS_SHORTDATEFORMAT = $0000; // use the short date format (app must forward WM_WININICHANGE messages)
  6057. DTS_LONGDATEFORMAT = $0004; // use the long date format (app must forward WM_WININICHANGE messages)
  6058. {$ifdef ie5plus}
  6059. DTS_SHORTDATECENTURYFORMAT = $000C; // short date format with century (app must forward WM_WININICHANGE messages)
  6060. {$ENDIF} // (_WIN32_IE >= 0x500)
  6061. DTS_TIMEFORMAT = $0009; // use the time format (app must forward WM_WININICHANGE messages)
  6062. DTS_APPCANPARSE = $0010; // allow user entered strings (app MUST respond to DTN_USERSTRING)
  6063. DTS_RIGHTALIGN = $0020; // right-align popup instead of left-align it
  6064. // end_r_commctrl
  6065. DTN_DATETIMECHANGE = (DTN_FIRST + 1); // the systemtime has changed
  6066. TYPE
  6067. tagNMDATETIMECHANGE = Record
  6068. nmhdr : NMHDR;
  6069. dwFlags : DWORD; // GDT_VALID or GDT_NONE
  6070. st : SYSTEMTIME; // valid iff dwFlags==GDT_VALID
  6071. END;
  6072. NMDATETIMECHANGE = tagNMDATETIMECHANGE;
  6073. LPNMDATETIMECHANGE = ^tagNMDATETIMECHANGE;
  6074. TNMDATETIMECHANGE = tagNMDATETIMECHANGE;
  6075. PNMDATETIMECHANGE = ^tagNMDATETIMECHANGE;
  6076. CONST
  6077. DTN_USERSTRINGA = (DTN_FIRST + 2); // the user has entered a string
  6078. DTN_USERSTRINGW = (DTN_FIRST + 15);
  6079. TYPE
  6080. tagNMDATETIMESTRINGA = Record
  6081. nmhdr : NMHDR;
  6082. pszUserString : LPCSTR; // string user entered
  6083. st : SYSTEMTIME; // app fills this in
  6084. dwFlags : DWORD; // GDT_VALID or GDT_NONE
  6085. END;
  6086. NMDATETIMESTRINGA = tagNMDATETIMESTRINGA;
  6087. LPNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA;
  6088. TNMDATETIMESTRINGA = tagNMDATETIMESTRINGA;
  6089. PNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA;
  6090. tagNMDATETIMESTRINGW = Record
  6091. nmhdr : NMHDR;
  6092. pszUserString : LPCWSTR; // string user entered
  6093. st : SYSTEMTIME; // app fills this in
  6094. dwFlags : DWORD; // GDT_VALID or GDT_NONE
  6095. END;
  6096. NMDATETIMESTRINGW = tagNMDATETIMESTRINGW;
  6097. LPNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW;
  6098. TNMDATETIMESTRINGW = tagNMDATETIMESTRINGW;
  6099. PNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW;
  6100. {$IFDEF UNICODE}
  6101. CONST
  6102. DTN_USERSTRING = DTN_USERSTRINGW;
  6103. TYPE
  6104. NMDATETIMESTRING = NMDATETIMESTRINGW;
  6105. LPNMDATETIMESTRING = LPNMDATETIMESTRINGW;
  6106. {$ELSE}
  6107. CONST
  6108. DTN_USERSTRING = DTN_USERSTRINGA;
  6109. TYPE
  6110. NMDATETIMESTRING = NMDATETIMESTRINGA;
  6111. LPNMDATETIMESTRING = LPNMDATETIMESTRINGA;
  6112. {$ENDIF}
  6113. TNMDateTimeString = NMDATETIMESTRING;
  6114. PNMDateTimeString = LPNMDATETIMESTRING;
  6115. CONST
  6116. DTN_WMKEYDOWNA = (DTN_FIRST + 3); // modify keydown on app format field (X)
  6117. DTN_WMKEYDOWNW = (DTN_FIRST + 16);
  6118. TYPE
  6119. tagNMDATETIMEWMKEYDOWNA = Record
  6120. nmhdr : NMHDR;
  6121. nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field
  6122. pszFormat : LPCSTR; // format substring
  6123. st : SYSTEMTIME; // current systemtime, app should modify based on key
  6124. END;
  6125. NMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
  6126. LPNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
  6127. TNMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA;
  6128. PNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA;
  6129. tagNMDATETIMEWMKEYDOWNW = Record
  6130. nmhdr : NMHDR;
  6131. nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field
  6132. pszFormat : LPCWSTR; // format substring
  6133. st : SYSTEMTIME; // current systemtime, app should modify based on key
  6134. END;
  6135. NMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
  6136. LPNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
  6137. TNMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW;
  6138. PNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW;
  6139. {$IFDEF UNICODE}
  6140. CONST
  6141. DTN_WMKEYDOWN = DTN_WMKEYDOWNW;
  6142. TYPE
  6143. NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNW;
  6144. LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNW;
  6145. {$ELSE}
  6146. CONST
  6147. DTN_WMKEYDOWN = DTN_WMKEYDOWNA;
  6148. TYPE
  6149. NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNA;
  6150. LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNA;
  6151. {$ENDIF}
  6152. CONST
  6153. DTN_FORMATA = (DTN_FIRST + 4); // query display for app format field (X)
  6154. DTN_FORMATW = (DTN_FIRST + 17);
  6155. TYPE
  6156. tagNMDATETIMEFORMATA = Record
  6157. nmhdr : NMHDR;
  6158. pszFormat : LPCSTR; // format substring
  6159. st : SYSTEMTIME; // current systemtime
  6160. pszDisplay : LPCSTR; // string to display
  6161. szDisplay : Array [0..63] OF CHAR; // buffer pszDisplay originally points at
  6162. END;
  6163. NMDATETIMEFORMATA = tagNMDATETIMEFORMATA;
  6164. LPNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA;
  6165. TNMDATETIMEFORMATA = tagNMDATETIMEFORMATA;
  6166. PNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA;
  6167. tagNMDATETIMEFORMATW = Record
  6168. nmhdr : NMHDR;
  6169. pszFormat : LPCWSTR; // format substring
  6170. st : SYSTEMTIME; // current systemtime
  6171. pszDisplay : LPCWSTR; // string to display
  6172. szDisplay : Array [0..63] OF WCHAR; // buffer pszDisplay originally points at
  6173. END;
  6174. NMDATETIMEFORMATW = tagNMDATETIMEFORMATW;
  6175. LPNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW;
  6176. TNMDATETIMEFORMATW = tagNMDATETIMEFORMATW;
  6177. PNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW;
  6178. {$IFDEF UNICODE}
  6179. CONST
  6180. DTN_FORMAT = DTN_FORMATW;
  6181. TYPE
  6182. NMDATETIMEFORMAT = NMDATETIMEFORMATW;
  6183. LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATW;
  6184. {$ELSE}
  6185. CONST
  6186. DTN_FORMAT = DTN_FORMATA;
  6187. TYPE
  6188. NMDATETIMEFORMAT = NMDATETIMEFORMATA;
  6189. LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATA;
  6190. {$ENDIF}
  6191. CONST
  6192. DTN_FORMATQUERYA = (DTN_FIRST + 5); // query formatting info for app format field (X)
  6193. DTN_FORMATQUERYW = (DTN_FIRST + 18);
  6194. TYPE
  6195. tagNMDATETIMEFORMATQUERYA = Record
  6196. nmhdr : NMHDR;
  6197. pszFormat : LPCSTR; // format substring
  6198. szMax : SIZE; // max bounding rectangle app will use for this format string
  6199. END;
  6200. NMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
  6201. LPNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
  6202. TNMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA;
  6203. PNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA;
  6204. tagNMDATETIMEFORMATQUERYW = Record
  6205. nmhdr : NMHDR;
  6206. pszFormat : LPCWSTR; // format substring
  6207. szMax : SIZE; // max bounding rectangle app will use for this format string
  6208. END;
  6209. NMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
  6210. LPNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
  6211. TNMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW;
  6212. PNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW;
  6213. {$IFDEF UNICODE}
  6214. CONST
  6215. DTN_FORMATQUERY = DTN_FORMATQUERYW;
  6216. TYPE
  6217. NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYW;
  6218. LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYW;
  6219. {$ELSE}
  6220. CONST
  6221. DTN_FORMATQUERY = DTN_FORMATQUERYA;
  6222. TYPE
  6223. NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYA;
  6224. LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYA;
  6225. {$ENDIF}
  6226. CONST
  6227. DTN_DROPDOWN = (DTN_FIRST + 6); // MonthCal has dropped down
  6228. DTN_CLOSEUP = (DTN_FIRST + 7); // MonthCal is popping up
  6229. GDTR_MIN = $0001;
  6230. GDTR_MAX = $0002;
  6231. GDT_ERROR = -1;
  6232. GDT_VALID = 0;
  6233. GDT_NONE = 1;
  6234. {$ENDIF} // _WIN32
  6235. {$ENDIF} // NODATETIMEPICK
  6236. {$ifdef ie4plus}
  6237. {$IFNDEF NOIPADDRESS}
  6238. ///////////////////////////////////////////////
  6239. /// IP Address edit control
  6240. // Messages sent to IPAddress controls
  6241. IPM_CLEARADDRESS = (WM_USER+100); // no parameters
  6242. IPM_SETADDRESS = (WM_USER+101); // lparam = TCP/IP address
  6243. IPM_GETADDRESS = (WM_USER+102); // lresult = # of non black fields. lparam = LPDWORD for TCP/IP address
  6244. IPM_SETRANGE = (WM_USER+103); // wparam = field, lparam = range
  6245. IPM_SETFOCUS = (WM_USER+104); // wparam = field
  6246. IPM_ISBLANK = (WM_USER+105); // no parameters
  6247. WC_IPADDRESSW = {L}'SysIPAddress32';
  6248. WC_IPADDRESSA = 'SysIPAddress32';
  6249. {$IFDEF UNICODE}
  6250. TYPE
  6251. WC_IPADDRESS = WC_IPADDRESSW;
  6252. {$ELSE}
  6253. WC_IPADDRESS = WC_IPADDRESSA;
  6254. {$ENDIF}
  6255. CONST
  6256. IPN_FIELDCHANGED = (IPN_FIRST - 0);
  6257. TYPE
  6258. tagNMIPADDRESS = Record
  6259. hdr : NMHDR;
  6260. iField : cint;
  6261. iValue : cint;
  6262. END;
  6263. NMIPADDRESS = tagNMIPADDRESS;
  6264. LPNMIPADDRESS = ^tagNMIPADDRESS;
  6265. TNMIPADDRESS = tagNMIPADDRESS;
  6266. PNMIPADDRESS = ^tagNMIPADDRESS;
  6267. // The following is a useful macro for passing the range values in the
  6268. // IPM_SETRANGE message.
  6269. // Macro 286
  6270. // #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
  6271. // And this is a useful macro for making the IP Address to be passed
  6272. // as a LPARAM.
  6273. // Macro 287
  6274. // #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
  6275. // Get individual number
  6276. // Macro 288
  6277. // #define FIRST_IPADDRESS(x) ((x>>24) & 0xff)
  6278. // Macro 289
  6279. // #define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
  6280. // Macro 290
  6281. // #define THIRD_IPADDRESS(x) ((x>>8) & 0xff)
  6282. // Macro 291
  6283. // #define FOURTH_IPADDRESS(x) (x & 0xff)
  6284. {$ENDIF} // NOIPADDRESS
  6285. //---------------------------------------------------------------------------------------
  6286. //---------------------------------------------------------------------------------------
  6287. /// ====================== Pager Control =============================
  6288. //---------------------------------------------------------------------------------------
  6289. //---------------------------------------------------------------------------------------
  6290. {$IFNDEF NOPAGESCROLLER}
  6291. //Pager Class Name
  6292. CONST
  6293. WC_PAGESCROLLERW = {L}'SysPager';
  6294. WC_PAGESCROLLERA = 'SysPager';
  6295. {$IFDEF UNICODE}
  6296. TYPE
  6297. WC_PAGESCROLLER = WC_PAGESCROLLERW;
  6298. {$ELSE}
  6299. WC_PAGESCROLLER = WC_PAGESCROLLERA;
  6300. {$ENDIF}
  6301. //---------------------------------------------------------------------------------------
  6302. // Pager Control Styles
  6303. //---------------------------------------------------------------------------------------
  6304. // begin_r_commctrl
  6305. CONST
  6306. PGS_VERT = $00000000;
  6307. PGS_HORZ = $00000001;
  6308. PGS_AUTOSCROLL = $00000002;
  6309. PGS_DRAGNDROP = $00000004;
  6310. // end_r_commctrl
  6311. //---------------------------------------------------------------------------------------
  6312. // Pager Button State
  6313. //---------------------------------------------------------------------------------------
  6314. //The scroll can be in one of the following control State
  6315. PGF_INVISIBLE = 0; // Scroll button is not visible
  6316. PGF_NORMAL = 1; // Scroll button is in normal state
  6317. PGF_GRAYED = 2; // Scroll button is in grayed state
  6318. PGF_DEPRESSED = 4; // Scroll button is in depressed state
  6319. PGF_HOT = 8; // Scroll button is in hot state
  6320. // The following identifiers specifies the button control
  6321. PGB_TOPORLEFT = 0;
  6322. PGB_BOTTOMORRIGHT = 1;
  6323. //---------------------------------------------------------------------------------------
  6324. // Pager Control Messages
  6325. //---------------------------------------------------------------------------------------
  6326. PGM_SETCHILD = (PGM_FIRST + 1); // lParam == hwnd
  6327. // Macro 292
  6328. Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
  6329. CONST
  6330. PGM_RECALCSIZE = (PGM_FIRST + 2);
  6331. // Macro 293
  6332. Procedure Pager_RecalcSize( hwnd : hwnd);
  6333. CONST
  6334. PGM_FORWARDMOUSE = (PGM_FIRST + 3);
  6335. // Macro 294
  6336. Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
  6337. CONST
  6338. PGM_SETBKCOLOR = (PGM_FIRST + 4);
  6339. // Macro 295
  6340. Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  6341. CONST
  6342. PGM_GETBKCOLOR = (PGM_FIRST + 5);
  6343. // Macro 296
  6344. Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
  6345. CONST
  6346. PGM_SETBORDER = (PGM_FIRST + 6);
  6347. // Macro 297
  6348. Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
  6349. CONST
  6350. PGM_GETBORDER = (PGM_FIRST + 7);
  6351. // Macro 298
  6352. Function Pager_GetBorder( hwnd : hwnd):cint;
  6353. CONST
  6354. PGM_SETPOS = (PGM_FIRST + 8);
  6355. // Macro 299
  6356. Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
  6357. CONST
  6358. PGM_GETPOS = (PGM_FIRST + 9);
  6359. // Macro 300
  6360. Function Pager_GetPos( hwnd : hwnd):cint;
  6361. CONST
  6362. PGM_SETBUTTONSIZE = (PGM_FIRST + 10);
  6363. // Macro 301
  6364. Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
  6365. CONST
  6366. PGM_GETBUTTONSIZE = (PGM_FIRST + 11);
  6367. // Macro 302
  6368. Function Pager_GetButtonSize( hwnd : hwnd):cint;
  6369. CONST
  6370. PGM_GETBUTTONSTATE = (PGM_FIRST + 12);
  6371. // Macro 303
  6372. Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
  6373. CONST
  6374. PGM_GETDROPTARGET = CCM_GETDROPTARGET;
  6375. // Macro 304
  6376. Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
  6377. //---------------------------------------------------------------------------------------
  6378. //Pager Control Notification Messages
  6379. //---------------------------------------------------------------------------------------
  6380. // PGN_SCROLL Notification Message
  6381. CONST
  6382. PGN_SCROLL = (PGN_FIRST-1);
  6383. PGF_SCROLLUP = 1;
  6384. PGF_SCROLLDOWN = 2;
  6385. PGF_SCROLLLEFT = 4;
  6386. PGF_SCROLLRIGHT = 8;
  6387. //Keys down
  6388. PGK_SHIFT = 1;
  6389. PGK_CONTROL = 2;
  6390. PGK_MENU = 4;
  6391. {$IFDEF _WIN32}
  6392. // #include <pshpack1.h>
  6393. {$ENDIF}
  6394. // This structure is sent along with PGN_SCROLL notifications
  6395. TYPE
  6396. DummyStruct17 = Record
  6397. hdr : NMHDR;
  6398. fwKeys : WORD; // Specifies which keys are down when this notification is send
  6399. rcParent : RECT; // Contains Parent Window Rect
  6400. iDir : cint; // Scrolling Direction
  6401. iXpos : cint; // Horizontal scroll position
  6402. iYpos : cint; // Vertical scroll position
  6403. iScroll : cint; // [in/out] Amount to scroll
  6404. END;
  6405. NMPGSCROLL = DummyStruct17;
  6406. LPNMPGSCROLL = ^DummyStruct17;
  6407. TNMPGScroll = NMPGSCROLL;
  6408. PNMPGScroll = LPNMPGSCROLL;
  6409. {$IFDEF _WIN32}
  6410. // #include <poppack.h>
  6411. {$ENDIF}
  6412. // PGN_CALCSIZE Notification Message
  6413. CONST
  6414. PGN_CALCSIZE = (PGN_FIRST-2);
  6415. PGF_CALCWIDTH = 1;
  6416. PGF_CALCHEIGHT = 2;
  6417. TYPE
  6418. DummyStruct18 = Record
  6419. hdr : NMHDR;
  6420. dwFlag : DWORD;
  6421. iWidth : cint;
  6422. iHeight : cint;
  6423. END;
  6424. NMPGCALCSIZE = DummyStruct18;
  6425. LPNMPGCALCSIZE = ^DummyStruct18;
  6426. TNMPGCalcSize = DummyStruct18;
  6427. PNMPGCalcSize = LPNMPGCALCSIZE;
  6428. // PGN_HOTITEMCHANGE Notification Message
  6429. CONST
  6430. PGN_HOTITEMCHANGE = (PGN_FIRST-3);
  6431. {
  6432. The PGN_HOTITEMCHANGE notification uses these notification
  6433. flags defined in TOOLBAR:
  6434. HICF_ENTERING = $00000010; // idOld is invalid
  6435. HICF_LEAVING = $00000020; // idNew is invalid
  6436. }
  6437. // Structure for PGN_HOTITEMCHANGE notification
  6438. //
  6439. TYPE
  6440. tagNMPGHOTITEM = Record
  6441. hdr : NMHDR;
  6442. idOld : cint;
  6443. idNew : cint;
  6444. dwFlags : DWORD; // HICF_*
  6445. END;
  6446. NMPGHOTITEM = tagNMPGHOTITEM;
  6447. LPNMPGHOTITEM = ^tagNMPGHOTITEM;
  6448. TNMPGHOTITEM = tagNMPGHOTITEM;
  6449. PNMPGHOTITEM = ^tagNMPGHOTITEM;
  6450. {$ENDIF} // NOPAGESCROLLER
  6451. ////====================== End Pager Control ==========================================
  6452. //
  6453. // === Native Font Control ===
  6454. //
  6455. {$IFNDEF NONATIVEFONTCTL}
  6456. //NativeFont Class Name
  6457. CONST
  6458. WC_NATIVEFONTCTLW = {L}'NativeFontCtl';
  6459. WC_NATIVEFONTCTLA = 'NativeFontCtl';
  6460. {$IFDEF UNICODE}
  6461. TYPE
  6462. WC_NATIVEFONTCTL = WC_NATIVEFONTCTLW;
  6463. {$ELSE}
  6464. WC_NATIVEFONTCTL = WC_NATIVEFONTCTLA;
  6465. {$ENDIF}
  6466. // begin_r_commctrl
  6467. // style definition
  6468. CONST
  6469. NFS_EDIT = $0001;
  6470. NFS_STATIC = $0002;
  6471. NFS_LISTCOMBO = $0004;
  6472. NFS_BUTTON = $0008;
  6473. NFS_ALL = $0010;
  6474. NFS_USEFONTASSOC = $0020;
  6475. // end_r_commctrl
  6476. {$ENDIF} // NONATIVEFONTCTL
  6477. // === End Native Font Control ===
  6478. /// ====================== Button Control =============================
  6479. {$IFNDEF NOBUTTON}
  6480. {$IFDEF _WIN32}
  6481. // Button Class Name
  6482. WC_BUTTONA = 'Button';
  6483. WC_BUTTONW = {L}'Button';
  6484. CONST
  6485. {$IFDEF UNICODE}
  6486. WC_BUTTON = WC_BUTTONW;
  6487. {$ELSE}
  6488. WC_BUTTON = WC_BUTTONA;
  6489. {$ENDIF}
  6490. {$ELSE}
  6491. WC_BUTTON = 'Button';
  6492. {$ENDIF}
  6493. {$ifdef win32xp}
  6494. BUTTON_IMAGELIST_ALIGN_LEFT = 0;
  6495. BUTTON_IMAGELIST_ALIGN_RIGHT = 1;
  6496. BUTTON_IMAGELIST_ALIGN_TOP = 2;
  6497. BUTTON_IMAGELIST_ALIGN_BOTTOM = 3;
  6498. BUTTON_IMAGELIST_ALIGN_CENTER = 4; // Doesn't draw text
  6499. TYPE
  6500. DummyStruct19 = Record
  6501. himl : HIMAGELIST; // Index: Normal, hot pushed, disabled. If count is less than 4, we use index 1
  6502. margin : RECT; // Margin around icon.
  6503. uAlign : UINT;
  6504. END;
  6505. BUTTON_IMAGELIST = DummyStruct19;
  6506. PBUTTON_IMAGELIST = ^DummyStruct19;
  6507. TDummyStruct19 = DummyStruct19;
  6508. PDummyStruct19 = ^DummyStruct19;
  6509. CONST
  6510. BCM_GETIDEALSIZE = (BCM_FIRST + $0001);
  6511. // Macro 305
  6512. Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
  6513. CONST
  6514. BCM_SETIMAGELIST = (BCM_FIRST + $0002);
  6515. // Macro 306
  6516. Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
  6517. CONST
  6518. BCM_GETIMAGELIST = (BCM_FIRST + $0003);
  6519. // Macro 307
  6520. Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
  6521. CONST
  6522. BCM_SETTEXTMARGIN = (BCM_FIRST + $0004);
  6523. // Macro 308
  6524. Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
  6525. CONST
  6526. BCM_GETTEXTMARGIN = (BCM_FIRST + $0005);
  6527. // Macro 309
  6528. Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
  6529. TYPE
  6530. tagNMBCHOTITEM = Record
  6531. hdr : NMHDR;
  6532. dwFlags : DWORD; // HICF_*
  6533. END;
  6534. NMBCHOTITEM = tagNMBCHOTITEM;
  6535. LPNMBCHOTITEM = ^tagNMBCHOTITEM;
  6536. TNMBCHOTITEM = tagNMBCHOTITEM;
  6537. PNMBCHOTITEM = ^tagNMBCHOTITEM;
  6538. CONST
  6539. BCN_HOTITEMCHANGE = (BCN_FIRST + $0001);
  6540. BST_HOT = $0200;
  6541. {$ENDIF}
  6542. {$ENDIF} // NOBUTTON
  6543. /// ===================== End Button Control =========================
  6544. /// ====================== Static Control =============================
  6545. {$IFNDEF NOSTATIC}
  6546. {$IFDEF _WIN32}
  6547. // Static Class Name
  6548. WC_STATICA = 'Static';
  6549. WC_STATICW = {L}'Static';
  6550. {$IFDEF UNICODE}
  6551. TYPE
  6552. WC_STATIC = WC_STATICW;
  6553. {$ELSE}
  6554. WC_STATIC = WC_STATICA;
  6555. {$ENDIF}
  6556. {$ELSE}
  6557. CONST
  6558. WC_STATIC = 'Static';
  6559. {$ENDIF}
  6560. {$ENDIF} // NOSTATIC
  6561. /// ===================== End Static Control =========================
  6562. /// ====================== Edit Control =============================
  6563. {$IFNDEF NOEDIT}
  6564. {$IFDEF _WIN32}
  6565. // Edit Class Name
  6566. WC_EDITA = 'Edit';
  6567. WC_EDITW = {L}'Edit';
  6568. {$IFDEF UNICODE}
  6569. TYPE
  6570. WC_EDIT = WC_EDITW;
  6571. {$ELSE}
  6572. WC_EDIT = WC_EDITA;
  6573. {$ENDIF}
  6574. {$ELSE}
  6575. CONST
  6576. WC_EDIT = 'Edit';
  6577. {$ENDIF}
  6578. {$ifdef win32xp}
  6579. EM_SETCUEBANNER = (ECM_FIRST + 1); // Set the cue banner with the lParm = LPCWSTR
  6580. // Macro 310
  6581. Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
  6582. CONST
  6583. EM_GETCUEBANNER = (ECM_FIRST + 2); // Set the cue banner with the lParm = LPCWSTR
  6584. // Macro 311
  6585. Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
  6586. TYPE
  6587. _tagEDITBALLOONTIP = Record
  6588. cbStruct : DWORD;
  6589. pszTitle : LPCWSTR;
  6590. pszText : LPCWSTR;
  6591. ttiIcon : cint; // From TTI_*
  6592. END;
  6593. EDITBALLOONTIP = _tagEDITBALLOONTIP;
  6594. PEDITBALLOONTIP = ^_tagEDITBALLOONTIP;
  6595. TEDITBALLOONTIP = _tagEDITBALLOONTIP;
  6596. CONST
  6597. EM_SHOWBALLOONTIP = (ECM_FIRST + 3); // Show a balloon tip associated to the edit control
  6598. // Macro 312
  6599. Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
  6600. CONST
  6601. EM_HIDEBALLOONTIP = (ECM_FIRST + 4); // Hide any balloon tip associated with the edit control
  6602. // Macro 313
  6603. Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
  6604. {$ENDIF}
  6605. {$ENDIF} // NOEDIT
  6606. /// ===================== End Edit Control =========================
  6607. /// ====================== Listbox Control =============================
  6608. {$IFNDEF NOLISTBOX}
  6609. {$IFDEF _WIN32}
  6610. // Listbox Class Name
  6611. CONST
  6612. WC_LISTBOXA = 'ListBox';
  6613. WC_LISTBOXW = {L}'ListBox';
  6614. {$IFDEF UNICODE}
  6615. TYPE
  6616. WC_LISTBOX = WC_LISTBOXW;
  6617. {$ELSE}
  6618. WC_LISTBOX = WC_LISTBOXA;
  6619. {$ENDIF}
  6620. {$ELSE}
  6621. CONST
  6622. WC_LISTBOX = 'ListBox';
  6623. {$ENDIF}
  6624. {$ENDIF} // NOLISTBOX
  6625. /// ===================== End Listbox Control =========================
  6626. /// ====================== Combobox Control =============================
  6627. {$IFNDEF NOCOMBOBOX}
  6628. {$IFDEF _WIN32}
  6629. // Combobox Class Name
  6630. WC_COMBOBOXA = 'ComboBox';
  6631. WC_COMBOBOXW = {L}'ComboBox';
  6632. {$IFDEF UNICODE}
  6633. TYPE
  6634. WC_COMBOBOX = WC_COMBOBOXW;
  6635. {$ELSE}
  6636. WC_COMBOBOX = WC_COMBOBOXA;
  6637. {$ENDIF}
  6638. {$ELSE}
  6639. CONST
  6640. WC_COMBOBOX = 'ComboBox';
  6641. {$ENDIF}
  6642. {$ENDIF} // NOCOMBOBOX
  6643. {$ifdef win32xp}
  6644. // custom combobox control messages
  6645. CB_SETMINVISIBLE = (CBM_FIRST + 1);
  6646. CB_GETMINVISIBLE = (CBM_FIRST + 2);
  6647. // Macro 314
  6648. Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
  6649. // Macro 315
  6650. Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
  6651. {$ENDIF}
  6652. /// ===================== End Combobox Control =========================
  6653. /// ====================== Scrollbar Control ============================
  6654. {$IFNDEF NOSCROLLBAR}
  6655. {$IFDEF _WIN32}
  6656. // Scrollbar Class Name
  6657. CONST
  6658. WC_SCROLLBARA = 'ScrollBar';
  6659. WC_SCROLLBARW = {L}'ScrollBar';
  6660. {$IFDEF UNICODE}
  6661. TYPE
  6662. WC_SCROLLBAR = WC_SCROLLBARW;
  6663. {$ELSE}
  6664. WC_SCROLLBAR = WC_SCROLLBARA;
  6665. {$ENDIF}
  6666. {$ELSE}
  6667. CONST
  6668. WC_SCROLLBAR = 'ScrollBar';
  6669. {$ENDIF}
  6670. {$ENDIF} // NOSCROLLBAR
  6671. /// ===================== End Scrollbar Control =========================
  6672. //====== SysLink control =========================================
  6673. {$IFDEF _WIN32}
  6674. {$ifdef win32xp}
  6675. INVALID_LINK_INDEX = (-1);
  6676. MAX_LINKID_TEXT = 48;
  6677. L_MAX_URL_LENGTH = (2048 + 32 + length('://'));
  6678. WC_LINK = {L}'SysLink';
  6679. LWS_TRANSPARENT = $0001;
  6680. LWS_IGNORERETURN = $0002;
  6681. LIF_ITEMINDEX = $00000001;
  6682. LIF_STATE = $00000002;
  6683. LIF_ITEMID = $00000004;
  6684. LIF_URL = $00000008;
  6685. LIS_FOCUSED = $00000001;
  6686. LIS_ENABLED = $00000002;
  6687. LIS_VISITED = $00000004;
  6688. TYPE
  6689. tagLITEM = Record
  6690. mask : UINT;
  6691. iLink : cint;
  6692. state : UINT;
  6693. stateMask : UINT;
  6694. szID : Array [0..MAX_LINKID_TEXT-1] OF WCHAR;
  6695. szUrl : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR;
  6696. END;
  6697. LITEM = tagLITEM;
  6698. PLITEM = ^tagLITEM;
  6699. TLITEM = tagLITEM;
  6700. // PLITEM = ^tagLITEM;
  6701. tagLHITTESTINFO = Record
  6702. pt : POINT;
  6703. item : LITEM;
  6704. END;
  6705. LHITTESTINFO = tagLHITTESTINFO;
  6706. PLHITTESTINFO = ^tagLHITTESTINFO;
  6707. TLHITTESTINFO = tagLHITTESTINFO;
  6708. // PLHITTESTINFO = ^tagLHITTESTINFO;
  6709. tagNMLINK = Record
  6710. hdr : NMHDR;
  6711. item : LITEM;
  6712. END;
  6713. NMLINK = tagNMLINK;
  6714. PNMLINK = ^tagNMLINK;
  6715. TNMLINK = tagNMLINK;
  6716. // PNMLINK = ^tagNMLINK;
  6717. // SysLink notifications
  6718. // NM_CLICK // wParam: control ID, lParam: PNMLINK, ret: ignored.
  6719. // LinkWindow messages
  6720. CONST
  6721. LM_HITTEST = (WM_USER+$300); // wParam: n/a, lparam: PLHITTESTINFO, ret: BOOL
  6722. LM_GETIDEALHEIGHT = (WM_USER+$301); // wParam: n/a, lparam: n/a, ret: cy
  6723. LM_SETITEM = (WM_USER+$302); // wParam: n/a, lparam: LITEM*, ret: BOOL
  6724. LM_GETITEM = (WM_USER+$303); // wParam: n/a, lparam: LITEM*, ret: BOOL
  6725. {$ENDIF}
  6726. {$ENDIF} // _WIN32
  6727. //====== End SysLink control =========================================
  6728. //
  6729. // === MUI APIs ===
  6730. //
  6731. {$IFNDEF NOMUI}
  6732. procedure InitMUILanguage(uiLang:LANGID); stdcall; external commctrldll name 'InitMUILanguage';
  6733. function GetMUILanguage:LANGID; stdcall; external commctrldll name 'GetMUILanguage';
  6734. {$ENDIF} // NOMUI
  6735. {$ENDIF} // _WIN32_IE >= 0x0400
  6736. {$IFDEF _WIN32}
  6737. //====== TrackMouseEvent =====================================================
  6738. {$IFNDEF NOTRACKMOUSEEVENT}
  6739. //
  6740. // If the messages for TrackMouseEvent have not been defined then define them
  6741. // now.
  6742. //
  6743. {$IFNDEF WM_MOUSEHOVER}
  6744. CONST
  6745. WM_MOUSEHOVER = $02A1;
  6746. WM_MOUSELEAVE = $02A3;
  6747. {$ENDIF}
  6748. //
  6749. // If the TRACKMOUSEEVENT structure and associated flags havent been declared
  6750. // then declare them now.
  6751. //
  6752. {$IFNDEF TME_HOVER}
  6753. TME_HOVER = $00000001;
  6754. TME_LEAVE = $00000002;
  6755. {$ifdef win32xp}
  6756. TME_NONCLIENT = $00000010;
  6757. {$ENDIF} { WINVER >= 0x0500 }
  6758. TME_QUERY = $40000000;
  6759. TME_CANCEL = $80000000;
  6760. HOVER_DEFAULT = $FFFFFFFF;
  6761. TYPE
  6762. tagTRACKMOUSEEVENT = Record
  6763. cbSize : DWORD;
  6764. dwFlags : DWORD;
  6765. hwndTrack : HWND;
  6766. dwHoverTime : DWORD;
  6767. END;
  6768. TRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
  6769. LPTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT;
  6770. TTRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
  6771. PTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT;
  6772. {$ENDIF} // !TME_HOVER
  6773. //
  6774. // Declare _TrackMouseEvent. This API tries to use the window manager's
  6775. // implementation of TrackMouseEvent if it is present, otherwise it emulates.
  6776. //
  6777. function _TrackMouseEvent(lpEventTrack:LPTRACKMOUSEEVENT):BOOL; stdcall; external commctrldll name '_TrackMouseEvent';
  6778. {$ENDIF} // !NOTRACKMOUSEEVENT
  6779. {$ifdef ie4plus}
  6780. //====== Flat Scrollbar APIs=========================================
  6781. {$IFNDEF NOFLATSBAPIS}
  6782. CONST
  6783. WSB_PROP_CYVSCROLL = LONG($00000001);
  6784. WSB_PROP_CXHSCROLL = LONG($00000002);
  6785. WSB_PROP_CYHSCROLL = LONG($00000004);
  6786. WSB_PROP_CXVSCROLL = LONG($00000008);
  6787. WSB_PROP_CXHTHUMB = LONG($00000010);
  6788. WSB_PROP_CYVTHUMB = LONG($00000020);
  6789. WSB_PROP_VBKGCOLOR = LONG($00000040);
  6790. WSB_PROP_HBKGCOLOR = LONG($00000080);
  6791. WSB_PROP_VSTYLE = LONG($00000100);
  6792. WSB_PROP_HSTYLE = LONG($00000200);
  6793. WSB_PROP_WINSTYLE = LONG($00000400);
  6794. WSB_PROP_PALETTE = LONG($00000800);
  6795. WSB_PROP_MASK = LONG($00000FFF);
  6796. FSB_FLAT_MODE = 2;
  6797. FSB_ENCARTA_MODE = 1;
  6798. FSB_REGULAR_MODE = 0;
  6799. function FlatSB_EnableScrollBar(hwnd:HWND;code : cint;p3 : UINT):BOOL; stdcall; external commctrldll name 'FlatSB_EnableScrollBar';
  6800. function FlatSB_ShowScrollBar(hwnd:HWND;code : cint;p3 : BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_ShowScrollBar';
  6801. function FlatSB_GetScrollRange(hwnd:HWND;code : cint;p3 : LPINT;p4 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange';
  6802. function FlatSB_GetScrollRange(hwnd:HWND;code : cint;var p3,p4 : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange';
  6803. function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;ScrollInfo : LPSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo';
  6804. function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;var ScrollInfo : TSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo';
  6805. function FlatSB_GetScrollPos(hwnd:HWND;code : cint):cint; stdcall; external commctrldll name 'FlatSB_GetScrollPos';
  6806. function FlatSB_GetScrollProp(hwnd:HWND):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp';
  6807. {$IFDEF _WIN64}
  6808. function FlatSB_GetScrollPropPtr(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollPropPtr';
  6809. {$ELSE}
  6810. function FlatSB_GetScrollPropPtr(hwnd:HWND;code : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp';
  6811. {$ENDIF}
  6812. function FlatSB_SetScrollPos(hWnd:HWND;nBar,nPos:cint;bRedraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollPos';
  6813. function FlatSB_SetScrollInfo(hWnd:HWND;BarFlag:cint;const ScrollInfo:TScrollInfo;Redraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollInfo';
  6814. function FlatSB_SetScrollRange(hWnd: HWND; nBar,nMinPos,nMaxPos: cint; bRedraw: BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollRange';
  6815. function FlatSB_SetScrollProp(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_SetScrollProp';
  6816. function InitializeFlatSB(hWnd:HWND):BOOL; stdcall; external commctrldll name 'InitializeFlatSB';
  6817. function UninitializeFlatSB(hWnd:HWND):HRESULT; stdcall; external commctrldll name 'UninitializeFlatSB';
  6818. {$ENDIF} // NOFLATSBAPIS
  6819. {$ENDIF} // _WIN32_IE >= 0x0400
  6820. {$ENDIF} { _WIN32 }
  6821. {$ENDIF} // _WIN32_IE >= 0x0300
  6822. {$ifdef win32xp}
  6823. //
  6824. // subclassing stuff
  6825. //
  6826. TYPE
  6827. subclassproc=function (hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : UINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
  6828. {
  6829. (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, = LRESULT
  6830. LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
  6831. typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam,
  6832. LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
  6833. hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : CUINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall;
  6834. }
  6835. function SetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;dwRefData:DWORD_PTR):BOOL; stdcall; external commctrldll name 'SetWindowSubclass';
  6836. function GetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;pdwRefData:PDWORD_PTR):BOOL; stdcall; external commctrldll name 'GetWindowSubclass';
  6837. function RemoveWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR):BOOL; stdcall; external commctrldll name 'RemoveWindowSubclass';
  6838. function DefSubclassProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall; external commctrldll name 'DefSubclassProc';
  6839. {$ENDIF}
  6840. {$ifdef win32xp}
  6841. function DrawShadowText(hdc:HDC;pszText:LPCWSTR;cch:UINT;prc:PRECT;dwFlags:DWORD;crText:COLORREF;crShadow:COLORREF;ixOffset:cint;iyOffset:cint):cint; stdcall; external commctrldll name 'DrawShadowText';
  6842. {$ENDIF}
  6843. IMPLEMENTATION
  6844. // Macro 8
  6845. //#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
  6846. // (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam))
  6847. Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var _lParam : NMHDR ;fn:Pointer);
  6848. TYPE FnType=procedure ( hwnd : hwnd; wParam : cint;tst:LPARAM); stdcall;
  6849. Begin
  6850. fnType(fn)(hwnd, wParam, LPARAM(@_lParam));
  6851. end;
  6852. // Macro 9
  6853. //#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
  6854. // (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr))
  6855. Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn : pointer ):LRESULT;
  6856. TYPE FnType=Function( hwnd : hwnd; wParam : cint;wparam2:cint;lparam1:lparam):LResult; stdcall;
  6857. Begin
  6858. Result:=LRESULT(fntype(fn)(hwnd, WM_NOTIFY, idFrom, LPARAM(@pnmhdr)));
  6859. end;
  6860. // Macro 10
  6861. // #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
  6862. // Macro 11
  6863. // #define ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon)
  6864. Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint;
  6865. Begin
  6866. Result:=ImageList_ReplaceIcon(himl,-1,hicon);
  6867. end;
  6868. // Macro 12
  6869. // #define INDEXTOOVERLAYMASK(i) ((i) << 8)
  6870. // Macro 13
  6871. // #define ImageList_RemoveAll(himl) ImageList_Remove(himl, -1)
  6872. Procedure ImageList_RemoveAll(himl:HIMAGELIST);
  6873. Begin
  6874. ImageList_Remove(himl, -1)
  6875. End;
  6876. // Macro 14
  6877. // #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0)
  6878. Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
  6879. Begin
  6880. ImageList_GetIcon(himl, i,0);
  6881. end;
  6882. // Macro 15
  6883. // #define ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask)
  6884. // ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0)
  6885. Procedure ImageList_LoadBitmap(hi:HINST;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF);
  6886. Begin
  6887. ImageList_LoadImage(hi, bmp, cx, cGrow, crMask, IMAGE_BITMAP, 0);
  6888. End;
  6889. // Macro 16
  6890. // #define Header_GetItemCount(hwndHD) \
  6891. // (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, DWord(0))
  6892. Function Header_GetItemCount( hwndHD : hwnd):cint;
  6893. Begin
  6894. Result:=cint(SendMessage((hwndHD), HDM_GETITEMCOUNT, 0, LPARAM(0)))
  6895. end;
  6896. // Macro 17
  6897. //#define Header_InsertItem(hwndHD, i, phdi) \
  6898. // (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
  6899. Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint;
  6900. Begin
  6901. Result:=cint(SendMessage((hwndHD), HDM_INSERTITEM, (i), LPARAM(@phdi)));
  6902. end;
  6903. // Macro 18
  6904. //#define Header_DeleteItem(hwndHD, i) \
  6905. // (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), LPARAM(0))
  6906. Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL;
  6907. Begin
  6908. Result:=BOOL(SendMessage((hwndHD), HDM_DELETEITEM, (i), LPARAM(0)));
  6909. end;
  6910. // Macro 19
  6911. // #define Header_GetItem(hwndHD, i, phdi) \
  6912. // (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi))
  6913. Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL;
  6914. Begin
  6915. Result:=BOOL(SendMessage((hwndHD), HDM_GETITEM, (i), LPARAM(@phdi)));
  6916. end;
  6917. // Macro 20
  6918. // #define Header_SetItem(hwndHD, i, phdi) \
  6919. // (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi))
  6920. Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL;
  6921. Begin
  6922. Result:=BOOL(SendMessage((hwndHD), HDM_SETITEM, (i), LPARAM(@phdi)));
  6923. end;
  6924. // Macro 21
  6925. // #define Header_Layout(hwndHD, playout) \
  6926. // (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout))
  6927. Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL;
  6928. Begin
  6929. Result:=BOOL(SendMessage((hwndHD), HDM_LAYOUT, 0, LPARAM(@playout)))
  6930. end;
  6931. // Macro 22
  6932. // #define Header_GetItemRect(hwnd, iItem, lprc) \
  6933. // (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc))
  6934. Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL;
  6935. Begin
  6936. Result:=BOOL(SendMessage((hwnd), HDM_GETITEMRECT, iItem, lprc));
  6937. end;
  6938. // Macro 23
  6939. // #define Header_SetImageList(hwnd, himl) \
  6940. // (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl))
  6941. Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST;
  6942. Begin
  6943. Result:=HIMAGELIST(SendMessage((hwnd), HDM_SETIMAGELIST, 0, himl))
  6944. end;
  6945. // Macro 24
  6946. // #define Header_GetImageList(hwnd) \
  6947. // (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0)
  6948. Function Header_GetImageList( hwnd : hwnd):HIMAGELIST;
  6949. Begin
  6950. Result:=HIMAGELIST(SendMessage((hwnd), HDM_GETIMAGELIST, 0, 0))
  6951. end;
  6952. // Macro 25
  6953. // #define Header_OrderToIndex(hwnd, i) \
  6954. // (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0)
  6955. Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint;
  6956. Begin
  6957. Result:=cint(SendMessage((hwnd), HDM_ORDERTOINDEX, (i), 0))
  6958. end;
  6959. // Macro 26
  6960. // #define Header_CreateDragImage(hwnd, i) \
  6961. // (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0)
  6962. Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST;
  6963. Begin
  6964. Result:=HIMAGELIST(SendMessage((hwnd), HDM_CREATEDRAGIMAGE, (i), 0))
  6965. end;
  6966. // Macro 27
  6967. // #define Header_GetOrderArray(hwnd, iCount, lpi) \
  6968. // (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
  6969. Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL;
  6970. Begin
  6971. Result:=BOOL(SendMessage((hwnd), HDM_GETORDERARRAY, iCount, lpi))
  6972. end;
  6973. // Macro 28
  6974. // #define Header_SetOrderArray(hwnd, iCount, lpi) \
  6975. // (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi))
  6976. Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline;
  6977. Begin
  6978. Result:=BOOL(SendMessage((hwnd), HDM_SETORDERARRAY, iCount, LPARAM(lpi)))
  6979. end;
  6980. // Macro 29
  6981. // #define Header_SetHotDivider(hwnd, fPos, dw) \
  6982. // (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw))
  6983. Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint;
  6984. Begin
  6985. Result:=cint(SendMessage((hwnd), HDM_SETHOTDIVIDER, fPos, dw))
  6986. end;
  6987. {$ifdef ie5plus}
  6988. // Macro 30
  6989. // #define Header_SetBitmapMargin(hwnd, iWidth) \
  6990. // (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0)
  6991. Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint;
  6992. Begin
  6993. Result:=cint(SendMessage((hwnd), HDM_SETBITMAPMARGIN, iWidth, 0))
  6994. end;
  6995. // Macro 31
  6996. // #define Header_GetBitmapMargin(hwnd) \
  6997. // (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0)
  6998. Function Header_GetBitmapMargin( hwnd : hwnd):cint;
  6999. Begin
  7000. Result:=cint(SendMessage((hwnd), HDM_GETBITMAPMARGIN, 0, 0))
  7001. end;
  7002. {$ENDIF}
  7003. // Macro 32
  7004. // #define Header_SetUnicodeFormat(hwnd, fUnicode) \
  7005. // (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  7006. Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  7007. Begin
  7008. Result:=BOOL(SendMessage((hwnd), HDM_SETUNICODEFORMAT, fUnicode, 0));
  7009. end;
  7010. // Macro 33
  7011. // #define Header_GetUnicodeFormat(hwnd) \
  7012. // (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0)
  7013. Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL;
  7014. Begin
  7015. Result:=BOOL(SendMessage((hwnd), HDM_GETUNICODEFORMAT, 0, 0))
  7016. end;
  7017. {$ifdef IE5plus}
  7018. // Macro 34
  7019. // #define Header_SetFilterChangeTimeout(hwnd, i) \
  7020. // (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i))
  7021. Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint;
  7022. Begin
  7023. Result:=cint(SendMessage((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (i)))
  7024. end;
  7025. // Macro 35
  7026. // #define Header_EditFilter(hwnd, i, fDiscardChanges) \
  7027. // (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0))
  7028. Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint;
  7029. Begin
  7030. Result:=cint(SendMessage((hwnd), HDM_EDITFILTER, (i), MAKELPARAM(fDiscardChanges, 0)));
  7031. end;
  7032. // Macro 36
  7033. // #define Header_ClearFilter(hwnd, i) \
  7034. // (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0)
  7035. Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint;
  7036. Begin
  7037. Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, (i), 0))
  7038. end;
  7039. // Macro 37
  7040. // #define Header_ClearAllFilters(hwnd) \
  7041. // (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0)
  7042. Function Header_ClearAllFilters( hwnd : hwnd):cint;
  7043. Begin
  7044. Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, WPARAM(-1), 0))
  7045. end;
  7046. {$endif}
  7047. // Macro 38
  7048. // #define ListView_SetUnicodeFormat(hwnd, fUnicode) \
  7049. // (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  7050. Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  7051. Begin
  7052. Result:=BOOL(SendMessage((hwnd), LVM_SETUNICODEFORMAT, fUnicode, 0));
  7053. end;
  7054. // Macro 39
  7055. // #define ListView_GetUnicodeFormat(hwnd) \
  7056. // (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0)
  7057. Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL;
  7058. Begin
  7059. Result:=BOOL(SendMessage((hwnd), LVM_GETUNICODEFORMAT, 0, 0))
  7060. end;
  7061. // Macro 40
  7062. // #define ListView_GetBkColor(hwnd) \
  7063. // (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0))
  7064. Function ListView_GetBkColor( hwnd : hwnd):COLORREF;
  7065. Begin
  7066. Result:=COLORREF(SendMessage((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0)))
  7067. end;
  7068. // Macro 41
  7069. // #define ListView_SetBkColor(hwnd, clrBk) \
  7070. // (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk))
  7071. Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL;
  7072. Begin
  7073. Result:=BOOL(SendMessage((hwnd), LVM_SETBKCOLOR, 0, clrBk))
  7074. end;
  7075. // Macro 42
  7076. // #define ListView_GetImageList(hwnd, iImageList) \
  7077. // (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), DWord(0))
  7078. Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST;
  7079. Begin
  7080. Result:=HIMAGELIST(SendMessage((hwnd), LVM_GETIMAGELIST, iImageList, LPARAM(0)))
  7081. end;
  7082. // Macro 43
  7083. // #define ListView_SetImageList(hwnd, himl, iImageList) \
  7084. // (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl))
  7085. Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST;
  7086. Begin
  7087. Result:=HIMAGELIST(SendMessage((hwnd), LVM_SETIMAGELIST, iImageList, himl))
  7088. end;
  7089. // Macro 44
  7090. // #define ListView_GetItemCount(hwnd) \
  7091. // (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, DWord(0))
  7092. Function ListView_GetItemCount( hwnd : hwnd):cint;
  7093. Begin
  7094. Result:=cint(SendMessage((hwnd), LVM_GETITEMCOUNT, 0, LPARAM(0)))
  7095. end;
  7096. // Macro 45
  7097. // #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  7098. // Macro 46
  7099. // #define ListView_GetItem(hwnd, pitem) \
  7100. // (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem))
  7101. Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL;
  7102. Begin
  7103. Result:=BOOL(SendMessage((hwnd), LVM_GETITEM, 0, LPARAM(@pitem)))
  7104. end;
  7105. // Macro 47
  7106. // #define ListView_SetItem(hwnd, pitem) \
  7107. // (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
  7108. Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL;
  7109. Begin
  7110. Result:=BOOL(SendMessage((hwnd), LVM_SETITEM, 0, LPARAM(@pitem)))
  7111. end;
  7112. // Macro 48
  7113. // #define ListView_InsertItem(hwnd, pitem) \
  7114. // (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem))
  7115. Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint;
  7116. Begin
  7117. Result:=cint(SendMessage((hwnd), LVM_INSERTITEM, 0, LPARAM(@pitem)))
  7118. end;
  7119. // Macro 49
  7120. // #define ListView_DeleteItem(hwnd, i) \
  7121. // (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
  7122. Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL;
  7123. Begin
  7124. Result:=BOOL(SendMessage((hwnd), LVM_DELETEITEM, (i), LPARAM(0)))
  7125. end;
  7126. // Macro 50
  7127. // #define ListView_DeleteAllItems(hwnd) \
  7128. // (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, DWord(0))
  7129. Function ListView_DeleteAllItems( hwnd : hwnd):BOOL;
  7130. Begin
  7131. Result:=BOOL(SendMessage((hwnd), LVM_DELETEALLITEMS, 0, LPARAM(0)))
  7132. end;
  7133. // Macro 51
  7134. // #define ListView_GetCallbackMask(hwnd) \
  7135. // (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0)
  7136. Function ListView_GetCallbackMask( hwnd : hwnd):BOOL;
  7137. Begin
  7138. Result:=BOOL(SendMessage((hwnd), LVM_GETCALLBACKMASK, 0, 0))
  7139. end;
  7140. // Macro 52
  7141. // #define ListView_SetCallbackMask(hwnd, mask) \
  7142. // (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0)
  7143. Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL;
  7144. Begin
  7145. Result:=BOOL(SendMessage((hwnd), LVM_SETCALLBACKMASK, mask, 0))
  7146. end;
  7147. // Macro 53
  7148. // #define ListView_GetNextItem(hwnd, i, flags) \
  7149. // (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0))
  7150. Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint):cint;
  7151. Begin
  7152. Result:=cint(SendMessage((hwnd), LVM_GETNEXTITEM, (i), MAKELPARAM((flags), 0)))
  7153. end;
  7154. // Macro 54
  7155. // #define ListView_FindItem(hwnd, iStart, plvfi) \
  7156. // (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi))
  7157. Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint;
  7158. Begin
  7159. Result:=cint(SendMessage((hwnd), LVM_FINDITEM, iStart, LPARAM(@plvfi)))
  7160. end;
  7161. // Macro 55
  7162. // #define ListView_GetItemRect(hwnd, i, prc, code) \
  7163. // (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \
  7164. // ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL))
  7165. Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL;
  7166. begin
  7167. if assigned(@prc) then
  7168. begin
  7169. prc.left:=Code;
  7170. Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,LPARAM(@prc)));
  7171. end
  7172. else
  7173. Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,0));
  7174. end;
  7175. // Macro 56
  7176. // #define ListView_SetItemPosition(hwndLV, i, x, y) \
  7177. // (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y)))
  7178. Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL;
  7179. Begin
  7180. Result:=BOOL(SendMessage((hwndLV), LVM_SETITEMPOSITION, (i), MAKELPARAM((x), (y))))
  7181. end;
  7182. // Macro 57
  7183. // #define ListView_GetItemPosition(hwndLV, i, ppt) \
  7184. // (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt))
  7185. Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL;
  7186. Begin
  7187. Result:=BOOL(SendMessage((hwndLV), LVM_GETITEMPOSITION, (i), LPAram(@ppt)))
  7188. end;
  7189. // Macro 58
  7190. // #define ListView_GetStringWidth(hwndLV, psz) \
  7191. // (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz))
  7192. Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint;
  7193. Begin
  7194. Result:=cint(SendMessage((hwndLV), LVM_GETSTRINGWIDTH, 0, LPARAM(psz)))
  7195. end;
  7196. // Macro 59
  7197. // #define ListView_HitTest(hwndLV, pinfo) \
  7198. // (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo))
  7199. Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint;
  7200. Begin
  7201. Result:=cint(SendMessage((hwndLV), LVM_HITTEST, 0, LParam(@pinfo)))
  7202. end;
  7203. // Macro 60
  7204. // #define ListView_EnsureVisible(hwndLV, i, fPartialOK) \
  7205. // (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0))
  7206. Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline;
  7207. Begin
  7208. Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), MAKELPARAM((fPartialOK), 0)))
  7209. end;
  7210. Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline;
  7211. Begin
  7212. Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), LPARAM(fPartialOK)))
  7213. end;
  7214. // Macro 61
  7215. // #define ListView_Scroll(hwndLV, dx, dy) \
  7216. // (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy))
  7217. Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL;
  7218. Begin
  7219. Result:=BOOL(SendMessage((hwndLV), LVM_SCROLL, dx, dy))
  7220. end;
  7221. // Macro 62
  7222. // #define ListView_RedrawItems(hwndLV, iFirst, iLast) \
  7223. // (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast))
  7224. Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL;
  7225. Begin
  7226. Result:=BOOL(SendMessage((hwndLV), LVM_REDRAWITEMS, iFirst, iLast))
  7227. end;
  7228. // Macro 63
  7229. // #define ListView_Arrange(hwndLV, code) \
  7230. // (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), DWord(0))
  7231. Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL;
  7232. Begin
  7233. Result:=BOOL(SendMessage((hwndLV), LVM_ARRANGE, code, LPARAM(0)))
  7234. end;
  7235. // Macro 64
  7236. // #define ListView_EditLabel(hwndLV, i) \
  7237. // (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), DWord(0))
  7238. Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND;
  7239. Begin
  7240. Result:=HWND(SendMessage((hwndLV), LVM_EDITLABEL, (i), LPARAM(0)))
  7241. end;
  7242. // Macro 65
  7243. // #define ListView_GetEditControl(hwndLV) \
  7244. // (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, DWord(0))
  7245. Function ListView_GetEditControl( hwndLV : hwnd):HWND;
  7246. Begin
  7247. Result:=HWND(SendMessage((hwndLV), LVM_GETEDITCONTROL, 0, LPARAM(0)))
  7248. end;
  7249. // Macro 66
  7250. // #define ListView_GetColumn(hwnd, iCol, pcol) \
  7251. // (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol))
  7252. Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL;
  7253. Begin
  7254. Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMN, iCol, LPARAM(@pcol)))
  7255. end;
  7256. // Macro 67
  7257. // #define ListView_SetColumn(hwnd, iCol, pcol) \
  7258. // (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
  7259. Function ListView_SetColumn( hwnd : hwnd; iCol : cint; Const pcol : LV_COLUMN ):BOOL;
  7260. Begin
  7261. Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMN, iCol, LPARAM(@pcol)))
  7262. end;
  7263. // Macro 68
  7264. // #define ListView_InsertColumn(hwnd, iCol, pcol) \
  7265. // (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol))
  7266. Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;const pcol : LV_COLUMN ):cint;
  7267. Begin
  7268. Result:=cint(SendMessage((hwnd), LVM_INSERTCOLUMN, iCol, LPARAM(@pcol)))
  7269. end;
  7270. // Macro 69
  7271. // #define ListView_DeleteColumn(hwnd, iCol) \
  7272. // (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0)
  7273. Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL;
  7274. Begin
  7275. Result:=BOOL(SendMessage((hwnd), LVM_DELETECOLUMN, iCol, 0))
  7276. end;
  7277. // Macro 70
  7278. // #define ListView_GetColumnWidth(hwnd, iCol) \
  7279. // (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0)
  7280. Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint;
  7281. Begin
  7282. Result:=cint(SendMessage((hwnd), LVM_GETCOLUMNWIDTH, iCol, 0))
  7283. end;
  7284. // Macro 71
  7285. // #define ListView_SetColumnWidth(hwnd, iCol, cx) \
  7286. // (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0))
  7287. Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx :cint ):BOOL;
  7288. Begin
  7289. Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNWIDTH, iCol, MAKELPARAM((cx), 0)))
  7290. end;
  7291. // Macro 72
  7292. // #define ListView_GetHeader(hwnd)\
  7293. // (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, DWord(0))
  7294. Function ListView_GetHeader( hwnd : hwnd):HWND;
  7295. Begin
  7296. Result:=Windows.HWND(SendMessage((hwnd), LVM_GETHEADER, 0, LPARAM(0)));
  7297. end;
  7298. // Macro 73
  7299. // #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \
  7300. // (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft))
  7301. Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline;
  7302. Begin
  7303. Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(lpptUpLeft)))
  7304. end;
  7305. Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline;
  7306. Begin
  7307. Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(@lpptUpLeft)))
  7308. end;
  7309. // Macro 74
  7310. // #define ListView_GetViewRect(hwnd, prc) \
  7311. // (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc))
  7312. Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL;
  7313. Begin
  7314. Result:=BOOL(SendMessage((hwnd), LVM_GETVIEWRECT, 0, LPARAM(@prc)))
  7315. end;
  7316. // Macro 75
  7317. // #define ListView_GetTextColor(hwnd) \
  7318. // (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, DWord(0))
  7319. Function ListView_GetTextColor( hwnd : hwnd):COLORREF;
  7320. Begin
  7321. Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTCOLOR, 0, LPARAM(0)))
  7322. end;
  7323. // Macro 76
  7324. // #define ListView_SetTextColor(hwnd, clrText) \
  7325. // (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText))
  7326. Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL;
  7327. Begin
  7328. Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTCOLOR, 0, clrText))
  7329. end;
  7330. // Macro 77
  7331. // #define ListView_GetTextBkColor(hwnd) \
  7332. // (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, DWord(0))
  7333. Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF;
  7334. Begin
  7335. Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTBKCOLOR, 0, LPARAM(0)))
  7336. end;
  7337. // Macro 78
  7338. // #define ListView_SetTextBkColor(hwnd, clrTextBk) \
  7339. // (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk))
  7340. Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL;
  7341. Begin
  7342. Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTBKCOLOR, 0, clrTextBk))
  7343. end;
  7344. // Macro 79
  7345. // #define ListView_GetTopIndex(hwndLV) \
  7346. // (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0)
  7347. Function ListView_GetTopIndex( hwndLV : hwnd):cint;
  7348. Begin
  7349. Result:=cint(SendMessage((hwndLV), LVM_GETTOPINDEX, 0, 0))
  7350. end;
  7351. // Macro 80
  7352. // #define ListView_GetCountPerPage(hwndLV) \
  7353. // (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0)
  7354. Function ListView_GetCountPerPage( hwndLV : hwnd):cint;
  7355. Begin
  7356. Result:=cint(SendMessage((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0))
  7357. end;
  7358. // Macro 81
  7359. //
  7360. // #define ListView_GetOrigin(hwndLV, ppt) \
  7361. // (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt))
  7362. Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL;
  7363. Begin
  7364. Result:=BOOL(SendMessage((hwndLV), LVM_GETORIGIN, WPARAM(0), LPARAM(@ppt)))
  7365. end;
  7366. // Macro 82
  7367. // #define ListView_Update(hwndLV, i) \
  7368. // (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), DWord(0))
  7369. Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL;
  7370. Begin
  7371. Result:=BOOL(SendMessage((hwndLV), LVM_UPDATE, (i), LPARAM(0)))
  7372. end;
  7373. // Macro 83
  7374. // #define ListView_SetItemState(hwndLV, i, data, mask) \
  7375. // { LV_ITEM _ms_lvi;\
  7376. // _ms_lvi.stateMask = mask;\
  7377. // _ms_lvi.state = data;\
  7378. // SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
  7379. // }
  7380. Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT);
  7381. Var _ms_lvi : LV_ITEM;
  7382. Begin
  7383. _ms_lvi.stateMask:=mask;
  7384. _ms_lvi.state:=data;
  7385. SendMessage(hwndLV, LVM_SETITEMSTATE, i,LPARAM(@_ms_lvi));
  7386. end;
  7387. // Macro 84
  7388. // #define ListView_SetCheckState(hwndLV, i, fCheck) \
  7389. // ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)
  7390. Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : BOOL );
  7391. var j:longint;
  7392. Begin
  7393. IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty)
  7394. j:=1
  7395. Else
  7396. j:=2;
  7397. ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK(j), LVIS_STATEIMAGEMASK);
  7398. end;
  7399. // Macro 85
  7400. // #define ListView_GetItemState(hwndLV, i, mask) \
  7401. // (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask))
  7402. Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT;
  7403. Begin
  7404. Result:=UINT(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), mask))
  7405. end;
  7406. // Macro 86
  7407. // #define ListView_GetCheckState(hwndLV, i) \
  7408. // ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1)
  7409. Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT;
  7410. Begin
  7411. Result:=(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), LVIS_STATEIMAGEMASK) shl 12) -1;
  7412. end;
  7413. // Macro 87
  7414. // #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \
  7415. // { LV_ITEM _ms_lvi;\
  7416. // _ms_lvi.iSubItem = iSubItem_;\
  7417. // _ms_lvi.cchTextMax = cchTextMax_;\
  7418. // _ms_lvi.pszText = pszText_;\
  7419. // SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
  7420. // }
  7421. Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint);
  7422. Var _ms_lvi : LV_ITEM;
  7423. Begin
  7424. _ms_lvi.iSubItem := iSubItem;
  7425. _ms_lvi.cchTextMax := cchTextMax;
  7426. _ms_lvi.pszText := pszText; // unicode dependant!
  7427. SendMessage(hwndLV, LVM_GETITEMTEXT, i, LPARAM(@_ms_LVI));
  7428. end;
  7429. // Macro 88
  7430. // #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) \
  7431. // { LV_ITEM _ms_lvi;\
  7432. // _ms_lvi.iSubItem = iSubItem_;\
  7433. // _ms_lvi.pszText = pszText_;\
  7434. // SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\
  7435. // }
  7436. Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer);
  7437. Var _ms_lvi : LV_ITEM;
  7438. Begin
  7439. _ms_lvi.iSubItem := iSubItem;
  7440. _ms_lvi.pszText := pszText; // unicode dependant!
  7441. SendMessage(hwndLV, LVM_SETITEMTEXT, i, LPARAM(@_ms_lvi));
  7442. End;
  7443. // Macro 89
  7444. // #define ListView_SetItemCount(hwndLV, cItems) \
  7445. // SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0)
  7446. Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM);
  7447. Begin
  7448. SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, 0)
  7449. end;
  7450. // Macro 90
  7451. // #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) \
  7452. // SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags))
  7453. Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM);
  7454. Begin
  7455. SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, dwFlags)
  7456. end;
  7457. // Macro 91
  7458. // #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) \
  7459. // (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), \
  7460. // (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
  7461. Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL;
  7462. Begin
  7463. Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMS, lPrm, LPARAM(@pfncompare)));
  7464. end;
  7465. // Macro 92
  7466. // #define ListView_SetItemPosition32(hwndLV, i, x0, y0) \
  7467. // { POINT ptNewPos; \
  7468. // ptNewPos.x = x0; ptNewPos.y = y0; \
  7469. // SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); \
  7470. // }
  7471. Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long);
  7472. Var ptNewPos:POINT;
  7473. Begin
  7474. ptNewPos.X:=x0; ptNewPos.Y:=y0;
  7475. SendMessage(hwndlv, LVM_SETITEMPOSITION32, I,LPARAM(@ptNewPos));
  7476. end;
  7477. // Macro 93
  7478. // #define ListView_GetSelectedCount(hwndLV) \
  7479. // (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, DWord(0))
  7480. Function ListView_GetSelectedCount( hwndLV : hwnd):UINT;
  7481. Begin
  7482. Result:=SendMessage(hwndLV, LVM_GETSELECTEDCOUNT, 0, LPARAM(0));
  7483. end;
  7484. // Macro 94
  7485. // #define ListView_GetItemSpacing(hwndLV, fSmall) \
  7486. // (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(0))
  7487. Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD;
  7488. Begin
  7489. Result:=LPARAM(SendMessage((hwndLV), LVM_GETITEMSPACING, fSmall, LPARAM(0)));
  7490. end;
  7491. // Macro 95
  7492. // #define ListView_GetISearchString(hwndLV, lpsz) \
  7493. // (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
  7494. Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL;
  7495. Begin
  7496. Result:=BOOL(SendMessage((hwndLV), LVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
  7497. end;
  7498. // Macro 96
  7499. // #define ListView_SetIconSpacing(hwndLV, cx, cy) \
  7500. // (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))
  7501. Function ListView_SetIconSpacing( hwndLV : hwnd; cx,cy : cint ):DWORD;
  7502. Begin
  7503. Result:=DWORD(SendMessage((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)))
  7504. end;
  7505. // Macro 97
  7506. // #define ListView_SetExtendedListViewStyle(hwndLV, dw)\
  7507. // (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)
  7508. Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw :cint ):DWORD;
  7509. Begin
  7510. Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw))
  7511. end;
  7512. // Macro 98
  7513. // #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\
  7514. // (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw)
  7515. Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD;
  7516. Begin
  7517. Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw))
  7518. end;
  7519. // Macro 99
  7520. // #define ListView_GetExtendedListViewStyle(hwndLV)\
  7521. // (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
  7522. Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD;
  7523. Begin
  7524. Result:=DWORD(SendMessage((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0))
  7525. end;
  7526. // Macro 100
  7527. // #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) \
  7528. // (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \
  7529. // ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
  7530. Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL;
  7531. VAR LastParam : LPRECT;
  7532. Begin
  7533. if prc<>nil then
  7534. begin
  7535. prc^.top:=iSubItem;
  7536. prc^.left:=code;
  7537. lastparam:=prc;
  7538. end
  7539. else
  7540. lastparam:=nil;
  7541. Result:=bool(SendMessage((hwnd), LVM_GETSUBITEMRECT, iItem, LPARAM(lastparam)));
  7542. End;
  7543. // Macro 101
  7544. // #define ListView_SubItemHitTest(hwnd, plvhti) \
  7545. // (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti))
  7546. Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint;
  7547. Begin
  7548. Result:=cint(SendMessage((hwnd), LVM_SUBITEMHITTEST, 0, LParam(plvhti)))
  7549. end;
  7550. // Macro 102
  7551. // #define ListView_SetColumnOrderArray(hwnd, iCount, pi) \
  7552. // (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
  7553. Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
  7554. Begin
  7555. Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNORDERARRAY, iCount, LPARAM(pi)));
  7556. end;
  7557. // Macro 103
  7558. // #define ListView_GetColumnOrderArray(hwnd, iCount, pi) \
  7559. // (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi))
  7560. Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL;
  7561. Begin
  7562. Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMNORDERARRAY, iCount, LPARAM(pi)))
  7563. end;
  7564. // Macro 104
  7565. // #define ListView_SetHotItem(hwnd, i) \
  7566. // (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0)
  7567. Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint;
  7568. Begin
  7569. Result:=cint(SendMessage((hwnd), LVM_SETHOTITEM, (i), 0))
  7570. end;
  7571. // Macro 105
  7572. // #define ListView_GetHotItem(hwnd) \
  7573. // (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0)
  7574. Function ListView_GetHotItem( hwnd : hwnd):cint;
  7575. Begin
  7576. Result:=cint(SendMessage((hwnd), LVM_GETHOTITEM, 0, 0))
  7577. end;
  7578. // Macro 106
  7579. // #define ListView_SetHotCursor(hwnd, hcur) \
  7580. // (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur))
  7581. Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR;
  7582. Begin
  7583. Result:=HCURSOR(SendMessage((hwnd), LVM_SETHOTCURSOR, 0, hcur))
  7584. end;
  7585. // Macro 107
  7586. // #define ListView_GetHotCursor(hwnd) \
  7587. // (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0)
  7588. Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR;
  7589. Begin
  7590. Result:=HCURSOR(SendMessage((hwnd), LVM_GETHOTCURSOR, 0, 0))
  7591. end;
  7592. // Macro 108
  7593. // #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) \
  7594. // (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight))
  7595. Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD;
  7596. Begin
  7597. Result:=DWORD(SendMessage((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)));
  7598. end;
  7599. // Macro 109
  7600. // #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) \
  7601. // (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
  7602. Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;inline;
  7603. Begin
  7604. Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(@prc)))
  7605. end;
  7606. Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint; prc : PRECT ):BOOL;inline;
  7607. Begin
  7608. Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(prc)))
  7609. end;
  7610. // Macro 110
  7611. // #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) \
  7612. // (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc))
  7613. Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;
  7614. Begin
  7615. Result:=BOOL(SendMessage((hwnd), LVM_GETWORKAREAS, nWorkAreas, LPARAM(@prc)))
  7616. end;
  7617. // Macro 111
  7618. // #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) \
  7619. // (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas))
  7620. Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL;
  7621. Begin
  7622. Result:=BOOL(SendMessage((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, LPARAM(@pnWorkAreas)))
  7623. end;
  7624. // Macro 112
  7625. // #define ListView_GetSelectionMark(hwnd) \
  7626. // (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0)
  7627. Function ListView_GetSelectionMark( hwnd : hwnd):cint;
  7628. Begin
  7629. Result:=cint(SendMessage((hwnd), LVM_GETSELECTIONMARK, 0, 0))
  7630. end;
  7631. // Macro 113
  7632. // #define ListView_SetSelectionMark(hwnd, i) \
  7633. // (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i))
  7634. Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint;
  7635. Begin
  7636. Result:=cint(SendMessage((hwnd), LVM_SETSELECTIONMARK, 0, (i)))
  7637. end;
  7638. // Macro 114
  7639. // #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs)\
  7640. // (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs))
  7641. Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD;
  7642. Begin
  7643. Result:=DWORD(SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs))
  7644. end;
  7645. // Macro 115
  7646. // #define ListView_GetHoverTime(hwndLV)\
  7647. // (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0)
  7648. Function ListView_GetHoverTime( hwndLV : hwnd):DWORD;
  7649. Begin
  7650. Result:=DWORD(SendMessage((hwndLV), LVM_GETHOVERTIME, 0, 0))
  7651. end;
  7652. // Macro 116
  7653. // #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\
  7654. // (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0)
  7655. Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND;
  7656. Begin
  7657. Result:=HWND(SendMessage((hwndLV), LVM_SETTOOLTIPS, hwndNewHwnd, 0))
  7658. end;
  7659. // Macro 117
  7660. // #define ListView_GetToolTips(hwndLV)\
  7661. // (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0)
  7662. Function ListView_GetToolTips( hwndLV : hwnd):HWND;
  7663. Begin
  7664. Result:=HWND(SendMessage((hwndLV), LVM_GETTOOLTIPS, 0, 0))
  7665. end;
  7666. // Macro 118
  7667. // #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) \
  7668. // (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
  7669. Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL;
  7670. Begin
  7671. Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMSEX, _lPrm, LPAram(@_pfnCompare)))
  7672. end;
  7673. {$ifdef win32xp}
  7674. // Macro 119
  7675. // #define ListView_SetSelectedColumn(hwnd, iCol) \
  7676. // SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0)
  7677. Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM);
  7678. Begin
  7679. SendMessage((hwnd), LVM_SETSELECTEDCOLUMN, iCol, 0)
  7680. end;
  7681. // Macro 120
  7682. // #define ListView_SetTileWidth(hwnd, cpWidth) \
  7683. // SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0)
  7684. Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM);
  7685. Begin
  7686. SendMessage((hwnd), LVM_SETTILEWIDTH, cpWidth, 0)
  7687. end;
  7688. // Macro 121
  7689. // #define ListView_SetView(hwnd, iView) \
  7690. // (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0)
  7691. Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD;
  7692. Begin
  7693. Result:=DWORD(SendMessage((hwnd), LVM_SETVIEW, iView, 0))
  7694. end;
  7695. // Macro 122
  7696. // #define ListView_GetView(hwnd) \
  7697. // (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0)
  7698. Function ListView_GetView( hwnd : hwnd):DWORD;
  7699. Begin
  7700. Result:=DWORD(SendMessage((hwnd), LVM_GETVIEW, 0, 0))
  7701. end;
  7702. // Macro 123
  7703. // #define ListView_InsertGroup(hwnd, index, pgrp) \
  7704. // SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp)
  7705. Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM);
  7706. Begin
  7707. SendMessage((hwnd), LVM_INSERTGROUP, index, pgrp)
  7708. end;
  7709. // Macro 124
  7710. // #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) \
  7711. // SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
  7712. Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
  7713. Begin
  7714. SendMessage((hwnd), LVM_SETGROUPINFO, iGroupId, pgrp)
  7715. end;
  7716. // Macro 125
  7717. // #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) \
  7718. // SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp)
  7719. Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM);
  7720. Begin
  7721. SendMessage((hwnd), LVM_GETGROUPINFO, iGroupId, pgrp)
  7722. end;
  7723. // Macro 126
  7724. // #define ListView_RemoveGroup(hwnd, iGroupId) \
  7725. // SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0)
  7726. Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM);
  7727. Begin
  7728. SendMessage((hwnd), LVM_REMOVEGROUP, iGroupId, 0)
  7729. end;
  7730. // Macro 127
  7731. // #define ListView_MoveGroup(hwnd, iGroupId, toIndex) \
  7732. // SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex)
  7733. Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM);
  7734. Begin
  7735. SendMessage((hwnd), LVM_MOVEGROUP, iGroupId, toIndex)
  7736. end;
  7737. // Macro 128
  7738. // #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) \
  7739. // SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo)
  7740. Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM);
  7741. Begin
  7742. SendMessage((hwnd), LVM_MOVEITEMTOGROUP, idItemFrom, idGroupTo)
  7743. end;
  7744. // Macro 129
  7745. // #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) \
  7746. // SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
  7747. Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
  7748. Begin
  7749. SendMessage((hwnd), LVM_SETGROUPMETRICS, 0, pGroupMetrics)
  7750. end;
  7751. // Macro 130
  7752. // #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) \
  7753. // SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics)
  7754. Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM);
  7755. Begin
  7756. SendMessage((hwnd), LVM_GETGROUPMETRICS, 0, pGroupMetrics)
  7757. end;
  7758. // Macro 131
  7759. // #define ListView_EnableGroupView(hwnd, fEnable) \
  7760. // SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0)
  7761. Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM);
  7762. Begin
  7763. SendMessage((hwnd), LVM_ENABLEGROUPVIEW, fEnable, 0)
  7764. end;
  7765. // Macro 132
  7766. // #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) \
  7767. // SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv)
  7768. Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM);
  7769. Begin
  7770. SendMessage((hwnd), LVM_SORTGROUPS, _pfnGroupCompate, _plv)
  7771. end;
  7772. // Macro 133
  7773. // #define ListView_InsertGroupSorted(hwnd, structInsert) \
  7774. // SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0)
  7775. Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM);
  7776. Begin
  7777. SendMessage((hwnd), LVM_INSERTGROUPSORTED, structInsert, 0)
  7778. end;
  7779. // Macro 134
  7780. // #define ListView_RemoveAllGroups(hwnd) \
  7781. // SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
  7782. Procedure ListView_RemoveAllGroups( hwnd : hwnd);
  7783. Begin
  7784. SendMessage((hwnd), LVM_REMOVEALLGROUPS, 0, 0)
  7785. end;
  7786. // Macro 135
  7787. // #define ListView_HasGroup(hwnd, dwGroupId) \
  7788. // SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0)
  7789. Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId :DWORD );
  7790. Begin
  7791. SendMessage((hwnd), LVM_HASGROUP, dwGroupId, 0)
  7792. end;
  7793. // Macro 136
  7794. // #define ListView_SetTileViewInfo(hwnd, ptvi) \
  7795. // SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi)
  7796. Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
  7797. Begin
  7798. SendMessage((hwnd), LVM_SETTILEVIEWINFO, 0, ptvi)
  7799. end;
  7800. // Macro 137
  7801. // #define ListView_GetTileViewInfo(hwnd, ptvi) \
  7802. // SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi)
  7803. Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM);
  7804. Begin
  7805. SendMessage((hwnd), LVM_GETTILEVIEWINFO, 0, ptvi)
  7806. end;
  7807. // Macro 138
  7808. // #define ListView_SetTileInfo(hwnd, pti) \
  7809. // SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti)
  7810. Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM);
  7811. Begin
  7812. SendMessage((hwnd), LVM_SETTILEINFO, 0, pti)
  7813. end;
  7814. // Macro 139
  7815. // #define ListView_GetTileInfo(hwnd, pti) \
  7816. // SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti)
  7817. Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM);
  7818. Begin
  7819. SendMessage((hwnd), LVM_GETTILEINFO, 0, pti)
  7820. end;
  7821. // Macro 140
  7822. // #define ListView_SetInsertMark(hwnd, lvim) \
  7823. // (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
  7824. Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
  7825. Begin
  7826. Result:=BOOL(SendMessage((hwnd), LVM_SETINSERTMARK, 0, lvim));
  7827. end;
  7828. // Macro 141
  7829. // #define ListView_GetInsertMark(hwnd, lvim) \
  7830. // (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim))
  7831. Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL;
  7832. Begin
  7833. Result:=BOOL(SendMessage((hwnd), LVM_GETINSERTMARK, WPARAM (0), LPARAM (lvim)));
  7834. end;
  7835. // Macro 142
  7836. // #define ListView_InsertMarkHitTest(hwnd, point, lvim) \
  7837. // (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim))
  7838. Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint;
  7839. Begin
  7840. Result:=cint(SendMessage((hwnd), LVM_INSERTMARKHITTEST, wparam(point), lparam(lvim)));
  7841. end;
  7842. // Macro 143
  7843. // #define ListView_GetInsertMarkRect(hwnd, rc) \
  7844. // (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc))
  7845. Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint;
  7846. Begin
  7847. Result:=cint(SendMessage((hwnd), LVM_GETINSERTMARKRECT, WPARAM(0), LPARAM(rc)))
  7848. end;
  7849. // Macro 144
  7850. // #define ListView_SetInsertMarkColor(hwnd, color) \
  7851. // (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
  7852. Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF;
  7853. Begin
  7854. Result:=COLORREF(SendMessage((hwnd), LVM_SETINSERTMARKCOLOR, WPARAM(0), color));
  7855. end;
  7856. // Macro 145
  7857. // #define ListView_GetInsertMarkColor(hwnd) \
  7858. // (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0)
  7859. Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
  7860. Begin
  7861. Result:=COLORREF(SendMessage((hwnd), LVM_GETINSERTMARKCOLOR, WPARAM(0), LPARAM(0)));
  7862. end;
  7863. // Macro 146
  7864. // #define ListView_SetInfoTip(hwndLV, plvInfoTip)\
  7865. // (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip)
  7866. Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL;
  7867. Begin
  7868. Result:=BOOL(SendMessage((hwndLV), LVM_SETINFOTIP, WPARAM(0), plvInfoTip));
  7869. end;
  7870. // Macro 147
  7871. // #define ListView_GetSelectedColumn(hwnd) \
  7872. // (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0)
  7873. Function ListView_GetSelectedColumn( hwnd : hwnd):UINT;
  7874. Begin
  7875. Result:=UINT(SendMessage((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0));
  7876. end;
  7877. // Macro 148
  7878. // #define ListView_IsGroupViewEnabled(hwnd) \
  7879. // (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0)
  7880. Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL;
  7881. Begin
  7882. Result:=BOOL(SendMessage((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0));
  7883. end;
  7884. // Macro 149
  7885. // #define ListView_GetOutlineColor(hwnd) \
  7886. // (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0)
  7887. Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF;
  7888. Begin
  7889. Result:=COLORREF(SendMessage((hwnd), LVM_GETOUTLINECOLOR, 0, 0));
  7890. end;
  7891. // Macro 150
  7892. // #define ListView_SetOutlineColor(hwnd, color) \
  7893. // (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color))
  7894. Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF;
  7895. Begin
  7896. Result:=COLORREF(SendMessage((hwnd), LVM_SETOUTLINECOLOR, WPARAM(0), color));
  7897. end;
  7898. // Macro 151
  7899. // #define ListView_CancelEditLabel(hwnd) \
  7900. // (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0)
  7901. procedure ListView_CancelEditLabel( hwnd : hwnd);
  7902. Begin
  7903. SendMessage((hwnd), LVM_CANCELEDITLABEL, WPARAM(0), LPARAM(0));
  7904. end;
  7905. // Macro 152
  7906. // #define ListView_MapIndexToID(hwnd, index) \
  7907. // (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0)
  7908. Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT;
  7909. Begin
  7910. Result:=UINT(SendMessage((hwnd), LVM_MAPINDEXTOID, index, LPARAM(0)));
  7911. end;
  7912. // Macro 153
  7913. // #define ListView_MapIDToIndex(hwnd, id) \
  7914. // (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0)
  7915. Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT;
  7916. Begin
  7917. Result:=UINT(SendMessage((hwnd), LVM_MAPIDTOINDEX, id, LPARAM(0)));
  7918. end;
  7919. {$ENDIF}
  7920. // Macro 154
  7921. // #define ListView_SetBkImage(hwnd, plvbki) \
  7922. // (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
  7923. Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
  7924. Begin
  7925. Result:=BOOL(SendMessage((hwnd), LVM_SETBKIMAGE, 0, plvbki));
  7926. end;
  7927. // Macro 155
  7928. // #define ListView_GetBkImage(hwnd, plvbki) \
  7929. // (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
  7930. Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL;
  7931. Begin
  7932. Result:=BOOL(SendMessage((hwnd), LVM_GETBKIMAGE, 0, plvbki));
  7933. end;
  7934. // Macro 156
  7935. // #define TreeView_InsertItem(hwnd, lpis) \
  7936. // (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis))
  7937. Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline;
  7938. Begin
  7939. Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(lpis)));
  7940. end;
  7941. Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline;
  7942. Begin
  7943. Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(@lpis)));
  7944. end;
  7945. // Macro 157
  7946. // #define TreeView_DeleteItem(hwnd, hitem) \
  7947. // (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem))
  7948. Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL;
  7949. Begin
  7950. Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(hitem)));
  7951. end;
  7952. // Macro 158
  7953. // #define TreeView_DeleteAllItems(hwnd) \
  7954. // (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT)
  7955. Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL;
  7956. Begin
  7957. Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(HTREEITEM(TVI_ROOT))));
  7958. end;
  7959. // Macro 159
  7960. // #define TreeView_Expand(hwnd, hitem, code) \
  7961. // (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
  7962. Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
  7963. Begin
  7964. Result:=BOOL(SendMessage((hwnd), TVM_EXPAND, code, lparam(hitem)))
  7965. end;
  7966. // Macro 160
  7967. // #define TreeView_GetItemRect(hwnd, hitem, prc, code) \
  7968. // (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc)))
  7969. Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline;
  7970. Begin
  7971. HTREEITEM(prc):=HITEM;
  7972. Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, code, LPARAM(prc)));
  7973. end;
  7974. Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline;
  7975. Begin
  7976. HTREEITEM(Pointer(@prc)^):=HITEM;
  7977. Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, WPARAM(code), LPARAM(@prc)));
  7978. end;
  7979. // Macro 161
  7980. // #define TreeView_GetCount(hwnd) \
  7981. // (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0)
  7982. Function TreeView_GetCount( hwnd : hwnd):UINT;
  7983. Begin
  7984. Result:=UINT(SendMessage((hwnd), TVM_GETCOUNT, 0, 0))
  7985. end;
  7986. // Macro 162
  7987. // #define TreeView_GetIndent(hwnd) \
  7988. // (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0)
  7989. Function TreeView_GetIndent( hwnd : hwnd):UINT;
  7990. Begin
  7991. Result:=UINT(SendMessage((hwnd), TVM_GETINDENT, 0, 0))
  7992. end;
  7993. // Macro 163
  7994. // #define TreeView_SetIndent(hwnd, indent) \
  7995. // (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0)
  7996. Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL;
  7997. Begin
  7998. Result:=BOOL(SendMessage((hwnd), TVM_SETINDENT, indent, 0))
  7999. end;
  8000. // Macro 164
  8001. // #define TreeView_GetImageList(hwnd, iImage) \
  8002. // (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0)
  8003. Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST;
  8004. Begin
  8005. Result:=HIMAGELIST(SendMessage((hwnd), TVM_GETIMAGELIST, iImage, 0))
  8006. end;
  8007. // Macro 165
  8008. // #define TreeView_SetImageList(hwnd, himl, iImage) \
  8009. // (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl))
  8010. Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint ):HIMAGELIST;
  8011. Begin
  8012. Result:=HIMAGELIST(SendMessage((hwnd), TVM_SETIMAGELIST, iImage, himl))
  8013. end;
  8014. // Macro 166
  8015. // #define TreeView_GetNextItem(hwnd, hitem, code) \
  8016. // (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem))
  8017. Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM;
  8018. Begin
  8019. Result:=HTREEITEM(SendMessage((hwnd), TVM_GETNEXTITEM, code, lparam(hitem)))
  8020. end;
  8021. // Macro 167
  8022. function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
  8023. Begin
  8024. Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD)
  8025. End;
  8026. // Macro 168
  8027. // #define TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM);
  8028. // (hwnd, hitem)
  8029. // TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
  8030. function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
  8031. // (hwnd, hitem)
  8032. // TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT)
  8033. Begin
  8034. Result:=TreeView_getNextItem(hwnd,hitem,TVGN_NEXT);
  8035. end;
  8036. // Macro 169
  8037. function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
  8038. begin
  8039. Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS);
  8040. end;
  8041. // Macro 170
  8042. function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;
  8043. begin
  8044. Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT)
  8045. end;
  8046. // Macro 171
  8047. // #define TreeView_GetFirstVisible(hwnd:hwnd);
  8048. // TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE)
  8049. function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline;
  8050. begin
  8051. Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_FIRSTVISIBLE)
  8052. end;
  8053. // Macro 172
  8054. //#define TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM);
  8055. //(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
  8056. function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  8057. begin
  8058. Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE)
  8059. end;
  8060. // Macro 173
  8061. //#define TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM);
  8062. // (hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE)
  8063. function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline;
  8064. Begin
  8065. Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE);
  8066. end;
  8067. // Macro 174
  8068. function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline;
  8069. begin
  8070. Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_CARET);
  8071. end;
  8072. // Macro 175
  8073. //#define TreeView_GetDropHilight(hwnd:hwnd);
  8074. //TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE)
  8075. function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline;
  8076. begin
  8077. Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_DROPHILITE);
  8078. end;
  8079. function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline;
  8080. begin
  8081. Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_DROPHILITE);
  8082. end;
  8083. // Macro 176
  8084. function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline;
  8085. begin
  8086. TreeView_GetNextItem(hwnd, NIL, TVGN_ROOT);
  8087. end;
  8088. // Macro 177
  8089. //#define TreeView_GetLastVisible(hwnd:hwnd);
  8090. //TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE)
  8091. function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline;
  8092. begin
  8093. TreeView_GetNextItem(hwnd, NIL, TVGN_LASTVISIBLE)
  8094. end;
  8095. // Macro 178
  8096. Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL;
  8097. Begin
  8098. Result:=BOOL(SendMessage((hwnd), TVM_SELECTITEM, code, LPARAM(hitem)))
  8099. end;
  8100. // Macro 179
  8101. // #define TreeView_SelectItem(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_CARET)
  8102. // Macro 180
  8103. // #define TreeView_SelectDropTarget(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
  8104. // Macro 181
  8105. // #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
  8106. // Macro 179
  8107. Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM);
  8108. Begin
  8109. TreeView_Select(hwnd, hitem, TVGN_CARET)
  8110. End;
  8111. // Macro 180
  8112. Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM);
  8113. Begin
  8114. TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
  8115. End;
  8116. // Macro 181
  8117. Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM);
  8118. Begin
  8119. TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
  8120. End;
  8121. // Macro 182
  8122. // #define TreeView_GetItem(hwnd, pitem) \
  8123. // (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem))
  8124. Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL;
  8125. Begin
  8126. Result:=BOOL(SendMessage((hwnd), TVM_GETITEM, 0, LPARAM(@pitem)))
  8127. end;
  8128. // Macro 183
  8129. //#define TreeView_SetItem(hwnd, pitem) \
  8130. // (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem))
  8131. Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL;
  8132. Begin
  8133. Result:=BOOL(SendMessage((hwnd), TVM_SETITEM, 0, LParam(@pitem)))
  8134. end;
  8135. // Macro 184
  8136. //#define TreeView_EditLabel(hwnd, hitem) \
  8137. // (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem))
  8138. Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND;
  8139. Begin
  8140. Result:=Windows.HWND(SendMessage((hwnd), TVM_EDITLABEL, 0, LParam(hitem)))
  8141. end;
  8142. // Macro 185
  8143. //#define TreeView_GetEditControl(hwnd) \
  8144. // (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0)
  8145. Function TreeView_GetEditControl( hwnd : hwnd):HWND;
  8146. Begin
  8147. Result:=Windows.HWND(SendMessage((hwnd), TVM_GETEDITCONTROL, 0, 0))
  8148. end;
  8149. // Macro 186
  8150. //#define TreeView_GetVisibleCount(hwnd) \
  8151. // (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0)
  8152. Function TreeView_GetVisibleCount( hwnd : hwnd):UINT;
  8153. Begin
  8154. Result:=UINT(SendMessage((hwnd), TVM_GETVISIBLECOUNT, 0, 0))
  8155. end;
  8156. // Macro 187
  8157. //#define TreeView_HitTest(hwnd, lpht) \
  8158. // (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht))
  8159. Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline;
  8160. Begin
  8161. Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(lpht)))
  8162. end;
  8163. Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline;
  8164. Begin
  8165. Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(@lpht)))
  8166. end;
  8167. // Macro 188
  8168. //#define TreeView_CreateDragImage(hwnd, hitem) \
  8169. // (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem))
  8170. Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST;
  8171. Begin
  8172. Result:=HIMAGELIST(SendMessage((hwnd), TVM_CREATEDRAGIMAGE, 0, Lparam(hitem)))
  8173. end;
  8174. // Macro 189
  8175. //#define TreeView_SortChildren(hwnd, hitem, recurse) \
  8176. // (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem))
  8177. Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL;
  8178. Begin
  8179. Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDREN, recurse, LParam(hitem)))
  8180. end;
  8181. // Macro 190
  8182. //#define TreeView_EnsureVisible(hwnd, hitem) \
  8183. // (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem))
  8184. Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL;
  8185. Begin
  8186. Result:=BOOL(SendMessage((hwnd), TVM_ENSUREVISIBLE, 0, LParam(hitem)))
  8187. end;
  8188. // Macro 191
  8189. //#define TreeView_SortChildrenCB(hwnd, psort, recurse) \
  8190. // (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), \
  8191. // (LPARAM)(LPTV_SORTCB)(psort))
  8192. Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline;
  8193. Begin
  8194. Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(psort)))
  8195. end;
  8196. Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline;
  8197. Begin
  8198. Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(@psort)))
  8199. end;
  8200. // Macro 192
  8201. //#define TreeView_EndEditLabelNow(hwnd, fCancel) \
  8202. // (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0)
  8203. Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline;
  8204. Begin
  8205. Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, fCancel, 0))
  8206. end;
  8207. Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline;
  8208. Begin
  8209. Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, WPARAM(fCancel), 0))
  8210. end;
  8211. // Macro 193
  8212. //#define TreeView_SetToolTips(hwnd, hwndTT) \
  8213. // (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
  8214. Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND;
  8215. Begin
  8216. Result:=Windows.HWND(SendMessage((hwnd), TVM_SETTOOLTIPS, hwndTT, 0))
  8217. end;
  8218. // Macro 194
  8219. //#define TreeView_GetToolTips(hwnd) \
  8220. // (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0)
  8221. Function TreeView_GetToolTips( hwnd : hwnd):HWND;
  8222. Begin
  8223. Result:=Windows.HWND(SendMessage((hwnd), TVM_GETTOOLTIPS, 0, 0))
  8224. end;
  8225. // Macro 195
  8226. //#define TreeView_GetISearchString(hwndTV, lpsz) \
  8227. // (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz))
  8228. Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL;
  8229. Begin
  8230. Result:=BOOL(SendMessage((hwndTV), TVM_GETISEARCHSTRING, 0, LPARAM(lpsz)))
  8231. end;
  8232. // Macro 196
  8233. //#define TreeView_SetInsertMark(hwnd, hItem, fAfter) \
  8234. // (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem))
  8235. Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LParam ; fAfter : WParam ):BOOL;
  8236. Begin
  8237. Result:=BOOL(SendMessage((hwnd), TVM_SETINSERTMARK, (fAfter), (hItem)))
  8238. end;
  8239. // Macro 197
  8240. //#define TreeView_SetUnicodeFormat(hwnd, fUnicode) \
  8241. // (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  8242. Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  8243. Begin
  8244. Result:=BOOL(SendMessage((hwnd), TVM_SETUNICODEFORMAT, fUnicode, 0))
  8245. end;
  8246. // Macro 198
  8247. //#define TreeView_GetUnicodeFormat(hwnd) \
  8248. // (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0)
  8249. Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL;
  8250. Begin
  8251. Result:=BOOL(SendMessage((hwnd), TVM_GETUNICODEFORMAT, 0, 0))
  8252. end;
  8253. // Macro 199
  8254. //#define TreeView_SetItemHeight(hwnd, iHeight) \
  8255. // (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0)
  8256. Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint;
  8257. Begin
  8258. Result:=cint(SendMessage((hwnd), TVM_SETITEMHEIGHT, iHeight, 0))
  8259. end;
  8260. // Macro 200
  8261. //#define TreeView_GetItemHeight(hwnd) \
  8262. // (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0)
  8263. Function TreeView_GetItemHeight( hwnd : hwnd):cint;
  8264. Begin
  8265. Result:=cint(SendMessage((hwnd), TVM_GETITEMHEIGHT, 0, 0))
  8266. end;
  8267. // Macro 201
  8268. //#define TreeView_SetBkColor(hwnd, clr) \
  8269. // (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr))
  8270. Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  8271. Begin
  8272. Result:=COLORREF(SendMessage((hwnd), TVM_SETBKCOLOR, 0, clr))
  8273. end;
  8274. // Macro 202
  8275. //#define TreeView_SetTextColor(hwnd, clr) \
  8276. // (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr))
  8277. Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  8278. Begin
  8279. Result:=COLORREF(SendMessage((hwnd), TVM_SETTEXTCOLOR, 0, clr))
  8280. end;
  8281. // Macro 203
  8282. //#define TreeView_GetBkColor(hwnd) \
  8283. // (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0)
  8284. Function TreeView_GetBkColor( hwnd : hwnd):COLORREF;
  8285. Begin
  8286. Result:=COLORREF(SendMessage((hwnd), TVM_GETBKCOLOR, 0, 0))
  8287. end;
  8288. // Macro 204
  8289. //#define TreeView_GetTextColor(hwnd) \
  8290. // (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0)
  8291. Function TreeView_GetTextColor( hwnd : hwnd):COLORREF;
  8292. Begin
  8293. Result:=COLORREF(SendMessage((hwnd), TVM_GETTEXTCOLOR, 0, 0))
  8294. end;
  8295. // Macro 205
  8296. //#define TreeView_SetScrollTime(hwnd, uTime) \
  8297. // (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0)
  8298. Function TreeView_SetScrollTime( hwnd : hwnd; uTime : wparam ):UINT;
  8299. Begin
  8300. Result:=UINT(SendMessage((hwnd), TVM_SETSCROLLTIME, uTime, 0))
  8301. end;
  8302. // Macro 206
  8303. //#define TreeView_GetScrollTime(hwnd) \
  8304. // (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0)
  8305. Function TreeView_GetScrollTime( hwnd : hwnd):UINT;
  8306. Begin
  8307. Result:=UINT(SendMessage((hwnd), TVM_GETSCROLLTIME, 0, 0))
  8308. end;
  8309. // Macro 207
  8310. //#define TreeView_SetInsertMarkColor(hwnd, clr) \
  8311. // (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr))
  8312. Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  8313. Begin
  8314. Result:=COLORREF(SendMessage((hwnd), TVM_SETINSERTMARKCOLOR, 0, clr))
  8315. end;
  8316. // Macro 208
  8317. //#define TreeView_GetInsertMarkColor(hwnd) \
  8318. // (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0)
  8319. Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF;
  8320. Begin
  8321. Result:=COLORREF(SendMessage((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0))
  8322. end;
  8323. // Macro 209
  8324. //#define TreeView_SetItemState(hwndTV, hti, data, _mask) \
  8325. // { TVITEM _ms_TVi;\
  8326. // _ms_TVi.mask = TVIF_STATE; \
  8327. // _ms_TVi.hItem = hti; \
  8328. // _ms_TVi.stateMask = _mask;\
  8329. // _ms_TVi.state = data;\
  8330. // SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi);\
  8331. // }
  8332. Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT);
  8333. var _ms_TVi : TVITEM;
  8334. Begin
  8335. _ms_TVi.mask:=TVIF_STATE;
  8336. _ms_TVi.hItem := hti;
  8337. _ms_TVi.stateMask := _mask;
  8338. _ms_TVi.state := data;
  8339. SendMessage(hwndTV,TVM_SETITEM, 0, LPARAM(@_ms_TVi));
  8340. end;
  8341. // Macro 210
  8342. //#define TreeView_SetCheckState(hwndTV, hti, fCheck) \
  8343. // TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK)
  8344. Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool );
  8345. var j : cint;
  8346. Begin
  8347. IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty)
  8348. j:=1
  8349. Else
  8350. j:=2;
  8351. TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK(j), TVIS_STATEIMAGEMASK)
  8352. end;
  8353. {$ifdef IE5plus}
  8354. // Macro 211
  8355. //#define TreeView_GetItemState(hwndTV, hti, mask) \
  8356. // (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask))
  8357. Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT;
  8358. Begin
  8359. Result:=UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, mask))
  8360. end;
  8361. // Macro 212
  8362. // #define TreeView_GetCheckState(hwndTV, hti) \
  8363. // ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1)
  8364. Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT;
  8365. Begin
  8366. Result:=((UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, TVIS_STATEIMAGEMASK) shr 12) -1));
  8367. end;
  8368. // Macro 213
  8369. // #define TreeView_SetLineColor(hwnd, clr) \
  8370. // (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr))
  8371. Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  8372. Begin
  8373. Result:=COLORREF(SendMessage((hwnd), TVM_SETLINECOLOR, 0, clr))
  8374. end;
  8375. // Macro 214
  8376. // #define TreeView_GetLineColor(hwnd) \
  8377. // (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0)
  8378. Function TreeView_GetLineColor( hwnd : hwnd):COLORREF;
  8379. Begin
  8380. Result:=COLORREF(SendMessage((hwnd), TVM_GETLINECOLOR, 0, 0))
  8381. end;
  8382. // Macro 215
  8383. // #define TreeView_MapAccIDToHTREEITEM(hwnd, id) \
  8384. // (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0)
  8385. Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id :uint):HTREEITEM;
  8386. Begin
  8387. Result:=HTREEITEM(SendMessage((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0))
  8388. end;
  8389. // Macro 216
  8390. // #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) \
  8391. // (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0)
  8392. Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT;
  8393. Begin
  8394. Result:=UINT(SendMessage((hwnd), TVM_MAPHTREEITEMTOACCID, htreeitem, 0))
  8395. end;
  8396. {$endif}
  8397. // Macro 217
  8398. //#define TabCtrl_GetImageList(hwnd) \
  8399. // (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, DWord(0))
  8400. Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST;
  8401. Begin
  8402. Result:=HIMAGELIST(SendMessage((hwnd), TCM_GETIMAGELIST, 0, LPARAM(0)))
  8403. end;
  8404. // Macro 218
  8405. //#define TabCtrl_SetImageList(hwnd, himl) \
  8406. // (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl))
  8407. Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST;
  8408. Begin
  8409. Result:=HIMAGELIST(SendMessage((hwnd), TCM_SETIMAGELIST, 0, himl))
  8410. end;
  8411. // Macro 219
  8412. //#define TabCtrl_GetItemCount(hwnd) \
  8413. // (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, DWord(0))
  8414. Function TabCtrl_GetItemCount( hwnd : hwnd):cint;
  8415. Begin
  8416. Result:=cint(SendMessage((hwnd), TCM_GETITEMCOUNT, 0, LPARAM(0)))
  8417. end;
  8418. // Macro 220
  8419. //#define TabCtrl_GetItem(hwnd, iItem, pitem) \
  8420. // (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
  8421. Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
  8422. Begin
  8423. Result:=BOOL(SendMessage((hwnd), TCM_GETITEM, iItem, LPARAM(@pitem)))
  8424. end;
  8425. // Macro 221
  8426. //#define TabCtrl_SetItem(hwnd, iItem, pitem) \
  8427. // (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem))
  8428. Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL;
  8429. Begin
  8430. Result:=BOOL(SendMessage((hwnd), TCM_SETITEM, iItem, LPARAM(@pitem)))
  8431. end;
  8432. // Macro 222
  8433. //#define TabCtrl_InsertItem(hwnd, iItem, pitem) \
  8434. // (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem))
  8435. Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;const pitem : TC_ITEM ):cint;
  8436. Begin
  8437. Result:=cint(SendMessage((hwnd), TCM_INSERTITEM, iItem, LPARAM(@pitem)))
  8438. end;
  8439. // Macro 223
  8440. //#define TabCtrl_DeleteItem(hwnd, i) \
  8441. // (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), DWord(0))
  8442. Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL;
  8443. Begin
  8444. Result:=BOOL(SendMessage((hwnd), TCM_DELETEITEM, (i), LPARAM(0)))
  8445. end;
  8446. // Macro 224
  8447. //#define TabCtrl_DeleteAllItems(hwnd) \
  8448. // (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, DWord(0))
  8449. Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL;
  8450. Begin
  8451. Result:=BOOL(SendMessage((hwnd), TCM_DELETEALLITEMS, 0, LPARAM(0)))
  8452. end;
  8453. // Macro 225
  8454. //#define TabCtrl_GetItemRect(hwnd, i, prc) \
  8455. // (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc))
  8456. Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL;
  8457. Begin
  8458. Result:=BOOL(SendMessage((hwnd), TCM_GETITEMRECT, (i), LPARAM(@prc)))
  8459. end;
  8460. // Macro 226
  8461. //#define TabCtrl_GetCurSel(hwnd) \
  8462. // (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0)
  8463. Function TabCtrl_GetCurSel( hwnd : hwnd):cint;
  8464. Begin
  8465. Result:=cint(SendMessage((hwnd), TCM_GETCURSEL, 0, 0))
  8466. end;
  8467. // Macro 227
  8468. //#define TabCtrl_SetCurSel(hwnd, i) \
  8469. // (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0)
  8470. Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint;
  8471. Begin
  8472. Result:=cint(SendMessage((hwnd), TCM_SETCURSEL, (i), 0))
  8473. end;
  8474. // Macro 228
  8475. //#define TabCtrl_HitTest(hwndTC, pinfo) \
  8476. // (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo))
  8477. Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;inline;
  8478. Begin
  8479. Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo)))
  8480. end;
  8481. Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline;
  8482. Begin
  8483. Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo)))
  8484. end;
  8485. // Macro 229
  8486. //#define TabCtrl_SetItemExtra(hwndTC, cb) \
  8487. // (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), DWord(0))
  8488. Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL;
  8489. Begin
  8490. Result:=BOOL(SendMessage((hwndTC), TCM_SETITEMEXTRA, cb, LPARAM(0)))
  8491. end;
  8492. // Macro 230
  8493. //#define TabCtrl_AdjustRect(hwnd, bLarger, prc) \
  8494. // (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc)
  8495. Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint;
  8496. Begin
  8497. Result:=cint(SendMessage(hwnd, TCM_ADJUSTRECT, Wparam(bLarger), Lparam(@prc)));
  8498. end;
  8499. // Macro 231
  8500. //#define TabCtrl_SetItemSize(hwnd, x, y) \
  8501. // (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y))
  8502. Function TabCtrl_SetItemSize( hwnd : hwnd; x : wparam ; y : lparam ):DWORD;
  8503. Begin
  8504. Result:=DWORD(SendMessage((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)))
  8505. end;
  8506. // Macro 232
  8507. //#define TabCtrl_RemoveImage(hwnd, i) \
  8508. // (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, DWord(0))
  8509. Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : WPARAM);
  8510. Begin
  8511. SendMessage((hwnd), TCM_REMOVEIMAGE, i, LPARAM(0))
  8512. end;
  8513. // Macro 233
  8514. //#define TabCtrl_SetPadding(hwnd, cx, cy) \
  8515. // (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
  8516. Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : WPARAM ; cy : LPARAM );
  8517. Begin
  8518. SendMessage((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
  8519. end;
  8520. // Macro 234
  8521. //#define TabCtrl_GetRowCount(hwnd) \
  8522. // (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, DWord(0))
  8523. Function TabCtrl_GetRowCount( hwnd : hwnd):cint;
  8524. Begin
  8525. Result:=cint(SendMessage((hwnd), TCM_GETROWCOUNT, 0, LPARAM(0)))
  8526. end;
  8527. // Macro 235
  8528. //#define TabCtrl_GetToolTips(hwnd) \
  8529. // (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, DWord(0))
  8530. Function TabCtrl_GetToolTips( hwnd : hwnd):HWND;
  8531. Begin
  8532. Result:=Windows.HWND(SendMessage((hwnd), TCM_GETTOOLTIPS, 0, LPARAM(0)))
  8533. end;
  8534. // Macro 236
  8535. //#define TabCtrl_SetToolTips(hwnd, hwndTT) \
  8536. // (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), DWord(0))
  8537. Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM);
  8538. Begin
  8539. SendMessage((hwnd), TCM_SETTOOLTIPS, hwndTT, LPARAM(0))
  8540. end;
  8541. // Macro 237
  8542. //#define TabCtrl_GetCurFocus(hwnd) \
  8543. // (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0)
  8544. Function TabCtrl_GetCurFocus( hwnd : hwnd):cint;
  8545. Begin
  8546. Result:=cint(SendMessage((hwnd), TCM_GETCURFOCUS, 0, 0))
  8547. end;
  8548. // Macro 238
  8549. //#define TabCtrl_SetCurFocus(hwnd, i) \
  8550. // SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0)
  8551. Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LPARAM );
  8552. Begin
  8553. SendMessage((hwnd),TCM_SETCURFOCUS, i, 0)
  8554. end;
  8555. // Macro 239
  8556. //#define TabCtrl_SetMinTabWidth(hwnd, x) \
  8557. // (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x)
  8558. Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WPARAM ):cint;
  8559. Begin
  8560. Result:=cint(SendMessage((hwnd), TCM_SETMINTABWIDTH, 0, x))
  8561. end;
  8562. // Macro 240
  8563. //#define TabCtrl_DeselectAll(hwnd, fExcludeFocus)\
  8564. // (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
  8565. Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM );
  8566. Begin
  8567. SendMessage((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
  8568. end;
  8569. // Macro 241
  8570. //#define TabCtrl_HighlightItem(hwnd, i, fHighlight) \
  8571. // (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0))
  8572. Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool ):BOOL;
  8573. Begin
  8574. Result:=BOOL(SendMessage((hwnd), TCM_HIGHLIGHTITEM, (i), LPARAM(MAKELONG (cint(fHighlight), 0))))
  8575. end;
  8576. // Macro 242
  8577. //#define TabCtrl_SetExtendedStyle(hwnd, dw)\
  8578. // (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
  8579. Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw : LPARAM):DWORD;
  8580. Begin
  8581. Result:=DWORD(SendMessage((hwnd), TCM_SETEXTENDEDSTYLE, 0,lparam(dw)))
  8582. end;
  8583. // Macro 243
  8584. //#define TabCtrl_GetExtendedStyle(hwnd)\
  8585. // (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
  8586. Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD;
  8587. Begin
  8588. Result:=DWORD(SendMessage((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0))
  8589. end;
  8590. // Macro 244
  8591. //#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) \
  8592. // (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  8593. Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL;
  8594. Begin
  8595. Result:=BOOL(SendMessage((hwnd), TCM_SETUNICODEFORMAT, fUnicode, 0))
  8596. end;
  8597. // Macro 245
  8598. //#define TabCtrl_GetUnicodeFormat(hwnd) \
  8599. // (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0)
  8600. Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL;
  8601. Begin
  8602. Result:=BOOL(SendMessage((hwnd), TCM_GETUNICODEFORMAT, 0, 0));
  8603. end;
  8604. // Macro 246
  8605. //#define Animate_Create(hwndP, id, dwStyle, hInstance) \
  8606. // CreateWindow(ANIMATE_CLASS, NULL, \
  8607. // dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL)
  8608. Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND;
  8609. Begin
  8610. result:=CreateWindow(ANIMATE_CLASS, NIL,
  8611. dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NIL);
  8612. end;
  8613. // Macro 247
  8614. //#define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName))
  8615. Function Animate_Open(hwndP :HWND;szName:LPTSTR):BOOL;
  8616. Begin
  8617. Result:=BOOL(SendMessage(hwndp, ACM_OPEN, 0, LPARAM(szName)));
  8618. end;
  8619. // Macro 248
  8620. //#define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName))
  8621. Function Animate_OpenEx(hwndP :HWND;HInst:HInst; szName:LPTSTR):BOOL;
  8622. Begin
  8623. Result:=BOOL(SendMessage(hwndp, ACM_OPEN, hinst, LPARAM(szName)));
  8624. end;
  8625. // Macro 249
  8626. //#define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to))
  8627. Function Animate_Play(hwndP :HWND;from,_to,rep:uint):BOOL;
  8628. Begin
  8629. Result:=BOOL(SendMessage(hwndP, ACM_PLAY, wparam(rep), LPARAM(MAKELONG(From,_to))));
  8630. end;
  8631. // Macro 250
  8632. //#define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0)
  8633. Function Animate_stop(hwndP :HWND):BOOL;
  8634. Begin
  8635. Result:=BOOL(SendMessage(hwndP, ACM_STOP, 0, 0));
  8636. end;
  8637. // Macro 251
  8638. //#define Animate_Close(hwnd) Animate_Open(hwnd, NULL)
  8639. Function Animate_close(hwndP :HWND):BOOL;
  8640. Begin
  8641. Result:=BOOL(Animate_Open(hwndP,NIL));
  8642. end;
  8643. // Macro 252
  8644. //#define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1)
  8645. Function Animate_Seek(hwndP :HWND;frame:uint):BOOL;
  8646. Begin
  8647. Result:=BOOL(Animate_Play(hwndP,frame,frame,1));
  8648. end;
  8649. // Macro 253
  8650. //#define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst))
  8651. function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  8652. begin
  8653. Result:=BOOL(SendMessage(hwndmc, MCM_GETCURSEL , 0, LPARAM(lpsystime)));
  8654. end;
  8655. // Macro 254
  8656. //#define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst))
  8657. function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; inline;
  8658. begin
  8659. Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(lpsystime)));
  8660. end;
  8661. function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :SYSTEMTIME):Bool; inline;
  8662. begin
  8663. Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(@lpsystime)));
  8664. end;
  8665. // Macro 255
  8666. //#define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, DWord(0))
  8667. function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool;
  8668. begin
  8669. Result:=BOOL(SendMessage(hwndmc, MCM_GETMAXSELCOUNT, 0, LPARAM(0)));
  8670. end;
  8671. // Macro 256
  8672. //#define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), DWord(0))
  8673. function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool;
  8674. begin
  8675. Result:=BOOL(SendMessage(hwndmc, MCM_SETMAXSELCOUNT,WPARAM(N), LPARAM(0)));
  8676. end;
  8677. // Macro 257
  8678. //#define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst))
  8679. function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  8680. begin
  8681. Result:=BOOL(SendMessage(hwndmc, MCM_GETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
  8682. end;
  8683. // Macro 258
  8684. //#define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst))
  8685. function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;
  8686. begin
  8687. Result:=BOOL(SendMessage(hwndmc, MCM_SETSELRANGE,WPARAM(0), LPARAM(lpsystime)));
  8688. end;
  8689. // Macro 259
  8690. //#define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst))
  8691. function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool;
  8692. begin
  8693. Result:=BOOL(SendMessage(hwndmc, MCM_GETMONTHRANGE,WPARAM(gmr), LPARAM(lpsystime)));
  8694. end;
  8695. // Macro 260
  8696. //#define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds))
  8697. function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool;
  8698. begin
  8699. Result:=BOOL(SendMessage(hwndmc, MCM_SETDAYSTATE,WPARAM(gmr), LPARAM(lpDay)));
  8700. end;
  8701. // Macro 261
  8702. // #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc))
  8703. function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline;
  8704. begin
  8705. Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(lpr)));
  8706. end;
  8707. function MonthCal_GetMinReqRect(hwndMC:HWND;var lpr :TRect):Bool;inline;
  8708. begin
  8709. Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(@lpr)));
  8710. end;
  8711. // Macro 262
  8712. // #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr)
  8713. function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline;
  8714. begin
  8715. Result:=DWORD(SendMessage(hwndmc, MCM_SETCOLOR,ic, LPARAM(clr)));
  8716. end;
  8717. // Macro 263
  8718. // #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0)
  8719. function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool;
  8720. begin
  8721. Result:=BOOL(SendMessage(hwndmc, MCM_GETCOLOR,ic, 0));
  8722. end;
  8723. // Macro 264
  8724. // #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst))
  8725. function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
  8726. begin
  8727. Result:=BOOL(SendMessage(hwndmc, MCM_SETTODAY,0, LPARAM(lps)));
  8728. end;
  8729. // Macro 265
  8730. // #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst))
  8731. function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool;
  8732. begin
  8733. Result:=BOOL(SendMessage(hwndmc, MCM_GETTODAY,0, LPARAM(lps)));
  8734. end;
  8735. // Macro 266
  8736. // #define MonthCal_HitTest(hmc, pinfo) \
  8737. // SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo))
  8738. FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD;
  8739. Begin
  8740. Result:=DWORD(SendMessage(hmc, MCM_HITTEST, 0, LPARAM(pinfo)));
  8741. end;
  8742. // Macro 267
  8743. // #define MonthCal_SetFirstDayOfWeek(hmc, iDay) \
  8744. // SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay)
  8745. function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD;
  8746. Begin
  8747. Result:=SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay);
  8748. end;
  8749. // Macro 268
  8750. // #define MonthCal_GetFirstDayOfWeek(hmc) \
  8751. // (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0)
  8752. Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD;
  8753. Begin
  8754. Result:=DWORD(SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0))
  8755. end;
  8756. // Macro 269
  8757. // #define MonthCal_GetRange(hmc, rgst) \
  8758. // (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst))
  8759. Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD;
  8760. Begin
  8761. Result:=DWORD(SendMessage(hmc, MCM_GETRANGE, 0, lparam(rgst)));
  8762. end;
  8763. // Macro 270
  8764. // #define MonthCal_SetRange(hmc, gd, rgst) \
  8765. // (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
  8766. Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL;
  8767. Begin
  8768. Result:=BOOL(SendMessage(hmc, MCM_SETRANGE, gd,LPARAM(rgst)))
  8769. end;
  8770. // Macro 271
  8771. // #define MonthCal_GetMonthDelta(hmc) \
  8772. // (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0)
  8773. Function MonthCal_GetMonthDelta( hmc :hwnd ):cint;
  8774. Begin
  8775. Result:=cint(SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0))
  8776. end;
  8777. // Macro 272
  8778. // #define MonthCal_SetMonthDelta(hmc, n) \
  8779. // (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0)
  8780. Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint;
  8781. Begin
  8782. Result:=cint(SendMessage(hmc, MCM_SETMONTHDELTA, n, 0))
  8783. end;
  8784. // Macro 273
  8785. // #define MonthCal_GetMaxTodayWidth(hmc) \
  8786. // (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0)
  8787. Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD;
  8788. Begin
  8789. Result:=DWORD(SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0))
  8790. end;
  8791. // Macro 274
  8792. // #define MonthCal_SetUnicodeFormat(hwnd, fUnicode) \
  8793. // (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  8794. Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL;
  8795. Begin
  8796. Result:=BOOL(SendMessage((hwnd), MCM_SETUNICODEFORMAT, wparam(fUnicode), 0))
  8797. end;
  8798. // Macro 275
  8799. // #define MonthCal_GetUnicodeFormat(hwnd) \
  8800. // (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0)
  8801. Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL;
  8802. Begin
  8803. Result:=BOOL(SendMessage((hwnd), MCM_GETUNICODEFORMAT, 0, 0))
  8804. end;
  8805. // Macro 276
  8806. // #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst))
  8807. // Macro 277
  8808. //#define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst))
  8809. function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline;
  8810. begin
  8811. result:=BOOL(SendMessage(hdp, DTM_SETSYSTEMTIME, WPARAM(gd), LPARAM(@pst)));
  8812. end;
  8813. // Macro 278
  8814. //#define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
  8815. // Macro 279
  8816. //#define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
  8817. function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline;
  8818. begin
  8819. result:=BOOL(SendMessage(hdp, DTM_SETRANGE, WPARAM(gdtr), LPARAM(rgst)));
  8820. end;
  8821. // Macro 280
  8822. //#define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
  8823. // Macro 281
  8824. //#define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr)
  8825. function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline;
  8826. begin
  8827. result:=TColorRef(SendMessage(hdp, DTM_SETMCCOLOR, iColor, clr));
  8828. end;
  8829. // Macro 282
  8830. //#define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0)
  8831. // Macro 283
  8832. //#define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0)
  8833. function DateTime_GetMonthCal(hdp: HWND): HWND;inline;
  8834. begin
  8835. result:=HWND(SendMessage(hdp, DTM_GETMONTHCAL, 0, 0));
  8836. end;
  8837. // Macro 284
  8838. //#define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw))
  8839. // Macro 285
  8840. //#define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0)
  8841. // Macro 286
  8842. //#define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low)))
  8843. // Macro 287
  8844. //#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
  8845. // Macro 288
  8846. //#define FIRST_IPADDRESS(x) ((x>>24) & 0xff)
  8847. // Macro 289
  8848. //#define SECOND_IPADDRESS(x) ((x>>16) & 0xff)
  8849. // Macro 290
  8850. //#define THIRD_IPADDRESS(x) ((x>>8) & 0xff)
  8851. // Macro 291
  8852. //#define FOURTH_IPADDRESS(x) (x & 0xff)
  8853. // Macro 292
  8854. //#define Pager_SetChild(hwnd, hwndChild) \
  8855. // (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild))
  8856. Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM);
  8857. Begin
  8858. SendMessage((hwnd), PGM_SETCHILD, 0, hwndChild)
  8859. end;
  8860. // Macro 293
  8861. //#define Pager_RecalcSize(hwnd) \
  8862. // (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0)
  8863. Procedure Pager_RecalcSize( hwnd : hwnd);
  8864. Begin
  8865. SendMessage((hwnd), PGM_RECALCSIZE, 0, 0)
  8866. end;
  8867. // Macro 294
  8868. //#define Pager_ForwardMouse(hwnd, bForward) \
  8869. // (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0)
  8870. Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM);
  8871. Begin
  8872. SendMessage((hwnd), PGM_FORWARDMOUSE, bForward, 0)
  8873. end;
  8874. // Macro 295
  8875. //#define Pager_SetBkColor(hwnd, clr) \
  8876. // (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr))
  8877. Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF;
  8878. Begin
  8879. Result:=COLORREF(SendMessage((hwnd), PGM_SETBKCOLOR, 0, clr))
  8880. end;
  8881. // Macro 296
  8882. //#define Pager_GetBkColor(hwnd) \
  8883. // (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0)
  8884. Function Pager_GetBkColor( hwnd : hwnd):COLORREF;
  8885. Begin
  8886. Result:=COLORREF(SendMessage((hwnd), PGM_GETBKCOLOR, 0, 0))
  8887. end;
  8888. // Macro 297
  8889. //#define Pager_SetBorder(hwnd, iBorder) \
  8890. // (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder))
  8891. Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint;
  8892. Begin
  8893. Result:=cint(SendMessage((hwnd), PGM_SETBORDER, 0, iBorder))
  8894. end;
  8895. // Macro 298
  8896. // #define Pager_GetBorder(hwnd) \
  8897. // (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0)
  8898. Function Pager_GetBorder( hwnd : hwnd):cint;
  8899. Begin
  8900. Result:=cint(SendMessage((hwnd), PGM_GETBORDER, 0, 0))
  8901. end;
  8902. // Macro 299
  8903. //#define Pager_SetPos(hwnd, iPos) \
  8904. // (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos))
  8905. Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint;
  8906. Begin
  8907. Result:=cint(SendMessage((hwnd), PGM_SETPOS, 0, iPos))
  8908. end;
  8909. // Macro 300
  8910. //#define Pager_GetPos(hwnd) \
  8911. // (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0)
  8912. Function Pager_GetPos( hwnd : hwnd):cint;
  8913. Begin
  8914. Result:=cint(SendMessage((hwnd), PGM_GETPOS, 0, 0))
  8915. end;
  8916. // Macro 301
  8917. //#define Pager_SetButtonSize(hwnd, iSize) \
  8918. // (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize))
  8919. Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint;
  8920. Begin
  8921. Result:=cint(SendMessage((hwnd), PGM_SETBUTTONSIZE, 0, iSize))
  8922. end;
  8923. // Macro 302
  8924. //#define Pager_GetButtonSize(hwnd) \
  8925. // (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0)
  8926. Function Pager_GetButtonSize( hwnd : hwnd):cint;
  8927. Begin
  8928. Result:=cint(SendMessage((hwnd), PGM_GETBUTTONSIZE, 0,0))
  8929. end;
  8930. // Macro 303
  8931. //#define Pager_GetButtonState(hwnd, iButton) \
  8932. // (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton))
  8933. Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD;
  8934. Begin
  8935. Result:=DWORD(SendMessage((hwnd), PGM_GETBUTTONSTATE, 0, iButton))
  8936. end;
  8937. // Macro 304
  8938. // #define Pager_GetDropTarget(hwnd, ppdt) \
  8939. // (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt))
  8940. Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM);
  8941. Begin
  8942. SendMessage((hwnd), PGM_GETDROPTARGET, 0, ppdt)
  8943. end;
  8944. // Macro 305
  8945. // #define Button_GetIdealSize(hwnd, psize)\
  8946. // (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize))
  8947. Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL;
  8948. Begin
  8949. Result:=BOOL(SendMessage((hwnd), BCM_GETIDEALSIZE, 0, psize))
  8950. end;
  8951. // Macro 306
  8952. // #define Button_SetImageList(hwnd, pbuttonImagelist)\
  8953. // (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
  8954. Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
  8955. Begin
  8956. Result:=BOOL(SendMessage((hwnd), BCM_SETIMAGELIST, 0, pbuttonImagelist))
  8957. end;
  8958. // Macro 307
  8959. // #define Button_GetImageList(hwnd, pbuttonImagelist)\
  8960. // (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist))
  8961. Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL;
  8962. Begin
  8963. Result:=BOOL(SendMessage((hwnd), BCM_GETIMAGELIST, 0, pbuttonImagelist))
  8964. end;
  8965. // Macro 308
  8966. // #define Button_SetTextMargin(hwnd, pmargin)\
  8967. // (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin))
  8968. Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
  8969. Begin
  8970. Result:=BOOL(SendMessage((hwnd), BCM_SETTEXTMARGIN, 0, pmargin))
  8971. end;
  8972. // Macro 309
  8973. // #define Button_GetTextMargin(hwnd, pmargin)\
  8974. // (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin))
  8975. Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL;
  8976. Begin
  8977. Result:=BOOL(SendMessage((hwnd), BCM_GETTEXTMARGIN, 0, pmargin))
  8978. end;
  8979. // Macro 310
  8980. // #define Edit_SetCueBannerText(hwnd, lpcwText) \
  8981. // (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText))
  8982. Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL;
  8983. Begin
  8984. Result:=BOOL(SendMessage((hwnd), EM_SETCUEBANNER, 0, lpcwText))
  8985. end;
  8986. // Macro 311
  8987. //#define Edit_GetCueBannerText(hwnd, lpwText, cchText) \
  8988. // (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText))
  8989. Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL;
  8990. Begin
  8991. Result:=BOOL(SendMessage((hwnd), EM_GETCUEBANNER, lpwText, cchText))
  8992. end;
  8993. // Macro 312
  8994. // #define Edit_ShowBalloonTip(hwnd, peditballoontip) \
  8995. // (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip))
  8996. Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL;
  8997. Begin
  8998. Result:=BOOL(SendMessage((hwnd), EM_SHOWBALLOONTIP, 0, peditballoontip))
  8999. end;
  9000. // Macro 313
  9001. // #define Edit_HideBalloonTip(hwnd) \
  9002. // (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0)
  9003. Function Edit_HideBalloonTip( hwnd : hwnd):BOOL;
  9004. Begin
  9005. Result:=BOOL(SendMessage((hwnd), EM_HIDEBALLOONTIP, 0, 0))
  9006. end;
  9007. // Macro 314
  9008. //#define ComboBox_SetMinVisible(hwnd, iMinVisible) \
  9009. // (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0)
  9010. Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL;
  9011. Begin
  9012. Result:=BOOL(SendMessage((hwnd), CB_SETMINVISIBLE, iMinVisible, 0))
  9013. end;
  9014. // Macro 315
  9015. // #define ComboBox_GetMinVisible(hwnd) \
  9016. // (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0)
  9017. Function ComboBox_GetMinVisible( hwnd : hwnd):cint;
  9018. Begin
  9019. Result:=cint(SendMessage((hwnd), CB_GETMINVISIBLE, 0, 0))
  9020. end;
  9021. End.