commctrl.pp 379 KB

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