commctrl.pp 379 KB

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