jwawinuser.pas 560 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910
  1. {******************************************************************************}
  2. { }
  3. { Windows User API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: winuser.h, released June 2000. The original Pascal }
  9. { code is: WinUser.pas, released December 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  16. { }
  17. { You may retrieve the latest version of this file at the Project JEDI }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. // $Id: JwaWinUser.pas,v 1.16 2005/09/06 16:36:51 marquardt Exp $
  43. {$IFNDEF JWA_INCLUDEMODE}
  44. unit JwaWinUser;
  45. {$WEAKPACKAGEUNIT}
  46. {$I jediapilib.inc}
  47. interface
  48. uses
  49. JwaWinBase, JwaWinGDI, JwaWinNT, JwaWinType;
  50. {$ENDIF !JWA_INCLUDEMODE}
  51. {$IFDEF JWA_INTERFACESECTION}
  52. {$HPPEMIT ''}
  53. {$HPPEMIT '#include "WinUser.h"'}
  54. {$HPPEMIT ''}
  55. const
  56. UINT_MAX = UINT($FFFFFFFF); // from limits.h TODO
  57. {$EXTERNALSYM UINT_MAX}
  58. type
  59. HDWP = HANDLE;
  60. {$EXTERNALSYM HDWP}
  61. MENUTEMPLATEA = Pointer;
  62. {$EXTERNALSYM MENUTEMPLATEA}
  63. MENUTEMPLATEW = Pointer;
  64. {$EXTERNALSYM MENUTEMPLATEW}
  65. {$IFDEF UNICODE}
  66. MENUTEMPLATE = MENUTEMPLATEW;
  67. {$EXTERNALSYM MENUTEMPLATE}
  68. {$ELSE}
  69. MENUTEMPLATE = MENUTEMPLATEA;
  70. {$EXTERNALSYM MENUTEMPLATE}
  71. {$ENDIF UNICODE}
  72. LPMENUTEMPLATEA = PVOID;
  73. {$EXTERNALSYM LPMENUTEMPLATEA}
  74. LPMENUTEMPLATEW = PVOID;
  75. {$EXTERNALSYM LPMENUTEMPLATEW}
  76. {$IFDEF UNICODE}
  77. LPMENUTEMPLATE = LPMENUTEMPLATEW;
  78. {$EXTERNALSYM LPMENUTEMPLATE}
  79. {$ELSE}
  80. LPMENUTEMPLATE = LPMENUTEMPLATEA;
  81. {$EXTERNALSYM LPMENUTEMPLATE}
  82. {$ENDIF UNICODE}
  83. WNDPROC = function(hWnd: HWND; uMsg: UINT; lParam: WPARAM; wParam: LPARAM): LRESULT; stdcall;
  84. {$EXTERNALSYM WNDPROC}
  85. DLGPROC = function(hwndDlg: HWND; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): INT_PTR; stdcall;
  86. {$EXTERNALSYM DLGPROC}
  87. TIMERPROC = procedure(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
  88. {$EXTERNALSYM TIMERPROC}
  89. GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cchData: Integer): BOOL; stdcall;
  90. {$EXTERNALSYM GRAYSTRINGPROC}
  91. WNDENUMPROC = function(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
  92. {$EXTERNALSYM WNDENUMPROC}
  93. HOOKPROC = function(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  94. {$EXTERNALSYM HOOKPROC}
  95. SENDASYNCPROC = procedure(hwnd: HWND; uMsg: UINT; dwData: ULONG_PTR; lResult: LRESULT); stdcall;
  96. {$EXTERNALSYM SENDASYNCPROC}
  97. PROPENUMPROCA = function(hwnd: HWND; lpszString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  98. {$EXTERNALSYM PROPENUMPROCA}
  99. PROPENUMPROCW = function(hwnd: HWND; lpszString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  100. {$EXTERNALSYM PROPENUMPROCW}
  101. PROPENUMPROCEXA = function(hwnd: HWND; lpszString: LPSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  102. {$EXTERNALSYM PROPENUMPROCEXA}
  103. PROPENUMPROCEXW = function(hwnd: HWND; lpszString: LPWSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  104. {$EXTERNALSYM PROPENUMPROCEXW}
  105. EDITWORDBREAKPROCA = function(lpch: LPSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  106. {$EXTERNALSYM EDITWORDBREAKPROCA}
  107. EDITWORDBREAKPROCW = function(lpch: LPWSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  108. {$EXTERNALSYM EDITWORDBREAKPROCW}
  109. DRAWSTATEPROC = function(hdc: HDC; lData: LPARAM; wData: WPARAM; cx, cy: Integer): BOOL; stdcall;
  110. {$EXTERNALSYM DRAWSTATEPROC}
  111. {$IFDEF UNICODE}
  112. PROPENUMPROC = PROPENUMPROCW;
  113. {$EXTERNALSYM PROPENUMPROC}
  114. PROPENUMPROCEX = PROPENUMPROCEXW;
  115. {$EXTERNALSYM PROPENUMPROCEX}
  116. EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
  117. {$EXTERNALSYM EDITWORDBREAKPROC}
  118. {$ELSE}
  119. PROPENUMPROC = PROPENUMPROCA;
  120. {$EXTERNALSYM PROPENUMPROC}
  121. PROPENUMPROCEX = PROPENUMPROCEXA;
  122. {$EXTERNALSYM PROPENUMPROCEX}
  123. EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
  124. {$EXTERNALSYM EDITWORDBREAKPROC}
  125. {$ENDIF UNICODE}
  126. NAMEENUMPROCA = function(lpstr: LPSTR; lParam: LPARAM): BOOL; stdcall;
  127. {$EXTERNALSYM NAMEENUMPROCA}
  128. NAMEENUMPROCW = function(lpstr: LPWSTR; lParam: LPARAM): BOOL; stdcall;
  129. {$EXTERNALSYM NAMEENUMPROCW}
  130. WINSTAENUMPROCA = NAMEENUMPROCA;
  131. {$EXTERNALSYM WINSTAENUMPROCA}
  132. DESKTOPENUMPROCA = NAMEENUMPROCA;
  133. {$EXTERNALSYM DESKTOPENUMPROCA}
  134. WINSTAENUMPROCW = NAMEENUMPROCW;
  135. {$EXTERNALSYM WINSTAENUMPROCW}
  136. DESKTOPENUMPROCW = NAMEENUMPROCW;
  137. {$EXTERNALSYM DESKTOPENUMPROCW}
  138. {$IFDEF UNICODE}
  139. WINSTAENUMPROC = WINSTAENUMPROCW;
  140. {$EXTERNALSYM WINSTAENUMPROC}
  141. DESKTOPENUMPROC = DESKTOPENUMPROCW;
  142. {$EXTERNALSYM DESKTOPENUMPROC}
  143. {$ELSE}
  144. WINSTAENUMPROC = WINSTAENUMPROCA;
  145. {$EXTERNALSYM WINSTAENUMPROC}
  146. DESKTOPENUMPROC = DESKTOPENUMPROCA;
  147. {$EXTERNALSYM DESKTOPENUMPROC}
  148. {$ENDIF UNICODE}
  149. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  150. {$EXTERNALSYM IS_INTRESOURCE}
  151. type
  152. MAKEINTRESOURCEA = LPSTR;
  153. {$EXTERNALSYM MAKEINTRESOURCEA}
  154. MAKEINTRESOURCEW = LPWSTR;
  155. {$EXTERNALSYM MAKEINTRESOURCEW}
  156. {$IFDEF UNICODE}
  157. MAKEINTRESOURCE = MAKEINTRESOURCEW;
  158. {$EXTERNALSYM MAKEINTRESOURCE}
  159. {$ELSE}
  160. MAKEINTRESOURCE = MAKEINTRESOURCEA;
  161. {$EXTERNALSYM MAKEINTRESOURCE}
  162. {$ENDIF UNICODE}
  163. //
  164. // Predefined Resource Types
  165. //
  166. const
  167. RT_CURSOR = MAKEINTRESOURCE(1);
  168. {$EXTERNALSYM RT_CURSOR}
  169. RT_BITMAP = MAKEINTRESOURCE(2);
  170. {$EXTERNALSYM RT_BITMAP}
  171. RT_ICON = MAKEINTRESOURCE(3);
  172. {$EXTERNALSYM RT_ICON}
  173. RT_MENU = MAKEINTRESOURCE(4);
  174. {$EXTERNALSYM RT_MENU}
  175. RT_DIALOG = MAKEINTRESOURCE(5);
  176. {$EXTERNALSYM RT_DIALOG}
  177. RT_STRING = MAKEINTRESOURCE(6);
  178. {$EXTERNALSYM RT_STRING}
  179. RT_FONTDIR = MAKEINTRESOURCE(7);
  180. {$EXTERNALSYM RT_FONTDIR}
  181. RT_FONT = MAKEINTRESOURCE(8);
  182. {$EXTERNALSYM RT_FONT}
  183. RT_ACCELERATOR = MAKEINTRESOURCE(9);
  184. {$EXTERNALSYM RT_ACCELERATOR}
  185. RT_RCDATA = MAKEINTRESOURCE(10);
  186. {$EXTERNALSYM RT_RCDATA}
  187. RT_MESSAGETABLE = MAKEINTRESOURCE(11);
  188. {$EXTERNALSYM RT_MESSAGETABLE}
  189. DIFFERENCE = 11;
  190. {$EXTERNALSYM DIFFERENCE}
  191. RT_GROUP_CURSOR = MAKEINTRESOURCE(ULONG_PTR(RT_CURSOR) + DIFFERENCE);
  192. {$EXTERNALSYM RT_GROUP_CURSOR}
  193. RT_GROUP_ICON = MAKEINTRESOURCE(ULONG_PTR(RT_ICON) + DIFFERENCE);
  194. {$EXTERNALSYM RT_GROUP_ICON}
  195. RT_VERSION = MAKEINTRESOURCE(16);
  196. {$EXTERNALSYM RT_VERSION}
  197. RT_DLGINCLUDE = MAKEINTRESOURCE(17);
  198. {$EXTERNALSYM RT_DLGINCLUDE}
  199. RT_PLUGPLAY = MAKEINTRESOURCE(19);
  200. {$EXTERNALSYM RT_PLUGPLAY}
  201. RT_VXD = MAKEINTRESOURCE(20);
  202. {$EXTERNALSYM RT_VXD}
  203. RT_ANICURSOR = MAKEINTRESOURCE(21);
  204. {$EXTERNALSYM RT_ANICURSOR}
  205. RT_ANIICON = MAKEINTRESOURCE(22);
  206. {$EXTERNALSYM RT_ANIICON}
  207. RT_HTML = MAKEINTRESOURCE(23);
  208. {$EXTERNALSYM RT_HTML}
  209. RT_MANIFEST = MAKEINTRESOURCE(24);
  210. CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1);
  211. {$EXTERNALSYM CREATEPROCESS_MANIFEST_RESOURCE_ID}
  212. ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(2);
  213. {$EXTERNALSYM ISOLATIONAWARE_MANIFEST_RESOURCE_ID}
  214. ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(3);
  215. {$EXTERNALSYM ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID}
  216. MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1{inclusive});
  217. {$EXTERNALSYM MINIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  218. MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(16{inclusive});
  219. {$EXTERNALSYM MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  220. type
  221. va_list = PChar;
  222. {$EXTERNALSYM va_list}
  223. function wvsprintfA(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
  224. {$EXTERNALSYM wvsprintfA}
  225. function wvsprintfW(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
  226. {$EXTERNALSYM wvsprintfW}
  227. function wvsprintf(Output: LPTSTR; Format: LPCTSTR; arglist: va_list): Integer; stdcall;
  228. {$EXTERNALSYM wvsprintf}
  229. function wsprintfA(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
  230. {$EXTERNALSYM wsprintfA}
  231. function wsprintfW(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
  232. {$EXTERNALSYM wsprintfW}
  233. function wsprintf(Output: LPTSTR; Format: LPCTSTR): Integer; stdcall;
  234. {$EXTERNALSYM wsprintf}
  235. //
  236. // SPI_SETDESKWALLPAPER defined constants
  237. //
  238. const
  239. SETWALLPAPER_DEFAULT = LPWSTR(-1);
  240. {$EXTERNALSYM SETWALLPAPER_DEFAULT}
  241. //
  242. // Scroll Bar Constants
  243. //
  244. SB_HORZ = 0;
  245. {$EXTERNALSYM SB_HORZ}
  246. SB_VERT = 1;
  247. {$EXTERNALSYM SB_VERT}
  248. SB_CTL = 2;
  249. {$EXTERNALSYM SB_CTL}
  250. SB_BOTH = 3;
  251. {$EXTERNALSYM SB_BOTH}
  252. //
  253. // Scroll Bar Commands
  254. //
  255. SB_LINEUP = 0;
  256. {$EXTERNALSYM SB_LINEUP}
  257. SB_LINELEFT = 0;
  258. {$EXTERNALSYM SB_LINELEFT}
  259. SB_LINEDOWN = 1;
  260. {$EXTERNALSYM SB_LINEDOWN}
  261. SB_LINERIGHT = 1;
  262. {$EXTERNALSYM SB_LINERIGHT}
  263. SB_PAGEUP = 2;
  264. {$EXTERNALSYM SB_PAGEUP}
  265. SB_PAGELEFT = 2;
  266. {$EXTERNALSYM SB_PAGELEFT}
  267. SB_PAGEDOWN = 3;
  268. {$EXTERNALSYM SB_PAGEDOWN}
  269. SB_PAGERIGHT = 3;
  270. {$EXTERNALSYM SB_PAGERIGHT}
  271. SB_THUMBPOSITION = 4;
  272. {$EXTERNALSYM SB_THUMBPOSITION}
  273. SB_THUMBTRACK = 5;
  274. {$EXTERNALSYM SB_THUMBTRACK}
  275. SB_TOP = 6;
  276. {$EXTERNALSYM SB_TOP}
  277. SB_LEFT = 6;
  278. {$EXTERNALSYM SB_LEFT}
  279. SB_BOTTOM = 7;
  280. {$EXTERNALSYM SB_BOTTOM}
  281. SB_RIGHT = 7;
  282. {$EXTERNALSYM SB_RIGHT}
  283. SB_ENDSCROLL = 8;
  284. {$EXTERNALSYM SB_ENDSCROLL}
  285. //
  286. // ShowWindow() Commands
  287. //
  288. SW_HIDE = 0;
  289. {$EXTERNALSYM SW_HIDE}
  290. SW_SHOWNORMAL = 1;
  291. {$EXTERNALSYM SW_SHOWNORMAL}
  292. SW_NORMAL = 1;
  293. {$EXTERNALSYM SW_NORMAL}
  294. SW_SHOWMINIMIZED = 2;
  295. {$EXTERNALSYM SW_SHOWMINIMIZED}
  296. SW_SHOWMAXIMIZED = 3;
  297. {$EXTERNALSYM SW_SHOWMAXIMIZED}
  298. SW_MAXIMIZE = 3;
  299. {$EXTERNALSYM SW_MAXIMIZE}
  300. SW_SHOWNOACTIVATE = 4;
  301. {$EXTERNALSYM SW_SHOWNOACTIVATE}
  302. SW_SHOW = 5;
  303. {$EXTERNALSYM SW_SHOW}
  304. SW_MINIMIZE = 6;
  305. {$EXTERNALSYM SW_MINIMIZE}
  306. SW_SHOWMINNOACTIVE = 7;
  307. {$EXTERNALSYM SW_SHOWMINNOACTIVE}
  308. SW_SHOWNA = 8;
  309. {$EXTERNALSYM SW_SHOWNA}
  310. SW_RESTORE = 9;
  311. {$EXTERNALSYM SW_RESTORE}
  312. SW_SHOWDEFAULT = 10;
  313. {$EXTERNALSYM SW_SHOWDEFAULT}
  314. SW_FORCEMINIMIZE = 11;
  315. {$EXTERNALSYM SW_FORCEMINIMIZE}
  316. SW_MAX = 11;
  317. {$EXTERNALSYM SW_MAX}
  318. //
  319. // Old ShowWindow() Commands
  320. //
  321. HIDE_WINDOW = 0;
  322. {$EXTERNALSYM HIDE_WINDOW}
  323. SHOW_OPENWINDOW = 1;
  324. {$EXTERNALSYM SHOW_OPENWINDOW}
  325. SHOW_ICONWINDOW = 2;
  326. {$EXTERNALSYM SHOW_ICONWINDOW}
  327. SHOW_FULLSCREEN = 3;
  328. {$EXTERNALSYM SHOW_FULLSCREEN}
  329. SHOW_OPENNOACTIVATE = 4;
  330. {$EXTERNALSYM SHOW_OPENNOACTIVATE}
  331. //
  332. // Identifiers for the WM_SHOWWINDOW message
  333. //
  334. SW_PARENTCLOSING = 1;
  335. {$EXTERNALSYM SW_PARENTCLOSING}
  336. SW_OTHERZOOM = 2;
  337. {$EXTERNALSYM SW_OTHERZOOM}
  338. SW_PARENTOPENING = 3;
  339. {$EXTERNALSYM SW_PARENTOPENING}
  340. SW_OTHERUNZOOM = 4;
  341. {$EXTERNALSYM SW_OTHERUNZOOM}
  342. //
  343. // AnimateWindow() Commands
  344. //
  345. AW_HOR_POSITIVE = $00000001;
  346. {$EXTERNALSYM AW_HOR_POSITIVE}
  347. AW_HOR_NEGATIVE = $00000002;
  348. {$EXTERNALSYM AW_HOR_NEGATIVE}
  349. AW_VER_POSITIVE = $00000004;
  350. {$EXTERNALSYM AW_VER_POSITIVE}
  351. AW_VER_NEGATIVE = $00000008;
  352. {$EXTERNALSYM AW_VER_NEGATIVE}
  353. AW_CENTER = $00000010;
  354. {$EXTERNALSYM AW_CENTER}
  355. AW_HIDE = $00010000;
  356. {$EXTERNALSYM AW_HIDE}
  357. AW_ACTIVATE = $00020000;
  358. {$EXTERNALSYM AW_ACTIVATE}
  359. AW_SLIDE = $00040000;
  360. {$EXTERNALSYM AW_SLIDE}
  361. AW_BLEND = $00080000;
  362. {$EXTERNALSYM AW_BLEND}
  363. //
  364. // WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
  365. //
  366. KF_EXTENDED = $0100;
  367. {$EXTERNALSYM KF_EXTENDED}
  368. KF_DLGMODE = $0800;
  369. {$EXTERNALSYM KF_DLGMODE}
  370. KF_MENUMODE = $1000;
  371. {$EXTERNALSYM KF_MENUMODE}
  372. KF_ALTDOWN = $2000;
  373. {$EXTERNALSYM KF_ALTDOWN}
  374. KF_REPEAT = $4000;
  375. {$EXTERNALSYM KF_REPEAT}
  376. KF_UP = $8000;
  377. {$EXTERNALSYM KF_UP}
  378. //
  379. // Virtual Keys, Standard Set
  380. //
  381. VK_LBUTTON = $01;
  382. {$EXTERNALSYM VK_LBUTTON}
  383. VK_RBUTTON = $02;
  384. {$EXTERNALSYM VK_RBUTTON}
  385. VK_CANCEL = $03;
  386. {$EXTERNALSYM VK_CANCEL}
  387. VK_MBUTTON = $04; // NOT contiguous with L & RBUTTON
  388. {$EXTERNALSYM VK_MBUTTON}
  389. {$IFDEF WIN98ME_UP}
  390. VK_XBUTTON1 = $05; // NOT contiguous with L & RBUTTON
  391. {$EXTERNALSYM VK_XBUTTON1}
  392. VK_XBUTTON2 = $06; // NOT contiguous with L & RBUTTON
  393. {$EXTERNALSYM VK_XBUTTON2}
  394. {$ENDIF WIN98ME_UP}
  395. //
  396. // 0x07 : unassigned
  397. //
  398. VK_BACK = $08;
  399. {$EXTERNALSYM VK_BACK}
  400. VK_TAB = $09;
  401. {$EXTERNALSYM VK_TAB}
  402. //
  403. // 0x0A - 0x0B : reserved
  404. //
  405. VK_CLEAR = $0C;
  406. {$EXTERNALSYM VK_CLEAR}
  407. VK_RETURN = $0D;
  408. {$EXTERNALSYM VK_RETURN}
  409. VK_SHIFT = $10;
  410. {$EXTERNALSYM VK_SHIFT}
  411. VK_CONTROL = $11;
  412. {$EXTERNALSYM VK_CONTROL}
  413. VK_MENU = $12;
  414. {$EXTERNALSYM VK_MENU}
  415. VK_PAUSE = $13;
  416. {$EXTERNALSYM VK_PAUSE}
  417. VK_CAPITAL = $14;
  418. {$EXTERNALSYM VK_CAPITAL}
  419. VK_KANA = $15;
  420. {$EXTERNALSYM VK_KANA}
  421. VK_HANGEUL = $15; // old name - should be here for compatibility
  422. {$EXTERNALSYM VK_HANGEUL}
  423. VK_HANGUL = $15;
  424. {$EXTERNALSYM VK_HANGUL}
  425. VK_JUNJA = $17;
  426. {$EXTERNALSYM VK_JUNJA}
  427. VK_FINAL = $18;
  428. {$EXTERNALSYM VK_FINAL}
  429. VK_HANJA = $19;
  430. {$EXTERNALSYM VK_HANJA}
  431. VK_KANJI = $19;
  432. {$EXTERNALSYM VK_KANJI}
  433. VK_ESCAPE = $1B;
  434. {$EXTERNALSYM VK_ESCAPE}
  435. VK_CONVERT = $1C;
  436. {$EXTERNALSYM VK_CONVERT}
  437. VK_NONCONVERT = $1D;
  438. {$EXTERNALSYM VK_NONCONVERT}
  439. VK_ACCEPT = $1E;
  440. {$EXTERNALSYM VK_ACCEPT}
  441. VK_MODECHANGE = $1F;
  442. {$EXTERNALSYM VK_MODECHANGE}
  443. VK_SPACE = $20;
  444. {$EXTERNALSYM VK_SPACE}
  445. VK_PRIOR = $21;
  446. {$EXTERNALSYM VK_PRIOR}
  447. VK_NEXT = $22;
  448. {$EXTERNALSYM VK_NEXT}
  449. VK_END = $23;
  450. {$EXTERNALSYM VK_END}
  451. VK_HOME = $24;
  452. {$EXTERNALSYM VK_HOME}
  453. VK_LEFT = $25;
  454. {$EXTERNALSYM VK_LEFT}
  455. VK_UP = $26;
  456. {$EXTERNALSYM VK_UP}
  457. VK_RIGHT = $27;
  458. {$EXTERNALSYM VK_RIGHT}
  459. VK_DOWN = $28;
  460. {$EXTERNALSYM VK_DOWN}
  461. VK_SELECT = $29;
  462. {$EXTERNALSYM VK_SELECT}
  463. VK_PRINT = $2A;
  464. {$EXTERNALSYM VK_PRINT}
  465. VK_EXECUTE = $2B;
  466. {$EXTERNALSYM VK_EXECUTE}
  467. VK_SNAPSHOT = $2C;
  468. {$EXTERNALSYM VK_SNAPSHOT}
  469. VK_INSERT = $2D;
  470. {$EXTERNALSYM VK_INSERT}
  471. VK_DELETE = $2E;
  472. {$EXTERNALSYM VK_DELETE}
  473. VK_HELP = $2F;
  474. {$EXTERNALSYM VK_HELP}
  475. //
  476. // VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
  477. // 0x40 : unassigned
  478. // VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
  479. //
  480. VK_LWIN = $5B;
  481. {$EXTERNALSYM VK_LWIN}
  482. VK_RWIN = $5C;
  483. {$EXTERNALSYM VK_RWIN}
  484. VK_APPS = $5D;
  485. {$EXTERNALSYM VK_APPS}
  486. //
  487. // 0x5E : reserved
  488. //
  489. VK_SLEEP = $5F;
  490. {$EXTERNALSYM VK_SLEEP}
  491. VK_NUMPAD0 = $60;
  492. {$EXTERNALSYM VK_NUMPAD0}
  493. VK_NUMPAD1 = $61;
  494. {$EXTERNALSYM VK_NUMPAD1}
  495. VK_NUMPAD2 = $62;
  496. {$EXTERNALSYM VK_NUMPAD2}
  497. VK_NUMPAD3 = $63;
  498. {$EXTERNALSYM VK_NUMPAD3}
  499. VK_NUMPAD4 = $64;
  500. {$EXTERNALSYM VK_NUMPAD4}
  501. VK_NUMPAD5 = $65;
  502. {$EXTERNALSYM VK_NUMPAD5}
  503. VK_NUMPAD6 = $66;
  504. {$EXTERNALSYM VK_NUMPAD6}
  505. VK_NUMPAD7 = $67;
  506. {$EXTERNALSYM VK_NUMPAD7}
  507. VK_NUMPAD8 = $68;
  508. {$EXTERNALSYM VK_NUMPAD8}
  509. VK_NUMPAD9 = $69;
  510. {$EXTERNALSYM VK_NUMPAD9}
  511. VK_MULTIPLY = $6A;
  512. {$EXTERNALSYM VK_MULTIPLY}
  513. VK_ADD = $6B;
  514. {$EXTERNALSYM VK_ADD}
  515. VK_SEPARATOR = $6C;
  516. {$EXTERNALSYM VK_SEPARATOR}
  517. VK_SUBTRACT = $6D;
  518. {$EXTERNALSYM VK_SUBTRACT}
  519. VK_DECIMAL = $6E;
  520. {$EXTERNALSYM VK_DECIMAL}
  521. VK_DIVIDE = $6F;
  522. {$EXTERNALSYM VK_DIVIDE}
  523. VK_F1 = $70;
  524. {$EXTERNALSYM VK_F1}
  525. VK_F2 = $71;
  526. {$EXTERNALSYM VK_F2}
  527. VK_F3 = $72;
  528. {$EXTERNALSYM VK_F3}
  529. VK_F4 = $73;
  530. {$EXTERNALSYM VK_F4}
  531. VK_F5 = $74;
  532. {$EXTERNALSYM VK_F5}
  533. VK_F6 = $75;
  534. {$EXTERNALSYM VK_F6}
  535. VK_F7 = $76;
  536. {$EXTERNALSYM VK_F7}
  537. VK_F8 = $77;
  538. {$EXTERNALSYM VK_F8}
  539. VK_F9 = $78;
  540. {$EXTERNALSYM VK_F9}
  541. VK_F10 = $79;
  542. {$EXTERNALSYM VK_F10}
  543. VK_F11 = $7A;
  544. {$EXTERNALSYM VK_F11}
  545. VK_F12 = $7B;
  546. {$EXTERNALSYM VK_F12}
  547. VK_F13 = $7C;
  548. {$EXTERNALSYM VK_F13}
  549. VK_F14 = $7D;
  550. {$EXTERNALSYM VK_F14}
  551. VK_F15 = $7E;
  552. {$EXTERNALSYM VK_F15}
  553. VK_F16 = $7F;
  554. {$EXTERNALSYM VK_F16}
  555. VK_F17 = $80;
  556. {$EXTERNALSYM VK_F17}
  557. VK_F18 = $81;
  558. {$EXTERNALSYM VK_F18}
  559. VK_F19 = $82;
  560. {$EXTERNALSYM VK_F19}
  561. VK_F20 = $83;
  562. {$EXTERNALSYM VK_F20}
  563. VK_F21 = $84;
  564. {$EXTERNALSYM VK_F21}
  565. VK_F22 = $85;
  566. {$EXTERNALSYM VK_F22}
  567. VK_F23 = $86;
  568. {$EXTERNALSYM VK_F23}
  569. VK_F24 = $87;
  570. {$EXTERNALSYM VK_F24}
  571. //
  572. // 0x88 - 0x8F : unassigned
  573. //
  574. VK_NUMLOCK = $90;
  575. {$EXTERNALSYM VK_NUMLOCK}
  576. VK_SCROLL = $91;
  577. {$EXTERNALSYM VK_SCROLL}
  578. //
  579. // NEC PC-9800 kbd definitions
  580. //
  581. VK_OEM_NEC_EQUAL = $92; // '=' key on numpad
  582. {$EXTERNALSYM VK_OEM_NEC_EQUAL}
  583. //
  584. // Fujitsu/OASYS kbd definitions
  585. //
  586. VK_OEM_FJ_JISHO = $92; // 'Dictionary' key
  587. {$EXTERNALSYM VK_OEM_FJ_JISHO}
  588. VK_OEM_FJ_MASSHOU = $93; // 'Unregister word' key
  589. {$EXTERNALSYM VK_OEM_FJ_MASSHOU}
  590. VK_OEM_FJ_TOUROKU = $94; // 'Register word' key
  591. {$EXTERNALSYM VK_OEM_FJ_TOUROKU}
  592. VK_OEM_FJ_LOYA = $95; // 'Left OYAYUBI' key
  593. {$EXTERNALSYM VK_OEM_FJ_LOYA}
  594. VK_OEM_FJ_ROYA = $96; // 'Right OYAYUBI' key
  595. {$EXTERNALSYM VK_OEM_FJ_ROYA}
  596. //
  597. // 0x97 - 0x9F : unassigned
  598. //
  599. //
  600. // VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
  601. // Used only as parameters to GetAsyncKeyState() and GetKeyState().
  602. // No other API or message will distinguish left and right keys in this way.
  603. //
  604. VK_LSHIFT = $A0;
  605. {$EXTERNALSYM VK_LSHIFT}
  606. VK_RSHIFT = $A1;
  607. {$EXTERNALSYM VK_RSHIFT}
  608. VK_LCONTROL = $A2;
  609. {$EXTERNALSYM VK_LCONTROL}
  610. VK_RCONTROL = $A3;
  611. {$EXTERNALSYM VK_RCONTROL}
  612. VK_LMENU = $A4;
  613. {$EXTERNALSYM VK_LMENU}
  614. VK_RMENU = $A5;
  615. {$EXTERNALSYM VK_RMENU}
  616. {$IFDEF WIN98ME_UP}
  617. VK_BROWSER_BACK = $A6;
  618. {$EXTERNALSYM VK_BROWSER_BACK}
  619. VK_BROWSER_FORWARD = $A7;
  620. {$EXTERNALSYM VK_BROWSER_FORWARD}
  621. VK_BROWSER_REFRESH = $A8;
  622. {$EXTERNALSYM VK_BROWSER_REFRESH}
  623. VK_BROWSER_STOP = $A9;
  624. {$EXTERNALSYM VK_BROWSER_STOP}
  625. VK_BROWSER_SEARCH = $AA;
  626. {$EXTERNALSYM VK_BROWSER_SEARCH}
  627. VK_BROWSER_FAVORITES = $AB;
  628. {$EXTERNALSYM VK_BROWSER_FAVORITES}
  629. VK_BROWSER_HOME = $AC;
  630. {$EXTERNALSYM VK_BROWSER_HOME}
  631. VK_VOLUME_MUTE = $AD;
  632. {$EXTERNALSYM VK_VOLUME_MUTE}
  633. VK_VOLUME_DOWN = $AE;
  634. {$EXTERNALSYM VK_VOLUME_DOWN}
  635. VK_VOLUME_UP = $AF;
  636. {$EXTERNALSYM VK_VOLUME_UP}
  637. VK_MEDIA_NEXT_TRACK = $B0;
  638. {$EXTERNALSYM VK_MEDIA_NEXT_TRACK}
  639. VK_MEDIA_PREV_TRACK = $B1;
  640. {$EXTERNALSYM VK_MEDIA_PREV_TRACK}
  641. VK_MEDIA_STOP = $B2;
  642. {$EXTERNALSYM VK_MEDIA_STOP}
  643. VK_MEDIA_PLAY_PAUSE = $B3;
  644. {$EXTERNALSYM VK_MEDIA_PLAY_PAUSE}
  645. VK_LAUNCH_MAIL = $B4;
  646. {$EXTERNALSYM VK_LAUNCH_MAIL}
  647. VK_LAUNCH_MEDIA_SELECT = $B5;
  648. {$EXTERNALSYM VK_LAUNCH_MEDIA_SELECT}
  649. VK_LAUNCH_APP1 = $B6;
  650. {$EXTERNALSYM VK_LAUNCH_APP1}
  651. VK_LAUNCH_APP2 = $B7;
  652. {$EXTERNALSYM VK_LAUNCH_APP2}
  653. {$ENDIF WIN98ME_UP}
  654. //
  655. // 0xB8 - 0xB9 : reserved
  656. //
  657. VK_OEM_1 = $BA; // ';:' for US
  658. {$EXTERNALSYM VK_OEM_1}
  659. VK_OEM_PLUS = $BB; // '+' any country
  660. {$EXTERNALSYM VK_OEM_PLUS}
  661. VK_OEM_COMMA = $BC; // ',' any country
  662. {$EXTERNALSYM VK_OEM_COMMA}
  663. VK_OEM_MINUS = $BD; // '-' any country
  664. {$EXTERNALSYM VK_OEM_MINUS}
  665. VK_OEM_PERIOD = $BE; // '.' any country
  666. {$EXTERNALSYM VK_OEM_PERIOD}
  667. VK_OEM_2 = $BF; // '/?' for US
  668. {$EXTERNALSYM VK_OEM_2}
  669. VK_OEM_3 = $C0; // '`~' for US
  670. {$EXTERNALSYM VK_OEM_3}
  671. //
  672. // 0xC1 - 0xD7 : reserved
  673. //
  674. //
  675. // 0xD8 - 0xDA : unassigned
  676. //
  677. VK_OEM_4 = $DB; // '[{' for US
  678. {$EXTERNALSYM VK_OEM_4}
  679. VK_OEM_5 = $DC; // '\|' for US
  680. {$EXTERNALSYM VK_OEM_5}
  681. VK_OEM_6 = $DD; // ']}' for US
  682. {$EXTERNALSYM VK_OEM_6}
  683. VK_OEM_7 = $DE; // ''"' for US
  684. {$EXTERNALSYM VK_OEM_7}
  685. VK_OEM_8 = $DF;
  686. {$EXTERNALSYM VK_OEM_8}
  687. //
  688. // 0xE0 : reserved
  689. //
  690. //
  691. // Various extended or enhanced keyboards
  692. //
  693. VK_OEM_AX = $E1; // 'AX' key on Japanese AX kbd
  694. {$EXTERNALSYM VK_OEM_AX}
  695. VK_OEM_102 = $E2; // "<>" or "\|" on RT 102-key kbd.
  696. {$EXTERNALSYM VK_OEM_102}
  697. VK_ICO_HELP = $E3; // Help key on ICO
  698. {$EXTERNALSYM VK_ICO_HELP}
  699. VK_ICO_00 = $E4; // 00 key on ICO
  700. {$EXTERNALSYM VK_ICO_00}
  701. VK_PROCESSKEY = $E5;
  702. {$EXTERNALSYM VK_PROCESSKEY}
  703. VK_ICO_CLEAR = $E6;
  704. {$EXTERNALSYM VK_ICO_CLEAR}
  705. {$IFDEF WIN98ME_UP}
  706. VK_PACKET = $E7;
  707. {$EXTERNALSYM VK_PACKET}
  708. {$ENDIF WIN98ME_UP}
  709. //
  710. // 0xE8 : unassigned
  711. //
  712. //
  713. // Nokia/Ericsson definitions
  714. //
  715. VK_OEM_RESET = $E9;
  716. {$EXTERNALSYM VK_OEM_RESET}
  717. VK_OEM_JUMP = $EA;
  718. {$EXTERNALSYM VK_OEM_JUMP}
  719. VK_OEM_PA1 = $EB;
  720. {$EXTERNALSYM VK_OEM_PA1}
  721. VK_OEM_PA2 = $EC;
  722. {$EXTERNALSYM VK_OEM_PA2}
  723. VK_OEM_PA3 = $ED;
  724. {$EXTERNALSYM VK_OEM_PA3}
  725. VK_OEM_WSCTRL = $EE;
  726. {$EXTERNALSYM VK_OEM_WSCTRL}
  727. VK_OEM_CUSEL = $EF;
  728. {$EXTERNALSYM VK_OEM_CUSEL}
  729. VK_OEM_ATTN = $F0;
  730. {$EXTERNALSYM VK_OEM_ATTN}
  731. VK_OEM_FINISH = $F1;
  732. {$EXTERNALSYM VK_OEM_FINISH}
  733. VK_OEM_COPY = $F2;
  734. {$EXTERNALSYM VK_OEM_COPY}
  735. VK_OEM_AUTO = $F3;
  736. {$EXTERNALSYM VK_OEM_AUTO}
  737. VK_OEM_ENLW = $F4;
  738. {$EXTERNALSYM VK_OEM_ENLW}
  739. VK_OEM_BACKTAB = $F5;
  740. {$EXTERNALSYM VK_OEM_BACKTAB}
  741. VK_ATTN = $F6;
  742. {$EXTERNALSYM VK_ATTN}
  743. VK_CRSEL = $F7;
  744. {$EXTERNALSYM VK_CRSEL}
  745. VK_EXSEL = $F8;
  746. {$EXTERNALSYM VK_EXSEL}
  747. VK_EREOF = $F9;
  748. {$EXTERNALSYM VK_EREOF}
  749. VK_PLAY = $FA;
  750. {$EXTERNALSYM VK_PLAY}
  751. VK_ZOOM = $FB;
  752. {$EXTERNALSYM VK_ZOOM}
  753. VK_NONAME = $FC;
  754. {$EXTERNALSYM VK_NONAME}
  755. VK_PA1 = $FD;
  756. {$EXTERNALSYM VK_PA1}
  757. VK_OEM_CLEAR = $FE;
  758. {$EXTERNALSYM VK_OEM_CLEAR}
  759. //
  760. // 0xFF : reserved
  761. //
  762. //
  763. // SetWindowsHook() codes
  764. //
  765. WH_MIN = DWORD(-1);
  766. {$EXTERNALSYM WH_MIN}
  767. WH_MSGFILTER = DWORD(-1);
  768. {$EXTERNALSYM WH_MSGFILTER}
  769. WH_JOURNALRECORD = 0;
  770. {$EXTERNALSYM WH_JOURNALRECORD}
  771. WH_JOURNALPLAYBACK = 1;
  772. {$EXTERNALSYM WH_JOURNALPLAYBACK}
  773. WH_KEYBOARD = 2;
  774. {$EXTERNALSYM WH_KEYBOARD}
  775. WH_GETMESSAGE = 3;
  776. {$EXTERNALSYM WH_GETMESSAGE}
  777. WH_CALLWNDPROC = 4;
  778. {$EXTERNALSYM WH_CALLWNDPROC}
  779. WH_CBT = 5;
  780. {$EXTERNALSYM WH_CBT}
  781. WH_SYSMSGFILTER = 6;
  782. {$EXTERNALSYM WH_SYSMSGFILTER}
  783. WH_MOUSE = 7;
  784. {$EXTERNALSYM WH_MOUSE}
  785. WH_HARDWARE = 8;
  786. {$EXTERNALSYM WH_HARDWARE}
  787. WH_DEBUG = 9;
  788. {$EXTERNALSYM WH_DEBUG}
  789. WH_SHELL = 10;
  790. {$EXTERNALSYM WH_SHELL}
  791. WH_FOREGROUNDIDLE = 11;
  792. {$EXTERNALSYM WH_FOREGROUNDIDLE}
  793. WH_CALLWNDPROCRET = 12;
  794. {$EXTERNALSYM WH_CALLWNDPROCRET}
  795. {$IFDEF WINNT4_UP}
  796. WH_KEYBOARD_LL = 13;
  797. {$EXTERNALSYM WH_KEYBOARD_LL}
  798. WH_MOUSE_LL = 14;
  799. {$EXTERNALSYM WH_MOUSE_LL}
  800. {$ENDIF WINNT4_UP}
  801. {$IFDEF WINNT4_UP}
  802. WH_MAX = 14;
  803. {$EXTERNALSYM WH_MAX}
  804. {$ELSE}
  805. WH_MAX = 12;
  806. {$EXTERNALSYM WH_MAX}
  807. {$ENDIF WINNT4_UP}
  808. WH_MINHOOK = WH_MIN;
  809. {$EXTERNALSYM WH_MINHOOK}
  810. WH_MAXHOOK = WH_MAX;
  811. {$EXTERNALSYM WH_MAXHOOK}
  812. //
  813. // Hook Codes
  814. //
  815. HC_ACTION = 0;
  816. {$EXTERNALSYM HC_ACTION}
  817. HC_GETNEXT = 1;
  818. {$EXTERNALSYM HC_GETNEXT}
  819. HC_SKIP = 2;
  820. {$EXTERNALSYM HC_SKIP}
  821. HC_NOREMOVE = 3;
  822. {$EXTERNALSYM HC_NOREMOVE}
  823. HC_NOREM = HC_NOREMOVE;
  824. {$EXTERNALSYM HC_NOREM}
  825. HC_SYSMODALON = 4;
  826. {$EXTERNALSYM HC_SYSMODALON}
  827. HC_SYSMODALOFF = 5;
  828. {$EXTERNALSYM HC_SYSMODALOFF}
  829. //
  830. // CBT Hook Codes
  831. //
  832. HCBT_MOVESIZE = 0;
  833. {$EXTERNALSYM HCBT_MOVESIZE}
  834. HCBT_MINMAX = 1;
  835. {$EXTERNALSYM HCBT_MINMAX}
  836. HCBT_QS = 2;
  837. {$EXTERNALSYM HCBT_QS}
  838. HCBT_CREATEWND = 3;
  839. {$EXTERNALSYM HCBT_CREATEWND}
  840. HCBT_DESTROYWND = 4;
  841. {$EXTERNALSYM HCBT_DESTROYWND}
  842. HCBT_ACTIVATE = 5;
  843. {$EXTERNALSYM HCBT_ACTIVATE}
  844. HCBT_CLICKSKIPPED = 6;
  845. {$EXTERNALSYM HCBT_CLICKSKIPPED}
  846. HCBT_KEYSKIPPED = 7;
  847. {$EXTERNALSYM HCBT_KEYSKIPPED}
  848. HCBT_SYSCOMMAND = 8;
  849. {$EXTERNALSYM HCBT_SYSCOMMAND}
  850. HCBT_SETFOCUS = 9;
  851. {$EXTERNALSYM HCBT_SETFOCUS}
  852. //
  853. // HCBT_ACTIVATE structure pointed to by lParam
  854. //
  855. type
  856. LPCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;
  857. {$EXTERNALSYM LPCBTACTIVATESTRUCT}
  858. tagCBTACTIVATESTRUCT = record
  859. fMouse: BOOL;
  860. hWndActive: HWND;
  861. end;
  862. {$EXTERNALSYM tagCBTACTIVATESTRUCT}
  863. CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT;
  864. {$EXTERNALSYM CBTACTIVATESTRUCT}
  865. TCbtActivateStruct = CBTACTIVATESTRUCT;
  866. PCbtActivateStruct = LPCBTACTIVATESTRUCT;
  867. {$IFDEF WINXP_UP}
  868. //
  869. // WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
  870. //
  871. tagWTSSESSION_NOTIFICATION = record
  872. cbSize: DWORD;
  873. dwSessionId: DWORD;
  874. end;
  875. {$EXTERNALSYM tagWTSSESSION_NOTIFICATION}
  876. WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION;
  877. {$EXTERNALSYM WTSSESSION_NOTIFICATION}
  878. PWTSSESSION_NOTIFICATION = ^WTSSESSION_NOTIFICATION;
  879. {$EXTERNALSYM PWTSSESSION_NOTIFICATION}
  880. TWtsSessionNotification = WTSSESSION_NOTIFICATION;
  881. PWtsSessionNotification = PWTSSESSION_NOTIFICATION;
  882. //
  883. // codes passed in WPARAM for WM_WTSSESSION_CHANGE
  884. //
  885. const
  886. WTS_CONSOLE_CONNECT = $1;
  887. {$EXTERNALSYM WTS_CONSOLE_CONNECT}
  888. WTS_CONSOLE_DISCONNECT = $2;
  889. {$EXTERNALSYM WTS_CONSOLE_DISCONNECT}
  890. WTS_REMOTE_CONNECT = $3;
  891. {$EXTERNALSYM WTS_REMOTE_CONNECT}
  892. WTS_REMOTE_DISCONNECT = $4;
  893. {$EXTERNALSYM WTS_REMOTE_DISCONNECT}
  894. WTS_SESSION_LOGON = $5;
  895. {$EXTERNALSYM WTS_SESSION_LOGON}
  896. WTS_SESSION_LOGOFF = $6;
  897. {$EXTERNALSYM WTS_SESSION_LOGOFF}
  898. WTS_SESSION_LOCK = $7;
  899. {$EXTERNALSYM WTS_SESSION_LOCK}
  900. WTS_SESSION_UNLOCK = $8;
  901. {$EXTERNALSYM WTS_SESSION_UNLOCK}
  902. WTS_SESSION_REMOTE_CONTROL = $9;
  903. {$EXTERNALSYM WTS_SESSION_REMOTE_CONTROL}
  904. {$ENDIF WINXP_UP}
  905. //
  906. // WH_MSGFILTER Filter Proc Codes
  907. //
  908. const
  909. MSGF_DIALOGBOX = 0;
  910. {$EXTERNALSYM MSGF_DIALOGBOX}
  911. MSGF_MESSAGEBOX = 1;
  912. {$EXTERNALSYM MSGF_MESSAGEBOX}
  913. MSGF_MENU = 2;
  914. {$EXTERNALSYM MSGF_MENU}
  915. MSGF_SCROLLBAR = 5;
  916. {$EXTERNALSYM MSGF_SCROLLBAR}
  917. MSGF_NEXTWINDOW = 6;
  918. {$EXTERNALSYM MSGF_NEXTWINDOW}
  919. MSGF_MAX = 8; // unused
  920. {$EXTERNALSYM MSGF_MAX}
  921. MSGF_USER = 4096;
  922. {$EXTERNALSYM MSGF_USER}
  923. //
  924. // Shell support
  925. //
  926. HSHELL_WINDOWCREATED = 1;
  927. {$EXTERNALSYM HSHELL_WINDOWCREATED}
  928. HSHELL_WINDOWDESTROYED = 2;
  929. {$EXTERNALSYM HSHELL_WINDOWDESTROYED}
  930. HSHELL_ACTIVATESHELLWINDOW = 3;
  931. {$EXTERNALSYM HSHELL_ACTIVATESHELLWINDOW}
  932. HSHELL_WINDOWACTIVATED = 4;
  933. {$EXTERNALSYM HSHELL_WINDOWACTIVATED}
  934. HSHELL_GETMINRECT = 5;
  935. {$EXTERNALSYM HSHELL_GETMINRECT}
  936. HSHELL_REDRAW = 6;
  937. {$EXTERNALSYM HSHELL_REDRAW}
  938. HSHELL_TASKMAN = 7;
  939. {$EXTERNALSYM HSHELL_TASKMAN}
  940. HSHELL_LANGUAGE = 8;
  941. {$EXTERNALSYM HSHELL_LANGUAGE}
  942. HSHELL_SYSMENU = 9;
  943. {$EXTERNALSYM HSHELL_SYSMENU}
  944. HSHELL_ENDTASK = 10;
  945. {$EXTERNALSYM HSHELL_ENDTASK}
  946. {$IFDEF WIN2000_UP}
  947. HSHELL_ACCESSIBILITYSTATE = 11;
  948. {$EXTERNALSYM HSHELL_ACCESSIBILITYSTATE}
  949. HSHELL_APPCOMMAND = 12;
  950. {$EXTERNALSYM HSHELL_APPCOMMAND}
  951. {$ENDIF WIN2000_UP}
  952. {$IFDEF WINXP_UP}
  953. HSHELL_WINDOWREPLACED = 13;
  954. {$EXTERNALSYM HSHELL_WINDOWREPLACED}
  955. {$ENDIF WINXP_UP}
  956. HSHELL_WINDOWREPLACING = 14;
  957. {$EXTERNALSYM HSHELL_WINDOWREPLACING}
  958. HSHELL_HIGHBIT = $8000;
  959. {$EXTERNALSYM HSHELL_HIGHBIT}
  960. HSHELL_FLASH = HSHELL_REDRAW or HSHELL_HIGHBIT;
  961. {$EXTERNALSYM HSHELL_FLASH}
  962. HSHELL_RUDEAPPACTIVATED = HSHELL_WINDOWACTIVATED or HSHELL_HIGHBIT;
  963. {$EXTERNALSYM HSHELL_RUDEAPPACTIVATED}
  964. {$IFDEF WIN2000_UP}
  965. // wparam for HSHELL_ACCESSIBILITYSTATE//
  966. ACCESS_STICKYKEYS = $0001;
  967. {$EXTERNALSYM ACCESS_STICKYKEYS}
  968. ACCESS_FILTERKEYS = $0002;
  969. {$EXTERNALSYM ACCESS_FILTERKEYS}
  970. ACCESS_MOUSEKEYS = $0003;
  971. {$EXTERNALSYM ACCESS_MOUSEKEYS}
  972. // cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND//
  973. APPCOMMAND_BROWSER_BACKWARD = 1;
  974. {$EXTERNALSYM APPCOMMAND_BROWSER_BACKWARD}
  975. APPCOMMAND_BROWSER_FORWARD = 2;
  976. {$EXTERNALSYM APPCOMMAND_BROWSER_FORWARD}
  977. APPCOMMAND_BROWSER_REFRESH = 3;
  978. {$EXTERNALSYM APPCOMMAND_BROWSER_REFRESH}
  979. APPCOMMAND_BROWSER_STOP = 4;
  980. {$EXTERNALSYM APPCOMMAND_BROWSER_STOP}
  981. APPCOMMAND_BROWSER_SEARCH = 5;
  982. {$EXTERNALSYM APPCOMMAND_BROWSER_SEARCH}
  983. APPCOMMAND_BROWSER_FAVORITES = 6;
  984. {$EXTERNALSYM APPCOMMAND_BROWSER_FAVORITES}
  985. APPCOMMAND_BROWSER_HOME = 7;
  986. {$EXTERNALSYM APPCOMMAND_BROWSER_HOME}
  987. APPCOMMAND_VOLUME_MUTE = 8;
  988. {$EXTERNALSYM APPCOMMAND_VOLUME_MUTE}
  989. APPCOMMAND_VOLUME_DOWN = 9;
  990. {$EXTERNALSYM APPCOMMAND_VOLUME_DOWN}
  991. APPCOMMAND_VOLUME_UP = 10;
  992. {$EXTERNALSYM APPCOMMAND_VOLUME_UP}
  993. APPCOMMAND_MEDIA_NEXTTRACK = 11;
  994. {$EXTERNALSYM APPCOMMAND_MEDIA_NEXTTRACK}
  995. APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
  996. {$EXTERNALSYM APPCOMMAND_MEDIA_PREVIOUSTRACK}
  997. APPCOMMAND_MEDIA_STOP = 13;
  998. {$EXTERNALSYM APPCOMMAND_MEDIA_STOP}
  999. APPCOMMAND_MEDIA_PLAY_PAUSE = 14;
  1000. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY_PAUSE}
  1001. APPCOMMAND_LAUNCH_MAIL = 15;
  1002. {$EXTERNALSYM APPCOMMAND_LAUNCH_MAIL}
  1003. APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
  1004. {$EXTERNALSYM APPCOMMAND_LAUNCH_MEDIA_SELECT}
  1005. APPCOMMAND_LAUNCH_APP1 = 17;
  1006. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP1}
  1007. APPCOMMAND_LAUNCH_APP2 = 18;
  1008. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP2}
  1009. APPCOMMAND_BASS_DOWN = 19;
  1010. {$EXTERNALSYM APPCOMMAND_BASS_DOWN}
  1011. APPCOMMAND_BASS_BOOST = 20;
  1012. {$EXTERNALSYM APPCOMMAND_BASS_BOOST}
  1013. APPCOMMAND_BASS_UP = 21;
  1014. {$EXTERNALSYM APPCOMMAND_BASS_UP}
  1015. APPCOMMAND_TREBLE_DOWN = 22;
  1016. {$EXTERNALSYM APPCOMMAND_TREBLE_DOWN}
  1017. APPCOMMAND_TREBLE_UP = 23;
  1018. {$EXTERNALSYM APPCOMMAND_TREBLE_UP}
  1019. {$IFDEF WINXP_UP}
  1020. APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
  1021. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_MUTE}
  1022. APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
  1023. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_DOWN}
  1024. APPCOMMAND_MICROPHONE_VOLUME_UP = 26;
  1025. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_UP}
  1026. APPCOMMAND_HELP = 27;
  1027. {$EXTERNALSYM APPCOMMAND_HELP}
  1028. APPCOMMAND_FIND = 28;
  1029. {$EXTERNALSYM APPCOMMAND_FIND}
  1030. APPCOMMAND_NEW = 29;
  1031. {$EXTERNALSYM APPCOMMAND_NEW}
  1032. APPCOMMAND_OPEN = 30;
  1033. {$EXTERNALSYM APPCOMMAND_OPEN}
  1034. APPCOMMAND_CLOSE = 31;
  1035. {$EXTERNALSYM APPCOMMAND_CLOSE}
  1036. APPCOMMAND_SAVE = 32;
  1037. {$EXTERNALSYM APPCOMMAND_SAVE}
  1038. APPCOMMAND_PRINT = 33;
  1039. {$EXTERNALSYM APPCOMMAND_PRINT}
  1040. APPCOMMAND_UNDO = 34;
  1041. {$EXTERNALSYM APPCOMMAND_UNDO}
  1042. APPCOMMAND_REDO = 35;
  1043. {$EXTERNALSYM APPCOMMAND_REDO}
  1044. APPCOMMAND_COPY = 36;
  1045. {$EXTERNALSYM APPCOMMAND_COPY}
  1046. APPCOMMAND_CUT = 37;
  1047. {$EXTERNALSYM APPCOMMAND_CUT}
  1048. APPCOMMAND_PASTE = 38;
  1049. {$EXTERNALSYM APPCOMMAND_PASTE}
  1050. APPCOMMAND_REPLY_TO_MAIL = 39;
  1051. {$EXTERNALSYM APPCOMMAND_REPLY_TO_MAIL}
  1052. APPCOMMAND_FORWARD_MAIL = 40;
  1053. {$EXTERNALSYM APPCOMMAND_FORWARD_MAIL}
  1054. APPCOMMAND_SEND_MAIL = 41;
  1055. {$EXTERNALSYM APPCOMMAND_SEND_MAIL}
  1056. APPCOMMAND_SPELL_CHECK = 42;
  1057. {$EXTERNALSYM APPCOMMAND_SPELL_CHECK}
  1058. APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
  1059. {$EXTERNALSYM APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE}
  1060. APPCOMMAND_MIC_ON_OFF_TOGGLE = 44;
  1061. {$EXTERNALSYM APPCOMMAND_MIC_ON_OFF_TOGGLE}
  1062. APPCOMMAND_CORRECTION_LIST = 45;
  1063. {$EXTERNALSYM APPCOMMAND_CORRECTION_LIST}
  1064. {$ENDIF WINXP_UP}
  1065. APPCOMMAND_MEDIA_PLAY = 46;
  1066. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY}
  1067. APPCOMMAND_MEDIA_PAUSE = 47;
  1068. {$EXTERNALSYM APPCOMMAND_MEDIA_PAUSE}
  1069. APPCOMMAND_MEDIA_RECORD = 48;
  1070. {$EXTERNALSYM APPCOMMAND_MEDIA_RECORD}
  1071. APPCOMMAND_MEDIA_FAST_FORWARD = 49;
  1072. {$EXTERNALSYM APPCOMMAND_MEDIA_FAST_FORWARD}
  1073. APPCOMMAND_MEDIA_REWIND = 50;
  1074. {$EXTERNALSYM APPCOMMAND_MEDIA_REWIND}
  1075. APPCOMMAND_MEDIA_CHANNEL_UP = 51;
  1076. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_UP}
  1077. APPCOMMAND_MEDIA_CHANNEL_DOWN = 52;
  1078. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_DOWN}
  1079. FAPPCOMMAND_MOUSE = $8000;
  1080. {$EXTERNALSYM FAPPCOMMAND_MOUSE}
  1081. FAPPCOMMAND_KEY = 0;
  1082. {$EXTERNALSYM FAPPCOMMAND_KEY}
  1083. FAPPCOMMAND_OEM = $1000;
  1084. {$EXTERNALSYM FAPPCOMMAND_OEM}
  1085. FAPPCOMMAND_MASK = $F000;
  1086. {$EXTERNALSYM FAPPCOMMAND_MASK}
  1087. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
  1088. {$EXTERNALSYM GET_APPCOMMAND_LPARAM}
  1089. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  1090. {$EXTERNALSYM GET_DEVICE_LPARAM}
  1091. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  1092. {$EXTERNALSYM GET_MOUSEORKEY_LPARAM}
  1093. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  1094. {$EXTERNALSYM GET_FLAGS_LPARAM}
  1095. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  1096. {$EXTERNALSYM GET_KEYSTATE_LPARAM}
  1097. {$ENDIF WIN2000_UP}
  1098. type
  1099. SHELLHOOKINFO = record
  1100. hwnd: HWND;
  1101. rc: RECT;
  1102. end;
  1103. {$EXTERNALSYM SHELLHOOKINFO}
  1104. LPSHELLHOOKINFO = ^SHELLHOOKINFO;
  1105. {$EXTERNALSYM LPSHELLHOOKINFO}
  1106. TShellHookInfo = SHELLHOOKINFO;
  1107. PShellHookInfo = LPSHELLHOOKINFO;
  1108. //
  1109. // Message Structure used in Journaling
  1110. //
  1111. type
  1112. LPEVENTMSG = ^EVENTMSG;
  1113. {$EXTERNALSYM LPEVENTMSG}
  1114. tagEVENTMSG = record
  1115. message_: UINT;
  1116. paramL: UINT;
  1117. paramH: UINT;
  1118. time: DWORD;
  1119. hwnd: HWND;
  1120. end;
  1121. {$EXTERNALSYM tagEVENTMSG}
  1122. EVENTMSG = tagEVENTMSG;
  1123. {$EXTERNALSYM EVENTMSG}
  1124. LPEVENTMSGMSG = ^EVENTMSG;
  1125. {$EXTERNALSYM LPEVENTMSGMSG}
  1126. PEVENTMSGMSG = ^EVENTMSG;
  1127. {$EXTERNALSYM PEVENTMSGMSG}
  1128. NPEVENTMSG = ^EVENTMSG;
  1129. {$EXTERNALSYM NPEVENTMSG}
  1130. NPEVENTMSGMSG = ^EVENTMSG;
  1131. {$EXTERNALSYM NPEVENTMSGMSG}
  1132. TEventMsg = EVENTMSG;
  1133. PEventMsg = LPEVENTMSG;
  1134. //
  1135. // Message structure used by WH_CALLWNDPROC
  1136. //
  1137. LPCWPSTRUCT = ^CWPSTRUCT;
  1138. {$EXTERNALSYM LPCWPSTRUCT}
  1139. tagCWPSTRUCT = record
  1140. lParam: LPARAM;
  1141. wParam: WPARAM;
  1142. message: UINT;
  1143. hwnd: HWND;
  1144. end;
  1145. {$EXTERNALSYM tagCWPSTRUCT}
  1146. CWPSTRUCT = tagCWPSTRUCT;
  1147. {$EXTERNALSYM CWPSTRUCT}
  1148. NPCWPSTRUCT = ^CWPSTRUCT;
  1149. {$EXTERNALSYM NPCWPSTRUCT}
  1150. TCwpStruct = CWPSTRUCT;
  1151. PCwpStruct = LPCWPSTRUCT;
  1152. //
  1153. // Message structure used by WH_CALLWNDPROCRET
  1154. //
  1155. LPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1156. {$EXTERNALSYM LPCWPRETSTRUCT}
  1157. tagCWPRETSTRUCT = record
  1158. lResult: LRESULT;
  1159. lParam: LPARAM;
  1160. wParam: WPARAM;
  1161. message: UINT;
  1162. hwnd: HWND;
  1163. end;
  1164. {$EXTERNALSYM tagCWPRETSTRUCT}
  1165. CWPRETSTRUCT = tagCWPRETSTRUCT;
  1166. {$EXTERNALSYM CWPRETSTRUCT}
  1167. NPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1168. {$EXTERNALSYM NPCWPRETSTRUCT}
  1169. TCwpRetStruct = CWPRETSTRUCT;
  1170. PCwpRetStruct = LPCWPRETSTRUCT;
  1171. //
  1172. // Low level hook flags
  1173. //
  1174. const
  1175. LLKHF_EXTENDED = KF_EXTENDED shr 8;
  1176. {$EXTERNALSYM LLKHF_EXTENDED}
  1177. LLKHF_INJECTED = $00000010;
  1178. {$EXTERNALSYM LLKHF_INJECTED}
  1179. LLKHF_ALTDOWN = KF_ALTDOWN shr 8;
  1180. {$EXTERNALSYM LLKHF_ALTDOWN}
  1181. LLKHF_UP = KF_UP shr 8;
  1182. {$EXTERNALSYM LLKHF_UP}
  1183. LLMHF_INJECTED = $00000001;
  1184. {$EXTERNALSYM LLMHF_INJECTED}
  1185. //
  1186. // Structure used by WH_KEYBOARD_LL
  1187. //
  1188. type
  1189. LPKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
  1190. {$EXTERNALSYM LPKBDLLHOOKSTRUCT}
  1191. tagKBDLLHOOKSTRUCT = record
  1192. vkCode: DWORD;
  1193. scanCode: DWORD;
  1194. flags: DWORD;
  1195. time: DWORD;
  1196. dwExtraInfo: ULONG_PTR;
  1197. end;
  1198. {$EXTERNALSYM tagKBDLLHOOKSTRUCT}
  1199. KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
  1200. {$EXTERNALSYM KBDLLHOOKSTRUCT}
  1201. TKbDllHookStruct = KBDLLHOOKSTRUCT;
  1202. PKbDllHookStruct = LPKBDLLHOOKSTRUCT;
  1203. //
  1204. // Structure used by WH_MOUSE_LL
  1205. //
  1206. LPMSLLHOOKSTRUCT = ^MSLLHOOKSTRUCT;
  1207. {$EXTERNALSYM LPMSLLHOOKSTRUCT}
  1208. tagMSLLHOOKSTRUCT = record
  1209. pt: POINT;
  1210. mouseData: DWORD;
  1211. flags: DWORD;
  1212. time: DWORD;
  1213. dwExtraInfo: ULONG_PTR;
  1214. end;
  1215. {$EXTERNALSYM tagMSLLHOOKSTRUCT}
  1216. MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT;
  1217. {$EXTERNALSYM MSLLHOOKSTRUCT}
  1218. TMsllHookStruct = MSLLHOOKSTRUCT;
  1219. PMsllHookStruct = LPMSLLHOOKSTRUCT;
  1220. //
  1221. // Structure used by WH_DEBUG
  1222. //
  1223. LPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1224. {$EXTERNALSYM LPDEBUGHOOKINFO}
  1225. tagDEBUGHOOKINFO = record
  1226. idThread: DWORD;
  1227. idThreadInstaller: DWORD;
  1228. lParam: LPARAM;
  1229. wParam: WPARAM;
  1230. code: Integer;
  1231. end;
  1232. {$EXTERNALSYM tagDEBUGHOOKINFO}
  1233. DEBUGHOOKINFO = tagDEBUGHOOKINFO;
  1234. {$EXTERNALSYM DEBUGHOOKINFO}
  1235. NPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1236. {$EXTERNALSYM NPDEBUGHOOKINFO}
  1237. TDebugHookInfo = DEBUGHOOKINFO;
  1238. PDebugHookInfo = LPDEBUGHOOKINFO;
  1239. //
  1240. // Structure used by WH_MOUSE
  1241. //
  1242. LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  1243. {$EXTERNALSYM LPMOUSEHOOKSTRUCT}
  1244. tagMOUSEHOOKSTRUCT = record
  1245. pt: POINT;
  1246. hwnd: HWND;
  1247. wHitTestCode: UINT;
  1248. dwExtraInfo: ULONG_PTR;
  1249. end;
  1250. {$EXTERNALSYM tagMOUSEHOOKSTRUCT}
  1251. MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
  1252. {$EXTERNALSYM MOUSEHOOKSTRUCT}
  1253. TMouseHookStruct = MOUSEHOOKSTRUCT;
  1254. PMouseHookStruct = LPMOUSEHOOKSTRUCT;
  1255. LPMOUSEHOOKSTRUCTEX = ^MOUSEHOOKSTRUCTEX;
  1256. {$EXTERNALSYM LPMOUSEHOOKSTRUCTEX}
  1257. tagMOUSEHOOKSTRUCTEX = record
  1258. mhs: MOUSEHOOKSTRUCT;
  1259. mouseData: DWORD;
  1260. end;
  1261. {$EXTERNALSYM tagMOUSEHOOKSTRUCTEX}
  1262. MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
  1263. {$EXTERNALSYM MOUSEHOOKSTRUCTEX}
  1264. TMouseHookStructEx = MOUSEHOOKSTRUCTEX;
  1265. PMouseHookStructEx = LPMOUSEHOOKSTRUCTEX;
  1266. //
  1267. // Structure used by WH_HARDWARE
  1268. //
  1269. LPHARDWAREHOOKSTRUCT = ^HARDWAREHOOKSTRUCT;
  1270. {$EXTERNALSYM LPHARDWAREHOOKSTRUCT}
  1271. tagHARDWAREHOOKSTRUCT = record
  1272. hwnd: HWND;
  1273. message: UINT;
  1274. wParam: WPARAM;
  1275. lParam: LPARAM;
  1276. end;
  1277. {$EXTERNALSYM tagHARDWAREHOOKSTRUCT}
  1278. HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
  1279. {$EXTERNALSYM HARDWAREHOOKSTRUCT}
  1280. THardwareHookStruct = HARDWAREHOOKSTRUCT;
  1281. PHardwareHookStruct = LPHARDWAREHOOKSTRUCT;
  1282. //
  1283. // Keyboard Layout API
  1284. //
  1285. const
  1286. HKL_PREV = 0;
  1287. {$EXTERNALSYM HKL_PREV}
  1288. HKL_NEXT = 1;
  1289. {$EXTERNALSYM HKL_NEXT}
  1290. KLF_ACTIVATE = $00000001;
  1291. {$EXTERNALSYM KLF_ACTIVATE}
  1292. KLF_SUBSTITUTE_OK = $00000002;
  1293. {$EXTERNALSYM KLF_SUBSTITUTE_OK}
  1294. KLF_REORDER = $00000008;
  1295. {$EXTERNALSYM KLF_REORDER}
  1296. KLF_REPLACELANG = $00000010;
  1297. {$EXTERNALSYM KLF_REPLACELANG}
  1298. KLF_NOTELLSHELL = $00000080;
  1299. {$EXTERNALSYM KLF_NOTELLSHELL}
  1300. KLF_SETFORPROCESS = $00000100;
  1301. {$EXTERNALSYM KLF_SETFORPROCESS}
  1302. KLF_SHIFTLOCK = $00010000;
  1303. {$EXTERNALSYM KLF_SHIFTLOCK}
  1304. KLF_RESET = $40000000;
  1305. {$EXTERNALSYM KLF_RESET}
  1306. //
  1307. // Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
  1308. //
  1309. INPUTLANGCHANGE_SYSCHARSET = $0001;
  1310. {$EXTERNALSYM INPUTLANGCHANGE_SYSCHARSET}
  1311. INPUTLANGCHANGE_FORWARD = $0002;
  1312. {$EXTERNALSYM INPUTLANGCHANGE_FORWARD}
  1313. INPUTLANGCHANGE_BACKWARD = $0004;
  1314. {$EXTERNALSYM INPUTLANGCHANGE_BACKWARD}
  1315. //
  1316. // Size of KeyboardLayoutName (number of characters), including nul terminator
  1317. //
  1318. KL_NAMELENGTH = 9;
  1319. {$EXTERNALSYM KL_NAMELENGTH}
  1320. function LoadKeyboardLayoutA(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
  1321. {$EXTERNALSYM LoadKeyboardLayoutA}
  1322. function LoadKeyboardLayoutW(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
  1323. {$EXTERNALSYM LoadKeyboardLayoutW}
  1324. function LoadKeyboardLayout(pwszKLID: LPCTSTR; Flags: UINT): HKL; stdcall;
  1325. {$EXTERNALSYM LoadKeyboardLayout}
  1326. function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): HKL; stdcall;
  1327. {$EXTERNALSYM ActivateKeyboardLayout}
  1328. function ToUnicodeEx(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE;
  1329. pwszBuff: LPWSTR; cchBuff: Integer; wFlags: UINT; dwhkl: HKL): Integer; stdcall;
  1330. {$EXTERNALSYM ToUnicodeEx}
  1331. function UnloadKeyboardLayout(hkl: HKL): BOOL; stdcall;
  1332. {$EXTERNALSYM UnloadKeyboardLayout}
  1333. function GetKeyboardLayoutNameA(pwszKLID: LPSTR): BOOL; stdcall;
  1334. {$EXTERNALSYM GetKeyboardLayoutNameA}
  1335. function GetKeyboardLayoutNameW(pwszKLID: LPWSTR): BOOL; stdcall;
  1336. {$EXTERNALSYM GetKeyboardLayoutNameW}
  1337. function GetKeyboardLayoutName(pwszKLID: LPTSTR): BOOL; stdcall;
  1338. {$EXTERNALSYM GetKeyboardLayoutName}
  1339. function GetKeyboardLayoutList(nBuff: Integer; lpList: PHKL): Integer; stdcall;
  1340. {$EXTERNALSYM GetKeyboardLayoutList}
  1341. function GetKeyboardLayout(idThread: DWORD): HKL; stdcall;
  1342. {$EXTERNALSYM GetKeyboardLayout}
  1343. type
  1344. LPMOUSEMOVEPOINT = ^MOUSEMOVEPOINT;
  1345. {$EXTERNALSYM LPMOUSEMOVEPOINT}
  1346. tagMOUSEMOVEPOINT = record
  1347. x: Integer;
  1348. y: Integer;
  1349. time: DWORD;
  1350. dwExtraInfo: ULONG_PTR;
  1351. end;
  1352. {$EXTERNALSYM tagMOUSEMOVEPOINT}
  1353. MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
  1354. {$EXTERNALSYM MOUSEMOVEPOINT}
  1355. TMouseMovePoint = MOUSEMOVEPOINT;
  1356. PMouseMovePoint = LPMOUSEMOVEPOINT;
  1357. //
  1358. // Values for resolution parameter of GetMouseMovePointsEx
  1359. //
  1360. const
  1361. GMMP_USE_DISPLAY_POINTS = 1;
  1362. {$EXTERNALSYM GMMP_USE_DISPLAY_POINTS}
  1363. GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
  1364. {$EXTERNALSYM GMMP_USE_HIGH_RESOLUTION_POINTS}
  1365. function GetMouseMovePointsEx(cbSize: UINT; lppt, lpptBuf: LPMOUSEMOVEPOINT;
  1366. nBufPoints: Integer; resolution: DWORD): Integer; stdcall;
  1367. {$EXTERNALSYM GetMouseMovePointsEx}
  1368. //
  1369. // Desktop-specific access flags
  1370. //
  1371. const
  1372. DESKTOP_READOBJECTS = $0001;
  1373. {$EXTERNALSYM DESKTOP_READOBJECTS}
  1374. DESKTOP_CREATEWINDOW = $0002;
  1375. {$EXTERNALSYM DESKTOP_CREATEWINDOW}
  1376. DESKTOP_CREATEMENU = $0004;
  1377. {$EXTERNALSYM DESKTOP_CREATEMENU}
  1378. DESKTOP_HOOKCONTROL = $0008;
  1379. {$EXTERNALSYM DESKTOP_HOOKCONTROL}
  1380. DESKTOP_JOURNALRECORD = $0010;
  1381. {$EXTERNALSYM DESKTOP_JOURNALRECORD}
  1382. DESKTOP_JOURNALPLAYBACK = $0020;
  1383. {$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
  1384. DESKTOP_ENUMERATE = $0040;
  1385. {$EXTERNALSYM DESKTOP_ENUMERATE}
  1386. DESKTOP_WRITEOBJECTS = $0080;
  1387. {$EXTERNALSYM DESKTOP_WRITEOBJECTS}
  1388. DESKTOP_SWITCHDESKTOP = $0100;
  1389. {$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
  1390. //
  1391. // Desktop-specific control flags
  1392. //
  1393. DF_ALLOWOTHERACCOUNTHOOK = $0001;
  1394. {$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
  1395. function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
  1396. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1397. {$EXTERNALSYM CreateDesktopA}
  1398. function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
  1399. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1400. {$EXTERNALSYM CreateDesktopW}
  1401. function CreateDesktop(lpszDesktop, lpszDevice: LPCTSTR; pDevmode: LPDEVMODE;
  1402. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1403. {$EXTERNALSYM CreateDesktop}
  1404. function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
  1405. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1406. {$EXTERNALSYM OpenDesktopA}
  1407. function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
  1408. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1409. {$EXTERNALSYM OpenDesktopW}
  1410. function OpenDesktop(lpszDesktop: LPCTSTR; dwFlags: DWORD; fInherit: BOOL;
  1411. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1412. {$EXTERNALSYM OpenDesktop}
  1413. function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
  1414. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1415. {$EXTERNALSYM OpenInputDesktop}
  1416. function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
  1417. lParam: LPARAM): BOOL; stdcall;
  1418. {$EXTERNALSYM EnumDesktopsA}
  1419. function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
  1420. lParam: LPARAM): BOOL; stdcall;
  1421. {$EXTERNALSYM EnumDesktopsW}
  1422. function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROC;
  1423. lParam: LPARAM): BOOL; stdcall;
  1424. {$EXTERNALSYM EnumDesktops}
  1425. function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1426. {$EXTERNALSYM EnumDesktopWindows}
  1427. function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
  1428. {$EXTERNALSYM SwitchDesktop}
  1429. function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
  1430. {$EXTERNALSYM SetThreadDesktop}
  1431. function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
  1432. {$EXTERNALSYM CloseDesktop}
  1433. function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
  1434. {$EXTERNALSYM GetThreadDesktop}
  1435. //
  1436. // Windowstation-specific access flags
  1437. //
  1438. const
  1439. WINSTA_ENUMDESKTOPS = $0001;
  1440. {$EXTERNALSYM WINSTA_ENUMDESKTOPS}
  1441. WINSTA_READATTRIBUTES = $0002;
  1442. {$EXTERNALSYM WINSTA_READATTRIBUTES}
  1443. WINSTA_ACCESSCLIPBOARD = $0004;
  1444. {$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
  1445. WINSTA_CREATEDESKTOP = $0008;
  1446. {$EXTERNALSYM WINSTA_CREATEDESKTOP}
  1447. WINSTA_WRITEATTRIBUTES = $0010;
  1448. {$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
  1449. WINSTA_ACCESSGLOBALATOMS = $0020;
  1450. {$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
  1451. WINSTA_EXITWINDOWS = $0040;
  1452. {$EXTERNALSYM WINSTA_EXITWINDOWS}
  1453. WINSTA_ENUMERATE = $0100;
  1454. {$EXTERNALSYM WINSTA_ENUMERATE}
  1455. WINSTA_READSCREEN = $0200;
  1456. {$EXTERNALSYM WINSTA_READSCREEN}
  1457. WINSTA_ALL_ACCESS = (WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or
  1458. WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or
  1459. WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN);
  1460. {$EXTERNALSYM WINSTA_ALL_ACCESS}
  1461. //
  1462. // Windowstation creation flags.
  1463. //
  1464. CWF_CREATE_ONLY = $0001;
  1465. {$EXTERNALSYM CWF_CREATE_ONLY}
  1466. //
  1467. // Windowstation-specific attribute flags
  1468. //
  1469. WSF_VISIBLE = $0001;
  1470. {$EXTERNALSYM WSF_VISIBLE}
  1471. function CreateWindowStationA(lpwinsta: LPCSTR; dwFlags: DWORD;
  1472. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1473. {$EXTERNALSYM CreateWindowStationA}
  1474. function CreateWindowStationW(lpwinsta: LPCWSTR; dwFlags: DWORD;
  1475. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1476. {$EXTERNALSYM CreateWindowStationW}
  1477. function CreateWindowStation(lpwinsta: LPCTSTR; dwFlags: DWORD;
  1478. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1479. {$EXTERNALSYM CreateWindowStation}
  1480. function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
  1481. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1482. {$EXTERNALSYM OpenWindowStationA}
  1483. function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
  1484. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1485. {$EXTERNALSYM OpenWindowStationW}
  1486. function OpenWindowStation(lpszWinSta: LPCTSTR; fInherit: BOOL;
  1487. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1488. {$EXTERNALSYM OpenWindowStation}
  1489. function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
  1490. {$EXTERNALSYM EnumWindowStationsA}
  1491. function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
  1492. {$EXTERNALSYM EnumWindowStationsW}
  1493. function EnumWindowStations(lpEnumFunc: WINSTAENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1494. {$EXTERNALSYM EnumWindowStations}
  1495. function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1496. {$EXTERNALSYM CloseWindowStation}
  1497. function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1498. {$EXTERNALSYM SetProcessWindowStation}
  1499. function GetProcessWindowStation: HWINSTA; stdcall;
  1500. {$EXTERNALSYM GetProcessWindowStation}
  1501. function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1502. pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  1503. {$EXTERNALSYM SetUserObjectSecurity}
  1504. function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1505. pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1506. {$EXTERNALSYM GetUserObjectSecurity}
  1507. const
  1508. UOI_FLAGS = 1;
  1509. {$EXTERNALSYM UOI_FLAGS}
  1510. UOI_NAME = 2;
  1511. {$EXTERNALSYM UOI_NAME}
  1512. UOI_TYPE = 3;
  1513. {$EXTERNALSYM UOI_TYPE}
  1514. UOI_USER_SID = 4;
  1515. {$EXTERNALSYM UOI_USER_SID}
  1516. type
  1517. PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
  1518. tagUSEROBJECTFLAGS = record
  1519. fInherit: BOOL;
  1520. fReserved: BOOL;
  1521. dwFlags: DWORD;
  1522. end;
  1523. {$EXTERNALSYM tagUSEROBJECTFLAGS}
  1524. USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
  1525. {$EXTERNALSYM USEROBJECTFLAGS}
  1526. TUserObjectFlags = USEROBJECTFLAGS;
  1527. function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1528. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1529. {$EXTERNALSYM GetUserObjectInformationA}
  1530. function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1531. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1532. {$EXTERNALSYM GetUserObjectInformationW}
  1533. function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1534. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1535. {$EXTERNALSYM GetUserObjectInformation}
  1536. function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1537. nLength: DWORD): BOOL; stdcall;
  1538. {$EXTERNALSYM SetUserObjectInformationA}
  1539. function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1540. nLength: DWORD): BOOL; stdcall;
  1541. {$EXTERNALSYM SetUserObjectInformationW}
  1542. function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1543. nLength: DWORD): BOOL; stdcall;
  1544. {$EXTERNALSYM SetUserObjectInformation}
  1545. type
  1546. LPWNDCLASSEXA = ^WNDCLASSEXA;
  1547. {$EXTERNALSYM LPWNDCLASSEXA}
  1548. tagWNDCLASSEXA = record
  1549. cbSize: UINT;
  1550. // Win 3.x
  1551. style: UINT;
  1552. lpfnWndProc: WNDPROC;
  1553. cbClsExtra: Integer;
  1554. cbWndExtra: Integer;
  1555. hInstance: HINST;
  1556. hIcon: HICON;
  1557. hCursor: HCURSOR;
  1558. hbrBackground: HBRUSH;
  1559. lpszMenuName: LPCSTR;
  1560. lpszClassName: LPCSTR;
  1561. // Win 4.0
  1562. hIconSm: HICON;
  1563. end;
  1564. {$EXTERNALSYM tagWNDCLASSEXA}
  1565. WNDCLASSEXA = tagWNDCLASSEXA;
  1566. {$EXTERNALSYM WNDCLASSEXA}
  1567. NPWNDCLASSEXA = ^WNDCLASSEXA;
  1568. {$EXTERNALSYM NPWNDCLASSEXA}
  1569. TWndClassExA = WNDCLASSEXA;
  1570. PWndClassExA = LPWNDCLASSEXA;
  1571. LPWNDCLASSEXW = ^WNDCLASSEXW;
  1572. {$EXTERNALSYM LPWNDCLASSEXW}
  1573. tagWNDCLASSEXW = record
  1574. cbSize: UINT;
  1575. // Win 3.x
  1576. style: UINT;
  1577. lpfnWndProc: WNDPROC;
  1578. cbClsExtra: Integer;
  1579. cbWndExtra: Integer;
  1580. hInstance: HINST;
  1581. hIcon: HICON;
  1582. hCursor: HCURSOR;
  1583. hbrBackground: HBRUSH;
  1584. lpszMenuName: LPCWSTR;
  1585. lpszClassName: LPCWSTR;
  1586. // Win 4.0
  1587. hIconSm: HICON;
  1588. end;
  1589. {$EXTERNALSYM tagWNDCLASSEXW}
  1590. WNDCLASSEXW = tagWNDCLASSEXW;
  1591. {$EXTERNALSYM WNDCLASSEXW}
  1592. NPWNDCLASSEXW = ^WNDCLASSEXW;
  1593. {$EXTERNALSYM NPWNDCLASSEXW}
  1594. TWndClassExW = WNDCLASSEXW;
  1595. PWndClassExW = LPWNDCLASSEXW;
  1596. {$IFDEF UNICODE}
  1597. WNDCLASSEX = WNDCLASSEXW;
  1598. {$EXTERNALSYM WNDCLASSEX}
  1599. NPWNDCLASSEX = NPWNDCLASSEXW;
  1600. {$EXTERNALSYM NPWNDCLASSEX}
  1601. LPWNDCLASSEX = LPWNDCLASSEXW;
  1602. {$EXTERNALSYM LPWNDCLASSEX}
  1603. TWndClassEx = TWndClassExW;
  1604. PWndClassEx = PWndClassExW;
  1605. {$ELSE}
  1606. WNDCLASSEX = WNDCLASSEXA;
  1607. {$EXTERNALSYM WNDCLASSEX}
  1608. NPWNDCLASSEX = NPWNDCLASSEXA;
  1609. {$EXTERNALSYM NPWNDCLASSEX}
  1610. LPWNDCLASSEX = LPWNDCLASSEXA;
  1611. {$EXTERNALSYM LPWNDCLASSEX}
  1612. TWndClassEx = TWndClassExA;
  1613. PWndClassEx = PWndClassExA;
  1614. {$ENDIF UNICODE}
  1615. LPWNDCLASSA = ^WNDCLASSA;
  1616. {$EXTERNALSYM LPWNDCLASSA}
  1617. tagWNDCLASSA = record
  1618. style: UINT;
  1619. lpfnWndProc: WNDPROC;
  1620. cbClsExtra: Integer;
  1621. cbWndExtra: Integer;
  1622. hInstance: HINST;
  1623. hIcon: HICON;
  1624. hCursor: HCURSOR;
  1625. hbrBackground: HBRUSH;
  1626. lpszMenuName: LPCSTR;
  1627. lpszClassName: LPCSTR;
  1628. end;
  1629. {$EXTERNALSYM tagWNDCLASSA}
  1630. WNDCLASSA = tagWNDCLASSA;
  1631. {$EXTERNALSYM WNDCLASSA}
  1632. NPWNDCLASSA = ^WNDCLASSA;
  1633. {$EXTERNALSYM NPWNDCLASSA}
  1634. TWndClassA = WNDCLASSA;
  1635. PWndClassA = LPWNDCLASSA;
  1636. LPWNDCLASSW = ^WNDCLASSW;
  1637. {$EXTERNALSYM LPWNDCLASSW}
  1638. tagWNDCLASSW = record
  1639. style: UINT;
  1640. lpfnWndProc: WNDPROC;
  1641. cbClsExtra: Integer;
  1642. cbWndExtra: Integer;
  1643. hInstance: HINST;
  1644. hIcon: HICON;
  1645. hCursor: HCURSOR;
  1646. hbrBackground: HBRUSH;
  1647. lpszMenuName: LPCWSTR;
  1648. lpszClassName: LPCWSTR;
  1649. end;
  1650. {$EXTERNALSYM tagWNDCLASSW}
  1651. WNDCLASSW = tagWNDCLASSW;
  1652. {$EXTERNALSYM WNDCLASSW}
  1653. NPWNDCLASSW = ^WNDCLASSW;
  1654. {$EXTERNALSYM NPWNDCLASSW}
  1655. TWndClassW = WNDCLASSW;
  1656. PWndClassW = LPWNDCLASSW;
  1657. {$IFDEF UNICODE}
  1658. WNDCLASS = WNDCLASSW;
  1659. {$EXTERNALSYM WNDCLASS}
  1660. NPWNDCLASS = NPWNDCLASSW;
  1661. {$EXTERNALSYM NPWNDCLASS}
  1662. LPWNDCLASS = LPWNDCLASSW;
  1663. {$EXTERNALSYM LPWNDCLASS}
  1664. TWndClass = TWndClassW;
  1665. PWndClass = PWndClassW;
  1666. {$ELSE}
  1667. WNDCLASS = WNDCLASSA;
  1668. {$EXTERNALSYM WNDCLASS}
  1669. NPWNDCLASS = NPWNDCLASSA;
  1670. {$EXTERNALSYM NPWNDCLASS}
  1671. LPWNDCLASS = LPWNDCLASSA;
  1672. {$EXTERNALSYM LPWNDCLASS}
  1673. TWndClass = TWndClassA;
  1674. PWndClass = PWndClassA;
  1675. {$ENDIF UNICODE}
  1676. function IsHungAppWindow(hwnd: HWND): BOOL; stdcall;
  1677. {$EXTERNALSYM IsHungAppWindow}
  1678. procedure DisableProcessWindowsGhosting; stdcall;
  1679. {$EXTERNALSYM DisableProcessWindowsGhosting}
  1680. //
  1681. // Message structure
  1682. //
  1683. type
  1684. LPMSG = ^MSG;
  1685. {$EXTERNALSYM LPMSG}
  1686. tagMSG = record
  1687. hwnd: HWND;
  1688. message: UINT;
  1689. wParam: WPARAM;
  1690. lParam: LPARAM;
  1691. time: DWORD;
  1692. pt: POINT;
  1693. end;
  1694. {$EXTERNALSYM tagMSG}
  1695. MSG = tagMSG;
  1696. {$EXTERNALSYM MSG}
  1697. NPMSG = ^MSG;
  1698. {$EXTERNALSYM NPMSG}
  1699. TMsg = MSG;
  1700. PMsg = LPMSG;
  1701. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  1702. {$EXTERNALSYM MAKEWPARAM}
  1703. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  1704. {$EXTERNALSYM MAKELPARAM}
  1705. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  1706. {$EXTERNALSYM MAKELRESULT}
  1707. //
  1708. // Window field offsets for GetWindowLong()
  1709. //
  1710. const
  1711. GWL_WNDPROC = -4;
  1712. {$EXTERNALSYM GWL_WNDPROC}
  1713. GWL_HINSTANCE = -6;
  1714. {$EXTERNALSYM GWL_HINSTANCE}
  1715. GWL_HWNDPARENT = -8;
  1716. {$EXTERNALSYM GWL_HWNDPARENT}
  1717. GWL_STYLE = -16;
  1718. {$EXTERNALSYM GWL_STYLE}
  1719. GWL_EXSTYLE = -20;
  1720. {$EXTERNALSYM GWL_EXSTYLE}
  1721. GWL_USERDATA = -21;
  1722. {$EXTERNALSYM GWL_USERDATA}
  1723. GWL_ID = -12;
  1724. {$EXTERNALSYM GWL_ID}
  1725. GWLP_WNDPROC = -4;
  1726. {$EXTERNALSYM GWLP_WNDPROC}
  1727. GWLP_HINSTANCE = -6;
  1728. {$EXTERNALSYM GWLP_HINSTANCE}
  1729. GWLP_HWNDPARENT = -8;
  1730. {$EXTERNALSYM GWLP_HWNDPARENT}
  1731. GWLP_USERDATA = -21;
  1732. {$EXTERNALSYM GWLP_USERDATA}
  1733. GWLP_ID = -12;
  1734. {$EXTERNALSYM GWLP_ID}
  1735. //
  1736. // Class field offsets for GetClassLong()
  1737. //
  1738. GCL_MENUNAME = DWORD(-8);
  1739. {$EXTERNALSYM GCL_MENUNAME}
  1740. GCL_HBRBACKGROUND = DWORD(-10);
  1741. {$EXTERNALSYM GCL_HBRBACKGROUND}
  1742. GCL_HCURSOR = DWORD(-12);
  1743. {$EXTERNALSYM GCL_HCURSOR}
  1744. GCL_HICON = DWORD(-14);
  1745. {$EXTERNALSYM GCL_HICON}
  1746. GCL_HMODULE = DWORD(-16);
  1747. {$EXTERNALSYM GCL_HMODULE}
  1748. GCL_CBWNDEXTRA = DWORD(-18);
  1749. {$EXTERNALSYM GCL_CBWNDEXTRA}
  1750. GCL_CBCLSEXTRA = DWORD(-20);
  1751. {$EXTERNALSYM GCL_CBCLSEXTRA}
  1752. GCL_WNDPROC = DWORD(-24);
  1753. {$EXTERNALSYM GCL_WNDPROC}
  1754. GCL_STYLE = DWORD(-26);
  1755. {$EXTERNALSYM GCL_STYLE}
  1756. GCW_ATOM = DWORD(-32);
  1757. {$EXTERNALSYM GCW_ATOM}
  1758. GCL_HICONSM = DWORD(-34);
  1759. {$EXTERNALSYM GCL_HICONSM}
  1760. GCLP_MENUNAME = DWORD(-8);
  1761. {$EXTERNALSYM GCLP_MENUNAME}
  1762. GCLP_HBRBACKGROUND = DWORD(-10);
  1763. {$EXTERNALSYM GCLP_HBRBACKGROUND}
  1764. GCLP_HCURSOR = DWORD(-12);
  1765. {$EXTERNALSYM GCLP_HCURSOR}
  1766. GCLP_HICON = DWORD(-14);
  1767. {$EXTERNALSYM GCLP_HICON}
  1768. GCLP_HMODULE = DWORD(-16);
  1769. {$EXTERNALSYM GCLP_HMODULE}
  1770. GCLP_WNDPROC = DWORD(-24);
  1771. {$EXTERNALSYM GCLP_WNDPROC}
  1772. GCLP_HICONSM = DWORD(-34);
  1773. {$EXTERNALSYM GCLP_HICONSM}
  1774. //
  1775. // Window Messages
  1776. //
  1777. WM_NULL = $0000;
  1778. {$EXTERNALSYM WM_NULL}
  1779. WM_CREATE = $0001;
  1780. {$EXTERNALSYM WM_CREATE}
  1781. WM_DESTROY = $0002;
  1782. {$EXTERNALSYM WM_DESTROY}
  1783. WM_MOVE = $0003;
  1784. {$EXTERNALSYM WM_MOVE}
  1785. WM_SIZE = $0005;
  1786. {$EXTERNALSYM WM_SIZE}
  1787. WM_ACTIVATE = $0006;
  1788. {$EXTERNALSYM WM_ACTIVATE}
  1789. //
  1790. // WM_ACTIVATE state values
  1791. //
  1792. WA_INACTIVE = 0;
  1793. {$EXTERNALSYM WA_INACTIVE}
  1794. WA_ACTIVE = 1;
  1795. {$EXTERNALSYM WA_ACTIVE}
  1796. WA_CLICKACTIVE = 2;
  1797. {$EXTERNALSYM WA_CLICKACTIVE}
  1798. WM_SETFOCUS = $0007;
  1799. {$EXTERNALSYM WM_SETFOCUS}
  1800. WM_KILLFOCUS = $0008;
  1801. {$EXTERNALSYM WM_KILLFOCUS}
  1802. WM_ENABLE = $000A;
  1803. {$EXTERNALSYM WM_ENABLE}
  1804. WM_SETREDRAW = $000B;
  1805. {$EXTERNALSYM WM_SETREDRAW}
  1806. WM_SETTEXT = $000C;
  1807. {$EXTERNALSYM WM_SETTEXT}
  1808. WM_GETTEXT = $000D;
  1809. {$EXTERNALSYM WM_GETTEXT}
  1810. WM_GETTEXTLENGTH = $000E;
  1811. {$EXTERNALSYM WM_GETTEXTLENGTH}
  1812. WM_PAINT = $000F;
  1813. {$EXTERNALSYM WM_PAINT}
  1814. WM_CLOSE = $0010;
  1815. {$EXTERNALSYM WM_CLOSE}
  1816. WM_QUERYENDSESSION = $0011;
  1817. {$EXTERNALSYM WM_QUERYENDSESSION}
  1818. WM_QUERYOPEN = $0013;
  1819. {$EXTERNALSYM WM_QUERYOPEN}
  1820. WM_ENDSESSION = $0016;
  1821. {$EXTERNALSYM WM_ENDSESSION}
  1822. WM_QUIT = $0012;
  1823. {$EXTERNALSYM WM_QUIT}
  1824. WM_ERASEBKGND = $0014;
  1825. {$EXTERNALSYM WM_ERASEBKGND}
  1826. WM_SYSCOLORCHANGE = $0015;
  1827. {$EXTERNALSYM WM_SYSCOLORCHANGE}
  1828. WM_SHOWWINDOW = $0018;
  1829. {$EXTERNALSYM WM_SHOWWINDOW}
  1830. WM_WININICHANGE = $001A;
  1831. {$EXTERNALSYM WM_WININICHANGE}
  1832. WM_SETTINGCHANGE = WM_WININICHANGE;
  1833. {$EXTERNALSYM WM_SETTINGCHANGE}
  1834. WM_DEVMODECHANGE = $001B;
  1835. {$EXTERNALSYM WM_DEVMODECHANGE}
  1836. WM_ACTIVATEAPP = $001C;
  1837. {$EXTERNALSYM WM_ACTIVATEAPP}
  1838. WM_FONTCHANGE = $001D;
  1839. {$EXTERNALSYM WM_FONTCHANGE}
  1840. WM_TIMECHANGE = $001E;
  1841. {$EXTERNALSYM WM_TIMECHANGE}
  1842. WM_CANCELMODE = $001F;
  1843. {$EXTERNALSYM WM_CANCELMODE}
  1844. WM_SETCURSOR = $0020;
  1845. {$EXTERNALSYM WM_SETCURSOR}
  1846. WM_MOUSEACTIVATE = $0021;
  1847. {$EXTERNALSYM WM_MOUSEACTIVATE}
  1848. WM_CHILDACTIVATE = $0022;
  1849. {$EXTERNALSYM WM_CHILDACTIVATE}
  1850. WM_QUEUESYNC = $0023;
  1851. {$EXTERNALSYM WM_QUEUESYNC}
  1852. WM_GETMINMAXINFO = $0024;
  1853. {$EXTERNALSYM WM_GETMINMAXINFO}
  1854. //
  1855. // Struct pointed to by WM_GETMINMAXINFO lParam
  1856. //
  1857. type
  1858. LPMINMAXINFO = ^MINMAXINFO;
  1859. {$EXTERNALSYM LPMINMAXINFO}
  1860. tagMINMAXINFO = record
  1861. ptReserved: POINT;
  1862. ptMaxSize: POINT;
  1863. ptMaxPosition: POINT;
  1864. ptMinTrackSize: POINT;
  1865. ptMaxTrackSize: POINT;
  1866. end;
  1867. {$EXTERNALSYM tagMINMAXINFO}
  1868. MINMAXINFO = tagMINMAXINFO;
  1869. {$EXTERNALSYM MINMAXINFO}
  1870. TMinMaxInfo = MINMAXINFO;
  1871. PMinMaxInfo = LPMINMAXINFO;
  1872. const
  1873. WM_PAINTICON = $0026;
  1874. {$EXTERNALSYM WM_PAINTICON}
  1875. WM_ICONERASEBKGND = $0027;
  1876. {$EXTERNALSYM WM_ICONERASEBKGND}
  1877. WM_NEXTDLGCTL = $0028;
  1878. {$EXTERNALSYM WM_NEXTDLGCTL}
  1879. WM_SPOOLERSTATUS = $002A;
  1880. {$EXTERNALSYM WM_SPOOLERSTATUS}
  1881. WM_DRAWITEM = $002B;
  1882. {$EXTERNALSYM WM_DRAWITEM}
  1883. WM_MEASUREITEM = $002C;
  1884. {$EXTERNALSYM WM_MEASUREITEM}
  1885. WM_DELETEITEM = $002D;
  1886. {$EXTERNALSYM WM_DELETEITEM}
  1887. WM_VKEYTOITEM = $002E;
  1888. {$EXTERNALSYM WM_VKEYTOITEM}
  1889. WM_CHARTOITEM = $002F;
  1890. {$EXTERNALSYM WM_CHARTOITEM}
  1891. WM_SETFONT = $0030;
  1892. {$EXTERNALSYM WM_SETFONT}
  1893. WM_GETFONT = $0031;
  1894. {$EXTERNALSYM WM_GETFONT}
  1895. WM_SETHOTKEY = $0032;
  1896. {$EXTERNALSYM WM_SETHOTKEY}
  1897. WM_GETHOTKEY = $0033;
  1898. {$EXTERNALSYM WM_GETHOTKEY}
  1899. WM_QUERYDRAGICON = $0037;
  1900. {$EXTERNALSYM WM_QUERYDRAGICON}
  1901. WM_COMPAREITEM = $0039;
  1902. {$EXTERNALSYM WM_COMPAREITEM}
  1903. WM_GETOBJECT = $003D;
  1904. {$EXTERNALSYM WM_GETOBJECT}
  1905. WM_COMPACTING = $0041;
  1906. {$EXTERNALSYM WM_COMPACTING}
  1907. WM_COMMNOTIFY = $0044; // no longer suported
  1908. {$EXTERNALSYM WM_COMMNOTIFY}
  1909. WM_WINDOWPOSCHANGING = $0046;
  1910. {$EXTERNALSYM WM_WINDOWPOSCHANGING}
  1911. WM_WINDOWPOSCHANGED = $0047;
  1912. {$EXTERNALSYM WM_WINDOWPOSCHANGED}
  1913. WM_POWER = $0048;
  1914. {$EXTERNALSYM WM_POWER}
  1915. //
  1916. // wParam for WM_POWER window message and DRV_POWER driver notification
  1917. //
  1918. PWR_OK = 1;
  1919. {$EXTERNALSYM PWR_OK}
  1920. PWR_FAIL = DWORD(-1);
  1921. {$EXTERNALSYM PWR_FAIL}
  1922. PWR_SUSPENDREQUEST = 1;
  1923. {$EXTERNALSYM PWR_SUSPENDREQUEST}
  1924. PWR_SUSPENDRESUME = 2;
  1925. {$EXTERNALSYM PWR_SUSPENDRESUME}
  1926. PWR_CRITICALRESUME = 3;
  1927. {$EXTERNALSYM PWR_CRITICALRESUME}
  1928. WM_COPYDATA = $004A;
  1929. {$EXTERNALSYM WM_COPYDATA}
  1930. WM_CANCELJOURNAL = $004B;
  1931. {$EXTERNALSYM WM_CANCELJOURNAL}
  1932. //
  1933. // lParam of WM_COPYDATA message points to...
  1934. //
  1935. type
  1936. PCOPYDATASTRUCT = ^COPYDATASTRUCT;
  1937. tagCOPYDATASTRUCT = record
  1938. dwData: ULONG_PTR;
  1939. cbData: DWORD;
  1940. lpData: PVOID;
  1941. end;
  1942. {$EXTERNALSYM tagCOPYDATASTRUCT}
  1943. COPYDATASTRUCT = tagCOPYDATASTRUCT;
  1944. {$EXTERNALSYM COPYDATASTRUCT}
  1945. TCopyDataStruct = COPYDATASTRUCT;
  1946. LPMDINEXTMENU = ^MDINEXTMENU;
  1947. {$EXTERNALSYM LPMDINEXTMENU}
  1948. tagMDINEXTMENU = record
  1949. hmenuIn: HMENU;
  1950. hmenuNext: HMENU;
  1951. hwndNext: HWND;
  1952. end;
  1953. {$EXTERNALSYM tagMDINEXTMENU}
  1954. MDINEXTMENU = tagMDINEXTMENU;
  1955. {$EXTERNALSYM MDINEXTMENU}
  1956. TMdiNextMenu = MDINEXTMENU;
  1957. PMdiNextMenu = LPMDINEXTMENU;
  1958. const
  1959. WM_NOTIFY = $004E;
  1960. {$EXTERNALSYM WM_NOTIFY}
  1961. WM_INPUTLANGCHANGEREQUEST = $0050;
  1962. {$EXTERNALSYM WM_INPUTLANGCHANGEREQUEST}
  1963. WM_INPUTLANGCHANGE = $0051;
  1964. {$EXTERNALSYM WM_INPUTLANGCHANGE}
  1965. WM_TCARD = $0052;
  1966. {$EXTERNALSYM WM_TCARD}
  1967. WM_HELP = $0053;
  1968. {$EXTERNALSYM WM_HELP}
  1969. WM_USERCHANGED = $0054;
  1970. {$EXTERNALSYM WM_USERCHANGED}
  1971. WM_NOTIFYFORMAT = $0055;
  1972. {$EXTERNALSYM WM_NOTIFYFORMAT}
  1973. NFR_ANSI = 1;
  1974. {$EXTERNALSYM NFR_ANSI}
  1975. NFR_UNICODE = 2;
  1976. {$EXTERNALSYM NFR_UNICODE}
  1977. NF_QUERY = 3;
  1978. {$EXTERNALSYM NF_QUERY}
  1979. NF_REQUERY = 4;
  1980. {$EXTERNALSYM NF_REQUERY}
  1981. WM_CONTEXTMENU = $007B;
  1982. {$EXTERNALSYM WM_CONTEXTMENU}
  1983. WM_STYLECHANGING = $007C;
  1984. {$EXTERNALSYM WM_STYLECHANGING}
  1985. WM_STYLECHANGED = $007D;
  1986. {$EXTERNALSYM WM_STYLECHANGED}
  1987. WM_DISPLAYCHANGE = $007E;
  1988. {$EXTERNALSYM WM_DISPLAYCHANGE}
  1989. WM_GETICON = $007F;
  1990. {$EXTERNALSYM WM_GETICON}
  1991. WM_SETICON = $0080;
  1992. {$EXTERNALSYM WM_SETICON}
  1993. WM_NCCREATE = $0081;
  1994. {$EXTERNALSYM WM_NCCREATE}
  1995. WM_NCDESTROY = $0082;
  1996. {$EXTERNALSYM WM_NCDESTROY}
  1997. WM_NCCALCSIZE = $0083;
  1998. {$EXTERNALSYM WM_NCCALCSIZE}
  1999. WM_NCHITTEST = $0084;
  2000. {$EXTERNALSYM WM_NCHITTEST}
  2001. WM_NCPAINT = $0085;
  2002. {$EXTERNALSYM WM_NCPAINT}
  2003. WM_NCACTIVATE = $0086;
  2004. {$EXTERNALSYM WM_NCACTIVATE}
  2005. WM_GETDLGCODE = $0087;
  2006. {$EXTERNALSYM WM_GETDLGCODE}
  2007. WM_SYNCPAINT = $0088;
  2008. {$EXTERNALSYM WM_SYNCPAINT}
  2009. WM_NCMOUSEMOVE = $00A0;
  2010. {$EXTERNALSYM WM_NCMOUSEMOVE}
  2011. WM_NCLBUTTONDOWN = $00A1;
  2012. {$EXTERNALSYM WM_NCLBUTTONDOWN}
  2013. WM_NCLBUTTONUP = $00A2;
  2014. {$EXTERNALSYM WM_NCLBUTTONUP}
  2015. WM_NCLBUTTONDBLCLK = $00A3;
  2016. {$EXTERNALSYM WM_NCLBUTTONDBLCLK}
  2017. WM_NCRBUTTONDOWN = $00A4;
  2018. {$EXTERNALSYM WM_NCRBUTTONDOWN}
  2019. WM_NCRBUTTONUP = $00A5;
  2020. {$EXTERNALSYM WM_NCRBUTTONUP}
  2021. WM_NCRBUTTONDBLCLK = $00A6;
  2022. {$EXTERNALSYM WM_NCRBUTTONDBLCLK}
  2023. WM_NCMBUTTONDOWN = $00A7;
  2024. {$EXTERNALSYM WM_NCMBUTTONDOWN}
  2025. WM_NCMBUTTONUP = $00A8;
  2026. {$EXTERNALSYM WM_NCMBUTTONUP}
  2027. WM_NCMBUTTONDBLCLK = $00A9;
  2028. {$EXTERNALSYM WM_NCMBUTTONDBLCLK}
  2029. WM_NCXBUTTONDOWN = $00AB;
  2030. {$EXTERNALSYM WM_NCXBUTTONDOWN}
  2031. WM_NCXBUTTONUP = $00AC;
  2032. {$EXTERNALSYM WM_NCXBUTTONUP}
  2033. WM_NCXBUTTONDBLCLK = $00AD;
  2034. {$EXTERNALSYM WM_NCXBUTTONDBLCLK}
  2035. WM_INPUT = $00FF;
  2036. {$EXTERNALSYM WM_INPUT}
  2037. WM_KEYFIRST = $0100;
  2038. {$EXTERNALSYM WM_KEYFIRST}
  2039. WM_KEYDOWN = $0100;
  2040. {$EXTERNALSYM WM_KEYDOWN}
  2041. WM_KEYUP = $0101;
  2042. {$EXTERNALSYM WM_KEYUP}
  2043. WM_CHAR = $0102;
  2044. {$EXTERNALSYM WM_CHAR}
  2045. WM_DEADCHAR = $0103;
  2046. {$EXTERNALSYM WM_DEADCHAR}
  2047. WM_SYSKEYDOWN = $0104;
  2048. {$EXTERNALSYM WM_SYSKEYDOWN}
  2049. WM_SYSKEYUP = $0105;
  2050. {$EXTERNALSYM WM_SYSKEYUP}
  2051. WM_SYSCHAR = $0106;
  2052. {$EXTERNALSYM WM_SYSCHAR}
  2053. WM_SYSDEADCHAR = $0107;
  2054. {$EXTERNALSYM WM_SYSDEADCHAR}
  2055. {$IFDEF WINXP_UP}
  2056. WM_UNICHAR = $0109;
  2057. {$EXTERNALSYM WM_UNICHAR}
  2058. WM_KEYLAST = $0109;
  2059. {$EXTERNALSYM WM_KEYLAST}
  2060. UNICODE_NOCHAR = $FFFF;
  2061. {$EXTERNALSYM UNICODE_NOCHAR}
  2062. {$ELSE}
  2063. WM_KEYLAST = $0108;
  2064. {$EXTERNALSYM WM_KEYLAST}
  2065. {$ENDIF WINXP_UP}
  2066. WM_IME_STARTCOMPOSITION = $010D;
  2067. {$EXTERNALSYM WM_IME_STARTCOMPOSITION}
  2068. WM_IME_ENDCOMPOSITION = $010E;
  2069. {$EXTERNALSYM WM_IME_ENDCOMPOSITION}
  2070. WM_IME_COMPOSITION = $010F;
  2071. {$EXTERNALSYM WM_IME_COMPOSITION}
  2072. WM_IME_KEYLAST = $010F;
  2073. {$EXTERNALSYM WM_IME_KEYLAST}
  2074. WM_INITDIALOG = $0110;
  2075. {$EXTERNALSYM WM_INITDIALOG}
  2076. WM_COMMAND = $0111;
  2077. {$EXTERNALSYM WM_COMMAND}
  2078. WM_SYSCOMMAND = $0112;
  2079. {$EXTERNALSYM WM_SYSCOMMAND}
  2080. WM_TIMER = $0113;
  2081. {$EXTERNALSYM WM_TIMER}
  2082. WM_HSCROLL = $0114;
  2083. {$EXTERNALSYM WM_HSCROLL}
  2084. WM_VSCROLL = $0115;
  2085. {$EXTERNALSYM WM_VSCROLL}
  2086. WM_INITMENU = $0116;
  2087. {$EXTERNALSYM WM_INITMENU}
  2088. WM_INITMENUPOPUP = $0117;
  2089. {$EXTERNALSYM WM_INITMENUPOPUP}
  2090. WM_MENUSELECT = $011F;
  2091. {$EXTERNALSYM WM_MENUSELECT}
  2092. WM_MENUCHAR = $0120;
  2093. {$EXTERNALSYM WM_MENUCHAR}
  2094. WM_ENTERIDLE = $0121;
  2095. {$EXTERNALSYM WM_ENTERIDLE}
  2096. WM_MENURBUTTONUP = $0122;
  2097. {$EXTERNALSYM WM_MENURBUTTONUP}
  2098. WM_MENUDRAG = $0123;
  2099. {$EXTERNALSYM WM_MENUDRAG}
  2100. WM_MENUGETOBJECT = $0124;
  2101. {$EXTERNALSYM WM_MENUGETOBJECT}
  2102. WM_UNINITMENUPOPUP = $0125;
  2103. {$EXTERNALSYM WM_UNINITMENUPOPUP}
  2104. WM_MENUCOMMAND = $0126;
  2105. {$EXTERNALSYM WM_MENUCOMMAND}
  2106. WM_CHANGEUISTATE = $0127;
  2107. {$EXTERNALSYM WM_CHANGEUISTATE}
  2108. WM_UPDATEUISTATE = $0128;
  2109. {$EXTERNALSYM WM_UPDATEUISTATE}
  2110. WM_QUERYUISTATE = $0129;
  2111. {$EXTERNALSYM WM_QUERYUISTATE}
  2112. //
  2113. // LOWORD(wParam) values in WM_*UISTATE*
  2114. //
  2115. UIS_SET = 1;
  2116. {$EXTERNALSYM UIS_SET}
  2117. UIS_CLEAR = 2;
  2118. {$EXTERNALSYM UIS_CLEAR}
  2119. UIS_INITIALIZE = 3;
  2120. {$EXTERNALSYM UIS_INITIALIZE}
  2121. //
  2122. // HIWORD(wParam) values in WM_*UISTATE*
  2123. //
  2124. UISF_HIDEFOCUS = $1;
  2125. {$EXTERNALSYM UISF_HIDEFOCUS}
  2126. UISF_HIDEACCEL = $2;
  2127. {$EXTERNALSYM UISF_HIDEACCEL}
  2128. UISF_ACTIVE = $4;
  2129. {$EXTERNALSYM UISF_ACTIVE}
  2130. WM_CTLCOLORMSGBOX = $0132;
  2131. {$EXTERNALSYM WM_CTLCOLORMSGBOX}
  2132. WM_CTLCOLOREDIT = $0133;
  2133. {$EXTERNALSYM WM_CTLCOLOREDIT}
  2134. WM_CTLCOLORLISTBOX = $0134;
  2135. {$EXTERNALSYM WM_CTLCOLORLISTBOX}
  2136. WM_CTLCOLORBTN = $0135;
  2137. {$EXTERNALSYM WM_CTLCOLORBTN}
  2138. WM_CTLCOLORDLG = $0136;
  2139. {$EXTERNALSYM WM_CTLCOLORDLG}
  2140. WM_CTLCOLORSCROLLBAR = $0137;
  2141. {$EXTERNALSYM WM_CTLCOLORSCROLLBAR}
  2142. WM_CTLCOLORSTATIC = $0138;
  2143. {$EXTERNALSYM WM_CTLCOLORSTATIC}
  2144. MN_GETHMENU = $01E1;
  2145. {$EXTERNALSYM MN_GETHMENU}
  2146. WM_MOUSEFIRST = $0200;
  2147. {$EXTERNALSYM WM_MOUSEFIRST}
  2148. WM_MOUSEMOVE = $0200;
  2149. {$EXTERNALSYM WM_MOUSEMOVE}
  2150. WM_LBUTTONDOWN = $0201;
  2151. {$EXTERNALSYM WM_LBUTTONDOWN}
  2152. WM_LBUTTONUP = $0202;
  2153. {$EXTERNALSYM WM_LBUTTONUP}
  2154. WM_LBUTTONDBLCLK = $0203;
  2155. {$EXTERNALSYM WM_LBUTTONDBLCLK}
  2156. WM_RBUTTONDOWN = $0204;
  2157. {$EXTERNALSYM WM_RBUTTONDOWN}
  2158. WM_RBUTTONUP = $0205;
  2159. {$EXTERNALSYM WM_RBUTTONUP}
  2160. WM_RBUTTONDBLCLK = $0206;
  2161. {$EXTERNALSYM WM_RBUTTONDBLCLK}
  2162. WM_MBUTTONDOWN = $0207;
  2163. {$EXTERNALSYM WM_MBUTTONDOWN}
  2164. WM_MBUTTONUP = $0208;
  2165. {$EXTERNALSYM WM_MBUTTONUP}
  2166. WM_MBUTTONDBLCLK = $0209;
  2167. {$EXTERNALSYM WM_MBUTTONDBLCLK}
  2168. WM_MOUSEWHEEL = $020A;
  2169. {$EXTERNALSYM WM_MOUSEWHEEL}
  2170. WM_XBUTTONDOWN = $020B;
  2171. {$EXTERNALSYM WM_XBUTTONDOWN}
  2172. WM_XBUTTONUP = $020C;
  2173. {$EXTERNALSYM WM_XBUTTONUP}
  2174. WM_XBUTTONDBLCLK = $020D;
  2175. {$EXTERNALSYM WM_XBUTTONDBLCLK}
  2176. {$IFDEF WIN2000_UP}
  2177. WM_MOUSELAST = $020D;
  2178. {$EXTERNALSYM WM_MOUSELAST}
  2179. {$ELSE}
  2180. {$IFDEF WINNT4}
  2181. WM_MOUSELAST = $020A;
  2182. {$EXTERNALSYM WM_MOUSELAST}
  2183. {$ELSE}
  2184. {$IFDEF WIN95_UP}
  2185. WM_MOUSELAST = $020A;
  2186. {$EXTERNALSYM WM_MOUSELAST}
  2187. {$ELSE}
  2188. WM_MOUSELAST = $0209;
  2189. {$EXTERNALSYM WM_MOUSELAST}
  2190. {$ENDIF WIN95_UP}
  2191. {$ENDIF WINNT4}
  2192. {$ENDIF WIN2000_UP}
  2193. // Value for rolling one detent//
  2194. WHEEL_DELTA = 120;
  2195. {$EXTERNALSYM WHEEL_DELTA}
  2196. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  2197. {$EXTERNALSYM GET_WHEEL_DELTA_WPARAM(wParam)}
  2198. // Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES//
  2199. const
  2200. WHEEL_PAGESCROLL = UINT_MAX;
  2201. {$EXTERNALSYM WHEEL_PAGESCROLL}
  2202. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  2203. {$EXTERNALSYM GET_KEYSTATE_WPARAM}
  2204. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  2205. {$EXTERNALSYM GET_NCHITTEST_WPARAM}
  2206. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  2207. {$EXTERNALSYM GET_XBUTTON_WPARAM}
  2208. // XButton values are WORD flags//
  2209. const
  2210. XBUTTON1 = $0001;
  2211. {$EXTERNALSYM XBUTTON1}
  2212. XBUTTON2 = $0002;
  2213. {$EXTERNALSYM XBUTTON2}
  2214. // Were there to be an XBUTTON3, it's value would be 0x0004//
  2215. WM_PARENTNOTIFY = $0210;
  2216. {$EXTERNALSYM WM_PARENTNOTIFY}
  2217. WM_ENTERMENULOOP = $0211;
  2218. {$EXTERNALSYM WM_ENTERMENULOOP}
  2219. WM_EXITMENULOOP = $0212;
  2220. {$EXTERNALSYM WM_EXITMENULOOP}
  2221. WM_NEXTMENU = $0213;
  2222. {$EXTERNALSYM WM_NEXTMENU}
  2223. WM_SIZING = $0214;
  2224. {$EXTERNALSYM WM_SIZING}
  2225. WM_CAPTURECHANGED = $0215;
  2226. {$EXTERNALSYM WM_CAPTURECHANGED}
  2227. WM_MOVING = $0216;
  2228. {$EXTERNALSYM WM_MOVING}
  2229. WM_POWERBROADCAST = $0218;
  2230. {$EXTERNALSYM WM_POWERBROADCAST}
  2231. PBT_APMQUERYSUSPEND = $0000;
  2232. {$EXTERNALSYM PBT_APMQUERYSUSPEND}
  2233. PBT_APMQUERYSTANDBY = $0001;
  2234. {$EXTERNALSYM PBT_APMQUERYSTANDBY}
  2235. PBT_APMQUERYSUSPENDFAILED = $0002;
  2236. {$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED}
  2237. PBT_APMQUERYSTANDBYFAILED = $0003;
  2238. {$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED}
  2239. PBT_APMSUSPEND = $0004;
  2240. {$EXTERNALSYM PBT_APMSUSPEND}
  2241. PBT_APMSTANDBY = $0005;
  2242. {$EXTERNALSYM PBT_APMSTANDBY}
  2243. PBT_APMRESUMECRITICAL = $0006;
  2244. {$EXTERNALSYM PBT_APMRESUMECRITICAL}
  2245. PBT_APMRESUMESUSPEND = $0007;
  2246. {$EXTERNALSYM PBT_APMRESUMESUSPEND}
  2247. PBT_APMRESUMESTANDBY = $0008;
  2248. {$EXTERNALSYM PBT_APMRESUMESTANDBY}
  2249. PBTF_APMRESUMEFROMFAILURE = $00000001;
  2250. {$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE}
  2251. PBT_APMBATTERYLOW = $0009;
  2252. {$EXTERNALSYM PBT_APMBATTERYLOW}
  2253. PBT_APMPOWERSTATUSCHANGE = $000A;
  2254. {$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE}
  2255. PBT_APMOEMEVENT = $000B;
  2256. {$EXTERNALSYM PBT_APMOEMEVENT}
  2257. PBT_APMRESUMEAUTOMATIC = $0012;
  2258. {$EXTERNALSYM PBT_APMRESUMEAUTOMATIC}
  2259. WM_DEVICECHANGE = $0219;
  2260. {$EXTERNALSYM WM_DEVICECHANGE}
  2261. WM_MDICREATE = $0220;
  2262. {$EXTERNALSYM WM_MDICREATE}
  2263. WM_MDIDESTROY = $0221;
  2264. {$EXTERNALSYM WM_MDIDESTROY}
  2265. WM_MDIACTIVATE = $0222;
  2266. {$EXTERNALSYM WM_MDIACTIVATE}
  2267. WM_MDIRESTORE = $0223;
  2268. {$EXTERNALSYM WM_MDIRESTORE}
  2269. WM_MDINEXT = $0224;
  2270. {$EXTERNALSYM WM_MDINEXT}
  2271. WM_MDIMAXIMIZE = $0225;
  2272. {$EXTERNALSYM WM_MDIMAXIMIZE}
  2273. WM_MDITILE = $0226;
  2274. {$EXTERNALSYM WM_MDITILE}
  2275. WM_MDICASCADE = $0227;
  2276. {$EXTERNALSYM WM_MDICASCADE}
  2277. WM_MDIICONARRANGE = $0228;
  2278. {$EXTERNALSYM WM_MDIICONARRANGE}
  2279. WM_MDIGETACTIVE = $0229;
  2280. {$EXTERNALSYM WM_MDIGETACTIVE}
  2281. WM_MDISETMENU = $0230;
  2282. {$EXTERNALSYM WM_MDISETMENU}
  2283. WM_ENTERSIZEMOVE = $0231;
  2284. {$EXTERNALSYM WM_ENTERSIZEMOVE}
  2285. WM_EXITSIZEMOVE = $0232;
  2286. {$EXTERNALSYM WM_EXITSIZEMOVE}
  2287. WM_DROPFILES = $0233;
  2288. {$EXTERNALSYM WM_DROPFILES}
  2289. WM_MDIREFRESHMENU = $0234;
  2290. {$EXTERNALSYM WM_MDIREFRESHMENU}
  2291. WM_IME_SETCONTEXT = $0281;
  2292. {$EXTERNALSYM WM_IME_SETCONTEXT}
  2293. WM_IME_NOTIFY = $0282;
  2294. {$EXTERNALSYM WM_IME_NOTIFY}
  2295. WM_IME_CONTROL = $0283;
  2296. {$EXTERNALSYM WM_IME_CONTROL}
  2297. WM_IME_COMPOSITIONFULL = $0284;
  2298. {$EXTERNALSYM WM_IME_COMPOSITIONFULL}
  2299. WM_IME_SELECT = $0285;
  2300. {$EXTERNALSYM WM_IME_SELECT}
  2301. WM_IME_CHAR = $0286;
  2302. {$EXTERNALSYM WM_IME_CHAR}
  2303. WM_IME_REQUEST = $0288;
  2304. {$EXTERNALSYM WM_IME_REQUEST}
  2305. WM_IME_KEYDOWN = $0290;
  2306. {$EXTERNALSYM WM_IME_KEYDOWN}
  2307. WM_IME_KEYUP = $0291;
  2308. {$EXTERNALSYM WM_IME_KEYUP}
  2309. WM_MOUSEHOVER = $02A1;
  2310. {$EXTERNALSYM WM_MOUSEHOVER}
  2311. WM_MOUSELEAVE = $02A3;
  2312. {$EXTERNALSYM WM_MOUSELEAVE}
  2313. WM_NCMOUSEHOVER = $02A0;
  2314. {$EXTERNALSYM WM_NCMOUSEHOVER}
  2315. WM_NCMOUSELEAVE = $02A2;
  2316. {$EXTERNALSYM WM_NCMOUSELEAVE}
  2317. WM_WTSSESSION_CHANGE = $02B1;
  2318. {$EXTERNALSYM WM_WTSSESSION_CHANGE}
  2319. WM_TABLET_FIRST = $02c0;
  2320. {$EXTERNALSYM WM_TABLET_FIRST}
  2321. WM_TABLET_LAST = $02df;
  2322. {$EXTERNALSYM WM_TABLET_LAST}
  2323. WM_CUT = $0300;
  2324. {$EXTERNALSYM WM_CUT}
  2325. WM_COPY = $0301;
  2326. {$EXTERNALSYM WM_COPY}
  2327. WM_PASTE = $0302;
  2328. {$EXTERNALSYM WM_PASTE}
  2329. WM_CLEAR = $0303;
  2330. {$EXTERNALSYM WM_CLEAR}
  2331. WM_UNDO = $0304;
  2332. {$EXTERNALSYM WM_UNDO}
  2333. WM_RENDERFORMAT = $0305;
  2334. {$EXTERNALSYM WM_RENDERFORMAT}
  2335. WM_RENDERALLFORMATS = $0306;
  2336. {$EXTERNALSYM WM_RENDERALLFORMATS}
  2337. WM_DESTROYCLIPBOARD = $0307;
  2338. {$EXTERNALSYM WM_DESTROYCLIPBOARD}
  2339. WM_DRAWCLIPBOARD = $0308;
  2340. {$EXTERNALSYM WM_DRAWCLIPBOARD}
  2341. WM_PAINTCLIPBOARD = $0309;
  2342. {$EXTERNALSYM WM_PAINTCLIPBOARD}
  2343. WM_VSCROLLCLIPBOARD = $030A;
  2344. {$EXTERNALSYM WM_VSCROLLCLIPBOARD}
  2345. WM_SIZECLIPBOARD = $030B;
  2346. {$EXTERNALSYM WM_SIZECLIPBOARD}
  2347. WM_ASKCBFORMATNAME = $030C;
  2348. {$EXTERNALSYM WM_ASKCBFORMATNAME}
  2349. WM_CHANGECBCHAIN = $030D;
  2350. {$EXTERNALSYM WM_CHANGECBCHAIN}
  2351. WM_HSCROLLCLIPBOARD = $030E;
  2352. {$EXTERNALSYM WM_HSCROLLCLIPBOARD}
  2353. WM_QUERYNEWPALETTE = $030F;
  2354. {$EXTERNALSYM WM_QUERYNEWPALETTE}
  2355. WM_PALETTEISCHANGING = $0310;
  2356. {$EXTERNALSYM WM_PALETTEISCHANGING}
  2357. WM_PALETTECHANGED = $0311;
  2358. {$EXTERNALSYM WM_PALETTECHANGED}
  2359. WM_HOTKEY = $0312;
  2360. {$EXTERNALSYM WM_HOTKEY}
  2361. WM_PRINT = $0317;
  2362. {$EXTERNALSYM WM_PRINT}
  2363. WM_PRINTCLIENT = $0318;
  2364. {$EXTERNALSYM WM_PRINTCLIENT}
  2365. WM_APPCOMMAND = $0319;
  2366. {$EXTERNALSYM WM_APPCOMMAND}
  2367. WM_THEMECHANGED = $031A;
  2368. {$EXTERNALSYM WM_THEMECHANGED}
  2369. WM_HANDHELDFIRST = $0358;
  2370. {$EXTERNALSYM WM_HANDHELDFIRST}
  2371. WM_HANDHELDLAST = $035F;
  2372. {$EXTERNALSYM WM_HANDHELDLAST}
  2373. WM_AFXFIRST = $0360;
  2374. {$EXTERNALSYM WM_AFXFIRST}
  2375. WM_AFXLAST = $037F;
  2376. {$EXTERNALSYM WM_AFXLAST}
  2377. WM_PENWINFIRST = $0380;
  2378. {$EXTERNALSYM WM_PENWINFIRST}
  2379. WM_PENWINLAST = $038F;
  2380. {$EXTERNALSYM WM_PENWINLAST}
  2381. WM_APP = $8000;
  2382. {$EXTERNALSYM WM_APP}
  2383. //
  2384. // NOTE: All Message Numbers below 0x0400 are RESERVED.
  2385. //
  2386. // Private Window Messages Start Here:
  2387. //
  2388. WM_USER = $0400;
  2389. {$EXTERNALSYM WM_USER}
  2390. // wParam for WM_SIZING message
  2391. WMSZ_LEFT = 1;
  2392. {$EXTERNALSYM WMSZ_LEFT}
  2393. WMSZ_RIGHT = 2;
  2394. {$EXTERNALSYM WMSZ_RIGHT}
  2395. WMSZ_TOP = 3;
  2396. {$EXTERNALSYM WMSZ_TOP}
  2397. WMSZ_TOPLEFT = 4;
  2398. {$EXTERNALSYM WMSZ_TOPLEFT}
  2399. WMSZ_TOPRIGHT = 5;
  2400. {$EXTERNALSYM WMSZ_TOPRIGHT}
  2401. WMSZ_BOTTOM = 6;
  2402. {$EXTERNALSYM WMSZ_BOTTOM}
  2403. WMSZ_BOTTOMLEFT = 7;
  2404. {$EXTERNALSYM WMSZ_BOTTOMLEFT}
  2405. WMSZ_BOTTOMRIGHT = 8;
  2406. {$EXTERNALSYM WMSZ_BOTTOMRIGHT}
  2407. //
  2408. // WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
  2409. //
  2410. HTERROR = DWORD(-2);
  2411. {$EXTERNALSYM HTERROR}
  2412. HTTRANSPARENT = DWORD(-1);
  2413. {$EXTERNALSYM HTTRANSPARENT}
  2414. HTNOWHERE = 0;
  2415. {$EXTERNALSYM HTNOWHERE}
  2416. HTCLIENT = 1;
  2417. {$EXTERNALSYM HTCLIENT}
  2418. HTCAPTION = 2;
  2419. {$EXTERNALSYM HTCAPTION}
  2420. HTSYSMENU = 3;
  2421. {$EXTERNALSYM HTSYSMENU}
  2422. HTGROWBOX = 4;
  2423. {$EXTERNALSYM HTGROWBOX}
  2424. HTSIZE = HTGROWBOX;
  2425. {$EXTERNALSYM HTSIZE}
  2426. HTMENU = 5;
  2427. {$EXTERNALSYM HTMENU}
  2428. HTHSCROLL = 6;
  2429. {$EXTERNALSYM HTHSCROLL}
  2430. HTVSCROLL = 7;
  2431. {$EXTERNALSYM HTVSCROLL}
  2432. HTMINBUTTON = 8;
  2433. {$EXTERNALSYM HTMINBUTTON}
  2434. HTMAXBUTTON = 9;
  2435. {$EXTERNALSYM HTMAXBUTTON}
  2436. HTLEFT = 10;
  2437. {$EXTERNALSYM HTLEFT}
  2438. HTRIGHT = 11;
  2439. {$EXTERNALSYM HTRIGHT}
  2440. HTTOP = 12;
  2441. {$EXTERNALSYM HTTOP}
  2442. HTTOPLEFT = 13;
  2443. {$EXTERNALSYM HTTOPLEFT}
  2444. HTTOPRIGHT = 14;
  2445. {$EXTERNALSYM HTTOPRIGHT}
  2446. HTBOTTOM = 15;
  2447. {$EXTERNALSYM HTBOTTOM}
  2448. HTBOTTOMLEFT = 16;
  2449. {$EXTERNALSYM HTBOTTOMLEFT}
  2450. HTBOTTOMRIGHT = 17;
  2451. {$EXTERNALSYM HTBOTTOMRIGHT}
  2452. HTBORDER = 18;
  2453. {$EXTERNALSYM HTBORDER}
  2454. HTREDUCE = HTMINBUTTON;
  2455. {$EXTERNALSYM HTREDUCE}
  2456. HTZOOM = HTMAXBUTTON;
  2457. {$EXTERNALSYM HTZOOM}
  2458. HTSIZEFIRST = HTLEFT;
  2459. {$EXTERNALSYM HTSIZEFIRST}
  2460. HTSIZELAST = HTBOTTOMRIGHT;
  2461. {$EXTERNALSYM HTSIZELAST}
  2462. HTOBJECT = 19;
  2463. {$EXTERNALSYM HTOBJECT}
  2464. HTCLOSE = 20;
  2465. {$EXTERNALSYM HTCLOSE}
  2466. HTHELP = 21;
  2467. {$EXTERNALSYM HTHELP}
  2468. //
  2469. // SendMessageTimeout values
  2470. //
  2471. SMTO_NORMAL = $0000;
  2472. {$EXTERNALSYM SMTO_NORMAL}
  2473. SMTO_BLOCK = $0001;
  2474. {$EXTERNALSYM SMTO_BLOCK}
  2475. SMTO_ABORTIFHUNG = $0002;
  2476. {$EXTERNALSYM SMTO_ABORTIFHUNG}
  2477. SMTO_NOTIMEOUTIFNOTHUNG = $0008;
  2478. {$EXTERNALSYM SMTO_NOTIMEOUTIFNOTHUNG}
  2479. //
  2480. // WM_MOUSEACTIVATE Return Codes
  2481. //
  2482. MA_ACTIVATE = 1;
  2483. {$EXTERNALSYM MA_ACTIVATE}
  2484. MA_ACTIVATEANDEAT = 2;
  2485. {$EXTERNALSYM MA_ACTIVATEANDEAT}
  2486. MA_NOACTIVATE = 3;
  2487. {$EXTERNALSYM MA_NOACTIVATE}
  2488. MA_NOACTIVATEANDEAT = 4;
  2489. {$EXTERNALSYM MA_NOACTIVATEANDEAT}
  2490. //
  2491. // WM_SETICON / WM_GETICON Type Codes
  2492. //
  2493. ICON_SMALL = 0;
  2494. {$EXTERNALSYM ICON_SMALL}
  2495. ICON_BIG = 1;
  2496. {$EXTERNALSYM ICON_BIG}
  2497. ICON_SMALL2 = 2;
  2498. {$EXTERNALSYM ICON_SMALL2}
  2499. function RegisterWindowMessageA(lpString: LPCSTR): UINT; stdcall;
  2500. {$EXTERNALSYM RegisterWindowMessageA}
  2501. function RegisterWindowMessageW(lpString: LPCWSTR): UINT; stdcall;
  2502. {$EXTERNALSYM RegisterWindowMessageW}
  2503. function RegisterWindowMessage(lpString: LPCTSTR): UINT; stdcall;
  2504. {$EXTERNALSYM RegisterWindowMessage}
  2505. //
  2506. // WM_SIZE message wParam values
  2507. //
  2508. const
  2509. SIZE_RESTORED = 0;
  2510. {$EXTERNALSYM SIZE_RESTORED}
  2511. SIZE_MINIMIZED = 1;
  2512. {$EXTERNALSYM SIZE_MINIMIZED}
  2513. SIZE_MAXIMIZED = 2;
  2514. {$EXTERNALSYM SIZE_MAXIMIZED}
  2515. SIZE_MAXSHOW = 3;
  2516. {$EXTERNALSYM SIZE_MAXSHOW}
  2517. SIZE_MAXHIDE = 4;
  2518. {$EXTERNALSYM SIZE_MAXHIDE}
  2519. //
  2520. // Obsolete constant names
  2521. //
  2522. SIZENORMAL = SIZE_RESTORED;
  2523. {$EXTERNALSYM SIZENORMAL}
  2524. SIZEICONIC = SIZE_MINIMIZED;
  2525. {$EXTERNALSYM SIZEICONIC}
  2526. SIZEFULLSCREEN = SIZE_MAXIMIZED;
  2527. {$EXTERNALSYM SIZEFULLSCREEN}
  2528. SIZEZOOMSHOW = SIZE_MAXSHOW;
  2529. {$EXTERNALSYM SIZEZOOMSHOW}
  2530. SIZEZOOMHIDE = SIZE_MAXHIDE;
  2531. {$EXTERNALSYM SIZEZOOMHIDE}
  2532. //
  2533. // WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
  2534. //
  2535. type
  2536. LPWINDOWPOS = ^WINDOWPOS;
  2537. {$EXTERNALSYM LPWINDOWPOS}
  2538. tagWINDOWPOS = record
  2539. hwnd: HWND;
  2540. hwndInsertAfter: HWND;
  2541. x: Integer;
  2542. y: Integer;
  2543. cx: Integer;
  2544. cy: Integer;
  2545. flags: UINT;
  2546. end;
  2547. {$EXTERNALSYM tagWINDOWPOS}
  2548. WINDOWPOS = tagWINDOWPOS;
  2549. {$EXTERNALSYM WINDOWPOS}
  2550. TWindowPos = WINDOWPOS;
  2551. PWindowPos = LPWINDOWPOS;
  2552. //
  2553. // WM_NCCALCSIZE parameter structure
  2554. //
  2555. LPNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS;
  2556. {$EXTERNALSYM LPNCCALCSIZE_PARAMS}
  2557. NCCALCSIZE_PARAMS = record
  2558. rgrc: array [0..2] of RECT;
  2559. lppos: PWINDOWPOS;
  2560. end;
  2561. {$EXTERNALSYM NCCALCSIZE_PARAMS}
  2562. TNcCalcSizeParams = NCCALCSIZE_PARAMS;
  2563. PNcCalcSizeParams = LPNCCALCSIZE_PARAMS;
  2564. //
  2565. // WM_NCCALCSIZE "window valid rect" return values
  2566. //
  2567. const
  2568. WVR_ALIGNTOP = $0010;
  2569. {$EXTERNALSYM WVR_ALIGNTOP}
  2570. WVR_ALIGNLEFT = $0020;
  2571. {$EXTERNALSYM WVR_ALIGNLEFT}
  2572. WVR_ALIGNBOTTOM = $0040;
  2573. {$EXTERNALSYM WVR_ALIGNBOTTOM}
  2574. WVR_ALIGNRIGHT = $0080;
  2575. {$EXTERNALSYM WVR_ALIGNRIGHT}
  2576. WVR_HREDRAW = $0100;
  2577. {$EXTERNALSYM WVR_HREDRAW}
  2578. WVR_VREDRAW = $0200;
  2579. {$EXTERNALSYM WVR_VREDRAW}
  2580. WVR_REDRAW = WVR_HREDRAW or WVR_VREDRAW;
  2581. {$EXTERNALSYM WVR_REDRAW}
  2582. WVR_VALIDRECTS = $0400;
  2583. {$EXTERNALSYM WVR_VALIDRECTS}
  2584. //
  2585. // Key State Masks for Mouse Messages
  2586. //
  2587. MK_LBUTTON = $0001;
  2588. {$EXTERNALSYM MK_LBUTTON}
  2589. MK_RBUTTON = $0002;
  2590. {$EXTERNALSYM MK_RBUTTON}
  2591. MK_SHIFT = $0004;
  2592. {$EXTERNALSYM MK_SHIFT}
  2593. MK_CONTROL = $0008;
  2594. {$EXTERNALSYM MK_CONTROL}
  2595. MK_MBUTTON = $0010;
  2596. {$EXTERNALSYM MK_MBUTTON}
  2597. MK_XBUTTON1 = $0020;
  2598. {$EXTERNALSYM MK_XBUTTON1}
  2599. MK_XBUTTON2 = $0040;
  2600. {$EXTERNALSYM MK_XBUTTON2}
  2601. TME_HOVER = $00000001;
  2602. {$EXTERNALSYM TME_HOVER}
  2603. TME_LEAVE = $00000002;
  2604. {$EXTERNALSYM TME_LEAVE}
  2605. TME_NONCLIENT = $00000010;
  2606. {$EXTERNALSYM TME_NONCLIENT}
  2607. TME_QUERY = $40000000;
  2608. {$EXTERNALSYM TME_QUERY}
  2609. TME_CANCEL = $80000000;
  2610. {$EXTERNALSYM TME_CANCEL}
  2611. HOVER_DEFAULT = $FFFFFFFF;
  2612. {$EXTERNALSYM HOVER_DEFAULT}
  2613. type
  2614. LPTRACKMOUSEEVENT = ^_TRACKMOUSEEVENT;
  2615. {$EXTERNALSYM LPTRACKMOUSEEVENT}
  2616. _TRACKMOUSEEVENT = record
  2617. cbSize: DWORD;
  2618. dwFlags: DWORD;
  2619. hwndTrack: HWND;
  2620. dwHoverTime: DWORD;
  2621. end;
  2622. //TRACKMOUSEEVENT = _TRACKMOUSEEVENT;
  2623. //{$EXTERNALSYM TRACKMOUSEEVENT}
  2624. TTrackMouseEvent = _TRACKMOUSEEVENT;
  2625. PTrackMouseEvent = LPTRACKMOUSEEVENT;
  2626. function TrackMouseEvent(var lpEventTrack: TTrackMouseEvent): BOOL; stdcall;
  2627. {$EXTERNALSYM TrackMouseEvent}
  2628. //
  2629. // Window Styles
  2630. //
  2631. const
  2632. WS_OVERLAPPED = $00000000;
  2633. {$EXTERNALSYM WS_OVERLAPPED}
  2634. WS_POPUP = $80000000;
  2635. {$EXTERNALSYM WS_POPUP}
  2636. WS_CHILD = $40000000;
  2637. {$EXTERNALSYM WS_CHILD}
  2638. WS_MINIMIZE = $20000000;
  2639. {$EXTERNALSYM WS_MINIMIZE}
  2640. WS_VISIBLE = $10000000;
  2641. {$EXTERNALSYM WS_VISIBLE}
  2642. WS_DISABLED = $08000000;
  2643. {$EXTERNALSYM WS_DISABLED}
  2644. WS_CLIPSIBLINGS = $04000000;
  2645. {$EXTERNALSYM WS_CLIPSIBLINGS}
  2646. WS_CLIPCHILDREN = $02000000;
  2647. {$EXTERNALSYM WS_CLIPCHILDREN}
  2648. WS_MAXIMIZE = $01000000;
  2649. {$EXTERNALSYM WS_MAXIMIZE}
  2650. WS_CAPTION = $00C00000; // WS_BORDER | WS_DLGFRAME
  2651. {$EXTERNALSYM WS_CAPTION}
  2652. WS_BORDER = $00800000;
  2653. {$EXTERNALSYM WS_BORDER}
  2654. WS_DLGFRAME = $00400000;
  2655. {$EXTERNALSYM WS_DLGFRAME}
  2656. WS_VSCROLL = $00200000;
  2657. {$EXTERNALSYM WS_VSCROLL}
  2658. WS_HSCROLL = $00100000;
  2659. {$EXTERNALSYM WS_HSCROLL}
  2660. WS_SYSMENU = $00080000;
  2661. {$EXTERNALSYM WS_SYSMENU}
  2662. WS_THICKFRAME = $00040000;
  2663. {$EXTERNALSYM WS_THICKFRAME}
  2664. WS_GROUP = $00020000;
  2665. {$EXTERNALSYM WS_GROUP}
  2666. WS_TABSTOP = $00010000;
  2667. {$EXTERNALSYM WS_TABSTOP}
  2668. WS_MINIMIZEBOX = $00020000;
  2669. {$EXTERNALSYM WS_MINIMIZEBOX}
  2670. WS_MAXIMIZEBOX = $00010000;
  2671. {$EXTERNALSYM WS_MAXIMIZEBOX}
  2672. WS_TILED = WS_OVERLAPPED;
  2673. {$EXTERNALSYM WS_TILED}
  2674. WS_ICONIC = WS_MINIMIZE;
  2675. {$EXTERNALSYM WS_ICONIC}
  2676. WS_SIZEBOX = WS_THICKFRAME;
  2677. {$EXTERNALSYM WS_SIZEBOX}
  2678. //
  2679. // Common Window Styles
  2680. //
  2681. WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
  2682. WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
  2683. {$EXTERNALSYM WS_OVERLAPPEDWINDOW}
  2684. WS_POPUPWINDOW = WS_POPUP or WS_BORDER or WS_SYSMENU;
  2685. {$EXTERNALSYM WS_POPUPWINDOW}
  2686. WS_CHILDWINDOW = WS_CHILD;
  2687. {$EXTERNALSYM WS_CHILDWINDOW}
  2688. WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
  2689. {$EXTERNALSYM WS_TILEDWINDOW}
  2690. //
  2691. // Extended Window Styles
  2692. //
  2693. WS_EX_DLGMODALFRAME = $00000001;
  2694. {$EXTERNALSYM WS_EX_DLGMODALFRAME}
  2695. WS_EX_NOPARENTNOTIFY = $00000004;
  2696. {$EXTERNALSYM WS_EX_NOPARENTNOTIFY}
  2697. WS_EX_TOPMOST = $00000008;
  2698. {$EXTERNALSYM WS_EX_TOPMOST}
  2699. WS_EX_ACCEPTFILES = $00000010;
  2700. {$EXTERNALSYM WS_EX_ACCEPTFILES}
  2701. WS_EX_TRANSPARENT = $00000020;
  2702. {$EXTERNALSYM WS_EX_TRANSPARENT}
  2703. WS_EX_MDICHILD = $00000040;
  2704. {$EXTERNALSYM WS_EX_MDICHILD}
  2705. WS_EX_TOOLWINDOW = $00000080;
  2706. {$EXTERNALSYM WS_EX_TOOLWINDOW}
  2707. WS_EX_WINDOWEDGE = $00000100;
  2708. {$EXTERNALSYM WS_EX_WINDOWEDGE}
  2709. WS_EX_CLIENTEDGE = $00000200;
  2710. {$EXTERNALSYM WS_EX_CLIENTEDGE}
  2711. WS_EX_CONTEXTHELP = $00000400;
  2712. {$EXTERNALSYM WS_EX_CONTEXTHELP}
  2713. WS_EX_RIGHT = $00001000;
  2714. {$EXTERNALSYM WS_EX_RIGHT}
  2715. WS_EX_LEFT = $00000000;
  2716. {$EXTERNALSYM WS_EX_LEFT}
  2717. WS_EX_RTLREADING = $00002000;
  2718. {$EXTERNALSYM WS_EX_RTLREADING}
  2719. WS_EX_LTRREADING = $00000000;
  2720. {$EXTERNALSYM WS_EX_LTRREADING}
  2721. WS_EX_LEFTSCROLLBAR = $00004000;
  2722. {$EXTERNALSYM WS_EX_LEFTSCROLLBAR}
  2723. WS_EX_RIGHTSCROLLBAR = $00000000;
  2724. {$EXTERNALSYM WS_EX_RIGHTSCROLLBAR}
  2725. WS_EX_CONTROLPARENT = $00010000;
  2726. {$EXTERNALSYM WS_EX_CONTROLPARENT}
  2727. WS_EX_STATICEDGE = $00020000;
  2728. {$EXTERNALSYM WS_EX_STATICEDGE}
  2729. WS_EX_APPWINDOW = $00040000;
  2730. {$EXTERNALSYM WS_EX_APPWINDOW}
  2731. WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE;
  2732. {$EXTERNALSYM WS_EX_OVERLAPPEDWINDOW}
  2733. WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
  2734. {$EXTERNALSYM WS_EX_PALETTEWINDOW}
  2735. WS_EX_LAYERED = $00080000;
  2736. {$EXTERNALSYM WS_EX_LAYERED}
  2737. WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
  2738. {$EXTERNALSYM WS_EX_NOINHERITLAYOUT}
  2739. WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
  2740. {$EXTERNALSYM WS_EX_LAYOUTRTL}
  2741. WS_EX_COMPOSITED = $02000000;
  2742. {$EXTERNALSYM WS_EX_COMPOSITED}
  2743. WS_EX_NOACTIVATE = $08000000;
  2744. {$EXTERNALSYM WS_EX_NOACTIVATE}
  2745. //
  2746. // Class styles
  2747. //
  2748. CS_VREDRAW = $0001;
  2749. {$EXTERNALSYM CS_VREDRAW}
  2750. CS_HREDRAW = $0002;
  2751. {$EXTERNALSYM CS_HREDRAW}
  2752. CS_DBLCLKS = $0008;
  2753. {$EXTERNALSYM CS_DBLCLKS}
  2754. CS_OWNDC = $0020;
  2755. {$EXTERNALSYM CS_OWNDC}
  2756. CS_CLASSDC = $0040;
  2757. {$EXTERNALSYM CS_CLASSDC}
  2758. CS_PARENTDC = $0080;
  2759. {$EXTERNALSYM CS_PARENTDC}
  2760. CS_NOCLOSE = $0200;
  2761. {$EXTERNALSYM CS_NOCLOSE}
  2762. CS_SAVEBITS = $0800;
  2763. {$EXTERNALSYM CS_SAVEBITS}
  2764. CS_BYTEALIGNCLIENT = $1000;
  2765. {$EXTERNALSYM CS_BYTEALIGNCLIENT}
  2766. CS_BYTEALIGNWINDOW = $2000;
  2767. {$EXTERNALSYM CS_BYTEALIGNWINDOW}
  2768. CS_GLOBALCLASS = $4000;
  2769. {$EXTERNALSYM CS_GLOBALCLASS}
  2770. CS_IME = $00010000;
  2771. {$EXTERNALSYM CS_IME}
  2772. CS_DROPSHADOW = $00020000;
  2773. {$EXTERNALSYM CS_DROPSHADOW}
  2774. // WM_PRINT flags//
  2775. PRF_CHECKVISIBLE = $00000001;
  2776. {$EXTERNALSYM PRF_CHECKVISIBLE}
  2777. PRF_NONCLIENT = $00000002;
  2778. {$EXTERNALSYM PRF_NONCLIENT}
  2779. PRF_CLIENT = $00000004;
  2780. {$EXTERNALSYM PRF_CLIENT}
  2781. PRF_ERASEBKGND = $00000008;
  2782. {$EXTERNALSYM PRF_ERASEBKGND}
  2783. PRF_CHILDREN = $00000010;
  2784. {$EXTERNALSYM PRF_CHILDREN}
  2785. PRF_OWNED = $00000020;
  2786. {$EXTERNALSYM PRF_OWNED}
  2787. // 3D border styles//
  2788. BDR_RAISEDOUTER = $0001;
  2789. {$EXTERNALSYM BDR_RAISEDOUTER}
  2790. BDR_SUNKENOUTER = $0002;
  2791. {$EXTERNALSYM BDR_SUNKENOUTER}
  2792. BDR_RAISEDINNER = $0004;
  2793. {$EXTERNALSYM BDR_RAISEDINNER}
  2794. BDR_SUNKENINNER = $0008;
  2795. {$EXTERNALSYM BDR_SUNKENINNER}
  2796. BDR_OUTER = BDR_RAISEDOUTER or BDR_SUNKENOUTER;
  2797. {$EXTERNALSYM BDR_OUTER}
  2798. BDR_INNER = BDR_RAISEDINNER or BDR_SUNKENINNER;
  2799. {$EXTERNALSYM BDR_INNER}
  2800. BDR_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2801. {$EXTERNALSYM BDR_RAISED}
  2802. BDR_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2803. {$EXTERNALSYM BDR_SUNKEN}
  2804. EDGE_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2805. {$EXTERNALSYM EDGE_RAISED}
  2806. EDGE_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2807. {$EXTERNALSYM EDGE_SUNKEN}
  2808. EDGE_ETCHED = BDR_SUNKENOUTER or BDR_RAISEDINNER;
  2809. {$EXTERNALSYM EDGE_ETCHED}
  2810. EDGE_BUMP = BDR_RAISEDOUTER or BDR_SUNKENINNER;
  2811. {$EXTERNALSYM EDGE_BUMP}
  2812. // Border flags//
  2813. BF_LEFT = $0001;
  2814. {$EXTERNALSYM BF_LEFT}
  2815. BF_TOP = $0002;
  2816. {$EXTERNALSYM BF_TOP}
  2817. BF_RIGHT = $0004;
  2818. {$EXTERNALSYM BF_RIGHT}
  2819. BF_BOTTOM = $0008;
  2820. {$EXTERNALSYM BF_BOTTOM}
  2821. BF_TOPLEFT = BF_TOP or BF_LEFT;
  2822. {$EXTERNALSYM BF_TOPLEFT}
  2823. BF_TOPRIGHT = BF_TOP or BF_RIGHT;
  2824. {$EXTERNALSYM BF_TOPRIGHT}
  2825. BF_BOTTOMLEFT = BF_BOTTOM or BF_LEFT;
  2826. {$EXTERNALSYM BF_BOTTOMLEFT}
  2827. BF_BOTTOMRIGHT = BF_BOTTOM or BF_RIGHT;
  2828. {$EXTERNALSYM BF_BOTTOMRIGHT}
  2829. BF_RECT = BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM;
  2830. {$EXTERNALSYM BF_RECT}
  2831. BF_DIAGONAL = $0010;
  2832. {$EXTERNALSYM BF_DIAGONAL}
  2833. // For diagonal lines, the BF_RECT flags specify the end point of the
  2834. // vector bounded by the rectangle parameter.
  2835. BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL or BF_TOP or BF_RIGHT;
  2836. {$EXTERNALSYM BF_DIAGONAL_ENDTOPRIGHT}
  2837. BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL or BF_TOP or BF_LEFT;
  2838. {$EXTERNALSYM BF_DIAGONAL_ENDTOPLEFT}
  2839. BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL or BF_BOTTOM or BF_LEFT;
  2840. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMLEFT}
  2841. BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL or BF_BOTTOM or BF_RIGHT;
  2842. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMRIGHT}
  2843. BF_MIDDLE = $0800; // Fill in the middle
  2844. {$EXTERNALSYM BF_MIDDLE}
  2845. BF_SOFT = $1000; // For softer buttons
  2846. {$EXTERNALSYM BF_SOFT}
  2847. BF_ADJUST = $2000; // Calculate the space left over
  2848. {$EXTERNALSYM BF_ADJUST}
  2849. BF_FLAT = $4000; // For flat rather than 3D borders
  2850. {$EXTERNALSYM BF_FLAT}
  2851. BF_MONO = $8000; // For monochrome borders
  2852. {$EXTERNALSYM BF_MONO}
  2853. function DrawEdge(hdc: HDC; var qrc: RECT; edge, grfFlags: UINT): BOOL; stdcall;
  2854. {$EXTERNALSYM DrawEdge}
  2855. // flags for DrawFrameControl//
  2856. const
  2857. DFC_CAPTION = 1;
  2858. {$EXTERNALSYM DFC_CAPTION}
  2859. DFC_MENU = 2;
  2860. {$EXTERNALSYM DFC_MENU}
  2861. DFC_SCROLL = 3;
  2862. {$EXTERNALSYM DFC_SCROLL}
  2863. DFC_BUTTON = 4;
  2864. {$EXTERNALSYM DFC_BUTTON}
  2865. DFC_POPUPMENU = 5;
  2866. {$EXTERNALSYM DFC_POPUPMENU}
  2867. DFCS_CAPTIONCLOSE = $0000;
  2868. {$EXTERNALSYM DFCS_CAPTIONCLOSE}
  2869. DFCS_CAPTIONMIN = $0001;
  2870. {$EXTERNALSYM DFCS_CAPTIONMIN}
  2871. DFCS_CAPTIONMAX = $0002;
  2872. {$EXTERNALSYM DFCS_CAPTIONMAX}
  2873. DFCS_CAPTIONRESTORE = $0003;
  2874. {$EXTERNALSYM DFCS_CAPTIONRESTORE}
  2875. DFCS_CAPTIONHELP = $0004;
  2876. {$EXTERNALSYM DFCS_CAPTIONHELP}
  2877. DFCS_MENUARROW = $0000;
  2878. {$EXTERNALSYM DFCS_MENUARROW}
  2879. DFCS_MENUCHECK = $0001;
  2880. {$EXTERNALSYM DFCS_MENUCHECK}
  2881. DFCS_MENUBULLET = $0002;
  2882. {$EXTERNALSYM DFCS_MENUBULLET}
  2883. DFCS_MENUARROWRIGHT = $0004;
  2884. {$EXTERNALSYM DFCS_MENUARROWRIGHT}
  2885. DFCS_SCROLLUP = $0000;
  2886. {$EXTERNALSYM DFCS_SCROLLUP}
  2887. DFCS_SCROLLDOWN = $0001;
  2888. {$EXTERNALSYM DFCS_SCROLLDOWN}
  2889. DFCS_SCROLLLEFT = $0002;
  2890. {$EXTERNALSYM DFCS_SCROLLLEFT}
  2891. DFCS_SCROLLRIGHT = $0003;
  2892. {$EXTERNALSYM DFCS_SCROLLRIGHT}
  2893. DFCS_SCROLLCOMBOBOX = $0005;
  2894. {$EXTERNALSYM DFCS_SCROLLCOMBOBOX}
  2895. DFCS_SCROLLSIZEGRIP = $0008;
  2896. {$EXTERNALSYM DFCS_SCROLLSIZEGRIP}
  2897. DFCS_SCROLLSIZEGRIPRIGHT = $0010;
  2898. {$EXTERNALSYM DFCS_SCROLLSIZEGRIPRIGHT}
  2899. DFCS_BUTTONCHECK = $0000;
  2900. {$EXTERNALSYM DFCS_BUTTONCHECK}
  2901. DFCS_BUTTONRADIOIMAGE = $0001;
  2902. {$EXTERNALSYM DFCS_BUTTONRADIOIMAGE}
  2903. DFCS_BUTTONRADIOMASK = $0002;
  2904. {$EXTERNALSYM DFCS_BUTTONRADIOMASK}
  2905. DFCS_BUTTONRADIO = $0004;
  2906. {$EXTERNALSYM DFCS_BUTTONRADIO}
  2907. DFCS_BUTTON3STATE = $0008;
  2908. {$EXTERNALSYM DFCS_BUTTON3STATE}
  2909. DFCS_BUTTONPUSH = $0010;
  2910. {$EXTERNALSYM DFCS_BUTTONPUSH}
  2911. DFCS_INACTIVE = $0100;
  2912. {$EXTERNALSYM DFCS_INACTIVE}
  2913. DFCS_PUSHED = $0200;
  2914. {$EXTERNALSYM DFCS_PUSHED}
  2915. DFCS_CHECKED = $0400;
  2916. {$EXTERNALSYM DFCS_CHECKED}
  2917. DFCS_TRANSPARENT = $0800;
  2918. {$EXTERNALSYM DFCS_TRANSPARENT}
  2919. DFCS_HOT = $1000;
  2920. {$EXTERNALSYM DFCS_HOT}
  2921. DFCS_ADJUSTRECT = $2000;
  2922. {$EXTERNALSYM DFCS_ADJUSTRECT}
  2923. DFCS_FLAT = $4000;
  2924. {$EXTERNALSYM DFCS_FLAT}
  2925. DFCS_MONO = $8000;
  2926. {$EXTERNALSYM DFCS_MONO}
  2927. function DrawFrameControl(hdc: HDC; const lprc: RECT; uType, uState: UINT): BOOL; stdcall;
  2928. {$EXTERNALSYM DrawFrameControl}
  2929. // flags for DrawCaption//
  2930. const
  2931. DC_ACTIVE = $0001;
  2932. {$EXTERNALSYM DC_ACTIVE}
  2933. DC_SMALLCAP = $0002;
  2934. {$EXTERNALSYM DC_SMALLCAP}
  2935. DC_ICON = $0004;
  2936. {$EXTERNALSYM DC_ICON}
  2937. DC_TEXT = $0008;
  2938. {$EXTERNALSYM DC_TEXT}
  2939. DC_INBUTTON = $0010;
  2940. {$EXTERNALSYM DC_INBUTTON}
  2941. DC_GRADIENT = $0020;
  2942. {$EXTERNALSYM DC_GRADIENT}
  2943. DC_BUTTONS = $1000;
  2944. {$EXTERNALSYM DC_BUTTONS}
  2945. function DrawCaption(hwnd: HWND; hdc: HDC; const lprc: RECT; uFlags: UINT): BOOL; stdcall;
  2946. {$EXTERNALSYM DrawCaption}
  2947. const
  2948. IDANI_OPEN = 1;
  2949. {$EXTERNALSYM IDANI_OPEN}
  2950. IDANI_CAPTION = 3;
  2951. {$EXTERNALSYM IDANI_CAPTION}
  2952. function DrawAnimatedRects(hwnd: HWND; idAni: Integer; const lprcFrom, lprcTo: RECT): BOOL; stdcall;
  2953. {$EXTERNALSYM DrawAnimatedRects}
  2954. //
  2955. // Predefined Clipboard Formats
  2956. //
  2957. const
  2958. CF_TEXT = 1;
  2959. {$EXTERNALSYM CF_TEXT}
  2960. CF_BITMAP = 2;
  2961. {$EXTERNALSYM CF_BITMAP}
  2962. CF_METAFILEPICT = 3;
  2963. {$EXTERNALSYM CF_METAFILEPICT}
  2964. CF_SYLK = 4;
  2965. {$EXTERNALSYM CF_SYLK}
  2966. CF_DIF = 5;
  2967. {$EXTERNALSYM CF_DIF}
  2968. CF_TIFF = 6;
  2969. {$EXTERNALSYM CF_TIFF}
  2970. CF_OEMTEXT = 7;
  2971. {$EXTERNALSYM CF_OEMTEXT}
  2972. CF_DIB = 8;
  2973. {$EXTERNALSYM CF_DIB}
  2974. CF_PALETTE = 9;
  2975. {$EXTERNALSYM CF_PALETTE}
  2976. CF_PENDATA = 10;
  2977. {$EXTERNALSYM CF_PENDATA}
  2978. CF_RIFF = 11;
  2979. {$EXTERNALSYM CF_RIFF}
  2980. CF_WAVE = 12;
  2981. {$EXTERNALSYM CF_WAVE}
  2982. CF_UNICODETEXT = 13;
  2983. {$EXTERNALSYM CF_UNICODETEXT}
  2984. CF_ENHMETAFILE = 14;
  2985. {$EXTERNALSYM CF_ENHMETAFILE}
  2986. CF_HDROP = 15;
  2987. {$EXTERNALSYM CF_HDROP}
  2988. CF_LOCALE = 16;
  2989. {$EXTERNALSYM CF_LOCALE}
  2990. CF_DIBV5 = 17;
  2991. {$EXTERNALSYM CF_DIBV5}
  2992. {$IFDEF WIN98ME_UP}
  2993. CF_MAX = 18;
  2994. {$EXTERNALSYM CF_MAX}
  2995. {$ELSE}
  2996. CF_MAX = 17;
  2997. {$EXTERNALSYM CF_MAX}
  2998. {$ENDIF WIN98ME_UP}
  2999. CF_OWNERDISPLAY = $0080;
  3000. {$EXTERNALSYM CF_OWNERDISPLAY}
  3001. CF_DSPTEXT = $0081;
  3002. {$EXTERNALSYM CF_DSPTEXT}
  3003. CF_DSPBITMAP = $0082;
  3004. {$EXTERNALSYM CF_DSPBITMAP}
  3005. CF_DSPMETAFILEPICT = $0083;
  3006. {$EXTERNALSYM CF_DSPMETAFILEPICT}
  3007. CF_DSPENHMETAFILE = $008E;
  3008. {$EXTERNALSYM CF_DSPENHMETAFILE}
  3009. //
  3010. // "Private" formats don't get GlobalFree()'d
  3011. //
  3012. CF_PRIVATEFIRST = $0200;
  3013. {$EXTERNALSYM CF_PRIVATEFIRST}
  3014. CF_PRIVATELAST = $02FF;
  3015. {$EXTERNALSYM CF_PRIVATELAST}
  3016. //
  3017. // "GDIOBJ" formats do get DeleteObject()'d
  3018. //
  3019. CF_GDIOBJFIRST = $0300;
  3020. {$EXTERNALSYM CF_GDIOBJFIRST}
  3021. CF_GDIOBJLAST = $03FF;
  3022. {$EXTERNALSYM CF_GDIOBJLAST}
  3023. //
  3024. // Defines for the fVirt field of the Accelerator table structure.
  3025. //
  3026. FVIRTKEY = TRUE; // Assumed to be == TRUE
  3027. {$EXTERNALSYM FVIRTKEY}
  3028. FNOINVERT = $02;
  3029. {$EXTERNALSYM FNOINVERT}
  3030. FSHIFT = $04;
  3031. {$EXTERNALSYM FSHIFT}
  3032. FCONTROL = $08;
  3033. {$EXTERNALSYM FCONTROL}
  3034. FALT = $10;
  3035. {$EXTERNALSYM FALT}
  3036. type
  3037. LPACCEL = ^ACCEL;
  3038. {$EXTERNALSYM LPACCEL}
  3039. tagACCEL = record
  3040. fVirt: BYTE; // Also called the flags field//
  3041. key: WORD;
  3042. cmd: WORD;
  3043. end;
  3044. {$EXTERNALSYM tagACCEL}
  3045. ACCEL = tagACCEL;
  3046. {$EXTERNALSYM ACCEL}
  3047. TAccel = ACCEL;
  3048. PAccel = LPACCEL;
  3049. LPPAINTSTRUCT = ^PAINTSTRUCT;
  3050. {$EXTERNALSYM LPPAINTSTRUCT}
  3051. tagPAINTSTRUCT = record
  3052. hdc: HDC;
  3053. fErase: BOOL;
  3054. rcPaint: RECT;
  3055. fRestore: BOOL;
  3056. fIncUpdate: BOOL;
  3057. rgbReserved: array [0..31] of BYTE;
  3058. end;
  3059. {$EXTERNALSYM tagPAINTSTRUCT}
  3060. PAINTSTRUCT = tagPAINTSTRUCT;
  3061. {$EXTERNALSYM PAINTSTRUCT}
  3062. NPPAINTSTRUCT = ^PAINTSTRUCT;
  3063. {$EXTERNALSYM NPPAINTSTRUCT}
  3064. TPaintStruct = PAINTSTRUCT;
  3065. PPaintStruct = LPPAINTSTRUCT;
  3066. LPCREATESTRUCTA = ^CREATESTRUCTA;
  3067. {$EXTERNALSYM LPCREATESTRUCTA}
  3068. tagCREATESTRUCTA = record
  3069. lpCreateParams: LPVOID;
  3070. hInstance: HINST;
  3071. hMenu: HMENU;
  3072. hwndParent: HWND;
  3073. cy: Integer;
  3074. cx: Integer;
  3075. y: Integer;
  3076. x: Integer;
  3077. style: LONG;
  3078. lpszName: LPCSTR;
  3079. lpszClass: LPCSTR;
  3080. dwExStyle: DWORD;
  3081. end;
  3082. {$EXTERNALSYM tagCREATESTRUCTA}
  3083. CREATESTRUCTA = tagCREATESTRUCTA;
  3084. {$EXTERNALSYM CREATESTRUCTA}
  3085. TCreateStructA = CREATESTRUCTA;
  3086. PCreateStructA = LPCREATESTRUCTA;
  3087. LPCREATESTRUCTW = ^CREATESTRUCTW;
  3088. {$EXTERNALSYM LPCREATESTRUCTW}
  3089. tagCREATESTRUCTW = record
  3090. lpCreateParams: LPVOID;
  3091. hInstance: HINST;
  3092. hMenu: HMENU;
  3093. hwndParent: HWND;
  3094. cy: Integer;
  3095. cx: Integer;
  3096. y: Integer;
  3097. x: Integer;
  3098. style: LONG;
  3099. lpszName: LPCWSTR;
  3100. lpszClass: LPCWSTR;
  3101. dwExStyle: DWORD;
  3102. end;
  3103. {$EXTERNALSYM tagCREATESTRUCTW}
  3104. CREATESTRUCTW = tagCREATESTRUCTW;
  3105. {$EXTERNALSYM CREATESTRUCTW}
  3106. TCreateStructW = CREATESTRUCTW;
  3107. PCreateStructW = LPCREATESTRUCTW;
  3108. {$IFDEF UNICODE}
  3109. CREATESTRUCT = CREATESTRUCTW;
  3110. {$EXTERNALSYM CREATESTRUCT}
  3111. LPCREATESTRUCT = LPCREATESTRUCTW;
  3112. {$EXTERNALSYM LPCREATESTRUCT}
  3113. TCreateStruct = TCreateStructW;
  3114. PCreateStruct = PCreateStructW;
  3115. {$ELSE}
  3116. CREATESTRUCT = CREATESTRUCTA;
  3117. {$EXTERNALSYM CREATESTRUCT}
  3118. LPCREATESTRUCT = LPCREATESTRUCTA;
  3119. {$EXTERNALSYM LPCREATESTRUCT}
  3120. TCreateStruct = TCreateStructA;
  3121. PCreateStruct = PCreateStructA;
  3122. {$ENDIF UNICODE}
  3123. //
  3124. // HCBT_CREATEWND parameters pointed to by lParam
  3125. //
  3126. type
  3127. LPCBT_CREATEWNDA = ^CBT_CREATEWNDA;
  3128. {$EXTERNALSYM LPCBT_CREATEWNDA}
  3129. tagCBT_CREATEWNDA = record
  3130. lpcs: LPCREATESTRUCTA;
  3131. hwndInsertAfter: HWND;
  3132. end;
  3133. {$EXTERNALSYM tagCBT_CREATEWNDA}
  3134. CBT_CREATEWNDA = tagCBT_CREATEWNDA;
  3135. {$EXTERNALSYM CBT_CREATEWNDA}
  3136. TCbtCreateWndA = CBT_CREATEWNDA;
  3137. PCbtCreateWndA = LPCBT_CREATEWNDA;
  3138. //
  3139. // HCBT_CREATEWND parameters pointed to by lParam
  3140. //
  3141. LPCBT_CREATEWNDW = ^CBT_CREATEWNDW;
  3142. {$EXTERNALSYM LPCBT_CREATEWNDW}
  3143. tagCBT_CREATEWNDW = record
  3144. lpcs: LPCREATESTRUCTW;
  3145. hwndInsertAfter: HWND;
  3146. end;
  3147. {$EXTERNALSYM tagCBT_CREATEWNDW}
  3148. CBT_CREATEWNDW = tagCBT_CREATEWNDW;
  3149. {$EXTERNALSYM CBT_CREATEWNDW}
  3150. TCbtCreateWndW = CBT_CREATEWNDW;
  3151. PCbtCreateWndW = LPCBT_CREATEWNDW;
  3152. {$IFDEF UNICODE}
  3153. CBT_CREATEWND = CBT_CREATEWNDW;
  3154. {$EXTERNALSYM CBT_CREATEWND}
  3155. LPCBT_CREATEWND = LPCBT_CREATEWNDW;
  3156. {$EXTERNALSYM LPCBT_CREATEWND}
  3157. {$ELSE}
  3158. CBT_CREATEWND = CBT_CREATEWNDA;
  3159. {$EXTERNALSYM CBT_CREATEWND}
  3160. LPCBT_CREATEWND = LPCBT_CREATEWNDA;
  3161. {$EXTERNALSYM LPCBT_CREATEWND}
  3162. {$ENDIF UNICODE}
  3163. LPWINDOWPLACEMENT = ^WINDOWPLACEMENT;
  3164. {$EXTERNALSYM LPWINDOWPLACEMENT}
  3165. tagWINDOWPLACEMENT = record
  3166. length: UINT;
  3167. flags: UINT;
  3168. showCmd: UINT;
  3169. ptMinPosition: POINT;
  3170. ptMaxPosition: POINT;
  3171. rcNormalPosition: RECT;
  3172. end;
  3173. {$EXTERNALSYM tagWINDOWPLACEMENT}
  3174. WINDOWPLACEMENT = tagWINDOWPLACEMENT;
  3175. {$EXTERNALSYM WINDOWPLACEMENT}
  3176. TWindowPlacement = WINDOWPLACEMENT;
  3177. PWindowPlacement = LPWINDOWPLACEMENT;
  3178. const
  3179. WPF_SETMINPOSITION = $0001;
  3180. {$EXTERNALSYM WPF_SETMINPOSITION}
  3181. WPF_RESTORETOMAXIMIZED = $0002;
  3182. {$EXTERNALSYM WPF_RESTORETOMAXIMIZED}
  3183. WPF_ASYNCWINDOWPLACEMENT = $0004;
  3184. {$EXTERNALSYM WPF_ASYNCWINDOWPLACEMENT}
  3185. type
  3186. LPNMHDR = ^NMHDR;
  3187. {$EXTERNALSYM LPNMHDR}
  3188. tagNMHDR = record
  3189. hwndFrom: HWND;
  3190. idFrom: UINT_PTR;
  3191. code: UINT; // NM_ code
  3192. end;
  3193. {$EXTERNALSYM tagNMHDR}
  3194. NMHDR = tagNMHDR;
  3195. {$EXTERNALSYM NMHDR}
  3196. TNmHdr = NMHDR;
  3197. PNmHdr = LPNMHDR;
  3198. LPSTYLESTRUCT = ^STYLESTRUCT;
  3199. {$EXTERNALSYM LPSTYLESTRUCT}
  3200. tagSTYLESTRUCT = record
  3201. styleOld: DWORD;
  3202. styleNew: DWORD;
  3203. end;
  3204. {$EXTERNALSYM tagSTYLESTRUCT}
  3205. STYLESTRUCT = tagSTYLESTRUCT;
  3206. {$EXTERNALSYM STYLESTRUCT}
  3207. TStyleStruct = STYLESTRUCT;
  3208. PStyleStruct = LPSTYLESTRUCT;
  3209. //
  3210. // Owner draw control types
  3211. //
  3212. const
  3213. ODT_MENU = 1;
  3214. {$EXTERNALSYM ODT_MENU}
  3215. ODT_LISTBOX = 2;
  3216. {$EXTERNALSYM ODT_LISTBOX}
  3217. ODT_COMBOBOX = 3;
  3218. {$EXTERNALSYM ODT_COMBOBOX}
  3219. ODT_BUTTON = 4;
  3220. {$EXTERNALSYM ODT_BUTTON}
  3221. ODT_STATIC = 5;
  3222. {$EXTERNALSYM ODT_STATIC}
  3223. //
  3224. // Owner draw actions
  3225. //
  3226. ODA_DRAWENTIRE = $0001;
  3227. {$EXTERNALSYM ODA_DRAWENTIRE}
  3228. ODA_SELECT = $0002;
  3229. {$EXTERNALSYM ODA_SELECT}
  3230. ODA_FOCUS = $0004;
  3231. {$EXTERNALSYM ODA_FOCUS}
  3232. //
  3233. // Owner draw state
  3234. //
  3235. ODS_SELECTED = $0001;
  3236. {$EXTERNALSYM ODS_SELECTED}
  3237. ODS_GRAYED = $0002;
  3238. {$EXTERNALSYM ODS_GRAYED}
  3239. ODS_DISABLED = $0004;
  3240. {$EXTERNALSYM ODS_DISABLED}
  3241. ODS_CHECKED = $0008;
  3242. {$EXTERNALSYM ODS_CHECKED}
  3243. ODS_FOCUS = $0010;
  3244. {$EXTERNALSYM ODS_FOCUS}
  3245. ODS_DEFAULT = $0020;
  3246. {$EXTERNALSYM ODS_DEFAULT}
  3247. ODS_COMBOBOXEDIT = $1000;
  3248. {$EXTERNALSYM ODS_COMBOBOXEDIT}
  3249. ODS_HOTLIGHT = $0040;
  3250. {$EXTERNALSYM ODS_HOTLIGHT}
  3251. ODS_INACTIVE = $0080;
  3252. {$EXTERNALSYM ODS_INACTIVE}
  3253. ODS_NOACCEL = $0100;
  3254. {$EXTERNALSYM ODS_NOACCEL}
  3255. ODS_NOFOCUSRECT = $0200;
  3256. {$EXTERNALSYM ODS_NOFOCUSRECT}
  3257. //
  3258. // MEASUREITEMSTRUCT for ownerdraw
  3259. //
  3260. type
  3261. LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  3262. {$EXTERNALSYM LPMEASUREITEMSTRUCT}
  3263. tagMEASUREITEMSTRUCT = record
  3264. CtlType: UINT;
  3265. CtlID: UINT;
  3266. itemID: UINT;
  3267. itemWidth: UINT;
  3268. itemHeight: UINT;
  3269. itemData: ULONG_PTR;
  3270. end;
  3271. {$EXTERNALSYM tagMEASUREITEMSTRUCT}
  3272. MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT;
  3273. {$EXTERNALSYM MEASUREITEMSTRUCT}
  3274. TMeasureItemStruct = MEASUREITEMSTRUCT;
  3275. PMeasureItemStruct = LPMEASUREITEMSTRUCT;
  3276. //
  3277. // DRAWITEMSTRUCT for ownerdraw
  3278. //
  3279. LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  3280. {$EXTERNALSYM LPDRAWITEMSTRUCT}
  3281. tagDRAWITEMSTRUCT = record
  3282. CtlType: UINT;
  3283. CtlID: UINT;
  3284. itemID: UINT;
  3285. itemAction: UINT;
  3286. itemState: UINT;
  3287. hwndItem: HWND;
  3288. hDC: HDC;
  3289. rcItem: RECT;
  3290. itemData: ULONG_PTR;
  3291. end;
  3292. {$EXTERNALSYM tagDRAWITEMSTRUCT}
  3293. DRAWITEMSTRUCT = tagDRAWITEMSTRUCT;
  3294. {$EXTERNALSYM DRAWITEMSTRUCT}
  3295. TDrawItemStruct = DRAWITEMSTRUCT;
  3296. PDrawItemStruct = LPDRAWITEMSTRUCT;
  3297. //
  3298. // DELETEITEMSTRUCT for ownerdraw
  3299. //
  3300. LPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
  3301. {$EXTERNALSYM LPDELETEITEMSTRUCT}
  3302. tagDELETEITEMSTRUCT = record
  3303. CtlType: UINT;
  3304. CtlID: UINT;
  3305. itemID: UINT;
  3306. hwndItem: HWND;
  3307. itemData: ULONG_PTR;
  3308. end;
  3309. {$EXTERNALSYM tagDELETEITEMSTRUCT}
  3310. DELETEITEMSTRUCT = tagDELETEITEMSTRUCT;
  3311. {$EXTERNALSYM DELETEITEMSTRUCT}
  3312. TDeleteItemStruct = DELETEITEMSTRUCT;
  3313. PDeleteItemStruct = LPDELETEITEMSTRUCT;
  3314. //
  3315. // COMPAREITEMSTUCT for ownerdraw sorting
  3316. //
  3317. LPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
  3318. {$EXTERNALSYM LPCOMPAREITEMSTRUCT}
  3319. tagCOMPAREITEMSTRUCT = record
  3320. CtlType: UINT;
  3321. CtlID: UINT;
  3322. hwndItem: HWND;
  3323. itemID1: UINT;
  3324. itemData1: ULONG_PTR;
  3325. itemID2: UINT;
  3326. itemData2: ULONG_PTR;
  3327. dwLocaleId: DWORD;
  3328. end;
  3329. {$EXTERNALSYM tagCOMPAREITEMSTRUCT}
  3330. COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT;
  3331. {$EXTERNALSYM COMPAREITEMSTRUCT}
  3332. TCompareItemStruct = COMPAREITEMSTRUCT;
  3333. PCompareItemStruct = LPCOMPAREITEMSTRUCT;
  3334. //
  3335. // Message Function Templates
  3336. //
  3337. function GetMessageA(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3338. {$EXTERNALSYM GetMessageA}
  3339. function GetMessageW(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3340. {$EXTERNALSYM GetMessageW}
  3341. function GetMessage(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3342. {$EXTERNALSYM GetMessage}
  3343. function TranslateMessage(lpMsg: LPMSG): BOOL; stdcall;
  3344. {$EXTERNALSYM TranslateMessage}
  3345. function DispatchMessageA(lpMsg: LPMSG): LRESULT; stdcall;
  3346. {$EXTERNALSYM DispatchMessageA}
  3347. function DispatchMessageW(lpMsg: LPMSG): LRESULT; stdcall;
  3348. {$EXTERNALSYM DispatchMessageW}
  3349. function DispatchMessage(lpMsg: LPMSG): LRESULT; stdcall;
  3350. {$EXTERNALSYM DispatchMessage}
  3351. function SetMessageQueue(cMessagesMax: Integer): BOOL; stdcall;
  3352. {$EXTERNALSYM SetMessageQueue}
  3353. function PeekMessageA(var lpMsg: MSG; hWnd: HWND;
  3354. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3355. {$EXTERNALSYM PeekMessageA}
  3356. function PeekMessageW(var lpMsg: MSG; hWnd: HWND;
  3357. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3358. {$EXTERNALSYM PeekMessageW}
  3359. function PeekMessage(var lpMsg: MSG; hWnd: HWND;
  3360. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3361. {$EXTERNALSYM PeekMessage}
  3362. //
  3363. // Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
  3364. //
  3365. const
  3366. QS_KEY = $0001;
  3367. {$EXTERNALSYM QS_KEY}
  3368. QS_MOUSEMOVE = $0002;
  3369. {$EXTERNALSYM QS_MOUSEMOVE}
  3370. QS_MOUSEBUTTON = $0004;
  3371. {$EXTERNALSYM QS_MOUSEBUTTON}
  3372. QS_POSTMESSAGE = $0008;
  3373. {$EXTERNALSYM QS_POSTMESSAGE}
  3374. QS_TIMER = $0010;
  3375. {$EXTERNALSYM QS_TIMER}
  3376. QS_PAINT = $0020;
  3377. {$EXTERNALSYM QS_PAINT}
  3378. QS_SENDMESSAGE = $0040;
  3379. {$EXTERNALSYM QS_SENDMESSAGE}
  3380. QS_HOTKEY = $0080;
  3381. {$EXTERNALSYM QS_HOTKEY}
  3382. QS_ALLPOSTMESSAGE = $0100;
  3383. {$EXTERNALSYM QS_ALLPOSTMESSAGE}
  3384. QS_RAWINPUT = $0400;
  3385. {$EXTERNALSYM QS_RAWINPUT}
  3386. QS_MOUSE = QS_MOUSEMOVE or QS_MOUSEBUTTON;
  3387. {$EXTERNALSYM QS_MOUSE}
  3388. QS_INPUT = QS_MOUSE or QS_KEY {$IFDEF WINXP_UP} or QS_RAWINPUT {$ENDIF};
  3389. {$EXTERNALSYM QS_INPUT}
  3390. QS_ALLEVENTS = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY;
  3391. {$EXTERNALSYM QS_ALLEVENTS}
  3392. QS_ALLINPUT = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or
  3393. QS_HOTKEY or QS_SENDMESSAGE);
  3394. {$EXTERNALSYM QS_ALLINPUT}
  3395. //
  3396. // PeekMessage() Options
  3397. //
  3398. const
  3399. PM_NOREMOVE = $0000;
  3400. {$EXTERNALSYM PM_NOREMOVE}
  3401. PM_REMOVE = $0001;
  3402. {$EXTERNALSYM PM_REMOVE}
  3403. PM_NOYIELD = $0002;
  3404. {$EXTERNALSYM PM_NOYIELD}
  3405. PM_QS_INPUT = QS_INPUT shl 16;
  3406. {$EXTERNALSYM PM_QS_INPUT}
  3407. PM_QS_POSTMESSAGE = (QS_POSTMESSAGE or QS_HOTKEY or QS_TIMER) shl 16;
  3408. {$EXTERNALSYM PM_QS_POSTMESSAGE}
  3409. PM_QS_PAINT = QS_PAINT shl 16;
  3410. {$EXTERNALSYM PM_QS_PAINT}
  3411. PM_QS_SENDMESSAGE = QS_SENDMESSAGE shl 16;
  3412. {$EXTERNALSYM PM_QS_SENDMESSAGE}
  3413. function RegisterHotKey(hWnd: HWND; id: Integer; fsModifiers, vk: UINT): BOOL; stdcall;
  3414. {$EXTERNALSYM RegisterHotKey}
  3415. function UnregisterHotKey(hWnd: HWND; id: Integer): BOOL; stdcall;
  3416. {$EXTERNALSYM UnregisterHotKey}
  3417. const
  3418. MOD_ALT = $0001;
  3419. {$EXTERNALSYM MOD_ALT}
  3420. MOD_CONTROL = $0002;
  3421. {$EXTERNALSYM MOD_CONTROL}
  3422. MOD_SHIFT = $0004;
  3423. {$EXTERNALSYM MOD_SHIFT}
  3424. MOD_WIN = $0008;
  3425. {$EXTERNALSYM MOD_WIN}
  3426. IDHOT_SNAPWINDOW = DWORD(-1); // SHIFT-PRINTSCRN
  3427. {$EXTERNALSYM IDHOT_SNAPWINDOW}
  3428. IDHOT_SNAPDESKTOP = DWORD(-2); // PRINTSCRN
  3429. {$EXTERNALSYM IDHOT_SNAPDESKTOP}
  3430. const
  3431. ENDSESSION_LOGOFF = DWORD($80000000);
  3432. {$EXTERNALSYM ENDSESSION_LOGOFF}
  3433. EWX_LOGOFF = 0;
  3434. {$EXTERNALSYM EWX_LOGOFF}
  3435. EWX_SHUTDOWN = $00000001;
  3436. {$EXTERNALSYM EWX_SHUTDOWN}
  3437. EWX_REBOOT = $00000002;
  3438. {$EXTERNALSYM EWX_REBOOT}
  3439. EWX_FORCE = $00000004;
  3440. {$EXTERNALSYM EWX_FORCE}
  3441. EWX_POWEROFF = $00000008;
  3442. {$EXTERNALSYM EWX_POWEROFF}
  3443. EWX_FORCEIFHUNG = $00000010;
  3444. {$EXTERNALSYM EWX_FORCEIFHUNG}
  3445. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  3446. {$EXTERNALSYM ExitWindows}
  3447. function ExitWindowsEx(uFlags: UINT; dwReserved: DWORD): BOOL; stdcall;
  3448. {$EXTERNALSYM ExitWindowsEx}
  3449. function SwapMouseButton(fSwap: BOOL): BOOL; stdcall;
  3450. {$EXTERNALSYM SwapMouseButton}
  3451. function GetMessagePos: DWORD; stdcall;
  3452. {$EXTERNALSYM GetMessagePos}
  3453. function GetMessageTime: LONG; stdcall;
  3454. {$EXTERNALSYM GetMessageTime}
  3455. function GetMessageExtraInfo: LPARAM; stdcall;
  3456. {$EXTERNALSYM GetMessageExtraInfo}
  3457. function SetMessageExtraInfo(lParam: LPARAM): LPARAM; stdcall;
  3458. {$EXTERNALSYM SetMessageExtraInfo}
  3459. function SendMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3460. {$EXTERNALSYM SendMessageA}
  3461. function SendMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3462. {$EXTERNALSYM SendMessageW}
  3463. function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3464. {$EXTERNALSYM SendMessage}
  3465. function SendMessageTimeoutA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3466. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3467. {$EXTERNALSYM SendMessageTimeoutA}
  3468. function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3469. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3470. {$EXTERNALSYM SendMessageTimeoutW}
  3471. function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3472. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3473. {$EXTERNALSYM SendMessageTimeout}
  3474. function SendNotifyMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3475. {$EXTERNALSYM SendNotifyMessageA}
  3476. function SendNotifyMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3477. {$EXTERNALSYM SendNotifyMessageW}
  3478. function SendNotifyMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3479. {$EXTERNALSYM SendNotifyMessage}
  3480. function SendMessageCallbackA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3481. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3482. {$EXTERNALSYM SendMessageCallbackA}
  3483. function SendMessageCallbackW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3484. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3485. {$EXTERNALSYM SendMessageCallbackW}
  3486. function SendMessageCallback(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3487. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3488. {$EXTERNALSYM SendMessageCallback}
  3489. type
  3490. BSMINFO = record
  3491. cbSize: UINT;
  3492. hdesk: HDESK;
  3493. hwnd: HWND;
  3494. luid: LUID;
  3495. end;
  3496. {$EXTERNALSYM BSMINFO}
  3497. PBSMINFO = ^BSMINFO;
  3498. TBsmInfo = BSMINFO;
  3499. function BroadcastSystemMessageExA(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3500. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3501. {$EXTERNALSYM BroadcastSystemMessageExA}
  3502. function BroadcastSystemMessageExW(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3503. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3504. {$EXTERNALSYM BroadcastSystemMessageExW}
  3505. function BroadcastSystemMessageEx(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3506. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3507. {$EXTERNALSYM BroadcastSystemMessageEx}
  3508. function BroadcastSystemMessageA(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3509. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3510. {$EXTERNALSYM BroadcastSystemMessageA}
  3511. function BroadcastSystemMessageW(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3512. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3513. {$EXTERNALSYM BroadcastSystemMessageW}
  3514. function BroadcastSystemMessage(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3515. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3516. {$EXTERNALSYM BroadcastSystemMessage}
  3517. //Broadcast Special Message Recipient list
  3518. const
  3519. BSM_ALLCOMPONENTS = $00000000;
  3520. {$EXTERNALSYM BSM_ALLCOMPONENTS}
  3521. BSM_VXDS = $00000001;
  3522. {$EXTERNALSYM BSM_VXDS}
  3523. BSM_NETDRIVER = $00000002;
  3524. {$EXTERNALSYM BSM_NETDRIVER}
  3525. BSM_INSTALLABLEDRIVERS = $00000004;
  3526. {$EXTERNALSYM BSM_INSTALLABLEDRIVERS}
  3527. BSM_APPLICATIONS = $00000008;
  3528. {$EXTERNALSYM BSM_APPLICATIONS}
  3529. BSM_ALLDESKTOPS = $00000010;
  3530. {$EXTERNALSYM BSM_ALLDESKTOPS}
  3531. //Broadcast Special Message Flags
  3532. BSF_QUERY = $00000001;
  3533. {$EXTERNALSYM BSF_QUERY}
  3534. BSF_IGNORECURRENTTASK = $00000002;
  3535. {$EXTERNALSYM BSF_IGNORECURRENTTASK}
  3536. BSF_FLUSHDISK = $00000004;
  3537. {$EXTERNALSYM BSF_FLUSHDISK}
  3538. BSF_NOHANG = $00000008;
  3539. {$EXTERNALSYM BSF_NOHANG}
  3540. BSF_POSTMESSAGE = $00000010;
  3541. {$EXTERNALSYM BSF_POSTMESSAGE}
  3542. BSF_FORCEIFHUNG = $00000020;
  3543. {$EXTERNALSYM BSF_FORCEIFHUNG}
  3544. BSF_NOTIMEOUTIFNOTHUNG = $00000040;
  3545. {$EXTERNALSYM BSF_NOTIMEOUTIFNOTHUNG}
  3546. BSF_ALLOWSFW = $00000080;
  3547. {$EXTERNALSYM BSF_ALLOWSFW}
  3548. BSF_SENDNOTIFYMESSAGE = $00000100;
  3549. {$EXTERNALSYM BSF_SENDNOTIFYMESSAGE}
  3550. BSF_RETURNHDESK = $00000200;
  3551. {$EXTERNALSYM BSF_RETURNHDESK}
  3552. BSF_LUID = $00000400;
  3553. {$EXTERNALSYM BSF_LUID}
  3554. BROADCAST_QUERY_DENY = $424D5144; // Return this value to deny a query.
  3555. {$EXTERNALSYM BROADCAST_QUERY_DENY}
  3556. // RegisterDeviceNotification
  3557. type
  3558. HDEVNOTIFY = PVOID;
  3559. {$EXTERNALSYM HDEVNOTIFY}
  3560. PHDEVNOTIFY = ^HDEVNOTIFY;
  3561. {$EXTERNALSYM PHDEVNOTIFY}
  3562. const
  3563. DEVICE_NOTIFY_WINDOW_HANDLE = $00000000;
  3564. {$EXTERNALSYM DEVICE_NOTIFY_WINDOW_HANDLE}
  3565. DEVICE_NOTIFY_SERVICE_HANDLE = $00000001;
  3566. {$EXTERNALSYM DEVICE_NOTIFY_SERVICE_HANDLE}
  3567. DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = $00000004;
  3568. {$EXTERNALSYM DEVICE_NOTIFY_ALL_INTERFACE_CLASSES}
  3569. function RegisterDeviceNotificationA(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3570. Flags: DWORD): HDEVNOTIFY; stdcall;
  3571. {$EXTERNALSYM RegisterDeviceNotificationA}
  3572. function RegisterDeviceNotificationW(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3573. Flags: DWORD): HDEVNOTIFY; stdcall;
  3574. {$EXTERNALSYM RegisterDeviceNotificationW}
  3575. function RegisterDeviceNotification(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3576. Flags: DWORD): HDEVNOTIFY; stdcall;
  3577. {$EXTERNALSYM RegisterDeviceNotification}
  3578. function UnregisterDeviceNotification(Handle: HDEVNOTIFY): BOOL; stdcall;
  3579. {$EXTERNALSYM UnregisterDeviceNotification}
  3580. function PostMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3581. {$EXTERNALSYM PostMessageA}
  3582. function PostMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3583. {$EXTERNALSYM PostMessageW}
  3584. function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3585. {$EXTERNALSYM PostMessage}
  3586. function PostThreadMessageA(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3587. {$EXTERNALSYM PostThreadMessageA}
  3588. function PostThreadMessageW(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3589. {$EXTERNALSYM PostThreadMessageW}
  3590. function PostThreadMessage(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3591. {$EXTERNALSYM PostThreadMessage}
  3592. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3593. {$EXTERNALSYM PostAppMessageA}
  3594. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3595. {$EXTERNALSYM PostAppMessageW}
  3596. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3597. {$EXTERNALSYM PostAppMessage}
  3598. //
  3599. // Special HWND value for use with PostMessage() and SendMessage()
  3600. //
  3601. const
  3602. HWND_BROADCAST = HWND($ffff);
  3603. {$EXTERNALSYM HWND_BROADCAST}
  3604. HWND_MESSAGE = HWND(-3);
  3605. {$EXTERNALSYM HWND_MESSAGE}
  3606. function AttachThreadInput(idAttach, idAttachTo: DWORD; fAttach: BOOL): BOOL; stdcall;
  3607. {$EXTERNALSYM AttachThreadInput}
  3608. function ReplyMessage(lResult: LRESULT): BOOL; stdcall;
  3609. {$EXTERNALSYM ReplyMessage}
  3610. function WaitMessage: BOOL; stdcall;
  3611. {$EXTERNALSYM WaitMessage}
  3612. function WaitForInputIdle(hProcess: HANDLE; dwMilliseconds: DWORD): DWORD; stdcall;
  3613. {$EXTERNALSYM WaitForInputIdle}
  3614. function DefWindowProcA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3615. {$EXTERNALSYM DefWindowProcA}
  3616. function DefWindowProcW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3617. {$EXTERNALSYM DefWindowProcW}
  3618. function DefWindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3619. {$EXTERNALSYM DefWindowProc}
  3620. procedure PostQuitMessage(nExitCode: Integer); stdcall;
  3621. {$EXTERNALSYM PostQuitMessage}
  3622. function CallWindowProcA(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3623. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3624. {$EXTERNALSYM CallWindowProcA}
  3625. function CallWindowProcW(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3626. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3627. {$EXTERNALSYM CallWindowProcW}
  3628. function CallWindowProc(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3629. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3630. {$EXTERNALSYM CallWindowProc}
  3631. function InSendMessage: BOOL; stdcall;
  3632. {$EXTERNALSYM InSendMessage}
  3633. function InSendMessageEx(lpReserved: LPVOID): DWORD; stdcall;
  3634. {$EXTERNALSYM InSendMessageEx}
  3635. //
  3636. // InSendMessageEx return value
  3637. //
  3638. const
  3639. ISMEX_NOSEND = $00000000;
  3640. {$EXTERNALSYM ISMEX_NOSEND}
  3641. ISMEX_SEND = $00000001;
  3642. {$EXTERNALSYM ISMEX_SEND}
  3643. ISMEX_NOTIFY = $00000002;
  3644. {$EXTERNALSYM ISMEX_NOTIFY}
  3645. ISMEX_CALLBACK = $00000004;
  3646. {$EXTERNALSYM ISMEX_CALLBACK}
  3647. ISMEX_REPLIED = $00000008;
  3648. {$EXTERNALSYM ISMEX_REPLIED}
  3649. function GetDoubleClickTime: UINT; stdcall;
  3650. {$EXTERNALSYM GetDoubleClickTime}
  3651. function SetDoubleClickTime(uInterval: UINT): BOOL; stdcall;
  3652. {$EXTERNALSYM SetDoubleClickTime}
  3653. function RegisterClassA(const lpWndClass: WNDCLASSA): ATOM; stdcall;
  3654. {$EXTERNALSYM RegisterClassA}
  3655. function RegisterClassW(const lpWndClass: WNDCLASSW): ATOM; stdcall;
  3656. {$EXTERNALSYM RegisterClassW}
  3657. function RegisterClass(const lpWndClass: WNDCLASS): ATOM; stdcall;
  3658. {$EXTERNALSYM RegisterClass}
  3659. function UnregisterClassA(lpClassName: LPCSTR; hInstance: HINST): BOOL; stdcall;
  3660. {$EXTERNALSYM UnregisterClassA}
  3661. function UnregisterClassW(lpClassName: LPCWSTR; hInstance: HINST): BOOL; stdcall;
  3662. {$EXTERNALSYM UnregisterClassW}
  3663. function UnregisterClass(lpClassName: LPCTSTR; hInstance: HINST): BOOL; stdcall;
  3664. {$EXTERNALSYM UnregisterClass}
  3665. function GetClassInfoA(hInstance: HINST; lpClassName: LPCSTR;
  3666. var lpWndClass: WNDCLASSA): BOOL; stdcall;
  3667. {$EXTERNALSYM GetClassInfoA}
  3668. function GetClassInfoW(hInstance: HINST; lpClassName: LPCWSTR;
  3669. var lpWndClass: WNDCLASSW): BOOL; stdcall;
  3670. {$EXTERNALSYM GetClassInfoW}
  3671. function GetClassInfo(hInstance: HINST; lpClassName: LPCTSTR;
  3672. var lpWndClass: WNDCLASS): BOOL; stdcall;
  3673. {$EXTERNALSYM GetClassInfo}
  3674. function RegisterClassExA(const lpwcx: WNDCLASSEXA): ATOM; stdcall;
  3675. {$EXTERNALSYM RegisterClassExA}
  3676. function RegisterClassExW(const lpwcx: WNDCLASSEXW): ATOM; stdcall;
  3677. {$EXTERNALSYM RegisterClassExW}
  3678. function RegisterClassEx(const lpwcx: WNDCLASSEX): ATOM; stdcall;
  3679. {$EXTERNALSYM RegisterClassEx}
  3680. function GetClassInfoExA(hinst: HINST; lpszClass: LPCSTR; var lpwcx: WNDCLASSEXA): BOOL; stdcall;
  3681. {$EXTERNALSYM GetClassInfoExA}
  3682. function GetClassInfoExW(hinst: HINST; lpszClass: LPCWSTR; var lpwcx: WNDCLASSEXW): BOOL; stdcall;
  3683. {$EXTERNALSYM GetClassInfoExW}
  3684. function GetClassInfoEx(hinst: HINST; lpszClass: LPCTSTR; var lpwcx: WNDCLASSEX): BOOL; stdcall;
  3685. {$EXTERNALSYM GetClassInfoEx}
  3686. const
  3687. CW_USEDEFAULT = Integer($80000000);
  3688. {$EXTERNALSYM CW_USEDEFAULT}
  3689. //
  3690. // Special value for CreateWindow, et al.
  3691. //
  3692. const
  3693. HWND_DESKTOP = HWND(0);
  3694. {$EXTERNALSYM HWND_DESKTOP}
  3695. type
  3696. PREGISTERCLASSNAMEW = function(p: LPCWSTR): LongBool; stdcall;
  3697. {$EXTERNALSYM PREGISTERCLASSNAMEW}
  3698. function CreateWindowExA(dwExStyle: DWORD; lpClassName, lpWindowName: LPCSTR;
  3699. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3700. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3701. {$EXTERNALSYM CreateWindowExA}
  3702. function CreateWindowExW(dwExStyle: DWORD; lpClassName, lpWindowName: LPCWSTR;
  3703. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3704. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3705. {$EXTERNALSYM CreateWindowExW}
  3706. function CreateWindowEx(dwExStyle: DWORD; lpClassName, lpWindowName: LPCTSTR;
  3707. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3708. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3709. {$EXTERNALSYM CreateWindowEx}
  3710. function CreateWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  3711. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3712. hInstance: HINST; lpParam: LPVOID): HWND;
  3713. {$EXTERNALSYM CreateWindowA}
  3714. function CreateWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  3715. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3716. hInstance: HINST; lpParam: LPVOID): HWND;
  3717. {$EXTERNALSYM CreateWindowW}
  3718. function CreateWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  3719. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3720. hInstance: HINST; lpParam: LPVOID): HWND;
  3721. {$EXTERNALSYM CreateWindow}
  3722. function IsWindow(hWnd: HWND): BOOL; stdcall;
  3723. {$EXTERNALSYM IsWindow}
  3724. function IsMenu(hMenu: HMENU): BOOL; stdcall;
  3725. {$EXTERNALSYM IsMenu}
  3726. function IsChild(hWndParent, hWnd: HWND): BOOL; stdcall;
  3727. {$EXTERNALSYM IsChild}
  3728. function DestroyWindow(hWnd: HWND): BOOL; stdcall;
  3729. {$EXTERNALSYM DestroyWindow}
  3730. function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3731. {$EXTERNALSYM ShowWindow}
  3732. function AnimateWindow(hWnd: HWND; dwTime, dwFlags: DWORD): BOOL; stdcall;
  3733. {$EXTERNALSYM AnimateWindow}
  3734. function UpdateLayeredWindow(hWnd: HWND; hdcDst: HDC; pptDst: LPPOINT;
  3735. psize: LPSIZE; hdcSrc: HDC; pptSrc: LPPOINT; crKey: COLORREF;
  3736. pblend: LPBLENDFUNCTION; dwFlags: DWORD): BOOL; stdcall;
  3737. {$EXTERNALSYM UpdateLayeredWindow}
  3738. function GetLayeredWindowAttributes(hwnd: HWND; pcrKey: LPCOLORREF; pbAlpha: LPBYTE;
  3739. pdwFlags: LPWORD): BOOL; stdcall;
  3740. {$EXTERNALSYM GetLayeredWindowAttributes}
  3741. const
  3742. PW_CLIENTONLY = $00000001;
  3743. {$EXTERNALSYM PW_CLIENTONLY}
  3744. function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
  3745. {$EXTERNALSYM PrintWindow}
  3746. function SetLayeredWindowAttributes(hwnd: HWND; crKey: COLORREF; bAlpha: BYTE;
  3747. dwFlags: DWORD): BOOL; stdcall;
  3748. {$EXTERNALSYM SetLayeredWindowAttributes}
  3749. const
  3750. LWA_COLORKEY = $00000001;
  3751. {$EXTERNALSYM LWA_COLORKEY}
  3752. LWA_ALPHA = $00000002;
  3753. {$EXTERNALSYM LWA_ALPHA}
  3754. ULW_COLORKEY = $00000001;
  3755. {$EXTERNALSYM ULW_COLORKEY}
  3756. ULW_ALPHA = $00000002;
  3757. {$EXTERNALSYM ULW_ALPHA}
  3758. ULW_OPAQUE = $00000004;
  3759. {$EXTERNALSYM ULW_OPAQUE}
  3760. function ShowWindowAsync(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3761. {$EXTERNALSYM ShowWindowAsync}
  3762. function FlashWindow(hWnd: HWND; bInvert: BOOL): BOOL; stdcall;
  3763. {$EXTERNALSYM FlashWindow}
  3764. type
  3765. PFLASH_INFO = ^FLASH_INFO;
  3766. {$EXTERNALSYM PFLASH_INFO}
  3767. FLASH_INFO = record
  3768. cbSize: UINT;
  3769. hwnd: HWND;
  3770. dwFlags: DWORD;
  3771. uCount: UINT;
  3772. dwTimeout: DWORD;
  3773. end;
  3774. {$EXTERNALSYM FLASH_INFO}
  3775. TFlashInfo = FLASH_INFO;
  3776. PFlashInfo = PFLASH_INFO;
  3777. function FlashWindowEx(var pfwi: FLASH_INFO): BOOL; stdcall;
  3778. {$EXTERNALSYM FlashWindowEx}
  3779. const
  3780. FLASHW_STOP = 0;
  3781. {$EXTERNALSYM FLASHW_STOP}
  3782. FLASHW_CAPTION = $00000001;
  3783. {$EXTERNALSYM FLASHW_CAPTION}
  3784. FLASHW_TRAY = $00000002;
  3785. {$EXTERNALSYM FLASHW_TRAY}
  3786. FLASHW_ALL = FLASHW_CAPTION or FLASHW_TRAY;
  3787. {$EXTERNALSYM FLASHW_ALL}
  3788. FLASHW_TIMER = $00000004;
  3789. {$EXTERNALSYM FLASHW_TIMER}
  3790. FLASHW_TIMERNOFG = $0000000C;
  3791. {$EXTERNALSYM FLASHW_TIMERNOFG}
  3792. function ShowOwnedPopups(hWnd: HWND; fShow: BOOL): BOOL; stdcall;
  3793. {$EXTERNALSYM ShowOwnedPopups}
  3794. function OpenIcon(hWnd: HWND): BOOL; stdcall;
  3795. {$EXTERNALSYM OpenIcon}
  3796. function CloseWindow(hWnd: HWND): BOOL; stdcall;
  3797. {$EXTERNALSYM CloseWindow}
  3798. function MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; stdcall;
  3799. {$EXTERNALSYM MoveWindow}
  3800. function SetWindowPos(hWnd, hWndInsertAfter: HWND; X, Y, cx, cy: Integer;
  3801. uFlags: UINT): BOOL; stdcall;
  3802. {$EXTERNALSYM SetWindowPos}
  3803. function GetWindowPlacement(hWnd: HWND; var lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3804. {$EXTERNALSYM GetWindowPlacement}
  3805. function SetWindowPlacement(hWnd: HWND; const lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3806. {$EXTERNALSYM SetWindowPlacement}
  3807. function BeginDeferWindowPos(nNumWindows: Integer): HDWP; stdcall;
  3808. {$EXTERNALSYM BeginDeferWindowPos}
  3809. function DeferWindowPos(hWinPosInfo: HDWP; hWnd, hWndInsertAfter: HWND;
  3810. x, y, cx, cy: Integer; uFlags: UINT): HDWP; stdcall;
  3811. {$EXTERNALSYM DeferWindowPos}
  3812. function EndDeferWindowPos(hWinPosInfo: HDWP): BOOL; stdcall;
  3813. {$EXTERNALSYM EndDeferWindowPos}
  3814. function IsWindowVisible(hWnd: HWND): BOOL; stdcall;
  3815. {$EXTERNALSYM IsWindowVisible}
  3816. function IsIconic(hWnd: HWND): BOOL; stdcall;
  3817. {$EXTERNALSYM IsIconic}
  3818. function AnyPopup: BOOL; stdcall;
  3819. {$EXTERNALSYM AnyPopup}
  3820. function BringWindowToTop(hWnd: HWND): BOOL; stdcall;
  3821. {$EXTERNALSYM BringWindowToTop}
  3822. function IsZoomed(hWnd: HWND): BOOL; stdcall;
  3823. {$EXTERNALSYM IsZoomed}
  3824. //
  3825. // SetWindowPos Flags
  3826. //
  3827. const
  3828. SWP_NOSIZE = $0001;
  3829. {$EXTERNALSYM SWP_NOSIZE}
  3830. SWP_NOMOVE = $0002;
  3831. {$EXTERNALSYM SWP_NOMOVE}
  3832. SWP_NOZORDER = $0004;
  3833. {$EXTERNALSYM SWP_NOZORDER}
  3834. SWP_NOREDRAW = $0008;
  3835. {$EXTERNALSYM SWP_NOREDRAW}
  3836. SWP_NOACTIVATE = $0010;
  3837. {$EXTERNALSYM SWP_NOACTIVATE}
  3838. SWP_FRAMECHANGED = $0020; // The frame changed: send WM_NCCALCSIZE
  3839. {$EXTERNALSYM SWP_FRAMECHANGED}
  3840. SWP_SHOWWINDOW = $0040;
  3841. {$EXTERNALSYM SWP_SHOWWINDOW}
  3842. SWP_HIDEWINDOW = $0080;
  3843. {$EXTERNALSYM SWP_HIDEWINDOW}
  3844. SWP_NOCOPYBITS = $0100;
  3845. {$EXTERNALSYM SWP_NOCOPYBITS}
  3846. SWP_NOOWNERZORDER = $0200; // Don't do owner Z ordering
  3847. {$EXTERNALSYM SWP_NOOWNERZORDER}
  3848. SWP_NOSENDCHANGING = $0400; // Don't send WM_WINDOWPOSCHANGING
  3849. {$EXTERNALSYM SWP_NOSENDCHANGING}
  3850. SWP_DRAWFRAME = SWP_FRAMECHANGED;
  3851. {$EXTERNALSYM SWP_DRAWFRAME}
  3852. SWP_NOREPOSITION = SWP_NOOWNERZORDER;
  3853. {$EXTERNALSYM SWP_NOREPOSITION}
  3854. SWP_DEFERERASE = $2000;
  3855. {$EXTERNALSYM SWP_DEFERERASE}
  3856. SWP_ASYNCWINDOWPOS = $4000;
  3857. {$EXTERNALSYM SWP_ASYNCWINDOWPOS}
  3858. HWND_TOP = HWND(0);
  3859. {$EXTERNALSYM HWND_TOP}
  3860. HWND_BOTTOM = HWND(1);
  3861. {$EXTERNALSYM HWND_BOTTOM}
  3862. HWND_TOPMOST = HWND(-1);
  3863. {$EXTERNALSYM HWND_TOPMOST}
  3864. HWND_NOTOPMOST = HWND(-2);
  3865. {$EXTERNALSYM HWND_NOTOPMOST}
  3866. //
  3867. // WARNING:
  3868. // The following structures must NOT be DWORD padded because they are
  3869. // followed by strings, etc that do not have to be DWORD aligned.
  3870. //
  3871. // #include <pshpack2.h>
  3872. //
  3873. // original NT 32 bit dialog template:
  3874. //
  3875. type
  3876. DLGTEMPLATE = packed record
  3877. style: DWORD;
  3878. dwExtendedStyle: DWORD;
  3879. cdit: WORD;
  3880. x: short;
  3881. y: short;
  3882. cx: short;
  3883. cy: short;
  3884. end;
  3885. {$EXTERNALSYM DLGTEMPLATE}
  3886. TDlgTemplate = DLGTEMPLATE;
  3887. LPDLGTEMPLATEA = ^DLGTEMPLATE;
  3888. {$EXTERNALSYM LPDLGTEMPLATEA}
  3889. LPDLGTEMPLATEW = ^DLGTEMPLATE;
  3890. {$EXTERNALSYM LPDLGTEMPLATEW}
  3891. LPCDLGTEMPLATEA = ^DLGTEMPLATE;
  3892. {$EXTERNALSYM LPCDLGTEMPLATEA}
  3893. LPCDLGTEMPLATEW = ^DLGTEMPLATE;
  3894. {$EXTERNALSYM LPCDLGTEMPLATEW}
  3895. {$IFDEF UNICODE}
  3896. LPDLGTEMPLATE = LPDLGTEMPLATEW;
  3897. {$EXTERNALSYM LPDLGTEMPLATE}
  3898. LPCDLGTEMPLATE = LPCDLGTEMPLATEW;
  3899. {$EXTERNALSYM LPCDLGTEMPLATE}
  3900. {$ELSE}
  3901. LPDLGTEMPLATE = LPDLGTEMPLATEA;
  3902. {$EXTERNALSYM LPDLGTEMPLATE}
  3903. LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
  3904. {$EXTERNALSYM LPCDLGTEMPLATE}
  3905. {$ENDIF UNICODE}
  3906. //
  3907. // 32 bit Dialog item template.
  3908. //
  3909. DLGITEMTEMPLATE = packed record
  3910. style: DWORD;
  3911. dwExtendedStyle: DWORD;
  3912. x: short;
  3913. y: short;
  3914. cx: short;
  3915. cy: short;
  3916. id: WORD;
  3917. end;
  3918. {$EXTERNALSYM DLGITEMTEMPLATE}
  3919. TDlgItemTemplate = DLGITEMTEMPLATE;
  3920. PDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3921. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3922. PDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3923. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3924. LPDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3925. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3926. LPDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3927. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3928. {$IFDEF UNICODE}
  3929. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3930. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3931. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3932. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3933. {$ELSE}
  3934. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3935. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3936. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3937. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3938. {$ENDIF UNICODE}
  3939. // #include <poppack.h> // Resume normal packing//
  3940. function CreateDialogParamA(hInstance: HINST; lpTemplateName: LPCSTR;
  3941. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3942. {$EXTERNALSYM CreateDialogParamA}
  3943. function CreateDialogParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
  3944. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3945. {$EXTERNALSYM CreateDialogParamW}
  3946. function CreateDialogParam(hInstance: HINST; lpTemplateName: LPCTSTR;
  3947. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3948. {$EXTERNALSYM CreateDialogParam}
  3949. function CreateDialogIndirectParamA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3950. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3951. {$EXTERNALSYM CreateDialogIndirectParamA}
  3952. function CreateDialogIndirectParamW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3953. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3954. {$EXTERNALSYM CreateDialogIndirectParamW}
  3955. function CreateDialogIndirectParam(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3956. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3957. {$EXTERNALSYM CreateDialogIndirectParam}
  3958. function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND;
  3959. lpDialogFunc: DLGPROC): HWND;
  3960. {$EXTERNALSYM CreateDialogA}
  3961. function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND;
  3962. lpDialogFunc: DLGPROC): HWND;
  3963. {$EXTERNALSYM CreateDialogW}
  3964. function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND;
  3965. lpDialogFunc: DLGPROC): HWND;
  3966. {$EXTERNALSYM CreateDialog}
  3967. function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3968. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3969. {$EXTERNALSYM CreateDialogIndirectA}
  3970. function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3971. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3972. {$EXTERNALSYM CreateDialogIndirectW}
  3973. function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3974. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3975. {$EXTERNALSYM CreateDialogIndirect}
  3976. function DialogBoxParamA(hInstance: HINST; lpTemplateName: LPCSTR;
  3977. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3978. {$EXTERNALSYM DialogBoxParamA}
  3979. function DialogBoxParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
  3980. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3981. {$EXTERNALSYM DialogBoxParamW}
  3982. function DialogBoxParam(hInstance: HINST; lpTemplateName: LPCTSTR;
  3983. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3984. {$EXTERNALSYM DialogBoxParam}
  3985. function DialogBoxIndirectParamA(hInstance: HINST;
  3986. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3987. dwInitParam: LPARAM): INT_PTR; stdcall;
  3988. {$EXTERNALSYM DialogBoxIndirectParamA}
  3989. function DialogBoxIndirectParamW(hInstance: HINST;
  3990. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3991. dwInitParam: LPARAM): INT_PTR; stdcall;
  3992. {$EXTERNALSYM DialogBoxIndirectParamW}
  3993. function DialogBoxIndirectParam(hInstance: HINST;
  3994. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3995. dwInitParam: LPARAM): INT_PTR; stdcall;
  3996. {$EXTERNALSYM DialogBoxIndirectParam}
  3997. function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND;
  3998. lpDialogFunc: DLGPROC): INT_PTR;
  3999. {$EXTERNALSYM DialogBoxA}
  4000. function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND;
  4001. lpDialogFunc: DLGPROC): INT_PTR;
  4002. {$EXTERNALSYM DialogBoxW}
  4003. function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND;
  4004. lpDialogFunc: DLGPROC): INT_PTR;
  4005. {$EXTERNALSYM DialogBox}
  4006. function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4007. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4008. {$EXTERNALSYM DialogBoxIndirectA}
  4009. function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4010. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4011. {$EXTERNALSYM DialogBoxIndirectW}
  4012. function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4013. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4014. {$EXTERNALSYM DialogBoxIndirect}
  4015. function EndDialog(hDlg: HWND; nResult: INT_PTR): BOOL; stdcall;
  4016. {$EXTERNALSYM EndDialog}
  4017. function GetDlgItem(hDlg: HWND; nIDDlgItem: Integer): HWND; stdcall;
  4018. {$EXTERNALSYM GetDlgItem}
  4019. function SetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; uValue: UINT; bSigned: BOOL): BOOL; stdcall;
  4020. {$EXTERNALSYM SetDlgItemInt}
  4021. function GetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; lpTranslated: LPBOOL;
  4022. bSigned: BOOL): UINT; stdcall;
  4023. {$EXTERNALSYM GetDlgItemInt}
  4024. function SetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCSTR): BOOL; stdcall;
  4025. {$EXTERNALSYM SetDlgItemTextA}
  4026. function SetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCWSTR): BOOL; stdcall;
  4027. {$EXTERNALSYM SetDlgItemTextW}
  4028. function SetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCTSTR): BOOL; stdcall;
  4029. {$EXTERNALSYM SetDlgItemText}
  4030. function GetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPSTR;
  4031. nMaxCount: Integer): UINT; stdcall;
  4032. {$EXTERNALSYM GetDlgItemTextA}
  4033. function GetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPWSTR;
  4034. nMaxCount: Integer): UINT; stdcall;
  4035. {$EXTERNALSYM GetDlgItemTextW}
  4036. function GetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPTSTR;
  4037. nMaxCount: Integer): UINT; stdcall;
  4038. {$EXTERNALSYM GetDlgItemText}
  4039. function CheckDlgButton(hDlg: HWND; nIDButton: Integer; uCheck: UINT): BOOL; stdcall;
  4040. {$EXTERNALSYM CheckDlgButton}
  4041. function CheckRadioButton(hDlg: HWND; nIDFirstButton, nIDLastButton: Integer;
  4042. nIDCheckButton: Integer): BOOL; stdcall;
  4043. {$EXTERNALSYM CheckRadioButton}
  4044. function IsDlgButtonChecked(hDlg: HWND; nIDButton: Integer): UINT; stdcall;
  4045. {$EXTERNALSYM IsDlgButtonChecked}
  4046. function SendDlgItemMessageA(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4047. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4048. {$EXTERNALSYM SendDlgItemMessageA}
  4049. function SendDlgItemMessageW(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4050. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4051. {$EXTERNALSYM SendDlgItemMessageW}
  4052. function SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4053. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4054. {$EXTERNALSYM SendDlgItemMessage}
  4055. function GetNextDlgGroupItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4056. {$EXTERNALSYM GetNextDlgGroupItem}
  4057. function GetNextDlgTabItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4058. {$EXTERNALSYM GetNextDlgTabItem}
  4059. function GetDlgCtrlID(hWnd: HWND): Integer; stdcall;
  4060. {$EXTERNALSYM GetDlgCtrlID}
  4061. function GetDialogBaseUnits: Longint; stdcall;
  4062. {$EXTERNALSYM GetDialogBaseUnits(VOID v)}
  4063. function DefDlgProcA(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4064. {$EXTERNALSYM DefDlgProcA}
  4065. function DefDlgProcW(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4066. {$EXTERNALSYM DefDlgProcW}
  4067. function DefDlgProc(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4068. {$EXTERNALSYM DefDlgProc}
  4069. //
  4070. // Window extra byted needed for private dialog classes.
  4071. //
  4072. const
  4073. DLGWINDOWEXTRA = 30;
  4074. {$EXTERNALSYM DLGWINDOWEXTRA}
  4075. function CallMsgFilterA(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4076. {$EXTERNALSYM CallMsgFilterA}
  4077. function CallMsgFilterW(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4078. {$EXTERNALSYM CallMsgFilterW}
  4079. function CallMsgFilter(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4080. {$EXTERNALSYM CallMsgFilter}
  4081. //
  4082. // Clipboard Manager Functions
  4083. //
  4084. function OpenClipboard(hWndNewOwner: HWND): BOOL; stdcall;
  4085. {$EXTERNALSYM OpenClipboard}
  4086. function CloseClipboard: BOOL; stdcall;
  4087. {$EXTERNALSYM CloseClipboard}
  4088. function GetClipboardSequenceNumber: DWORD; stdcall;
  4089. {$EXTERNALSYM GetClipboardSequenceNumber}
  4090. function GetClipboardOwner: HWND; stdcall;
  4091. {$EXTERNALSYM GetClipboardOwner}
  4092. function SetClipboardViewer(hWndNewViewer: HWND): HWND; stdcall;
  4093. {$EXTERNALSYM SetClipboardViewer}
  4094. function GetClipboardViewer: HWND; stdcall;
  4095. {$EXTERNALSYM GetClipboardViewer}
  4096. function ChangeClipboardChain(hWndRemove, hWndNewNext: HWND): BOOL; stdcall;
  4097. {$EXTERNALSYM ChangeClipboardChain}
  4098. function SetClipboardData(uFormat: UINT; hMem: HANDLE): HANDLE; stdcall;
  4099. {$EXTERNALSYM SetClipboardData}
  4100. function GetClipboardData(uFormat: UINT): HANDLE; stdcall;
  4101. {$EXTERNALSYM GetClipboardData}
  4102. function RegisterClipboardFormatA(lpszFormat: LPCSTR): UINT; stdcall;
  4103. {$EXTERNALSYM RegisterClipboardFormatA}
  4104. function RegisterClipboardFormatW(lpszFormat: LPCWSTR): UINT; stdcall;
  4105. {$EXTERNALSYM RegisterClipboardFormatW}
  4106. function RegisterClipboardFormat(lpszFormat: LPCTSTR): UINT; stdcall;
  4107. {$EXTERNALSYM RegisterClipboardFormat}
  4108. function CountClipboardFormats: Integer; stdcall;
  4109. {$EXTERNALSYM CountClipboardFormats}
  4110. function EnumClipboardFormats(format: UINT): UINT; stdcall;
  4111. {$EXTERNALSYM EnumClipboardFormats}
  4112. function GetClipboardFormatNameA(format: UINT; lpszFormatName: LPSTR;
  4113. cchMaxCount: Integer): Integer; stdcall;
  4114. {$EXTERNALSYM GetClipboardFormatNameA}
  4115. function GetClipboardFormatNameW(format: UINT; lpszFormatName: LPWSTR;
  4116. cchMaxCount: Integer): Integer; stdcall;
  4117. {$EXTERNALSYM GetClipboardFormatNameW}
  4118. function GetClipboardFormatName(format: UINT; lpszFormatName: LPTSTR;
  4119. cchMaxCount: Integer): Integer; stdcall;
  4120. {$EXTERNALSYM GetClipboardFormatName}
  4121. function EmptyClipboard: BOOL; stdcall;
  4122. {$EXTERNALSYM EmptyClipboard}
  4123. function IsClipboardFormatAvailable(format: UINT): BOOL; stdcall;
  4124. {$EXTERNALSYM IsClipboardFormatAvailable}
  4125. function GetPriorityClipboardFormat(paFormatPriorityList: PUINT; cFormats: Integer): Integer; stdcall;
  4126. {$EXTERNALSYM GetPriorityClipboardFormat}
  4127. function GetOpenClipboardWindow: HWND; stdcall;
  4128. {$EXTERNALSYM GetOpenClipboardWindow}
  4129. //
  4130. // Character Translation Routines
  4131. //
  4132. function CharToOemA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4133. {$EXTERNALSYM CharToOemA}
  4134. function CharToOemW(lpszSrc: LPCWSTR; lpszDst: LPSTR): BOOL; stdcall;
  4135. {$EXTERNALSYM CharToOemW}
  4136. function CharToOem(lpszSrc: LPCTSTR; lpszDst: LPSTR): BOOL; stdcall;
  4137. {$EXTERNALSYM CharToOem}
  4138. function OemToCharA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4139. {$EXTERNALSYM OemToCharA}
  4140. function OemToCharW(lpszSrc: LPCSTR; lpszDst: LPWSTR): BOOL; stdcall;
  4141. {$EXTERNALSYM OemToCharW}
  4142. function OemToChar(lpszSrc: LPCSTR; lpszDst: LPTSTR): BOOL; stdcall;
  4143. {$EXTERNALSYM OemToChar}
  4144. function CharToOemBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4145. {$EXTERNALSYM CharToOemBuffA}
  4146. function CharToOemBuffW(lpszSrc: LPCWSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4147. {$EXTERNALSYM CharToOemBuffW}
  4148. function CharToOemBuff(lpszSrc: LPCTSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4149. {$EXTERNALSYM CharToOemBuff}
  4150. function OemToCharBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4151. {$EXTERNALSYM OemToCharBuffA}
  4152. function OemToCharBuffW(lpszSrc: LPCSTR; lpszDst: LPWSTR; cchDstLength: DWORD): BOOL; stdcall;
  4153. {$EXTERNALSYM OemToCharBuffW}
  4154. function OemToCharBuff(lpszSrc: LPCSTR; lpszDst: LPTSTR; cchDstLength: DWORD): BOOL; stdcall;
  4155. {$EXTERNALSYM OemToCharBuff}
  4156. function CharUpperA(lpsz: LPSTR): LPSTR; stdcall;
  4157. {$EXTERNALSYM CharUpperA}
  4158. function CharUpperW(lpsz: LPWSTR): LPWSTR; stdcall;
  4159. {$EXTERNALSYM CharUpperW}
  4160. function CharUpper(lpsz: LPTSTR): LPTSTR; stdcall;
  4161. {$EXTERNALSYM CharUpper}
  4162. function CharUpperBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4163. {$EXTERNALSYM CharUpperBuffA}
  4164. function CharUpperBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4165. {$EXTERNALSYM CharUpperBuffW}
  4166. function CharUpperBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4167. {$EXTERNALSYM CharUpperBuff}
  4168. function CharLowerA(lpsz: LPSTR): LPSTR; stdcall;
  4169. {$EXTERNALSYM CharLowerA}
  4170. function CharLowerW(lpsz: LPWSTR): LPWSTR; stdcall;
  4171. {$EXTERNALSYM CharLowerW}
  4172. function CharLower(lpsz: LPTSTR): LPTSTR; stdcall;
  4173. {$EXTERNALSYM CharLower}
  4174. function CharLowerBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4175. {$EXTERNALSYM CharLowerBuffA}
  4176. function CharLowerBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4177. {$EXTERNALSYM CharLowerBuffW}
  4178. function CharLowerBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4179. {$EXTERNALSYM CharLowerBuff}
  4180. function CharNextA(lpsz: LPCSTR): LPSTR; stdcall;
  4181. {$EXTERNALSYM CharNextA}
  4182. function CharNextW(lpsz: LPCWSTR): LPWSTR; stdcall;
  4183. {$EXTERNALSYM CharNextW}
  4184. function CharNext(lpsz: LPCTSTR): LPTSTR; stdcall;
  4185. {$EXTERNALSYM CharNext}
  4186. function CharPrevA(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR; stdcall;
  4187. {$EXTERNALSYM CharPrevA}
  4188. function CharPrevW(lpszStart: LPCWSTR; lpszCurrent: LPCWSTR): LPWSTR; stdcall;
  4189. {$EXTERNALSYM CharPrevW}
  4190. function CharPrev(lpszStart: LPCTSTR; lpszCurrent: LPCTSTR): LPTSTR; stdcall;
  4191. {$EXTERNALSYM CharPrev}
  4192. function CharNextExA(CodePage: WORD; lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4193. {$EXTERNALSYM CharNextExA}
  4194. function CharPrevExA(CodePage: WORD; lpStart, lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4195. {$EXTERNALSYM CharPrevExA}
  4196. //
  4197. // Compatibility defines for character translation routines
  4198. //
  4199. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4200. {$EXTERNALSYM AnsiToOem}
  4201. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4202. {$EXTERNALSYM OemToAnsi}
  4203. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4204. {$EXTERNALSYM AnsiToOemBuff}
  4205. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4206. {$EXTERNALSYM OemToAnsiBuff}
  4207. function AnsiUpper(lpsz: LPSTR): LPSTR;
  4208. {$EXTERNALSYM AnsiUpper}
  4209. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4210. {$EXTERNALSYM AnsiUpperBuff}
  4211. function AnsiLower(lpsz: LPSTR): LPSTR;
  4212. {$EXTERNALSYM AnsiLower}
  4213. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4214. {$EXTERNALSYM AnsiLowerBuff}
  4215. function AnsiNext(lpsz: LPCSTR): LPSTR;
  4216. {$EXTERNALSYM AnsiNext}
  4217. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  4218. {$EXTERNALSYM AnsiPrev}
  4219. //
  4220. // Language dependent Routines
  4221. //
  4222. function IsCharAlphaA(ch: CHAR): BOOL; stdcall;
  4223. {$EXTERNALSYM IsCharAlphaA}
  4224. function IsCharAlphaW(ch: WCHAR): BOOL; stdcall;
  4225. {$EXTERNALSYM IsCharAlphaW}
  4226. function IsCharAlpha(ch: TCHAR): BOOL; stdcall;
  4227. {$EXTERNALSYM IsCharAlpha}
  4228. function IsCharAlphaNumericA(ch: CHAR): BOOL; stdcall;
  4229. {$EXTERNALSYM IsCharAlphaNumericA}
  4230. function IsCharAlphaNumericW(ch: WCHAR): BOOL; stdcall;
  4231. {$EXTERNALSYM IsCharAlphaNumericW}
  4232. function IsCharAlphaNumeric(ch: TCHAR): BOOL; stdcall;
  4233. {$EXTERNALSYM IsCharAlphaNumeric}
  4234. function IsCharUpperA(ch: CHAR): BOOL; stdcall;
  4235. {$EXTERNALSYM IsCharUpperA}
  4236. function IsCharUpperW(ch: WCHAR): BOOL; stdcall;
  4237. {$EXTERNALSYM IsCharUpperW}
  4238. function IsCharUpper(ch: TCHAR): BOOL; stdcall;
  4239. {$EXTERNALSYM IsCharUpper}
  4240. function IsCharLowerA(ch: CHAR): BOOL; stdcall;
  4241. {$EXTERNALSYM IsCharLowerA}
  4242. function IsCharLowerW(ch: WCHAR): BOOL; stdcall;
  4243. {$EXTERNALSYM IsCharLowerW}
  4244. function IsCharLower(ch: TCHAR): BOOL; stdcall;
  4245. {$EXTERNALSYM IsCharLower}
  4246. function SetFocus(hWnd: HWND): HWND; stdcall;
  4247. {$EXTERNALSYM SetFocus}
  4248. function GetActiveWindow: HWND; stdcall;
  4249. {$EXTERNALSYM GetActiveWindow}
  4250. function GetFocus: HWND; stdcall;
  4251. {$EXTERNALSYM GetFocus}
  4252. function GetKBCodePage: UINT; stdcall;
  4253. {$EXTERNALSYM GetKBCodePage}
  4254. function GetKeyState(nVirtKey: Integer): SHORT; stdcall;
  4255. {$EXTERNALSYM GetKeyState}
  4256. function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
  4257. {$EXTERNALSYM GetAsyncKeyState}
  4258. function GetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4259. {$EXTERNALSYM GetKeyboardState}
  4260. function SetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4261. {$EXTERNALSYM SetKeyboardState}
  4262. function GetKeyNameTextA(lParam: LONG; lpString: LPSTR; nSize: Integer): Integer; stdcall;
  4263. {$EXTERNALSYM GetKeyNameTextA}
  4264. function GetKeyNameTextW(lParam: LONG; lpString: LPWSTR; nSize: Integer): Integer; stdcall;
  4265. {$EXTERNALSYM GetKeyNameTextW}
  4266. function GetKeyNameText(lParam: LONG; lpString: LPTSTR; nSize: Integer): Integer; stdcall;
  4267. {$EXTERNALSYM GetKeyNameText}
  4268. function GetKeyboardType(nTypeFlag: Integer): Integer; stdcall;
  4269. {$EXTERNALSYM GetKeyboardType}
  4270. function ToAscii(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4271. uFlags: UINT): Integer; stdcall;
  4272. {$EXTERNALSYM ToAscii}
  4273. function ToAsciiEx(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4274. uFlags: UINT; dwhkl: HKL): Integer; stdcall;
  4275. {$EXTERNALSYM ToAsciiEx}
  4276. function ToUnicode(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE; pwszBuff: LPWSTR;
  4277. cchBuff: Integer; wFlags: UINT): Integer; stdcall;
  4278. {$EXTERNALSYM ToUnicode}
  4279. function OemKeyScan(wOemChar: WORD): DWORD; stdcall;
  4280. {$EXTERNALSYM OemKeyScan}
  4281. function VkKeyScanA(ch: CHAR): SHORT; stdcall;
  4282. {$EXTERNALSYM VkKeyScanA}
  4283. function VkKeyScanW(ch: WCHAR): SHORT; stdcall;
  4284. {$EXTERNALSYM VkKeyScanW}
  4285. function VkKeyScan(ch: TCHAR): SHORT; stdcall;
  4286. {$EXTERNALSYM VkKeyScan}
  4287. function VkKeyScanExA(ch: CHAR; dwhkl: HKL): SHORT; stdcall;
  4288. {$EXTERNALSYM VkKeyScanExA}
  4289. function VkKeyScanExW(ch: WCHAR; dwhkl: HKL): SHORT; stdcall;
  4290. {$EXTERNALSYM VkKeyScanExW}
  4291. function VkKeyScanEx(ch: TCHAR; dwhkl: HKL): SHORT; stdcall;
  4292. {$EXTERNALSYM VkKeyScanEx}
  4293. const
  4294. KEYEVENTF_EXTENDEDKEY = $0001;
  4295. {$EXTERNALSYM KEYEVENTF_EXTENDEDKEY}
  4296. KEYEVENTF_KEYUP = $0002;
  4297. {$EXTERNALSYM KEYEVENTF_KEYUP}
  4298. KEYEVENTF_UNICODE = $0004;
  4299. {$EXTERNALSYM KEYEVENTF_UNICODE}
  4300. KEYEVENTF_SCANCODE = $0008;
  4301. {$EXTERNALSYM KEYEVENTF_SCANCODE}
  4302. procedure keybd_event(bVk, bScan: BYTE; dwFlags: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4303. {$EXTERNALSYM keybd_event}
  4304. const
  4305. MOUSEEVENTF_MOVE = $0001; // mouse move
  4306. {$EXTERNALSYM MOUSEEVENTF_MOVE}
  4307. MOUSEEVENTF_LEFTDOWN = $0002; // left button down
  4308. {$EXTERNALSYM MOUSEEVENTF_LEFTDOWN}
  4309. MOUSEEVENTF_LEFTUP = $0004; // left button up
  4310. {$EXTERNALSYM MOUSEEVENTF_LEFTUP}
  4311. MOUSEEVENTF_RIGHTDOWN = $0008; // right button down
  4312. {$EXTERNALSYM MOUSEEVENTF_RIGHTDOWN}
  4313. MOUSEEVENTF_RIGHTUP = $0010; // right button up
  4314. {$EXTERNALSYM MOUSEEVENTF_RIGHTUP}
  4315. MOUSEEVENTF_MIDDLEDOWN = $0020; // middle button down
  4316. {$EXTERNALSYM MOUSEEVENTF_MIDDLEDOWN}
  4317. MOUSEEVENTF_MIDDLEUP = $0040; // middle button up
  4318. {$EXTERNALSYM MOUSEEVENTF_MIDDLEUP}
  4319. MOUSEEVENTF_XDOWN = $0080; // x button down
  4320. {$EXTERNALSYM MOUSEEVENTF_XDOWN}
  4321. MOUSEEVENTF_XUP = $0100; // x button down
  4322. {$EXTERNALSYM MOUSEEVENTF_XUP}
  4323. MOUSEEVENTF_WHEEL = $0800; // wheel button rolled
  4324. {$EXTERNALSYM MOUSEEVENTF_WHEEL}
  4325. MOUSEEVENTF_VIRTUALDESK = $4000; // map to entire virtual desktop
  4326. {$EXTERNALSYM MOUSEEVENTF_VIRTUALDESK}
  4327. MOUSEEVENTF_ABSOLUTE = $8000; // absolute move
  4328. {$EXTERNALSYM MOUSEEVENTF_ABSOLUTE}
  4329. procedure mouse_event(dwFlags, dx, dy, dwData: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4330. {$EXTERNALSYM mouse_event}
  4331. type
  4332. LPMOUSEINPUT = ^MOUSEINPUT;
  4333. {$EXTERNALSYM LPMOUSEINPUT}
  4334. tagMOUSEINPUT = record
  4335. dx: LONG;
  4336. dy: LONG;
  4337. mouseData: DWORD;
  4338. dwFlags: DWORD;
  4339. time: DWORD;
  4340. dwExtraInfo: ULONG_PTR;
  4341. end;
  4342. {$EXTERNALSYM MOUSEINPUT}
  4343. MOUSEINPUT = tagMOUSEINPUT;
  4344. {$EXTERNALSYM MOUSEINPUT}
  4345. TMouseInput = MOUSEINPUT;
  4346. PMouseInput = LPMOUSEINPUT;
  4347. LPKEYBDINPUT = ^KEYBDINPUT;
  4348. {$EXTERNALSYM LPKEYBDINPUT}
  4349. tagKEYBDINPUT = record
  4350. wVk: WORD;
  4351. wScan: WORD;
  4352. dwFlags: DWORD;
  4353. time: DWORD;
  4354. dwExtraInfo: ULONG_PTR;
  4355. end;
  4356. {$EXTERNALSYM tagKEYBDINPUT}
  4357. KEYBDINPUT = tagKEYBDINPUT;
  4358. {$EXTERNALSYM KEYBDINPUT}
  4359. TKeybdinput = KEYBDINPUT;
  4360. PKeybdInput = LPKEYBDINPUT;
  4361. LPHARDWAREINPUT = ^HARDWAREINPUT;
  4362. {$EXTERNALSYM LPHARDWAREINPUT}
  4363. tagHARDWAREINPUT = record
  4364. uMsg: DWORD;
  4365. wParamL: WORD;
  4366. wParamH: WORD;
  4367. end;
  4368. {$EXTERNALSYM tagHARDWAREINPUT}
  4369. HARDWAREINPUT = tagHARDWAREINPUT;
  4370. {$EXTERNALSYM HARDWAREINPUT}
  4371. THardwareInput = HARDWAREINPUT;
  4372. PHardwareInput = LPHARDWAREINPUT;
  4373. const
  4374. INPUT_MOUSE = 0;
  4375. {$EXTERNALSYM INPUT_MOUSE}
  4376. INPUT_KEYBOARD = 1;
  4377. {$EXTERNALSYM INPUT_KEYBOARD}
  4378. INPUT_HARDWARE = 2;
  4379. {$EXTERNALSYM INPUT_HARDWARE}
  4380. type
  4381. LPINPUT = ^INPUT;
  4382. {$EXTERNALSYM LPINPUT}
  4383. tagINPUT = record
  4384. type_: DWORD;
  4385. case Integer of
  4386. 0: (mi: MOUSEINPUT);
  4387. 1: (ki: KEYBDINPUT);
  4388. 2: (hi: HARDWAREINPUT);
  4389. end;
  4390. {$EXTERNALSYM tagINPUT}
  4391. INPUT = tagINPUT;
  4392. {$EXTERNALSYM INPUT}
  4393. TInput = INPUT;
  4394. PInput = LPINPUT;
  4395. function SendInput(cInputs: UINT; pInputs: LPINPUT; cbSize: Integer): UINT; stdcall;
  4396. {$EXTERNALSYM SendInput}
  4397. type
  4398. PLASTINPUTINFO = ^LASTINPUTINFO;
  4399. tagLASTINPUTINFO = record
  4400. cbSize: UINT;
  4401. dwTime: DWORD;
  4402. end;
  4403. {$EXTERNALSYM tagLASTINPUTINFO}
  4404. LASTINPUTINFO = tagLASTINPUTINFO;
  4405. {$EXTERNALSYM LASTINPUTINFO}
  4406. TLastInputInfo = LASTINPUTINFO;
  4407. function GetLastInputInfo(var plii: LASTINPUTINFO): BOOL; stdcall;
  4408. {$EXTERNALSYM GetLastInputInfo}
  4409. function MapVirtualKeyA(uCode, uMapType: UINT): UINT; stdcall;
  4410. {$EXTERNALSYM MapVirtualKeyA}
  4411. function MapVirtualKeyW(uCode, uMapType: UINT): UINT; stdcall;
  4412. {$EXTERNALSYM MapVirtualKeyW}
  4413. function MapVirtualKey(uCode, uMapType: UINT): UINT; stdcall;
  4414. {$EXTERNALSYM MapVirtualKey}
  4415. function MapVirtualKeyExA(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4416. {$EXTERNALSYM MapVirtualKeyExA}
  4417. function MapVirtualKeyExW(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4418. {$EXTERNALSYM MapVirtualKeyExW}
  4419. function MapVirtualKeyEx(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4420. {$EXTERNALSYM MapVirtualKeyEx}
  4421. function GetInputState: BOOL; stdcall;
  4422. {$EXTERNALSYM GetInputState}
  4423. function GetQueueStatus(flags: UINT): DWORD; stdcall;
  4424. {$EXTERNALSYM GetQueueStatus}
  4425. function GetCapture: HWND; stdcall;
  4426. {$EXTERNALSYM GetCapture}
  4427. function SetCapture(hWnd: HWND): HWND; stdcall;
  4428. {$EXTERNALSYM SetCapture}
  4429. function ReleaseCapture: BOOL; stdcall;
  4430. {$EXTERNALSYM ReleaseCapture}
  4431. function MsgWaitForMultipleObjects(nCount: DWORD; pHandles: PHANDLE;
  4432. fWaitAll: BOOL; dwMilliseconds: DWORD; dwWakeMask: DWORD): DWORD; stdcall;
  4433. {$EXTERNALSYM MsgWaitForMultipleObjects}
  4434. function MsgWaitForMultipleObjectsEx(nCount: DWORD; pHandles: PHANDLE;
  4435. dwMilliseconds: DWORD; dwWakeMask: DWORD; dwFlags: DWORD): DWORD; stdcall;
  4436. {$EXTERNALSYM MsgWaitForMultipleObjectsEx}
  4437. const
  4438. MWMO_WAITALL = $0001;
  4439. {$EXTERNALSYM MWMO_WAITALL}
  4440. MWMO_ALERTABLE = $0002;
  4441. {$EXTERNALSYM MWMO_ALERTABLE}
  4442. MWMO_INPUTAVAILABLE = $0004;
  4443. {$EXTERNALSYM MWMO_INPUTAVAILABLE}
  4444. //
  4445. // Windows Functions
  4446. //
  4447. function SetTimer(hWnd: HWND; nIDEvent: UINT_PTR; uElapse: UINT;
  4448. lpTimerFunc: TIMERPROC): UINT_PTR; stdcall;
  4449. {$EXTERNALSYM SetTimer}
  4450. function KillTimer(hWnd: HWND; uIDEvent: UINT_PTR): BOOL; stdcall;
  4451. {$EXTERNALSYM KillTimer}
  4452. function IsWindowUnicode(hWnd: HWND): BOOL; stdcall;
  4453. {$EXTERNALSYM IsWindowUnicode}
  4454. function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
  4455. {$EXTERNALSYM EnableWindow}
  4456. function IsWindowEnabled(hWnd: HWND): BOOL; stdcall;
  4457. {$EXTERNALSYM IsWindowEnabled}
  4458. function LoadAcceleratorsA(hInstance: HINST; lpTableName: LPCSTR): HACCEL; stdcall;
  4459. {$EXTERNALSYM LoadAcceleratorsA}
  4460. function LoadAcceleratorsW(hInstance: HINST; lpTableName: LPCWSTR): HACCEL; stdcall;
  4461. {$EXTERNALSYM LoadAcceleratorsW}
  4462. function LoadAccelerators(hInstance: HINST; lpTableName: LPCTSTR): HACCEL; stdcall;
  4463. {$EXTERNALSYM LoadAccelerators}
  4464. function CreateAcceleratorTableA(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4465. {$EXTERNALSYM CreateAcceleratorTableA}
  4466. function CreateAcceleratorTableW(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4467. {$EXTERNALSYM CreateAcceleratorTableW}
  4468. function CreateAcceleratorTable(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4469. {$EXTERNALSYM CreateAcceleratorTable}
  4470. function DestroyAcceleratorTable(hAccel: HACCEL): BOOL; stdcall;
  4471. {$EXTERNALSYM DestroyAcceleratorTable}
  4472. function CopyAcceleratorTableA(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4473. cAccelEntries: Integer): Integer; stdcall;
  4474. {$EXTERNALSYM CopyAcceleratorTableA}
  4475. function CopyAcceleratorTableW(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4476. cAccelEntries: Integer): Integer; stdcall;
  4477. {$EXTERNALSYM CopyAcceleratorTableW}
  4478. function CopyAcceleratorTable(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4479. cAccelEntries: Integer): Integer; stdcall;
  4480. {$EXTERNALSYM CopyAcceleratorTable}
  4481. function TranslateAcceleratorA(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4482. {$EXTERNALSYM TranslateAcceleratorA}
  4483. function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4484. {$EXTERNALSYM TranslateAcceleratorW}
  4485. function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4486. {$EXTERNALSYM TranslateAccelerator}
  4487. //
  4488. // GetSystemMetrics() codes
  4489. //
  4490. const
  4491. SM_CXSCREEN = 0;
  4492. {$EXTERNALSYM SM_CXSCREEN}
  4493. SM_CYSCREEN = 1;
  4494. {$EXTERNALSYM SM_CYSCREEN}
  4495. SM_CXVSCROLL = 2;
  4496. {$EXTERNALSYM SM_CXVSCROLL}
  4497. SM_CYHSCROLL = 3;
  4498. {$EXTERNALSYM SM_CYHSCROLL}
  4499. SM_CYCAPTION = 4;
  4500. {$EXTERNALSYM SM_CYCAPTION}
  4501. SM_CXBORDER = 5;
  4502. {$EXTERNALSYM SM_CXBORDER}
  4503. SM_CYBORDER = 6;
  4504. {$EXTERNALSYM SM_CYBORDER}
  4505. SM_CXDLGFRAME = 7;
  4506. {$EXTERNALSYM SM_CXDLGFRAME}
  4507. SM_CYDLGFRAME = 8;
  4508. {$EXTERNALSYM SM_CYDLGFRAME}
  4509. SM_CYVTHUMB = 9;
  4510. {$EXTERNALSYM SM_CYVTHUMB}
  4511. SM_CXHTHUMB = 10;
  4512. {$EXTERNALSYM SM_CXHTHUMB}
  4513. SM_CXICON = 11;
  4514. {$EXTERNALSYM SM_CXICON}
  4515. SM_CYICON = 12;
  4516. {$EXTERNALSYM SM_CYICON}
  4517. SM_CXCURSOR = 13;
  4518. {$EXTERNALSYM SM_CXCURSOR}
  4519. SM_CYCURSOR = 14;
  4520. {$EXTERNALSYM SM_CYCURSOR}
  4521. SM_CYMENU = 15;
  4522. {$EXTERNALSYM SM_CYMENU}
  4523. SM_CXFULLSCREEN = 16;
  4524. {$EXTERNALSYM SM_CXFULLSCREEN}
  4525. SM_CYFULLSCREEN = 17;
  4526. {$EXTERNALSYM SM_CYFULLSCREEN}
  4527. SM_CYKANJIWINDOW = 18;
  4528. {$EXTERNALSYM SM_CYKANJIWINDOW}
  4529. SM_MOUSEPRESENT = 19;
  4530. {$EXTERNALSYM SM_MOUSEPRESENT}
  4531. SM_CYVSCROLL = 20;
  4532. {$EXTERNALSYM SM_CYVSCROLL}
  4533. SM_CXHSCROLL = 21;
  4534. {$EXTERNALSYM SM_CXHSCROLL}
  4535. SM_DEBUG = 22;
  4536. {$EXTERNALSYM SM_DEBUG}
  4537. SM_SWAPBUTTON = 23;
  4538. {$EXTERNALSYM SM_SWAPBUTTON}
  4539. SM_RESERVED1 = 24;
  4540. {$EXTERNALSYM SM_RESERVED1}
  4541. SM_RESERVED2 = 25;
  4542. {$EXTERNALSYM SM_RESERVED2}
  4543. SM_RESERVED3 = 26;
  4544. {$EXTERNALSYM SM_RESERVED3}
  4545. SM_RESERVED4 = 27;
  4546. {$EXTERNALSYM SM_RESERVED4}
  4547. SM_CXMIN = 28;
  4548. {$EXTERNALSYM SM_CXMIN}
  4549. SM_CYMIN = 29;
  4550. {$EXTERNALSYM SM_CYMIN}
  4551. SM_CXSIZE = 30;
  4552. {$EXTERNALSYM SM_CXSIZE}
  4553. SM_CYSIZE = 31;
  4554. {$EXTERNALSYM SM_CYSIZE}
  4555. SM_CXFRAME = 32;
  4556. {$EXTERNALSYM SM_CXFRAME}
  4557. SM_CYFRAME = 33;
  4558. {$EXTERNALSYM SM_CYFRAME}
  4559. SM_CXMINTRACK = 34;
  4560. {$EXTERNALSYM SM_CXMINTRACK}
  4561. SM_CYMINTRACK = 35;
  4562. {$EXTERNALSYM SM_CYMINTRACK}
  4563. SM_CXDOUBLECLK = 36;
  4564. {$EXTERNALSYM SM_CXDOUBLECLK}
  4565. SM_CYDOUBLECLK = 37;
  4566. {$EXTERNALSYM SM_CYDOUBLECLK}
  4567. SM_CXICONSPACING = 38;
  4568. {$EXTERNALSYM SM_CXICONSPACING}
  4569. SM_CYICONSPACING = 39;
  4570. {$EXTERNALSYM SM_CYICONSPACING}
  4571. SM_MENUDROPALIGNMENT = 40;
  4572. {$EXTERNALSYM SM_MENUDROPALIGNMENT}
  4573. SM_PENWINDOWS = 41;
  4574. {$EXTERNALSYM SM_PENWINDOWS}
  4575. SM_DBCSENABLED = 42;
  4576. {$EXTERNALSYM SM_DBCSENABLED}
  4577. SM_CMOUSEBUTTONS = 43;
  4578. {$EXTERNALSYM SM_CMOUSEBUTTONS}
  4579. SM_CXFIXEDFRAME = SM_CXDLGFRAME; // ;win40 name change
  4580. {$EXTERNALSYM SM_CXFIXEDFRAME}
  4581. SM_CYFIXEDFRAME = SM_CYDLGFRAME; // ;win40 name change
  4582. {$EXTERNALSYM SM_CYFIXEDFRAME}
  4583. SM_CXSIZEFRAME = SM_CXFRAME; // ;win40 name change
  4584. {$EXTERNALSYM SM_CXSIZEFRAME}
  4585. SM_CYSIZEFRAME = SM_CYFRAME; // ;win40 name change
  4586. {$EXTERNALSYM SM_CYSIZEFRAME}
  4587. SM_SECURE = 44;
  4588. {$EXTERNALSYM SM_SECURE}
  4589. SM_CXEDGE = 45;
  4590. {$EXTERNALSYM SM_CXEDGE}
  4591. SM_CYEDGE = 46;
  4592. {$EXTERNALSYM SM_CYEDGE}
  4593. SM_CXMINSPACING = 47;
  4594. {$EXTERNALSYM SM_CXMINSPACING}
  4595. SM_CYMINSPACING = 48;
  4596. {$EXTERNALSYM SM_CYMINSPACING}
  4597. SM_CXSMICON = 49;
  4598. {$EXTERNALSYM SM_CXSMICON}
  4599. SM_CYSMICON = 50;
  4600. {$EXTERNALSYM SM_CYSMICON}
  4601. SM_CYSMCAPTION = 51;
  4602. {$EXTERNALSYM SM_CYSMCAPTION}
  4603. SM_CXSMSIZE = 52;
  4604. {$EXTERNALSYM SM_CXSMSIZE}
  4605. SM_CYSMSIZE = 53;
  4606. {$EXTERNALSYM SM_CYSMSIZE}
  4607. SM_CXMENUSIZE = 54;
  4608. {$EXTERNALSYM SM_CXMENUSIZE}
  4609. SM_CYMENUSIZE = 55;
  4610. {$EXTERNALSYM SM_CYMENUSIZE}
  4611. SM_ARRANGE = 56;
  4612. {$EXTERNALSYM SM_ARRANGE}
  4613. SM_CXMINIMIZED = 57;
  4614. {$EXTERNALSYM SM_CXMINIMIZED}
  4615. SM_CYMINIMIZED = 58;
  4616. {$EXTERNALSYM SM_CYMINIMIZED}
  4617. SM_CXMAXTRACK = 59;
  4618. {$EXTERNALSYM SM_CXMAXTRACK}
  4619. SM_CYMAXTRACK = 60;
  4620. {$EXTERNALSYM SM_CYMAXTRACK}
  4621. SM_CXMAXIMIZED = 61;
  4622. {$EXTERNALSYM SM_CXMAXIMIZED}
  4623. SM_CYMAXIMIZED = 62;
  4624. {$EXTERNALSYM SM_CYMAXIMIZED}
  4625. SM_NETWORK = 63;
  4626. {$EXTERNALSYM SM_NETWORK}
  4627. SM_CLEANBOOT = 67;
  4628. {$EXTERNALSYM SM_CLEANBOOT}
  4629. SM_CXDRAG = 68;
  4630. {$EXTERNALSYM SM_CXDRAG}
  4631. SM_CYDRAG = 69;
  4632. {$EXTERNALSYM SM_CYDRAG}
  4633. SM_SHOWSOUNDS = 70;
  4634. {$EXTERNALSYM SM_SHOWSOUNDS}
  4635. SM_CXMENUCHECK = 71; // Use instead of GetMenuCheckMarkDimensions()!
  4636. {$EXTERNALSYM SM_CXMENUCHECK}
  4637. SM_CYMENUCHECK = 72;
  4638. {$EXTERNALSYM SM_CYMENUCHECK}
  4639. SM_SLOWMACHINE = 73;
  4640. {$EXTERNALSYM SM_SLOWMACHINE}
  4641. SM_MIDEASTENABLED = 74;
  4642. {$EXTERNALSYM SM_MIDEASTENABLED}
  4643. SM_MOUSEWHEELPRESENT = 75;
  4644. {$EXTERNALSYM SM_MOUSEWHEELPRESENT}
  4645. SM_XVIRTUALSCREEN = 76;
  4646. {$EXTERNALSYM SM_XVIRTUALSCREEN}
  4647. SM_YVIRTUALSCREEN = 77;
  4648. {$EXTERNALSYM SM_YVIRTUALSCREEN}
  4649. SM_CXVIRTUALSCREEN = 78;
  4650. {$EXTERNALSYM SM_CXVIRTUALSCREEN}
  4651. SM_CYVIRTUALSCREEN = 79;
  4652. {$EXTERNALSYM SM_CYVIRTUALSCREEN}
  4653. SM_CMONITORS = 80;
  4654. {$EXTERNALSYM SM_CMONITORS}
  4655. SM_SAMEDISPLAYFORMAT = 81;
  4656. {$EXTERNALSYM SM_SAMEDISPLAYFORMAT}
  4657. SM_IMMENABLED = 82;
  4658. {$EXTERNALSYM SM_IMMENABLED}
  4659. SM_CXFOCUSBORDER = 83;
  4660. {$EXTERNALSYM SM_CXFOCUSBORDER}
  4661. SM_CYFOCUSBORDER = 84;
  4662. {$EXTERNALSYM SM_CYFOCUSBORDER}
  4663. //#if(_WIN32_WINNT >= 0x0501)
  4664. SM_TABLETPC = 86;
  4665. {$EXTERNALSYM SM_TABLETPC}
  4666. SM_MEDIACENTER = 87;
  4667. {$EXTERNALSYM SM_MEDIACENTER}
  4668. //#endif /* _WIN32_WINNT >= 0x0501 */
  4669. const
  4670. {$IFNDEF WIN98ME_UP}
  4671. SM_CMETRICS = 76;
  4672. {$ELSE}
  4673. {$IFDEF WIN98ME}
  4674. SM_CMETRICS = 83;
  4675. {$ELSE}
  4676. SM_CMETRICS = 88;
  4677. {$ENDIF WIN98ME}
  4678. {$ENDIF !WIN98ME_UP}
  4679. {$EXTERNALSYM SM_CMETRICS}
  4680. SM_REMOTESESSION = $1000;
  4681. {$EXTERNALSYM SM_REMOTESESSION}
  4682. SM_SHUTTINGDOWN = $2000;
  4683. {$EXTERNALSYM SM_SHUTTINGDOWN}
  4684. //#if(WINVER >= 0x0501)
  4685. SM_REMOTECONTROL = $2001;
  4686. {$EXTERNALSYM SM_REMOTECONTROL}
  4687. //#endif /* WINVER >= 0x0501 */
  4688. function GetSystemMetrics(nIndex: Integer): Integer; stdcall;
  4689. {$EXTERNALSYM GetSystemMetrics}
  4690. function LoadMenuA(hInstance: HINST; lpMenuName: LPCSTR): HMENU; stdcall;
  4691. {$EXTERNALSYM LoadMenuA}
  4692. function LoadMenuW(hInstance: HINST; lpMenuName: LPCWSTR): HMENU; stdcall;
  4693. {$EXTERNALSYM LoadMenuW}
  4694. function LoadMenu(hInstance: HINST; lpMenuName: LPCTSTR): HMENU; stdcall;
  4695. {$EXTERNALSYM LoadMenu}
  4696. function LoadMenuIndirectA(lpMenuTemplate: LPMENUTEMPLATEA): HMENU; stdcall;
  4697. {$EXTERNALSYM LoadMenuIndirectA}
  4698. function LoadMenuIndirectW(lpMenuTemplate: LPMENUTEMPLATEW): HMENU; stdcall;
  4699. {$EXTERNALSYM LoadMenuIndirectW}
  4700. function LoadMenuIndirect(lpMenuTemplate: LPMENUTEMPLATE): HMENU; stdcall;
  4701. {$EXTERNALSYM LoadMenuIndirect}
  4702. function GetMenu(hWnd: HWND): HMENU; stdcall;
  4703. {$EXTERNALSYM GetMenu}
  4704. function SetMenu(hWnd: HWND; hMenu: HMENU): BOOL; stdcall;
  4705. {$EXTERNALSYM SetMenu}
  4706. function ChangeMenuA(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCSTR;
  4707. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4708. {$EXTERNALSYM ChangeMenuA}
  4709. function ChangeMenuW(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCWSTR;
  4710. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4711. {$EXTERNALSYM ChangeMenuW}
  4712. function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCTSTR;
  4713. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4714. {$EXTERNALSYM ChangeMenu}
  4715. function HiliteMenuItem(hWnd: HWND; hMenu: HMENU; uIDHiliteItem: UINT; uHilite: UINT): BOOL; stdcall;
  4716. {$EXTERNALSYM HiliteMenuItem}
  4717. function GetMenuStringA(hMenu: HMENU; uIDItem: UINT; lpString: LPSTR;
  4718. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4719. {$EXTERNALSYM GetMenuStringA}
  4720. function GetMenuStringW(hMenu: HMENU; uIDItem: UINT; lpString: LPWSTR;
  4721. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4722. {$EXTERNALSYM GetMenuStringW}
  4723. function GetMenuString(hMenu: HMENU; uIDItem: UINT; lpString: LPTSTR;
  4724. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4725. {$EXTERNALSYM GetMenuString}
  4726. function GetMenuState(hMenu: HMENU; uId, uFlags: UINT): UINT; stdcall;
  4727. {$EXTERNALSYM GetMenuState}
  4728. function DrawMenuBar(hWnd: HWND): BOOL; stdcall;
  4729. {$EXTERNALSYM DrawMenuBar}
  4730. const
  4731. PMB_ACTIVE = $00000001;
  4732. {$EXTERNALSYM PMB_ACTIVE}
  4733. function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; stdcall;
  4734. {$EXTERNALSYM GetSystemMenu}
  4735. function CreateMenu: HMENU; stdcall;
  4736. {$EXTERNALSYM CreateMenu}
  4737. function CreatePopupMenu: HMENU; stdcall;
  4738. {$EXTERNALSYM CreatePopupMenu}
  4739. function DestroyMenu(hMenu: HMENU): BOOL; stdcall;
  4740. {$EXTERNALSYM DestroyMenu}
  4741. function CheckMenuItem(hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD; stdcall;
  4742. {$EXTERNALSYM CheckMenuItem}
  4743. function EnableMenuItem(hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL; stdcall;
  4744. {$EXTERNALSYM EnableMenuItem}
  4745. function GetSubMenu(hMenu: HMENU; nPos: Integer): HMENU; stdcall;
  4746. {$EXTERNALSYM GetSubMenu}
  4747. function GetMenuItemID(hMenu: HMENU; nPos: Integer): UINT; stdcall;
  4748. {$EXTERNALSYM GetMenuItemID}
  4749. function GetMenuItemCount(hMenu: HMENU): Integer; stdcall;
  4750. {$EXTERNALSYM GetMenuItemCount}
  4751. function InsertMenuA(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4752. lpNewItem: LPCSTR): BOOL; stdcall;
  4753. {$EXTERNALSYM InsertMenuA}
  4754. function InsertMenuW(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4755. lpNewItem: LPCWSTR): BOOL; stdcall;
  4756. {$EXTERNALSYM InsertMenuW}
  4757. function InsertMenu(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4758. lpNewItem: LPCTSTR): BOOL; stdcall;
  4759. {$EXTERNALSYM InsertMenu}
  4760. function AppendMenuA(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4761. lpNewItem: LPCSTR): BOOL; stdcall;
  4762. {$EXTERNALSYM AppendMenuA}
  4763. function AppendMenuW(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4764. lpNewItem: LPCWSTR): BOOL; stdcall;
  4765. {$EXTERNALSYM AppendMenuW}
  4766. function AppendMenu(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4767. lpNewItem: LPCTSTR): BOOL; stdcall;
  4768. {$EXTERNALSYM AppendMenu}
  4769. function ModifyMenuA(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4770. uIDNewItem: UINT_PTR; lpNewItem: LPCSTR): BOOL; stdcall;
  4771. {$EXTERNALSYM ModifyMenuA}
  4772. function ModifyMenuW(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4773. uIDNewItem: UINT_PTR; lpNewItem: LPCWSTR): BOOL; stdcall;
  4774. {$EXTERNALSYM ModifyMenuW}
  4775. function ModifyMenu(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4776. uIDNewItem: UINT_PTR; lpNewItem: LPCTSTR): BOOL; stdcall;
  4777. {$EXTERNALSYM ModifyMenu}
  4778. function RemoveMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4779. {$EXTERNALSYM RemoveMenu}
  4780. function DeleteMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4781. {$EXTERNALSYM DeleteMenu}
  4782. function SetMenuItemBitmaps(hMenu: HMENU; uPosition: UINT; uFlags: UINT;
  4783. hBitmapUnchecked: HBITMAP; hBitmapChecked: HBITMAP): BOOL; stdcall;
  4784. {$EXTERNALSYM SetMenuItemBitmaps}
  4785. function GetMenuCheckMarkDimensions: LONG; stdcall;
  4786. {$EXTERNALSYM GetMenuCheckMarkDimensions}
  4787. function TrackPopupMenu(hMenu: HMENU; uFlags: UINT; x: Integer; y: Integer;
  4788. nReserved: Integer; hWnd: HWND; prcRect: LPRECT): BOOL; stdcall;
  4789. {$EXTERNALSYM TrackPopupMenu}
  4790. // return codes for WM_MENUCHAR//
  4791. const
  4792. MNC_IGNORE = 0;
  4793. {$EXTERNALSYM MNC_IGNORE}
  4794. MNC_CLOSE = 1;
  4795. {$EXTERNALSYM MNC_CLOSE}
  4796. MNC_EXECUTE = 2;
  4797. {$EXTERNALSYM MNC_EXECUTE}
  4798. MNC_SELECT = 3;
  4799. {$EXTERNALSYM MNC_SELECT}
  4800. type
  4801. LPTPMPARAMS = ^TPMPARAMS;
  4802. {$EXTERNALSYM LPTPMPARAMS}
  4803. tagTPMPARAMS = record
  4804. cbSize: UINT; // Size of structure
  4805. rcExclude: RECT; // Screen coordinates of rectangle to exclude when positioning
  4806. end;
  4807. {$EXTERNALSYM tagTPMPARAMS}
  4808. TPMPARAMS = tagTPMPARAMS;
  4809. {$EXTERNALSYM TPMPARAMS}
  4810. TTPMParams = TPMPARAMS;
  4811. PTPMParams = LPTPMPARAMS;
  4812. function TrackPopupMenuEx(hmenu: HMENU; fuflags: UINT; x, y: Integer;
  4813. hwnd: HWND; lptpm: LPTPMPARAMS): BOOL; stdcall;
  4814. {$EXTERNALSYM TrackPopupMenuEx}
  4815. const
  4816. MNS_NOCHECK = $80000000;
  4817. {$EXTERNALSYM MNS_NOCHECK}
  4818. MNS_MODELESS = $40000000;
  4819. {$EXTERNALSYM MNS_MODELESS}
  4820. MNS_DRAGDROP = $20000000;
  4821. {$EXTERNALSYM MNS_DRAGDROP}
  4822. MNS_AUTODISMISS = $10000000;
  4823. {$EXTERNALSYM MNS_AUTODISMISS}
  4824. MNS_NOTIFYBYPOS = $08000000;
  4825. {$EXTERNALSYM MNS_NOTIFYBYPOS}
  4826. MNS_CHECKORBMP = $04000000;
  4827. {$EXTERNALSYM MNS_CHECKORBMP}
  4828. MIM_MAXHEIGHT = $00000001;
  4829. {$EXTERNALSYM MIM_MAXHEIGHT}
  4830. MIM_BACKGROUND = $00000002;
  4831. {$EXTERNALSYM MIM_BACKGROUND}
  4832. MIM_HELPID = $00000004;
  4833. {$EXTERNALSYM MIM_HELPID}
  4834. MIM_MENUDATA = $00000008;
  4835. {$EXTERNALSYM MIM_MENUDATA}
  4836. MIM_STYLE = $00000010;
  4837. {$EXTERNALSYM MIM_STYLE}
  4838. MIM_APPLYTOSUBMENUS = $80000000;
  4839. {$EXTERNALSYM MIM_APPLYTOSUBMENUS}
  4840. type
  4841. LPMENUINFO = ^MENUINFO;
  4842. {$EXTERNALSYM LPMENUINFO}
  4843. tagMENUINFO = record
  4844. cbSize: DWORD;
  4845. fMask: DWORD;
  4846. dwStyle: DWORD;
  4847. cyMax: UINT;
  4848. hbrBack: HBRUSH;
  4849. dwContextHelpID: DWORD;
  4850. dwMenuData: ULONG_PTR;
  4851. end;
  4852. {$EXTERNALSYM tagMENUINFO}
  4853. MENUINFO = tagMENUINFO;
  4854. {$EXTERNALSYM MENUINFO}
  4855. TMenuinfo = MENUINFO;
  4856. PMenuinfo = LPMENUINFO;
  4857. LPCMENUINFO = ^MENUINFO;
  4858. {$EXTERNALSYM LPCMENUINFO}
  4859. function GetMenuInfo(hmenu: HMENU; var lpcmi: MENUINFO): BOOL; stdcall;
  4860. {$EXTERNALSYM GetMenuInfo}
  4861. function SetMenuInfo(hemnu: HMENU; const lpcmi: MENUINFO): BOOL; stdcall;
  4862. {$EXTERNALSYM SetMenuInfo}
  4863. function EndMenu: BOOL; stdcall;
  4864. {$EXTERNALSYM EndMenu}
  4865. //
  4866. // WM_MENUDRAG return values.
  4867. //
  4868. const
  4869. MND_CONTINUE = 0;
  4870. {$EXTERNALSYM MND_CONTINUE}
  4871. MND_ENDMENU = 1;
  4872. {$EXTERNALSYM MND_ENDMENU}
  4873. type
  4874. PMENUGETOBJECTINFO = ^MENUGETOBJECTINFO;
  4875. tagMENUGETOBJECTINFO = record
  4876. dwFlags: DWORD;
  4877. uPos: UINT;
  4878. hmenu: HMENU;
  4879. riid: PVOID;
  4880. pvObj: PVOID;
  4881. end;
  4882. {$EXTERNALSYM tagMENUGETOBJECTINFO}
  4883. MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;
  4884. {$EXTERNALSYM MENUGETOBJECTINFO}
  4885. TMenuGetObjectInfo = MENUGETOBJECTINFO;
  4886. //
  4887. // MENUGETOBJECTINFO dwFlags values
  4888. //
  4889. const
  4890. MNGOF_TOPGAP = $00000001;
  4891. {$EXTERNALSYM MNGOF_TOPGAP}
  4892. MNGOF_BOTTOMGAP = $00000002;
  4893. {$EXTERNALSYM MNGOF_BOTTOMGAP}
  4894. //
  4895. // WM_MENUGETOBJECT return values
  4896. //
  4897. MNGO_NOINTERFACE = $00000000;
  4898. {$EXTERNALSYM MNGO_NOINTERFACE}
  4899. MNGO_NOERROR = $00000001;
  4900. {$EXTERNALSYM MNGO_NOERROR}
  4901. MIIM_STATE = $00000001;
  4902. {$EXTERNALSYM MIIM_STATE}
  4903. MIIM_ID = $00000002;
  4904. {$EXTERNALSYM MIIM_ID}
  4905. MIIM_SUBMENU = $00000004;
  4906. {$EXTERNALSYM MIIM_SUBMENU}
  4907. MIIM_CHECKMARKS = $00000008;
  4908. {$EXTERNALSYM MIIM_CHECKMARKS}
  4909. MIIM_TYPE = $00000010;
  4910. {$EXTERNALSYM MIIM_TYPE}
  4911. MIIM_DATA = $00000020;
  4912. {$EXTERNALSYM MIIM_DATA}
  4913. MIIM_STRING = $00000040;
  4914. {$EXTERNALSYM MIIM_STRING}
  4915. MIIM_BITMAP = $00000080;
  4916. {$EXTERNALSYM MIIM_BITMAP}
  4917. MIIM_FTYPE = $00000100;
  4918. {$EXTERNALSYM MIIM_FTYPE}
  4919. HBMMENU_CALLBACK = HBITMAP(-1);
  4920. {$EXTERNALSYM HBMMENU_CALLBACK}
  4921. HBMMENU_SYSTEM = HBITMAP(1);
  4922. {$EXTERNALSYM HBMMENU_SYSTEM}
  4923. HBMMENU_MBAR_RESTORE = HBITMAP(2);
  4924. {$EXTERNALSYM HBMMENU_MBAR_RESTORE}
  4925. HBMMENU_MBAR_MINIMIZE = HBITMAP(3);
  4926. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE}
  4927. HBMMENU_MBAR_CLOSE = HBITMAP(5);
  4928. {$EXTERNALSYM HBMMENU_MBAR_CLOSE}
  4929. HBMMENU_MBAR_CLOSE_D = HBITMAP(6);
  4930. {$EXTERNALSYM HBMMENU_MBAR_CLOSE_D}
  4931. HBMMENU_MBAR_MINIMIZE_D = HBITMAP(7);
  4932. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE_D}
  4933. HBMMENU_POPUP_CLOSE = HBITMAP(8);
  4934. {$EXTERNALSYM HBMMENU_POPUP_CLOSE}
  4935. HBMMENU_POPUP_RESTORE = HBITMAP(9);
  4936. {$EXTERNALSYM HBMMENU_POPUP_RESTORE}
  4937. HBMMENU_POPUP_MAXIMIZE = HBITMAP(10);
  4938. {$EXTERNALSYM HBMMENU_POPUP_MAXIMIZE}
  4939. HBMMENU_POPUP_MINIMIZE = HBITMAP(11);
  4940. {$EXTERNALSYM HBMMENU_POPUP_MINIMIZE}
  4941. type
  4942. LPMENUITEMINFOA = ^MENUITEMINFOA;
  4943. {$EXTERNALSYM LPMENUITEMINFOA}
  4944. tagMENUITEMINFOA = record
  4945. cbSize: UINT;
  4946. fMask: UINT;
  4947. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4948. fState: UINT; // used if MIIM_STATE
  4949. wID: UINT; // used if MIIM_ID
  4950. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4951. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4952. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4953. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4954. dwTypeData: LPSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4955. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4956. {$IFDEF WIN98ME_UP}
  4957. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4958. {$ENDIF WIN98ME_UP}
  4959. end;
  4960. {$EXTERNALSYM tagMENUITEMINFOA}
  4961. MENUITEMINFOA = tagMENUITEMINFOA;
  4962. {$EXTERNALSYM MENUITEMINFOA}
  4963. TMenuItemInfoA = MENUITEMINFOA;
  4964. PMenuItemInfoA = LPMENUITEMINFOA;
  4965. LPMENUITEMINFOW = ^MENUITEMINFOW;
  4966. {$EXTERNALSYM LPMENUITEMINFOW}
  4967. tagMENUITEMINFOW = record
  4968. cbSize: UINT;
  4969. fMask: UINT;
  4970. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4971. fState: UINT; // used if MIIM_STATE
  4972. wID: UINT; // used if MIIM_ID
  4973. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4974. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4975. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4976. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4977. dwTypeData: LPWSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4978. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4979. {$IFDEF WIN98ME_UP}
  4980. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4981. {$ENDIF WIN98ME_UP}
  4982. end;
  4983. {$EXTERNALSYM tagMENUITEMINFOW}
  4984. MENUITEMINFOW = tagMENUITEMINFOW;
  4985. {$EXTERNALSYM MENUITEMINFOW}
  4986. TMenuItemInfoW = MENUITEMINFOW;
  4987. PMenuItemInfoW = LPMENUITEMINFOW;
  4988. LPCMENUITEMINFOA = ^MENUITEMINFOA;
  4989. {$EXTERNALSYM LPCMENUITEMINFOA}
  4990. LPCMENUITEMINFOW = ^MENUITEMINFOW;
  4991. {$EXTERNALSYM LPCMENUITEMINFOW}
  4992. {$IFDEF UNICODE}
  4993. MENUITEMINFO = MENUITEMINFOW;
  4994. {$EXTERNALSYM MENUITEMINFO}
  4995. LPMENUITEMINFO = LPMENUITEMINFOW;
  4996. {$EXTERNALSYM LPMENUITEMINFO}
  4997. TMenuItemInfo = TMenuItemInfoW;
  4998. PMenuItemInfo = PMenuItemInfoW;
  4999. LPCMENUITEMINFO = LPCMENUITEMINFOW;
  5000. {$EXTERNALSYM LPCMENUITEMINFO}
  5001. {$ELSE}
  5002. MENUITEMINFO = MENUITEMINFOA;
  5003. {$EXTERNALSYM MENUITEMINFO}
  5004. LPMENUITEMINFO = LPMENUITEMINFOA;
  5005. {$EXTERNALSYM LPMENUITEMINFO}
  5006. TMenuItemInfo = TMenuItemInfoA;
  5007. PMenuItemInfo = PMenuItemInfoA;
  5008. LPCMENUITEMINFO = LPCMENUITEMINFOA;
  5009. {$EXTERNALSYM LPCMENUITEMINFO}
  5010. {$ENDIF UNICODE}
  5011. function InsertMenuItemA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5012. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5013. {$EXTERNALSYM InsertMenuItemA}
  5014. function InsertMenuItemW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5015. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5016. {$EXTERNALSYM InsertMenuItemW}
  5017. function InsertMenuItem(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5018. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5019. {$EXTERNALSYM InsertMenuItem}
  5020. function GetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5021. var lpmii: MENUITEMINFOA): BOOL; stdcall;
  5022. {$EXTERNALSYM GetMenuItemInfoA}
  5023. function GetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5024. var lpmii: MENUITEMINFOW): BOOL; stdcall;
  5025. {$EXTERNALSYM GetMenuItemInfoW}
  5026. function GetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5027. var lpmii: MENUITEMINFO): BOOL; stdcall;
  5028. {$EXTERNALSYM GetMenuItemInfo}
  5029. function SetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5030. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5031. {$EXTERNALSYM SetMenuItemInfoA}
  5032. function SetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5033. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5034. {$EXTERNALSYM SetMenuItemInfoW}
  5035. function SetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5036. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5037. {$EXTERNALSYM SetMenuItemInfo}
  5038. const
  5039. GMDI_USEDISABLED = $0001;
  5040. {$EXTERNALSYM GMDI_USEDISABLED}
  5041. GMDI_GOINTOPOPUPS = $0002;
  5042. {$EXTERNALSYM GMDI_GOINTOPOPUPS}
  5043. function GetMenuDefaultItem(hMenu: HMENU; fByPos, gmdiFlags: UINT): UINT; stdcall;
  5044. {$EXTERNALSYM GetMenuDefaultItem}
  5045. function SetMenuDefaultItem(hMenu: HMENU; uItem, fByPos: UINT): BOOL; stdcall;
  5046. {$EXTERNALSYM SetMenuDefaultItem}
  5047. function GetMenuItemRect(hWnd: HWND; hMenu: HMENU; uItem: UINT; var lprcItem: RECT): BOOL; stdcall;
  5048. {$EXTERNALSYM GetMenuItemRect}
  5049. function MenuItemFromPoint(hWnd: HWND; hMenu: HMENU; ptScreen: POINT): Integer; stdcall;
  5050. {$EXTERNALSYM MenuItemFromPoint}
  5051. //
  5052. // Flags for TrackPopupMenu
  5053. //
  5054. const
  5055. TPM_LEFTBUTTON = $0000;
  5056. {$EXTERNALSYM TPM_LEFTBUTTON}
  5057. TPM_RIGHTBUTTON = $0002;
  5058. {$EXTERNALSYM TPM_RIGHTBUTTON}
  5059. TPM_LEFTALIGN = $0000;
  5060. {$EXTERNALSYM TPM_LEFTALIGN}
  5061. TPM_CENTERALIGN = $0004;
  5062. {$EXTERNALSYM TPM_CENTERALIGN}
  5063. TPM_RIGHTALIGN = $0008;
  5064. {$EXTERNALSYM TPM_RIGHTALIGN}
  5065. TPM_TOPALIGN = $0000;
  5066. {$EXTERNALSYM TPM_TOPALIGN}
  5067. TPM_VCENTERALIGN = $0010;
  5068. {$EXTERNALSYM TPM_VCENTERALIGN}
  5069. TPM_BOTTOMALIGN = $0020;
  5070. {$EXTERNALSYM TPM_BOTTOMALIGN}
  5071. TPM_HORIZONTAL = $0000; // Horz alignment matters more
  5072. {$EXTERNALSYM TPM_HORIZONTAL}
  5073. TPM_VERTICAL = $0040; // Vert alignment matters more
  5074. {$EXTERNALSYM TPM_VERTICAL}
  5075. TPM_NONOTIFY = $0080; // Don't send any notification msgs
  5076. {$EXTERNALSYM TPM_NONOTIFY}
  5077. TPM_RETURNCMD = $0100;
  5078. {$EXTERNALSYM TPM_RETURNCMD}
  5079. TPM_RECURSE = $0001;
  5080. {$EXTERNALSYM TPM_RECURSE}
  5081. TPM_HORPOSANIMATION = $0400;
  5082. {$EXTERNALSYM TPM_HORPOSANIMATION}
  5083. TPM_HORNEGANIMATION = $0800;
  5084. {$EXTERNALSYM TPM_HORNEGANIMATION}
  5085. TPM_VERPOSANIMATION = $1000;
  5086. {$EXTERNALSYM TPM_VERPOSANIMATION}
  5087. TPM_VERNEGANIMATION = $2000;
  5088. {$EXTERNALSYM TPM_VERNEGANIMATION}
  5089. TPM_NOANIMATION = $4000;
  5090. {$EXTERNALSYM TPM_NOANIMATION}
  5091. TPM_LAYOUTRTL = $8000;
  5092. {$EXTERNALSYM TPM_LAYOUTRTL}
  5093. //
  5094. // Drag-and-drop support
  5095. // Obsolete - use OLE instead
  5096. //
  5097. type
  5098. LPDROPSTRUCT = ^DROPSTRUCT;
  5099. {$EXTERNALSYM LPDROPSTRUCT}
  5100. tagDROPSTRUCT = record
  5101. hwndSource: HWND;
  5102. hwndSink: HWND;
  5103. wFmt: DWORD;
  5104. dwData: ULONG_PTR;
  5105. ptDrop: POINT;
  5106. dwControlData: DWORD;
  5107. end;
  5108. {$EXTERNALSYM tagDROPSTRUCT}
  5109. DROPSTRUCT = tagDROPSTRUCT;
  5110. {$EXTERNALSYM DROPSTRUCT}
  5111. TDropStruct = DROPSTRUCT;
  5112. PDropStruct = LPDROPSTRUCT;
  5113. const
  5114. DOF_EXECUTABLE = $8001; // wFmt flags
  5115. {$EXTERNALSYM DOF_EXECUTABLE}
  5116. DOF_DOCUMENT = $8002;
  5117. {$EXTERNALSYM DOF_DOCUMENT}
  5118. DOF_DIRECTORY = $8003;
  5119. {$EXTERNALSYM DOF_DIRECTORY}
  5120. DOF_MULTIPLE = $8004;
  5121. {$EXTERNALSYM DOF_MULTIPLE}
  5122. DOF_PROGMAN = $0001;
  5123. {$EXTERNALSYM DOF_PROGMAN}
  5124. DOF_SHELLDATA = $0002;
  5125. {$EXTERNALSYM DOF_SHELLDATA}
  5126. DO_DROPFILE = $454C4946;
  5127. {$EXTERNALSYM DO_DROPFILE}
  5128. DO_PRINTFILE = $544E5250;
  5129. {$EXTERNALSYM DO_PRINTFILE}
  5130. function DragObject(hwnd1, hwnd2: HWND; i: UINT; u: ULONG_PTR; hcursor: HCURSOR): DWORD; stdcall;
  5131. {$EXTERNALSYM DragObject}
  5132. function DragDetect(hwnd: HWND; pt: POINT): BOOL; stdcall;
  5133. {$EXTERNALSYM DragDetect}
  5134. function DrawIcon(hDC: HDC; X, Y: Integer; hIcon: HICON): BOOL; stdcall;
  5135. {$EXTERNALSYM DrawIcon}
  5136. //
  5137. // DrawText() Format Flags
  5138. //
  5139. const
  5140. DT_TOP = $00000000;
  5141. {$EXTERNALSYM DT_TOP}
  5142. DT_LEFT = $00000000;
  5143. {$EXTERNALSYM DT_LEFT}
  5144. DT_CENTER = $00000001;
  5145. {$EXTERNALSYM DT_CENTER}
  5146. DT_RIGHT = $00000002;
  5147. {$EXTERNALSYM DT_RIGHT}
  5148. DT_VCENTER = $00000004;
  5149. {$EXTERNALSYM DT_VCENTER}
  5150. DT_BOTTOM = $00000008;
  5151. {$EXTERNALSYM DT_BOTTOM}
  5152. DT_WORDBREAK = $00000010;
  5153. {$EXTERNALSYM DT_WORDBREAK}
  5154. DT_SINGLELINE = $00000020;
  5155. {$EXTERNALSYM DT_SINGLELINE}
  5156. DT_EXPANDTABS = $00000040;
  5157. {$EXTERNALSYM DT_EXPANDTABS}
  5158. DT_TABSTOP = $00000080;
  5159. {$EXTERNALSYM DT_TABSTOP}
  5160. DT_NOCLIP = $00000100;
  5161. {$EXTERNALSYM DT_NOCLIP}
  5162. DT_EXTERNALLEADING = $00000200;
  5163. {$EXTERNALSYM DT_EXTERNALLEADING}
  5164. DT_CALCRECT = $00000400;
  5165. {$EXTERNALSYM DT_CALCRECT}
  5166. DT_NOPREFIX = $00000800;
  5167. {$EXTERNALSYM DT_NOPREFIX}
  5168. DT_INTERNAL = $00001000;
  5169. {$EXTERNALSYM DT_INTERNAL}
  5170. DT_EDITCONTROL = $00002000;
  5171. {$EXTERNALSYM DT_EDITCONTROL}
  5172. DT_PATH_ELLIPSIS = $00004000;
  5173. {$EXTERNALSYM DT_PATH_ELLIPSIS}
  5174. DT_END_ELLIPSIS = $00008000;
  5175. {$EXTERNALSYM DT_END_ELLIPSIS}
  5176. DT_MODIFYSTRING = $00010000;
  5177. {$EXTERNALSYM DT_MODIFYSTRING}
  5178. DT_RTLREADING = $00020000;
  5179. {$EXTERNALSYM DT_RTLREADING}
  5180. DT_WORD_ELLIPSIS = $00040000;
  5181. {$EXTERNALSYM DT_WORD_ELLIPSIS}
  5182. DT_NOFULLWIDTHCHARBREAK = $00080000;
  5183. {$EXTERNALSYM DT_NOFULLWIDTHCHARBREAK}
  5184. DT_HIDEPREFIX = $00100000;
  5185. {$EXTERNALSYM DT_HIDEPREFIX}
  5186. DT_PREFIXONLY = $00200000;
  5187. {$EXTERNALSYM DT_PREFIXONLY}
  5188. type
  5189. LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
  5190. {$EXTERNALSYM LPDRAWTEXTPARAMS}
  5191. tagDRAWTEXTPARAMS = record
  5192. cbSize: UINT;
  5193. iTabLength: Integer;
  5194. iLeftMargin: Integer;
  5195. iRightMargin: Integer;
  5196. uiLengthDrawn: UINT;
  5197. end;
  5198. {$EXTERNALSYM tagDRAWTEXTPARAMS}
  5199. DRAWTEXTPARAMS = tagDRAWTEXTPARAMS;
  5200. {$EXTERNALSYM DRAWTEXTPARAMS}
  5201. TDrawTextParams = DRAWTEXTPARAMS;
  5202. PDrawTextParams = LPDRAWTEXTPARAMS;
  5203. function DrawTextA(hDC: HDC; lpString: LPCSTR; nCount: Integer;
  5204. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5205. {$EXTERNALSYM DrawTextA}
  5206. function DrawTextW(hDC: HDC; lpString: LPCWSTR; nCount: Integer;
  5207. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5208. {$EXTERNALSYM DrawTextW}
  5209. function DrawText(hDC: HDC; lpString: LPCTSTR; nCount: Integer;
  5210. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5211. {$EXTERNALSYM DrawText}
  5212. function DrawTextExA(hDc: HDC; lpchText: LPSTR; cchText: Integer;
  5213. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5214. {$EXTERNALSYM DrawTextExA}
  5215. function DrawTextExW(hDc: HDC; lpchText: LPWSTR; cchText: Integer;
  5216. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5217. {$EXTERNALSYM DrawTextExW}
  5218. function DrawTextEx(hDc: HDC; lpchText: LPTSTR; cchText: Integer;
  5219. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5220. {$EXTERNALSYM DrawTextEx}
  5221. function GrayStringA(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5222. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5223. {$EXTERNALSYM GrayStringA}
  5224. function GrayStringW(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5225. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5226. {$EXTERNALSYM GrayStringW}
  5227. function GrayString(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5228. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5229. {$EXTERNALSYM GrayString}
  5230. // Monolithic state-drawing routine//
  5231. // Image type//
  5232. const
  5233. DST_COMPLEX = $0000;
  5234. {$EXTERNALSYM DST_COMPLEX}
  5235. DST_TEXT = $0001;
  5236. {$EXTERNALSYM DST_TEXT}
  5237. DST_PREFIXTEXT = $0002;
  5238. {$EXTERNALSYM DST_PREFIXTEXT}
  5239. DST_ICON = $0003;
  5240. {$EXTERNALSYM DST_ICON}
  5241. DST_BITMAP = $0004;
  5242. {$EXTERNALSYM DST_BITMAP}
  5243. // State type//
  5244. DSS_NORMAL = $0000;
  5245. {$EXTERNALSYM DSS_NORMAL}
  5246. DSS_UNION = $0010; // Gray string appearance
  5247. {$EXTERNALSYM DSS_UNION}
  5248. DSS_DISABLED = $0020;
  5249. {$EXTERNALSYM DSS_DISABLED}
  5250. DSS_MONO = $0080;
  5251. {$EXTERNALSYM DSS_MONO}
  5252. DSS_HIDEPREFIX = $0200;
  5253. {$EXTERNALSYM DSS_HIDEPREFIX}
  5254. DSS_PREFIXONLY = $0400;
  5255. {$EXTERNALSYM DSS_PREFIXONLY}
  5256. DSS_RIGHT = $8000;
  5257. {$EXTERNALSYM DSS_RIGHT}
  5258. function DrawStateA(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5259. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5260. {$EXTERNALSYM DrawStateA}
  5261. function DrawStateW(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5262. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5263. {$EXTERNALSYM DrawStateW}
  5264. function DrawState(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5265. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5266. {$EXTERNALSYM DrawState}
  5267. function TabbedTextOutA(hDC: HDC; X, Y: Integer; lpString: LPCSTR; nCount,
  5268. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5269. {$EXTERNALSYM TabbedTextOutA}
  5270. function TabbedTextOutW(hDC: HDC; X, Y: Integer; lpString: LPCWSTR; nCount,
  5271. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5272. {$EXTERNALSYM TabbedTextOutW}
  5273. function TabbedTextOut(hDC: HDC; X, Y: Integer; lpString: LPCTSTR; nCount,
  5274. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5275. {$EXTERNALSYM TabbedTextOut}
  5276. function GetTabbedTextExtentA(hDC: HDC; lpString: LPCSTR; nCount,
  5277. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5278. {$EXTERNALSYM GetTabbedTextExtentA}
  5279. function GetTabbedTextExtentW(hDC: HDC; lpString: LPCWSTR; nCount,
  5280. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5281. {$EXTERNALSYM GetTabbedTextExtentW}
  5282. function GetTabbedTextExtent(hDC: HDC; lpString: LPCTSTR; nCount,
  5283. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5284. {$EXTERNALSYM GetTabbedTextExtent}
  5285. function UpdateWindow(hWnd: HWND): BOOL; stdcall;
  5286. {$EXTERNALSYM UpdateWindow}
  5287. function SetActiveWindow(hWnd: HWND): HWND; stdcall;
  5288. {$EXTERNALSYM SetActiveWindow}
  5289. function GetForegroundWindow: HWND; stdcall;
  5290. {$EXTERNALSYM GetForegroundWindow}
  5291. function PaintDesktop(hdc: HDC): BOOL; stdcall;
  5292. {$EXTERNALSYM PaintDesktop}
  5293. procedure SwitchToThisWindow(hwnd: HWND; fUnknown: BOOL); stdcall;
  5294. {$EXTERNALSYM SwitchToThisWindow}
  5295. function SetForegroundWindow(hWnd: HWND): BOOL; stdcall;
  5296. {$EXTERNALSYM SetForegroundWindow}
  5297. function AllowSetForegroundWindow(dwProcessId: DWORD): BOOL; stdcall;
  5298. {$EXTERNALSYM AllowSetForegroundWindow}
  5299. const
  5300. ASFW_ANY = DWORD(-1);
  5301. {$EXTERNALSYM ASFW_ANY}
  5302. function LockSetForegroundWindow(uLockCode: UINT): BOOL; stdcall;
  5303. {$EXTERNALSYM LockSetForegroundWindow}
  5304. const
  5305. LSFW_LOCK = 1;
  5306. {$EXTERNALSYM LSFW_LOCK}
  5307. LSFW_UNLOCK = 2;
  5308. {$EXTERNALSYM LSFW_UNLOCK}
  5309. function WindowFromDC(hDC: HDC): HWND; stdcall;
  5310. {$EXTERNALSYM WindowFromDC}
  5311. function GetDC(hWnd: HWND): HDC; stdcall;
  5312. {$EXTERNALSYM GetDC}
  5313. function GetDCEx(hWnd: HWND; hrgnClip: HRGN; flags: DWORD): HDC; stdcall;
  5314. {$EXTERNALSYM GetDCEx}
  5315. //
  5316. // GetDCEx() flags
  5317. //
  5318. const
  5319. DCX_WINDOW = $00000001;
  5320. {$EXTERNALSYM DCX_WINDOW}
  5321. DCX_CACHE = $00000002;
  5322. {$EXTERNALSYM DCX_CACHE}
  5323. DCX_NORESETATTRS = $00000004;
  5324. {$EXTERNALSYM DCX_NORESETATTRS}
  5325. DCX_CLIPCHILDREN = $00000008;
  5326. {$EXTERNALSYM DCX_CLIPCHILDREN}
  5327. DCX_CLIPSIBLINGS = $00000010;
  5328. {$EXTERNALSYM DCX_CLIPSIBLINGS}
  5329. DCX_PARENTCLIP = $00000020;
  5330. {$EXTERNALSYM DCX_PARENTCLIP}
  5331. DCX_EXCLUDERGN = $00000040;
  5332. {$EXTERNALSYM DCX_EXCLUDERGN}
  5333. DCX_INTERSECTRGN = $00000080;
  5334. {$EXTERNALSYM DCX_INTERSECTRGN}
  5335. DCX_EXCLUDEUPDATE = $00000100;
  5336. {$EXTERNALSYM DCX_EXCLUDEUPDATE}
  5337. DCX_INTERSECTUPDATE = $00000200;
  5338. {$EXTERNALSYM DCX_INTERSECTUPDATE}
  5339. DCX_LOCKWINDOWUPDATE = $00000400;
  5340. {$EXTERNALSYM DCX_LOCKWINDOWUPDATE}
  5341. DCX_VALIDATE = $00200000;
  5342. {$EXTERNALSYM DCX_VALIDATE}
  5343. function GetWindowDC(hWnd: HWND): HDC; stdcall;
  5344. {$EXTERNALSYM GetWindowDC}
  5345. function ReleaseDC(hWnd: HWND; hDC: HDC): Integer; stdcall;
  5346. {$EXTERNALSYM ReleaseDC}
  5347. function BeginPaint(hWnd: HWND; var lpPaint: PAINTSTRUCT): HDC; stdcall;
  5348. {$EXTERNALSYM BeginPaint}
  5349. function EndPaint(hWnd: HWND; const lpPaint: PAINTSTRUCT): BOOL; stdcall;
  5350. {$EXTERNALSYM EndPaint}
  5351. function GetUpdateRect(hWnd: HWND; var lpRect: RECT; bErase: BOOL): BOOL; stdcall;
  5352. {$EXTERNALSYM GetUpdateRect}
  5353. function GetUpdateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): Integer; stdcall;
  5354. {$EXTERNALSYM GetUpdateRgn}
  5355. function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: BOOL): Integer; stdcall;
  5356. {$EXTERNALSYM SetWindowRgn}
  5357. function GetWindowRgn(hWnd: HWND; hRgn: HRGN): Integer; stdcall;
  5358. {$EXTERNALSYM GetWindowRgn}
  5359. function GetWindowRgnBox(hWnd: HWND; var lprc: RECT): Integer; stdcall;
  5360. {$EXTERNALSYM GetWindowRgnBox}
  5361. function ExcludeUpdateRgn(hDC: HDC; hWnd: HWND): Integer; stdcall;
  5362. {$EXTERNALSYM ExcludeUpdateRgn}
  5363. function InvalidateRect(hWnd: HWND; lpRect: LPRECT; bErase: BOOL): BOOL; stdcall;
  5364. {$EXTERNALSYM InvalidateRect}
  5365. function ValidateRect(hWnd: HWND; lpRect: LPRECT): BOOL; stdcall;
  5366. {$EXTERNALSYM ValidateRect}
  5367. function InvalidateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): BOOL; stdcall;
  5368. {$EXTERNALSYM InvalidateRgn}
  5369. function ValidateRgn(hWnd: HWND; hRgn: HRGN): BOOL; stdcall;
  5370. {$EXTERNALSYM ValidateRgn}
  5371. function RedrawWindow(hWnd: HWND; lprcUpdate: LPRECT; hrgnUpdate: HRGN; flags: UINT): BOOL; stdcall;
  5372. {$EXTERNALSYM RedrawWindow}
  5373. //
  5374. // RedrawWindow() flags
  5375. //
  5376. const
  5377. RDW_INVALIDATE = $0001;
  5378. {$EXTERNALSYM RDW_INVALIDATE}
  5379. RDW_INTERNALPAINT = $0002;
  5380. {$EXTERNALSYM RDW_INTERNALPAINT}
  5381. RDW_ERASE = $0004;
  5382. {$EXTERNALSYM RDW_ERASE}
  5383. RDW_VALIDATE = $0008;
  5384. {$EXTERNALSYM RDW_VALIDATE}
  5385. RDW_NOINTERNALPAINT = $0010;
  5386. {$EXTERNALSYM RDW_NOINTERNALPAINT}
  5387. RDW_NOERASE = $0020;
  5388. {$EXTERNALSYM RDW_NOERASE}
  5389. RDW_NOCHILDREN = $0040;
  5390. {$EXTERNALSYM RDW_NOCHILDREN}
  5391. RDW_ALLCHILDREN = $0080;
  5392. {$EXTERNALSYM RDW_ALLCHILDREN}
  5393. RDW_UPDATENOW = $0100;
  5394. {$EXTERNALSYM RDW_UPDATENOW}
  5395. RDW_ERASENOW = $0200;
  5396. {$EXTERNALSYM RDW_ERASENOW}
  5397. RDW_FRAME = $0400;
  5398. {$EXTERNALSYM RDW_FRAME}
  5399. RDW_NOFRAME = $0800;
  5400. {$EXTERNALSYM RDW_NOFRAME}
  5401. //
  5402. // LockWindowUpdate API
  5403. //
  5404. function LockWindowUpdate(hWndLock: HWND): BOOL; stdcall;
  5405. {$EXTERNALSYM LockWindowUpdate}
  5406. function ScrollWindow(hWnd: HWND; XAmount, YAmount: Integer; lpRect, lpClipRect: LPRECT): BOOL; stdcall;
  5407. {$EXTERNALSYM ScrollWindow}
  5408. function ScrollDC(hDC: HDC; dx, dy: Integer; lprcScroll, lprcClip: LPRECT;
  5409. hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; stdcall;
  5410. {$EXTERNALSYM ScrollDC}
  5411. function ScrollWindowEx(hWnd: HWND; dx, dy: Integer; prcScroll, prcClip: LPRECT;
  5412. hrgnUpdate: HRGN; prcUpdate: LPRECT; flags: UINT): Integer; stdcall;
  5413. {$EXTERNALSYM ScrollWindowEx}
  5414. const
  5415. SW_SCROLLCHILDREN = $0001; // Scroll children within *lprcScroll.
  5416. {$EXTERNALSYM SW_SCROLLCHILDREN}
  5417. SW_INVALIDATE = $0002; // Invalidate after scrolling
  5418. {$EXTERNALSYM SW_INVALIDATE}
  5419. SW_ERASE = $0004; // If SW_INVALIDATE, don't send WM_ERASEBACKGROUND
  5420. {$EXTERNALSYM SW_ERASE}
  5421. SW_SMOOTHSCROLL = $0010; // Use smooth scrolling
  5422. {$EXTERNALSYM SW_SMOOTHSCROLL}
  5423. function SetScrollPos(hWnd: HWND; nBar, nPos: Integer; bRedraw: BOOL): Integer; stdcall;
  5424. {$EXTERNALSYM SetScrollPos}
  5425. function GetScrollPos(hWnd: HWND; nBar: Integer): Integer; stdcall;
  5426. {$EXTERNALSYM GetScrollPos}
  5427. function SetScrollRange(hWnd: HWND; nBar, nMinPos, nMaxPos: Integer; bRedraw: BOOL): BOOL; stdcall;
  5428. {$EXTERNALSYM SetScrollRange}
  5429. function GetScrollRange(hWnd: HWND; nBar: Integer; var lpMinPos, lpMaxPos: Integer): BOOL; stdcall;
  5430. {$EXTERNALSYM GetScrollRange}
  5431. function ShowScrollBar(hWnd: HWND; wBar: Integer; bShow: BOOL): BOOL; stdcall;
  5432. {$EXTERNALSYM ShowScrollBar}
  5433. function EnableScrollBar(hWnd: HWND; wSBflags, wArrows: UINT): BOOL; stdcall;
  5434. {$EXTERNALSYM EnableScrollBar}
  5435. //
  5436. // EnableScrollBar() flags
  5437. //
  5438. const
  5439. ESB_ENABLE_BOTH = $0000;
  5440. {$EXTERNALSYM ESB_ENABLE_BOTH}
  5441. ESB_DISABLE_BOTH = $0003;
  5442. {$EXTERNALSYM ESB_DISABLE_BOTH}
  5443. ESB_DISABLE_LEFT = $0001;
  5444. {$EXTERNALSYM ESB_DISABLE_LEFT}
  5445. ESB_DISABLE_RIGHT = $0002;
  5446. {$EXTERNALSYM ESB_DISABLE_RIGHT}
  5447. ESB_DISABLE_UP = $0001;
  5448. {$EXTERNALSYM ESB_DISABLE_UP}
  5449. ESB_DISABLE_DOWN = $0002;
  5450. {$EXTERNALSYM ESB_DISABLE_DOWN}
  5451. ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
  5452. {$EXTERNALSYM ESB_DISABLE_LTUP}
  5453. ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
  5454. {$EXTERNALSYM ESB_DISABLE_RTDN}
  5455. function SetPropA(hWnd: HWND; lpString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  5456. {$EXTERNALSYM SetPropA}
  5457. function SetPropW(hWnd: HWND; lpString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  5458. {$EXTERNALSYM SetPropW}
  5459. function SetProp(hWnd: HWND; lpString: LPCTSTR; hData: HANDLE): BOOL; stdcall;
  5460. {$EXTERNALSYM SetProp}
  5461. function GetPropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5462. {$EXTERNALSYM GetPropA}
  5463. function GetPropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5464. {$EXTERNALSYM GetPropW}
  5465. function GetProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5466. {$EXTERNALSYM GetProp}
  5467. function RemovePropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5468. {$EXTERNALSYM RemovePropA}
  5469. function RemovePropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5470. {$EXTERNALSYM RemovePropW}
  5471. function RemoveProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5472. {$EXTERNALSYM RemoveProp}
  5473. function EnumPropsExA(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXA; lParam: LPARAM): Integer; stdcall;
  5474. {$EXTERNALSYM EnumPropsExA}
  5475. function EnumPropsExW(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXW; lParam: LPARAM): Integer; stdcall;
  5476. {$EXTERNALSYM EnumPropsExW}
  5477. function EnumPropsEx(hWnd: HWND; lpEnumFunc: PROPENUMPROCEX; lParam: LPARAM): Integer; stdcall;
  5478. {$EXTERNALSYM EnumPropsEx}
  5479. function EnumPropsA(hWnd: HWND; lpEnumFunc: PROPENUMPROCA): Integer; stdcall;
  5480. {$EXTERNALSYM EnumPropsA}
  5481. function EnumPropsW(hWnd: HWND; lpEnumFunc: PROPENUMPROCW): Integer; stdcall;
  5482. {$EXTERNALSYM EnumPropsW}
  5483. function EnumProps(hWnd: HWND; lpEnumFunc: PROPENUMPROC): Integer; stdcall;
  5484. {$EXTERNALSYM EnumProps}
  5485. function SetWindowTextA(hWnd: HWND; lpString: LPCSTR): BOOL; stdcall;
  5486. {$EXTERNALSYM SetWindowTextA}
  5487. function SetWindowTextW(hWnd: HWND; lpString: LPCWSTR): BOOL; stdcall;
  5488. {$EXTERNALSYM SetWindowTextW}
  5489. function SetWindowText(hWnd: HWND; lpString: LPCTSTR): BOOL; stdcall;
  5490. {$EXTERNALSYM SetWindowText}
  5491. function GetWindowTextA(hWnd: HWND; lpString: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5492. {$EXTERNALSYM GetWindowTextA}
  5493. function GetWindowTextW(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5494. {$EXTERNALSYM GetWindowTextW}
  5495. function GetWindowText(hWnd: HWND; lpString: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5496. {$EXTERNALSYM GetWindowText}
  5497. function GetWindowTextLengthA(hWnd: HWND): Integer; stdcall;
  5498. {$EXTERNALSYM GetWindowTextLengthA}
  5499. function GetWindowTextLengthW(hWnd: HWND): Integer; stdcall;
  5500. {$EXTERNALSYM GetWindowTextLengthW}
  5501. function GetWindowTextLength(hWnd: HWND): Integer; stdcall;
  5502. {$EXTERNALSYM GetWindowTextLength}
  5503. function GetClientRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5504. {$EXTERNALSYM GetClientRect}
  5505. function GetWindowRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5506. {$EXTERNALSYM GetWindowRect}
  5507. function AdjustWindowRect(var lpRect: RECT; dwStyle: DWORD; bMenu: BOOL): BOOL; stdcall;
  5508. {$EXTERNALSYM AdjustWindowRect}
  5509. function AdjustWindowRectEx(var lpRect: RECT; dwStyle: DWORD;
  5510. bMenu: BOOL; dwExStyle: DWORD): BOOL; stdcall;
  5511. {$EXTERNALSYM AdjustWindowRectEx}
  5512. const
  5513. HELPINFO_WINDOW = $0001;
  5514. {$EXTERNALSYM HELPINFO_WINDOW}
  5515. HELPINFO_MENUITEM = $0002;
  5516. {$EXTERNALSYM HELPINFO_MENUITEM}
  5517. type
  5518. LPHELPINFO = ^HELPINFO;
  5519. {$EXTERNALSYM LPHELPINFO}
  5520. tagHELPINFO = record // Structure pointed to by lParam of WM_HELP//
  5521. cbSize: UINT; // Size in bytes of this struct //
  5522. iContextType: Integer; // Either HELPINFO_WINDOW or HELPINFO_MENUITEM//
  5523. iCtrlId: Integer; // Control Id or a Menu item Id.//
  5524. hItemHandle: HANDLE; // hWnd of control or hMenu. //
  5525. dwContextId: DWORD_PTR; // Context Id associated with this item//
  5526. MousePos: POINT; // Mouse Position in screen co-ordinates//
  5527. end;
  5528. {$EXTERNALSYM tagHELPINFO}
  5529. HELPINFO = tagHELPINFO;
  5530. {$EXTERNALSYM HELPINFO}
  5531. THelpInfo = HELPINFO;
  5532. PHelpInfo = LPHELPINFO;
  5533. function SetWindowContextHelpId(hwnd: HWND; dwContextHelpId: DWORD): BOOL; stdcall;
  5534. {$EXTERNALSYM SetWindowContextHelpId}
  5535. function GetWindowContextHelpId(hwnd: HWND): DWORD; stdcall;
  5536. {$EXTERNALSYM GetWindowContextHelpId}
  5537. function SetMenuContextHelpId(hmenu: HMENU; dwContextHelpId: DWORD): BOOL; stdcall;
  5538. {$EXTERNALSYM SetMenuContextHelpId}
  5539. function GetMenuContextHelpId(hmenu: HMENU): DWORD; stdcall;
  5540. {$EXTERNALSYM GetMenuContextHelpId}
  5541. //
  5542. // MessageBox() Flags
  5543. //
  5544. const
  5545. MB_OK = $00000000;
  5546. {$EXTERNALSYM MB_OK}
  5547. MB_OKCANCEL = $00000001;
  5548. {$EXTERNALSYM MB_OKCANCEL}
  5549. MB_ABORTRETRYIGNORE = $00000002;
  5550. {$EXTERNALSYM MB_ABORTRETRYIGNORE}
  5551. MB_YESNOCANCEL = $00000003;
  5552. {$EXTERNALSYM MB_YESNOCANCEL}
  5553. MB_YESNO = $00000004;
  5554. {$EXTERNALSYM MB_YESNO}
  5555. MB_RETRYCANCEL = $00000005;
  5556. {$EXTERNALSYM MB_RETRYCANCEL}
  5557. MB_CANCELTRYCONTINUE = $00000006;
  5558. {$EXTERNALSYM MB_CANCELTRYCONTINUE}
  5559. MB_ICONHAND = $00000010;
  5560. {$EXTERNALSYM MB_ICONHAND}
  5561. MB_ICONQUESTION = $00000020;
  5562. {$EXTERNALSYM MB_ICONQUESTION}
  5563. MB_ICONEXCLAMATION = $00000030;
  5564. {$EXTERNALSYM MB_ICONEXCLAMATION}
  5565. MB_ICONASTERISK = $00000040;
  5566. {$EXTERNALSYM MB_ICONASTERISK}
  5567. MB_USERICON = $00000080;
  5568. {$EXTERNALSYM MB_USERICON}
  5569. MB_ICONWARNING = MB_ICONEXCLAMATION;
  5570. {$EXTERNALSYM MB_ICONWARNING}
  5571. MB_ICONERROR = MB_ICONHAND;
  5572. {$EXTERNALSYM MB_ICONERROR}
  5573. MB_ICONINFORMATION = MB_ICONASTERISK;
  5574. {$EXTERNALSYM MB_ICONINFORMATION}
  5575. MB_ICONSTOP = MB_ICONHAND;
  5576. {$EXTERNALSYM MB_ICONSTOP}
  5577. MB_DEFBUTTON1 = $00000000;
  5578. {$EXTERNALSYM MB_DEFBUTTON1}
  5579. MB_DEFBUTTON2 = $00000100;
  5580. {$EXTERNALSYM MB_DEFBUTTON2}
  5581. MB_DEFBUTTON3 = $00000200;
  5582. {$EXTERNALSYM MB_DEFBUTTON3}
  5583. MB_DEFBUTTON4 = $00000300;
  5584. {$EXTERNALSYM MB_DEFBUTTON4}
  5585. MB_APPLMODAL = $00000000;
  5586. {$EXTERNALSYM MB_APPLMODAL}
  5587. MB_SYSTEMMODAL = $00001000;
  5588. {$EXTERNALSYM MB_SYSTEMMODAL}
  5589. MB_TASKMODAL = $00002000;
  5590. {$EXTERNALSYM MB_TASKMODAL}
  5591. MB_HELP = $00004000; // Help Button
  5592. {$EXTERNALSYM MB_HELP}
  5593. MB_NOFOCUS = $00008000;
  5594. {$EXTERNALSYM MB_NOFOCUS}
  5595. MB_SETFOREGROUND = $00010000;
  5596. {$EXTERNALSYM MB_SETFOREGROUND}
  5597. MB_DEFAULT_DESKTOP_ONLY = $00020000;
  5598. {$EXTERNALSYM MB_DEFAULT_DESKTOP_ONLY}
  5599. MB_TOPMOST = $00040000;
  5600. {$EXTERNALSYM MB_TOPMOST}
  5601. MB_RIGHT = $00080000;
  5602. {$EXTERNALSYM MB_RIGHT}
  5603. MB_RTLREADING = $00100000;
  5604. {$EXTERNALSYM MB_RTLREADING}
  5605. const
  5606. {$IFDEF WINNT4_UP}
  5607. MB_SERVICE_NOTIFICATION = $00200000;
  5608. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5609. {$ELSE}
  5610. MB_SERVICE_NOTIFICATION = $00040000;
  5611. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5612. {$ENDIF WINNT4_UP}
  5613. MB_TYPEMASK = $0000000F;
  5614. {$EXTERNALSYM MB_TYPEMASK}
  5615. MB_ICONMASK = $000000F0;
  5616. {$EXTERNALSYM MB_ICONMASK}
  5617. MB_DEFMASK = $00000F00;
  5618. {$EXTERNALSYM MB_DEFMASK}
  5619. MB_MODEMASK = $00003000;
  5620. {$EXTERNALSYM MB_MODEMASK}
  5621. MB_MISCMASK = $0000C000;
  5622. {$EXTERNALSYM MB_MISCMASK}
  5623. function MessageBoxA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT): Integer; stdcall;
  5624. {$EXTERNALSYM MessageBoxA}
  5625. function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
  5626. {$EXTERNALSYM MessageBoxW}
  5627. function MessageBox(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT): Integer; stdcall;
  5628. {$EXTERNALSYM MessageBox}
  5629. function MessageBoxExA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT;
  5630. wLanguageId: WORD): Integer; stdcall;
  5631. {$EXTERNALSYM MessageBoxExA}
  5632. function MessageBoxExW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT;
  5633. wLanguageId: WORD): Integer; stdcall;
  5634. {$EXTERNALSYM MessageBoxExW}
  5635. function MessageBoxEx(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT;
  5636. wLanguageId: WORD): Integer; stdcall;
  5637. {$EXTERNALSYM MessageBoxEx}
  5638. type
  5639. MSGBOXCALLBACK = procedure(var lpHelpInfo: HELPINFO); stdcall;
  5640. {$EXTERNALSYM MSGBOXCALLBACK}
  5641. TMsgBoxCallback = MSGBOXCALLBACK;
  5642. LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;
  5643. {$EXTERNALSYM LPMSGBOXPARAMSA}
  5644. tagMSGBOXPARAMSA = record
  5645. cbSize: UINT;
  5646. hwndOwner: HWND;
  5647. hInstance: HINST;
  5648. lpszText: LPCSTR;
  5649. lpszCaption: LPCSTR;
  5650. dwStyle: DWORD;
  5651. lpszIcon: LPCSTR;
  5652. dwContextHelpId: DWORD_PTR;
  5653. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5654. dwLanguageId: DWORD;
  5655. end;
  5656. {$EXTERNALSYM tagMSGBOXPARAMSA}
  5657. MSGBOXPARAMSA = tagMSGBOXPARAMSA;
  5658. {$EXTERNALSYM MSGBOXPARAMSA}
  5659. TMsgBoxParamsA = MSGBOXPARAMSA;
  5660. PMsgBoxParamsA = LPMSGBOXPARAMSA;
  5661. LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;
  5662. {$EXTERNALSYM LPMSGBOXPARAMSW}
  5663. tagMSGBOXPARAMSW = record
  5664. cbSize: UINT;
  5665. hwndOwner: HWND;
  5666. hInstance: HINST;
  5667. lpszText: LPCWSTR;
  5668. lpszCaption: LPCWSTR;
  5669. dwStyle: DWORD;
  5670. lpszIcon: LPCWSTR;
  5671. dwContextHelpId: DWORD_PTR;
  5672. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5673. dwLanguageId: DWORD;
  5674. end;
  5675. {$EXTERNALSYM tagMSGBOXPARAMSW}
  5676. MSGBOXPARAMSW = tagMSGBOXPARAMSW;
  5677. {$EXTERNALSYM MSGBOXPARAMSW}
  5678. TMsgBoxParamsW = MSGBOXPARAMSW;
  5679. PMsgBoxParamsW = LPMSGBOXPARAMSW;
  5680. {$IFDEF UNICODE}
  5681. MSGBOXPARAMS = MSGBOXPARAMSW;
  5682. {$EXTERNALSYM MSGBOXPARAMS}
  5683. LPMSGBOXPARAMS = LPMSGBOXPARAMSW;
  5684. {$EXTERNALSYM LPMSGBOXPARAMS}
  5685. TMsgBoxParams = TMsgBoxParamsW;
  5686. PMsgBoxParams = PMsgBoxParamsW;
  5687. {$ELSE}
  5688. MSGBOXPARAMS = MSGBOXPARAMSA;
  5689. {$EXTERNALSYM MSGBOXPARAMS}
  5690. LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
  5691. {$EXTERNALSYM LPMSGBOXPARAMS}
  5692. TMsgBoxParams = TMsgBoxParamsA;
  5693. PMsgBoxParams = PMsgBoxParamsA;
  5694. {$ENDIF UNICODE}
  5695. function MessageBoxIndirectA(const lpMsgBoxParams: MSGBOXPARAMSA): Integer; stdcall;
  5696. {$EXTERNALSYM MessageBoxIndirectA}
  5697. function MessageBoxIndirectW(const lpMsgBoxParams: MSGBOXPARAMSW): Integer; stdcall;
  5698. {$EXTERNALSYM MessageBoxIndirectW}
  5699. function MessageBoxIndirect(const lpMsgBoxParams: MSGBOXPARAMS): Integer; stdcall;
  5700. {$EXTERNALSYM MessageBoxIndirect}
  5701. function MessageBeep(uType: UINT): BOOL; stdcall;
  5702. {$EXTERNALSYM MessageBeep}
  5703. function ShowCursor(bShow: BOOL): Integer; stdcall;
  5704. {$EXTERNALSYM ShowCursor}
  5705. function SetCursorPos(X, Y: Integer): BOOL; stdcall;
  5706. {$EXTERNALSYM SetCursorPos}
  5707. function SetCursor(hCursor: HCURSOR): HCURSOR; stdcall;
  5708. {$EXTERNALSYM SetCursor}
  5709. function GetCursorPos(var lpPoint: POINT): BOOL; stdcall;
  5710. {$EXTERNALSYM GetCursorPos}
  5711. function ClipCursor(lpRect: LPRECT): BOOL; stdcall;
  5712. {$EXTERNALSYM ClipCursor}
  5713. function GetClipCursor(var lpRect: RECT): BOOL; stdcall;
  5714. {$EXTERNALSYM GetClipCursor}
  5715. function GetCursor: HCURSOR; stdcall;
  5716. {$EXTERNALSYM GetCursor}
  5717. function CreateCaret(hWnd: HWND; hBitmap: HBITMAP; nWidth, nHeight: Integer): BOOL; stdcall;
  5718. {$EXTERNALSYM CreateCaret}
  5719. function GetCaretBlinkTime: UINT; stdcall;
  5720. {$EXTERNALSYM GetCaretBlinkTime}
  5721. function SetCaretBlinkTime(uMSeconds: UINT): BOOL; stdcall;
  5722. {$EXTERNALSYM SetCaretBlinkTime}
  5723. function DestroyCaret: BOOL; stdcall;
  5724. {$EXTERNALSYM DestroyCaret}
  5725. function HideCaret(hWnd: HWND): BOOL; stdcall;
  5726. {$EXTERNALSYM HideCaret}
  5727. function ShowCaret(hWnd: HWND): BOOL; stdcall;
  5728. {$EXTERNALSYM ShowCaret}
  5729. function SetCaretPos(X, Y: Integer): BOOL; stdcall;
  5730. {$EXTERNALSYM SetCaretPos}
  5731. function GetCaretPos(var lpPoint: POINT): BOOL; stdcall;
  5732. {$EXTERNALSYM GetCaretPos}
  5733. function ClientToScreen(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5734. {$EXTERNALSYM ClientToScreen}
  5735. function ScreenToClient(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5736. {$EXTERNALSYM ScreenToClient}
  5737. function MapWindowPoints(hWndFrom, hWndTo: HWND; lpPoints: LPPOINT; cPoints: UINT): Integer; stdcall;
  5738. {$EXTERNALSYM MapWindowPoints}
  5739. function WindowFromPoint(Point: POINT): HWND; stdcall;
  5740. {$EXTERNALSYM WindowFromPoint}
  5741. function ChildWindowFromPoint(hWndParent: HWND; Point: POINT): HWND; stdcall;
  5742. {$EXTERNALSYM ChildWindowFromPoint}
  5743. const
  5744. CWP_ALL = $0000;
  5745. {$EXTERNALSYM CWP_ALL}
  5746. CWP_SKIPINVISIBLE = $0001;
  5747. {$EXTERNALSYM CWP_SKIPINVISIBLE}
  5748. CWP_SKIPDISABLED = $0002;
  5749. {$EXTERNALSYM CWP_SKIPDISABLED}
  5750. CWP_SKIPTRANSPARENT = $0004;
  5751. {$EXTERNALSYM CWP_SKIPTRANSPARENT}
  5752. function ChildWindowFromPointEx(hwndParent: HWND; pt: POINT; uFlags: UINT): HWND; stdcall;
  5753. {$EXTERNALSYM ChildWindowFromPointEx}
  5754. //
  5755. // Color Types
  5756. //
  5757. const
  5758. CTLCOLOR_MSGBOX = 0;
  5759. {$EXTERNALSYM CTLCOLOR_MSGBOX}
  5760. CTLCOLOR_EDIT = 1;
  5761. {$EXTERNALSYM CTLCOLOR_EDIT}
  5762. CTLCOLOR_LISTBOX = 2;
  5763. {$EXTERNALSYM CTLCOLOR_LISTBOX}
  5764. CTLCOLOR_BTN = 3;
  5765. {$EXTERNALSYM CTLCOLOR_BTN}
  5766. CTLCOLOR_DLG = 4;
  5767. {$EXTERNALSYM CTLCOLOR_DLG}
  5768. CTLCOLOR_SCROLLBAR = 5;
  5769. {$EXTERNALSYM CTLCOLOR_SCROLLBAR}
  5770. CTLCOLOR_STATIC = 6;
  5771. {$EXTERNALSYM CTLCOLOR_STATIC}
  5772. CTLCOLOR_MAX = 7;
  5773. {$EXTERNALSYM CTLCOLOR_MAX}
  5774. COLOR_SCROLLBAR = 0;
  5775. {$EXTERNALSYM COLOR_SCROLLBAR}
  5776. COLOR_BACKGROUND = 1;
  5777. {$EXTERNALSYM COLOR_BACKGROUND}
  5778. COLOR_ACTIVECAPTION = 2;
  5779. {$EXTERNALSYM COLOR_ACTIVECAPTION}
  5780. COLOR_INACTIVECAPTION = 3;
  5781. {$EXTERNALSYM COLOR_INACTIVECAPTION}
  5782. COLOR_MENU = 4;
  5783. {$EXTERNALSYM COLOR_MENU}
  5784. COLOR_WINDOW = 5;
  5785. {$EXTERNALSYM COLOR_WINDOW}
  5786. COLOR_WINDOWFRAME = 6;
  5787. {$EXTERNALSYM COLOR_WINDOWFRAME}
  5788. COLOR_MENUTEXT = 7;
  5789. {$EXTERNALSYM COLOR_MENUTEXT}
  5790. COLOR_WINDOWTEXT = 8;
  5791. {$EXTERNALSYM COLOR_WINDOWTEXT}
  5792. COLOR_CAPTIONTEXT = 9;
  5793. {$EXTERNALSYM COLOR_CAPTIONTEXT}
  5794. COLOR_ACTIVEBORDER = 10;
  5795. {$EXTERNALSYM COLOR_ACTIVEBORDER}
  5796. COLOR_INACTIVEBORDER = 11;
  5797. {$EXTERNALSYM COLOR_INACTIVEBORDER}
  5798. COLOR_APPWORKSPACE = 12;
  5799. {$EXTERNALSYM COLOR_APPWORKSPACE}
  5800. COLOR_HIGHLIGHT = 13;
  5801. {$EXTERNALSYM COLOR_HIGHLIGHT}
  5802. COLOR_HIGHLIGHTTEXT = 14;
  5803. {$EXTERNALSYM COLOR_HIGHLIGHTTEXT}
  5804. COLOR_BTNFACE = 15;
  5805. {$EXTERNALSYM COLOR_BTNFACE}
  5806. COLOR_BTNSHADOW = 16;
  5807. {$EXTERNALSYM COLOR_BTNSHADOW}
  5808. COLOR_GRAYTEXT = 17;
  5809. {$EXTERNALSYM COLOR_GRAYTEXT}
  5810. COLOR_BTNTEXT = 18;
  5811. {$EXTERNALSYM COLOR_BTNTEXT}
  5812. COLOR_INACTIVECAPTIONTEXT = 19;
  5813. {$EXTERNALSYM COLOR_INACTIVECAPTIONTEXT}
  5814. COLOR_BTNHIGHLIGHT = 20;
  5815. {$EXTERNALSYM COLOR_BTNHIGHLIGHT}
  5816. COLOR_3DDKSHADOW = 21;
  5817. {$EXTERNALSYM COLOR_3DDKSHADOW}
  5818. COLOR_3DLIGHT = 22;
  5819. {$EXTERNALSYM COLOR_3DLIGHT}
  5820. COLOR_INFOTEXT = 23;
  5821. {$EXTERNALSYM COLOR_INFOTEXT}
  5822. COLOR_INFOBK = 24;
  5823. {$EXTERNALSYM COLOR_INFOBK}
  5824. COLOR_HOTLIGHT = 26;
  5825. {$EXTERNALSYM COLOR_HOTLIGHT}
  5826. COLOR_GRADIENTACTIVECAPTION = 27;
  5827. {$EXTERNALSYM COLOR_GRADIENTACTIVECAPTION}
  5828. COLOR_GRADIENTINACTIVECAPTION = 28;
  5829. {$EXTERNALSYM COLOR_GRADIENTINACTIVECAPTION}
  5830. COLOR_MENUHILIGHT = 29;
  5831. {$EXTERNALSYM COLOR_MENUHILIGHT}
  5832. COLOR_MENUBAR = 30;
  5833. {$EXTERNALSYM COLOR_MENUBAR}
  5834. COLOR_DESKTOP = COLOR_BACKGROUND;
  5835. {$EXTERNALSYM COLOR_DESKTOP}
  5836. COLOR_3DFACE = COLOR_BTNFACE;
  5837. {$EXTERNALSYM COLOR_3DFACE}
  5838. COLOR_3DSHADOW = COLOR_BTNSHADOW;
  5839. {$EXTERNALSYM COLOR_3DSHADOW}
  5840. COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT;
  5841. {$EXTERNALSYM COLOR_3DHIGHLIGHT}
  5842. COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT;
  5843. {$EXTERNALSYM COLOR_3DHILIGHT}
  5844. COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT;
  5845. {$EXTERNALSYM COLOR_BTNHILIGHT}
  5846. function GetSysColor(nIndex: Integer): DWORD; stdcall;
  5847. {$EXTERNALSYM GetSysColor}
  5848. function GetSysColorBrush(nIndex: Integer): HBRUSH; stdcall;
  5849. {$EXTERNALSYM GetSysColorBrush}
  5850. function SetSysColors(cElements: Integer; lpaElements: LPINT;
  5851. lpaRgbValues: LPCOLORREF): BOOL; stdcall;
  5852. {$EXTERNALSYM SetSysColors}
  5853. function DrawFocusRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5854. {$EXTERNALSYM DrawFocusRect}
  5855. function FillRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5856. {$EXTERNALSYM FillRect}
  5857. function FrameRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5858. {$EXTERNALSYM FrameRect}
  5859. function InvertRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5860. {$EXTERNALSYM InvertRect}
  5861. function SetRect(var lprc: RECT; xLeft, yTop, xRight, yBottom: Integer): BOOL; stdcall;
  5862. {$EXTERNALSYM SetRect}
  5863. function SetRectEmpty(var lprc: RECT): BOOL; stdcall;
  5864. {$EXTERNALSYM SetRectEmpty}
  5865. function CopyRect(var lprcDst: RECT; const lprcSrc: RECT): BOOL; stdcall;
  5866. {$EXTERNALSYM CopyRect}
  5867. function InflateRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5868. {$EXTERNALSYM InflateRect}
  5869. function IntersectRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5870. {$EXTERNALSYM IntersectRect}
  5871. function UnionRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5872. {$EXTERNALSYM UnionRect}
  5873. function SubtractRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5874. {$EXTERNALSYM SubtractRect}
  5875. function OffsetRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5876. {$EXTERNALSYM OffsetRect}
  5877. function IsRectEmpty(const lprc: RECT): BOOL; stdcall;
  5878. {$EXTERNALSYM IsRectEmpty}
  5879. function EqualRect(const lprc1, lprc2: RECT): BOOL; stdcall;
  5880. {$EXTERNALSYM EqualRect}
  5881. function PtInRect(const lprc: RECT; pt: POINT): BOOL; stdcall;
  5882. {$EXTERNALSYM PtInRect}
  5883. function GetWindowWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5884. {$EXTERNALSYM GetWindowWord}
  5885. function SetWindowWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5886. {$EXTERNALSYM SetWindowWord}
  5887. function GetWindowLongA(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5888. {$EXTERNALSYM GetWindowLongA}
  5889. function GetWindowLongW(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5890. {$EXTERNALSYM GetWindowLongW}
  5891. function GetWindowLong(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5892. {$EXTERNALSYM GetWindowLong}
  5893. function SetWindowLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5894. {$EXTERNALSYM SetWindowLongA}
  5895. function SetWindowLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5896. {$EXTERNALSYM SetWindowLongW}
  5897. function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5898. {$EXTERNALSYM SetWindowLong}
  5899. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5900. {$EXTERNALSYM GetWindowLongPtrA}
  5901. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5902. {$EXTERNALSYM GetWindowLongPtrW}
  5903. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5904. {$EXTERNALSYM GetWindowLongPtr}
  5905. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5906. {$EXTERNALSYM SetWindowLongPtrA}
  5907. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5908. {$EXTERNALSYM SetWindowLongPtrW}
  5909. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5910. {$EXTERNALSYM SetWindowLongPtr}
  5911. function GetClassWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5912. {$EXTERNALSYM GetClassWord}
  5913. function SetClassWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5914. {$EXTERNALSYM SetClassWord}
  5915. function GetClassLongA(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5916. {$EXTERNALSYM GetClassLongA}
  5917. function GetClassLongW(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5918. {$EXTERNALSYM GetClassLongW}
  5919. function GetClassLong(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5920. {$EXTERNALSYM GetClassLong}
  5921. function SetClassLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5922. {$EXTERNALSYM SetClassLongA}
  5923. function SetClassLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5924. {$EXTERNALSYM SetClassLongW}
  5925. function SetClassLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5926. {$EXTERNALSYM SetClassLong}
  5927. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5928. {$EXTERNALSYM GetClassLongPtrA}
  5929. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5930. {$EXTERNALSYM GetClassLongPtrW}
  5931. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5932. {$EXTERNALSYM GetClassLongPtr}
  5933. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5934. {$EXTERNALSYM SetClassLongPtrA}
  5935. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5936. {$EXTERNALSYM SetClassLongPtrW}
  5937. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5938. {$EXTERNALSYM SetClassLongPtr}
  5939. function GetProcessDefaultLayout(var pdwDefaultLayout: DWORD): BOOL; stdcall;
  5940. {$EXTERNALSYM GetProcessDefaultLayout}
  5941. function SetProcessDefaultLayout(dwDefaultLayout: DWORD): BOOL; stdcall;
  5942. {$EXTERNALSYM SetProcessDefaultLayout}
  5943. function GetDesktopWindow: HWND; stdcall;
  5944. {$EXTERNALSYM GetDesktopWindow}
  5945. function GetParent(hWnd: HWND): HWND; stdcall;
  5946. {$EXTERNALSYM GetParent}
  5947. function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;
  5948. {$EXTERNALSYM SetParent}
  5949. function EnumChildWindows(hWndParent: HWND; lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5950. {$EXTERNALSYM EnumChildWindows}
  5951. function FindWindowA(lpClassName, lpWindowName: LPCSTR): HWND; stdcall;
  5952. {$EXTERNALSYM FindWindowA}
  5953. function FindWindowW(lpClassName, lpWindowName: LPCWSTR): HWND; stdcall;
  5954. {$EXTERNALSYM FindWindowW}
  5955. function FindWindow(lpClassName, lpWindowName: LPCTSTR): HWND; stdcall;
  5956. {$EXTERNALSYM FindWindow}
  5957. function FindWindowExA(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCSTR): HWND; stdcall;
  5958. {$EXTERNALSYM FindWindowExA}
  5959. function FindWindowExW(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCWSTR): HWND; stdcall;
  5960. {$EXTERNALSYM FindWindowExW}
  5961. function FindWindowEx(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCTSTR): HWND; stdcall;
  5962. {$EXTERNALSYM FindWindowEx}
  5963. function GetShellWindow: HWND; stdcall;
  5964. {$EXTERNALSYM GetShellWindow}
  5965. function RegisterShellHookWindow(h: HWND): BOOL; stdcall;
  5966. {$EXTERNALSYM RegisterShellHookWindow}
  5967. function DeregisterShellHookWindow(h: HWND): BOOL; stdcall;
  5968. {$EXTERNALSYM DeregisterShellHookWindow}
  5969. function EnumWindows(lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5970. {$EXTERNALSYM EnumWindows}
  5971. function EnumThreadWindows(dwThreadId: DWORD; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5972. {$EXTERNALSYM EnumThreadWindows}
  5973. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  5974. {$EXTERNALSYM EnumTaskWindows}
  5975. function GetClassNameA(hWnd: HWND; lpClassName: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5976. {$EXTERNALSYM GetClassNameA}
  5977. function GetClassNameW(hWnd: HWND; lpClassName: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5978. {$EXTERNALSYM GetClassNameW}
  5979. function GetClassName(hWnd: HWND; lpClassName: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5980. {$EXTERNALSYM GetClassName}
  5981. function GetTopWindow(hWnd: HWND): HWND; stdcall;
  5982. {$EXTERNALSYM GetTopWindow}
  5983. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  5984. {$EXTERNALSYM GetNextWindow}
  5985. function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: LPDWORD): DWORD; stdcall;
  5986. {$EXTERNALSYM GetWindowThreadProcessId}
  5987. function IsGUIThread(bConvert: BOOL): BOOL; stdcall;
  5988. {$EXTERNALSYM IsGUIThread}
  5989. function GetWindowTask(hWnd: HWND): HANDLE;
  5990. {$EXTERNALSYM GetWindowTask}
  5991. function GetLastActivePopup(hWnd: HWND): HWND; stdcall;
  5992. {$EXTERNALSYM GetLastActivePopup}
  5993. //
  5994. // GetWindow() Constants
  5995. //
  5996. const
  5997. GW_HWNDFIRST = 0;
  5998. {$EXTERNALSYM GW_HWNDFIRST}
  5999. GW_HWNDLAST = 1;
  6000. {$EXTERNALSYM GW_HWNDLAST}
  6001. GW_HWNDNEXT = 2;
  6002. {$EXTERNALSYM GW_HWNDNEXT}
  6003. GW_HWNDPREV = 3;
  6004. {$EXTERNALSYM GW_HWNDPREV}
  6005. GW_OWNER = 4;
  6006. {$EXTERNALSYM GW_OWNER}
  6007. GW_CHILD = 5;
  6008. {$EXTERNALSYM GW_CHILD}
  6009. {$IFNDEF WIN98_UP} // #if(WINVER <= 0x0400)
  6010. GW_MAX = 5;
  6011. {$EXTERNALSYM GW_MAX}
  6012. {$ELSE}
  6013. GW_ENABLEDPOPUP = 6;
  6014. {$EXTERNALSYM GW_ENABLEDPOPUP}
  6015. GW_MAX = 6;
  6016. {$EXTERNALSYM GW_MAX}
  6017. {$ENDIF WIN98ME_UP}
  6018. function GetWindow(hWnd: HWND; uCmd: UINT): HWND; stdcall;
  6019. {$EXTERNALSYM GetWindow}
  6020. function SetWindowsHookA(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6021. {$EXTERNALSYM SetWindowsHookA}
  6022. function SetWindowsHookW(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6023. {$EXTERNALSYM SetWindowsHookW}
  6024. function SetWindowsHook(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6025. {$EXTERNALSYM SetWindowsHook}
  6026. function UnhookWindowsHook(nCode: Integer; pfnFilterProc: HOOKPROC): BOOL; stdcall;
  6027. {$EXTERNALSYM UnhookWindowsHook}
  6028. function SetWindowsHookExA(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6029. dwThreadId: DWORD): HHOOK; stdcall;
  6030. {$EXTERNALSYM SetWindowsHookExA}
  6031. function SetWindowsHookExW(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6032. dwThreadId: DWORD): HHOOK; stdcall;
  6033. {$EXTERNALSYM SetWindowsHookExW}
  6034. function SetWindowsHookEx(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6035. dwThreadId: DWORD): HHOOK; stdcall;
  6036. {$EXTERNALSYM SetWindowsHookEx}
  6037. function UnhookWindowsHookEx(hhk: HHOOK): BOOL; stdcall;
  6038. {$EXTERNALSYM UnhookWindowsHookEx}
  6039. function CallNextHookEx(hhk: HHOOK; nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  6040. {$EXTERNALSYM CallNextHookEx}
  6041. //
  6042. // Macros for source-level compatibility with old functions.
  6043. //
  6044. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  6045. {$EXTERNALSYM DefHookProc}
  6046. // ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags//
  6047. //
  6048. // Menu flags for Add/Check/EnableMenuItem()
  6049. ///)
  6050. const
  6051. MF_INSERT = $00000000;
  6052. {$EXTERNALSYM MF_INSERT}
  6053. MF_CHANGE = $00000080;
  6054. {$EXTERNALSYM MF_CHANGE}
  6055. MF_APPEND = $00000100;
  6056. {$EXTERNALSYM MF_APPEND}
  6057. MF_DELETE = $00000200;
  6058. {$EXTERNALSYM MF_DELETE}
  6059. MF_REMOVE = $00001000;
  6060. {$EXTERNALSYM MF_REMOVE}
  6061. MF_BYCOMMAND = $00000000;
  6062. {$EXTERNALSYM MF_BYCOMMAND}
  6063. MF_BYPOSITION = $00000400;
  6064. {$EXTERNALSYM MF_BYPOSITION}
  6065. MF_SEPARATOR = $00000800;
  6066. {$EXTERNALSYM MF_SEPARATOR}
  6067. MF_ENABLED = $00000000;
  6068. {$EXTERNALSYM MF_ENABLED}
  6069. MF_GRAYED = $00000001;
  6070. {$EXTERNALSYM MF_GRAYED}
  6071. MF_DISABLED = $00000002;
  6072. {$EXTERNALSYM MF_DISABLED}
  6073. MF_UNCHECKED = $00000000;
  6074. {$EXTERNALSYM MF_UNCHECKED}
  6075. MF_CHECKED = $00000008;
  6076. {$EXTERNALSYM MF_CHECKED}
  6077. MF_USECHECKBITMAPS = $00000200;
  6078. {$EXTERNALSYM MF_USECHECKBITMAPS}
  6079. MF_STRING = $00000000;
  6080. {$EXTERNALSYM MF_STRING}
  6081. MF_BITMAP = $00000004;
  6082. {$EXTERNALSYM MF_BITMAP}
  6083. MF_OWNERDRAW = $00000100;
  6084. {$EXTERNALSYM MF_OWNERDRAW}
  6085. MF_POPUP = $00000010;
  6086. {$EXTERNALSYM MF_POPUP}
  6087. MF_MENUBARBREAK = $00000020;
  6088. {$EXTERNALSYM MF_MENUBARBREAK}
  6089. MF_MENUBREAK = $00000040;
  6090. {$EXTERNALSYM MF_MENUBREAK}
  6091. MF_UNHILITE = $00000000;
  6092. {$EXTERNALSYM MF_UNHILITE}
  6093. MF_HILITE = $00000080;
  6094. {$EXTERNALSYM MF_HILITE}
  6095. MF_DEFAULT = $00001000;
  6096. {$EXTERNALSYM MF_DEFAULT}
  6097. MF_SYSMENU = $00002000;
  6098. {$EXTERNALSYM MF_SYSMENU}
  6099. MF_HELP = $00004000;
  6100. {$EXTERNALSYM MF_HELP}
  6101. MF_RIGHTJUSTIFY = $00004000;
  6102. {$EXTERNALSYM MF_RIGHTJUSTIFY}
  6103. MF_MOUSESELECT = $00008000;
  6104. {$EXTERNALSYM MF_MOUSESELECT}
  6105. MF_END = $00000080; // Obsolete -- only used by old RES files
  6106. {$EXTERNALSYM MF_END}
  6107. MFT_STRING = MF_STRING;
  6108. {$EXTERNALSYM MFT_STRING}
  6109. MFT_BITMAP = MF_BITMAP;
  6110. {$EXTERNALSYM MFT_BITMAP}
  6111. MFT_MENUBARBREAK = MF_MENUBARBREAK;
  6112. {$EXTERNALSYM MFT_MENUBARBREAK}
  6113. MFT_MENUBREAK = MF_MENUBREAK;
  6114. {$EXTERNALSYM MFT_MENUBREAK}
  6115. MFT_OWNERDRAW = MF_OWNERDRAW;
  6116. {$EXTERNALSYM MFT_OWNERDRAW}
  6117. MFT_RADIOCHECK = $00000200;
  6118. {$EXTERNALSYM MFT_RADIOCHECK}
  6119. MFT_SEPARATOR = MF_SEPARATOR;
  6120. {$EXTERNALSYM MFT_SEPARATOR}
  6121. MFT_RIGHTORDER = $00002000;
  6122. {$EXTERNALSYM MFT_RIGHTORDER}
  6123. MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY;
  6124. {$EXTERNALSYM MFT_RIGHTJUSTIFY}
  6125. // Menu flags for Add/Check/EnableMenuItem()
  6126. MFS_GRAYED = $00000003;
  6127. {$EXTERNALSYM MFS_GRAYED}
  6128. MFS_DISABLED = MFS_GRAYED;
  6129. {$EXTERNALSYM MFS_DISABLED}
  6130. MFS_CHECKED = MF_CHECKED;
  6131. {$EXTERNALSYM MFS_CHECKED}
  6132. MFS_HILITE = MF_HILITE;
  6133. {$EXTERNALSYM MFS_HILITE}
  6134. MFS_ENABLED = MF_ENABLED;
  6135. {$EXTERNALSYM MFS_ENABLED}
  6136. MFS_UNCHECKED = MF_UNCHECKED;
  6137. {$EXTERNALSYM MFS_UNCHECKED}
  6138. MFS_UNHILITE = MF_UNHILITE;
  6139. {$EXTERNALSYM MFS_UNHILITE}
  6140. MFS_DEFAULT = MF_DEFAULT;
  6141. {$EXTERNALSYM MFS_DEFAULT}
  6142. function CheckMenuRadioItem(hmenu: HMENU; idFirst, idLast, idCheck, uFlags: UINT): BOOL; stdcall;
  6143. {$EXTERNALSYM CheckMenuRadioItem}
  6144. //
  6145. // Menu item resource format
  6146. //
  6147. type
  6148. PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
  6149. MENUITEMTEMPLATEHEADER = record
  6150. versionNumber: WORD;
  6151. offset: WORD;
  6152. end;
  6153. {$EXTERNALSYM MENUITEMTEMPLATEHEADER}
  6154. TMenuItemTemplateHeader = MENUITEMTEMPLATEHEADER;
  6155. PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; // version 0
  6156. MENUITEMTEMPLATE = record
  6157. mtOption: WORD;
  6158. mtID: WORD;
  6159. mtString: array [0..0] of WCHAR;
  6160. end;
  6161. {$EXTERNALSYM MENUITEMTEMPLATE}
  6162. TMenuItemTemplate = MENUITEMTEMPLATE;
  6163. //
  6164. // System Menu Command Values
  6165. //
  6166. const
  6167. SC_SIZE = $F000;
  6168. {$EXTERNALSYM SC_SIZE}
  6169. SC_MOVE = $F010;
  6170. {$EXTERNALSYM SC_MOVE}
  6171. SC_MINIMIZE = $F020;
  6172. {$EXTERNALSYM SC_MINIMIZE}
  6173. SC_MAXIMIZE = $F030;
  6174. {$EXTERNALSYM SC_MAXIMIZE}
  6175. SC_NEXTWINDOW = $F040;
  6176. {$EXTERNALSYM SC_NEXTWINDOW}
  6177. SC_PREVWINDOW = $F050;
  6178. {$EXTERNALSYM SC_PREVWINDOW}
  6179. SC_CLOSE = $F060;
  6180. {$EXTERNALSYM SC_CLOSE}
  6181. SC_VSCROLL = $F070;
  6182. {$EXTERNALSYM SC_VSCROLL}
  6183. SC_HSCROLL = $F080;
  6184. {$EXTERNALSYM SC_HSCROLL}
  6185. SC_MOUSEMENU = $F090;
  6186. {$EXTERNALSYM SC_MOUSEMENU}
  6187. SC_KEYMENU = $F100;
  6188. {$EXTERNALSYM SC_KEYMENU}
  6189. SC_ARRANGE = $F110;
  6190. {$EXTERNALSYM SC_ARRANGE}
  6191. SC_RESTORE = $F120;
  6192. {$EXTERNALSYM SC_RESTORE}
  6193. SC_TASKLIST = $F130;
  6194. {$EXTERNALSYM SC_TASKLIST}
  6195. SC_SCREENSAVE = $F140;
  6196. {$EXTERNALSYM SC_SCREENSAVE}
  6197. SC_HOTKEY = $F150;
  6198. {$EXTERNALSYM SC_HOTKEY}
  6199. SC_DEFAULT = $F160;
  6200. {$EXTERNALSYM SC_DEFAULT}
  6201. SC_MONITORPOWER = $F170;
  6202. {$EXTERNALSYM SC_MONITORPOWER}
  6203. SC_CONTEXTHELP = $F180;
  6204. {$EXTERNALSYM SC_CONTEXTHELP}
  6205. SC_SEPARATOR = $F00F;
  6206. {$EXTERNALSYM SC_SEPARATOR}
  6207. //
  6208. // Obsolete names
  6209. //
  6210. const
  6211. SC_ICON = SC_MINIMIZE;
  6212. {$EXTERNALSYM SC_ICON}
  6213. SC_ZOOM = SC_MAXIMIZE;
  6214. {$EXTERNALSYM SC_ZOOM}
  6215. //
  6216. // Resource Loading Routines
  6217. //
  6218. function LoadBitmapA(hInstance: HINST; lpBitmapName: LPCSTR): HBITMAP; stdcall;
  6219. {$EXTERNALSYM LoadBitmapA}
  6220. function LoadBitmapW(hInstance: HINST; lpBitmapName: LPCWSTR): HBITMAP; stdcall;
  6221. {$EXTERNALSYM LoadBitmapW}
  6222. function LoadBitmap(hInstance: HINST; lpBitmapName: LPCTSTR): HBITMAP; stdcall;
  6223. {$EXTERNALSYM LoadBitmap}
  6224. function LoadCursorA(hInstance: HINST; lpCursorName: LPCSTR): HCURSOR; stdcall;
  6225. {$EXTERNALSYM LoadCursorA}
  6226. function LoadCursorW(hInstance: HINST; lpCursorName: LPCWSTR): HCURSOR; stdcall;
  6227. {$EXTERNALSYM LoadCursorW}
  6228. function LoadCursor(hInstance: HINST; lpCursorName: LPCTSTR): HCURSOR; stdcall;
  6229. {$EXTERNALSYM LoadCursor}
  6230. function LoadCursorFromFileA(lpFileName: LPCSTR): HCURSOR; stdcall;
  6231. {$EXTERNALSYM LoadCursorFromFileA}
  6232. function LoadCursorFromFileW(lpFileName: LPCWSTR): HCURSOR; stdcall;
  6233. {$EXTERNALSYM LoadCursorFromFileW}
  6234. function LoadCursorFromFile(lpFileName: LPCTSTR): HCURSOR; stdcall;
  6235. {$EXTERNALSYM LoadCursorFromFile}
  6236. function CreateCursor(hInst: HINST; xHotSpot, yHotSpot, nWidth, nHeight: Integer;
  6237. pvANDPlane: PVOID; pvXORPlane: PVOID): HCURSOR; stdcall;
  6238. {$EXTERNALSYM CreateCursor}
  6239. function DestroyCursor(hCursor: HCURSOR): BOOL; stdcall;
  6240. {$EXTERNALSYM DestroyCursor}
  6241. function CopyCursor(pcur: HCURSOR): HCURSOR;
  6242. {$EXTERNALSYM CopyCursor}
  6243. //
  6244. // Standard Cursor IDs
  6245. //
  6246. const
  6247. IDC_ARROW = MAKEINTRESOURCE(32512);
  6248. {$EXTERNALSYM IDC_ARROW}
  6249. IDC_IBEAM = MAKEINTRESOURCE(32513);
  6250. {$EXTERNALSYM IDC_IBEAM}
  6251. IDC_WAIT = MAKEINTRESOURCE(32514);
  6252. {$EXTERNALSYM IDC_WAIT}
  6253. IDC_CROSS = MAKEINTRESOURCE(32515);
  6254. {$EXTERNALSYM IDC_CROSS}
  6255. IDC_UPARROW = MAKEINTRESOURCE(32516);
  6256. {$EXTERNALSYM IDC_UPARROW}
  6257. IDC_SIZE = MAKEINTRESOURCE(32640); // OBSOLETE: use IDC_SIZEALL
  6258. {$EXTERNALSYM IDC_SIZE}
  6259. IDC_ICON = MAKEINTRESOURCE(32641); // OBSOLETE: use IDC_ARROW
  6260. {$EXTERNALSYM IDC_ICON}
  6261. IDC_SIZENWSE = MAKEINTRESOURCE(32642);
  6262. {$EXTERNALSYM IDC_SIZENWSE}
  6263. IDC_SIZENESW = MAKEINTRESOURCE(32643);
  6264. {$EXTERNALSYM IDC_SIZENESW}
  6265. IDC_SIZEWE = MAKEINTRESOURCE(32644);
  6266. {$EXTERNALSYM IDC_SIZEWE}
  6267. IDC_SIZENS = MAKEINTRESOURCE(32645);
  6268. {$EXTERNALSYM IDC_SIZENS}
  6269. IDC_SIZEALL = MAKEINTRESOURCE(32646);
  6270. {$EXTERNALSYM IDC_SIZEALL}
  6271. IDC_NO = MAKEINTRESOURCE(32648); // not in win3.1
  6272. {$EXTERNALSYM IDC_NO}
  6273. IDC_HAND = MAKEINTRESOURCE(32649);
  6274. {$EXTERNALSYM IDC_HAND}
  6275. IDC_APPSTARTING = MAKEINTRESOURCE(32650); // not in win3.1
  6276. {$EXTERNALSYM IDC_APPSTARTING}
  6277. IDC_HELP = MAKEINTRESOURCE(32651);
  6278. {$EXTERNALSYM IDC_HELP}
  6279. function SetSystemCursor(hcur: HCURSOR; id: DWORD): BOOL; stdcall;
  6280. {$EXTERNALSYM SetSystemCursor}
  6281. type
  6282. PICONINFO = ^ICONINFO;
  6283. _ICONINFO = record
  6284. fIcon: BOOL;
  6285. xHotspot: DWORD;
  6286. yHotspot: DWORD;
  6287. hbmMask: HBITMAP;
  6288. hbmColor: HBITMAP;
  6289. end;
  6290. {$EXTERNALSYM _ICONINFO}
  6291. ICONINFO = _ICONINFO;
  6292. {$EXTERNALSYM ICONINFO}
  6293. TIconInfo = ICONINFO;
  6294. function LoadIconA(hInstance: HINST; lpIconName: LPCSTR): HICON; stdcall;
  6295. {$EXTERNALSYM LoadIconA}
  6296. function LoadIconW(hInstance: HINST; lpIconName: LPCWSTR): HICON; stdcall;
  6297. {$EXTERNALSYM LoadIconW}
  6298. function LoadIcon(hInstance: HINST; lpIconName: LPCTSTR): HICON; stdcall;
  6299. {$EXTERNALSYM LoadIcon}
  6300. function PrivateExtractIconsA(szFileName: LPCSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6301. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6302. {$EXTERNALSYM PrivateExtractIconsA}
  6303. function PrivateExtractIconsW(szFileName: LPCWSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6304. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6305. {$EXTERNALSYM PrivateExtractIconsW}
  6306. function PrivateExtractIcons(szFileName: LPCTSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6307. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6308. {$EXTERNALSYM PrivateExtractIcons}
  6309. function CreateIcon(hInstance: HINST; nWidth, nHeight: Integer; cPlanes,
  6310. cBitsPixel: BYTE; lpbANDbits: LPBYTE; lpbXORbits: LPBYTE): HICON; stdcall;
  6311. {$EXTERNALSYM CreateIcon}
  6312. function DestroyIcon(hIcon: HICON): BOOL; stdcall;
  6313. {$EXTERNALSYM DestroyIcon}
  6314. function LookupIconIdFromDirectory(presbits: PBYTE; fIcon: BOOL): Integer; stdcall;
  6315. {$EXTERNALSYM LookupIconIdFromDirectory}
  6316. function LookupIconIdFromDirectoryEx(presbits: PBYTE; fIcon: BOOL;
  6317. cxDesired, cyDesired: Integer; Flags: UINT): Integer; stdcall;
  6318. {$EXTERNALSYM LookupIconIdFromDirectoryEx}
  6319. function CreateIconFromResource(presbits: PBYTE; dwResSize: DWORD;
  6320. fIcon: BOOL; dwVer: DWORD): HICON; stdcall;
  6321. {$EXTERNALSYM CreateIconFromResource}
  6322. function CreateIconFromResourceEx(presbits: PBYTE; dwResSize: DWORD; fIcon: BOOL;
  6323. dwVer: DWORD; cxDesired, cyDesired: Integer; Flags: UINT): HICON; stdcall;
  6324. {$EXTERNALSYM CreateIconFromResourceEx}
  6325. // Icon/Cursor header//
  6326. type
  6327. LPCURSORSHAPE = ^CURSORSHAPE;
  6328. {$EXTERNALSYM LPCURSORSHAPE}
  6329. tagCURSORSHAPE = record
  6330. xHotSpot: Integer;
  6331. yHotSpot: Integer;
  6332. cx: Integer;
  6333. cy: Integer;
  6334. cbWidth: Integer;
  6335. Planes: BYTE;
  6336. BitsPixel: BYTE;
  6337. end;
  6338. {$EXTERNALSYM tagCURSORSHAPE}
  6339. CURSORSHAPE = tagCURSORSHAPE;
  6340. {$EXTERNALSYM CURSORSHAPE}
  6341. TCursorShape = CURSORSHAPE;
  6342. PCursorShape = LPCURSORSHAPE;
  6343. const
  6344. IMAGE_BITMAP = 0;
  6345. {$EXTERNALSYM IMAGE_BITMAP}
  6346. IMAGE_ICON = 1;
  6347. {$EXTERNALSYM IMAGE_ICON}
  6348. IMAGE_CURSOR = 2;
  6349. {$EXTERNALSYM IMAGE_CURSOR}
  6350. IMAGE_ENHMETAFILE = 3;
  6351. {$EXTERNALSYM IMAGE_ENHMETAFILE}
  6352. LR_DEFAULTCOLOR = $0000;
  6353. {$EXTERNALSYM LR_DEFAULTCOLOR}
  6354. LR_MONOCHROME = $0001;
  6355. {$EXTERNALSYM LR_MONOCHROME}
  6356. LR_COLOR = $0002;
  6357. {$EXTERNALSYM LR_COLOR}
  6358. LR_COPYRETURNORG = $0004;
  6359. {$EXTERNALSYM LR_COPYRETURNORG}
  6360. LR_COPYDELETEORG = $0008;
  6361. {$EXTERNALSYM LR_COPYDELETEORG}
  6362. LR_LOADFROMFILE = $0010;
  6363. {$EXTERNALSYM LR_LOADFROMFILE}
  6364. LR_LOADTRANSPARENT = $0020;
  6365. {$EXTERNALSYM LR_LOADTRANSPARENT}
  6366. LR_DEFAULTSIZE = $0040;
  6367. {$EXTERNALSYM LR_DEFAULTSIZE}
  6368. LR_VGACOLOR = $0080;
  6369. {$EXTERNALSYM LR_VGACOLOR}
  6370. LR_LOADMAP3DCOLORS = $1000;
  6371. {$EXTERNALSYM LR_LOADMAP3DCOLORS}
  6372. LR_CREATEDIBSECTION = $2000;
  6373. {$EXTERNALSYM LR_CREATEDIBSECTION}
  6374. LR_COPYFROMRESOURCE = $4000;
  6375. {$EXTERNALSYM LR_COPYFROMRESOURCE}
  6376. LR_SHARED = $8000;
  6377. {$EXTERNALSYM LR_SHARED}
  6378. function LoadImageA(hinst: HINST; lpszName: LPCSTR; uType: UINT;
  6379. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6380. {$EXTERNALSYM LoadImageA}
  6381. function LoadImageW(hinst: HINST; lpszName: LPCWSTR; uType: UINT;
  6382. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6383. {$EXTERNALSYM LoadImageW}
  6384. function LoadImage(hinst: HINST; lpszName: LPCTSTR; uType: UINT;
  6385. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6386. {$EXTERNALSYM LoadImage}
  6387. function CopyImage(hinst: HANDLE; lpszName: UINT; cxDesired, cyDesired: Integer;
  6388. fuFlags: UINT): HANDLE; stdcall;
  6389. {$EXTERNALSYM CopyImage}
  6390. const
  6391. DI_MASK = $0001;
  6392. {$EXTERNALSYM DI_MASK}
  6393. DI_IMAGE = $0002;
  6394. {$EXTERNALSYM DI_IMAGE}
  6395. DI_NORMAL = $0003;
  6396. {$EXTERNALSYM DI_NORMAL}
  6397. DI_COMPAT = $0004;
  6398. {$EXTERNALSYM DI_COMPAT}
  6399. DI_DEFAULTSIZE = $0008;
  6400. {$EXTERNALSYM DI_DEFAULTSIZE}
  6401. DI_NOMIRROR = $0010;
  6402. {$EXTERNALSYM DI_NOMIRROR}
  6403. function DrawIconEx(hdc: HDC; xLeft, yTop: Integer; hIcon: HICON;
  6404. cxWidth, cyWidth: Integer; istepIfAniCur: UINT; hbrFlickerFreeDraw: HBRUSH;
  6405. diFlags: UINT): BOOL; stdcall;
  6406. {$EXTERNALSYM DrawIconEx}
  6407. function CreateIconIndirect(const piconinfo: ICONINFO): HICON; stdcall;
  6408. {$EXTERNALSYM CreateIconIndirect}
  6409. function CopyIcon(hIcon: HICON): HICON; stdcall;
  6410. {$EXTERNALSYM CopyIcon}
  6411. function GetIconInfo(hIcon: HICON; var piconinfo: ICONINFO): BOOL; stdcall;
  6412. {$EXTERNALSYM GetIconInfo}
  6413. const
  6414. RES_ICON = 1;
  6415. {$EXTERNALSYM RES_ICON}
  6416. RES_CURSOR = 2;
  6417. {$EXTERNALSYM RES_CURSOR}
  6418. //
  6419. // OEM Resource Ordinal Numbers
  6420. //
  6421. OBM_CLOSE = 32754;
  6422. {$EXTERNALSYM OBM_CLOSE}
  6423. OBM_UPARROW = 32753;
  6424. {$EXTERNALSYM OBM_UPARROW}
  6425. OBM_DNARROW = 32752;
  6426. {$EXTERNALSYM OBM_DNARROW}
  6427. OBM_RGARROW = 32751;
  6428. {$EXTERNALSYM OBM_RGARROW}
  6429. OBM_LFARROW = 32750;
  6430. {$EXTERNALSYM OBM_LFARROW}
  6431. OBM_REDUCE = 32749;
  6432. {$EXTERNALSYM OBM_REDUCE}
  6433. OBM_ZOOM = 32748;
  6434. {$EXTERNALSYM OBM_ZOOM}
  6435. OBM_RESTORE = 32747;
  6436. {$EXTERNALSYM OBM_RESTORE}
  6437. OBM_REDUCED = 32746;
  6438. {$EXTERNALSYM OBM_REDUCED}
  6439. OBM_ZOOMD = 32745;
  6440. {$EXTERNALSYM OBM_ZOOMD}
  6441. OBM_RESTORED = 32744;
  6442. {$EXTERNALSYM OBM_RESTORED}
  6443. OBM_UPARROWD = 32743;
  6444. {$EXTERNALSYM OBM_UPARROWD}
  6445. OBM_DNARROWD = 32742;
  6446. {$EXTERNALSYM OBM_DNARROWD}
  6447. OBM_RGARROWD = 32741;
  6448. {$EXTERNALSYM OBM_RGARROWD}
  6449. OBM_LFARROWD = 32740;
  6450. {$EXTERNALSYM OBM_LFARROWD}
  6451. OBM_MNARROW = 32739;
  6452. {$EXTERNALSYM OBM_MNARROW}
  6453. OBM_COMBO = 32738;
  6454. {$EXTERNALSYM OBM_COMBO}
  6455. OBM_UPARROWI = 32737;
  6456. {$EXTERNALSYM OBM_UPARROWI}
  6457. OBM_DNARROWI = 32736;
  6458. {$EXTERNALSYM OBM_DNARROWI}
  6459. OBM_RGARROWI = 32735;
  6460. {$EXTERNALSYM OBM_RGARROWI}
  6461. OBM_LFARROWI = 32734;
  6462. {$EXTERNALSYM OBM_LFARROWI}
  6463. OBM_OLD_CLOSE = 32767;
  6464. {$EXTERNALSYM OBM_OLD_CLOSE}
  6465. OBM_SIZE = 32766;
  6466. {$EXTERNALSYM OBM_SIZE}
  6467. OBM_OLD_UPARROW = 32765;
  6468. {$EXTERNALSYM OBM_OLD_UPARROW}
  6469. OBM_OLD_DNARROW = 32764;
  6470. {$EXTERNALSYM OBM_OLD_DNARROW}
  6471. OBM_OLD_RGARROW = 32763;
  6472. {$EXTERNALSYM OBM_OLD_RGARROW}
  6473. OBM_OLD_LFARROW = 32762;
  6474. {$EXTERNALSYM OBM_OLD_LFARROW}
  6475. OBM_BTSIZE = 32761;
  6476. {$EXTERNALSYM OBM_BTSIZE}
  6477. OBM_CHECK = 32760;
  6478. {$EXTERNALSYM OBM_CHECK}
  6479. OBM_CHECKBOXES = 32759;
  6480. {$EXTERNALSYM OBM_CHECKBOXES}
  6481. OBM_BTNCORNERS = 32758;
  6482. {$EXTERNALSYM OBM_BTNCORNERS}
  6483. OBM_OLD_REDUCE = 32757;
  6484. {$EXTERNALSYM OBM_OLD_REDUCE}
  6485. OBM_OLD_ZOOM = 32756;
  6486. {$EXTERNALSYM OBM_OLD_ZOOM}
  6487. OBM_OLD_RESTORE = 32755;
  6488. {$EXTERNALSYM OBM_OLD_RESTORE}
  6489. OCR_NORMAL = 32512;
  6490. {$EXTERNALSYM OCR_NORMAL}
  6491. OCR_IBEAM = 32513;
  6492. {$EXTERNALSYM OCR_IBEAM}
  6493. OCR_WAIT = 32514;
  6494. {$EXTERNALSYM OCR_WAIT}
  6495. OCR_CROSS = 32515;
  6496. {$EXTERNALSYM OCR_CROSS}
  6497. OCR_UP = 32516;
  6498. {$EXTERNALSYM OCR_UP}
  6499. OCR_SIZE = 32640; // OBSOLETE: use OCR_SIZEALL
  6500. {$EXTERNALSYM OCR_SIZE}
  6501. OCR_ICON = 32641; // OBSOLETE: use OCR_NORMAL
  6502. {$EXTERNALSYM OCR_ICON}
  6503. OCR_SIZENWSE = 32642;
  6504. {$EXTERNALSYM OCR_SIZENWSE}
  6505. OCR_SIZENESW = 32643;
  6506. {$EXTERNALSYM OCR_SIZENESW}
  6507. OCR_SIZEWE = 32644;
  6508. {$EXTERNALSYM OCR_SIZEWE}
  6509. OCR_SIZENS = 32645;
  6510. {$EXTERNALSYM OCR_SIZENS}
  6511. OCR_SIZEALL = 32646;
  6512. {$EXTERNALSYM OCR_SIZEALL}
  6513. OCR_ICOCUR = 32647; // OBSOLETE: use OIC_WINLOGO
  6514. {$EXTERNALSYM OCR_ICOCUR}
  6515. OCR_NO = 32648;
  6516. {$EXTERNALSYM OCR_NO}
  6517. OCR_HAND = 32649;
  6518. {$EXTERNALSYM OCR_HAND}
  6519. OCR_APPSTARTING = 32650;
  6520. {$EXTERNALSYM OCR_APPSTARTING}
  6521. OIC_SAMPLE = 32512;
  6522. {$EXTERNALSYM OIC_SAMPLE}
  6523. OIC_HAND = 32513;
  6524. {$EXTERNALSYM OIC_HAND}
  6525. OIC_QUES = 32514;
  6526. {$EXTERNALSYM OIC_QUES}
  6527. OIC_BANG = 32515;
  6528. {$EXTERNALSYM OIC_BANG}
  6529. OIC_NOTE = 32516;
  6530. {$EXTERNALSYM OIC_NOTE}
  6531. OIC_WINLOGO = 32517;
  6532. {$EXTERNALSYM OIC_WINLOGO}
  6533. OIC_WARNING = OIC_BANG;
  6534. {$EXTERNALSYM OIC_WARNING}
  6535. OIC_ERROR = OIC_HAND;
  6536. {$EXTERNALSYM OIC_ERROR}
  6537. OIC_INFORMATION = OIC_NOTE;
  6538. {$EXTERNALSYM OIC_INFORMATION}
  6539. ORD_LANGDRIVER = 1; // The ordinal number for the entry point of language drivers.
  6540. {$EXTERNALSYM ORD_LANGDRIVER}
  6541. //
  6542. // Standard Icon IDs
  6543. //
  6544. IDI_APPLICATION = MAKEINTRESOURCE(32512);
  6545. {$EXTERNALSYM IDI_APPLICATION}
  6546. IDI_HAND = MAKEINTRESOURCE(32513);
  6547. {$EXTERNALSYM IDI_HAND}
  6548. IDI_QUESTION = MAKEINTRESOURCE(32514);
  6549. {$EXTERNALSYM IDI_QUESTION}
  6550. IDI_EXCLAMATION = MAKEINTRESOURCE(32515);
  6551. {$EXTERNALSYM IDI_EXCLAMATION}
  6552. IDI_ASTERISK = MAKEINTRESOURCE(32516);
  6553. {$EXTERNALSYM IDI_ASTERISK}
  6554. IDI_WINLOGO = MAKEINTRESOURCE(32517);
  6555. {$EXTERNALSYM IDI_WINLOGO}
  6556. IDI_WARNING = IDI_EXCLAMATION;
  6557. {$EXTERNALSYM IDI_WARNING}
  6558. IDI_ERROR = IDI_HAND;
  6559. {$EXTERNALSYM IDI_ERROR}
  6560. IDI_INFORMATION = IDI_ASTERISK;
  6561. {$EXTERNALSYM IDI_INFORMATION}
  6562. function LoadStringA(hInstance: HINST; uID: UINT; lpBuffer: LPSTR;
  6563. nBufferMax: Integer): Integer; stdcall;
  6564. {$EXTERNALSYM LoadStringA}
  6565. function LoadStringW(hInstance: HINST; uID: UINT; lpBuffer: LPWSTR;
  6566. nBufferMax: Integer): Integer; stdcall;
  6567. {$EXTERNALSYM LoadStringW}
  6568. function LoadString(hInstance: HINST; uID: UINT; lpBuffer: LPTSTR;
  6569. nBufferMax: Integer): Integer; stdcall;
  6570. {$EXTERNALSYM LoadString}
  6571. //
  6572. // Dialog Box Command IDs
  6573. //
  6574. const
  6575. IDOK = 1;
  6576. {$EXTERNALSYM IDOK}
  6577. IDCANCEL = 2;
  6578. {$EXTERNALSYM IDCANCEL}
  6579. IDABORT = 3;
  6580. {$EXTERNALSYM IDABORT}
  6581. IDRETRY = 4;
  6582. {$EXTERNALSYM IDRETRY}
  6583. IDIGNORE = 5;
  6584. {$EXTERNALSYM IDIGNORE}
  6585. IDYES = 6;
  6586. {$EXTERNALSYM IDYES}
  6587. IDNO = 7;
  6588. {$EXTERNALSYM IDNO}
  6589. IDCLOSE = 8;
  6590. {$EXTERNALSYM IDCLOSE}
  6591. IDHELP = 9;
  6592. {$EXTERNALSYM IDHELP}
  6593. IDTRYAGAIN = 10;
  6594. {$EXTERNALSYM IDTRYAGAIN}
  6595. IDCONTINUE = 11;
  6596. {$EXTERNALSYM IDCONTINUE}
  6597. IDTIMEOUT = 32000;
  6598. {$EXTERNALSYM IDTIMEOUT}
  6599. //
  6600. // Control Manager Structures and Definitions
  6601. //
  6602. //
  6603. // Edit Control Styles
  6604. //
  6605. ES_LEFT = $0000;
  6606. {$EXTERNALSYM ES_LEFT}
  6607. ES_CENTER = $0001;
  6608. {$EXTERNALSYM ES_CENTER}
  6609. ES_RIGHT = $0002;
  6610. {$EXTERNALSYM ES_RIGHT}
  6611. ES_MULTILINE = $0004;
  6612. {$EXTERNALSYM ES_MULTILINE}
  6613. ES_UPPERCASE = $0008;
  6614. {$EXTERNALSYM ES_UPPERCASE}
  6615. ES_LOWERCASE = $0010;
  6616. {$EXTERNALSYM ES_LOWERCASE}
  6617. ES_PASSWORD = $0020;
  6618. {$EXTERNALSYM ES_PASSWORD}
  6619. ES_AUTOVSCROLL = $0040;
  6620. {$EXTERNALSYM ES_AUTOVSCROLL}
  6621. ES_AUTOHSCROLL = $0080;
  6622. {$EXTERNALSYM ES_AUTOHSCROLL}
  6623. ES_NOHIDESEL = $0100;
  6624. {$EXTERNALSYM ES_NOHIDESEL}
  6625. ES_OEMCONVERT = $0400;
  6626. {$EXTERNALSYM ES_OEMCONVERT}
  6627. ES_READONLY = $0800;
  6628. {$EXTERNALSYM ES_READONLY}
  6629. ES_WANTRETURN = $1000;
  6630. {$EXTERNALSYM ES_WANTRETURN}
  6631. ES_NUMBER = $2000;
  6632. {$EXTERNALSYM ES_NUMBER}
  6633. //
  6634. // Edit Control Notification Codes
  6635. //
  6636. EN_SETFOCUS = $0100;
  6637. {$EXTERNALSYM EN_SETFOCUS}
  6638. EN_KILLFOCUS = $0200;
  6639. {$EXTERNALSYM EN_KILLFOCUS}
  6640. EN_CHANGE = $0300;
  6641. {$EXTERNALSYM EN_CHANGE}
  6642. EN_UPDATE = $0400;
  6643. {$EXTERNALSYM EN_UPDATE}
  6644. EN_ERRSPACE = $0500;
  6645. {$EXTERNALSYM EN_ERRSPACE}
  6646. EN_MAXTEXT = $0501;
  6647. {$EXTERNALSYM EN_MAXTEXT}
  6648. EN_HSCROLL = $0601;
  6649. {$EXTERNALSYM EN_HSCROLL}
  6650. EN_VSCROLL = $0602;
  6651. {$EXTERNALSYM EN_VSCROLL}
  6652. EN_ALIGN_LTR_EC = $0700;
  6653. {$EXTERNALSYM EN_ALIGN_LTR_EC}
  6654. EN_ALIGN_RTL_EC = $0701;
  6655. {$EXTERNALSYM EN_ALIGN_RTL_EC}
  6656. // Edit control EM_SETMARGIN parameters//
  6657. EC_LEFTMARGIN = $0001;
  6658. {$EXTERNALSYM EC_LEFTMARGIN}
  6659. EC_RIGHTMARGIN = $0002;
  6660. {$EXTERNALSYM EC_RIGHTMARGIN}
  6661. EC_USEFONTINFO = $ffff;
  6662. {$EXTERNALSYM EC_USEFONTINFO}
  6663. // wParam of EM_GET/SETIMESTATUS //
  6664. EMSIS_COMPOSITIONSTRING = $0001;
  6665. {$EXTERNALSYM EMSIS_COMPOSITIONSTRING}
  6666. // lParam for EMSIS_COMPOSITIONSTRING //
  6667. EIMES_GETCOMPSTRATONCE = $0001;
  6668. {$EXTERNALSYM EIMES_GETCOMPSTRATONCE}
  6669. EIMES_CANCELCOMPSTRINFOCUS = $0002;
  6670. {$EXTERNALSYM EIMES_CANCELCOMPSTRINFOCUS}
  6671. EIMES_COMPLETECOMPSTRKILLFOCUS = $0004;
  6672. {$EXTERNALSYM EIMES_COMPLETECOMPSTRKILLFOCUS}
  6673. //
  6674. // Edit Control Messages
  6675. //
  6676. EM_GETSEL = $00B0;
  6677. {$EXTERNALSYM EM_GETSEL}
  6678. EM_SETSEL = $00B1;
  6679. {$EXTERNALSYM EM_SETSEL}
  6680. EM_GETRECT = $00B2;
  6681. {$EXTERNALSYM EM_GETRECT}
  6682. EM_SETRECT = $00B3;
  6683. {$EXTERNALSYM EM_SETRECT}
  6684. EM_SETRECTNP = $00B4;
  6685. {$EXTERNALSYM EM_SETRECTNP}
  6686. EM_SCROLL = $00B5;
  6687. {$EXTERNALSYM EM_SCROLL}
  6688. EM_LINESCROLL = $00B6;
  6689. {$EXTERNALSYM EM_LINESCROLL}
  6690. EM_SCROLLCARET = $00B7;
  6691. {$EXTERNALSYM EM_SCROLLCARET}
  6692. EM_GETMODIFY = $00B8;
  6693. {$EXTERNALSYM EM_GETMODIFY}
  6694. EM_SETMODIFY = $00B9;
  6695. {$EXTERNALSYM EM_SETMODIFY}
  6696. EM_GETLINECOUNT = $00BA;
  6697. {$EXTERNALSYM EM_GETLINECOUNT}
  6698. EM_LINEINDEX = $00BB;
  6699. {$EXTERNALSYM EM_LINEINDEX}
  6700. EM_SETHANDLE = $00BC;
  6701. {$EXTERNALSYM EM_SETHANDLE}
  6702. EM_GETHANDLE = $00BD;
  6703. {$EXTERNALSYM EM_GETHANDLE}
  6704. EM_GETTHUMB = $00BE;
  6705. {$EXTERNALSYM EM_GETTHUMB}
  6706. EM_LINELENGTH = $00C1;
  6707. {$EXTERNALSYM EM_LINELENGTH}
  6708. EM_REPLACESEL = $00C2;
  6709. {$EXTERNALSYM EM_REPLACESEL}
  6710. EM_GETLINE = $00C4;
  6711. {$EXTERNALSYM EM_GETLINE}
  6712. EM_LIMITTEXT = $00C5;
  6713. {$EXTERNALSYM EM_LIMITTEXT}
  6714. EM_CANUNDO = $00C6;
  6715. {$EXTERNALSYM EM_CANUNDO}
  6716. EM_UNDO = $00C7;
  6717. {$EXTERNALSYM EM_UNDO}
  6718. EM_FMTLINES = $00C8;
  6719. {$EXTERNALSYM EM_FMTLINES}
  6720. EM_LINEFROMCHAR = $00C9;
  6721. {$EXTERNALSYM EM_LINEFROMCHAR}
  6722. EM_SETTABSTOPS = $00CB;
  6723. {$EXTERNALSYM EM_SETTABSTOPS}
  6724. EM_SETPASSWORDCHAR = $00CC;
  6725. {$EXTERNALSYM EM_SETPASSWORDCHAR}
  6726. EM_EMPTYUNDOBUFFER = $00CD;
  6727. {$EXTERNALSYM EM_EMPTYUNDOBUFFER}
  6728. EM_GETFIRSTVISIBLELINE = $00CE;
  6729. {$EXTERNALSYM EM_GETFIRSTVISIBLELINE}
  6730. EM_SETREADONLY = $00CF;
  6731. {$EXTERNALSYM EM_SETREADONLY}
  6732. EM_SETWORDBREAKPROC = $00D0;
  6733. {$EXTERNALSYM EM_SETWORDBREAKPROC}
  6734. EM_GETWORDBREAKPROC = $00D1;
  6735. {$EXTERNALSYM EM_GETWORDBREAKPROC}
  6736. EM_GETPASSWORDCHAR = $00D2;
  6737. {$EXTERNALSYM EM_GETPASSWORDCHAR}
  6738. EM_SETMARGINS = $00D3;
  6739. {$EXTERNALSYM EM_SETMARGINS}
  6740. EM_GETMARGINS = $00D4;
  6741. {$EXTERNALSYM EM_GETMARGINS}
  6742. EM_SETLIMITTEXT = EM_LIMITTEXT; // ;win40 Name change
  6743. {$EXTERNALSYM EM_SETLIMITTEXT}
  6744. EM_GETLIMITTEXT = $00D5;
  6745. {$EXTERNALSYM EM_GETLIMITTEXT}
  6746. EM_POSFROMCHAR = $00D6;
  6747. {$EXTERNALSYM EM_POSFROMCHAR}
  6748. EM_CHARFROMPOS = $00D7;
  6749. {$EXTERNALSYM EM_CHARFROMPOS}
  6750. EM_SETIMESTATUS = $00D8;
  6751. {$EXTERNALSYM EM_SETIMESTATUS}
  6752. EM_GETIMESTATUS = $00D9;
  6753. {$EXTERNALSYM EM_GETIMESTATUS}
  6754. //
  6755. // EDITWORDBREAKPROC code values
  6756. //
  6757. WB_LEFT = 0;
  6758. {$EXTERNALSYM WB_LEFT}
  6759. WB_RIGHT = 1;
  6760. {$EXTERNALSYM WB_RIGHT}
  6761. WB_ISDELIMITER = 2;
  6762. {$EXTERNALSYM WB_ISDELIMITER}
  6763. //
  6764. // Button Control Styles
  6765. //
  6766. BS_PUSHBUTTON = $00000000;
  6767. {$EXTERNALSYM BS_PUSHBUTTON}
  6768. BS_DEFPUSHBUTTON = $00000001;
  6769. {$EXTERNALSYM BS_DEFPUSHBUTTON}
  6770. BS_CHECKBOX = $00000002;
  6771. {$EXTERNALSYM BS_CHECKBOX}
  6772. BS_AUTOCHECKBOX = $00000003;
  6773. {$EXTERNALSYM BS_AUTOCHECKBOX}
  6774. BS_RADIOBUTTON = $00000004;
  6775. {$EXTERNALSYM BS_RADIOBUTTON}
  6776. BS_3STATE = $00000005;
  6777. {$EXTERNALSYM BS_3STATE}
  6778. BS_AUTO3STATE = $00000006;
  6779. {$EXTERNALSYM BS_AUTO3STATE}
  6780. BS_GROUPBOX = $00000007;
  6781. {$EXTERNALSYM BS_GROUPBOX}
  6782. BS_USERBUTTON = $00000008;
  6783. {$EXTERNALSYM BS_USERBUTTON}
  6784. BS_AUTORADIOBUTTON = $00000009;
  6785. {$EXTERNALSYM BS_AUTORADIOBUTTON}
  6786. BS_PUSHBOX = $0000000A;
  6787. {$EXTERNALSYM BS_PUSHBOX}
  6788. BS_OWNERDRAW = $0000000B;
  6789. {$EXTERNALSYM BS_OWNERDRAW}
  6790. BS_TYPEMASK = $0000000F;
  6791. {$EXTERNALSYM BS_TYPEMASK}
  6792. BS_LEFTTEXT = $00000020;
  6793. {$EXTERNALSYM BS_LEFTTEXT}
  6794. BS_TEXT = $00000000;
  6795. {$EXTERNALSYM BS_TEXT}
  6796. BS_ICON = $00000040;
  6797. {$EXTERNALSYM BS_ICON}
  6798. BS_BITMAP = $00000080;
  6799. {$EXTERNALSYM BS_BITMAP}
  6800. BS_LEFT = $00000100;
  6801. {$EXTERNALSYM BS_LEFT}
  6802. BS_RIGHT = $00000200;
  6803. {$EXTERNALSYM BS_RIGHT}
  6804. BS_CENTER = $00000300;
  6805. {$EXTERNALSYM BS_CENTER}
  6806. BS_TOP = $00000400;
  6807. {$EXTERNALSYM BS_TOP}
  6808. BS_BOTTOM = $00000800;
  6809. {$EXTERNALSYM BS_BOTTOM}
  6810. BS_VCENTER = $00000C00;
  6811. {$EXTERNALSYM BS_VCENTER}
  6812. BS_PUSHLIKE = $00001000;
  6813. {$EXTERNALSYM BS_PUSHLIKE}
  6814. BS_MULTILINE = $00002000;
  6815. {$EXTERNALSYM BS_MULTILINE}
  6816. BS_NOTIFY = $00004000;
  6817. {$EXTERNALSYM BS_NOTIFY}
  6818. BS_FLAT = $00008000;
  6819. {$EXTERNALSYM BS_FLAT}
  6820. BS_RIGHTBUTTON = BS_LEFTTEXT;
  6821. {$EXTERNALSYM BS_RIGHTBUTTON}
  6822. //
  6823. // User Button Notification Codes
  6824. //
  6825. BN_CLICKED = 0;
  6826. {$EXTERNALSYM BN_CLICKED}
  6827. BN_PAINT = 1;
  6828. {$EXTERNALSYM BN_PAINT}
  6829. BN_HILITE = 2;
  6830. {$EXTERNALSYM BN_HILITE}
  6831. BN_UNHILITE = 3;
  6832. {$EXTERNALSYM BN_UNHILITE}
  6833. BN_DISABLE = 4;
  6834. {$EXTERNALSYM BN_DISABLE}
  6835. BN_DOUBLECLICKED = 5;
  6836. {$EXTERNALSYM BN_DOUBLECLICKED}
  6837. BN_PUSHED = BN_HILITE;
  6838. {$EXTERNALSYM BN_PUSHED}
  6839. BN_UNPUSHED = BN_UNHILITE;
  6840. {$EXTERNALSYM BN_UNPUSHED}
  6841. BN_DBLCLK = BN_DOUBLECLICKED;
  6842. {$EXTERNALSYM BN_DBLCLK}
  6843. BN_SETFOCUS = 6;
  6844. {$EXTERNALSYM BN_SETFOCUS}
  6845. BN_KILLFOCUS = 7;
  6846. {$EXTERNALSYM BN_KILLFOCUS}
  6847. //
  6848. // Button Control Messages
  6849. //
  6850. BM_GETCHECK = $00F0;
  6851. {$EXTERNALSYM BM_GETCHECK}
  6852. BM_SETCHECK = $00F1;
  6853. {$EXTERNALSYM BM_SETCHECK}
  6854. BM_GETSTATE = $00F2;
  6855. {$EXTERNALSYM BM_GETSTATE}
  6856. BM_SETSTATE = $00F3;
  6857. {$EXTERNALSYM BM_SETSTATE}
  6858. BM_SETSTYLE = $00F4;
  6859. {$EXTERNALSYM BM_SETSTYLE}
  6860. BM_CLICK = $00F5;
  6861. {$EXTERNALSYM BM_CLICK}
  6862. BM_GETIMAGE = $00F6;
  6863. {$EXTERNALSYM BM_GETIMAGE}
  6864. BM_SETIMAGE = $00F7;
  6865. {$EXTERNALSYM BM_SETIMAGE}
  6866. BST_UNCHECKED = $0000;
  6867. {$EXTERNALSYM BST_UNCHECKED}
  6868. BST_CHECKED = $0001;
  6869. {$EXTERNALSYM BST_CHECKED}
  6870. BST_INDETERMINATE = $0002;
  6871. {$EXTERNALSYM BST_INDETERMINATE}
  6872. BST_PUSHED = $0004;
  6873. {$EXTERNALSYM BST_PUSHED}
  6874. BST_FOCUS = $0008;
  6875. {$EXTERNALSYM BST_FOCUS}
  6876. //
  6877. // Static Control Constants
  6878. //
  6879. SS_LEFT = $00000000;
  6880. {$EXTERNALSYM SS_LEFT}
  6881. SS_CENTER = $00000001;
  6882. {$EXTERNALSYM SS_CENTER}
  6883. SS_RIGHT = $00000002;
  6884. {$EXTERNALSYM SS_RIGHT}
  6885. SS_ICON = $00000003;
  6886. {$EXTERNALSYM SS_ICON}
  6887. SS_BLACKRECT = $00000004;
  6888. {$EXTERNALSYM SS_BLACKRECT}
  6889. SS_GRAYRECT = $00000005;
  6890. {$EXTERNALSYM SS_GRAYRECT}
  6891. SS_WHITERECT = $00000006;
  6892. {$EXTERNALSYM SS_WHITERECT}
  6893. SS_BLACKFRAME = $00000007;
  6894. {$EXTERNALSYM SS_BLACKFRAME}
  6895. SS_GRAYFRAME = $00000008;
  6896. {$EXTERNALSYM SS_GRAYFRAME}
  6897. SS_WHITEFRAME = $00000009;
  6898. {$EXTERNALSYM SS_WHITEFRAME}
  6899. SS_USERITEM = $0000000A;
  6900. {$EXTERNALSYM SS_USERITEM}
  6901. SS_SIMPLE = $0000000B;
  6902. {$EXTERNALSYM SS_SIMPLE}
  6903. SS_LEFTNOWORDWRAP = $0000000C;
  6904. {$EXTERNALSYM SS_LEFTNOWORDWRAP}
  6905. SS_OWNERDRAW = $0000000D;
  6906. {$EXTERNALSYM SS_OWNERDRAW}
  6907. SS_BITMAP = $0000000E;
  6908. {$EXTERNALSYM SS_BITMAP}
  6909. SS_ENHMETAFILE = $0000000F;
  6910. {$EXTERNALSYM SS_ENHMETAFILE}
  6911. SS_ETCHEDHORZ = $00000010;
  6912. {$EXTERNALSYM SS_ETCHEDHORZ}
  6913. SS_ETCHEDVERT = $00000011;
  6914. {$EXTERNALSYM SS_ETCHEDVERT}
  6915. SS_ETCHEDFRAME = $00000012;
  6916. {$EXTERNALSYM SS_ETCHEDFRAME}
  6917. SS_TYPEMASK = $0000001F;
  6918. {$EXTERNALSYM SS_TYPEMASK}
  6919. SS_REALSIZECONTROL = $00000040;
  6920. {$EXTERNALSYM SS_REALSIZECONTROL}
  6921. SS_NOPREFIX = $00000080; // Don't do "&" character translation
  6922. {$EXTERNALSYM SS_NOPREFIX}
  6923. SS_NOTIFY = $00000100;
  6924. {$EXTERNALSYM SS_NOTIFY}
  6925. SS_CENTERIMAGE = $00000200;
  6926. {$EXTERNALSYM SS_CENTERIMAGE}
  6927. SS_RIGHTJUST = $00000400;
  6928. {$EXTERNALSYM SS_RIGHTJUST}
  6929. SS_REALSIZEIMAGE = $00000800;
  6930. {$EXTERNALSYM SS_REALSIZEIMAGE}
  6931. SS_SUNKEN = $00001000;
  6932. {$EXTERNALSYM SS_SUNKEN}
  6933. SS_EDITCONTROL = $00002000;
  6934. {$EXTERNALSYM SS_EDITCONTROL}
  6935. SS_ENDELLIPSIS = $00004000;
  6936. {$EXTERNALSYM SS_ENDELLIPSIS}
  6937. SS_PATHELLIPSIS = $00008000;
  6938. {$EXTERNALSYM SS_PATHELLIPSIS}
  6939. SS_WORDELLIPSIS = $0000C000;
  6940. {$EXTERNALSYM SS_WORDELLIPSIS}
  6941. SS_ELLIPSISMASK = $0000C000;
  6942. {$EXTERNALSYM SS_ELLIPSISMASK}
  6943. //
  6944. // Static Control Mesages
  6945. //
  6946. STM_SETICON = $0170;
  6947. {$EXTERNALSYM STM_SETICON}
  6948. STM_GETICON = $0171;
  6949. {$EXTERNALSYM STM_GETICON}
  6950. STM_SETIMAGE = $0172;
  6951. {$EXTERNALSYM STM_SETIMAGE}
  6952. STM_GETIMAGE = $0173;
  6953. {$EXTERNALSYM STM_GETIMAGE}
  6954. STN_CLICKED = 0;
  6955. {$EXTERNALSYM STN_CLICKED}
  6956. STN_DBLCLK = 1;
  6957. {$EXTERNALSYM STN_DBLCLK}
  6958. STN_ENABLE = 2;
  6959. {$EXTERNALSYM STN_ENABLE}
  6960. STN_DISABLE = 3;
  6961. {$EXTERNALSYM STN_DISABLE}
  6962. STM_MSGMAX = $0174;
  6963. {$EXTERNALSYM STM_MSGMAX}
  6964. //
  6965. // Dialog window class
  6966. //
  6967. WC_DIALOG = MAKEINTATOM($8002);
  6968. {$EXTERNALSYM WC_DIALOG}
  6969. //
  6970. // Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
  6971. //
  6972. DWL_MSGRESULT = 0;
  6973. {$EXTERNALSYM DWL_MSGRESULT}
  6974. DWL_DLGPROC = 4;
  6975. {$EXTERNALSYM DWL_DLGPROC}
  6976. DWL_USER = 8;
  6977. {$EXTERNALSYM DWL_USER}
  6978. DWLP_MSGRESULT = 0;
  6979. {$EXTERNALSYM DWLP_MSGRESULT}
  6980. DWLP_DLGPROC = DWLP_MSGRESULT + SizeOf(LRESULT);
  6981. {$EXTERNALSYM DWLP_DLGPROC}
  6982. DWLP_USER = DWLP_DLGPROC + SizeOf(DLGPROC);
  6983. {$EXTERNALSYM DWLP_USER}
  6984. //
  6985. // Dialog Manager Routines
  6986. //
  6987. function IsDialogMessageA(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6988. {$EXTERNALSYM IsDialogMessageA}
  6989. function IsDialogMessageW(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6990. {$EXTERNALSYM IsDialogMessageW}
  6991. function IsDialogMessage(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6992. {$EXTERNALSYM IsDialogMessage}
  6993. function MapDialogRect(hDlg: HWND; var lpRect: RECT): BOOL; stdcall;
  6994. {$EXTERNALSYM MapDialogRect}
  6995. function DlgDirListA(hDlg: HWND; lpPathSpec: LPSTR; nIDListBox: Integer;
  6996. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  6997. {$EXTERNALSYM DlgDirListA}
  6998. function DlgDirListW(hDlg: HWND; lpPathSpec: LPWSTR; nIDListBox: Integer;
  6999. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  7000. {$EXTERNALSYM DlgDirListW}
  7001. function DlgDirList(hDlg: HWND; lpPathSpec: LPTSTR; nIDListBox: Integer;
  7002. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  7003. {$EXTERNALSYM DlgDirList}
  7004. //
  7005. // DlgDirList, DlgDirListComboBox flags values
  7006. //
  7007. const
  7008. DDL_READWRITE = $0000;
  7009. {$EXTERNALSYM DDL_READWRITE}
  7010. DDL_READONLY = $0001;
  7011. {$EXTERNALSYM DDL_READONLY}
  7012. DDL_HIDDEN = $0002;
  7013. {$EXTERNALSYM DDL_HIDDEN}
  7014. DDL_SYSTEM = $0004;
  7015. {$EXTERNALSYM DDL_SYSTEM}
  7016. DDL_DIRECTORY = $0010;
  7017. {$EXTERNALSYM DDL_DIRECTORY}
  7018. DDL_ARCHIVE = $0020;
  7019. {$EXTERNALSYM DDL_ARCHIVE}
  7020. DDL_POSTMSGS = $2000;
  7021. {$EXTERNALSYM DDL_POSTMSGS}
  7022. DDL_DRIVES = $4000;
  7023. {$EXTERNALSYM DDL_DRIVES}
  7024. DDL_EXCLUSIVE = $8000;
  7025. {$EXTERNALSYM DDL_EXCLUSIVE}
  7026. function DlgDirSelectExA(hDlg: HWND; lpString: LPSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7027. {$EXTERNALSYM DlgDirSelectExA}
  7028. function DlgDirSelectExW(hDlg: HWND; lpString: LPWSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7029. {$EXTERNALSYM DlgDirSelectExW}
  7030. function DlgDirSelectEx(hDlg: HWND; lpString: LPTSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7031. {$EXTERNALSYM DlgDirSelectEx}
  7032. function DlgDirListComboBoxA(hDlg: HWND; lpPathSpec: LPSTR; nIDComboBox: Integer;
  7033. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7034. {$EXTERNALSYM DlgDirListComboBoxA}
  7035. function DlgDirListComboBoxW(hDlg: HWND; lpPathSpec: LPWSTR; nIDComboBox: Integer;
  7036. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7037. {$EXTERNALSYM DlgDirListComboBoxW}
  7038. function DlgDirListComboBox(hDlg: HWND; lpPathSpec: LPTSTR; nIDComboBox: Integer;
  7039. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7040. {$EXTERNALSYM DlgDirListComboBox}
  7041. function DlgDirSelectComboBoxExA(hDlg: HWND; lpString: LPSTR; nCount: Integer;
  7042. nIDComboBox: Integer): BOOL; stdcall;
  7043. {$EXTERNALSYM DlgDirSelectComboBoxExA}
  7044. function DlgDirSelectComboBoxExW(hDlg: HWND; lpString: LPWSTR; nCount: Integer;
  7045. nIDComboBox: Integer): BOOL; stdcall;
  7046. {$EXTERNALSYM DlgDirSelectComboBoxExW}
  7047. function DlgDirSelectComboBoxEx(hDlg: HWND; lpString: LPTSTR; nCount: Integer;
  7048. nIDComboBox: Integer): BOOL; stdcall;
  7049. {$EXTERNALSYM DlgDirSelectComboBoxEx}
  7050. //
  7051. // Dialog Styles
  7052. //
  7053. const
  7054. DS_ABSALIGN = $01;
  7055. {$EXTERNALSYM DS_ABSALIGN}
  7056. DS_SYSMODAL = $02;
  7057. {$EXTERNALSYM DS_SYSMODAL}
  7058. DS_LOCALEDIT = $20; // Edit items get Local storage.
  7059. {$EXTERNALSYM DS_LOCALEDIT}
  7060. DS_SETFONT = $40; // User specified font for Dlg controls
  7061. {$EXTERNALSYM DS_SETFONT}
  7062. DS_MODALFRAME = $80; // Can be combined with WS_CAPTION
  7063. {$EXTERNALSYM DS_MODALFRAME}
  7064. DS_NOIDLEMSG = $100; // WM_ENTERIDLE message will not be sent
  7065. {$EXTERNALSYM DS_NOIDLEMSG}
  7066. DS_SETFOREGROUND = $200; // not in win3.1
  7067. {$EXTERNALSYM DS_SETFOREGROUND}
  7068. DS_3DLOOK = $0004;
  7069. {$EXTERNALSYM DS_3DLOOK}
  7070. DS_FIXEDSYS = $0008;
  7071. {$EXTERNALSYM DS_FIXEDSYS}
  7072. DS_NOFAILCREATE = $0010;
  7073. {$EXTERNALSYM DS_NOFAILCREATE}
  7074. DS_CONTROL = $0400;
  7075. {$EXTERNALSYM DS_CONTROL}
  7076. DS_CENTER = $0800;
  7077. {$EXTERNALSYM DS_CENTER}
  7078. DS_CENTERMOUSE = $1000;
  7079. {$EXTERNALSYM DS_CENTERMOUSE}
  7080. DS_CONTEXTHELP = $2000;
  7081. {$EXTERNALSYM DS_CONTEXTHELP}
  7082. DS_SHELLFONT = DS_SETFONT or DS_FIXEDSYS;
  7083. {$EXTERNALSYM DS_SHELLFONT}
  7084. //#if(_WIN32_WCE >= 0x0500)
  7085. DS_USEPIXELS = $8000;
  7086. {$EXTERNALSYM DS_USEPIXELS}
  7087. //#endif
  7088. DM_GETDEFID = WM_USER + 0;
  7089. {$EXTERNALSYM DM_GETDEFID}
  7090. DM_SETDEFID = WM_USER + 1;
  7091. {$EXTERNALSYM DM_SETDEFID}
  7092. DM_REPOSITION = WM_USER + 2;
  7093. {$EXTERNALSYM DM_REPOSITION}
  7094. //
  7095. // Returned in HIWORD() of DM_GETDEFID result if msg is supported
  7096. //
  7097. DC_HASDEFID = $534B;
  7098. {$EXTERNALSYM DC_HASDEFID}
  7099. //
  7100. // Dialog Codes
  7101. //
  7102. DLGC_WANTARROWS = $0001; // Control wants arrow keys
  7103. {$EXTERNALSYM DLGC_WANTARROWS}
  7104. DLGC_WANTTAB = $0002; // Control wants tab keys
  7105. {$EXTERNALSYM DLGC_WANTTAB}
  7106. DLGC_WANTALLKEYS = $0004; // Control wants all keys
  7107. {$EXTERNALSYM DLGC_WANTALLKEYS}
  7108. DLGC_WANTMESSAGE = $0004; // Pass message to control
  7109. {$EXTERNALSYM DLGC_WANTMESSAGE}
  7110. DLGC_HASSETSEL = $0008; // Understands EM_SETSEL message
  7111. {$EXTERNALSYM DLGC_HASSETSEL}
  7112. DLGC_DEFPUSHBUTTON = $0010; // Default pushbutton
  7113. {$EXTERNALSYM DLGC_DEFPUSHBUTTON}
  7114. DLGC_UNDEFPUSHBUTTON = $0020; // Non-default pushbutton
  7115. {$EXTERNALSYM DLGC_UNDEFPUSHBUTTON}
  7116. DLGC_RADIOBUTTON = $0040; // Radio button
  7117. {$EXTERNALSYM DLGC_RADIOBUTTON}
  7118. DLGC_WANTCHARS = $0080; // Want WM_CHAR messages
  7119. {$EXTERNALSYM DLGC_WANTCHARS}
  7120. DLGC_STATIC = $0100; // Static item: don't include
  7121. {$EXTERNALSYM DLGC_STATIC}
  7122. DLGC_BUTTON = $2000; // Button item: can be checked
  7123. {$EXTERNALSYM DLGC_BUTTON}
  7124. LB_CTLCODE = 0;
  7125. {$EXTERNALSYM LB_CTLCODE}
  7126. //
  7127. // Listbox Return Values
  7128. //
  7129. LB_OKAY = 0;
  7130. {$EXTERNALSYM LB_OKAY}
  7131. LB_ERR = DWORD(-1);
  7132. {$EXTERNALSYM LB_ERR}
  7133. LB_ERRSPACE = DWORD(-2);
  7134. {$EXTERNALSYM LB_ERRSPACE}
  7135. //
  7136. // The idStaticPath parameter to DlgDirList can have the following values
  7137. // ORed if the list box should show other details of the files along with
  7138. // the name of the files;
  7139. //
  7140. // all other details also will be returned
  7141. //
  7142. // Listbox Notification Codes
  7143. //
  7144. LBN_ERRSPACE = DWORD(-2);
  7145. {$EXTERNALSYM LBN_ERRSPACE}
  7146. LBN_SELCHANGE = 1;
  7147. {$EXTERNALSYM LBN_SELCHANGE}
  7148. LBN_DBLCLK = 2;
  7149. {$EXTERNALSYM LBN_DBLCLK}
  7150. LBN_SELCANCEL = 3;
  7151. {$EXTERNALSYM LBN_SELCANCEL}
  7152. LBN_SETFOCUS = 4;
  7153. {$EXTERNALSYM LBN_SETFOCUS}
  7154. LBN_KILLFOCUS = 5;
  7155. {$EXTERNALSYM LBN_KILLFOCUS}
  7156. //
  7157. // Listbox messages
  7158. //
  7159. LB_ADDSTRING = $0180;
  7160. {$EXTERNALSYM LB_ADDSTRING}
  7161. LB_INSERTSTRING = $0181;
  7162. {$EXTERNALSYM LB_INSERTSTRING}
  7163. LB_DELETESTRING = $0182;
  7164. {$EXTERNALSYM LB_DELETESTRING}
  7165. LB_SELITEMRANGEEX = $0183;
  7166. {$EXTERNALSYM LB_SELITEMRANGEEX}
  7167. LB_RESETCONTENT = $0184;
  7168. {$EXTERNALSYM LB_RESETCONTENT}
  7169. LB_SETSEL = $0185;
  7170. {$EXTERNALSYM LB_SETSEL}
  7171. LB_SETCURSEL = $0186;
  7172. {$EXTERNALSYM LB_SETCURSEL}
  7173. LB_GETSEL = $0187;
  7174. {$EXTERNALSYM LB_GETSEL}
  7175. LB_GETCURSEL = $0188;
  7176. {$EXTERNALSYM LB_GETCURSEL}
  7177. LB_GETTEXT = $0189;
  7178. {$EXTERNALSYM LB_GETTEXT}
  7179. LB_GETTEXTLEN = $018A;
  7180. {$EXTERNALSYM LB_GETTEXTLEN}
  7181. LB_GETCOUNT = $018B;
  7182. {$EXTERNALSYM LB_GETCOUNT}
  7183. LB_SELECTSTRING = $018C;
  7184. {$EXTERNALSYM LB_SELECTSTRING}
  7185. LB_DIR = $018D;
  7186. {$EXTERNALSYM LB_DIR}
  7187. LB_GETTOPINDEX = $018E;
  7188. {$EXTERNALSYM LB_GETTOPINDEX}
  7189. LB_FINDSTRING = $018F;
  7190. {$EXTERNALSYM LB_FINDSTRING}
  7191. LB_GETSELCOUNT = $0190;
  7192. {$EXTERNALSYM LB_GETSELCOUNT}
  7193. LB_GETSELITEMS = $0191;
  7194. {$EXTERNALSYM LB_GETSELITEMS}
  7195. LB_SETTABSTOPS = $0192;
  7196. {$EXTERNALSYM LB_SETTABSTOPS}
  7197. LB_GETHORIZONTALEXTENT = $0193;
  7198. {$EXTERNALSYM LB_GETHORIZONTALEXTENT}
  7199. LB_SETHORIZONTALEXTENT = $0194;
  7200. {$EXTERNALSYM LB_SETHORIZONTALEXTENT}
  7201. LB_SETCOLUMNWIDTH = $0195;
  7202. {$EXTERNALSYM LB_SETCOLUMNWIDTH}
  7203. LB_ADDFILE = $0196;
  7204. {$EXTERNALSYM LB_ADDFILE}
  7205. LB_SETTOPINDEX = $0197;
  7206. {$EXTERNALSYM LB_SETTOPINDEX}
  7207. LB_GETITEMRECT = $0198;
  7208. {$EXTERNALSYM LB_GETITEMRECT}
  7209. LB_GETITEMDATA = $0199;
  7210. {$EXTERNALSYM LB_GETITEMDATA}
  7211. LB_SETITEMDATA = $019A;
  7212. {$EXTERNALSYM LB_SETITEMDATA}
  7213. LB_SELITEMRANGE = $019B;
  7214. {$EXTERNALSYM LB_SELITEMRANGE}
  7215. LB_SETANCHORINDEX = $019C;
  7216. {$EXTERNALSYM LB_SETANCHORINDEX}
  7217. LB_GETANCHORINDEX = $019D;
  7218. {$EXTERNALSYM LB_GETANCHORINDEX}
  7219. LB_SETCARETINDEX = $019E;
  7220. {$EXTERNALSYM LB_SETCARETINDEX}
  7221. LB_GETCARETINDEX = $019F;
  7222. {$EXTERNALSYM LB_GETCARETINDEX}
  7223. LB_SETITEMHEIGHT = $01A0;
  7224. {$EXTERNALSYM LB_SETITEMHEIGHT}
  7225. LB_GETITEMHEIGHT = $01A1;
  7226. {$EXTERNALSYM LB_GETITEMHEIGHT}
  7227. LB_FINDSTRINGEXACT = $01A2;
  7228. {$EXTERNALSYM LB_FINDSTRINGEXACT}
  7229. LB_SETLOCALE = $01A5;
  7230. {$EXTERNALSYM LB_SETLOCALE}
  7231. LB_GETLOCALE = $01A6;
  7232. {$EXTERNALSYM LB_GETLOCALE}
  7233. LB_SETCOUNT = $01A7;
  7234. {$EXTERNALSYM LB_SETCOUNT}
  7235. LB_INITSTORAGE = $01A8;
  7236. {$EXTERNALSYM LB_INITSTORAGE}
  7237. LB_ITEMFROMPOINT = $01A9;
  7238. {$EXTERNALSYM LB_ITEMFROMPOINT}
  7239. LB_MULTIPLEADDSTRING = $01B1;
  7240. {$EXTERNALSYM LB_MULTIPLEADDSTRING}
  7241. LB_GETLISTBOXINFO = $01B2;
  7242. {$EXTERNALSYM LB_GETLISTBOXINFO}
  7243. {$IFDEF WINXP_UP}
  7244. LB_MSGMAX = $01B3;
  7245. {$EXTERNALSYM LB_MSGMAX}
  7246. {$ELSE}
  7247. LB_MSGMAX = $01B0;
  7248. {$EXTERNALSYM LB_MSGMAX}
  7249. {$ENDIF WINXP_UP}
  7250. //
  7251. // Listbox Styles
  7252. //
  7253. LBS_NOTIFY = $0001;
  7254. {$EXTERNALSYM LBS_NOTIFY}
  7255. LBS_SORT = $0002;
  7256. {$EXTERNALSYM LBS_SORT}
  7257. LBS_NOREDRAW = $0004;
  7258. {$EXTERNALSYM LBS_NOREDRAW}
  7259. LBS_MULTIPLESEL = $0008;
  7260. {$EXTERNALSYM LBS_MULTIPLESEL}
  7261. LBS_OWNERDRAWFIXED = $0010;
  7262. {$EXTERNALSYM LBS_OWNERDRAWFIXED}
  7263. LBS_OWNERDRAWVARIABLE = $0020;
  7264. {$EXTERNALSYM LBS_OWNERDRAWVARIABLE}
  7265. LBS_HASSTRINGS = $0040;
  7266. {$EXTERNALSYM LBS_HASSTRINGS}
  7267. LBS_USETABSTOPS = $0080;
  7268. {$EXTERNALSYM LBS_USETABSTOPS}
  7269. LBS_NOINTEGRALHEIGHT = $0100;
  7270. {$EXTERNALSYM LBS_NOINTEGRALHEIGHT}
  7271. LBS_MULTICOLUMN = $0200;
  7272. {$EXTERNALSYM LBS_MULTICOLUMN}
  7273. LBS_WANTKEYBOARDINPUT = $0400;
  7274. {$EXTERNALSYM LBS_WANTKEYBOARDINPUT}
  7275. LBS_EXTENDEDSEL = $0800;
  7276. {$EXTERNALSYM LBS_EXTENDEDSEL}
  7277. LBS_DISABLENOSCROLL = $1000;
  7278. {$EXTERNALSYM LBS_DISABLENOSCROLL}
  7279. LBS_NODATA = $2000;
  7280. {$EXTERNALSYM LBS_NODATA}
  7281. LBS_NOSEL = $4000;
  7282. {$EXTERNALSYM LBS_NOSEL}
  7283. LBS_COMBOBOX = $8000;
  7284. {$EXTERNALSYM LBS_COMBOBOX}
  7285. LBS_STANDARD = LBS_NOTIFY or LBS_SORT or WS_VSCROLL or WS_BORDER;
  7286. {$EXTERNALSYM LBS_STANDARD}
  7287. //
  7288. // Combo Box return Values
  7289. //
  7290. CB_OKAY = 0;
  7291. {$EXTERNALSYM CB_OKAY}
  7292. CB_ERR = DWORD(-1);
  7293. {$EXTERNALSYM CB_ERR}
  7294. CB_ERRSPACE = DWORD(-2);
  7295. {$EXTERNALSYM CB_ERRSPACE}
  7296. //
  7297. // Combo Box Notification Codes
  7298. //
  7299. CBN_ERRSPACE = DWORD(-1);
  7300. {$EXTERNALSYM CBN_ERRSPACE}
  7301. CBN_SELCHANGE = 1;
  7302. {$EXTERNALSYM CBN_SELCHANGE}
  7303. CBN_DBLCLK = 2;
  7304. {$EXTERNALSYM CBN_DBLCLK}
  7305. CBN_SETFOCUS = 3;
  7306. {$EXTERNALSYM CBN_SETFOCUS}
  7307. CBN_KILLFOCUS = 4;
  7308. {$EXTERNALSYM CBN_KILLFOCUS}
  7309. CBN_EDITCHANGE = 5;
  7310. {$EXTERNALSYM CBN_EDITCHANGE}
  7311. CBN_EDITUPDATE = 6;
  7312. {$EXTERNALSYM CBN_EDITUPDATE}
  7313. CBN_DROPDOWN = 7;
  7314. {$EXTERNALSYM CBN_DROPDOWN}
  7315. CBN_CLOSEUP = 8;
  7316. {$EXTERNALSYM CBN_CLOSEUP}
  7317. CBN_SELENDOK = 9;
  7318. {$EXTERNALSYM CBN_SELENDOK}
  7319. CBN_SELENDCANCEL = 10;
  7320. {$EXTERNALSYM CBN_SELENDCANCEL}
  7321. //
  7322. // Combo Box styles
  7323. //
  7324. CBS_SIMPLE = $0001;
  7325. {$EXTERNALSYM CBS_SIMPLE}
  7326. CBS_DROPDOWN = $0002;
  7327. {$EXTERNALSYM CBS_DROPDOWN}
  7328. CBS_DROPDOWNLIST = $0003;
  7329. {$EXTERNALSYM CBS_DROPDOWNLIST}
  7330. CBS_OWNERDRAWFIXED = $0010;
  7331. {$EXTERNALSYM CBS_OWNERDRAWFIXED}
  7332. CBS_OWNERDRAWVARIABLE = $0020;
  7333. {$EXTERNALSYM CBS_OWNERDRAWVARIABLE}
  7334. CBS_AUTOHSCROLL = $0040;
  7335. {$EXTERNALSYM CBS_AUTOHSCROLL}
  7336. CBS_OEMCONVERT = $0080;
  7337. {$EXTERNALSYM CBS_OEMCONVERT}
  7338. CBS_SORT = $0100;
  7339. {$EXTERNALSYM CBS_SORT}
  7340. CBS_HASSTRINGS = $0200;
  7341. {$EXTERNALSYM CBS_HASSTRINGS}
  7342. CBS_NOINTEGRALHEIGHT = $0400;
  7343. {$EXTERNALSYM CBS_NOINTEGRALHEIGHT}
  7344. CBS_DISABLENOSCROLL = $0800;
  7345. {$EXTERNALSYM CBS_DISABLENOSCROLL}
  7346. CBS_UPPERCASE = $2000;
  7347. {$EXTERNALSYM CBS_UPPERCASE}
  7348. CBS_LOWERCASE = $4000;
  7349. {$EXTERNALSYM CBS_LOWERCASE}
  7350. //
  7351. // Combo Box messages
  7352. //
  7353. CB_GETEDITSEL = $0140;
  7354. {$EXTERNALSYM CB_GETEDITSEL}
  7355. CB_LIMITTEXT = $0141;
  7356. {$EXTERNALSYM CB_LIMITTEXT}
  7357. CB_SETEDITSEL = $0142;
  7358. {$EXTERNALSYM CB_SETEDITSEL}
  7359. CB_ADDSTRING = $0143;
  7360. {$EXTERNALSYM CB_ADDSTRING}
  7361. CB_DELETESTRING = $0144;
  7362. {$EXTERNALSYM CB_DELETESTRING}
  7363. CB_DIR = $0145;
  7364. {$EXTERNALSYM CB_DIR}
  7365. CB_GETCOUNT = $0146;
  7366. {$EXTERNALSYM CB_GETCOUNT}
  7367. CB_GETCURSEL = $0147;
  7368. {$EXTERNALSYM CB_GETCURSEL}
  7369. CB_GETLBTEXT = $0148;
  7370. {$EXTERNALSYM CB_GETLBTEXT}
  7371. CB_GETLBTEXTLEN = $0149;
  7372. {$EXTERNALSYM CB_GETLBTEXTLEN}
  7373. CB_INSERTSTRING = $014A;
  7374. {$EXTERNALSYM CB_INSERTSTRING}
  7375. CB_RESETCONTENT = $014B;
  7376. {$EXTERNALSYM CB_RESETCONTENT}
  7377. CB_FINDSTRING = $014C;
  7378. {$EXTERNALSYM CB_FINDSTRING}
  7379. CB_SELECTSTRING = $014D;
  7380. {$EXTERNALSYM CB_SELECTSTRING}
  7381. CB_SETCURSEL = $014E;
  7382. {$EXTERNALSYM CB_SETCURSEL}
  7383. CB_SHOWDROPDOWN = $014F;
  7384. {$EXTERNALSYM CB_SHOWDROPDOWN}
  7385. CB_GETITEMDATA = $0150;
  7386. {$EXTERNALSYM CB_GETITEMDATA}
  7387. CB_SETITEMDATA = $0151;
  7388. {$EXTERNALSYM CB_SETITEMDATA}
  7389. CB_GETDROPPEDCONTROLRECT = $0152;
  7390. {$EXTERNALSYM CB_GETDROPPEDCONTROLRECT}
  7391. CB_SETITEMHEIGHT = $0153;
  7392. {$EXTERNALSYM CB_SETITEMHEIGHT}
  7393. CB_GETITEMHEIGHT = $0154;
  7394. {$EXTERNALSYM CB_GETITEMHEIGHT}
  7395. CB_SETEXTENDEDUI = $0155;
  7396. {$EXTERNALSYM CB_SETEXTENDEDUI}
  7397. CB_GETEXTENDEDUI = $0156;
  7398. {$EXTERNALSYM CB_GETEXTENDEDUI}
  7399. CB_GETDROPPEDSTATE = $0157;
  7400. {$EXTERNALSYM CB_GETDROPPEDSTATE}
  7401. CB_FINDSTRINGEXACT = $0158;
  7402. {$EXTERNALSYM CB_FINDSTRINGEXACT}
  7403. CB_SETLOCALE = $0159;
  7404. {$EXTERNALSYM CB_SETLOCALE}
  7405. CB_GETLOCALE = $015A;
  7406. {$EXTERNALSYM CB_GETLOCALE}
  7407. CB_GETTOPINDEX = $015b;
  7408. {$EXTERNALSYM CB_GETTOPINDEX}
  7409. CB_SETTOPINDEX = $015c;
  7410. {$EXTERNALSYM CB_SETTOPINDEX}
  7411. CB_GETHORIZONTALEXTENT = $015d;
  7412. {$EXTERNALSYM CB_GETHORIZONTALEXTENT}
  7413. CB_SETHORIZONTALEXTENT = $015e;
  7414. {$EXTERNALSYM CB_SETHORIZONTALEXTENT}
  7415. CB_GETDROPPEDWIDTH = $015f;
  7416. {$EXTERNALSYM CB_GETDROPPEDWIDTH}
  7417. CB_SETDROPPEDWIDTH = $0160;
  7418. {$EXTERNALSYM CB_SETDROPPEDWIDTH}
  7419. CB_INITSTORAGE = $0161;
  7420. {$EXTERNALSYM CB_INITSTORAGE}
  7421. CB_MULTIPLEADDSTRING = $0163;
  7422. {$EXTERNALSYM CB_MULTIPLEADDSTRING}
  7423. CB_GETCOMBOBOXINFO = $0164;
  7424. {$EXTERNALSYM CB_GETCOMBOBOXINFO}
  7425. {$IFDEF WINXP_UP}
  7426. CB_MSGMAX = $0165;
  7427. {$EXTERNALSYM CB_MSGMAX}
  7428. {$ELSE}
  7429. CB_MSGMAX = $0162;
  7430. {$EXTERNALSYM CB_MSGMAX}
  7431. {$ENDIF WINXP_UP}
  7432. //
  7433. // Scroll Bar Styles
  7434. //
  7435. SBS_HORZ = $0000;
  7436. {$EXTERNALSYM SBS_HORZ}
  7437. SBS_VERT = $0001;
  7438. {$EXTERNALSYM SBS_VERT}
  7439. SBS_TOPALIGN = $0002;
  7440. {$EXTERNALSYM SBS_TOPALIGN}
  7441. SBS_LEFTALIGN = $0002;
  7442. {$EXTERNALSYM SBS_LEFTALIGN}
  7443. SBS_BOTTOMALIGN = $0004;
  7444. {$EXTERNALSYM SBS_BOTTOMALIGN}
  7445. SBS_RIGHTALIGN = $0004;
  7446. {$EXTERNALSYM SBS_RIGHTALIGN}
  7447. SBS_SIZEBOXTOPLEFTALIGN = $0002;
  7448. {$EXTERNALSYM SBS_SIZEBOXTOPLEFTALIGN}
  7449. SBS_SIZEBOXBOTTOMRIGHTALIGN = $0004;
  7450. {$EXTERNALSYM SBS_SIZEBOXBOTTOMRIGHTALIGN}
  7451. SBS_SIZEBOX = $0008;
  7452. {$EXTERNALSYM SBS_SIZEBOX}
  7453. SBS_SIZEGRIP = $0010;
  7454. {$EXTERNALSYM SBS_SIZEGRIP}
  7455. //
  7456. // Scroll bar messages
  7457. //
  7458. SBM_SETPOS = $00E0; // not in win3.1
  7459. {$EXTERNALSYM SBM_SETPOS}
  7460. SBM_GETPOS = $00E1; // not in win3.1
  7461. {$EXTERNALSYM SBM_GETPOS}
  7462. SBM_SETRANGE = $00E2; // not in win3.1
  7463. {$EXTERNALSYM SBM_SETRANGE}
  7464. SBM_SETRANGEREDRAW = $00E6; // not in win3.1
  7465. {$EXTERNALSYM SBM_SETRANGEREDRAW}
  7466. SBM_GETRANGE = $00E3; // not in win3.1
  7467. {$EXTERNALSYM SBM_GETRANGE}
  7468. SBM_ENABLE_ARROWS = $00E4; // not in win3.1
  7469. {$EXTERNALSYM SBM_ENABLE_ARROWS}
  7470. SBM_SETSCROLLINFO = $00E9;
  7471. {$EXTERNALSYM SBM_SETSCROLLINFO}
  7472. SBM_GETSCROLLINFO = $00EA;
  7473. {$EXTERNALSYM SBM_GETSCROLLINFO}
  7474. SBM_GETSCROLLBARINFO = $00EB;
  7475. {$EXTERNALSYM SBM_GETSCROLLBARINFO}
  7476. SIF_RANGE = $0001;
  7477. {$EXTERNALSYM SIF_RANGE}
  7478. SIF_PAGE = $0002;
  7479. {$EXTERNALSYM SIF_PAGE}
  7480. SIF_POS = $0004;
  7481. {$EXTERNALSYM SIF_POS}
  7482. SIF_DISABLENOSCROLL = $0008;
  7483. {$EXTERNALSYM SIF_DISABLENOSCROLL}
  7484. SIF_TRACKPOS = $0010;
  7485. {$EXTERNALSYM SIF_TRACKPOS}
  7486. SIF_ALL = SIF_RANGE or SIF_PAGE or SIF_POS or SIF_TRACKPOS;
  7487. {$EXTERNALSYM SIF_ALL}
  7488. type
  7489. LPSCROLLINFO = ^SCROLLINFO;
  7490. {$EXTERNALSYM LPSCROLLINFO}
  7491. tagSCROLLINFO = record
  7492. cbSize: UINT;
  7493. fMask: UINT;
  7494. nMin: Integer;
  7495. nMax: Integer;
  7496. nPage: UINT;
  7497. nPos: Integer;
  7498. nTrackPos: Integer;
  7499. end;
  7500. {$EXTERNALSYM tagSCROLLINFO}
  7501. SCROLLINFO = tagSCROLLINFO;
  7502. {$EXTERNALSYM SCROLLINFO}
  7503. TScrollInfo = SCROLLINFO;
  7504. PScrollInfo = LPSCROLLINFO;
  7505. function SetScrollInfo(hwnd: HWND; fnBar: Integer; const lpsi: SCROLLINFO;
  7506. fRedraw: BOOL): Integer; stdcall;
  7507. {$EXTERNALSYM SetScrollInfo}
  7508. function GetScrollInfo(hwnd: HWND; fnBar: Integer; var lpsi: SCROLLINFO): BOOL; stdcall;
  7509. {$EXTERNALSYM GetScrollInfo}
  7510. //
  7511. // MDI client style bits
  7512. //
  7513. const
  7514. MDIS_ALLCHILDSTYLES = $0001;
  7515. {$EXTERNALSYM MDIS_ALLCHILDSTYLES}
  7516. //
  7517. // wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
  7518. //
  7519. const
  7520. MDITILE_VERTICAL = $0000; // not in win3.1
  7521. {$EXTERNALSYM MDITILE_VERTICAL}
  7522. MDITILE_HORIZONTAL = $0001; // not in win3.1
  7523. {$EXTERNALSYM MDITILE_HORIZONTAL}
  7524. MDITILE_SKIPDISABLED = $0002; // not in win3.1
  7525. {$EXTERNALSYM MDITILE_SKIPDISABLED}
  7526. MDITILE_ZORDER = $0004;
  7527. {$EXTERNALSYM MDITILE_ZORDER}
  7528. type
  7529. LPMDICREATESTRUCTA = ^MDICREATESTRUCTA;
  7530. {$EXTERNALSYM LPMDICREATESTRUCTA}
  7531. tagMDICREATESTRUCTA = record
  7532. szClass: LPCSTR;
  7533. szTitle: LPCSTR;
  7534. hOwner: HANDLE;
  7535. x: Integer;
  7536. y: Integer;
  7537. cx: Integer;
  7538. cy: Integer;
  7539. style: DWORD;
  7540. lParam: LPARAM; // app-defined stuff//
  7541. end;
  7542. {$EXTERNALSYM tagMDICREATESTRUCTA}
  7543. MDICREATESTRUCTA = tagMDICREATESTRUCTA;
  7544. {$EXTERNALSYM MDICREATESTRUCTA}
  7545. TMdiCreateStructA = MDICREATESTRUCTA;
  7546. PMdiCreateStructA = LPMDICREATESTRUCTA;
  7547. LPMDICREATESTRUCTW = ^MDICREATESTRUCTW;
  7548. {$EXTERNALSYM LPMDICREATESTRUCTW}
  7549. tagMDICREATESTRUCTW = record
  7550. szClass: LPCWSTR;
  7551. szTitle: LPCWSTR;
  7552. hOwner: HANDLE;
  7553. x: Integer;
  7554. y: Integer;
  7555. cx: Integer;
  7556. cy: Integer;
  7557. style: DWORD;
  7558. lParam: LPARAM; // app-defined stuff//
  7559. end;
  7560. {$EXTERNALSYM tagMDICREATESTRUCTW}
  7561. MDICREATESTRUCTW = tagMDICREATESTRUCTW;
  7562. {$EXTERNALSYM MDICREATESTRUCTW}
  7563. TMdiCreateStructW = MDICREATESTRUCTW;
  7564. PMdiCreateStructW = LPMDICREATESTRUCTW;
  7565. {$IFDEF UNICODE}
  7566. MDICREATESTRUCT = MDICREATESTRUCTW;
  7567. {$EXTERNALSYM MDICREATESTRUCT}
  7568. LPMDICREATESTRUCT = LPMDICREATESTRUCTW;
  7569. {$EXTERNALSYM LPMDICREATESTRUCT}
  7570. TMdiCreateStruct = TMdiCreateStructW;
  7571. PMdiCreateStruct = PMdiCreateStructW;
  7572. {$ELSE}
  7573. MDICREATESTRUCT = MDICREATESTRUCTA;
  7574. {$EXTERNALSYM MDICREATESTRUCT}
  7575. LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
  7576. {$EXTERNALSYM LPMDICREATESTRUCT}
  7577. TMdiCreateStruct = TMdiCreateStructA;
  7578. PMdiCreateStruct = PMdiCreateStructA;
  7579. {$ENDIF UNICODE}
  7580. LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  7581. {$EXTERNALSYM LPCLIENTCREATESTRUCT}
  7582. tagCLIENTCREATESTRUCT = record
  7583. hWindowMenu: HANDLE;
  7584. idFirstChild: UINT;
  7585. end;
  7586. {$EXTERNALSYM tagCLIENTCREATESTRUCT}
  7587. CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT;
  7588. {$EXTERNALSYM CLIENTCREATESTRUCT}
  7589. TClientCreateStruct = CLIENTCREATESTRUCT;
  7590. PClientCreateStruct = LPCLIENTCREATESTRUCT;
  7591. function DefFrameProcA(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7592. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7593. {$EXTERNALSYM DefFrameProcA}
  7594. function DefFrameProcW(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7595. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7596. {$EXTERNALSYM DefFrameProcW}
  7597. function DefFrameProc(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7598. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7599. {$EXTERNALSYM DefFrameProc}
  7600. function DefMDIChildProcA(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7601. {$EXTERNALSYM DefMDIChildProcA}
  7602. function DefMDIChildProcW(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7603. {$EXTERNALSYM DefMDIChildProcW}
  7604. function DefMDIChildProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7605. {$EXTERNALSYM DefMDIChildProc}
  7606. function TranslateMDISysAccel(hWndClient: HWND; const lpMsg: MSG): BOOL; stdcall;
  7607. {$EXTERNALSYM TranslateMDISysAccel}
  7608. function ArrangeIconicWindows(hWnd: HWND): UINT; stdcall;
  7609. {$EXTERNALSYM ArrangeIconicWindows}
  7610. function CreateMDIWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  7611. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7612. lParam: LPARAM): HWND; stdcall;
  7613. {$EXTERNALSYM CreateMDIWindowA}
  7614. function CreateMDIWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  7615. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7616. lParam: LPARAM): HWND; stdcall;
  7617. {$EXTERNALSYM CreateMDIWindowW}
  7618. function CreateMDIWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  7619. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7620. lParam: LPARAM): HWND; stdcall;
  7621. {$EXTERNALSYM CreateMDIWindow}
  7622. function TileWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT; cKids: UINT;
  7623. hwnd: HWND; lpKids: LPHWND): WORD; stdcall;
  7624. {$EXTERNALSYM TileWindows}
  7625. function CascadeWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT;
  7626. cKids: UINT; lpKids: LPHWND): WORD; stdcall;
  7627. {$EXTERNALSYM CascadeWindows}
  7628. //***** Help support ********************************************************/
  7629. type
  7630. HELPPOLY = DWORD;
  7631. {$EXTERNALSYM HELPPOLY}
  7632. LPMULTIKEYHELPA = ^MULTIKEYHELPA;
  7633. {$EXTERNALSYM LPMULTIKEYHELPA}
  7634. tagMULTIKEYHELPA = record
  7635. mkSize: DWORD;
  7636. mkKeylist: CHAR;
  7637. szKeyphrase: array [0..0] of CHAR;
  7638. end;
  7639. {$EXTERNALSYM tagMULTIKEYHELPA}
  7640. MULTIKEYHELPA = tagMULTIKEYHELPA;
  7641. {$EXTERNALSYM MULTIKEYHELPA}
  7642. TMultiKeyHelpA = MULTIKEYHELPA;
  7643. PMultiKeyHelpA = LPMULTIKEYHELPA;
  7644. LPMULTIKEYHELPW = ^MULTIKEYHELPW;
  7645. {$EXTERNALSYM LPMULTIKEYHELPW}
  7646. tagMULTIKEYHELPW = record
  7647. mkSize: DWORD;
  7648. mkKeylist: WCHAR;
  7649. szKeyphrase: array [0..0] of WCHAR;
  7650. end;
  7651. {$EXTERNALSYM tagMULTIKEYHELPW}
  7652. MULTIKEYHELPW = tagMULTIKEYHELPW;
  7653. {$EXTERNALSYM MULTIKEYHELPW}
  7654. TMultiKeyHelpW = MULTIKEYHELPW;
  7655. PMultiKeyHelpW = LPMULTIKEYHELPW;
  7656. {$IFDEF UNICODE}
  7657. MULTIKEYHELP = MULTIKEYHELPW;
  7658. {$EXTERNALSYM MULTIKEYHELP}
  7659. LPMULTIKEYHELP = LPMULTIKEYHELPW;
  7660. {$EXTERNALSYM LPMULTIKEYHELP}
  7661. TMultiKeyHelp = TMultiKeyHelpW;
  7662. PMultiKeyHelp = PMultiKeyHelpW;
  7663. {$ELSE}
  7664. MULTIKEYHELP = MULTIKEYHELPA;
  7665. {$EXTERNALSYM MULTIKEYHELP}
  7666. LPMULTIKEYHELP = LPMULTIKEYHELPA;
  7667. {$EXTERNALSYM LPMULTIKEYHELP}
  7668. TMultiKeyHelp = TMultiKeyHelpA;
  7669. PMultiKeyHelp = PMultiKeyHelpA;
  7670. {$ENDIF UNICODE}
  7671. LPHELPWININFOA = ^HELPWININFOA;
  7672. {$EXTERNALSYM LPHELPWININFOA}
  7673. tagHELPWININFOA = record
  7674. wStructSize: Integer;
  7675. x: Integer;
  7676. y: Integer;
  7677. dx: Integer;
  7678. dy: Integer;
  7679. wMax: Integer;
  7680. rgchMember: array [0..1] of CHAR;
  7681. end;
  7682. {$EXTERNALSYM tagHELPWININFOA}
  7683. HELPWININFOA = tagHELPWININFOA;
  7684. {$EXTERNALSYM HELPWININFOA}
  7685. THelpWinInfoA = HELPWININFOA;
  7686. PHelpWinInfoA = LPHELPWININFOA;
  7687. LPHELPWININFOW = ^HELPWININFOW;
  7688. {$EXTERNALSYM LPHELPWININFOW}
  7689. tagHELPWININFOW = record
  7690. wStructSize: Integer;
  7691. x: Integer;
  7692. y: Integer;
  7693. dx: Integer;
  7694. dy: Integer;
  7695. wMax: Integer;
  7696. rgchMember: array [0..1] of WCHAR;
  7697. end;
  7698. {$EXTERNALSYM tagHELPWININFOW}
  7699. HELPWININFOW = tagHELPWININFOW;
  7700. {$EXTERNALSYM HELPWININFOW}
  7701. THelpWinInfoW = HELPWININFOW;
  7702. PHelpWinInfoW = LPHELPWININFOW;
  7703. {$IFDEF UNICODE}
  7704. HELPWININFO = HELPWININFOW;
  7705. {$EXTERNALSYM HELPWININFO}
  7706. LPHELPWININFO = LPHELPWININFOW;
  7707. {$EXTERNALSYM LPHELPWININFO}
  7708. THelpWinInfo = THelpWinInfoW;
  7709. PHelpWinInfo = PHelpWinInfoW;
  7710. {$ELSE}
  7711. HELPWININFO = HELPWININFOA;
  7712. {$EXTERNALSYM HELPWININFO}
  7713. LPHELPWININFO = LPHELPWININFOA;
  7714. {$EXTERNALSYM LPHELPWININFO}
  7715. THelpWinInfo = THelpWinInfoA;
  7716. PHelpWinInfo = PHelpWinInfoA;
  7717. {$ENDIF UNICODE}
  7718. //
  7719. // Commands to pass to WinHelp()
  7720. //
  7721. const
  7722. HELP_CONTEXT = $0001; // Display topic in ulTopic
  7723. {$EXTERNALSYM HELP_CONTEXT}
  7724. HELP_QUIT = $0002; // Terminate help
  7725. {$EXTERNALSYM HELP_QUIT}
  7726. HELP_INDEX = $0003; // Display index
  7727. {$EXTERNALSYM HELP_INDEX}
  7728. HELP_CONTENTS = $0003;
  7729. {$EXTERNALSYM HELP_CONTENTS}
  7730. HELP_HELPONHELP = $0004; // Display help on using help
  7731. {$EXTERNALSYM HELP_HELPONHELP}
  7732. HELP_SETINDEX = $0005; // Set current Index for multi index help
  7733. {$EXTERNALSYM HELP_SETINDEX}
  7734. HELP_SETCONTENTS = $0005;
  7735. {$EXTERNALSYM HELP_SETCONTENTS}
  7736. HELP_CONTEXTPOPUP = $0008;
  7737. {$EXTERNALSYM HELP_CONTEXTPOPUP}
  7738. HELP_FORCEFILE = $0009;
  7739. {$EXTERNALSYM HELP_FORCEFILE}
  7740. HELP_KEY = $0101; // Display topic for keyword in offabData
  7741. {$EXTERNALSYM HELP_KEY}
  7742. HELP_COMMAND = $0102;
  7743. {$EXTERNALSYM HELP_COMMAND}
  7744. HELP_PARTIALKEY = $0105;
  7745. {$EXTERNALSYM HELP_PARTIALKEY}
  7746. HELP_MULTIKEY = $0201;
  7747. {$EXTERNALSYM HELP_MULTIKEY}
  7748. HELP_SETWINPOS = $0203;
  7749. {$EXTERNALSYM HELP_SETWINPOS}
  7750. HELP_CONTEXTMENU = $000a;
  7751. {$EXTERNALSYM HELP_CONTEXTMENU}
  7752. HELP_FINDER = $000b;
  7753. {$EXTERNALSYM HELP_FINDER}
  7754. HELP_WM_HELP = $000c;
  7755. {$EXTERNALSYM HELP_WM_HELP}
  7756. HELP_SETPOPUP_POS = $000d;
  7757. {$EXTERNALSYM HELP_SETPOPUP_POS}
  7758. HELP_TCARD = $8000;
  7759. {$EXTERNALSYM HELP_TCARD}
  7760. HELP_TCARD_DATA = $0010;
  7761. {$EXTERNALSYM HELP_TCARD_DATA}
  7762. HELP_TCARD_OTHER_CALLER = $0011;
  7763. {$EXTERNALSYM HELP_TCARD_OTHER_CALLER}
  7764. // These are in winhelp.h in Win95.
  7765. IDH_NO_HELP = 28440;
  7766. {$EXTERNALSYM IDH_NO_HELP}
  7767. IDH_MISSING_CONTEXT = 28441; // Control doesn't have matching help context
  7768. {$EXTERNALSYM IDH_MISSING_CONTEXT}
  7769. IDH_GENERIC_HELP_BUTTON = 28442; // Property sheet help button
  7770. {$EXTERNALSYM IDH_GENERIC_HELP_BUTTON}
  7771. IDH_OK = 28443;
  7772. {$EXTERNALSYM IDH_OK}
  7773. IDH_CANCEL = 28444;
  7774. {$EXTERNALSYM IDH_CANCEL}
  7775. IDH_HELP = 28445;
  7776. {$EXTERNALSYM IDH_HELP}
  7777. function WinHelpA(hWndMain: HWND; lpszHelp: LPCSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7778. {$EXTERNALSYM WinHelpA}
  7779. function WinHelpW(hWndMain: HWND; lpszHelp: LPCWSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7780. {$EXTERNALSYM WinHelpW}
  7781. function WinHelp(hWndMain: HWND; lpszHelp: LPCTSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7782. {$EXTERNALSYM WinHelp}
  7783. const
  7784. GR_GDIOBJECTS = 0; // Count of GDI objects
  7785. {$EXTERNALSYM GR_GDIOBJECTS}
  7786. GR_USEROBJECTS = 1; // Count of USER objects
  7787. {$EXTERNALSYM GR_USEROBJECTS}
  7788. function GetGuiResources(hProcess: HANDLE; uiFlags: DWORD): DWORD; stdcall;
  7789. {$EXTERNALSYM GetGuiResources}
  7790. //
  7791. // Parameter for SystemParametersInfo()
  7792. //
  7793. const
  7794. SPI_GETBEEP = 1;
  7795. {$EXTERNALSYM SPI_GETBEEP}
  7796. SPI_SETBEEP = 2;
  7797. {$EXTERNALSYM SPI_SETBEEP}
  7798. SPI_GETMOUSE = 3;
  7799. {$EXTERNALSYM SPI_GETMOUSE}
  7800. SPI_SETMOUSE = 4;
  7801. {$EXTERNALSYM SPI_SETMOUSE}
  7802. SPI_GETBORDER = 5;
  7803. {$EXTERNALSYM SPI_GETBORDER}
  7804. SPI_SETBORDER = 6;
  7805. {$EXTERNALSYM SPI_SETBORDER}
  7806. SPI_GETKEYBOARDSPEED = 10;
  7807. {$EXTERNALSYM SPI_GETKEYBOARDSPEED}
  7808. SPI_SETKEYBOARDSPEED = 11;
  7809. {$EXTERNALSYM SPI_SETKEYBOARDSPEED}
  7810. SPI_LANGDRIVER = 12;
  7811. {$EXTERNALSYM SPI_LANGDRIVER}
  7812. SPI_ICONHORIZONTALSPACING = 13;
  7813. {$EXTERNALSYM SPI_ICONHORIZONTALSPACING}
  7814. SPI_GETSCREENSAVETIMEOUT = 14;
  7815. {$EXTERNALSYM SPI_GETSCREENSAVETIMEOUT}
  7816. SPI_SETSCREENSAVETIMEOUT = 15;
  7817. {$EXTERNALSYM SPI_SETSCREENSAVETIMEOUT}
  7818. SPI_GETSCREENSAVEACTIVE = 16;
  7819. {$EXTERNALSYM SPI_GETSCREENSAVEACTIVE}
  7820. SPI_SETSCREENSAVEACTIVE = 17;
  7821. {$EXTERNALSYM SPI_SETSCREENSAVEACTIVE}
  7822. SPI_GETGRIDGRANULARITY = 18;
  7823. {$EXTERNALSYM SPI_GETGRIDGRANULARITY}
  7824. SPI_SETGRIDGRANULARITY = 19;
  7825. {$EXTERNALSYM SPI_SETGRIDGRANULARITY}
  7826. SPI_SETDESKWALLPAPER = 20;
  7827. {$EXTERNALSYM SPI_SETDESKWALLPAPER}
  7828. SPI_SETDESKPATTERN = 21;
  7829. {$EXTERNALSYM SPI_SETDESKPATTERN}
  7830. SPI_GETKEYBOARDDELAY = 22;
  7831. {$EXTERNALSYM SPI_GETKEYBOARDDELAY}
  7832. SPI_SETKEYBOARDDELAY = 23;
  7833. {$EXTERNALSYM SPI_SETKEYBOARDDELAY}
  7834. SPI_ICONVERTICALSPACING = 24;
  7835. {$EXTERNALSYM SPI_ICONVERTICALSPACING}
  7836. SPI_GETICONTITLEWRAP = 25;
  7837. {$EXTERNALSYM SPI_GETICONTITLEWRAP}
  7838. SPI_SETICONTITLEWRAP = 26;
  7839. {$EXTERNALSYM SPI_SETICONTITLEWRAP}
  7840. SPI_GETMENUDROPALIGNMENT = 27;
  7841. {$EXTERNALSYM SPI_GETMENUDROPALIGNMENT}
  7842. SPI_SETMENUDROPALIGNMENT = 28;
  7843. {$EXTERNALSYM SPI_SETMENUDROPALIGNMENT}
  7844. SPI_SETDOUBLECLKWIDTH = 29;
  7845. {$EXTERNALSYM SPI_SETDOUBLECLKWIDTH}
  7846. SPI_SETDOUBLECLKHEIGHT = 30;
  7847. {$EXTERNALSYM SPI_SETDOUBLECLKHEIGHT}
  7848. SPI_GETICONTITLELOGFONT = 31;
  7849. {$EXTERNALSYM SPI_GETICONTITLELOGFONT}
  7850. SPI_SETDOUBLECLICKTIME = 32;
  7851. {$EXTERNALSYM SPI_SETDOUBLECLICKTIME}
  7852. SPI_SETMOUSEBUTTONSWAP = 33;
  7853. {$EXTERNALSYM SPI_SETMOUSEBUTTONSWAP}
  7854. SPI_SETICONTITLELOGFONT = 34;
  7855. {$EXTERNALSYM SPI_SETICONTITLELOGFONT}
  7856. SPI_GETFASTTASKSWITCH = 35;
  7857. {$EXTERNALSYM SPI_GETFASTTASKSWITCH}
  7858. SPI_SETFASTTASKSWITCH = 36;
  7859. {$EXTERNALSYM SPI_SETFASTTASKSWITCH}
  7860. SPI_SETDRAGFULLWINDOWS = 37;
  7861. {$EXTERNALSYM SPI_SETDRAGFULLWINDOWS}
  7862. SPI_GETDRAGFULLWINDOWS = 38;
  7863. {$EXTERNALSYM SPI_GETDRAGFULLWINDOWS}
  7864. SPI_GETNONCLIENTMETRICS = 41;
  7865. {$EXTERNALSYM SPI_GETNONCLIENTMETRICS}
  7866. SPI_SETNONCLIENTMETRICS = 42;
  7867. {$EXTERNALSYM SPI_SETNONCLIENTMETRICS}
  7868. SPI_GETMINIMIZEDMETRICS = 43;
  7869. {$EXTERNALSYM SPI_GETMINIMIZEDMETRICS}
  7870. SPI_SETMINIMIZEDMETRICS = 44;
  7871. {$EXTERNALSYM SPI_SETMINIMIZEDMETRICS}
  7872. SPI_GETICONMETRICS = 45;
  7873. {$EXTERNALSYM SPI_GETICONMETRICS}
  7874. SPI_SETICONMETRICS = 46;
  7875. {$EXTERNALSYM SPI_SETICONMETRICS}
  7876. SPI_SETWORKAREA = 47;
  7877. {$EXTERNALSYM SPI_SETWORKAREA}
  7878. SPI_GETWORKAREA = 48;
  7879. {$EXTERNALSYM SPI_GETWORKAREA}
  7880. SPI_SETPENWINDOWS = 49;
  7881. {$EXTERNALSYM SPI_SETPENWINDOWS}
  7882. SPI_GETHIGHCONTRAST = 66;
  7883. {$EXTERNALSYM SPI_GETHIGHCONTRAST}
  7884. SPI_SETHIGHCONTRAST = 67;
  7885. {$EXTERNALSYM SPI_SETHIGHCONTRAST}
  7886. SPI_GETKEYBOARDPREF = 68;
  7887. {$EXTERNALSYM SPI_GETKEYBOARDPREF}
  7888. SPI_SETKEYBOARDPREF = 69;
  7889. {$EXTERNALSYM SPI_SETKEYBOARDPREF}
  7890. SPI_GETSCREENREADER = 70;
  7891. {$EXTERNALSYM SPI_GETSCREENREADER}
  7892. SPI_SETSCREENREADER = 71;
  7893. {$EXTERNALSYM SPI_SETSCREENREADER}
  7894. SPI_GETANIMATION = 72;
  7895. {$EXTERNALSYM SPI_GETANIMATION}
  7896. SPI_SETANIMATION = 73;
  7897. {$EXTERNALSYM SPI_SETANIMATION}
  7898. SPI_GETFONTSMOOTHING = 74;
  7899. {$EXTERNALSYM SPI_GETFONTSMOOTHING}
  7900. SPI_SETFONTSMOOTHING = 75;
  7901. {$EXTERNALSYM SPI_SETFONTSMOOTHING}
  7902. SPI_SETDRAGWIDTH = 76;
  7903. {$EXTERNALSYM SPI_SETDRAGWIDTH}
  7904. SPI_SETDRAGHEIGHT = 77;
  7905. {$EXTERNALSYM SPI_SETDRAGHEIGHT}
  7906. SPI_SETHANDHELD = 78;
  7907. {$EXTERNALSYM SPI_SETHANDHELD}
  7908. SPI_GETLOWPOWERTIMEOUT = 79;
  7909. {$EXTERNALSYM SPI_GETLOWPOWERTIMEOUT}
  7910. SPI_GETPOWEROFFTIMEOUT = 80;
  7911. {$EXTERNALSYM SPI_GETPOWEROFFTIMEOUT}
  7912. SPI_SETLOWPOWERTIMEOUT = 81;
  7913. {$EXTERNALSYM SPI_SETLOWPOWERTIMEOUT}
  7914. SPI_SETPOWEROFFTIMEOUT = 82;
  7915. {$EXTERNALSYM SPI_SETPOWEROFFTIMEOUT}
  7916. SPI_GETLOWPOWERACTIVE = 83;
  7917. {$EXTERNALSYM SPI_GETLOWPOWERACTIVE}
  7918. SPI_GETPOWEROFFACTIVE = 84;
  7919. {$EXTERNALSYM SPI_GETPOWEROFFACTIVE}
  7920. SPI_SETLOWPOWERACTIVE = 85;
  7921. {$EXTERNALSYM SPI_SETLOWPOWERACTIVE}
  7922. SPI_SETPOWEROFFACTIVE = 86;
  7923. {$EXTERNALSYM SPI_SETPOWEROFFACTIVE}
  7924. SPI_SETCURSORS = 87;
  7925. {$EXTERNALSYM SPI_SETCURSORS}
  7926. SPI_SETICONS = 88;
  7927. {$EXTERNALSYM SPI_SETICONS}
  7928. SPI_GETDEFAULTINPUTLANG = 89;
  7929. {$EXTERNALSYM SPI_GETDEFAULTINPUTLANG}
  7930. SPI_SETDEFAULTINPUTLANG = 90;
  7931. {$EXTERNALSYM SPI_SETDEFAULTINPUTLANG}
  7932. SPI_SETLANGTOGGLE = 91;
  7933. {$EXTERNALSYM SPI_SETLANGTOGGLE}
  7934. SPI_GETWINDOWSEXTENSION = 92;
  7935. {$EXTERNALSYM SPI_GETWINDOWSEXTENSION}
  7936. SPI_SETMOUSETRAILS = 93;
  7937. {$EXTERNALSYM SPI_SETMOUSETRAILS}
  7938. SPI_GETMOUSETRAILS = 94;
  7939. {$EXTERNALSYM SPI_GETMOUSETRAILS}
  7940. SPI_SETSCREENSAVERRUNNING = 97;
  7941. {$EXTERNALSYM SPI_SETSCREENSAVERRUNNING}
  7942. SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING;
  7943. {$EXTERNALSYM SPI_SCREENSAVERRUNNING}
  7944. SPI_GETFILTERKEYS = 50;
  7945. {$EXTERNALSYM SPI_GETFILTERKEYS}
  7946. SPI_SETFILTERKEYS = 51;
  7947. {$EXTERNALSYM SPI_SETFILTERKEYS}
  7948. SPI_GETTOGGLEKEYS = 52;
  7949. {$EXTERNALSYM SPI_GETTOGGLEKEYS}
  7950. SPI_SETTOGGLEKEYS = 53;
  7951. {$EXTERNALSYM SPI_SETTOGGLEKEYS}
  7952. SPI_GETMOUSEKEYS = 54;
  7953. {$EXTERNALSYM SPI_GETMOUSEKEYS}
  7954. SPI_SETMOUSEKEYS = 55;
  7955. {$EXTERNALSYM SPI_SETMOUSEKEYS}
  7956. SPI_GETSHOWSOUNDS = 56;
  7957. {$EXTERNALSYM SPI_GETSHOWSOUNDS}
  7958. SPI_SETSHOWSOUNDS = 57;
  7959. {$EXTERNALSYM SPI_SETSHOWSOUNDS}
  7960. SPI_GETSTICKYKEYS = 58;
  7961. {$EXTERNALSYM SPI_GETSTICKYKEYS}
  7962. SPI_SETSTICKYKEYS = 59;
  7963. {$EXTERNALSYM SPI_SETSTICKYKEYS}
  7964. SPI_GETACCESSTIMEOUT = 60;
  7965. {$EXTERNALSYM SPI_GETACCESSTIMEOUT}
  7966. SPI_SETACCESSTIMEOUT = 61;
  7967. {$EXTERNALSYM SPI_SETACCESSTIMEOUT}
  7968. SPI_GETSERIALKEYS = 62;
  7969. {$EXTERNALSYM SPI_GETSERIALKEYS}
  7970. SPI_SETSERIALKEYS = 63;
  7971. {$EXTERNALSYM SPI_SETSERIALKEYS}
  7972. SPI_GETSOUNDSENTRY = 64;
  7973. {$EXTERNALSYM SPI_GETSOUNDSENTRY}
  7974. SPI_SETSOUNDSENTRY = 65;
  7975. {$EXTERNALSYM SPI_SETSOUNDSENTRY}
  7976. SPI_GETSNAPTODEFBUTTON = 95;
  7977. {$EXTERNALSYM SPI_GETSNAPTODEFBUTTON}
  7978. SPI_SETSNAPTODEFBUTTON = 96;
  7979. {$EXTERNALSYM SPI_SETSNAPTODEFBUTTON}
  7980. SPI_GETMOUSEHOVERWIDTH = 98;
  7981. {$EXTERNALSYM SPI_GETMOUSEHOVERWIDTH}
  7982. SPI_SETMOUSEHOVERWIDTH = 99;
  7983. {$EXTERNALSYM SPI_SETMOUSEHOVERWIDTH}
  7984. SPI_GETMOUSEHOVERHEIGHT = 100;
  7985. {$EXTERNALSYM SPI_GETMOUSEHOVERHEIGHT}
  7986. SPI_SETMOUSEHOVERHEIGHT = 101;
  7987. {$EXTERNALSYM SPI_SETMOUSEHOVERHEIGHT}
  7988. SPI_GETMOUSEHOVERTIME = 102;
  7989. {$EXTERNALSYM SPI_GETMOUSEHOVERTIME}
  7990. SPI_SETMOUSEHOVERTIME = 103;
  7991. {$EXTERNALSYM SPI_SETMOUSEHOVERTIME}
  7992. SPI_GETWHEELSCROLLLINES = 104;
  7993. {$EXTERNALSYM SPI_GETWHEELSCROLLLINES}
  7994. SPI_SETWHEELSCROLLLINES = 105;
  7995. {$EXTERNALSYM SPI_SETWHEELSCROLLLINES}
  7996. SPI_GETMENUSHOWDELAY = 106;
  7997. {$EXTERNALSYM SPI_GETMENUSHOWDELAY}
  7998. SPI_SETMENUSHOWDELAY = 107;
  7999. {$EXTERNALSYM SPI_SETMENUSHOWDELAY}
  8000. SPI_GETSHOWIMEUI = 110;
  8001. {$EXTERNALSYM SPI_GETSHOWIMEUI}
  8002. SPI_SETSHOWIMEUI = 111;
  8003. {$EXTERNALSYM SPI_SETSHOWIMEUI}
  8004. SPI_GETMOUSESPEED = 112;
  8005. {$EXTERNALSYM SPI_GETMOUSESPEED}
  8006. SPI_SETMOUSESPEED = 113;
  8007. {$EXTERNALSYM SPI_SETMOUSESPEED}
  8008. SPI_GETSCREENSAVERRUNNING = 114;
  8009. {$EXTERNALSYM SPI_GETSCREENSAVERRUNNING}
  8010. SPI_GETDESKWALLPAPER = 115;
  8011. {$EXTERNALSYM SPI_GETDESKWALLPAPER}
  8012. SPI_GETACTIVEWINDOWTRACKING = $1000;
  8013. {$EXTERNALSYM SPI_GETACTIVEWINDOWTRACKING}
  8014. SPI_SETACTIVEWINDOWTRACKING = $1001;
  8015. {$EXTERNALSYM SPI_SETACTIVEWINDOWTRACKING}
  8016. SPI_GETMENUANIMATION = $1002;
  8017. {$EXTERNALSYM SPI_GETMENUANIMATION}
  8018. SPI_SETMENUANIMATION = $1003;
  8019. {$EXTERNALSYM SPI_SETMENUANIMATION}
  8020. SPI_GETCOMBOBOXANIMATION = $1004;
  8021. {$EXTERNALSYM SPI_GETCOMBOBOXANIMATION}
  8022. SPI_SETCOMBOBOXANIMATION = $1005;
  8023. {$EXTERNALSYM SPI_SETCOMBOBOXANIMATION}
  8024. SPI_GETLISTBOXSMOOTHSCROLLING = $1006;
  8025. {$EXTERNALSYM SPI_GETLISTBOXSMOOTHSCROLLING}
  8026. SPI_SETLISTBOXSMOOTHSCROLLING = $1007;
  8027. {$EXTERNALSYM SPI_SETLISTBOXSMOOTHSCROLLING}
  8028. SPI_GETGRADIENTCAPTIONS = $1008;
  8029. {$EXTERNALSYM SPI_GETGRADIENTCAPTIONS}
  8030. SPI_SETGRADIENTCAPTIONS = $1009;
  8031. {$EXTERNALSYM SPI_SETGRADIENTCAPTIONS}
  8032. SPI_GETKEYBOARDCUES = $100A;
  8033. {$EXTERNALSYM SPI_GETKEYBOARDCUES}
  8034. SPI_SETKEYBOARDCUES = $100B;
  8035. {$EXTERNALSYM SPI_SETKEYBOARDCUES}
  8036. SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES;
  8037. {$EXTERNALSYM SPI_GETMENUUNDERLINES}
  8038. SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES;
  8039. {$EXTERNALSYM SPI_SETMENUUNDERLINES}
  8040. SPI_GETACTIVEWNDTRKZORDER = $100C;
  8041. {$EXTERNALSYM SPI_GETACTIVEWNDTRKZORDER}
  8042. SPI_SETACTIVEWNDTRKZORDER = $100D;
  8043. {$EXTERNALSYM SPI_SETACTIVEWNDTRKZORDER}
  8044. SPI_GETHOTTRACKING = $100E;
  8045. {$EXTERNALSYM SPI_GETHOTTRACKING}
  8046. SPI_SETHOTTRACKING = $100F;
  8047. {$EXTERNALSYM SPI_SETHOTTRACKING}
  8048. SPI_GETMENUFADE = $1012;
  8049. {$EXTERNALSYM SPI_GETMENUFADE}
  8050. SPI_SETMENUFADE = $1013;
  8051. {$EXTERNALSYM SPI_SETMENUFADE}
  8052. SPI_GETSELECTIONFADE = $1014;
  8053. {$EXTERNALSYM SPI_GETSELECTIONFADE}
  8054. SPI_SETSELECTIONFADE = $1015;
  8055. {$EXTERNALSYM SPI_SETSELECTIONFADE}
  8056. SPI_GETTOOLTIPANIMATION = $1016;
  8057. {$EXTERNALSYM SPI_GETTOOLTIPANIMATION}
  8058. SPI_SETTOOLTIPANIMATION = $1017;
  8059. {$EXTERNALSYM SPI_SETTOOLTIPANIMATION}
  8060. SPI_GETTOOLTIPFADE = $1018;
  8061. {$EXTERNALSYM SPI_GETTOOLTIPFADE}
  8062. SPI_SETTOOLTIPFADE = $1019;
  8063. {$EXTERNALSYM SPI_SETTOOLTIPFADE}
  8064. SPI_GETCURSORSHADOW = $101A;
  8065. {$EXTERNALSYM SPI_GETCURSORSHADOW}
  8066. SPI_SETCURSORSHADOW = $101B;
  8067. {$EXTERNALSYM SPI_SETCURSORSHADOW}
  8068. SPI_GETMOUSESONAR = $101C;
  8069. {$EXTERNALSYM SPI_GETMOUSESONAR}
  8070. SPI_SETMOUSESONAR = $101D;
  8071. {$EXTERNALSYM SPI_SETMOUSESONAR}
  8072. SPI_GETMOUSECLICKLOCK = $101E;
  8073. {$EXTERNALSYM SPI_GETMOUSECLICKLOCK}
  8074. SPI_SETMOUSECLICKLOCK = $101F;
  8075. {$EXTERNALSYM SPI_SETMOUSECLICKLOCK}
  8076. SPI_GETMOUSEVANISH = $1020;
  8077. {$EXTERNALSYM SPI_GETMOUSEVANISH}
  8078. SPI_SETMOUSEVANISH = $1021;
  8079. {$EXTERNALSYM SPI_SETMOUSEVANISH}
  8080. SPI_GETFLATMENU = $1022;
  8081. {$EXTERNALSYM SPI_GETFLATMENU}
  8082. SPI_SETFLATMENU = $1023;
  8083. {$EXTERNALSYM SPI_SETFLATMENU}
  8084. SPI_GETDROPSHADOW = $1024;
  8085. {$EXTERNALSYM SPI_GETDROPSHADOW}
  8086. SPI_SETDROPSHADOW = $1025;
  8087. {$EXTERNALSYM SPI_SETDROPSHADOW}
  8088. SPI_GETBLOCKSENDINPUTRESETS = $1026;
  8089. {$EXTERNALSYM SPI_GETBLOCKSENDINPUTRESETS}
  8090. SPI_SETBLOCKSENDINPUTRESETS = $1027;
  8091. {$EXTERNALSYM SPI_SETBLOCKSENDINPUTRESETS}
  8092. SPI_GETUIEFFECTS = $103E;
  8093. {$EXTERNALSYM SPI_GETUIEFFECTS}
  8094. SPI_SETUIEFFECTS = $103F;
  8095. {$EXTERNALSYM SPI_SETUIEFFECTS}
  8096. SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  8097. {$EXTERNALSYM SPI_GETFOREGROUNDLOCKTIMEOUT}
  8098. SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
  8099. {$EXTERNALSYM SPI_SETFOREGROUNDLOCKTIMEOUT}
  8100. SPI_GETACTIVEWNDTRKTIMEOUT = $2002;
  8101. {$EXTERNALSYM SPI_GETACTIVEWNDTRKTIMEOUT}
  8102. SPI_SETACTIVEWNDTRKTIMEOUT = $2003;
  8103. {$EXTERNALSYM SPI_SETACTIVEWNDTRKTIMEOUT}
  8104. SPI_GETFOREGROUNDFLASHCOUNT = $2004;
  8105. {$EXTERNALSYM SPI_GETFOREGROUNDFLASHCOUNT}
  8106. SPI_SETFOREGROUNDFLASHCOUNT = $2005;
  8107. {$EXTERNALSYM SPI_SETFOREGROUNDFLASHCOUNT}
  8108. SPI_GETCARETWIDTH = $2006;
  8109. {$EXTERNALSYM SPI_GETCARETWIDTH}
  8110. SPI_SETCARETWIDTH = $2007;
  8111. {$EXTERNALSYM SPI_SETCARETWIDTH}
  8112. SPI_GETMOUSECLICKLOCKTIME = $2008;
  8113. {$EXTERNALSYM SPI_GETMOUSECLICKLOCKTIME}
  8114. SPI_SETMOUSECLICKLOCKTIME = $2009;
  8115. {$EXTERNALSYM SPI_SETMOUSECLICKLOCKTIME}
  8116. SPI_GETFONTSMOOTHINGTYPE = $200A;
  8117. {$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
  8118. SPI_SETFONTSMOOTHINGTYPE = $200B;
  8119. {$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
  8120. // constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE
  8121. FE_FONTSMOOTHINGSTANDARD = $0001;
  8122. {$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
  8123. FE_FONTSMOOTHINGCLEARTYPE = $0002;
  8124. {$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
  8125. FE_FONTSMOOTHINGDOCKING = $8000;
  8126. {$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
  8127. SPI_GETFONTSMOOTHINGCONTRAST = $200C;
  8128. {$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
  8129. SPI_SETFONTSMOOTHINGCONTRAST = $200D;
  8130. {$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
  8131. SPI_GETFOCUSBORDERWIDTH = $200E;
  8132. {$EXTERNALSYM SPI_GETFOCUSBORDERWIDTH}
  8133. SPI_SETFOCUSBORDERWIDTH = $200F;
  8134. {$EXTERNALSYM SPI_SETFOCUSBORDERWIDTH}
  8135. SPI_GETFOCUSBORDERHEIGHT = $2010;
  8136. {$EXTERNALSYM SPI_GETFOCUSBORDERHEIGHT}
  8137. SPI_SETFOCUSBORDERHEIGHT = $2011;
  8138. {$EXTERNALSYM SPI_SETFOCUSBORDERHEIGHT}
  8139. SPI_GETFONTSMOOTHINGORIENTATION = $2012;
  8140. {$EXTERNALSYM SPI_GETFONTSMOOTHINGORIENTATION}
  8141. SPI_SETFONTSMOOTHINGORIENTATION = $2013;
  8142. {$EXTERNALSYM SPI_SETFONTSMOOTHINGORIENTATION}
  8143. // constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION:
  8144. FE_FONTSMOOTHINGORIENTATIONBGR = $0000;
  8145. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONBGR}
  8146. FE_FONTSMOOTHINGORIENTATIONRGB = $0001;
  8147. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONRGB}
  8148. //
  8149. // Flags
  8150. //
  8151. SPIF_UPDATEINIFILE = $0001;
  8152. {$EXTERNALSYM SPIF_UPDATEINIFILE}
  8153. SPIF_SENDWININICHANGE = $0002;
  8154. {$EXTERNALSYM SPIF_SENDWININICHANGE}
  8155. SPIF_SENDCHANGE = SPIF_SENDWININICHANGE;
  8156. {$EXTERNALSYM SPIF_SENDCHANGE}
  8157. METRICS_USEDEFAULT = DWORD(-1);
  8158. {$EXTERNALSYM METRICS_USEDEFAULT}
  8159. type
  8160. LPNONCLIENTMETRICSA = ^NONCLIENTMETRICSA;
  8161. {$EXTERNALSYM LPNONCLIENTMETRICSA}
  8162. tagNONCLIENTMETRICSA = record
  8163. cbSize: UINT;
  8164. iBorderWidth: Integer;
  8165. iScrollWidth: Integer;
  8166. iScrollHeight: Integer;
  8167. iCaptionWidth: Integer;
  8168. iCaptionHeight: Integer;
  8169. lfCaptionFont: LOGFONTA;
  8170. iSmCaptionWidth: Integer;
  8171. iSmCaptionHeight: Integer;
  8172. lfSmCaptionFont: LOGFONTA;
  8173. iMenuWidth: Integer;
  8174. iMenuHeight: Integer;
  8175. lfMenuFont: LOGFONTA;
  8176. lfStatusFont: LOGFONTA;
  8177. lfMessageFont: LOGFONTA;
  8178. end;
  8179. {$EXTERNALSYM tagNONCLIENTMETRICSA}
  8180. NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
  8181. {$EXTERNALSYM NONCLIENTMETRICSA}
  8182. TNonClientMetricsA = NONCLIENTMETRICSA;
  8183. PNonClientMetricsA = LPNONCLIENTMETRICSA;
  8184. LPNONCLIENTMETRICSW = ^NONCLIENTMETRICSW;
  8185. {$EXTERNALSYM LPNONCLIENTMETRICSW}
  8186. tagNONCLIENTMETRICSW = record
  8187. cbSize: UINT;
  8188. iBorderWidth: Integer;
  8189. iScrollWidth: Integer;
  8190. iScrollHeight: Integer;
  8191. iCaptionWidth: Integer;
  8192. iCaptionHeight: Integer;
  8193. lfCaptionFont: LOGFONTW;
  8194. iSmCaptionWidth: Integer;
  8195. iSmCaptionHeight: Integer;
  8196. lfSmCaptionFont: LOGFONTW;
  8197. iMenuWidth: Integer;
  8198. iMenuHeight: Integer;
  8199. lfMenuFont: LOGFONTW;
  8200. lfStatusFont: LOGFONTW;
  8201. lfMessageFont: LOGFONTW;
  8202. end;
  8203. {$EXTERNALSYM tagNONCLIENTMETRICSW}
  8204. NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
  8205. {$EXTERNALSYM NONCLIENTMETRICSW}
  8206. TNonClientMetricsW = NONCLIENTMETRICSW;
  8207. PNonClientMetricsW = LPNONCLIENTMETRICSW;
  8208. {$IFDEF UNICODE}
  8209. NONCLIENTMETRICS = NONCLIENTMETRICSW;
  8210. {$EXTERNALSYM NONCLIENTMETRICS}
  8211. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSW;
  8212. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8213. TNonClientMetrics = TNonClientMetricsW;
  8214. PNonClientMetrics = PNonClientMetricsW;
  8215. {$ELSE}
  8216. NONCLIENTMETRICS = NONCLIENTMETRICSA;
  8217. {$EXTERNALSYM NONCLIENTMETRICS}
  8218. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
  8219. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8220. TNonClientMetrics = TNonClientMetricsA;
  8221. PNonClientMetrics = PNonClientMetricsA;
  8222. {$ENDIF UNICODE}
  8223. const
  8224. ARW_BOTTOMLEFT = $0000;
  8225. {$EXTERNALSYM ARW_BOTTOMLEFT}
  8226. ARW_BOTTOMRIGHT = $0001;
  8227. {$EXTERNALSYM ARW_BOTTOMRIGHT}
  8228. ARW_TOPLEFT = $0002;
  8229. {$EXTERNALSYM ARW_TOPLEFT}
  8230. ARW_TOPRIGHT = $0003;
  8231. {$EXTERNALSYM ARW_TOPRIGHT}
  8232. ARW_STARTMASK = $0003;
  8233. {$EXTERNALSYM ARW_STARTMASK}
  8234. ARW_STARTRIGHT = $0001;
  8235. {$EXTERNALSYM ARW_STARTRIGHT}
  8236. ARW_STARTTOP = $0002;
  8237. {$EXTERNALSYM ARW_STARTTOP}
  8238. ARW_LEFT = $0000;
  8239. {$EXTERNALSYM ARW_LEFT}
  8240. ARW_RIGHT = $0000;
  8241. {$EXTERNALSYM ARW_RIGHT}
  8242. ARW_UP = $0004;
  8243. {$EXTERNALSYM ARW_UP}
  8244. ARW_DOWN = $0004;
  8245. {$EXTERNALSYM ARW_DOWN}
  8246. ARW_HIDE = $0008;
  8247. {$EXTERNALSYM ARW_HIDE}
  8248. type
  8249. LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
  8250. {$EXTERNALSYM LPMINIMIZEDMETRICS}
  8251. tagMINIMIZEDMETRICS = record
  8252. cbSize: UINT;
  8253. iWidth: Integer;
  8254. iHorzGap: Integer;
  8255. iVertGap: Integer;
  8256. iArrange: Integer;
  8257. end;
  8258. {$EXTERNALSYM tagMINIMIZEDMETRICS}
  8259. MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
  8260. {$EXTERNALSYM MINIMIZEDMETRICS}
  8261. TMinimizedMetrics = MINIMIZEDMETRICS;
  8262. PMinimizedMetrics = LPMINIMIZEDMETRICS;
  8263. LPICONMETRICSA = ^ICONMETRICSA;
  8264. {$EXTERNALSYM LPICONMETRICSA}
  8265. tagICONMETRICSA = record
  8266. cbSize: UINT;
  8267. iHorzSpacing: Integer;
  8268. iVertSpacing: Integer;
  8269. iTitleWrap: Integer;
  8270. lfFont: LOGFONTA;
  8271. end;
  8272. {$EXTERNALSYM tagICONMETRICSA}
  8273. ICONMETRICSA = tagICONMETRICSA;
  8274. {$EXTERNALSYM ICONMETRICSA}
  8275. TIconMetricsA = ICONMETRICSA;
  8276. PIconMetricsA = LPICONMETRICSA;
  8277. LPICONMETRICSW = ^ICONMETRICSW;
  8278. {$EXTERNALSYM LPICONMETRICSW}
  8279. tagICONMETRICSW = record
  8280. cbSize: UINT;
  8281. iHorzSpacing: Integer;
  8282. iVertSpacing: Integer;
  8283. iTitleWrap: Integer;
  8284. lfFont: LOGFONTW;
  8285. end;
  8286. {$EXTERNALSYM tagICONMETRICSW}
  8287. ICONMETRICSW = tagICONMETRICSW;
  8288. {$EXTERNALSYM ICONMETRICSW}
  8289. TIconMetricsW = ICONMETRICSW;
  8290. PIconMetricsW = LPICONMETRICSW;
  8291. {$IFDEF UNICODE}
  8292. ICONMETRICS = ICONMETRICSW;
  8293. {$EXTERNALSYM ICONMETRICS}
  8294. LPICONMETRICS = LPICONMETRICSW;
  8295. {$EXTERNALSYM LPICONMETRICS}
  8296. TIconMetrics = TIconMetricsW;
  8297. PIconMetrics = PIconMetricsW;
  8298. {$ELSE}
  8299. ICONMETRICS = ICONMETRICSA;
  8300. {$EXTERNALSYM ICONMETRICS}
  8301. LPICONMETRICS = LPICONMETRICSA;
  8302. {$EXTERNALSYM LPICONMETRICS}
  8303. TIconMetrics = TIconMetricsA;
  8304. PIconMetrics = PIconMetricsA;
  8305. {$ENDIF UNICODE}
  8306. LPANIMATIONINFO = ^ANIMATIONINFO;
  8307. {$EXTERNALSYM LPANIMATIONINFO}
  8308. tagANIMATIONINFO = record
  8309. cbSize: UINT;
  8310. iMinAnimate: Integer;
  8311. end;
  8312. {$EXTERNALSYM tagANIMATIONINFO}
  8313. ANIMATIONINFO = tagANIMATIONINFO;
  8314. {$EXTERNALSYM ANIMATIONINFO}
  8315. TAnimationInfo = ANIMATIONINFO;
  8316. PAnimationInfo = LPANIMATIONINFO;
  8317. LPSERIALKEYSA = ^SERIALKEYSA;
  8318. {$EXTERNALSYM LPSERIALKEYSA}
  8319. tagSERIALKEYSA = record
  8320. cbSize: UINT;
  8321. dwFlags: DWORD;
  8322. lpszActivePort: LPSTR;
  8323. lpszPort: LPSTR;
  8324. iBaudRate: UINT;
  8325. iPortState: UINT;
  8326. iActive: UINT;
  8327. end;
  8328. {$EXTERNALSYM tagSERIALKEYSA}
  8329. SERIALKEYSA = tagSERIALKEYSA;
  8330. {$EXTERNALSYM SERIALKEYSA}
  8331. TSerialKeysA = SERIALKEYSA;
  8332. PSerialKeysA = LPSERIALKEYSA;
  8333. LPSERIALKEYSW = ^SERIALKEYSW;
  8334. {$EXTERNALSYM LPSERIALKEYSW}
  8335. tagSERIALKEYSW = record
  8336. cbSize: UINT;
  8337. dwFlags: DWORD;
  8338. lpszActivePort: LPWSTR;
  8339. lpszPort: LPWSTR;
  8340. iBaudRate: UINT;
  8341. iPortState: UINT;
  8342. iActive: UINT;
  8343. end;
  8344. {$EXTERNALSYM tagSERIALKEYSW}
  8345. SERIALKEYSW = tagSERIALKEYSW;
  8346. {$EXTERNALSYM SERIALKEYSW}
  8347. TSerialKeysW = SERIALKEYSW;
  8348. PSerialKeysW = LPSERIALKEYSW;
  8349. {$IFDEF UNICODE}
  8350. SERIALKEYS = SERIALKEYSW;
  8351. {$EXTERNALSYM SERIALKEYS}
  8352. LPSERIALKEYS = LPSERIALKEYSW;
  8353. {$EXTERNALSYM LPSERIALKEYS}
  8354. TSerialKeys = TSerialKeysW;
  8355. PSerialKeys = PSerialKeysW;
  8356. {$ELSE}
  8357. SERIALKEYS = SERIALKEYSA;
  8358. {$EXTERNALSYM SERIALKEYS}
  8359. LPSERIALKEYS = LPSERIALKEYSA;
  8360. {$EXTERNALSYM LPSERIALKEYS}
  8361. TSerialKeys = TSerialKeysA;
  8362. PSerialKeys = PSerialKeysA;
  8363. {$ENDIF UNICODE}
  8364. // flags for SERIALKEYS dwFlags field//
  8365. const
  8366. SERKF_SERIALKEYSON = $00000001;
  8367. {$EXTERNALSYM SERKF_SERIALKEYSON}
  8368. SERKF_AVAILABLE = $00000002;
  8369. {$EXTERNALSYM SERKF_AVAILABLE}
  8370. SERKF_INDICATOR = $00000004;
  8371. {$EXTERNALSYM SERKF_INDICATOR}
  8372. type
  8373. LPHIGHCONTRASTA = ^HIGHCONTRASTA;
  8374. {$EXTERNALSYM LPHIGHCONTRASTA}
  8375. tagHIGHCONTRASTA = record
  8376. cbSize: UINT;
  8377. dwFlags: DWORD;
  8378. lpszDefaultScheme: LPSTR;
  8379. end;
  8380. {$EXTERNALSYM tagHIGHCONTRASTA}
  8381. HIGHCONTRASTA = tagHIGHCONTRASTA;
  8382. {$EXTERNALSYM HIGHCONTRASTA}
  8383. THighContrastA = HIGHCONTRASTA;
  8384. PHighContrastA = LPHIGHCONTRASTA;
  8385. LPHIGHCONTRASTW = ^HIGHCONTRASTW;
  8386. {$EXTERNALSYM LPHIGHCONTRASTW}
  8387. tagHIGHCONTRASTW = record
  8388. cbSize: UINT;
  8389. dwFlags: DWORD;
  8390. lpszDefaultScheme: LPWSTR;
  8391. end;
  8392. {$EXTERNALSYM tagHIGHCONTRASTW}
  8393. HIGHCONTRASTW = tagHIGHCONTRASTW;
  8394. {$EXTERNALSYM HIGHCONTRASTW}
  8395. THighContrastW = HIGHCONTRASTW;
  8396. PHighContrastW = LPHIGHCONTRASTW;
  8397. {$IFDEF UNICODE}
  8398. HIGHCONTRAST = HIGHCONTRASTW;
  8399. {$EXTERNALSYM HIGHCONTRAST}
  8400. LPHIGHCONTRAST = LPHIGHCONTRASTW;
  8401. {$EXTERNALSYM LPHIGHCONTRAST}
  8402. THighContrast = THighContrastW;
  8403. PHighContrast = PHighContrastW;
  8404. {$ELSE}
  8405. HIGHCONTRAST = HIGHCONTRASTA;
  8406. {$EXTERNALSYM HIGHCONTRAST}
  8407. LPHIGHCONTRAST = LPHIGHCONTRASTA;
  8408. {$EXTERNALSYM LPHIGHCONTRAST}
  8409. THighContrast = THighContrastA;
  8410. PHighContrast = PHighContrastA;
  8411. {$ENDIF UNICODE}
  8412. // flags for HIGHCONTRAST dwFlags field//
  8413. const
  8414. HCF_HIGHCONTRASTON = $00000001;
  8415. {$EXTERNALSYM HCF_HIGHCONTRASTON}
  8416. HCF_AVAILABLE = $00000002;
  8417. {$EXTERNALSYM HCF_AVAILABLE}
  8418. HCF_HOTKEYACTIVE = $00000004;
  8419. {$EXTERNALSYM HCF_HOTKEYACTIVE}
  8420. HCF_CONFIRMHOTKEY = $00000008;
  8421. {$EXTERNALSYM HCF_CONFIRMHOTKEY}
  8422. HCF_HOTKEYSOUND = $00000010;
  8423. {$EXTERNALSYM HCF_HOTKEYSOUND}
  8424. HCF_INDICATOR = $00000020;
  8425. {$EXTERNALSYM HCF_INDICATOR}
  8426. HCF_HOTKEYAVAILABLE = $00000040;
  8427. {$EXTERNALSYM HCF_HOTKEYAVAILABLE}
  8428. // Flags for ChangeDisplaySettings//
  8429. CDS_UPDATEREGISTRY = $00000001;
  8430. {$EXTERNALSYM CDS_UPDATEREGISTRY}
  8431. CDS_TEST = $00000002;
  8432. {$EXTERNALSYM CDS_TEST}
  8433. CDS_FULLSCREEN = $00000004;
  8434. {$EXTERNALSYM CDS_FULLSCREEN}
  8435. CDS_GLOBAL = $00000008;
  8436. {$EXTERNALSYM CDS_GLOBAL}
  8437. CDS_SET_PRIMARY = $00000010;
  8438. {$EXTERNALSYM CDS_SET_PRIMARY}
  8439. CDS_VIDEOPARAMETERS = $00000020;
  8440. {$EXTERNALSYM CDS_VIDEOPARAMETERS}
  8441. CDS_RESET = $40000000;
  8442. {$EXTERNALSYM CDS_RESET}
  8443. CDS_NORESET = $10000000;
  8444. {$EXTERNALSYM CDS_NORESET}
  8445. // #include <tvout.h>
  8446. // Return values for ChangeDisplaySettings
  8447. DISP_CHANGE_SUCCESSFUL = 0;
  8448. {$EXTERNALSYM DISP_CHANGE_SUCCESSFUL}
  8449. DISP_CHANGE_RESTART = 1;
  8450. {$EXTERNALSYM DISP_CHANGE_RESTART}
  8451. DISP_CHANGE_FAILED = DWORD(-1);
  8452. {$EXTERNALSYM DISP_CHANGE_FAILED}
  8453. DISP_CHANGE_BADMODE = DWORD(-2);
  8454. {$EXTERNALSYM DISP_CHANGE_BADMODE}
  8455. DISP_CHANGE_NOTUPDATED = DWORD(-3);
  8456. {$EXTERNALSYM DISP_CHANGE_NOTUPDATED}
  8457. DISP_CHANGE_BADFLAGS = DWORD(-4);
  8458. {$EXTERNALSYM DISP_CHANGE_BADFLAGS}
  8459. DISP_CHANGE_BADPARAM = DWORD(-5);
  8460. {$EXTERNALSYM DISP_CHANGE_BADPARAM}
  8461. DISP_CHANGE_BADDUALVIEW = DWORD(-6);
  8462. {$EXTERNALSYM DISP_CHANGE_BADDUALVIEW}
  8463. function ChangeDisplaySettingsA(lpDevMode: LPDEVMODEA; dwFlags: DWORD): LONG; stdcall;
  8464. {$EXTERNALSYM ChangeDisplaySettingsA}
  8465. function ChangeDisplaySettingsW(lpDevMode: LPDEVMODEW; dwFlags: DWORD): LONG; stdcall;
  8466. {$EXTERNALSYM ChangeDisplaySettingsW}
  8467. function ChangeDisplaySettings(lpDevMode: LPDEVMODE; dwFlags: DWORD): LONG; stdcall;
  8468. {$EXTERNALSYM ChangeDisplaySettings}
  8469. function ChangeDisplaySettingsExA(lpszDeviceName: LPCSTR; lpDevMode: LPDEVMODEA;
  8470. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8471. {$EXTERNALSYM ChangeDisplaySettingsExA}
  8472. function ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR; lpDevMode: LPDEVMODEW;
  8473. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8474. {$EXTERNALSYM ChangeDisplaySettingsExW}
  8475. function ChangeDisplaySettingsEx(lpszDeviceName: LPCTSTR; lpDevMode: LPDEVMODE;
  8476. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8477. {$EXTERNALSYM ChangeDisplaySettingsEx}
  8478. const
  8479. ENUM_CURRENT_SETTINGS = DWORD(-1);
  8480. {$EXTERNALSYM ENUM_CURRENT_SETTINGS}
  8481. ENUM_REGISTRY_SETTINGS = DWORD(-2);
  8482. {$EXTERNALSYM ENUM_REGISTRY_SETTINGS}
  8483. function EnumDisplaySettingsA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8484. var lpDevMode: DEVMODEA): BOOL; stdcall;
  8485. {$EXTERNALSYM EnumDisplaySettingsA}
  8486. function EnumDisplaySettingsW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8487. var lpDevMode: DEVMODEW): BOOL; stdcall;
  8488. {$EXTERNALSYM EnumDisplaySettingsW}
  8489. function EnumDisplaySettings(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8490. var lpDevMode: DEVMODE): BOOL; stdcall;
  8491. {$EXTERNALSYM EnumDisplaySettings}
  8492. function EnumDisplaySettingsExA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8493. var lpDevMode: DEVMODEA; dwFlags: DWORD): BOOL; stdcall;
  8494. {$EXTERNALSYM EnumDisplaySettingsExA}
  8495. function EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8496. var lpDevMode: DEVMODEW; dwFlags: DWORD): BOOL; stdcall;
  8497. {$EXTERNALSYM EnumDisplaySettingsExW}
  8498. function EnumDisplaySettingsEx(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8499. var lpDevMode: DEVMODE; dwFlags: DWORD): BOOL; stdcall;
  8500. {$EXTERNALSYM EnumDisplaySettingsEx}
  8501. // Flags for EnumDisplaySettingsEx//
  8502. const
  8503. EDS_RAWMODE = $00000002;
  8504. {$EXTERNALSYM EDS_RAWMODE}
  8505. function EnumDisplayDevicesA(lpDevice: LPCSTR; iDevNum: DWORD;
  8506. var lpDisplayDevice: DISPLAY_DEVICEA; dwFlags: DWORD): BOOL; stdcall;
  8507. {$EXTERNALSYM EnumDisplayDevicesA}
  8508. function EnumDisplayDevicesW(lpDevice: LPCWSTR; iDevNum: DWORD;
  8509. var lpDisplayDevice: DISPLAY_DEVICEW; dwFlags: DWORD): BOOL; stdcall;
  8510. {$EXTERNALSYM EnumDisplayDevicesW}
  8511. function EnumDisplayDevices(lpDevice: LPCTSTR; iDevNum: DWORD;
  8512. var lpDisplayDevice: DISPLAY_DEVICE; dwFlags: DWORD): BOOL; stdcall;
  8513. {$EXTERNALSYM EnumDisplayDevices}
  8514. function SystemParametersInfoA(uiAction: UINT; uiParam: UINT;
  8515. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8516. {$EXTERNALSYM SystemParametersInfoA}
  8517. function SystemParametersInfoW(uiAction: UINT; uiParam: UINT;
  8518. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8519. {$EXTERNALSYM SystemParametersInfoW}
  8520. function SystemParametersInfo(uiAction: UINT; uiParam: UINT;
  8521. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8522. {$EXTERNALSYM SystemParametersInfo}
  8523. //
  8524. // Accessibility support
  8525. //
  8526. type
  8527. LPFILTERKEYS = ^FILTERKEYS;
  8528. {$EXTERNALSYM LPFILTERKEYS}
  8529. tagFILTERKEYS = record
  8530. cbSize: UINT;
  8531. dwFlags: DWORD;
  8532. iWaitMSec: DWORD; // Acceptance Delay
  8533. iDelayMSec: DWORD; // Delay Until Repeat
  8534. iRepeatMSec: DWORD; // Repeat Rate
  8535. iBounceMSec: DWORD; // Debounce Time
  8536. end;
  8537. {$EXTERNALSYM tagFILTERKEYS}
  8538. FILTERKEYS = tagFILTERKEYS;
  8539. {$EXTERNALSYM FILTERKEYS}
  8540. TFilterKeys = FILTERKEYS;
  8541. PFilterKeys = LPFILTERKEYS;
  8542. //
  8543. // FILTERKEYS dwFlags field
  8544. //
  8545. const
  8546. FKF_FILTERKEYSON = $00000001;
  8547. {$EXTERNALSYM FKF_FILTERKEYSON}
  8548. FKF_AVAILABLE = $00000002;
  8549. {$EXTERNALSYM FKF_AVAILABLE}
  8550. FKF_HOTKEYACTIVE = $00000004;
  8551. {$EXTERNALSYM FKF_HOTKEYACTIVE}
  8552. FKF_CONFIRMHOTKEY = $00000008;
  8553. {$EXTERNALSYM FKF_CONFIRMHOTKEY}
  8554. FKF_HOTKEYSOUND = $00000010;
  8555. {$EXTERNALSYM FKF_HOTKEYSOUND}
  8556. FKF_INDICATOR = $00000020;
  8557. {$EXTERNALSYM FKF_INDICATOR}
  8558. FKF_CLICKON = $00000040;
  8559. {$EXTERNALSYM FKF_CLICKON}
  8560. type
  8561. LPSTICKYKEYS = ^STICKYKEYS;
  8562. {$EXTERNALSYM LPSTICKYKEYS}
  8563. tagSTICKYKEYS = record
  8564. cbSize: UINT;
  8565. dwFlags: DWORD;
  8566. end;
  8567. {$EXTERNALSYM tagSTICKYKEYS}
  8568. STICKYKEYS = tagSTICKYKEYS;
  8569. {$EXTERNALSYM STICKYKEYS}
  8570. TStickyKeys = STICKYKEYS;
  8571. PStickyKeys = LPSTICKYKEYS;
  8572. //
  8573. // STICKYKEYS dwFlags field
  8574. //
  8575. const
  8576. SKF_STICKYKEYSON = $00000001;
  8577. {$EXTERNALSYM SKF_STICKYKEYSON}
  8578. SKF_AVAILABLE = $00000002;
  8579. {$EXTERNALSYM SKF_AVAILABLE}
  8580. SKF_HOTKEYACTIVE = $00000004;
  8581. {$EXTERNALSYM SKF_HOTKEYACTIVE}
  8582. SKF_CONFIRMHOTKEY = $00000008;
  8583. {$EXTERNALSYM SKF_CONFIRMHOTKEY}
  8584. SKF_HOTKEYSOUND = $00000010;
  8585. {$EXTERNALSYM SKF_HOTKEYSOUND}
  8586. SKF_INDICATOR = $00000020;
  8587. {$EXTERNALSYM SKF_INDICATOR}
  8588. SKF_AUDIBLEFEEDBACK = $00000040;
  8589. {$EXTERNALSYM SKF_AUDIBLEFEEDBACK}
  8590. SKF_TRISTATE = $00000080;
  8591. {$EXTERNALSYM SKF_TRISTATE}
  8592. SKF_TWOKEYSOFF = $00000100;
  8593. {$EXTERNALSYM SKF_TWOKEYSOFF}
  8594. SKF_LALTLATCHED = $10000000;
  8595. {$EXTERNALSYM SKF_LALTLATCHED}
  8596. SKF_LCTLLATCHED = $04000000;
  8597. {$EXTERNALSYM SKF_LCTLLATCHED}
  8598. SKF_LSHIFTLATCHED = $01000000;
  8599. {$EXTERNALSYM SKF_LSHIFTLATCHED}
  8600. SKF_RALTLATCHED = $20000000;
  8601. {$EXTERNALSYM SKF_RALTLATCHED}
  8602. SKF_RCTLLATCHED = $08000000;
  8603. {$EXTERNALSYM SKF_RCTLLATCHED}
  8604. SKF_RSHIFTLATCHED = $02000000;
  8605. {$EXTERNALSYM SKF_RSHIFTLATCHED}
  8606. SKF_LWINLATCHED = $40000000;
  8607. {$EXTERNALSYM SKF_LWINLATCHED}
  8608. SKF_RWINLATCHED = $80000000;
  8609. {$EXTERNALSYM SKF_RWINLATCHED}
  8610. SKF_LALTLOCKED = $00100000;
  8611. {$EXTERNALSYM SKF_LALTLOCKED}
  8612. SKF_LCTLLOCKED = $00040000;
  8613. {$EXTERNALSYM SKF_LCTLLOCKED}
  8614. SKF_LSHIFTLOCKED = $00010000;
  8615. {$EXTERNALSYM SKF_LSHIFTLOCKED}
  8616. SKF_RALTLOCKED = $00200000;
  8617. {$EXTERNALSYM SKF_RALTLOCKED}
  8618. SKF_RCTLLOCKED = $00080000;
  8619. {$EXTERNALSYM SKF_RCTLLOCKED}
  8620. SKF_RSHIFTLOCKED = $00020000;
  8621. {$EXTERNALSYM SKF_RSHIFTLOCKED}
  8622. SKF_LWINLOCKED = $00400000;
  8623. {$EXTERNALSYM SKF_LWINLOCKED}
  8624. SKF_RWINLOCKED = $00800000;
  8625. {$EXTERNALSYM SKF_RWINLOCKED}
  8626. type
  8627. LPMOUSEKEYS = ^MOUSEKEYS;
  8628. {$EXTERNALSYM LPMOUSEKEYS}
  8629. tagMOUSEKEYS = record
  8630. cbSize: UINT;
  8631. dwFlags: DWORD;
  8632. iMaxSpeed: DWORD;
  8633. iTimeToMaxSpeed: DWORD;
  8634. iCtrlSpeed: DWORD;
  8635. dwReserved1: DWORD;
  8636. dwReserved2: DWORD;
  8637. end;
  8638. {$EXTERNALSYM tagMOUSEKEYS}
  8639. MOUSEKEYS = tagMOUSEKEYS;
  8640. {$EXTERNALSYM MOUSEKEYS}
  8641. TMouseKeys = MOUSEKEYS;
  8642. PMouseKeys = LPMOUSEKEYS;
  8643. //
  8644. // MOUSEKEYS dwFlags field
  8645. //
  8646. const
  8647. MKF_MOUSEKEYSON = $00000001;
  8648. {$EXTERNALSYM MKF_MOUSEKEYSON}
  8649. MKF_AVAILABLE = $00000002;
  8650. {$EXTERNALSYM MKF_AVAILABLE}
  8651. MKF_HOTKEYACTIVE = $00000004;
  8652. {$EXTERNALSYM MKF_HOTKEYACTIVE}
  8653. MKF_CONFIRMHOTKEY = $00000008;
  8654. {$EXTERNALSYM MKF_CONFIRMHOTKEY}
  8655. MKF_HOTKEYSOUND = $00000010;
  8656. {$EXTERNALSYM MKF_HOTKEYSOUND}
  8657. MKF_INDICATOR = $00000020;
  8658. {$EXTERNALSYM MKF_INDICATOR}
  8659. MKF_MODIFIERS = $00000040;
  8660. {$EXTERNALSYM MKF_MODIFIERS}
  8661. MKF_REPLACENUMBERS = $00000080;
  8662. {$EXTERNALSYM MKF_REPLACENUMBERS}
  8663. MKF_LEFTBUTTONSEL = $10000000;
  8664. {$EXTERNALSYM MKF_LEFTBUTTONSEL}
  8665. MKF_RIGHTBUTTONSEL = $20000000;
  8666. {$EXTERNALSYM MKF_RIGHTBUTTONSEL}
  8667. MKF_LEFTBUTTONDOWN = $01000000;
  8668. {$EXTERNALSYM MKF_LEFTBUTTONDOWN}
  8669. MKF_RIGHTBUTTONDOWN = $02000000;
  8670. {$EXTERNALSYM MKF_RIGHTBUTTONDOWN}
  8671. MKF_MOUSEMODE = $80000000;
  8672. {$EXTERNALSYM MKF_MOUSEMODE}
  8673. type
  8674. LPACCESSTIMEOUT = ^ACCESSTIMEOUT;
  8675. {$EXTERNALSYM LPACCESSTIMEOUT}
  8676. tagACCESSTIMEOUT = record
  8677. cbSize: UINT;
  8678. dwFlags: DWORD;
  8679. iTimeOutMSec: DWORD;
  8680. end;
  8681. {$EXTERNALSYM tagACCESSTIMEOUT}
  8682. ACCESSTIMEOUT = tagACCESSTIMEOUT;
  8683. {$EXTERNALSYM ACCESSTIMEOUT}
  8684. TAccessTimeout = ACCESSTIMEOUT;
  8685. PAccessTimeout = LPACCESSTIMEOUT;
  8686. //
  8687. // ACCESSTIMEOUT dwFlags field
  8688. //
  8689. const
  8690. ATF_TIMEOUTON = $00000001;
  8691. {$EXTERNALSYM ATF_TIMEOUTON}
  8692. ATF_ONOFFFEEDBACK = $00000002;
  8693. {$EXTERNALSYM ATF_ONOFFFEEDBACK}
  8694. // values for SOUNDSENTRY iFSGrafEffect field//
  8695. SSGF_NONE = 0;
  8696. {$EXTERNALSYM SSGF_NONE}
  8697. SSGF_DISPLAY = 3;
  8698. {$EXTERNALSYM SSGF_DISPLAY}
  8699. // values for SOUNDSENTRY iFSTextEffect field//
  8700. SSTF_NONE = 0;
  8701. {$EXTERNALSYM SSTF_NONE}
  8702. SSTF_CHARS = 1;
  8703. {$EXTERNALSYM SSTF_CHARS}
  8704. SSTF_BORDER = 2;
  8705. {$EXTERNALSYM SSTF_BORDER}
  8706. SSTF_DISPLAY = 3;
  8707. {$EXTERNALSYM SSTF_DISPLAY}
  8708. // values for SOUNDSENTRY iWindowsEffect field//
  8709. SSWF_NONE = 0;
  8710. {$EXTERNALSYM SSWF_NONE}
  8711. SSWF_TITLE = 1;
  8712. {$EXTERNALSYM SSWF_TITLE}
  8713. SSWF_WINDOW = 2;
  8714. {$EXTERNALSYM SSWF_WINDOW}
  8715. SSWF_DISPLAY = 3;
  8716. {$EXTERNALSYM SSWF_DISPLAY}
  8717. SSWF_CUSTOM = 4;
  8718. {$EXTERNALSYM SSWF_CUSTOM}
  8719. type
  8720. LPSOUNDSENTRYA = ^SOUNDSENTRYA;
  8721. {$EXTERNALSYM LPSOUNDSENTRYA}
  8722. tagSOUNDSENTRYA = record
  8723. cbSize: UINT;
  8724. dwFlags: DWORD;
  8725. iFSTextEffect: DWORD;
  8726. iFSTextEffectMSec: DWORD;
  8727. iFSTextEffectColorBits: DWORD;
  8728. iFSGrafEffect: DWORD;
  8729. iFSGrafEffectMSec: DWORD;
  8730. iFSGrafEffectColor: DWORD;
  8731. iWindowsEffect: DWORD;
  8732. iWindowsEffectMSec: DWORD;
  8733. lpszWindowsEffectDLL: LPSTR;
  8734. iWindowsEffectOrdinal: DWORD;
  8735. end;
  8736. {$EXTERNALSYM tagSOUNDSENTRYA}
  8737. SOUNDSENTRYA = tagSOUNDSENTRYA;
  8738. {$EXTERNALSYM SOUNDSENTRYA}
  8739. TSoundsEntryA = SOUNDSENTRYA;
  8740. PSoundsEntryA = LPSOUNDSENTRYA;
  8741. LPSOUNDSENTRYW = ^SOUNDSENTRYW;
  8742. {$EXTERNALSYM LPSOUNDSENTRYW}
  8743. tagSOUNDSENTRYW = record
  8744. cbSize: UINT;
  8745. dwFlags: DWORD;
  8746. iFSTextEffect: DWORD;
  8747. iFSTextEffectMSec: DWORD;
  8748. iFSTextEffectColorBits: DWORD;
  8749. iFSGrafEffect: DWORD;
  8750. iFSGrafEffectMSec: DWORD;
  8751. iFSGrafEffectColor: DWORD;
  8752. iWindowsEffect: DWORD;
  8753. iWindowsEffectMSec: DWORD;
  8754. lpszWindowsEffectDLL: LPWSTR;
  8755. iWindowsEffectOrdinal: DWORD;
  8756. end;
  8757. {$EXTERNALSYM tagSOUNDSENTRYW}
  8758. SOUNDSENTRYW = tagSOUNDSENTRYW;
  8759. {$EXTERNALSYM SOUNDSENTRYW}
  8760. TSoundsEntryW = SOUNDSENTRYW;
  8761. PSoundsEntryW = LPSOUNDSENTRYW;
  8762. {$IFDEF UNICODE}
  8763. SOUNDSENTRY = SOUNDSENTRYW;
  8764. {$EXTERNALSYM SOUNDSENTRY}
  8765. LPSOUNDSENTRY = LPSOUNDSENTRYW;
  8766. {$EXTERNALSYM LPSOUNDSENTRY}
  8767. TSoundsEntry = TSoundsEntryW;
  8768. PSoundsEntry = PSoundsEntryW;
  8769. {$ELSE}
  8770. SOUNDSENTRY = SOUNDSENTRYA;
  8771. {$EXTERNALSYM SOUNDSENTRY}
  8772. LPSOUNDSENTRY = LPSOUNDSENTRYA;
  8773. {$EXTERNALSYM LPSOUNDSENTRY}
  8774. TSoundsEntry = TSoundsEntryA;
  8775. PSoundsEntry = PSoundsEntryA;
  8776. {$ENDIF UNICODE}
  8777. //
  8778. // SOUNDSENTRY dwFlags field
  8779. //
  8780. const
  8781. SSF_SOUNDSENTRYON = $00000001;
  8782. {$EXTERNALSYM SSF_SOUNDSENTRYON}
  8783. SSF_AVAILABLE = $00000002;
  8784. {$EXTERNALSYM SSF_AVAILABLE}
  8785. SSF_INDICATOR = $00000004;
  8786. {$EXTERNALSYM SSF_INDICATOR}
  8787. type
  8788. LPTOGGLEKEYS = ^TOGGLEKEYS;
  8789. {$EXTERNALSYM LPTOGGLEKEYS}
  8790. tagTOGGLEKEYS = record
  8791. cbSize: UINT;
  8792. dwFlags: DWORD;
  8793. end;
  8794. {$EXTERNALSYM tagTOGGLEKEYS}
  8795. TOGGLEKEYS = tagTOGGLEKEYS;
  8796. {$EXTERNALSYM TOGGLEKEYS}
  8797. TToggleKeys = TOGGLEKEYS;
  8798. PToggleKeys = LPTOGGLEKEYS;
  8799. //
  8800. // TOGGLEKEYS dwFlags field
  8801. //
  8802. const
  8803. TKF_TOGGLEKEYSON = $00000001;
  8804. {$EXTERNALSYM TKF_TOGGLEKEYSON}
  8805. TKF_AVAILABLE = $00000002;
  8806. {$EXTERNALSYM TKF_AVAILABLE}
  8807. TKF_HOTKEYACTIVE = $00000004;
  8808. {$EXTERNALSYM TKF_HOTKEYACTIVE}
  8809. TKF_CONFIRMHOTKEY = $00000008;
  8810. {$EXTERNALSYM TKF_CONFIRMHOTKEY}
  8811. TKF_HOTKEYSOUND = $00000010;
  8812. {$EXTERNALSYM TKF_HOTKEYSOUND}
  8813. TKF_INDICATOR = $00000020;
  8814. {$EXTERNALSYM TKF_INDICATOR}
  8815. //
  8816. // Set debug level
  8817. //
  8818. procedure SetDebugErrorLevel(dwLevel: DWORD); stdcall;
  8819. {$EXTERNALSYM SetDebugErrorLevel}
  8820. //
  8821. // SetLastErrorEx() types.
  8822. //
  8823. const
  8824. SLE_ERROR = $00000001;
  8825. {$EXTERNALSYM SLE_ERROR}
  8826. SLE_MINORERROR = $00000002;
  8827. {$EXTERNALSYM SLE_MINORERROR}
  8828. SLE_WARNING = $00000003;
  8829. {$EXTERNALSYM SLE_WARNING}
  8830. procedure SetLastErrorEx(dwErrCode, dwType: DWORD); stdcall;
  8831. {$EXTERNALSYM SetLastErrorEx}
  8832. function InternalGetWindowText(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  8833. {$EXTERNALSYM InternalGetWindowText}
  8834. function EndTask(hWnd: HWND; fShutDown, fForce: BOOL): BOOL; stdcall;
  8835. {$EXTERNALSYM EndTask}
  8836. //
  8837. // Multimonitor API.
  8838. //
  8839. const
  8840. MONITOR_DEFAULTTONULL = $00000000;
  8841. {$EXTERNALSYM MONITOR_DEFAULTTONULL}
  8842. MONITOR_DEFAULTTOPRIMARY = $00000001;
  8843. {$EXTERNALSYM MONITOR_DEFAULTTOPRIMARY}
  8844. MONITOR_DEFAULTTONEAREST = $00000002;
  8845. {$EXTERNALSYM MONITOR_DEFAULTTONEAREST}
  8846. function MonitorFromPoint(pt: POINT; dwFlags: DWORD): HMONITOR; stdcall;
  8847. {$EXTERNALSYM MonitorFromPoint}
  8848. function MonitorFromRect(const lprc: RECT; dwFlags: DWORD): HMONITOR; stdcall;
  8849. {$EXTERNALSYM MonitorFromRect}
  8850. function MonitorFromWindow(hwnd: HWND; dwFlags: DWORD): HMONITOR; stdcall;
  8851. {$EXTERNALSYM MonitorFromWindow}
  8852. const
  8853. MONITORINFOF_PRIMARY = $00000001;
  8854. {$EXTERNALSYM MONITORINFOF_PRIMARY}
  8855. {$IFNDEF JWA_INCLUDEMODE}
  8856. CCHDEVICENAME = 32;
  8857. {$EXTERNALSYM CCHDEVICENAME}
  8858. {$ENDIF !JWA_INCLUDEMODE}
  8859. type
  8860. LPMONITORINFO = ^MONITORINFO;
  8861. {$EXTERNALSYM LPMONITORINFO}
  8862. tagMONITORINFO = record
  8863. cbSize: DWORD;
  8864. rcMonitor: RECT;
  8865. rcWork: RECT;
  8866. dwFlags: DWORD;
  8867. end;
  8868. {$EXTERNALSYM tagMONITORINFO}
  8869. MONITORINFO = tagMONITORINFO;
  8870. {$EXTERNALSYM MONITORINFO}
  8871. TMonitorInfo = MONITORINFO;
  8872. PMonitorInfo = LPMONITORINFO;
  8873. LPMONITORINFOEXA = ^MONITORINFOEXA;
  8874. {$EXTERNALSYM LPMONITORINFOEXA}
  8875. tagMONITORINFOEXA = record
  8876. MonitorInfo: MONITORINFO;
  8877. szDevice: array [0..CCHDEVICENAME - 1] of CHAR;
  8878. end;
  8879. {$EXTERNALSYM tagMONITORINFOEXA}
  8880. MONITORINFOEXA = tagMONITORINFOEXA;
  8881. {$EXTERNALSYM MONITORINFOEXA}
  8882. TMonitorinfoexa = MONITORINFOEXA;
  8883. PMonitorInfoExA = LPMONITORINFOEXA;
  8884. LPMONITORINFOEXW = ^MONITORINFOEXW;
  8885. {$EXTERNALSYM LPMONITORINFOEXW}
  8886. tagMONITORINFOEXW = record
  8887. MonitorInfo: MONITORINFO;
  8888. szDevice: array [0..CCHDEVICENAME - 1] of WCHAR;
  8889. end;
  8890. {$EXTERNALSYM tagMONITORINFOEXW}
  8891. MONITORINFOEXW = tagMONITORINFOEXW;
  8892. {$EXTERNALSYM MONITORINFOEXW}
  8893. TMonitorInfoExW = MONITORINFOEXW;
  8894. PMonitorInfoExW = LPMONITORINFOEXW;
  8895. {$IFDEF UNICODE}
  8896. MONITORINFOEX = MONITORINFOEXW;
  8897. {$EXTERNALSYM MONITORINFOEX}
  8898. LPMONITORINFOEX = LPMONITORINFOEXW;
  8899. {$EXTERNALSYM LPMONITORINFOEX}
  8900. TMonitorInfoEx = TMonitorInfoExW;
  8901. PMonitorInfoEx = PMonitorInfoExW;
  8902. {$ELSE}
  8903. MONITORINFOEX = MONITORINFOEXA;
  8904. {$EXTERNALSYM MONITORINFOEX}
  8905. LPMONITORINFOEX = LPMONITORINFOEXA;
  8906. {$EXTERNALSYM LPMONITORINFOEX}
  8907. TMonitorInfoEx = TMonitorInfoExA;
  8908. PMonitorInfoEx = PMonitorInfoExA;
  8909. {$ENDIF UNICODE}
  8910. function GetMonitorInfoA(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8911. {$EXTERNALSYM GetMonitorInfoA}
  8912. function GetMonitorInfoW(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8913. {$EXTERNALSYM GetMonitorInfoW}
  8914. function GetMonitorInfo(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8915. {$EXTERNALSYM GetMonitorInfo}
  8916. type
  8917. MONITORENUMPROC = function(hMonitor: HMONITOR; hdcMonitor: HDC;
  8918. lprcMonitor: LPRECT; dwData: LPARAM): BOOL; stdcall;
  8919. {$EXTERNALSYM MONITORENUMPROC}
  8920. TMonitorEnumProc = MONITORENUMPROC;
  8921. function EnumDisplayMonitors(hdc: HDC; lprcClip: LPCRECT;
  8922. lpfnEnum: MONITORENUMPROC; dwData: LPARAM): BOOL; stdcall;
  8923. {$EXTERNALSYM EnumDisplayMonitors}
  8924. //
  8925. // WinEvents - Active Accessibility hooks
  8926. //
  8927. procedure NotifyWinEvent(event: DWORD; hwnd: HWND; idObject: LONG; idChild: LONG); stdcall;
  8928. {$EXTERNALSYM NotifyWinEvent}
  8929. type
  8930. WINEVENTPROC = procedure(hWinEventHook: HWINEVENTHOOK; event: DWORD; hwnd: HWND;
  8931. idObject, idChild: LONG; idEventThread, dwmsEventTime: DWORD); stdcall;
  8932. {$EXTERNALSYM WINEVENTPROC}
  8933. TWinEventProc = WINEVENTPROC;
  8934. function SetWinEventHook(eventMin: DWORD; eventMax: DWORD;
  8935. hmodWinEventProc: HMODULE; pfnWinEventProc: WINEVENTPROC; idProcess: DWORD;
  8936. idThread: DWORD; dwFlags: DWORD): HWINEVENTHOOK; stdcall;
  8937. {$EXTERNALSYM SetWinEventHook}
  8938. function IsWinEventHookInstalled(event: DWORD): BOOL; stdcall;
  8939. {$EXTERNALSYM IsWinEventHookInstalled}
  8940. //
  8941. // dwFlags for SetWinEventHook
  8942. //
  8943. const
  8944. WINEVENT_OUTOFCONTEXT = $0000; // Events are ASYNC
  8945. {$EXTERNALSYM WINEVENT_OUTOFCONTEXT}
  8946. WINEVENT_SKIPOWNTHREAD = $0001; // Don't call back for events on installer's thread
  8947. {$EXTERNALSYM WINEVENT_SKIPOWNTHREAD}
  8948. WINEVENT_SKIPOWNPROCESS = $0002; // Don't call back for events on installer's process
  8949. {$EXTERNALSYM WINEVENT_SKIPOWNPROCESS}
  8950. WINEVENT_INCONTEXT = $0004; // Events are SYNC, this causes your dll to be injected into every process
  8951. {$EXTERNALSYM WINEVENT_INCONTEXT}
  8952. function UnhookWinEvent(hWinEventHook: HWINEVENTHOOK): BOOL; stdcall;
  8953. {$EXTERNALSYM UnhookWinEvent}
  8954. //
  8955. // idObject values for WinEventProc and NotifyWinEvent
  8956. //
  8957. //
  8958. // hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
  8959. // to get an interface pointer to the container. indexChild is the item
  8960. // within the container in question. Setup a VARIANT with vt VT_I4 and
  8961. // lVal the indexChild and pass that in to all methods. Then you
  8962. // are raring to go.
  8963. //
  8964. //
  8965. // Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
  8966. // thing in question). Positive IDs are reserved for apps (app specific),
  8967. // negative IDs are system things and are global, 0 means "just little old
  8968. // me".
  8969. //
  8970. const
  8971. CHILDID_SELF = 0;
  8972. {$EXTERNALSYM CHILDID_SELF}
  8973. INDEXID_OBJECT = 0;
  8974. {$EXTERNALSYM INDEXID_OBJECT}
  8975. INDEXID_CONTAINER = 0;
  8976. {$EXTERNALSYM INDEXID_CONTAINER}
  8977. //
  8978. // Reserved IDs for system objects
  8979. //
  8980. const
  8981. OBJID_WINDOW = DWORD($00000000);
  8982. {$EXTERNALSYM OBJID_WINDOW}
  8983. OBJID_SYSMENU = DWORD($FFFFFFFF);
  8984. {$EXTERNALSYM OBJID_SYSMENU}
  8985. OBJID_TITLEBAR = DWORD($FFFFFFFE);
  8986. {$EXTERNALSYM OBJID_TITLEBAR}
  8987. OBJID_MENU = DWORD($FFFFFFFD);
  8988. {$EXTERNALSYM OBJID_MENU}
  8989. OBJID_CLIENT = DWORD($FFFFFFFC);
  8990. {$EXTERNALSYM OBJID_CLIENT}
  8991. OBJID_VSCROLL = DWORD($FFFFFFFB);
  8992. {$EXTERNALSYM OBJID_VSCROLL}
  8993. OBJID_HSCROLL = DWORD($FFFFFFFA);
  8994. {$EXTERNALSYM OBJID_HSCROLL}
  8995. OBJID_SIZEGRIP = DWORD($FFFFFFF9);
  8996. {$EXTERNALSYM OBJID_SIZEGRIP}
  8997. OBJID_CARET = DWORD($FFFFFFF8);
  8998. {$EXTERNALSYM OBJID_CARET}
  8999. OBJID_CURSOR = DWORD($FFFFFFF7);
  9000. {$EXTERNALSYM OBJID_CURSOR}
  9001. OBJID_ALERT = DWORD($FFFFFFF6);
  9002. {$EXTERNALSYM OBJID_ALERT}
  9003. OBJID_SOUND = DWORD($FFFFFFF5);
  9004. {$EXTERNALSYM OBJID_SOUND}
  9005. OBJID_QUERYCLASSNAMEIDX = DWORD($FFFFFFF4);
  9006. {$EXTERNALSYM OBJID_QUERYCLASSNAMEIDX}
  9007. OBJID_NATIVEOM = DWORD($FFFFFFF0);
  9008. {$EXTERNALSYM OBJID_NATIVEOM}
  9009. //
  9010. // EVENT DEFINITION
  9011. //
  9012. EVENT_MIN = $00000001;
  9013. {$EXTERNALSYM EVENT_MIN}
  9014. EVENT_MAX = $7FFFFFFF;
  9015. {$EXTERNALSYM EVENT_MAX}
  9016. //
  9017. // EVENT_SYSTEM_SOUND
  9018. // Sent when a sound is played. Currently nothing is generating this, we
  9019. // this event when a system sound (for menus, etc) is played. Apps
  9020. // generate this, if accessible, when a private sound is played. For
  9021. // example, if Mail plays a "New Mail" sound.
  9022. //
  9023. // System Sounds:
  9024. // (Generated by PlaySoundEvent in USER itself)
  9025. // hwnd is NULL
  9026. // idObject is OBJID_SOUND
  9027. // idChild is sound child ID if one
  9028. // App Sounds:
  9029. // (PlaySoundEvent won't generate notification; up to app)
  9030. // hwnd + idObject gets interface pointer to Sound object
  9031. // idChild identifies the sound in question
  9032. // are going to be cleaning up the SOUNDSENTRY feature in the control panel
  9033. // and will use this at that time. Applications implementing WinEvents
  9034. // are perfectly welcome to use it. Clients of IAccessible* will simply
  9035. // turn around and get back a non-visual object that describes the sound.
  9036. //
  9037. EVENT_SYSTEM_SOUND = $0001;
  9038. {$EXTERNALSYM EVENT_SYSTEM_SOUND}
  9039. //
  9040. // EVENT_SYSTEM_ALERT
  9041. // System Alerts:
  9042. // (Generated by MessageBox() calls for example)
  9043. // hwnd is hwndMessageBox
  9044. // idObject is OBJID_ALERT
  9045. // App Alerts:
  9046. // (Generated whenever)
  9047. // hwnd+idObject gets interface pointer to Alert
  9048. //
  9049. EVENT_SYSTEM_ALERT = $0002;
  9050. {$EXTERNALSYM EVENT_SYSTEM_ALERT}
  9051. //
  9052. // EVENT_SYSTEM_FOREGROUND
  9053. // Sent when the foreground (active) window changes, even if it is changing
  9054. // to another window in the same thread as the previous one.
  9055. // hwnd is hwndNewForeground
  9056. // idObject is OBJID_WINDOW
  9057. // idChild is INDEXID_OBJECT
  9058. //
  9059. EVENT_SYSTEM_FOREGROUND = $0003;
  9060. {$EXTERNALSYM EVENT_SYSTEM_FOREGROUND}
  9061. //
  9062. // Menu
  9063. // hwnd is window (top level window or popup menu window)
  9064. // idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
  9065. // idChild is CHILDID_SELF
  9066. // EVENT_SYSTEM_MENUSTART
  9067. // EVENT_SYSTEM_MENUEND
  9068. // For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
  9069. // or the control bringing up the context menu.
  9070. // Sent when entering into and leaving from menu mode (system, app bar, and
  9071. // track popups).
  9072. //
  9073. EVENT_SYSTEM_MENUSTART = $0004;
  9074. {$EXTERNALSYM EVENT_SYSTEM_MENUSTART}
  9075. EVENT_SYSTEM_MENUEND = $0005;
  9076. {$EXTERNALSYM EVENT_SYSTEM_MENUEND}
  9077. //
  9078. // EVENT_SYSTEM_MENUPOPUPSTART
  9079. // EVENT_SYSTEM_MENUPOPUPEND
  9080. // Sent when a menu popup comes up and just before it is taken down. Note
  9081. // that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
  9082. // followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
  9083. // being shown.
  9084. // For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
  9085. // parent item which is hierarchical. You can get the parent menu/popup by
  9086. // asking for the accParent object.
  9087. //
  9088. EVENT_SYSTEM_MENUPOPUPSTART = $0006;
  9089. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPSTART}
  9090. EVENT_SYSTEM_MENUPOPUPEND = $0007;
  9091. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPEND}
  9092. //
  9093. // EVENT_SYSTEM_CAPTURESTART
  9094. // EVENT_SYSTEM_CAPTUREEND
  9095. // Sent when a window takes the capture and releases the capture.
  9096. //
  9097. EVENT_SYSTEM_CAPTURESTART = $0008;
  9098. {$EXTERNALSYM EVENT_SYSTEM_CAPTURESTART}
  9099. EVENT_SYSTEM_CAPTUREEND = $0009;
  9100. {$EXTERNALSYM EVENT_SYSTEM_CAPTUREEND}
  9101. //
  9102. // Move Size
  9103. // EVENT_SYSTEM_MOVESIZESTART
  9104. // EVENT_SYSTEM_MOVESIZEEND
  9105. // Sent when a window enters and leaves move-size dragging mode.
  9106. //
  9107. EVENT_SYSTEM_MOVESIZESTART = $000A;
  9108. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZESTART}
  9109. EVENT_SYSTEM_MOVESIZEEND = $000B;
  9110. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZEEND}
  9111. //
  9112. // Context Help
  9113. // EVENT_SYSTEM_CONTEXTHELPSTART
  9114. // EVENT_SYSTEM_CONTEXTHELPEND
  9115. // Sent when a window enters and leaves context sensitive help mode.
  9116. //
  9117. EVENT_SYSTEM_CONTEXTHELPSTART = $000C;
  9118. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPSTART}
  9119. EVENT_SYSTEM_CONTEXTHELPEND = $000D;
  9120. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPEND}
  9121. //
  9122. // Drag & Drop
  9123. // EVENT_SYSTEM_DRAGDROPSTART
  9124. // EVENT_SYSTEM_DRAGDROPEND
  9125. // Send the START notification just before going into drag&drop loop. Send
  9126. // the END notification just after canceling out.
  9127. // Note that it is up to apps and OLE to generate this, since the system
  9128. // doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this
  9129. // is prevalent.
  9130. //
  9131. EVENT_SYSTEM_DRAGDROPSTART = $000E;
  9132. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPSTART}
  9133. EVENT_SYSTEM_DRAGDROPEND = $000F;
  9134. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPEND}
  9135. //
  9136. // Dialog
  9137. // Send the START notification right after the dialog is completely
  9138. // initialized and visible. Send the END right before the dialog
  9139. // is hidden and goes away.
  9140. // EVENT_SYSTEM_DIALOGSTART
  9141. // EVENT_SYSTEM_DIALOGEND
  9142. //
  9143. EVENT_SYSTEM_DIALOGSTART = $0010;
  9144. {$EXTERNALSYM EVENT_SYSTEM_DIALOGSTART}
  9145. EVENT_SYSTEM_DIALOGEND = $0011;
  9146. {$EXTERNALSYM EVENT_SYSTEM_DIALOGEND}
  9147. //
  9148. // EVENT_SYSTEM_SCROLLING
  9149. // EVENT_SYSTEM_SCROLLINGSTART
  9150. // EVENT_SYSTEM_SCROLLINGEND
  9151. // Sent when beginning and ending the tracking of a scrollbar in a window,
  9152. // and also for scrollbar controls.
  9153. //
  9154. EVENT_SYSTEM_SCROLLINGSTART = $0012;
  9155. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGSTART}
  9156. EVENT_SYSTEM_SCROLLINGEND = $0013;
  9157. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGEND}
  9158. //
  9159. // Alt-Tab Window
  9160. // Send the START notification right after the switch window is initialized
  9161. // and visible. Send the END right before it is hidden and goes away.
  9162. // EVENT_SYSTEM_SWITCHSTART
  9163. // EVENT_SYSTEM_SWITCHEND
  9164. //
  9165. EVENT_SYSTEM_SWITCHSTART = $0014;
  9166. {$EXTERNALSYM EVENT_SYSTEM_SWITCHSTART}
  9167. EVENT_SYSTEM_SWITCHEND = $0015;
  9168. {$EXTERNALSYM EVENT_SYSTEM_SWITCHEND}
  9169. //
  9170. // EVENT_SYSTEM_MINIMIZESTART
  9171. // EVENT_SYSTEM_MINIMIZEEND
  9172. // Sent when a window minimizes and just before it restores.
  9173. //
  9174. EVENT_SYSTEM_MINIMIZESTART = $0016;
  9175. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZESTART}
  9176. EVENT_SYSTEM_MINIMIZEEND = $0017;
  9177. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZEEND}
  9178. EVENT_CONSOLE_CARET = $4001;
  9179. {$EXTERNALSYM EVENT_CONSOLE_CARET}
  9180. EVENT_CONSOLE_UPDATE_REGION = $4002;
  9181. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_REGION}
  9182. EVENT_CONSOLE_UPDATE_SIMPLE = $4003;
  9183. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SIMPLE}
  9184. EVENT_CONSOLE_UPDATE_SCROLL = $4004;
  9185. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SCROLL}
  9186. EVENT_CONSOLE_LAYOUT = $4005;
  9187. {$EXTERNALSYM EVENT_CONSOLE_LAYOUT}
  9188. EVENT_CONSOLE_START_APPLICATION = $4006;
  9189. {$EXTERNALSYM EVENT_CONSOLE_START_APPLICATION}
  9190. EVENT_CONSOLE_END_APPLICATION = $4007;
  9191. {$EXTERNALSYM EVENT_CONSOLE_END_APPLICATION}
  9192. //
  9193. // Flags for EVENT_CONSOLE_START/END_APPLICATION.
  9194. //
  9195. CONSOLE_APPLICATION_16BIT = $0001;
  9196. {$EXTERNALSYM CONSOLE_APPLICATION_16BIT}
  9197. //
  9198. // Flags for EVENT_CONSOLE_CARET
  9199. //
  9200. CONSOLE_CARET_SELECTION = $0001;
  9201. {$EXTERNALSYM CONSOLE_CARET_SELECTION}
  9202. CONSOLE_CARET_VISIBLE = $0002;
  9203. {$EXTERNALSYM CONSOLE_CARET_VISIBLE}
  9204. //
  9205. // Object events
  9206. // The system AND apps generate these. The system generates these for
  9207. // real windows. Apps generate these for objects within their window which
  9208. // act like a separate control, e.g. an item in a list view.
  9209. // When the system generate them, dwParam2 is always WMOBJID_SELF. When
  9210. // apps generate them, apps put the has-meaning-to-the-app-only ID value
  9211. // in dwParam2.
  9212. // For all events, if you want detailed accessibility information, callers
  9213. // should
  9214. // * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
  9215. // of the event, and IID_IAccessible as the REFIID, to get back an
  9216. // IAccessible* to talk to
  9217. // * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
  9218. // parameter of the event.
  9219. // * If idChild isn't zero, call get_accChild() in the container to see
  9220. // if the child is an object in its own right. If so, you will get
  9221. // back an IDispatch* object for the child. You should release the
  9222. // parent, and call QueryInterface() on the child object to get its
  9223. // IAccessible*. Then you talk directly to the child. Otherwise,
  9224. // if get_accChild() returns you nothing, you should continue to
  9225. // use the child VARIANT. You will ask the container for the properties
  9226. // of the child identified by the VARIANT. In other words, the
  9227. // child in this case is accessible but not a full-blown object.
  9228. // Like a button on a titlebar which is 'small' and has no children.
  9229. //
  9230. //
  9231. // For all EVENT_OBJECT events,
  9232. // hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL,
  9233. // see above for system things)
  9234. // idObject is the ID of the object that can resolve any queries a
  9235. // client might have. It's a way to deal with windowless controls,
  9236. // controls that are just drawn on the screen in some larger parent
  9237. // window (like SDM), or standard frame elements of a window.
  9238. // idChild is the piece inside of the object that is affected. This
  9239. // allows clients to access things that are too small to have full
  9240. // blown objects in their own right. Like the thumb of a scrollbar.
  9241. // The hwnd/idObject pair gets you to the container, the dude you
  9242. // probably want to talk to most of the time anyway. The idChild
  9243. // can then be passed into the acc properties to get the name/value
  9244. // of it as needed.
  9245. // Example #1:
  9246. // System propagating a listbox selection change
  9247. // EVENT_OBJECT_SELECTION
  9248. // hwnd == listbox hwnd
  9249. // idObject == OBJID_WINDOW
  9250. // idChild == new selected item, or CHILDID_SELF if
  9251. // nothing now selected within container.
  9252. // Word '97 propagating a listbox selection change
  9253. // hwnd == SDM window
  9254. // idObject == SDM ID to get at listbox 'control'
  9255. // idChild == new selected item, or CHILDID_SELF if
  9256. // nothing
  9257. // Example #2:
  9258. // System propagating a menu item selection on the menu bar
  9259. // EVENT_OBJECT_SELECTION
  9260. // hwnd == top level window
  9261. // idObject == OBJID_MENU
  9262. // idChild == ID of child menu bar item selected
  9263. // *
  9264. // Example #3:
  9265. // System propagating a dropdown coming off of said menu bar item
  9266. // EVENT_OBJECT_CREATE
  9267. // hwnd == popup item
  9268. // idObject == OBJID_WINDOW
  9269. // idChild == CHILDID_SELF
  9270. //
  9271. // Example #4:
  9272. //
  9273. // For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the
  9274. // PARENT container in which the zorder is occurring. This is because if
  9275. // one child is zordering, all of them are changing their relative zorder.
  9276. //
  9277. EVENT_OBJECT_CREATE = $8000; // hwnd + ID + idChild is created item
  9278. {$EXTERNALSYM EVENT_OBJECT_CREATE}
  9279. EVENT_OBJECT_DESTROY = $8001; // hwnd + ID + idChild is destroyed item
  9280. {$EXTERNALSYM EVENT_OBJECT_DESTROY}
  9281. EVENT_OBJECT_SHOW = $8002; // hwnd + ID + idChild is shown item
  9282. {$EXTERNALSYM EVENT_OBJECT_SHOW}
  9283. EVENT_OBJECT_HIDE = $8003; // hwnd + ID + idChild is hidden item
  9284. {$EXTERNALSYM EVENT_OBJECT_HIDE}
  9285. EVENT_OBJECT_REORDER = $8004; // hwnd + ID + idChild is parent of zordering children
  9286. {$EXTERNALSYM EVENT_OBJECT_REORDER}
  9287. //
  9288. // NOTE:
  9289. // Minimize the number of notifications!
  9290. //
  9291. // When you are hiding a parent object, obviously all child objects are no
  9292. // longer visible on screen. They still have the same "visible" status,
  9293. // but are not truly visible. Hence do not send HIDE notifications for the
  9294. // children also. One implies all. The same goes for SHOW.
  9295. //
  9296. EVENT_OBJECT_FOCUS = $8005; // hwnd + ID + idChild is focused item
  9297. {$EXTERNALSYM EVENT_OBJECT_FOCUS}
  9298. EVENT_OBJECT_SELECTION = $8006; // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
  9299. {$EXTERNALSYM EVENT_OBJECT_SELECTION}
  9300. EVENT_OBJECT_SELECTIONADD = $8007; // hwnd + ID + idChild is item added
  9301. {$EXTERNALSYM EVENT_OBJECT_SELECTIONADD}
  9302. EVENT_OBJECT_SELECTIONREMOVE = $8008; // hwnd + ID + idChild is item removed
  9303. {$EXTERNALSYM EVENT_OBJECT_SELECTIONREMOVE}
  9304. EVENT_OBJECT_SELECTIONWITHIN = $8009; // hwnd + ID + idChild is parent of changed selected items
  9305. {$EXTERNALSYM EVENT_OBJECT_SELECTIONWITHIN}
  9306. //
  9307. // NOTES:
  9308. // There is only one "focused" child item in a parent. This is the place
  9309. // keystrokes are going at a given moment. Hence only send a notification
  9310. // about where the NEW focus is going. A NEW item getting the focus already
  9311. // implies that the OLD item is losing it.
  9312. //
  9313. // SELECTION however can be multiple. Hence the different SELECTION
  9314. // notifications. Here's when to use each:
  9315. //
  9316. // (1) Send a SELECTION notification in the simple single selection
  9317. // case (like the focus) when the item with the selection is
  9318. // merely moving to a different item within a container. hwnd + ID
  9319. // is the container control, idChildItem is the new child with the
  9320. // selection.
  9321. //
  9322. // (2) Send a SELECTIONADD notification when a new item has simply been added
  9323. // to the selection within a container. This is appropriate when the
  9324. // number of newly selected items is very small. hwnd + ID is the
  9325. // container control, idChildItem is the new child added to the selection.
  9326. //
  9327. // (3) Send a SELECTIONREMOVE notification when a new item has simply been
  9328. // removed from the selection within a container. This is appropriate
  9329. // when the number of newly selected items is very small, just like
  9330. // SELECTIONADD. hwnd + ID is the container control, idChildItem is the
  9331. // new child removed from the selection.
  9332. //
  9333. // (4) Send a SELECTIONWITHIN notification when the selected items within a
  9334. // control have changed substantially. Rather than propagate a large
  9335. // number of changes to reflect removal for some items, addition of
  9336. // others, just tell somebody who cares that a lot happened. It will
  9337. // be faster an easier for somebody watching to just turn around and
  9338. // query the container control what the new bunch of selected items
  9339. // are.
  9340. //
  9341. EVENT_OBJECT_STATECHANGE = $800A; // hwnd + ID + idChild is item w/ state change
  9342. {$EXTERNALSYM EVENT_OBJECT_STATECHANGE}
  9343. //
  9344. // Examples of when to send an EVENT_OBJECT_STATECHANGE include
  9345. // * It is being enabled/disabled (USER does for windows)
  9346. // * It is being pressed/released (USER does for buttons)
  9347. // * It is being checked/unchecked (USER does for radio/check buttons)
  9348. //
  9349. EVENT_OBJECT_LOCATIONCHANGE = $800B; // hwnd + ID + idChild is moved/sized item
  9350. {$EXTERNALSYM EVENT_OBJECT_LOCATIONCHANGE}
  9351. //
  9352. // Note:
  9353. // A LOCATIONCHANGE is not sent for every child object when the parent
  9354. // changes shape/moves. Send one notification for the topmost object
  9355. // that is changing. For example, if the user resizes a top level window,
  9356. // USER will generate a LOCATIONCHANGE for it, but not for the menu bar,
  9357. // title bar, scrollbars, etc. that are also changing shape/moving.
  9358. //
  9359. // In other words, it only generates LOCATIONCHANGE notifications for
  9360. // real windows that are moving/sizing. It will not generate a LOCATIONCHANGE
  9361. // for every non-floating child window when the parent moves (the children are
  9362. // logically moving also on screen, but not relative to the parent).
  9363. //
  9364. // Now, if the app itself resizes child windows as a result of being
  9365. // sized, USER will generate LOCATIONCHANGEs for those dudes also because
  9366. // it doesn't know better.
  9367. //
  9368. // Note also that USER will generate LOCATIONCHANGE notifications for two
  9369. // non-window sys objects:
  9370. // (1) System caret
  9371. // (2) Cursor
  9372. //
  9373. EVENT_OBJECT_NAMECHANGE = $800C; // hwnd + ID + idChild is item w/ name change
  9374. {$EXTERNALSYM EVENT_OBJECT_NAMECHANGE}
  9375. EVENT_OBJECT_DESCRIPTIONCHANGE = $800D; // hwnd + ID + idChild is item w/ desc change
  9376. {$EXTERNALSYM EVENT_OBJECT_DESCRIPTIONCHANGE}
  9377. EVENT_OBJECT_VALUECHANGE = $800E; // hwnd + ID + idChild is item w/ value change
  9378. {$EXTERNALSYM EVENT_OBJECT_VALUECHANGE}
  9379. EVENT_OBJECT_PARENTCHANGE = $800F; // hwnd + ID + idChild is item w/ new parent
  9380. {$EXTERNALSYM EVENT_OBJECT_PARENTCHANGE}
  9381. EVENT_OBJECT_HELPCHANGE = $8010; // hwnd + ID + idChild is item w/ help change
  9382. {$EXTERNALSYM EVENT_OBJECT_HELPCHANGE}
  9383. EVENT_OBJECT_DEFACTIONCHANGE = $8011; // hwnd + ID + idChild is item w/ def action change
  9384. {$EXTERNALSYM EVENT_OBJECT_DEFACTIONCHANGE}
  9385. EVENT_OBJECT_ACCELERATORCHANGE = $8012; // hwnd + ID + idChild is item w/ keybd accel change
  9386. {$EXTERNALSYM EVENT_OBJECT_ACCELERATORCHANGE}
  9387. //
  9388. // Child IDs
  9389. //
  9390. //
  9391. // System Sounds (idChild of system SOUND notification)
  9392. //
  9393. SOUND_SYSTEM_STARTUP = 1;
  9394. {$EXTERNALSYM SOUND_SYSTEM_STARTUP}
  9395. SOUND_SYSTEM_SHUTDOWN = 2;
  9396. {$EXTERNALSYM SOUND_SYSTEM_SHUTDOWN}
  9397. SOUND_SYSTEM_BEEP = 3;
  9398. {$EXTERNALSYM SOUND_SYSTEM_BEEP}
  9399. SOUND_SYSTEM_ERROR = 4;
  9400. {$EXTERNALSYM SOUND_SYSTEM_ERROR}
  9401. SOUND_SYSTEM_QUESTION = 5;
  9402. {$EXTERNALSYM SOUND_SYSTEM_QUESTION}
  9403. SOUND_SYSTEM_WARNING = 6;
  9404. {$EXTERNALSYM SOUND_SYSTEM_WARNING}
  9405. SOUND_SYSTEM_INFORMATION = 7;
  9406. {$EXTERNALSYM SOUND_SYSTEM_INFORMATION}
  9407. SOUND_SYSTEM_MAXIMIZE = 8;
  9408. {$EXTERNALSYM SOUND_SYSTEM_MAXIMIZE}
  9409. SOUND_SYSTEM_MINIMIZE = 9;
  9410. {$EXTERNALSYM SOUND_SYSTEM_MINIMIZE}
  9411. SOUND_SYSTEM_RESTOREUP = 10;
  9412. {$EXTERNALSYM SOUND_SYSTEM_RESTOREUP}
  9413. SOUND_SYSTEM_RESTOREDOWN = 11;
  9414. {$EXTERNALSYM SOUND_SYSTEM_RESTOREDOWN}
  9415. SOUND_SYSTEM_APPSTART = 12;
  9416. {$EXTERNALSYM SOUND_SYSTEM_APPSTART}
  9417. SOUND_SYSTEM_FAULT = 13;
  9418. {$EXTERNALSYM SOUND_SYSTEM_FAULT}
  9419. SOUND_SYSTEM_APPEND = 14;
  9420. {$EXTERNALSYM SOUND_SYSTEM_APPEND}
  9421. SOUND_SYSTEM_MENUCOMMAND = 15;
  9422. {$EXTERNALSYM SOUND_SYSTEM_MENUCOMMAND}
  9423. SOUND_SYSTEM_MENUPOPUP = 16;
  9424. {$EXTERNALSYM SOUND_SYSTEM_MENUPOPUP}
  9425. CSOUND_SYSTEM = 16;
  9426. {$EXTERNALSYM CSOUND_SYSTEM}
  9427. //
  9428. // System Alerts (indexChild of system ALERT notification)
  9429. //
  9430. ALERT_SYSTEM_INFORMATIONAL = 1; // MB_INFORMATION
  9431. {$EXTERNALSYM ALERT_SYSTEM_INFORMATIONAL}
  9432. ALERT_SYSTEM_WARNING = 2; // MB_WARNING
  9433. {$EXTERNALSYM ALERT_SYSTEM_WARNING}
  9434. ALERT_SYSTEM_ERROR = 3; // MB_ERROR
  9435. {$EXTERNALSYM ALERT_SYSTEM_ERROR}
  9436. ALERT_SYSTEM_QUERY = 4; // MB_QUESTION
  9437. {$EXTERNALSYM ALERT_SYSTEM_QUERY}
  9438. ALERT_SYSTEM_CRITICAL = 5; // HardSysErrBox
  9439. {$EXTERNALSYM ALERT_SYSTEM_CRITICAL}
  9440. CALERT_SYSTEM = 6;
  9441. {$EXTERNALSYM CALERT_SYSTEM}
  9442. type
  9443. LPGUITHREADINFO = ^GUITHREADINFO;
  9444. {$EXTERNALSYM LPGUITHREADINFO}
  9445. tagGUITHREADINFO = record
  9446. cbSize: DWORD;
  9447. flags: DWORD;
  9448. hwndActive: HWND;
  9449. hwndFocus: HWND;
  9450. hwndCapture: HWND;
  9451. hwndMenuOwner: HWND;
  9452. hwndMoveSize: HWND;
  9453. hwndCaret: HWND;
  9454. rcCaret: RECT;
  9455. end;
  9456. {$EXTERNALSYM tagGUITHREADINFO}
  9457. GUITHREADINFO = tagGUITHREADINFO;
  9458. {$EXTERNALSYM GUITHREADINFO}
  9459. TGuiThreadInfo = GUITHREADINFO;
  9460. PGuiThreadInfo = LPGUITHREADINFO;
  9461. const
  9462. GUI_CARETBLINKING = $00000001;
  9463. {$EXTERNALSYM GUI_CARETBLINKING}
  9464. GUI_INMOVESIZE = $00000002;
  9465. {$EXTERNALSYM GUI_INMOVESIZE}
  9466. GUI_INMENUMODE = $00000004;
  9467. {$EXTERNALSYM GUI_INMENUMODE}
  9468. GUI_SYSTEMMENUMODE = $00000008;
  9469. {$EXTERNALSYM GUI_SYSTEMMENUMODE}
  9470. GUI_POPUPMENUMODE = $00000010;
  9471. {$EXTERNALSYM GUI_POPUPMENUMODE}
  9472. GUI_16BITTASK = $00000020;
  9473. {$EXTERNALSYM GUI_16BITTASK}
  9474. function GetGUIThreadInfo(idThread: DWORD; var pgui: GUITHREADINFO): BOOL; stdcall;
  9475. {$EXTERNALSYM GetGUIThreadInfo}
  9476. function GetWindowModuleFileNameA(hwnd: HWND; pszFileName: LPSTR; cchFileNameMax: UINT): UINT; stdcall;
  9477. {$EXTERNALSYM GetWindowModuleFileNameA}
  9478. function GetWindowModuleFileNameW(hwnd: HWND; pszFileName: LPWSTR; cchFileNameMax: UINT): UINT; stdcall;
  9479. {$EXTERNALSYM GetWindowModuleFileNameW}
  9480. function GetWindowModuleFileName(hwnd: HWND; pszFileName: LPTSTR; cchFileNameMax: UINT): UINT; stdcall;
  9481. {$EXTERNALSYM GetWindowModuleFileName}
  9482. const
  9483. STATE_SYSTEM_UNAVAILABLE = $00000001; // Disabled
  9484. {$EXTERNALSYM STATE_SYSTEM_UNAVAILABLE}
  9485. STATE_SYSTEM_SELECTED = $00000002;
  9486. {$EXTERNALSYM STATE_SYSTEM_SELECTED}
  9487. STATE_SYSTEM_FOCUSED = $00000004;
  9488. {$EXTERNALSYM STATE_SYSTEM_FOCUSED}
  9489. STATE_SYSTEM_PRESSED = $00000008;
  9490. {$EXTERNALSYM STATE_SYSTEM_PRESSED}
  9491. STATE_SYSTEM_CHECKED = $00000010;
  9492. {$EXTERNALSYM STATE_SYSTEM_CHECKED}
  9493. STATE_SYSTEM_MIXED = $00000020; // 3-state checkbox or toolbar button
  9494. {$EXTERNALSYM STATE_SYSTEM_MIXED}
  9495. STATE_SYSTEM_INDETERMINATE = STATE_SYSTEM_MIXED;
  9496. {$EXTERNALSYM STATE_SYSTEM_INDETERMINATE}
  9497. STATE_SYSTEM_READONLY = $00000040;
  9498. {$EXTERNALSYM STATE_SYSTEM_READONLY}
  9499. STATE_SYSTEM_HOTTRACKED = $00000080;
  9500. {$EXTERNALSYM STATE_SYSTEM_HOTTRACKED}
  9501. STATE_SYSTEM_DEFAULT = $00000100;
  9502. {$EXTERNALSYM STATE_SYSTEM_DEFAULT}
  9503. STATE_SYSTEM_EXPANDED = $00000200;
  9504. {$EXTERNALSYM STATE_SYSTEM_EXPANDED}
  9505. STATE_SYSTEM_COLLAPSED = $00000400;
  9506. {$EXTERNALSYM STATE_SYSTEM_COLLAPSED}
  9507. STATE_SYSTEM_BUSY = $00000800;
  9508. {$EXTERNALSYM STATE_SYSTEM_BUSY}
  9509. STATE_SYSTEM_FLOATING = $00001000; // Children "owned" not "contained" by parent
  9510. {$EXTERNALSYM STATE_SYSTEM_FLOATING}
  9511. STATE_SYSTEM_MARQUEED = $00002000;
  9512. {$EXTERNALSYM STATE_SYSTEM_MARQUEED}
  9513. STATE_SYSTEM_ANIMATED = $00004000;
  9514. {$EXTERNALSYM STATE_SYSTEM_ANIMATED}
  9515. STATE_SYSTEM_INVISIBLE = $00008000;
  9516. {$EXTERNALSYM STATE_SYSTEM_INVISIBLE}
  9517. STATE_SYSTEM_OFFSCREEN = $00010000;
  9518. {$EXTERNALSYM STATE_SYSTEM_OFFSCREEN}
  9519. STATE_SYSTEM_SIZEABLE = $00020000;
  9520. {$EXTERNALSYM STATE_SYSTEM_SIZEABLE}
  9521. STATE_SYSTEM_MOVEABLE = $00040000;
  9522. {$EXTERNALSYM STATE_SYSTEM_MOVEABLE}
  9523. STATE_SYSTEM_SELFVOICING = $00080000;
  9524. {$EXTERNALSYM STATE_SYSTEM_SELFVOICING}
  9525. STATE_SYSTEM_FOCUSABLE = $00100000;
  9526. {$EXTERNALSYM STATE_SYSTEM_FOCUSABLE}
  9527. STATE_SYSTEM_SELECTABLE = $00200000;
  9528. {$EXTERNALSYM STATE_SYSTEM_SELECTABLE}
  9529. STATE_SYSTEM_LINKED = $00400000;
  9530. {$EXTERNALSYM STATE_SYSTEM_LINKED}
  9531. STATE_SYSTEM_TRAVERSED = $00800000;
  9532. {$EXTERNALSYM STATE_SYSTEM_TRAVERSED}
  9533. STATE_SYSTEM_MULTISELECTABLE = $01000000; // Supports multiple selection
  9534. {$EXTERNALSYM STATE_SYSTEM_MULTISELECTABLE}
  9535. STATE_SYSTEM_EXTSELECTABLE = $02000000; // Supports extended selection
  9536. {$EXTERNALSYM STATE_SYSTEM_EXTSELECTABLE}
  9537. STATE_SYSTEM_ALERT_LOW = $04000000; // This information is of low priority
  9538. {$EXTERNALSYM STATE_SYSTEM_ALERT_LOW}
  9539. STATE_SYSTEM_ALERT_MEDIUM = $08000000; // This information is of medium priority
  9540. {$EXTERNALSYM STATE_SYSTEM_ALERT_MEDIUM}
  9541. STATE_SYSTEM_ALERT_HIGH = $10000000; // This information is of high priority
  9542. {$EXTERNALSYM STATE_SYSTEM_ALERT_HIGH}
  9543. STATE_SYSTEM_PROTECTED = $20000000; // access to this is restricted
  9544. {$EXTERNALSYM STATE_SYSTEM_PROTECTED}
  9545. STATE_SYSTEM_VALID = $3FFFFFFF;
  9546. {$EXTERNALSYM STATE_SYSTEM_VALID}
  9547. CCHILDREN_TITLEBAR = 5;
  9548. {$EXTERNALSYM CCHILDREN_TITLEBAR}
  9549. CCHILDREN_SCROLLBAR = 5;
  9550. {$EXTERNALSYM CCHILDREN_SCROLLBAR}
  9551. //
  9552. // Information about the global cursor.
  9553. //
  9554. type
  9555. LPCURSORINFO = ^CURSORINFO;
  9556. {$EXTERNALSYM LPCURSORINFO}
  9557. tagCURSORINFO = record
  9558. cbSize: DWORD;
  9559. flags: DWORD;
  9560. hCursor: HCURSOR;
  9561. ptScreenPos: POINT;
  9562. end;
  9563. {$EXTERNALSYM tagCURSORINFO}
  9564. CURSORINFO = tagCURSORINFO;
  9565. {$EXTERNALSYM CURSORINFO}
  9566. TCursorInfo = CURSORINFO;
  9567. PCursorInfo = LPCURSORINFO;
  9568. const
  9569. CURSOR_SHOWING = $00000001;
  9570. {$EXTERNALSYM CURSOR_SHOWING}
  9571. function GetCursorInfo(var pci: CURSORINFO): BOOL; stdcall;
  9572. {$EXTERNALSYM GetCursorInfo}
  9573. //
  9574. // Window information snapshot
  9575. //
  9576. type
  9577. LPWINDOWINFO = ^WINDOWINFO;
  9578. {$EXTERNALSYM LPWINDOWINFO}
  9579. tagWINDOWINFO = record
  9580. cbSize: DWORD;
  9581. rcWindow: RECT;
  9582. rcClient: RECT;
  9583. dwStyle: DWORD;
  9584. dwExStyle: DWORD;
  9585. dwWindowStatus: DWORD;
  9586. cxWindowBorders: UINT;
  9587. cyWindowBorders: UINT;
  9588. atomWindowType: ATOM;
  9589. wCreatorVersion: WORD;
  9590. end;
  9591. {$EXTERNALSYM tagWINDOWINFO}
  9592. WINDOWINFO = tagWINDOWINFO;
  9593. {$EXTERNALSYM WINDOWINFO}
  9594. TWindowInfo = WINDOWINFO;
  9595. PWindowInfo = LPWINDOWINFO;
  9596. const
  9597. WS_ACTIVECAPTION = $0001;
  9598. {$EXTERNALSYM WS_ACTIVECAPTION}
  9599. function GetWindowInfo(hwnd: HWND; var pwi: WINDOWINFO): BOOL; stdcall;
  9600. {$EXTERNALSYM GetWindowInfo}
  9601. //
  9602. // Titlebar information.
  9603. //
  9604. type
  9605. LPTITLEBARINFO = ^TITLEBARINFO;
  9606. {$EXTERNALSYM LPTITLEBARINFO}
  9607. tagTITLEBARINFO = record
  9608. cbSize: DWORD;
  9609. rcTitleBar: RECT;
  9610. rgstate: array [0..CCHILDREN_TITLEBAR] of DWORD;
  9611. end;
  9612. {$EXTERNALSYM tagTITLEBARINFO}
  9613. TITLEBARINFO = tagTITLEBARINFO;
  9614. {$EXTERNALSYM TITLEBARINFO}
  9615. TTitleBarInfo = TITLEBARINFO;
  9616. PTitleBarInfo = LPTITLEBARINFO;
  9617. function GetTitleBarInfo(hwnd: HWND; var pti: TITLEBARINFO): BOOL; stdcall;
  9618. {$EXTERNALSYM GetTitleBarInfo}
  9619. //
  9620. // Menubar information
  9621. //
  9622. type
  9623. LPMENUBARINFO = ^MENUBARINFO;
  9624. {$EXTERNALSYM LPMENUBARINFO}
  9625. tagMENUBARINFO = record
  9626. cbSize: DWORD;
  9627. rcBar: RECT; // rect of bar, popup, item
  9628. hMenu: HMENU; // real menu handle of bar, popup
  9629. hwndMenu: HWND; // hwnd of item submenu if one
  9630. Flags: DWORD;
  9631. // BOOL fBarFocused:1; // bar, popup has the focus
  9632. // BOOL fFocused:1; // item has the focus
  9633. end;
  9634. {$EXTERNALSYM tagMENUBARINFO}
  9635. MENUBARINFO = tagMENUBARINFO;
  9636. {$EXTERNALSYM MENUBARINFO}
  9637. TMenuBarInfo = MENUBARINFO;
  9638. PMenuBarInfo = LPMENUBARINFO;
  9639. function GetMenuBarInfo(hwnd: HWND; idObject: LONG; idItem: LONG;
  9640. var pmbi: MENUBARINFO): BOOL; stdcall;
  9641. {$EXTERNALSYM GetMenuBarInfo}
  9642. //
  9643. // Scrollbar information
  9644. //
  9645. type
  9646. LPSCROLLBARINFO = ^SCROLLBARINFO;
  9647. {$EXTERNALSYM LPSCROLLBARINFO}
  9648. tagSCROLLBARINFO = record
  9649. cbSize: DWORD;
  9650. rcScrollBar: RECT;
  9651. dxyLineButton: Integer;
  9652. xyThumbTop: Integer;
  9653. xyThumbBottom: Integer;
  9654. reserved: Integer;
  9655. rgstate: array [0..CCHILDREN_SCROLLBAR] of DWORD;
  9656. end;
  9657. {$EXTERNALSYM tagSCROLLBARINFO}
  9658. SCROLLBARINFO = tagSCROLLBARINFO;
  9659. {$EXTERNALSYM SCROLLBARINFO}
  9660. TScrollBarInfo = SCROLLBARINFO;
  9661. PScrollBarInfo = LPSCROLLBARINFO;
  9662. function GetScrollBarInfo(hwnd: HWND; idObject: LONG; var psbi: SCROLLBARINFO): BOOL; stdcall;
  9663. {$EXTERNALSYM GetScrollBarInfo}
  9664. //
  9665. // Combobox information
  9666. //
  9667. type
  9668. LPCOMBOBOXINFO = ^COMBOBOXINFO;
  9669. {$EXTERNALSYM LPCOMBOBOXINFO}
  9670. tagCOMBOBOXINFO = record
  9671. cbSize: DWORD;
  9672. rcItem: RECT;
  9673. rcButton: RECT;
  9674. stateButton: DWORD;
  9675. hwndCombo: HWND;
  9676. hwndItem: HWND;
  9677. hwndList: HWND;
  9678. end;
  9679. {$EXTERNALSYM tagCOMBOBOXINFO}
  9680. COMBOBOXINFO = tagCOMBOBOXINFO;
  9681. {$EXTERNALSYM COMBOBOXINFO}
  9682. TComboBoxInfo = COMBOBOXINFO;
  9683. PComboBoxInfo = LPCOMBOBOXINFO;
  9684. function GetComboBoxInfo(hwndCombo: HWND; var pcbi: COMBOBOXINFO): BOOL; stdcall;
  9685. {$EXTERNALSYM GetComboBoxInfo}
  9686. //
  9687. // The "real" ancestor window
  9688. //
  9689. const
  9690. GA_PARENT = 1;
  9691. {$EXTERNALSYM GA_PARENT}
  9692. GA_ROOT = 2;
  9693. {$EXTERNALSYM GA_ROOT}
  9694. GA_ROOTOWNER = 3;
  9695. {$EXTERNALSYM GA_ROOTOWNER}
  9696. function GetAncestor(hwnd: HWND; gaFlags: UINT): HWND; stdcall;
  9697. {$EXTERNALSYM GetAncestor}
  9698. //
  9699. // This gets the REAL child window at the point. If it is in the dead
  9700. // space of a group box, it will try a sibling behind it. But static
  9701. // fields will get returned. In other words, it is kind of a cross between
  9702. // ChildWindowFromPointEx and WindowFromPoint.
  9703. //
  9704. function RealChildWindowFromPoint(hwndParent: HWND; ptParentClientCoords: POINT): HWND; stdcall;
  9705. {$EXTERNALSYM RealChildWindowFromPoint}
  9706. //
  9707. // This gets the name of the window TYPE, not class. This allows us to
  9708. // recognize ThunderButton32 et al.
  9709. //
  9710. function RealGetWindowClassA(hwnd: HWND; pszType: LPSTR; cchType: UINT): UINT; stdcall;
  9711. {$EXTERNALSYM RealGetWindowClassA}
  9712. //
  9713. // This gets the name of the window TYPE, not class. This allows us to
  9714. // recognize ThunderButton32 et al.
  9715. //
  9716. function RealGetWindowClassW(hwnd: HWND; pszType: LPWSTR; cchType: UINT): UINT; stdcall;
  9717. {$EXTERNALSYM RealGetWindowClassW}
  9718. function RealGetWindowClass(hwnd: HWND; pszType: LPTSTR; cchType: UINT): UINT; stdcall;
  9719. {$EXTERNALSYM RealGetWindowClass}
  9720. //
  9721. // Alt-Tab Switch window information.
  9722. //
  9723. type
  9724. LPALTTABINFO = ^ALTTABINFO;
  9725. {$EXTERNALSYM LPALTTABINFO}
  9726. tagALTTABINFO = record
  9727. cbSize: DWORD;
  9728. cItems: Integer;
  9729. cColumns: Integer;
  9730. cRows: Integer;
  9731. iColFocus: Integer;
  9732. iRowFocus: Integer;
  9733. cxItem: Integer;
  9734. cyItem: Integer;
  9735. ptStart: POINT;
  9736. end;
  9737. {$EXTERNALSYM tagALTTABINFO}
  9738. ALTTABINFO = tagALTTABINFO;
  9739. {$EXTERNALSYM ALTTABINFO}
  9740. TAltTabInfo = ALTTABINFO;
  9741. PAltTabInfo = LPALTTABINFO;
  9742. function GetAltTabInfoA(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9743. pszItemText: LPSTR; cchItemText: UINT): BOOL; stdcall;
  9744. {$EXTERNALSYM GetAltTabInfoA}
  9745. function GetAltTabInfoW(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9746. pszItemText: LPWSTR; cchItemText: UINT): BOOL; stdcall;
  9747. {$EXTERNALSYM GetAltTabInfoW}
  9748. function GetAltTabInfo(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9749. pszItemText: LPTSTR; cchItemText: UINT): BOOL; stdcall;
  9750. {$EXTERNALSYM GetAltTabInfo}
  9751. //
  9752. // Listbox information.
  9753. // Returns the number of items per row.
  9754. //
  9755. function GetListBoxInfo(hwnd: HWND): DWORD; stdcall;
  9756. {$EXTERNALSYM GetListBoxInfo}
  9757. function LockWorkStation: BOOL; stdcall;
  9758. {$EXTERNALSYM LockWorkStation}
  9759. function UserHandleGrantAccess(hUserHandle, hJob: HANDLE; bGrant: BOOL): BOOL; stdcall;
  9760. {$EXTERNALSYM UserHandleGrantAccess}
  9761. //
  9762. // Raw Input Messages.
  9763. //
  9764. type
  9765. HRAWINPUT = HANDLE;
  9766. {$EXTERNALSYM HRAWINPUT}
  9767. //
  9768. // WM_INPUT wParam
  9769. //
  9770. //
  9771. // Use this macro to get the input code from wParam.
  9772. //
  9773. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  9774. {$EXTERNALSYM GET_RAWINPUT_CODE_WPARAM}
  9775. //
  9776. // The input is in the regular message flow,
  9777. // the app is required to call DefWindowProc
  9778. // so that the system can perform clean ups.
  9779. //
  9780. const
  9781. RIM_INPUT = 0;
  9782. {$EXTERNALSYM RIM_INPUT}
  9783. //
  9784. // The input is sink only. The app is expected
  9785. // to behave nicely.
  9786. //
  9787. RIM_INPUTSINK = 1;
  9788. {$EXTERNALSYM RIM_INPUTSINK}
  9789. //
  9790. // Raw Input data header
  9791. //
  9792. type
  9793. tagRAWINPUTHEADER = record
  9794. dwType: DWORD;
  9795. dwSize: DWORD;
  9796. hDevice: HANDLE;
  9797. wParam: WPARAM;
  9798. end;
  9799. {$EXTERNALSYM tagRAWINPUTHEADER}
  9800. RAWINPUTHEADER = tagRAWINPUTHEADER;
  9801. {$EXTERNALSYM RAWINPUTHEADER}
  9802. PRAWINPUTHEADER = ^RAWINPUTHEADER;
  9803. {$EXTERNALSYM PRAWINPUTHEADER}
  9804. LPRAWINPUTHEADER = ^RAWINPUTHEADER;
  9805. {$EXTERNALSYM LPRAWINPUTHEADER}
  9806. TRawInputHeader = RAWINPUTHEADER;
  9807. //
  9808. // Type of the raw input
  9809. //
  9810. const
  9811. RIM_TYPEMOUSE = 0;
  9812. {$EXTERNALSYM RIM_TYPEMOUSE}
  9813. RIM_TYPEKEYBOARD = 1;
  9814. {$EXTERNALSYM RIM_TYPEKEYBOARD}
  9815. RIM_TYPEHID = 2;
  9816. {$EXTERNALSYM RIM_TYPEHID}
  9817. //
  9818. // Raw format of the mouse input
  9819. //
  9820. type
  9821. tagRAWMOUSE = record
  9822. //
  9823. // Indicator flags.
  9824. //
  9825. usFlags: USHORT;
  9826. //
  9827. // The transition state of the mouse buttons.
  9828. //
  9829. union: record
  9830. case Integer of
  9831. 0: (
  9832. ulButtons: ULONG);
  9833. 1: (
  9834. usButtonFlags: USHORT;
  9835. usButtonData: USHORT);
  9836. end;
  9837. //
  9838. // The raw state of the mouse buttons.
  9839. //
  9840. ulRawButtons: ULONG;
  9841. //
  9842. // The signed relative or absolute motion in the X direction.
  9843. //
  9844. lLastX: LONG;
  9845. //
  9846. // The signed relative or absolute motion in the Y direction.
  9847. //
  9848. lLastY: LONG;
  9849. //
  9850. // Device-specific additional information for the event.
  9851. //
  9852. ulExtraInformation: ULONG;
  9853. end;
  9854. {$EXTERNALSYM tagRAWMOUSE}
  9855. RAWMOUSE = tagRAWMOUSE;
  9856. {$EXTERNALSYM RAWMOUSE}
  9857. PRAWMOUSE = ^RAWMOUSE;
  9858. {$EXTERNALSYM PRAWMOUSE}
  9859. LPRAWMOUSE = ^RAWMOUSE;
  9860. {$EXTERNALSYM LPRAWMOUSE}
  9861. TRawMouse = RAWMOUSE;
  9862. //
  9863. // Define the mouse button state indicators.
  9864. //
  9865. const
  9866. RI_MOUSE_LEFT_BUTTON_DOWN = $0001; // Left Button changed to down.
  9867. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_DOWN}
  9868. RI_MOUSE_LEFT_BUTTON_UP = $0002; // Left Button changed to up.
  9869. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_UP}
  9870. RI_MOUSE_RIGHT_BUTTON_DOWN = $0004; // Right Button changed to down.
  9871. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_DOWN}
  9872. RI_MOUSE_RIGHT_BUTTON_UP = $0008; // Right Button changed to up.
  9873. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_UP}
  9874. RI_MOUSE_MIDDLE_BUTTON_DOWN = $0010; // Middle Button changed to down.
  9875. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_DOWN}
  9876. RI_MOUSE_MIDDLE_BUTTON_UP = $0020; // Middle Button changed to up.
  9877. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_UP}
  9878. RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
  9879. {$EXTERNALSYM RI_MOUSE_BUTTON_1_DOWN}
  9880. RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP;
  9881. {$EXTERNALSYM RI_MOUSE_BUTTON_1_UP}
  9882. RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
  9883. {$EXTERNALSYM RI_MOUSE_BUTTON_2_DOWN}
  9884. RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP;
  9885. {$EXTERNALSYM RI_MOUSE_BUTTON_2_UP}
  9886. RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
  9887. {$EXTERNALSYM RI_MOUSE_BUTTON_3_DOWN}
  9888. RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP;
  9889. {$EXTERNALSYM RI_MOUSE_BUTTON_3_UP}
  9890. RI_MOUSE_BUTTON_4_DOWN = $0040;
  9891. {$EXTERNALSYM RI_MOUSE_BUTTON_4_DOWN}
  9892. RI_MOUSE_BUTTON_4_UP = $0080;
  9893. {$EXTERNALSYM RI_MOUSE_BUTTON_4_UP}
  9894. RI_MOUSE_BUTTON_5_DOWN = $0100;
  9895. {$EXTERNALSYM RI_MOUSE_BUTTON_5_DOWN}
  9896. RI_MOUSE_BUTTON_5_UP = $0200;
  9897. {$EXTERNALSYM RI_MOUSE_BUTTON_5_UP}
  9898. //
  9899. // If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
  9900. // Take it as a signed value.
  9901. //
  9902. RI_MOUSE_WHEEL = $0400;
  9903. {$EXTERNALSYM RI_MOUSE_WHEEL}
  9904. //
  9905. // Define the mouse indicator flags.
  9906. //
  9907. MOUSE_MOVE_RELATIVE = 0;
  9908. {$EXTERNALSYM MOUSE_MOVE_RELATIVE}
  9909. MOUSE_MOVE_ABSOLUTE = 1;
  9910. {$EXTERNALSYM MOUSE_MOVE_ABSOLUTE}
  9911. MOUSE_VIRTUAL_DESKTOP = $02; // the coordinates are mapped to the virtual desktop
  9912. {$EXTERNALSYM MOUSE_VIRTUAL_DESKTOP}
  9913. MOUSE_ATTRIBUTES_CHANGED = $04; // requery for mouse attributes
  9914. {$EXTERNALSYM MOUSE_ATTRIBUTES_CHANGED}
  9915. //
  9916. // Raw format of the keyboard input
  9917. //
  9918. type
  9919. tagRAWKEYBOARD = record
  9920. //
  9921. // The "make" scan code (key depression).
  9922. //
  9923. MakeCode: USHORT;
  9924. //
  9925. // The flags field indicates a "break" (key release) and other
  9926. // miscellaneous scan code information defined in ntddkbd.h.
  9927. //
  9928. Flags: USHORT;
  9929. Reserved: USHORT;
  9930. //
  9931. // Windows message compatible information
  9932. //
  9933. VKey: USHORT;
  9934. Message: UINT;
  9935. //
  9936. // Device-specific additional information for the event.
  9937. //
  9938. ExtraInformation: ULONG;
  9939. end;
  9940. {$EXTERNALSYM tagRAWKEYBOARD}
  9941. RAWKEYBOARD = tagRAWKEYBOARD;
  9942. {$EXTERNALSYM RAWKEYBOARD}
  9943. PRAWKEYBOARD = ^RAWKEYBOARD;
  9944. {$EXTERNALSYM PRAWKEYBOARD}
  9945. LPRAWKEYBOARD = ^RAWKEYBOARD;
  9946. {$EXTERNALSYM LPRAWKEYBOARD}
  9947. TRawKeyBoard = RAWKEYBOARD;
  9948. //
  9949. // Define the keyboard overrun MakeCode.
  9950. //
  9951. const
  9952. KEYBOARD_OVERRUN_MAKE_CODE = $FF;
  9953. {$EXTERNALSYM KEYBOARD_OVERRUN_MAKE_CODE}
  9954. //
  9955. // Define the keyboard input data Flags.
  9956. //
  9957. RI_KEY_MAKE = 0;
  9958. {$EXTERNALSYM RI_KEY_MAKE}
  9959. RI_KEY_BREAK = 1;
  9960. {$EXTERNALSYM RI_KEY_BREAK}
  9961. RI_KEY_E0 = 2;
  9962. {$EXTERNALSYM RI_KEY_E0}
  9963. RI_KEY_E1 = 4;
  9964. {$EXTERNALSYM RI_KEY_E1}
  9965. RI_KEY_TERMSRV_SET_LED = 8;
  9966. {$EXTERNALSYM RI_KEY_TERMSRV_SET_LED}
  9967. RI_KEY_TERMSRV_SHADOW = $10;
  9968. {$EXTERNALSYM RI_KEY_TERMSRV_SHADOW}
  9969. //
  9970. // Raw format of the input from Human Input Devices
  9971. //
  9972. type
  9973. tagRAWHID = record
  9974. dwSizeHid: DWORD; // byte size of each report
  9975. dwCount: DWORD; // number of input packed
  9976. bRawData: array [0..0] of BYTE;
  9977. end;
  9978. {$EXTERNALSYM tagRAWHID}
  9979. RAWHID = tagRAWHID;
  9980. {$EXTERNALSYM RAWHID}
  9981. PRAWHID = ^RAWHID;
  9982. {$EXTERNALSYM PRAWHID}
  9983. LPRAWHID = ^RAWHID;
  9984. {$EXTERNALSYM LPRAWHID}
  9985. TRawHid = RAWHID;
  9986. //
  9987. // RAWINPUT data structure.
  9988. //
  9989. tagRAWINPUT = record
  9990. header: RAWINPUTHEADER;
  9991. case Integer of
  9992. 0: (mouse: RAWMOUSE);
  9993. 1: (keyboard: RAWKEYBOARD);
  9994. 2: (hid: RAWHID);
  9995. end;
  9996. {$EXTERNALSYM tagRAWINPUT}
  9997. RAWINPUT = tagRAWINPUT;
  9998. {$EXTERNALSYM RAWINPUT}
  9999. PRAWINPUT = ^RAWINPUT;
  10000. {$EXTERNALSYM PRAWINPUT}
  10001. LPRAWINPUT = ^RAWINPUT;
  10002. {$EXTERNALSYM LPRAWINPUT}
  10003. TRawInput = RAWINPUT;
  10004. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  10005. {$EXTERNALSYM RAWINPUT_ALIGN}
  10006. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10007. {$EXTERNALSYM NEXTRAWINPUTBLOCK}
  10008. //
  10009. // Flags for GetRawInputData
  10010. //
  10011. const
  10012. RID_INPUT = $10000003;
  10013. {$EXTERNALSYM RID_INPUT}
  10014. RID_HEADER = $10000005;
  10015. {$EXTERNALSYM RID_HEADER}
  10016. function GetRawInputData(hRawInput: HRAWINPUT; uiCommand: UINT; pData: LPVOID;
  10017. var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10018. {$EXTERNALSYM GetRawInputData}
  10019. //
  10020. // Raw Input Device Information
  10021. //
  10022. const
  10023. RIDI_PREPARSEDDATA = $20000005;
  10024. {$EXTERNALSYM RIDI_PREPARSEDDATA}
  10025. RIDI_DEVICENAME = $20000007; // the return valus is the character length, not the byte size
  10026. {$EXTERNALSYM RIDI_DEVICENAME}
  10027. RIDI_DEVICEINFO = $2000000b;
  10028. {$EXTERNALSYM RIDI_DEVICEINFO}
  10029. type
  10030. PRID_DEVICE_INFO_MOUSE = ^RID_DEVICE_INFO_MOUSE;
  10031. {$EXTERNALSYM PRID_DEVICE_INFO_MOUSE}
  10032. tagRID_DEVICE_INFO_MOUSE = record
  10033. dwId: DWORD;
  10034. dwNumberOfButtons: DWORD;
  10035. dwSampleRate: DWORD;
  10036. end;
  10037. {$EXTERNALSYM tagRID_DEVICE_INFO_MOUSE}
  10038. RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;
  10039. {$EXTERNALSYM RID_DEVICE_INFO_MOUSE}
  10040. TRidDeviceInfoMouse = RID_DEVICE_INFO_MOUSE;
  10041. PRidDeviceInfoMouse = PRID_DEVICE_INFO_MOUSE;
  10042. PRID_DEVICE_INFO_KEYBOARD = ^RID_DEVICE_INFO_KEYBOARD;
  10043. {$EXTERNALSYM PRID_DEVICE_INFO_KEYBOARD}
  10044. tagRID_DEVICE_INFO_KEYBOARD = record
  10045. dwType: DWORD;
  10046. dwSubType: DWORD;
  10047. dwKeyboardMode: DWORD;
  10048. dwNumberOfFunctionKeys: DWORD;
  10049. dwNumberOfIndicators: DWORD;
  10050. dwNumberOfKeysTotal: DWORD;
  10051. end;
  10052. {$EXTERNALSYM tagRID_DEVICE_INFO_KEYBOARD}
  10053. RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;
  10054. {$EXTERNALSYM RID_DEVICE_INFO_KEYBOARD}
  10055. TRidDeviceInfoKeyboard = RID_DEVICE_INFO_KEYBOARD;
  10056. PRidDeviceInfoKeyboard = PRID_DEVICE_INFO_KEYBOARD;
  10057. PRID_DEVICE_INFO_HID = ^RID_DEVICE_INFO_HID;
  10058. {$EXTERNALSYM PRID_DEVICE_INFO_HID}
  10059. tagRID_DEVICE_INFO_HID = record
  10060. dwVendorId: DWORD;
  10061. dwProductId: DWORD;
  10062. dwVersionNumber: DWORD;
  10063. //
  10064. // Top level collection UsagePage and Usage
  10065. //
  10066. usUsagePage: USHORT;
  10067. usUsage: USHORT;
  10068. end;
  10069. {$EXTERNALSYM tagRID_DEVICE_INFO_HID}
  10070. RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;
  10071. {$EXTERNALSYM RID_DEVICE_INFO_HID}
  10072. TRidDeviceInfoHid = RID_DEVICE_INFO_HID;
  10073. PRidDeviceInfoHid = PRID_DEVICE_INFO_HID;
  10074. tagRID_DEVICE_INFO = record
  10075. cbSize: DWORD;
  10076. dwType: DWORD;
  10077. case Integer of
  10078. 0: (mouse: RID_DEVICE_INFO_MOUSE);
  10079. 1: (keyboard: RID_DEVICE_INFO_KEYBOARD);
  10080. 2: (hid: RID_DEVICE_INFO_HID);
  10081. end;
  10082. {$EXTERNALSYM tagRID_DEVICE_INFO}
  10083. RID_DEVICE_INFO = tagRID_DEVICE_INFO;
  10084. {$EXTERNALSYM RID_DEVICE_INFO}
  10085. PRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10086. {$EXTERNALSYM PRID_DEVICE_INFO}
  10087. LPRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10088. {$EXTERNALSYM LPRID_DEVICE_INFO}
  10089. TRidDeviceInfo = RID_DEVICE_INFO;
  10090. PRidDeviceInfo = PRID_DEVICE_INFO;
  10091. function GetRawInputDeviceInfoA(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10092. var pcbSize: UINT): UINT; stdcall;
  10093. {$EXTERNALSYM GetRawInputDeviceInfoA}
  10094. function GetRawInputDeviceInfoW(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10095. var pcbSize: UINT): UINT; stdcall;
  10096. {$EXTERNALSYM GetRawInputDeviceInfoW}
  10097. function GetRawInputDeviceInfo(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10098. var pcbSize: UINT): UINT; stdcall;
  10099. {$EXTERNALSYM GetRawInputDeviceInfo}
  10100. //
  10101. // Raw Input Bulk Read: GetRawInputBuffer
  10102. //
  10103. function GetRawInputBuffer(pData: PRAWINPUT; var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10104. {$EXTERNALSYM GetRawInputBuffer}
  10105. //
  10106. // Raw Input request APIs
  10107. //
  10108. type
  10109. LPRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10110. {$EXTERNALSYM LPRAWINPUTDEVICE}
  10111. PRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10112. {$EXTERNALSYM PRAWINPUTDEVICE}
  10113. tagRAWINPUTDEVICE = record
  10114. usUsagePage: USHORT; // Toplevel collection UsagePage
  10115. usUsage: USHORT; // Toplevel collection Usage
  10116. dwFlags: DWORD;
  10117. hwndTarget: HWND; // Target hwnd. NULL = follows keyboard focus
  10118. end;
  10119. {$EXTERNALSYM tagRAWINPUTDEVICE}
  10120. RAWINPUTDEVICE = tagRAWINPUTDEVICE;
  10121. {$EXTERNALSYM RAWINPUTDEVICE}
  10122. TRawInputDevice = RAWINPUTDEVICE;
  10123. const
  10124. RIDEV_REMOVE = $00000001;
  10125. {$EXTERNALSYM RIDEV_REMOVE}
  10126. RIDEV_EXCLUDE = $00000010;
  10127. {$EXTERNALSYM RIDEV_EXCLUDE}
  10128. RIDEV_PAGEONLY = $00000020;
  10129. {$EXTERNALSYM RIDEV_PAGEONLY}
  10130. RIDEV_NOLEGACY = $00000030;
  10131. {$EXTERNALSYM RIDEV_NOLEGACY}
  10132. RIDEV_INPUTSINK = $00000100;
  10133. {$EXTERNALSYM RIDEV_INPUTSINK}
  10134. RIDEV_CAPTUREMOUSE = $00000200; // effective when mouse nolegacy is specified, otherwise it would be an error
  10135. {$EXTERNALSYM RIDEV_CAPTUREMOUSE}
  10136. RIDEV_NOHOTKEYS = $00000200; // effective for keyboard.
  10137. {$EXTERNALSYM RIDEV_NOHOTKEYS}
  10138. RIDEV_APPKEYS = $00000400; // effective for keyboard.
  10139. {$EXTERNALSYM RIDEV_APPKEYS}
  10140. RIDEV_EXMODEMASK = $000000F0;
  10141. {$EXTERNALSYM RIDEV_EXMODEMASK}
  10142. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10143. {$EXTERNALSYM RIDEV_EXMODE}
  10144. function RegisterRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10145. uiNumDevices: UINT; cbSize: UINT): BOOL; stdcall;
  10146. {$EXTERNALSYM RegisterRawInputDevices}
  10147. function GetRegisteredRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10148. var puiNumDevices: UINT; cbSize: UINT): UINT; stdcall;
  10149. {$EXTERNALSYM GetRegisteredRawInputDevices}
  10150. type
  10151. PRAWINPUTDEVICELIST = ^RAWINPUTDEVICELIST;
  10152. {$EXTERNALSYM PRAWINPUTDEVICELIST}
  10153. tagRAWINPUTDEVICELIST = record
  10154. hDevice: HANDLE;
  10155. dwType: DWORD;
  10156. end;
  10157. {$EXTERNALSYM tagRAWINPUTDEVICELIST}
  10158. RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
  10159. {$EXTERNALSYM RAWINPUTDEVICELIST}
  10160. TRawInputDeviceList = RAWINPUTDEVICELIST;
  10161. function GetRawInputDeviceList(pRawInputDeviceList: PRAWINPUTDEVICELIST; var puiNumDevices: UINT;
  10162. cbSize: UINT): UINT; stdcall;
  10163. {$EXTERNALSYM GetRawInputDeviceList}
  10164. function DefRawInputProc(paRawInput: PRAWINPUT; nInput: Integer; cbSizeHeader: UINT): LRESULT; stdcall;
  10165. {$EXTERNALSYM DefRawInputProc}
  10166. {$ENDIF JWA_INTERFACESECTION}
  10167. {$IFNDEF JWA_INCLUDEMODE}
  10168. implementation
  10169. uses
  10170. JwaWinDLLNames;
  10171. {$ENDIF !JWA_INCLUDEMODE}
  10172. {$IFDEF JWA_IMPLEMENTATIONSECTION}
  10173. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  10174. begin
  10175. Result := (ULONG_PTR(wInteger) shr 16) = 0;
  10176. end;
  10177. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  10178. begin
  10179. Result := SHORT(HIWORD(wParam));
  10180. end;
  10181. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  10182. begin
  10183. Result := LOWORD(wParam);
  10184. end;
  10185. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  10186. begin
  10187. Result := LOWORD(wParam);
  10188. end;
  10189. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  10190. begin
  10191. Result := HIWORD(wParam);
  10192. end;
  10193. {$IFDEF WIN2000_UP}
  10194. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
  10195. begin
  10196. Result := WORD(HIWORD(lParam) and not FAPPCOMMAND_MASK);
  10197. end;
  10198. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  10199. begin
  10200. Result := WORD(HIWORD(lParam) and FAPPCOMMAND_MASK);
  10201. end;
  10202. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  10203. begin
  10204. Result := GET_DEVICE_LPARAM(lParam);
  10205. end;
  10206. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  10207. begin
  10208. Result := LOWORD(lParam);
  10209. end;
  10210. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  10211. begin
  10212. Result := GET_FLAGS_LPARAM(lParam);
  10213. end;
  10214. {$ENDIF WIN2000_UP}
  10215. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  10216. begin
  10217. Result := WPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10218. end;
  10219. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  10220. begin
  10221. Result := LPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10222. end;
  10223. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  10224. begin
  10225. Result := LRESULT(DWORD(MAKELONG(wLow, wHigh)));
  10226. end;
  10227. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  10228. begin
  10229. Result := ExitWindowsEx(EWX_LOGOFF, $FFFFFFFF);
  10230. end;
  10231. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10232. begin
  10233. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10234. end;
  10235. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10236. begin
  10237. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10238. end;
  10239. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10240. begin
  10241. {$IFDEF UNICODE}
  10242. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10243. {$ELSE}
  10244. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10245. {$ENDIF UNICODE}
  10246. end;
  10247. function CreateWindowA(lpClassName: LPCSTR; lpWindowName: LPCSTR; dwStyle: DWORD;
  10248. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10249. hInstance: HINST; lpParam: LPVOID): HWND;
  10250. begin
  10251. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10252. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10253. end;
  10254. function CreateWindowW(lpClassName: LPCWSTR; lpWindowName: LPCWSTR; dwStyle: DWORD;
  10255. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10256. hInstance: HINST; lpParam: LPVOID): HWND;
  10257. begin
  10258. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10259. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10260. end;
  10261. function CreateWindow(lpClassName: LPCTSTR; lpWindowName: LPCTSTR; dwStyle: DWORD;
  10262. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10263. hInstance: HINST; lpParam: LPVOID): HWND;
  10264. begin
  10265. {$IFDEF UNICODE}
  10266. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10267. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10268. {$ELSE}
  10269. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10270. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10271. {$ENDIF UNICODE}
  10272. end;
  10273. function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10274. begin
  10275. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10276. end;
  10277. function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10278. begin
  10279. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10280. end;
  10281. function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10282. begin
  10283. {$IFDEF UNICODE}
  10284. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10285. {$ELSE}
  10286. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10287. {$ENDIF UNICODE}
  10288. end;
  10289. function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10290. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10291. begin
  10292. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10293. end;
  10294. function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10295. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10296. begin
  10297. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10298. end;
  10299. function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10300. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10301. begin
  10302. {$IFDEF UNICODE}
  10303. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10304. {$ELSE}
  10305. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10306. {$ENDIF UNICODE}
  10307. end;
  10308. function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10309. begin
  10310. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10311. end;
  10312. function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10313. begin
  10314. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10315. end;
  10316. function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10317. begin
  10318. {$IFDEF UNICODE}
  10319. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10320. {$ELSE}
  10321. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10322. {$ENDIF UNICODE}
  10323. end;
  10324. function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10325. begin
  10326. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10327. end;
  10328. function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10329. begin
  10330. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10331. end;
  10332. function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10333. begin
  10334. {$IFDEF UNICODE}
  10335. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10336. {$ELSE}
  10337. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10338. {$ENDIF UNICODE}
  10339. end;
  10340. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10341. begin
  10342. Result := CharToOemA(lpszSrc, lpszDst);
  10343. end;
  10344. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10345. begin
  10346. Result := OemToCharA(lpszSrc, lpszDst);
  10347. end;
  10348. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10349. begin
  10350. Result := CharToOemBuffA(lpszSrc, lpszDst, cchDstLength);
  10351. end;
  10352. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10353. begin
  10354. Result := OemToCharBuffA(lpszSrc, lpszDst, cchDstLength);
  10355. end;
  10356. function AnsiUpper(lpsz: LPSTR): LPSTR;
  10357. begin
  10358. Result := CharUpperA(lpsz);
  10359. end;
  10360. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10361. begin
  10362. Result := CharUpperBuffA(lpsz, cchLength);
  10363. end;
  10364. function AnsiLower(lpsz: LPSTR): LPSTR;
  10365. begin
  10366. Result := CharLowerA(lpsz);
  10367. end;
  10368. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10369. begin
  10370. Result := CharLowerBuffA(lpsz, cchLength);
  10371. end;
  10372. function AnsiNext(lpsz: LPCSTR): LPSTR;
  10373. begin
  10374. Result := CharNextA(lpsz);
  10375. end;
  10376. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  10377. begin
  10378. Result := CharPrevA(lpszStart, lpszCurrent);
  10379. end;
  10380. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10381. begin
  10382. Result := GetWindowLongA(hWnd, nIndex);
  10383. end;
  10384. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10385. begin
  10386. Result := GetWindowLongW(hWnd, nIndex);
  10387. end;
  10388. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10389. begin
  10390. {$IFDEF UNICODE}
  10391. Result := GetWindowLongW(hWnd, nIndex);
  10392. {$ELSE}
  10393. Result := GetWindowLongA(hWnd, nIndex);
  10394. {$ENDIF UNICODE}
  10395. end;
  10396. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10397. begin
  10398. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10399. end;
  10400. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10401. begin
  10402. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10403. end;
  10404. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10405. begin
  10406. {$IFDEF UNICODE}
  10407. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10408. {$ELSE}
  10409. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10410. {$ENDIF UNICODE}
  10411. end;
  10412. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10413. begin
  10414. Result := GetClassLongA(hWnd, nIndex);
  10415. end;
  10416. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10417. begin
  10418. Result := GetClassLongW(hWnd, nIndex);
  10419. end;
  10420. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10421. begin
  10422. {$IFDEF UNICODE}
  10423. Result := GetClassLongW(hWnd, nIndex);
  10424. {$ELSE}
  10425. Result := GetClassLongA(hWnd, nIndex);
  10426. {$ENDIF UNICODE}
  10427. end;
  10428. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10429. begin
  10430. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10431. end;
  10432. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10433. begin
  10434. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10435. end;
  10436. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10437. begin
  10438. {$IFDEF UNICODE}
  10439. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10440. {$ELSE}
  10441. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10442. {$ENDIF UNICODE}
  10443. end;
  10444. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  10445. begin
  10446. Result := EnumThreadWindows(ULONG(hTask), lpfn, lParam);
  10447. end;
  10448. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  10449. begin
  10450. Result := GetWindow(hWnd, wCmd);
  10451. end;
  10452. function GetWindowTask(hWnd: HWND): HANDLE;
  10453. begin
  10454. Result := HANDLE(DWORD_PTR(GetWindowThreadProcessId(hWnd, nil)));
  10455. end;
  10456. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  10457. begin
  10458. Result := CallNextHookEx(HHOOK(phhk^), nCode, wParam, lParam);
  10459. end;
  10460. function CopyCursor(pcur: HCURSOR): HCURSOR;
  10461. begin
  10462. Result := HCURSOR(CopyIcon(HICON(pcur)));
  10463. end;
  10464. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  10465. begin
  10466. Result := wParam and $ff;
  10467. end;
  10468. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  10469. begin
  10470. Result := Pointer((Integer(x) + SizeOf(DWORD) - 1) and not (SizeOf(DWORD) - 1));
  10471. end;
  10472. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10473. begin
  10474. Result := PRAWINPUT(DWORD(RAWINPUT_ALIGN(ptr)) + ptr^.header.dwSize);
  10475. end;
  10476. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10477. begin
  10478. Result := mode and RIDEV_EXMODEMASK;
  10479. end;
  10480. {$IFDEF DYNAMIC_LINK}
  10481. var
  10482. _IsHungAppWindow: Pointer;
  10483. function IsHungAppWindow;
  10484. begin
  10485. GetProcedureAddress(_IsHungAppWindow, user32, 'IsHungAppWindow');
  10486. asm
  10487. MOV ESP, EBP
  10488. POP EBP
  10489. JMP [_IsHungAppWindow]
  10490. end;
  10491. end;
  10492. var
  10493. _DisableProcessWindowsGhosting: Pointer;
  10494. procedure DisableProcessWindowsGhosting;
  10495. begin
  10496. GetProcedureAddress(_DisableProcessWindowsGhosting, user32, 'DisableProcessWindowsGhosting');
  10497. asm
  10498. MOV ESP, EBP
  10499. POP EBP
  10500. JMP [_DisableProcessWindowsGhosting]
  10501. end;
  10502. end;
  10503. var
  10504. _wvsprintfA: Pointer;
  10505. function wvsprintfA;
  10506. begin
  10507. GetProcedureAddress(_wvsprintfA, user32, 'wvsprintfA');
  10508. asm
  10509. MOV ESP, EBP
  10510. POP EBP
  10511. JMP [_wvsprintfA]
  10512. end;
  10513. end;
  10514. var
  10515. _wvsprintfW: Pointer;
  10516. function wvsprintfW;
  10517. begin
  10518. GetProcedureAddress(_wvsprintfW, user32, 'wvsprintfW');
  10519. asm
  10520. MOV ESP, EBP
  10521. POP EBP
  10522. JMP [_wvsprintfW]
  10523. end;
  10524. end;
  10525. var
  10526. _wvsprintf: Pointer;
  10527. function wvsprintf;
  10528. begin
  10529. GetProcedureAddress(_wvsprintf, user32, 'wvsprintf' + AWSuffix);
  10530. asm
  10531. MOV ESP, EBP
  10532. POP EBP
  10533. JMP [_wvsprintf]
  10534. end;
  10535. end;
  10536. var
  10537. _wsprintfA: Pointer;
  10538. function wsprintfA;
  10539. begin
  10540. GetProcedureAddress(_wsprintfA, user32, 'wsprintfA');
  10541. asm
  10542. MOV ESP, EBP
  10543. POP EBP
  10544. JMP [_wsprintfA]
  10545. end;
  10546. end;
  10547. var
  10548. _wsprintfW: Pointer;
  10549. function wsprintfW;
  10550. begin
  10551. GetProcedureAddress(_wsprintfW, user32, 'wsprintfW');
  10552. asm
  10553. MOV ESP, EBP
  10554. POP EBP
  10555. JMP [_wsprintfW]
  10556. end;
  10557. end;
  10558. var
  10559. _wsprintf: Pointer;
  10560. function wsprintf;
  10561. begin
  10562. GetProcedureAddress(_wsprintf, user32, 'wsprintf' + AWSuffix);
  10563. asm
  10564. MOV ESP, EBP
  10565. POP EBP
  10566. JMP [_wsprintf]
  10567. end;
  10568. end;
  10569. var
  10570. _LoadKeyboardLayoutA: Pointer;
  10571. function LoadKeyboardLayoutA;
  10572. begin
  10573. GetProcedureAddress(_LoadKeyboardLayoutA, user32, 'LoadKeyboardLayoutA');
  10574. asm
  10575. MOV ESP, EBP
  10576. POP EBP
  10577. JMP [_LoadKeyboardLayoutA]
  10578. end;
  10579. end;
  10580. var
  10581. _LoadKeyboardLayoutW: Pointer;
  10582. function LoadKeyboardLayoutW;
  10583. begin
  10584. GetProcedureAddress(_LoadKeyboardLayoutW, user32, 'LoadKeyboardLayoutW');
  10585. asm
  10586. MOV ESP, EBP
  10587. POP EBP
  10588. JMP [_LoadKeyboardLayoutW]
  10589. end;
  10590. end;
  10591. var
  10592. _LoadKeyboardLayout: Pointer;
  10593. function LoadKeyboardLayout;
  10594. begin
  10595. GetProcedureAddress(_LoadKeyboardLayout, user32, 'LoadKeyboardLayout' + AWSuffix);
  10596. asm
  10597. MOV ESP, EBP
  10598. POP EBP
  10599. JMP [_LoadKeyboardLayout]
  10600. end;
  10601. end;
  10602. var
  10603. _ActivateKeyboardLayout: Pointer;
  10604. function ActivateKeyboardLayout;
  10605. begin
  10606. GetProcedureAddress(_ActivateKeyboardLayout, user32, 'ActivateKeyboardLayout');
  10607. asm
  10608. MOV ESP, EBP
  10609. POP EBP
  10610. JMP [_ActivateKeyboardLayout]
  10611. end;
  10612. end;
  10613. var
  10614. _ToUnicodeEx: Pointer;
  10615. function ToUnicodeEx;
  10616. begin
  10617. GetProcedureAddress(_ToUnicodeEx, user32, 'ToUnicodeEx');
  10618. asm
  10619. MOV ESP, EBP
  10620. POP EBP
  10621. JMP [_ToUnicodeEx]
  10622. end;
  10623. end;
  10624. var
  10625. _UnloadKeyboardLayout: Pointer;
  10626. function UnloadKeyboardLayout;
  10627. begin
  10628. GetProcedureAddress(_UnloadKeyboardLayout, user32, 'UnloadKeyboardLayout');
  10629. asm
  10630. MOV ESP, EBP
  10631. POP EBP
  10632. JMP [_UnloadKeyboardLayout]
  10633. end;
  10634. end;
  10635. var
  10636. _GetKeyboardLayoutNameA: Pointer;
  10637. function GetKeyboardLayoutNameA;
  10638. begin
  10639. GetProcedureAddress(_GetKeyboardLayoutNameA, user32, 'GetKeyboardLayoutNameA');
  10640. asm
  10641. MOV ESP, EBP
  10642. POP EBP
  10643. JMP [_GetKeyboardLayoutNameA]
  10644. end;
  10645. end;
  10646. var
  10647. _GetKeyboardLayoutNameW: Pointer;
  10648. function GetKeyboardLayoutNameW;
  10649. begin
  10650. GetProcedureAddress(_GetKeyboardLayoutNameW, user32, 'GetKeyboardLayoutNameW');
  10651. asm
  10652. MOV ESP, EBP
  10653. POP EBP
  10654. JMP [_GetKeyboardLayoutNameW]
  10655. end;
  10656. end;
  10657. var
  10658. _GetKeyboardLayoutName: Pointer;
  10659. function GetKeyboardLayoutName;
  10660. begin
  10661. GetProcedureAddress(_GetKeyboardLayoutName, user32, 'GetKeyboardLayoutName' + AWSuffix);
  10662. asm
  10663. MOV ESP, EBP
  10664. POP EBP
  10665. JMP [_GetKeyboardLayoutName]
  10666. end;
  10667. end;
  10668. var
  10669. _GetKeyboardLayoutList: Pointer;
  10670. function GetKeyboardLayoutList;
  10671. begin
  10672. GetProcedureAddress(_GetKeyboardLayoutList, user32, 'GetKeyboardLayoutList');
  10673. asm
  10674. MOV ESP, EBP
  10675. POP EBP
  10676. JMP [_GetKeyboardLayoutList]
  10677. end;
  10678. end;
  10679. var
  10680. _GetKeyboardLayout: Pointer;
  10681. function GetKeyboardLayout;
  10682. begin
  10683. GetProcedureAddress(_GetKeyboardLayout, user32, 'GetKeyboardLayout');
  10684. asm
  10685. MOV ESP, EBP
  10686. POP EBP
  10687. JMP [_GetKeyboardLayout]
  10688. end;
  10689. end;
  10690. var
  10691. _GetMouseMovePointsEx: Pointer;
  10692. function GetMouseMovePointsEx;
  10693. begin
  10694. GetProcedureAddress(_GetMouseMovePointsEx, user32, 'GetMouseMovePointsEx');
  10695. asm
  10696. MOV ESP, EBP
  10697. POP EBP
  10698. JMP [_GetMouseMovePointsEx]
  10699. end;
  10700. end;
  10701. var
  10702. _CreateDesktopA: Pointer;
  10703. function CreateDesktopA;
  10704. begin
  10705. GetProcedureAddress(_CreateDesktopA, user32, 'CreateDesktopA');
  10706. asm
  10707. MOV ESP, EBP
  10708. POP EBP
  10709. JMP [_CreateDesktopA]
  10710. end;
  10711. end;
  10712. var
  10713. _CreateDesktopW: Pointer;
  10714. function CreateDesktopW;
  10715. begin
  10716. GetProcedureAddress(_CreateDesktopW, user32, 'CreateDesktopW');
  10717. asm
  10718. MOV ESP, EBP
  10719. POP EBP
  10720. JMP [_CreateDesktopW]
  10721. end;
  10722. end;
  10723. var
  10724. _CreateDesktop: Pointer;
  10725. function CreateDesktop;
  10726. begin
  10727. GetProcedureAddress(_CreateDesktop, user32, 'CreateDesktop' + AWSuffix);
  10728. asm
  10729. MOV ESP, EBP
  10730. POP EBP
  10731. JMP [_CreateDesktop]
  10732. end;
  10733. end;
  10734. var
  10735. _OpenDesktopA: Pointer;
  10736. function OpenDesktopA;
  10737. begin
  10738. GetProcedureAddress(_OpenDesktopA, user32, 'OpenDesktopA');
  10739. asm
  10740. MOV ESP, EBP
  10741. POP EBP
  10742. JMP [_OpenDesktopA]
  10743. end;
  10744. end;
  10745. var
  10746. _OpenDesktopW: Pointer;
  10747. function OpenDesktopW;
  10748. begin
  10749. GetProcedureAddress(_OpenDesktopW, user32, 'OpenDesktopW');
  10750. asm
  10751. MOV ESP, EBP
  10752. POP EBP
  10753. JMP [_OpenDesktopW]
  10754. end;
  10755. end;
  10756. var
  10757. _OpenDesktop: Pointer;
  10758. function OpenDesktop;
  10759. begin
  10760. GetProcedureAddress(_OpenDesktop, user32, 'OpenDesktop' + AWSuffix);
  10761. asm
  10762. MOV ESP, EBP
  10763. POP EBP
  10764. JMP [_OpenDesktop]
  10765. end;
  10766. end;
  10767. var
  10768. _OpenInputDesktop: Pointer;
  10769. function OpenInputDesktop;
  10770. begin
  10771. GetProcedureAddress(_OpenInputDesktop, user32, 'OpenInputDesktop');
  10772. asm
  10773. MOV ESP, EBP
  10774. POP EBP
  10775. JMP [_OpenInputDesktop]
  10776. end;
  10777. end;
  10778. var
  10779. _EnumDesktopsA: Pointer;
  10780. function EnumDesktopsA;
  10781. begin
  10782. GetProcedureAddress(_EnumDesktopsA, user32, 'EnumDesktopsA');
  10783. asm
  10784. MOV ESP, EBP
  10785. POP EBP
  10786. JMP [_EnumDesktopsA]
  10787. end;
  10788. end;
  10789. var
  10790. _EnumDesktopsW: Pointer;
  10791. function EnumDesktopsW;
  10792. begin
  10793. GetProcedureAddress(_EnumDesktopsW, user32, 'EnumDesktopsW');
  10794. asm
  10795. MOV ESP, EBP
  10796. POP EBP
  10797. JMP [_EnumDesktopsW]
  10798. end;
  10799. end;
  10800. var
  10801. _EnumDesktops: Pointer;
  10802. function EnumDesktops;
  10803. begin
  10804. GetProcedureAddress(_EnumDesktops, user32, 'EnumDesktops' + AWSuffix);
  10805. asm
  10806. MOV ESP, EBP
  10807. POP EBP
  10808. JMP [_EnumDesktops]
  10809. end;
  10810. end;
  10811. var
  10812. _EnumDesktopWindows: Pointer;
  10813. function EnumDesktopWindows;
  10814. begin
  10815. GetProcedureAddress(_EnumDesktopWindows, user32, 'EnumDesktopWindows');
  10816. asm
  10817. MOV ESP, EBP
  10818. POP EBP
  10819. JMP [_EnumDesktopWindows]
  10820. end;
  10821. end;
  10822. var
  10823. _SwitchDesktop: Pointer;
  10824. function SwitchDesktop;
  10825. begin
  10826. GetProcedureAddress(_SwitchDesktop, user32, 'SwitchDesktop');
  10827. asm
  10828. MOV ESP, EBP
  10829. POP EBP
  10830. JMP [_SwitchDesktop]
  10831. end;
  10832. end;
  10833. var
  10834. _SetThreadDesktop: Pointer;
  10835. function SetThreadDesktop;
  10836. begin
  10837. GetProcedureAddress(_SetThreadDesktop, user32, 'SetThreadDesktop');
  10838. asm
  10839. MOV ESP, EBP
  10840. POP EBP
  10841. JMP [_SetThreadDesktop]
  10842. end;
  10843. end;
  10844. var
  10845. _CloseDesktop: Pointer;
  10846. function CloseDesktop;
  10847. begin
  10848. GetProcedureAddress(_CloseDesktop, user32, 'CloseDesktop');
  10849. asm
  10850. MOV ESP, EBP
  10851. POP EBP
  10852. JMP [_CloseDesktop]
  10853. end;
  10854. end;
  10855. var
  10856. _GetThreadDesktop: Pointer;
  10857. function GetThreadDesktop;
  10858. begin
  10859. GetProcedureAddress(_GetThreadDesktop, user32, 'GetThreadDesktop');
  10860. asm
  10861. MOV ESP, EBP
  10862. POP EBP
  10863. JMP [_GetThreadDesktop]
  10864. end;
  10865. end;
  10866. var
  10867. _CreateWindowStationA: Pointer;
  10868. function CreateWindowStationA;
  10869. begin
  10870. GetProcedureAddress(_CreateWindowStationA, user32, 'CreateWindowStationA');
  10871. asm
  10872. MOV ESP, EBP
  10873. POP EBP
  10874. JMP [_CreateWindowStationA]
  10875. end;
  10876. end;
  10877. var
  10878. _CreateWindowStationW: Pointer;
  10879. function CreateWindowStationW;
  10880. begin
  10881. GetProcedureAddress(_CreateWindowStationW, user32, 'CreateWindowStationW');
  10882. asm
  10883. MOV ESP, EBP
  10884. POP EBP
  10885. JMP [_CreateWindowStationW]
  10886. end;
  10887. end;
  10888. var
  10889. _CreateWindowStation: Pointer;
  10890. function CreateWindowStation;
  10891. begin
  10892. GetProcedureAddress(_CreateWindowStation, user32, 'CreateWindowStation' + AWSuffix);
  10893. asm
  10894. MOV ESP, EBP
  10895. POP EBP
  10896. JMP [_CreateWindowStation]
  10897. end;
  10898. end;
  10899. var
  10900. _OpenWindowStationA: Pointer;
  10901. function OpenWindowStationA;
  10902. begin
  10903. GetProcedureAddress(_OpenWindowStationA, user32, 'OpenWindowStationA');
  10904. asm
  10905. MOV ESP, EBP
  10906. POP EBP
  10907. JMP [_OpenWindowStationA]
  10908. end;
  10909. end;
  10910. var
  10911. _OpenWindowStationW: Pointer;
  10912. function OpenWindowStationW;
  10913. begin
  10914. GetProcedureAddress(_OpenWindowStationW, user32, 'OpenWindowStationW');
  10915. asm
  10916. MOV ESP, EBP
  10917. POP EBP
  10918. JMP [_OpenWindowStationW]
  10919. end;
  10920. end;
  10921. var
  10922. _OpenWindowStation: Pointer;
  10923. function OpenWindowStation;
  10924. begin
  10925. GetProcedureAddress(_OpenWindowStation, user32, 'OpenWindowStation' + AWSuffix);
  10926. asm
  10927. MOV ESP, EBP
  10928. POP EBP
  10929. JMP [_OpenWindowStation]
  10930. end;
  10931. end;
  10932. var
  10933. _EnumWindowStationsA: Pointer;
  10934. function EnumWindowStationsA;
  10935. begin
  10936. GetProcedureAddress(_EnumWindowStationsA, user32, 'EnumWindowStationsA');
  10937. asm
  10938. MOV ESP, EBP
  10939. POP EBP
  10940. JMP [_EnumWindowStationsA]
  10941. end;
  10942. end;
  10943. var
  10944. _EnumWindowStationsW: Pointer;
  10945. function EnumWindowStationsW;
  10946. begin
  10947. GetProcedureAddress(_EnumWindowStationsW, user32, 'EnumWindowStationsW');
  10948. asm
  10949. MOV ESP, EBP
  10950. POP EBP
  10951. JMP [_EnumWindowStationsW]
  10952. end;
  10953. end;
  10954. var
  10955. _EnumWindowStations: Pointer;
  10956. function EnumWindowStations;
  10957. begin
  10958. GetProcedureAddress(_EnumWindowStations, user32, 'EnumWindowStations' + AWSuffix);
  10959. asm
  10960. MOV ESP, EBP
  10961. POP EBP
  10962. JMP [_EnumWindowStations]
  10963. end;
  10964. end;
  10965. var
  10966. _CloseWindowStation: Pointer;
  10967. function CloseWindowStation;
  10968. begin
  10969. GetProcedureAddress(_CloseWindowStation, user32, 'CloseWindowStation');
  10970. asm
  10971. MOV ESP, EBP
  10972. POP EBP
  10973. JMP [_CloseWindowStation]
  10974. end;
  10975. end;
  10976. var
  10977. _SetProcessWindowStation: Pointer;
  10978. function SetProcessWindowStation;
  10979. begin
  10980. GetProcedureAddress(_SetProcessWindowStation, user32, 'SetProcessWindowStation');
  10981. asm
  10982. MOV ESP, EBP
  10983. POP EBP
  10984. JMP [_SetProcessWindowStation]
  10985. end;
  10986. end;
  10987. var
  10988. _GetProcessWindowStation: Pointer;
  10989. function GetProcessWindowStation;
  10990. begin
  10991. GetProcedureAddress(_GetProcessWindowStation, user32, 'GetProcessWindowStation');
  10992. asm
  10993. MOV ESP, EBP
  10994. POP EBP
  10995. JMP [_GetProcessWindowStation]
  10996. end;
  10997. end;
  10998. var
  10999. _SetUserObjectSecurity: Pointer;
  11000. function SetUserObjectSecurity;
  11001. begin
  11002. GetProcedureAddress(_SetUserObjectSecurity, user32, 'SetUserObjectSecurity');
  11003. asm
  11004. MOV ESP, EBP
  11005. POP EBP
  11006. JMP [_SetUserObjectSecurity]
  11007. end;
  11008. end;
  11009. var
  11010. _GetUserObjectSecurity: Pointer;
  11011. function GetUserObjectSecurity;
  11012. begin
  11013. GetProcedureAddress(_GetUserObjectSecurity, user32, 'GetUserObjectSecurity');
  11014. asm
  11015. MOV ESP, EBP
  11016. POP EBP
  11017. JMP [_GetUserObjectSecurity]
  11018. end;
  11019. end;
  11020. var
  11021. _GetUserObjectInformationA: Pointer;
  11022. function GetUserObjectInformationA;
  11023. begin
  11024. GetProcedureAddress(_GetUserObjectInformationA, user32, 'GetUserObjectInformationA');
  11025. asm
  11026. MOV ESP, EBP
  11027. POP EBP
  11028. JMP [_GetUserObjectInformationA]
  11029. end;
  11030. end;
  11031. var
  11032. _GetUserObjectInformationW: Pointer;
  11033. function GetUserObjectInformationW;
  11034. begin
  11035. GetProcedureAddress(_GetUserObjectInformationW, user32, 'GetUserObjectInformationW');
  11036. asm
  11037. MOV ESP, EBP
  11038. POP EBP
  11039. JMP [_GetUserObjectInformationW]
  11040. end;
  11041. end;
  11042. var
  11043. _GetUserObjectInformation: Pointer;
  11044. function GetUserObjectInformation;
  11045. begin
  11046. GetProcedureAddress(_GetUserObjectInformation, user32, 'GetUserObjectInformation' + AWSuffix);
  11047. asm
  11048. MOV ESP, EBP
  11049. POP EBP
  11050. JMP [_GetUserObjectInformation]
  11051. end;
  11052. end;
  11053. var
  11054. _SetUserObjectInformationA: Pointer;
  11055. function SetUserObjectInformationA;
  11056. begin
  11057. GetProcedureAddress(_SetUserObjectInformationA, user32, 'SetUserObjectInformationA');
  11058. asm
  11059. MOV ESP, EBP
  11060. POP EBP
  11061. JMP [_SetUserObjectInformationA]
  11062. end;
  11063. end;
  11064. var
  11065. _SetUserObjectInformationW: Pointer;
  11066. function SetUserObjectInformationW;
  11067. begin
  11068. GetProcedureAddress(_SetUserObjectInformationW, user32, 'SetUserObjectInformationW');
  11069. asm
  11070. MOV ESP, EBP
  11071. POP EBP
  11072. JMP [_SetUserObjectInformationW]
  11073. end;
  11074. end;
  11075. var
  11076. _SetUserObjectInformation: Pointer;
  11077. function SetUserObjectInformation;
  11078. begin
  11079. GetProcedureAddress(_SetUserObjectInformation, user32, 'SetUserObjectInformation' + AWSuffix);
  11080. asm
  11081. MOV ESP, EBP
  11082. POP EBP
  11083. JMP [_SetUserObjectInformation]
  11084. end;
  11085. end;
  11086. var
  11087. _RegisterWindowMessageA: Pointer;
  11088. function RegisterWindowMessageA;
  11089. begin
  11090. GetProcedureAddress(_RegisterWindowMessageA, user32, 'RegisterWindowMessageA');
  11091. asm
  11092. MOV ESP, EBP
  11093. POP EBP
  11094. JMP [_RegisterWindowMessageA]
  11095. end;
  11096. end;
  11097. var
  11098. _RegisterWindowMessageW: Pointer;
  11099. function RegisterWindowMessageW;
  11100. begin
  11101. GetProcedureAddress(_RegisterWindowMessageW, user32, 'RegisterWindowMessageW');
  11102. asm
  11103. MOV ESP, EBP
  11104. POP EBP
  11105. JMP [_RegisterWindowMessageW]
  11106. end;
  11107. end;
  11108. var
  11109. _RegisterWindowMessage: Pointer;
  11110. function RegisterWindowMessage;
  11111. begin
  11112. GetProcedureAddress(_RegisterWindowMessage, user32, 'RegisterWindowMessage' + AWSuffix);
  11113. asm
  11114. MOV ESP, EBP
  11115. POP EBP
  11116. JMP [_RegisterWindowMessage]
  11117. end;
  11118. end;
  11119. var
  11120. __TrackMouseEvent: Pointer;
  11121. function TrackMouseEvent;
  11122. begin
  11123. GetProcedureAddress(__TrackMouseEvent, user32, 'TrackMouseEvent');
  11124. asm
  11125. MOV ESP, EBP
  11126. POP EBP
  11127. JMP [__TrackMouseEvent]
  11128. end;
  11129. end;
  11130. var
  11131. _DrawEdge: Pointer;
  11132. function DrawEdge;
  11133. begin
  11134. GetProcedureAddress(_DrawEdge, user32, 'DrawEdge');
  11135. asm
  11136. MOV ESP, EBP
  11137. POP EBP
  11138. JMP [_DrawEdge]
  11139. end;
  11140. end;
  11141. var
  11142. _DrawFrameControl: Pointer;
  11143. function DrawFrameControl;
  11144. begin
  11145. GetProcedureAddress(_DrawFrameControl, user32, 'DrawFrameControl');
  11146. asm
  11147. MOV ESP, EBP
  11148. POP EBP
  11149. JMP [_DrawFrameControl]
  11150. end;
  11151. end;
  11152. var
  11153. _DrawCaption: Pointer;
  11154. function DrawCaption;
  11155. begin
  11156. GetProcedureAddress(_DrawCaption, user32, 'DrawCaption');
  11157. asm
  11158. MOV ESP, EBP
  11159. POP EBP
  11160. JMP [_DrawCaption]
  11161. end;
  11162. end;
  11163. var
  11164. _DrawAnimatedRects: Pointer;
  11165. function DrawAnimatedRects;
  11166. begin
  11167. GetProcedureAddress(_DrawAnimatedRects, user32, 'DrawAnimatedRects');
  11168. asm
  11169. MOV ESP, EBP
  11170. POP EBP
  11171. JMP [_DrawAnimatedRects]
  11172. end;
  11173. end;
  11174. var
  11175. _GetMessageA: Pointer;
  11176. function GetMessageA;
  11177. begin
  11178. GetProcedureAddress(_GetMessageA, user32, 'GetMessageA');
  11179. asm
  11180. MOV ESP, EBP
  11181. POP EBP
  11182. JMP [_GetMessageA]
  11183. end;
  11184. end;
  11185. var
  11186. _GetMessageW: Pointer;
  11187. function GetMessageW;
  11188. begin
  11189. GetProcedureAddress(_GetMessageW, user32, 'GetMessageW');
  11190. asm
  11191. MOV ESP, EBP
  11192. POP EBP
  11193. JMP [_GetMessageW]
  11194. end;
  11195. end;
  11196. var
  11197. _GetMessage: Pointer;
  11198. function GetMessage;
  11199. begin
  11200. GetProcedureAddress(_GetMessage, user32, 'GetMessage' + AWSuffix);
  11201. asm
  11202. MOV ESP, EBP
  11203. POP EBP
  11204. JMP [_GetMessage]
  11205. end;
  11206. end;
  11207. var
  11208. _TranslateMessage: Pointer;
  11209. function TranslateMessage;
  11210. begin
  11211. GetProcedureAddress(_TranslateMessage, user32, 'TranslateMessage');
  11212. asm
  11213. MOV ESP, EBP
  11214. POP EBP
  11215. JMP [_TranslateMessage]
  11216. end;
  11217. end;
  11218. var
  11219. _DispatchMessageA: Pointer;
  11220. function DispatchMessageA;
  11221. begin
  11222. GetProcedureAddress(_DispatchMessageA, user32, 'DispatchMessageA');
  11223. asm
  11224. MOV ESP, EBP
  11225. POP EBP
  11226. JMP [_DispatchMessageA]
  11227. end;
  11228. end;
  11229. var
  11230. _DispatchMessageW: Pointer;
  11231. function DispatchMessageW;
  11232. begin
  11233. GetProcedureAddress(_DispatchMessageW, user32, 'DispatchMessageW');
  11234. asm
  11235. MOV ESP, EBP
  11236. POP EBP
  11237. JMP [_DispatchMessageW]
  11238. end;
  11239. end;
  11240. var
  11241. _DispatchMessage: Pointer;
  11242. function DispatchMessage;
  11243. begin
  11244. GetProcedureAddress(_DispatchMessage, user32, 'DispatchMessage' + AWSuffix);
  11245. asm
  11246. MOV ESP, EBP
  11247. POP EBP
  11248. JMP [_DispatchMessage]
  11249. end;
  11250. end;
  11251. var
  11252. _SetMessageQueue: Pointer;
  11253. function SetMessageQueue;
  11254. begin
  11255. GetProcedureAddress(_SetMessageQueue, user32, 'SetMessageQueue');
  11256. asm
  11257. MOV ESP, EBP
  11258. POP EBP
  11259. JMP [_SetMessageQueue]
  11260. end;
  11261. end;
  11262. var
  11263. _PeekMessageA: Pointer;
  11264. function PeekMessageA;
  11265. begin
  11266. GetProcedureAddress(_PeekMessageA, user32, 'PeekMessageA');
  11267. asm
  11268. MOV ESP, EBP
  11269. POP EBP
  11270. JMP [_PeekMessageA]
  11271. end;
  11272. end;
  11273. var
  11274. _PeekMessageW: Pointer;
  11275. function PeekMessageW;
  11276. begin
  11277. GetProcedureAddress(_PeekMessageW, user32, 'PeekMessageW');
  11278. asm
  11279. MOV ESP, EBP
  11280. POP EBP
  11281. JMP [_PeekMessageW]
  11282. end;
  11283. end;
  11284. var
  11285. _PeekMessage: Pointer;
  11286. function PeekMessage;
  11287. begin
  11288. GetProcedureAddress(_PeekMessage, user32, 'PeekMessage' + AWSuffix);
  11289. asm
  11290. MOV ESP, EBP
  11291. POP EBP
  11292. JMP [_PeekMessage]
  11293. end;
  11294. end;
  11295. var
  11296. _RegisterHotKey: Pointer;
  11297. function RegisterHotKey;
  11298. begin
  11299. GetProcedureAddress(_RegisterHotKey, user32, 'RegisterHotKey');
  11300. asm
  11301. MOV ESP, EBP
  11302. POP EBP
  11303. JMP [_RegisterHotKey]
  11304. end;
  11305. end;
  11306. var
  11307. _UnregisterHotKey: Pointer;
  11308. function UnregisterHotKey;
  11309. begin
  11310. GetProcedureAddress(_UnregisterHotKey, user32, 'UnregisterHotKey');
  11311. asm
  11312. MOV ESP, EBP
  11313. POP EBP
  11314. JMP [_UnregisterHotKey]
  11315. end;
  11316. end;
  11317. var
  11318. _ExitWindowsEx: Pointer;
  11319. function ExitWindowsEx;
  11320. begin
  11321. GetProcedureAddress(_ExitWindowsEx, user32, 'ExitWindowsEx');
  11322. asm
  11323. MOV ESP, EBP
  11324. POP EBP
  11325. JMP [_ExitWindowsEx]
  11326. end;
  11327. end;
  11328. var
  11329. _SwapMouseButton: Pointer;
  11330. function SwapMouseButton;
  11331. begin
  11332. GetProcedureAddress(_SwapMouseButton, user32, 'SwapMouseButton');
  11333. asm
  11334. MOV ESP, EBP
  11335. POP EBP
  11336. JMP [_SwapMouseButton]
  11337. end;
  11338. end;
  11339. var
  11340. _GetMessagePos: Pointer;
  11341. function GetMessagePos;
  11342. begin
  11343. GetProcedureAddress(_GetMessagePos, user32, 'GetMessagePos');
  11344. asm
  11345. MOV ESP, EBP
  11346. POP EBP
  11347. JMP [_GetMessagePos]
  11348. end;
  11349. end;
  11350. var
  11351. _GetMessageTime: Pointer;
  11352. function GetMessageTime;
  11353. begin
  11354. GetProcedureAddress(_GetMessageTime, user32, 'GetMessageTime');
  11355. asm
  11356. MOV ESP, EBP
  11357. POP EBP
  11358. JMP [_GetMessageTime]
  11359. end;
  11360. end;
  11361. var
  11362. _GetMessageExtraInfo: Pointer;
  11363. function GetMessageExtraInfo;
  11364. begin
  11365. GetProcedureAddress(_GetMessageExtraInfo, user32, 'GetMessageExtraInfo');
  11366. asm
  11367. MOV ESP, EBP
  11368. POP EBP
  11369. JMP [_GetMessageExtraInfo]
  11370. end;
  11371. end;
  11372. var
  11373. _SetMessageExtraInfo: Pointer;
  11374. function SetMessageExtraInfo;
  11375. begin
  11376. GetProcedureAddress(_SetMessageExtraInfo, user32, 'SetMessageExtraInfo');
  11377. asm
  11378. MOV ESP, EBP
  11379. POP EBP
  11380. JMP [_SetMessageExtraInfo]
  11381. end;
  11382. end;
  11383. var
  11384. _SendMessageA: Pointer;
  11385. function SendMessageA;
  11386. begin
  11387. GetProcedureAddress(_SendMessageA, user32, 'SendMessageA');
  11388. asm
  11389. MOV ESP, EBP
  11390. POP EBP
  11391. JMP [_SendMessageA]
  11392. end;
  11393. end;
  11394. var
  11395. _SendMessageW: Pointer;
  11396. function SendMessageW;
  11397. begin
  11398. GetProcedureAddress(_SendMessageW, user32, 'SendMessageW');
  11399. asm
  11400. MOV ESP, EBP
  11401. POP EBP
  11402. JMP [_SendMessageW]
  11403. end;
  11404. end;
  11405. var
  11406. _SendMessage: Pointer;
  11407. function SendMessage;
  11408. begin
  11409. GetProcedureAddress(_SendMessage, user32, 'SendMessage' + AWSuffix);
  11410. asm
  11411. MOV ESP, EBP
  11412. POP EBP
  11413. JMP [_SendMessage]
  11414. end;
  11415. end;
  11416. var
  11417. _SendMessageTimeoutA: Pointer;
  11418. function SendMessageTimeoutA;
  11419. begin
  11420. GetProcedureAddress(_SendMessageTimeoutA, user32, 'SendMessageTimeoutA');
  11421. asm
  11422. MOV ESP, EBP
  11423. POP EBP
  11424. JMP [_SendMessageTimeoutA]
  11425. end;
  11426. end;
  11427. var
  11428. _SendMessageTimeoutW: Pointer;
  11429. function SendMessageTimeoutW;
  11430. begin
  11431. GetProcedureAddress(_SendMessageTimeoutW, user32, 'SendMessageTimeoutW');
  11432. asm
  11433. MOV ESP, EBP
  11434. POP EBP
  11435. JMP [_SendMessageTimeoutW]
  11436. end;
  11437. end;
  11438. var
  11439. _SendMessageTimeout: Pointer;
  11440. function SendMessageTimeout;
  11441. begin
  11442. GetProcedureAddress(_SendMessageTimeout, user32, 'SendMessageTimeout' + AWSuffix);
  11443. asm
  11444. MOV ESP, EBP
  11445. POP EBP
  11446. JMP [_SendMessageTimeout]
  11447. end;
  11448. end;
  11449. var
  11450. _SendNotifyMessageA: Pointer;
  11451. function SendNotifyMessageA;
  11452. begin
  11453. GetProcedureAddress(_SendNotifyMessageA, user32, 'SendNotifyMessageA');
  11454. asm
  11455. MOV ESP, EBP
  11456. POP EBP
  11457. JMP [_SendNotifyMessageA]
  11458. end;
  11459. end;
  11460. var
  11461. _SendNotifyMessageW: Pointer;
  11462. function SendNotifyMessageW;
  11463. begin
  11464. GetProcedureAddress(_SendNotifyMessageW, user32, 'SendNotifyMessageW');
  11465. asm
  11466. MOV ESP, EBP
  11467. POP EBP
  11468. JMP [_SendNotifyMessageW]
  11469. end;
  11470. end;
  11471. var
  11472. _SendNotifyMessage: Pointer;
  11473. function SendNotifyMessage;
  11474. begin
  11475. GetProcedureAddress(_SendNotifyMessage, user32, 'SendNotifyMessage' + AWSuffix);
  11476. asm
  11477. MOV ESP, EBP
  11478. POP EBP
  11479. JMP [_SendNotifyMessage]
  11480. end;
  11481. end;
  11482. var
  11483. _SendMessageCallbackA: Pointer;
  11484. function SendMessageCallbackA;
  11485. begin
  11486. GetProcedureAddress(_SendMessageCallbackA, user32, 'SendMessageCallbackA');
  11487. asm
  11488. MOV ESP, EBP
  11489. POP EBP
  11490. JMP [_SendMessageCallbackA]
  11491. end;
  11492. end;
  11493. var
  11494. _SendMessageCallbackW: Pointer;
  11495. function SendMessageCallbackW;
  11496. begin
  11497. GetProcedureAddress(_SendMessageCallbackW, user32, 'SendMessageCallbackW');
  11498. asm
  11499. MOV ESP, EBP
  11500. POP EBP
  11501. JMP [_SendMessageCallbackW]
  11502. end;
  11503. end;
  11504. var
  11505. _SendMessageCallback: Pointer;
  11506. function SendMessageCallback;
  11507. begin
  11508. GetProcedureAddress(_SendMessageCallback, user32, 'SendMessageCallback' + AWSuffix);
  11509. asm
  11510. MOV ESP, EBP
  11511. POP EBP
  11512. JMP [_SendMessageCallback]
  11513. end;
  11514. end;
  11515. var
  11516. _BroadcastSystemMessageExA: Pointer;
  11517. function BroadcastSystemMessageExA;
  11518. begin
  11519. GetProcedureAddress(_BroadcastSystemMessageExA, user32, 'BroadcastSystemMessageExA');
  11520. asm
  11521. MOV ESP, EBP
  11522. POP EBP
  11523. JMP [_BroadcastSystemMessageExA]
  11524. end;
  11525. end;
  11526. var
  11527. _BroadcastSystemMessageExW: Pointer;
  11528. function BroadcastSystemMessageExW;
  11529. begin
  11530. GetProcedureAddress(_BroadcastSystemMessageExW, user32, 'BroadcastSystemMessageExW');
  11531. asm
  11532. MOV ESP, EBP
  11533. POP EBP
  11534. JMP [_BroadcastSystemMessageExW]
  11535. end;
  11536. end;
  11537. var
  11538. _BroadcastSystemMessageEx: Pointer;
  11539. function BroadcastSystemMessageEx;
  11540. begin
  11541. GetProcedureAddress(_BroadcastSystemMessageEx, user32, 'BroadcastSystemMessageEx' + AWSuffix);
  11542. asm
  11543. MOV ESP, EBP
  11544. POP EBP
  11545. JMP [_BroadcastSystemMessageEx]
  11546. end;
  11547. end;
  11548. var
  11549. _BroadcastSystemMessageA: Pointer;
  11550. function BroadcastSystemMessageA;
  11551. begin
  11552. GetProcedureAddress(_BroadcastSystemMessageA, user32, 'BroadcastSystemMessageA');
  11553. asm
  11554. MOV ESP, EBP
  11555. POP EBP
  11556. JMP [_BroadcastSystemMessageA]
  11557. end;
  11558. end;
  11559. var
  11560. _BroadcastSystemMessageW: Pointer;
  11561. function BroadcastSystemMessageW;
  11562. begin
  11563. GetProcedureAddress(_BroadcastSystemMessageW, user32, 'BroadcastSystemMessageW');
  11564. asm
  11565. MOV ESP, EBP
  11566. POP EBP
  11567. JMP [_BroadcastSystemMessageW]
  11568. end;
  11569. end;
  11570. var
  11571. _BroadcastSystemMessage: Pointer;
  11572. function BroadcastSystemMessage;
  11573. begin
  11574. GetProcedureAddress(_BroadcastSystemMessage, user32, 'BroadcastSystemMessage' + AWSuffix);
  11575. asm
  11576. MOV ESP, EBP
  11577. POP EBP
  11578. JMP [_BroadcastSystemMessage]
  11579. end;
  11580. end;
  11581. var
  11582. _RegisterDeviceNotificationA: Pointer;
  11583. function RegisterDeviceNotificationA;
  11584. begin
  11585. GetProcedureAddress(_RegisterDeviceNotificationA, user32, 'RegisterDeviceNotificationA');
  11586. asm
  11587. MOV ESP, EBP
  11588. POP EBP
  11589. JMP [_RegisterDeviceNotificationA]
  11590. end;
  11591. end;
  11592. var
  11593. _RegisterDeviceNotificationW: Pointer;
  11594. function RegisterDeviceNotificationW;
  11595. begin
  11596. GetProcedureAddress(_RegisterDeviceNotificationW, user32, 'RegisterDeviceNotificationW');
  11597. asm
  11598. MOV ESP, EBP
  11599. POP EBP
  11600. JMP [_RegisterDeviceNotificationW]
  11601. end;
  11602. end;
  11603. var
  11604. _RegisterDeviceNotification: Pointer;
  11605. function RegisterDeviceNotification;
  11606. begin
  11607. GetProcedureAddress(_RegisterDeviceNotification, user32, 'RegisterDeviceNotification' + AWSuffix);
  11608. asm
  11609. MOV ESP, EBP
  11610. POP EBP
  11611. JMP [_RegisterDeviceNotification]
  11612. end;
  11613. end;
  11614. var
  11615. _UnregisterDeviceNotification: Pointer;
  11616. function UnregisterDeviceNotification;
  11617. begin
  11618. GetProcedureAddress(_UnregisterDeviceNotification, user32, 'UnregisterDeviceNotification');
  11619. asm
  11620. MOV ESP, EBP
  11621. POP EBP
  11622. JMP [_UnregisterDeviceNotification]
  11623. end;
  11624. end;
  11625. var
  11626. _PostMessageA: Pointer;
  11627. function PostMessageA;
  11628. begin
  11629. GetProcedureAddress(_PostMessageA, user32, 'PostMessageA');
  11630. asm
  11631. MOV ESP, EBP
  11632. POP EBP
  11633. JMP [_PostMessageA]
  11634. end;
  11635. end;
  11636. var
  11637. _PostMessageW: Pointer;
  11638. function PostMessageW;
  11639. begin
  11640. GetProcedureAddress(_PostMessageW, user32, 'PostMessageW');
  11641. asm
  11642. MOV ESP, EBP
  11643. POP EBP
  11644. JMP [_PostMessageW]
  11645. end;
  11646. end;
  11647. var
  11648. _PostMessage: Pointer;
  11649. function PostMessage;
  11650. begin
  11651. GetProcedureAddress(_PostMessage, user32, 'PostMessage' + AWSuffix);
  11652. asm
  11653. MOV ESP, EBP
  11654. POP EBP
  11655. JMP [_PostMessage]
  11656. end;
  11657. end;
  11658. var
  11659. _PostThreadMessageA: Pointer;
  11660. function PostThreadMessageA;
  11661. begin
  11662. GetProcedureAddress(_PostThreadMessageA, user32, 'PostThreadMessageA');
  11663. asm
  11664. MOV ESP, EBP
  11665. POP EBP
  11666. JMP [_PostThreadMessageA]
  11667. end;
  11668. end;
  11669. var
  11670. _PostThreadMessageW: Pointer;
  11671. function PostThreadMessageW;
  11672. begin
  11673. GetProcedureAddress(_PostThreadMessageW, user32, 'PostThreadMessageW');
  11674. asm
  11675. MOV ESP, EBP
  11676. POP EBP
  11677. JMP [_PostThreadMessageW]
  11678. end;
  11679. end;
  11680. var
  11681. _PostThreadMessage: Pointer;
  11682. function PostThreadMessage;
  11683. begin
  11684. GetProcedureAddress(_PostThreadMessage, user32, 'PostThreadMessage' + AWSuffix);
  11685. asm
  11686. MOV ESP, EBP
  11687. POP EBP
  11688. JMP [_PostThreadMessage]
  11689. end;
  11690. end;
  11691. var
  11692. _AttachThreadInput: Pointer;
  11693. function AttachThreadInput;
  11694. begin
  11695. GetProcedureAddress(_AttachThreadInput, user32, 'AttachThreadInput');
  11696. asm
  11697. MOV ESP, EBP
  11698. POP EBP
  11699. JMP [_AttachThreadInput]
  11700. end;
  11701. end;
  11702. var
  11703. _ReplyMessage: Pointer;
  11704. function ReplyMessage;
  11705. begin
  11706. GetProcedureAddress(_ReplyMessage, user32, 'ReplyMessage');
  11707. asm
  11708. MOV ESP, EBP
  11709. POP EBP
  11710. JMP [_ReplyMessage]
  11711. end;
  11712. end;
  11713. var
  11714. _WaitMessage: Pointer;
  11715. function WaitMessage;
  11716. begin
  11717. GetProcedureAddress(_WaitMessage, user32, 'WaitMessage');
  11718. asm
  11719. MOV ESP, EBP
  11720. POP EBP
  11721. JMP [_WaitMessage]
  11722. end;
  11723. end;
  11724. var
  11725. _WaitForInputIdle: Pointer;
  11726. function WaitForInputIdle;
  11727. begin
  11728. GetProcedureAddress(_WaitForInputIdle, user32, 'WaitForInputIdle');
  11729. asm
  11730. MOV ESP, EBP
  11731. POP EBP
  11732. JMP [_WaitForInputIdle]
  11733. end;
  11734. end;
  11735. var
  11736. _DefWindowProcA: Pointer;
  11737. function DefWindowProcA;
  11738. begin
  11739. GetProcedureAddress(_DefWindowProcA, user32, 'DefWindowProcA');
  11740. asm
  11741. MOV ESP, EBP
  11742. POP EBP
  11743. JMP [_DefWindowProcA]
  11744. end;
  11745. end;
  11746. var
  11747. _DefWindowProcW: Pointer;
  11748. function DefWindowProcW;
  11749. begin
  11750. GetProcedureAddress(_DefWindowProcW, user32, 'DefWindowProcW');
  11751. asm
  11752. MOV ESP, EBP
  11753. POP EBP
  11754. JMP [_DefWindowProcW]
  11755. end;
  11756. end;
  11757. var
  11758. _DefWindowProc: Pointer;
  11759. function DefWindowProc;
  11760. begin
  11761. GetProcedureAddress(_DefWindowProc, user32, 'DefWindowProc' + AWSuffix);
  11762. asm
  11763. MOV ESP, EBP
  11764. POP EBP
  11765. JMP [_DefWindowProc]
  11766. end;
  11767. end;
  11768. var
  11769. _PostQuitMessage: Pointer;
  11770. procedure PostQuitMessage;
  11771. begin
  11772. GetProcedureAddress(_PostQuitMessage, user32, 'PostQuitMessage');
  11773. asm
  11774. MOV ESP, EBP
  11775. POP EBP
  11776. JMP [_PostQuitMessage]
  11777. end;
  11778. end;
  11779. var
  11780. _CallWindowProcA: Pointer;
  11781. function CallWindowProcA;
  11782. begin
  11783. GetProcedureAddress(_CallWindowProcA, user32, 'CallWindowProcA');
  11784. asm
  11785. MOV ESP, EBP
  11786. POP EBP
  11787. JMP [_CallWindowProcA]
  11788. end;
  11789. end;
  11790. var
  11791. _CallWindowProcW: Pointer;
  11792. function CallWindowProcW;
  11793. begin
  11794. GetProcedureAddress(_CallWindowProcW, user32, 'CallWindowProcW');
  11795. asm
  11796. MOV ESP, EBP
  11797. POP EBP
  11798. JMP [_CallWindowProcW]
  11799. end;
  11800. end;
  11801. var
  11802. _CallWindowProc: Pointer;
  11803. function CallWindowProc;
  11804. begin
  11805. GetProcedureAddress(_CallWindowProc, user32, 'CallWindowProc' + AWSuffix);
  11806. asm
  11807. MOV ESP, EBP
  11808. POP EBP
  11809. JMP [_CallWindowProc]
  11810. end;
  11811. end;
  11812. var
  11813. _InSendMessage: Pointer;
  11814. function InSendMessage;
  11815. begin
  11816. GetProcedureAddress(_InSendMessage, user32, 'InSendMessage');
  11817. asm
  11818. MOV ESP, EBP
  11819. POP EBP
  11820. JMP [_InSendMessage]
  11821. end;
  11822. end;
  11823. var
  11824. _InSendMessageEx: Pointer;
  11825. function InSendMessageEx;
  11826. begin
  11827. GetProcedureAddress(_InSendMessageEx, user32, 'InSendMessageEx');
  11828. asm
  11829. MOV ESP, EBP
  11830. POP EBP
  11831. JMP [_InSendMessageEx]
  11832. end;
  11833. end;
  11834. var
  11835. _GetDoubleClickTime: Pointer;
  11836. function GetDoubleClickTime;
  11837. begin
  11838. GetProcedureAddress(_GetDoubleClickTime, user32, 'GetDoubleClickTime');
  11839. asm
  11840. MOV ESP, EBP
  11841. POP EBP
  11842. JMP [_GetDoubleClickTime]
  11843. end;
  11844. end;
  11845. var
  11846. _SetDoubleClickTime: Pointer;
  11847. function SetDoubleClickTime;
  11848. begin
  11849. GetProcedureAddress(_SetDoubleClickTime, user32, 'SetDoubleClickTime');
  11850. asm
  11851. MOV ESP, EBP
  11852. POP EBP
  11853. JMP [_SetDoubleClickTime]
  11854. end;
  11855. end;
  11856. var
  11857. _RegisterClassA: Pointer;
  11858. function RegisterClassA;
  11859. begin
  11860. GetProcedureAddress(_RegisterClassA, user32, 'RegisterClassA');
  11861. asm
  11862. MOV ESP, EBP
  11863. POP EBP
  11864. JMP [_RegisterClassA]
  11865. end;
  11866. end;
  11867. var
  11868. _RegisterClassW: Pointer;
  11869. function RegisterClassW;
  11870. begin
  11871. GetProcedureAddress(_RegisterClassW, user32, 'RegisterClassW');
  11872. asm
  11873. MOV ESP, EBP
  11874. POP EBP
  11875. JMP [_RegisterClassW]
  11876. end;
  11877. end;
  11878. var
  11879. _RegisterClass: Pointer;
  11880. function RegisterClass;
  11881. begin
  11882. GetProcedureAddress(_RegisterClass, user32, 'RegisterClass' + AWSuffix);
  11883. asm
  11884. MOV ESP, EBP
  11885. POP EBP
  11886. JMP [_RegisterClass]
  11887. end;
  11888. end;
  11889. var
  11890. _UnregisterClassA: Pointer;
  11891. function UnregisterClassA;
  11892. begin
  11893. GetProcedureAddress(_UnregisterClassA, user32, 'UnregisterClassA');
  11894. asm
  11895. MOV ESP, EBP
  11896. POP EBP
  11897. JMP [_UnregisterClassA]
  11898. end;
  11899. end;
  11900. var
  11901. _UnregisterClassW: Pointer;
  11902. function UnregisterClassW;
  11903. begin
  11904. GetProcedureAddress(_UnregisterClassW, user32, 'UnregisterClassW');
  11905. asm
  11906. MOV ESP, EBP
  11907. POP EBP
  11908. JMP [_UnregisterClassW]
  11909. end;
  11910. end;
  11911. var
  11912. _UnregisterClass: Pointer;
  11913. function UnregisterClass;
  11914. begin
  11915. GetProcedureAddress(_UnregisterClass, user32, 'UnregisterClass' + AWSuffix);
  11916. asm
  11917. MOV ESP, EBP
  11918. POP EBP
  11919. JMP [_UnregisterClass]
  11920. end;
  11921. end;
  11922. var
  11923. _GetClassInfoA: Pointer;
  11924. function GetClassInfoA;
  11925. begin
  11926. GetProcedureAddress(_GetClassInfoA, user32, 'GetClassInfoA');
  11927. asm
  11928. MOV ESP, EBP
  11929. POP EBP
  11930. JMP [_GetClassInfoA]
  11931. end;
  11932. end;
  11933. var
  11934. _GetClassInfoW: Pointer;
  11935. function GetClassInfoW;
  11936. begin
  11937. GetProcedureAddress(_GetClassInfoW, user32, 'GetClassInfoW');
  11938. asm
  11939. MOV ESP, EBP
  11940. POP EBP
  11941. JMP [_GetClassInfoW]
  11942. end;
  11943. end;
  11944. var
  11945. _GetClassInfo: Pointer;
  11946. function GetClassInfo;
  11947. begin
  11948. GetProcedureAddress(_GetClassInfo, user32, 'GetClassInfo' + AWSuffix);
  11949. asm
  11950. MOV ESP, EBP
  11951. POP EBP
  11952. JMP [_GetClassInfo]
  11953. end;
  11954. end;
  11955. var
  11956. _RegisterClassExA: Pointer;
  11957. function RegisterClassExA;
  11958. begin
  11959. GetProcedureAddress(_RegisterClassExA, user32, 'RegisterClassExA');
  11960. asm
  11961. MOV ESP, EBP
  11962. POP EBP
  11963. JMP [_RegisterClassExA]
  11964. end;
  11965. end;
  11966. var
  11967. _RegisterClassExW: Pointer;
  11968. function RegisterClassExW;
  11969. begin
  11970. GetProcedureAddress(_RegisterClassExW, user32, 'RegisterClassExW');
  11971. asm
  11972. MOV ESP, EBP
  11973. POP EBP
  11974. JMP [_RegisterClassExW]
  11975. end;
  11976. end;
  11977. var
  11978. _RegisterClassEx: Pointer;
  11979. function RegisterClassEx;
  11980. begin
  11981. GetProcedureAddress(_RegisterClassEx, user32, 'RegisterClassEx' + AWSuffix);
  11982. asm
  11983. MOV ESP, EBP
  11984. POP EBP
  11985. JMP [_RegisterClassEx]
  11986. end;
  11987. end;
  11988. var
  11989. _GetClassInfoExA: Pointer;
  11990. function GetClassInfoExA;
  11991. begin
  11992. GetProcedureAddress(_GetClassInfoExA, user32, 'GetClassInfoExA');
  11993. asm
  11994. MOV ESP, EBP
  11995. POP EBP
  11996. JMP [_GetClassInfoExA]
  11997. end;
  11998. end;
  11999. var
  12000. _GetClassInfoExW: Pointer;
  12001. function GetClassInfoExW;
  12002. begin
  12003. GetProcedureAddress(_GetClassInfoExW, user32, 'GetClassInfoExW');
  12004. asm
  12005. MOV ESP, EBP
  12006. POP EBP
  12007. JMP [_GetClassInfoExW]
  12008. end;
  12009. end;
  12010. var
  12011. _GetClassInfoEx: Pointer;
  12012. function GetClassInfoEx;
  12013. begin
  12014. GetProcedureAddress(_GetClassInfoEx, user32, 'GetClassInfoEx' + AWSuffix);
  12015. asm
  12016. MOV ESP, EBP
  12017. POP EBP
  12018. JMP [_GetClassInfoEx]
  12019. end;
  12020. end;
  12021. var
  12022. _CreateWindowExA: Pointer;
  12023. function CreateWindowExA;
  12024. begin
  12025. GetProcedureAddress(_CreateWindowExA, user32, 'CreateWindowExA');
  12026. asm
  12027. MOV ESP, EBP
  12028. POP EBP
  12029. JMP [_CreateWindowExA]
  12030. end;
  12031. end;
  12032. var
  12033. _CreateWindowExW: Pointer;
  12034. function CreateWindowExW;
  12035. begin
  12036. GetProcedureAddress(_CreateWindowExW, user32, 'CreateWindowExW');
  12037. asm
  12038. MOV ESP, EBP
  12039. POP EBP
  12040. JMP [_CreateWindowExW]
  12041. end;
  12042. end;
  12043. var
  12044. _CreateWindowEx: Pointer;
  12045. function CreateWindowEx;
  12046. begin
  12047. GetProcedureAddress(_CreateWindowEx, user32, 'CreateWindowEx' + AWSuffix);
  12048. asm
  12049. MOV ESP, EBP
  12050. POP EBP
  12051. JMP [_CreateWindowEx]
  12052. end;
  12053. end;
  12054. var
  12055. _IsWindow: Pointer;
  12056. function IsWindow;
  12057. begin
  12058. GetProcedureAddress(_IsWindow, user32, 'IsWindow');
  12059. asm
  12060. MOV ESP, EBP
  12061. POP EBP
  12062. JMP [_IsWindow]
  12063. end;
  12064. end;
  12065. var
  12066. _IsMenu: Pointer;
  12067. function IsMenu;
  12068. begin
  12069. GetProcedureAddress(_IsMenu, user32, 'IsMenu');
  12070. asm
  12071. MOV ESP, EBP
  12072. POP EBP
  12073. JMP [_IsMenu]
  12074. end;
  12075. end;
  12076. var
  12077. _IsChild: Pointer;
  12078. function IsChild;
  12079. begin
  12080. GetProcedureAddress(_IsChild, user32, 'IsChild');
  12081. asm
  12082. MOV ESP, EBP
  12083. POP EBP
  12084. JMP [_IsChild]
  12085. end;
  12086. end;
  12087. var
  12088. _DestroyWindow: Pointer;
  12089. function DestroyWindow;
  12090. begin
  12091. GetProcedureAddress(_DestroyWindow, user32, 'DestroyWindow');
  12092. asm
  12093. MOV ESP, EBP
  12094. POP EBP
  12095. JMP [_DestroyWindow]
  12096. end;
  12097. end;
  12098. var
  12099. _ShowWindow: Pointer;
  12100. function ShowWindow;
  12101. begin
  12102. GetProcedureAddress(_ShowWindow, user32, 'ShowWindow');
  12103. asm
  12104. MOV ESP, EBP
  12105. POP EBP
  12106. JMP [_ShowWindow]
  12107. end;
  12108. end;
  12109. var
  12110. _AnimateWindow: Pointer;
  12111. function AnimateWindow;
  12112. begin
  12113. GetProcedureAddress(_AnimateWindow, user32, 'AnimateWindow');
  12114. asm
  12115. MOV ESP, EBP
  12116. POP EBP
  12117. JMP [_AnimateWindow]
  12118. end;
  12119. end;
  12120. var
  12121. _UpdateLayeredWindow: Pointer;
  12122. function UpdateLayeredWindow;
  12123. begin
  12124. GetProcedureAddress(_UpdateLayeredWindow, user32, 'UpdateLayeredWindow');
  12125. asm
  12126. MOV ESP, EBP
  12127. POP EBP
  12128. JMP [_UpdateLayeredWindow]
  12129. end;
  12130. end;
  12131. var
  12132. _GetLayeredWindowAttributes: Pointer;
  12133. function GetLayeredWindowAttributes;
  12134. begin
  12135. GetProcedureAddress(_GetLayeredWindowAttributes, user32, 'GetLayeredWindowAttributes');
  12136. asm
  12137. MOV ESP, EBP
  12138. POP EBP
  12139. JMP [_GetLayeredWindowAttributes]
  12140. end;
  12141. end;
  12142. var
  12143. _PrintWindow: Pointer;
  12144. function PrintWindow;
  12145. begin
  12146. GetProcedureAddress(_PrintWindow, user32, 'PrintWindow');
  12147. asm
  12148. MOV ESP, EBP
  12149. POP EBP
  12150. JMP [_PrintWindow]
  12151. end;
  12152. end;
  12153. var
  12154. _SetLayeredWindowAttributes: Pointer;
  12155. function SetLayeredWindowAttributes;
  12156. begin
  12157. GetProcedureAddress(_SetLayeredWindowAttributes, user32, 'SetLayeredWindowAttributes');
  12158. asm
  12159. MOV ESP, EBP
  12160. POP EBP
  12161. JMP [_SetLayeredWindowAttributes]
  12162. end;
  12163. end;
  12164. var
  12165. _ShowWindowAsync: Pointer;
  12166. function ShowWindowAsync;
  12167. begin
  12168. GetProcedureAddress(_ShowWindowAsync, user32, 'ShowWindowAsync');
  12169. asm
  12170. MOV ESP, EBP
  12171. POP EBP
  12172. JMP [_ShowWindowAsync]
  12173. end;
  12174. end;
  12175. var
  12176. _FlashWindow: Pointer;
  12177. function FlashWindow;
  12178. begin
  12179. GetProcedureAddress(_FlashWindow, user32, 'FlashWindow');
  12180. asm
  12181. MOV ESP, EBP
  12182. POP EBP
  12183. JMP [_FlashWindow]
  12184. end;
  12185. end;
  12186. var
  12187. _FlashWindowEx: Pointer;
  12188. function FlashWindowEx;
  12189. begin
  12190. GetProcedureAddress(_FlashWindowEx, user32, 'FlashWindowEx');
  12191. asm
  12192. MOV ESP, EBP
  12193. POP EBP
  12194. JMP [_FlashWindowEx]
  12195. end;
  12196. end;
  12197. var
  12198. _ShowOwnedPopups: Pointer;
  12199. function ShowOwnedPopups;
  12200. begin
  12201. GetProcedureAddress(_ShowOwnedPopups, user32, 'ShowOwnedPopups');
  12202. asm
  12203. MOV ESP, EBP
  12204. POP EBP
  12205. JMP [_ShowOwnedPopups]
  12206. end;
  12207. end;
  12208. var
  12209. _OpenIcon: Pointer;
  12210. function OpenIcon;
  12211. begin
  12212. GetProcedureAddress(_OpenIcon, user32, 'OpenIcon');
  12213. asm
  12214. MOV ESP, EBP
  12215. POP EBP
  12216. JMP [_OpenIcon]
  12217. end;
  12218. end;
  12219. var
  12220. _CloseWindow: Pointer;
  12221. function CloseWindow;
  12222. begin
  12223. GetProcedureAddress(_CloseWindow, user32, 'CloseWindow');
  12224. asm
  12225. MOV ESP, EBP
  12226. POP EBP
  12227. JMP [_CloseWindow]
  12228. end;
  12229. end;
  12230. var
  12231. _MoveWindow: Pointer;
  12232. function MoveWindow;
  12233. begin
  12234. GetProcedureAddress(_MoveWindow, user32, 'MoveWindow');
  12235. asm
  12236. MOV ESP, EBP
  12237. POP EBP
  12238. JMP [_MoveWindow]
  12239. end;
  12240. end;
  12241. var
  12242. _SetWindowPos: Pointer;
  12243. function SetWindowPos;
  12244. begin
  12245. GetProcedureAddress(_SetWindowPos, user32, 'SetWindowPos');
  12246. asm
  12247. MOV ESP, EBP
  12248. POP EBP
  12249. JMP [_SetWindowPos]
  12250. end;
  12251. end;
  12252. var
  12253. _GetWindowPlacement: Pointer;
  12254. function GetWindowPlacement;
  12255. begin
  12256. GetProcedureAddress(_GetWindowPlacement, user32, 'GetWindowPlacement');
  12257. asm
  12258. MOV ESP, EBP
  12259. POP EBP
  12260. JMP [_GetWindowPlacement]
  12261. end;
  12262. end;
  12263. var
  12264. _SetWindowPlacement: Pointer;
  12265. function SetWindowPlacement;
  12266. begin
  12267. GetProcedureAddress(_SetWindowPlacement, user32, 'SetWindowPlacement');
  12268. asm
  12269. MOV ESP, EBP
  12270. POP EBP
  12271. JMP [_SetWindowPlacement]
  12272. end;
  12273. end;
  12274. var
  12275. _BeginDeferWindowPos: Pointer;
  12276. function BeginDeferWindowPos;
  12277. begin
  12278. GetProcedureAddress(_BeginDeferWindowPos, user32, 'BeginDeferWindowPos');
  12279. asm
  12280. MOV ESP, EBP
  12281. POP EBP
  12282. JMP [_BeginDeferWindowPos]
  12283. end;
  12284. end;
  12285. var
  12286. _DeferWindowPos: Pointer;
  12287. function DeferWindowPos;
  12288. begin
  12289. GetProcedureAddress(_DeferWindowPos, user32, 'DeferWindowPos');
  12290. asm
  12291. MOV ESP, EBP
  12292. POP EBP
  12293. JMP [_DeferWindowPos]
  12294. end;
  12295. end;
  12296. var
  12297. _EndDeferWindowPos: Pointer;
  12298. function EndDeferWindowPos;
  12299. begin
  12300. GetProcedureAddress(_EndDeferWindowPos, user32, 'EndDeferWindowPos');
  12301. asm
  12302. MOV ESP, EBP
  12303. POP EBP
  12304. JMP [_EndDeferWindowPos]
  12305. end;
  12306. end;
  12307. var
  12308. _IsWindowVisible: Pointer;
  12309. function IsWindowVisible;
  12310. begin
  12311. GetProcedureAddress(_IsWindowVisible, user32, 'IsWindowVisible');
  12312. asm
  12313. MOV ESP, EBP
  12314. POP EBP
  12315. JMP [_IsWindowVisible]
  12316. end;
  12317. end;
  12318. var
  12319. _IsIconic: Pointer;
  12320. function IsIconic;
  12321. begin
  12322. GetProcedureAddress(_IsIconic, user32, 'IsIconic');
  12323. asm
  12324. MOV ESP, EBP
  12325. POP EBP
  12326. JMP [_IsIconic]
  12327. end;
  12328. end;
  12329. var
  12330. _AnyPopup: Pointer;
  12331. function AnyPopup;
  12332. begin
  12333. GetProcedureAddress(_AnyPopup, user32, 'AnyPopup');
  12334. asm
  12335. MOV ESP, EBP
  12336. POP EBP
  12337. JMP [_AnyPopup]
  12338. end;
  12339. end;
  12340. var
  12341. _BringWindowToTop: Pointer;
  12342. function BringWindowToTop;
  12343. begin
  12344. GetProcedureAddress(_BringWindowToTop, user32, 'BringWindowToTop');
  12345. asm
  12346. MOV ESP, EBP
  12347. POP EBP
  12348. JMP [_BringWindowToTop]
  12349. end;
  12350. end;
  12351. var
  12352. _IsZoomed: Pointer;
  12353. function IsZoomed;
  12354. begin
  12355. GetProcedureAddress(_IsZoomed, user32, 'IsZoomed');
  12356. asm
  12357. MOV ESP, EBP
  12358. POP EBP
  12359. JMP [_IsZoomed]
  12360. end;
  12361. end;
  12362. var
  12363. _CreateDialogParamA: Pointer;
  12364. function CreateDialogParamA;
  12365. begin
  12366. GetProcedureAddress(_CreateDialogParamA, user32, 'CreateDialogParamA');
  12367. asm
  12368. MOV ESP, EBP
  12369. POP EBP
  12370. JMP [_CreateDialogParamA]
  12371. end;
  12372. end;
  12373. var
  12374. _CreateDialogParamW: Pointer;
  12375. function CreateDialogParamW;
  12376. begin
  12377. GetProcedureAddress(_CreateDialogParamW, user32, 'CreateDialogParamW');
  12378. asm
  12379. MOV ESP, EBP
  12380. POP EBP
  12381. JMP [_CreateDialogParamW]
  12382. end;
  12383. end;
  12384. var
  12385. _CreateDialogParam: Pointer;
  12386. function CreateDialogParam;
  12387. begin
  12388. GetProcedureAddress(_CreateDialogParam, user32, 'CreateDialogParam' + AWSuffix);
  12389. asm
  12390. MOV ESP, EBP
  12391. POP EBP
  12392. JMP [_CreateDialogParam]
  12393. end;
  12394. end;
  12395. var
  12396. _CreateDialogIndirectParamA: Pointer;
  12397. function CreateDialogIndirectParamA;
  12398. begin
  12399. GetProcedureAddress(_CreateDialogIndirectParamA, user32, 'CreateDialogIndirectParamA');
  12400. asm
  12401. MOV ESP, EBP
  12402. POP EBP
  12403. JMP [_CreateDialogIndirectParamA]
  12404. end;
  12405. end;
  12406. var
  12407. _CreateDialogIndirectParamW: Pointer;
  12408. function CreateDialogIndirectParamW;
  12409. begin
  12410. GetProcedureAddress(_CreateDialogIndirectParamW, user32, 'CreateDialogIndirectParamW');
  12411. asm
  12412. MOV ESP, EBP
  12413. POP EBP
  12414. JMP [_CreateDialogIndirectParamW]
  12415. end;
  12416. end;
  12417. var
  12418. _CreateDialogIndirectParam: Pointer;
  12419. function CreateDialogIndirectParam;
  12420. begin
  12421. GetProcedureAddress(_CreateDialogIndirectParam, user32, 'CreateDialogIndirectParam' + AWSuffix);
  12422. asm
  12423. MOV ESP, EBP
  12424. POP EBP
  12425. JMP [_CreateDialogIndirectParam]
  12426. end;
  12427. end;
  12428. var
  12429. _DialogBoxParamA: Pointer;
  12430. function DialogBoxParamA;
  12431. begin
  12432. GetProcedureAddress(_DialogBoxParamA, user32, 'DialogBoxParamA');
  12433. asm
  12434. MOV ESP, EBP
  12435. POP EBP
  12436. JMP [_DialogBoxParamA]
  12437. end;
  12438. end;
  12439. var
  12440. _DialogBoxParamW: Pointer;
  12441. function DialogBoxParamW;
  12442. begin
  12443. GetProcedureAddress(_DialogBoxParamW, user32, 'DialogBoxParamW');
  12444. asm
  12445. MOV ESP, EBP
  12446. POP EBP
  12447. JMP [_DialogBoxParamW]
  12448. end;
  12449. end;
  12450. var
  12451. _DialogBoxParam: Pointer;
  12452. function DialogBoxParam;
  12453. begin
  12454. GetProcedureAddress(_DialogBoxParam, user32, 'DialogBoxParam' + AWSuffix);
  12455. asm
  12456. MOV ESP, EBP
  12457. POP EBP
  12458. JMP [_DialogBoxParam]
  12459. end;
  12460. end;
  12461. var
  12462. _DialogBoxIndirectParamA: Pointer;
  12463. function DialogBoxIndirectParamA;
  12464. begin
  12465. GetProcedureAddress(_DialogBoxIndirectParamA, user32, 'DialogBoxIndirectParamA');
  12466. asm
  12467. MOV ESP, EBP
  12468. POP EBP
  12469. JMP [_DialogBoxIndirectParamA]
  12470. end;
  12471. end;
  12472. var
  12473. _DialogBoxIndirectParamW: Pointer;
  12474. function DialogBoxIndirectParamW;
  12475. begin
  12476. GetProcedureAddress(_DialogBoxIndirectParamW, user32, 'DialogBoxIndirectParamW');
  12477. asm
  12478. MOV ESP, EBP
  12479. POP EBP
  12480. JMP [_DialogBoxIndirectParamW]
  12481. end;
  12482. end;
  12483. var
  12484. _DialogBoxIndirectParam: Pointer;
  12485. function DialogBoxIndirectParam;
  12486. begin
  12487. GetProcedureAddress(_DialogBoxIndirectParam, user32, 'DialogBoxIndirectParam' + AWSuffix);
  12488. asm
  12489. MOV ESP, EBP
  12490. POP EBP
  12491. JMP [_DialogBoxIndirectParam]
  12492. end;
  12493. end;
  12494. var
  12495. _EndDialog: Pointer;
  12496. function EndDialog;
  12497. begin
  12498. GetProcedureAddress(_EndDialog, user32, 'EndDialog');
  12499. asm
  12500. MOV ESP, EBP
  12501. POP EBP
  12502. JMP [_EndDialog]
  12503. end;
  12504. end;
  12505. var
  12506. _GetDlgItem: Pointer;
  12507. function GetDlgItem;
  12508. begin
  12509. GetProcedureAddress(_GetDlgItem, user32, 'GetDlgItem');
  12510. asm
  12511. MOV ESP, EBP
  12512. POP EBP
  12513. JMP [_GetDlgItem]
  12514. end;
  12515. end;
  12516. var
  12517. _SetDlgItemInt: Pointer;
  12518. function SetDlgItemInt;
  12519. begin
  12520. GetProcedureAddress(_SetDlgItemInt, user32, 'SetDlgItemInt');
  12521. asm
  12522. MOV ESP, EBP
  12523. POP EBP
  12524. JMP [_SetDlgItemInt]
  12525. end;
  12526. end;
  12527. var
  12528. _GetDlgItemInt: Pointer;
  12529. function GetDlgItemInt;
  12530. begin
  12531. GetProcedureAddress(_GetDlgItemInt, user32, 'GetDlgItemInt');
  12532. asm
  12533. MOV ESP, EBP
  12534. POP EBP
  12535. JMP [_GetDlgItemInt]
  12536. end;
  12537. end;
  12538. var
  12539. _SetDlgItemTextA: Pointer;
  12540. function SetDlgItemTextA;
  12541. begin
  12542. GetProcedureAddress(_SetDlgItemTextA, user32, 'SetDlgItemTextA');
  12543. asm
  12544. MOV ESP, EBP
  12545. POP EBP
  12546. JMP [_SetDlgItemTextA]
  12547. end;
  12548. end;
  12549. var
  12550. _SetDlgItemTextW: Pointer;
  12551. function SetDlgItemTextW;
  12552. begin
  12553. GetProcedureAddress(_SetDlgItemTextW, user32, 'SetDlgItemTextW');
  12554. asm
  12555. MOV ESP, EBP
  12556. POP EBP
  12557. JMP [_SetDlgItemTextW]
  12558. end;
  12559. end;
  12560. var
  12561. _SetDlgItemText: Pointer;
  12562. function SetDlgItemText;
  12563. begin
  12564. GetProcedureAddress(_SetDlgItemText, user32, 'SetDlgItemText' + AWSuffix);
  12565. asm
  12566. MOV ESP, EBP
  12567. POP EBP
  12568. JMP [_SetDlgItemText]
  12569. end;
  12570. end;
  12571. var
  12572. _GetDlgItemTextA: Pointer;
  12573. function GetDlgItemTextA;
  12574. begin
  12575. GetProcedureAddress(_GetDlgItemTextA, user32, 'GetDlgItemTextA');
  12576. asm
  12577. MOV ESP, EBP
  12578. POP EBP
  12579. JMP [_GetDlgItemTextA]
  12580. end;
  12581. end;
  12582. var
  12583. _GetDlgItemTextW: Pointer;
  12584. function GetDlgItemTextW;
  12585. begin
  12586. GetProcedureAddress(_GetDlgItemTextW, user32, 'GetDlgItemTextW');
  12587. asm
  12588. MOV ESP, EBP
  12589. POP EBP
  12590. JMP [_GetDlgItemTextW]
  12591. end;
  12592. end;
  12593. var
  12594. _GetDlgItemText: Pointer;
  12595. function GetDlgItemText;
  12596. begin
  12597. GetProcedureAddress(_GetDlgItemText, user32, 'GetDlgItemText' + AWSuffix);
  12598. asm
  12599. MOV ESP, EBP
  12600. POP EBP
  12601. JMP [_GetDlgItemText]
  12602. end;
  12603. end;
  12604. var
  12605. _CheckDlgButton: Pointer;
  12606. function CheckDlgButton;
  12607. begin
  12608. GetProcedureAddress(_CheckDlgButton, user32, 'CheckDlgButton');
  12609. asm
  12610. MOV ESP, EBP
  12611. POP EBP
  12612. JMP [_CheckDlgButton]
  12613. end;
  12614. end;
  12615. var
  12616. _CheckRadioButton: Pointer;
  12617. function CheckRadioButton;
  12618. begin
  12619. GetProcedureAddress(_CheckRadioButton, user32, 'CheckRadioButton');
  12620. asm
  12621. MOV ESP, EBP
  12622. POP EBP
  12623. JMP [_CheckRadioButton]
  12624. end;
  12625. end;
  12626. var
  12627. _IsDlgButtonChecked: Pointer;
  12628. function IsDlgButtonChecked;
  12629. begin
  12630. GetProcedureAddress(_IsDlgButtonChecked, user32, 'IsDlgButtonChecked');
  12631. asm
  12632. MOV ESP, EBP
  12633. POP EBP
  12634. JMP [_IsDlgButtonChecked]
  12635. end;
  12636. end;
  12637. var
  12638. _SendDlgItemMessageA: Pointer;
  12639. function SendDlgItemMessageA;
  12640. begin
  12641. GetProcedureAddress(_SendDlgItemMessageA, user32, 'SendDlgItemMessageA');
  12642. asm
  12643. MOV ESP, EBP
  12644. POP EBP
  12645. JMP [_SendDlgItemMessageA]
  12646. end;
  12647. end;
  12648. var
  12649. _SendDlgItemMessageW: Pointer;
  12650. function SendDlgItemMessageW;
  12651. begin
  12652. GetProcedureAddress(_SendDlgItemMessageW, user32, 'SendDlgItemMessageW');
  12653. asm
  12654. MOV ESP, EBP
  12655. POP EBP
  12656. JMP [_SendDlgItemMessageW]
  12657. end;
  12658. end;
  12659. var
  12660. _SendDlgItemMessage: Pointer;
  12661. function SendDlgItemMessage;
  12662. begin
  12663. GetProcedureAddress(_SendDlgItemMessage, user32, 'SendDlgItemMessage' + AWSuffix);
  12664. asm
  12665. MOV ESP, EBP
  12666. POP EBP
  12667. JMP [_SendDlgItemMessage]
  12668. end;
  12669. end;
  12670. var
  12671. _GetNextDlgGroupItem: Pointer;
  12672. function GetNextDlgGroupItem;
  12673. begin
  12674. GetProcedureAddress(_GetNextDlgGroupItem, user32, 'GetNextDlgGroupItem');
  12675. asm
  12676. MOV ESP, EBP
  12677. POP EBP
  12678. JMP [_GetNextDlgGroupItem]
  12679. end;
  12680. end;
  12681. var
  12682. _GetNextDlgTabItem: Pointer;
  12683. function GetNextDlgTabItem;
  12684. begin
  12685. GetProcedureAddress(_GetNextDlgTabItem, user32, 'GetNextDlgTabItem');
  12686. asm
  12687. MOV ESP, EBP
  12688. POP EBP
  12689. JMP [_GetNextDlgTabItem]
  12690. end;
  12691. end;
  12692. var
  12693. _GetDlgCtrlID: Pointer;
  12694. function GetDlgCtrlID;
  12695. begin
  12696. GetProcedureAddress(_GetDlgCtrlID, user32, 'GetDlgCtrlID');
  12697. asm
  12698. MOV ESP, EBP
  12699. POP EBP
  12700. JMP [_GetDlgCtrlID]
  12701. end;
  12702. end;
  12703. var
  12704. _GetDialogBaseUnits: Pointer;
  12705. function GetDialogBaseUnits;
  12706. begin
  12707. GetProcedureAddress(_GetDialogBaseUnits, user32, 'GetDialogBaseUnits');
  12708. asm
  12709. MOV ESP, EBP
  12710. POP EBP
  12711. JMP [_GetDialogBaseUnits]
  12712. end;
  12713. end;
  12714. var
  12715. _DefDlgProcA: Pointer;
  12716. function DefDlgProcA;
  12717. begin
  12718. GetProcedureAddress(_DefDlgProcA, user32, 'DefDlgProcA');
  12719. asm
  12720. MOV ESP, EBP
  12721. POP EBP
  12722. JMP [_DefDlgProcA]
  12723. end;
  12724. end;
  12725. var
  12726. _DefDlgProcW: Pointer;
  12727. function DefDlgProcW;
  12728. begin
  12729. GetProcedureAddress(_DefDlgProcW, user32, 'DefDlgProcW');
  12730. asm
  12731. MOV ESP, EBP
  12732. POP EBP
  12733. JMP [_DefDlgProcW]
  12734. end;
  12735. end;
  12736. var
  12737. _DefDlgProc: Pointer;
  12738. function DefDlgProc;
  12739. begin
  12740. GetProcedureAddress(_DefDlgProc, user32, 'DefDlgProc' + AWSuffix);
  12741. asm
  12742. MOV ESP, EBP
  12743. POP EBP
  12744. JMP [_DefDlgProc]
  12745. end;
  12746. end;
  12747. var
  12748. _CallMsgFilterA: Pointer;
  12749. function CallMsgFilterA;
  12750. begin
  12751. GetProcedureAddress(_CallMsgFilterA, user32, 'CallMsgFilterA');
  12752. asm
  12753. MOV ESP, EBP
  12754. POP EBP
  12755. JMP [_CallMsgFilterA]
  12756. end;
  12757. end;
  12758. var
  12759. _CallMsgFilterW: Pointer;
  12760. function CallMsgFilterW;
  12761. begin
  12762. GetProcedureAddress(_CallMsgFilterW, user32, 'CallMsgFilterW');
  12763. asm
  12764. MOV ESP, EBP
  12765. POP EBP
  12766. JMP [_CallMsgFilterW]
  12767. end;
  12768. end;
  12769. var
  12770. _CallMsgFilter: Pointer;
  12771. function CallMsgFilter;
  12772. begin
  12773. GetProcedureAddress(_CallMsgFilter, user32, 'CallMsgFilter' + AWSuffix);
  12774. asm
  12775. MOV ESP, EBP
  12776. POP EBP
  12777. JMP [_CallMsgFilter]
  12778. end;
  12779. end;
  12780. var
  12781. _OpenClipboard: Pointer;
  12782. function OpenClipboard;
  12783. begin
  12784. GetProcedureAddress(_OpenClipboard, user32, 'OpenClipboard');
  12785. asm
  12786. MOV ESP, EBP
  12787. POP EBP
  12788. JMP [_OpenClipboard]
  12789. end;
  12790. end;
  12791. var
  12792. _CloseClipboard: Pointer;
  12793. function CloseClipboard;
  12794. begin
  12795. GetProcedureAddress(_CloseClipboard, user32, 'CloseClipboard');
  12796. asm
  12797. MOV ESP, EBP
  12798. POP EBP
  12799. JMP [_CloseClipboard]
  12800. end;
  12801. end;
  12802. var
  12803. _GetClipboardSequenceNumber: Pointer;
  12804. function GetClipboardSequenceNumber;
  12805. begin
  12806. GetProcedureAddress(_GetClipboardSequenceNumber, user32, 'GetClipboardSequenceNumber');
  12807. asm
  12808. MOV ESP, EBP
  12809. POP EBP
  12810. JMP [_GetClipboardSequenceNumber]
  12811. end;
  12812. end;
  12813. var
  12814. _GetClipboardOwner: Pointer;
  12815. function GetClipboardOwner;
  12816. begin
  12817. GetProcedureAddress(_GetClipboardOwner, user32, 'GetClipboardOwner');
  12818. asm
  12819. MOV ESP, EBP
  12820. POP EBP
  12821. JMP [_GetClipboardOwner]
  12822. end;
  12823. end;
  12824. var
  12825. _SetClipboardViewer: Pointer;
  12826. function SetClipboardViewer;
  12827. begin
  12828. GetProcedureAddress(_SetClipboardViewer, user32, 'SetClipboardViewer');
  12829. asm
  12830. MOV ESP, EBP
  12831. POP EBP
  12832. JMP [_SetClipboardViewer]
  12833. end;
  12834. end;
  12835. var
  12836. _GetClipboardViewer: Pointer;
  12837. function GetClipboardViewer;
  12838. begin
  12839. GetProcedureAddress(_GetClipboardViewer, user32, 'GetClipboardViewer');
  12840. asm
  12841. MOV ESP, EBP
  12842. POP EBP
  12843. JMP [_GetClipboardViewer]
  12844. end;
  12845. end;
  12846. var
  12847. _ChangeClipboardChain: Pointer;
  12848. function ChangeClipboardChain;
  12849. begin
  12850. GetProcedureAddress(_ChangeClipboardChain, user32, 'ChangeClipboardChain');
  12851. asm
  12852. MOV ESP, EBP
  12853. POP EBP
  12854. JMP [_ChangeClipboardChain]
  12855. end;
  12856. end;
  12857. var
  12858. _SetClipboardData: Pointer;
  12859. function SetClipboardData;
  12860. begin
  12861. GetProcedureAddress(_SetClipboardData, user32, 'SetClipboardData');
  12862. asm
  12863. MOV ESP, EBP
  12864. POP EBP
  12865. JMP [_SetClipboardData]
  12866. end;
  12867. end;
  12868. var
  12869. _GetClipboardData: Pointer;
  12870. function GetClipboardData;
  12871. begin
  12872. GetProcedureAddress(_GetClipboardData, user32, 'GetClipboardData');
  12873. asm
  12874. MOV ESP, EBP
  12875. POP EBP
  12876. JMP [_GetClipboardData]
  12877. end;
  12878. end;
  12879. var
  12880. _RegisterClipboardFormatA: Pointer;
  12881. function RegisterClipboardFormatA;
  12882. begin
  12883. GetProcedureAddress(_RegisterClipboardFormatA, user32, 'RegisterClipboardFormatA');
  12884. asm
  12885. MOV ESP, EBP
  12886. POP EBP
  12887. JMP [_RegisterClipboardFormatA]
  12888. end;
  12889. end;
  12890. var
  12891. _RegisterClipboardFormatW: Pointer;
  12892. function RegisterClipboardFormatW;
  12893. begin
  12894. GetProcedureAddress(_RegisterClipboardFormatW, user32, 'RegisterClipboardFormatW');
  12895. asm
  12896. MOV ESP, EBP
  12897. POP EBP
  12898. JMP [_RegisterClipboardFormatW]
  12899. end;
  12900. end;
  12901. var
  12902. _RegisterClipboardFormat: Pointer;
  12903. function RegisterClipboardFormat;
  12904. begin
  12905. GetProcedureAddress(_RegisterClipboardFormat, user32, 'RegisterClipboardFormat' + AWSuffix);
  12906. asm
  12907. MOV ESP, EBP
  12908. POP EBP
  12909. JMP [_RegisterClipboardFormat]
  12910. end;
  12911. end;
  12912. var
  12913. _CountClipboardFormats: Pointer;
  12914. function CountClipboardFormats;
  12915. begin
  12916. GetProcedureAddress(_CountClipboardFormats, user32, 'CountClipboardFormats');
  12917. asm
  12918. MOV ESP, EBP
  12919. POP EBP
  12920. JMP [_CountClipboardFormats]
  12921. end;
  12922. end;
  12923. var
  12924. _EnumClipboardFormats: Pointer;
  12925. function EnumClipboardFormats;
  12926. begin
  12927. GetProcedureAddress(_EnumClipboardFormats, user32, 'EnumClipboardFormats');
  12928. asm
  12929. MOV ESP, EBP
  12930. POP EBP
  12931. JMP [_EnumClipboardFormats]
  12932. end;
  12933. end;
  12934. var
  12935. _GetClipboardFormatNameA: Pointer;
  12936. function GetClipboardFormatNameA;
  12937. begin
  12938. GetProcedureAddress(_GetClipboardFormatNameA, user32, 'GetClipboardFormatNameA');
  12939. asm
  12940. MOV ESP, EBP
  12941. POP EBP
  12942. JMP [_GetClipboardFormatNameA]
  12943. end;
  12944. end;
  12945. var
  12946. _GetClipboardFormatNameW: Pointer;
  12947. function GetClipboardFormatNameW;
  12948. begin
  12949. GetProcedureAddress(_GetClipboardFormatNameW, user32, 'GetClipboardFormatNameW');
  12950. asm
  12951. MOV ESP, EBP
  12952. POP EBP
  12953. JMP [_GetClipboardFormatNameW]
  12954. end;
  12955. end;
  12956. var
  12957. _GetClipboardFormatName: Pointer;
  12958. function GetClipboardFormatName;
  12959. begin
  12960. GetProcedureAddress(_GetClipboardFormatName, user32, 'GetClipboardFormatName' + AWSuffix);
  12961. asm
  12962. MOV ESP, EBP
  12963. POP EBP
  12964. JMP [_GetClipboardFormatName]
  12965. end;
  12966. end;
  12967. var
  12968. _EmptyClipboard: Pointer;
  12969. function EmptyClipboard;
  12970. begin
  12971. GetProcedureAddress(_EmptyClipboard, user32, 'EmptyClipboard');
  12972. asm
  12973. MOV ESP, EBP
  12974. POP EBP
  12975. JMP [_EmptyClipboard]
  12976. end;
  12977. end;
  12978. var
  12979. _IsClipboardFormatAvailable: Pointer;
  12980. function IsClipboardFormatAvailable;
  12981. begin
  12982. GetProcedureAddress(_IsClipboardFormatAvailable, user32, 'IsClipboardFormatAvailable');
  12983. asm
  12984. MOV ESP, EBP
  12985. POP EBP
  12986. JMP [_IsClipboardFormatAvailable]
  12987. end;
  12988. end;
  12989. var
  12990. _GetPriorityClipboardFormat: Pointer;
  12991. function GetPriorityClipboardFormat;
  12992. begin
  12993. GetProcedureAddress(_GetPriorityClipboardFormat, user32, 'GetPriorityClipboardFormat');
  12994. asm
  12995. MOV ESP, EBP
  12996. POP EBP
  12997. JMP [_GetPriorityClipboardFormat]
  12998. end;
  12999. end;
  13000. var
  13001. _GetOpenClipboardWindow: Pointer;
  13002. function GetOpenClipboardWindow;
  13003. begin
  13004. GetProcedureAddress(_GetOpenClipboardWindow, user32, 'GetOpenClipboardWindow');
  13005. asm
  13006. MOV ESP, EBP
  13007. POP EBP
  13008. JMP [_GetOpenClipboardWindow]
  13009. end;
  13010. end;
  13011. var
  13012. _CharToOemA: Pointer;
  13013. function CharToOemA;
  13014. begin
  13015. GetProcedureAddress(_CharToOemA, user32, 'CharToOemA');
  13016. asm
  13017. MOV ESP, EBP
  13018. POP EBP
  13019. JMP [_CharToOemA]
  13020. end;
  13021. end;
  13022. var
  13023. _CharToOemW: Pointer;
  13024. function CharToOemW;
  13025. begin
  13026. GetProcedureAddress(_CharToOemW, user32, 'CharToOemW');
  13027. asm
  13028. MOV ESP, EBP
  13029. POP EBP
  13030. JMP [_CharToOemW]
  13031. end;
  13032. end;
  13033. var
  13034. _CharToOem: Pointer;
  13035. function CharToOem;
  13036. begin
  13037. GetProcedureAddress(_CharToOem, user32, 'CharToOem' + AWSuffix);
  13038. asm
  13039. MOV ESP, EBP
  13040. POP EBP
  13041. JMP [_CharToOem]
  13042. end;
  13043. end;
  13044. var
  13045. _OemToCharA: Pointer;
  13046. function OemToCharA;
  13047. begin
  13048. GetProcedureAddress(_OemToCharA, user32, 'OemToCharA');
  13049. asm
  13050. MOV ESP, EBP
  13051. POP EBP
  13052. JMP [_OemToCharA]
  13053. end;
  13054. end;
  13055. var
  13056. _OemToCharW: Pointer;
  13057. function OemToCharW;
  13058. begin
  13059. GetProcedureAddress(_OemToCharW, user32, 'OemToCharW');
  13060. asm
  13061. MOV ESP, EBP
  13062. POP EBP
  13063. JMP [_OemToCharW]
  13064. end;
  13065. end;
  13066. var
  13067. _OemToChar: Pointer;
  13068. function OemToChar;
  13069. begin
  13070. GetProcedureAddress(_OemToChar, user32, 'OemToChar' + AWSuffix);
  13071. asm
  13072. MOV ESP, EBP
  13073. POP EBP
  13074. JMP [_OemToChar]
  13075. end;
  13076. end;
  13077. var
  13078. _CharToOemBuffA: Pointer;
  13079. function CharToOemBuffA;
  13080. begin
  13081. GetProcedureAddress(_CharToOemBuffA, user32, 'CharToOemBuffA');
  13082. asm
  13083. MOV ESP, EBP
  13084. POP EBP
  13085. JMP [_CharToOemBuffA]
  13086. end;
  13087. end;
  13088. var
  13089. _CharToOemBuffW: Pointer;
  13090. function CharToOemBuffW;
  13091. begin
  13092. GetProcedureAddress(_CharToOemBuffW, user32, 'CharToOemBuffW');
  13093. asm
  13094. MOV ESP, EBP
  13095. POP EBP
  13096. JMP [_CharToOemBuffW]
  13097. end;
  13098. end;
  13099. var
  13100. _CharToOemBuff: Pointer;
  13101. function CharToOemBuff;
  13102. begin
  13103. GetProcedureAddress(_CharToOemBuff, user32, 'CharToOemBuff' + AWSuffix);
  13104. asm
  13105. MOV ESP, EBP
  13106. POP EBP
  13107. JMP [_CharToOemBuff]
  13108. end;
  13109. end;
  13110. var
  13111. _OemToCharBuffA: Pointer;
  13112. function OemToCharBuffA;
  13113. begin
  13114. GetProcedureAddress(_OemToCharBuffA, user32, 'OemToCharBuffA');
  13115. asm
  13116. MOV ESP, EBP
  13117. POP EBP
  13118. JMP [_OemToCharBuffA]
  13119. end;
  13120. end;
  13121. var
  13122. _OemToCharBuffW: Pointer;
  13123. function OemToCharBuffW;
  13124. begin
  13125. GetProcedureAddress(_OemToCharBuffW, user32, 'OemToCharBuffW');
  13126. asm
  13127. MOV ESP, EBP
  13128. POP EBP
  13129. JMP [_OemToCharBuffW]
  13130. end;
  13131. end;
  13132. var
  13133. _OemToCharBuff: Pointer;
  13134. function OemToCharBuff;
  13135. begin
  13136. GetProcedureAddress(_OemToCharBuff, user32, 'OemToCharBuff' + AWSuffix);
  13137. asm
  13138. MOV ESP, EBP
  13139. POP EBP
  13140. JMP [_OemToCharBuff]
  13141. end;
  13142. end;
  13143. var
  13144. _CharUpperA: Pointer;
  13145. function CharUpperA;
  13146. begin
  13147. GetProcedureAddress(_CharUpperA, user32, 'CharUpperA');
  13148. asm
  13149. MOV ESP, EBP
  13150. POP EBP
  13151. JMP [_CharUpperA]
  13152. end;
  13153. end;
  13154. var
  13155. _CharUpperW: Pointer;
  13156. function CharUpperW;
  13157. begin
  13158. GetProcedureAddress(_CharUpperW, user32, 'CharUpperW');
  13159. asm
  13160. MOV ESP, EBP
  13161. POP EBP
  13162. JMP [_CharUpperW]
  13163. end;
  13164. end;
  13165. var
  13166. _CharUpper: Pointer;
  13167. function CharUpper;
  13168. begin
  13169. GetProcedureAddress(_CharUpper, user32, 'CharUpper' + AWSuffix);
  13170. asm
  13171. MOV ESP, EBP
  13172. POP EBP
  13173. JMP [_CharUpper]
  13174. end;
  13175. end;
  13176. var
  13177. _CharUpperBuffA: Pointer;
  13178. function CharUpperBuffA;
  13179. begin
  13180. GetProcedureAddress(_CharUpperBuffA, user32, 'CharUpperBuffA');
  13181. asm
  13182. MOV ESP, EBP
  13183. POP EBP
  13184. JMP [_CharUpperBuffA]
  13185. end;
  13186. end;
  13187. var
  13188. _CharUpperBuffW: Pointer;
  13189. function CharUpperBuffW;
  13190. begin
  13191. GetProcedureAddress(_CharUpperBuffW, user32, 'CharUpperBuffW');
  13192. asm
  13193. MOV ESP, EBP
  13194. POP EBP
  13195. JMP [_CharUpperBuffW]
  13196. end;
  13197. end;
  13198. var
  13199. _CharUpperBuff: Pointer;
  13200. function CharUpperBuff;
  13201. begin
  13202. GetProcedureAddress(_CharUpperBuff, user32, 'CharUpperBuff' + AWSuffix);
  13203. asm
  13204. MOV ESP, EBP
  13205. POP EBP
  13206. JMP [_CharUpperBuff]
  13207. end;
  13208. end;
  13209. var
  13210. _CharLowerA: Pointer;
  13211. function CharLowerA;
  13212. begin
  13213. GetProcedureAddress(_CharLowerA, user32, 'CharLowerA');
  13214. asm
  13215. MOV ESP, EBP
  13216. POP EBP
  13217. JMP [_CharLowerA]
  13218. end;
  13219. end;
  13220. var
  13221. _CharLowerW: Pointer;
  13222. function CharLowerW;
  13223. begin
  13224. GetProcedureAddress(_CharLowerW, user32, 'CharLowerW');
  13225. asm
  13226. MOV ESP, EBP
  13227. POP EBP
  13228. JMP [_CharLowerW]
  13229. end;
  13230. end;
  13231. var
  13232. _CharLower: Pointer;
  13233. function CharLower;
  13234. begin
  13235. GetProcedureAddress(_CharLower, user32, 'CharLower' + AWSuffix);
  13236. asm
  13237. MOV ESP, EBP
  13238. POP EBP
  13239. JMP [_CharLower]
  13240. end;
  13241. end;
  13242. var
  13243. _CharLowerBuffA: Pointer;
  13244. function CharLowerBuffA;
  13245. begin
  13246. GetProcedureAddress(_CharLowerBuffA, user32, 'CharLowerBuffA');
  13247. asm
  13248. MOV ESP, EBP
  13249. POP EBP
  13250. JMP [_CharLowerBuffA]
  13251. end;
  13252. end;
  13253. var
  13254. _CharLowerBuffW: Pointer;
  13255. function CharLowerBuffW;
  13256. begin
  13257. GetProcedureAddress(_CharLowerBuffW, user32, 'CharLowerBuffW');
  13258. asm
  13259. MOV ESP, EBP
  13260. POP EBP
  13261. JMP [_CharLowerBuffW]
  13262. end;
  13263. end;
  13264. var
  13265. _CharLowerBuff: Pointer;
  13266. function CharLowerBuff;
  13267. begin
  13268. GetProcedureAddress(_CharLowerBuff, user32, 'CharLowerBuff' + AWSuffix);
  13269. asm
  13270. MOV ESP, EBP
  13271. POP EBP
  13272. JMP [_CharLowerBuff]
  13273. end;
  13274. end;
  13275. var
  13276. _CharNextA: Pointer;
  13277. function CharNextA;
  13278. begin
  13279. GetProcedureAddress(_CharNextA, user32, 'CharNextA');
  13280. asm
  13281. MOV ESP, EBP
  13282. POP EBP
  13283. JMP [_CharNextA]
  13284. end;
  13285. end;
  13286. var
  13287. _CharNextW: Pointer;
  13288. function CharNextW;
  13289. begin
  13290. GetProcedureAddress(_CharNextW, user32, 'CharNextW');
  13291. asm
  13292. MOV ESP, EBP
  13293. POP EBP
  13294. JMP [_CharNextW]
  13295. end;
  13296. end;
  13297. var
  13298. _CharNext: Pointer;
  13299. function CharNext;
  13300. begin
  13301. GetProcedureAddress(_CharNext, user32, 'CharNext' + AWSuffix);
  13302. asm
  13303. MOV ESP, EBP
  13304. POP EBP
  13305. JMP [_CharNext]
  13306. end;
  13307. end;
  13308. var
  13309. _CharPrevA: Pointer;
  13310. function CharPrevA;
  13311. begin
  13312. GetProcedureAddress(_CharPrevA, user32, 'CharPrevA');
  13313. asm
  13314. MOV ESP, EBP
  13315. POP EBP
  13316. JMP [_CharPrevA]
  13317. end;
  13318. end;
  13319. var
  13320. _CharPrevW: Pointer;
  13321. function CharPrevW;
  13322. begin
  13323. GetProcedureAddress(_CharPrevW, user32, 'CharPrevW');
  13324. asm
  13325. MOV ESP, EBP
  13326. POP EBP
  13327. JMP [_CharPrevW]
  13328. end;
  13329. end;
  13330. var
  13331. _CharPrev: Pointer;
  13332. function CharPrev;
  13333. begin
  13334. GetProcedureAddress(_CharPrev, user32, 'CharPrev' + AWSuffix);
  13335. asm
  13336. MOV ESP, EBP
  13337. POP EBP
  13338. JMP [_CharPrev]
  13339. end;
  13340. end;
  13341. var
  13342. _CharNextExA: Pointer;
  13343. function CharNextExA;
  13344. begin
  13345. GetProcedureAddress(_CharNextExA, user32, 'CharNextExA');
  13346. asm
  13347. MOV ESP, EBP
  13348. POP EBP
  13349. JMP [_CharNextExA]
  13350. end;
  13351. end;
  13352. var
  13353. _CharPrevExA: Pointer;
  13354. function CharPrevExA;
  13355. begin
  13356. GetProcedureAddress(_CharPrevExA, user32, 'CharPrevExA');
  13357. asm
  13358. MOV ESP, EBP
  13359. POP EBP
  13360. JMP [_CharPrevExA]
  13361. end;
  13362. end;
  13363. var
  13364. _IsCharAlphaA: Pointer;
  13365. function IsCharAlphaA;
  13366. begin
  13367. GetProcedureAddress(_IsCharAlphaA, user32, 'IsCharAlphaA');
  13368. asm
  13369. MOV ESP, EBP
  13370. POP EBP
  13371. JMP [_IsCharAlphaA]
  13372. end;
  13373. end;
  13374. var
  13375. _IsCharAlphaW: Pointer;
  13376. function IsCharAlphaW;
  13377. begin
  13378. GetProcedureAddress(_IsCharAlphaW, user32, 'IsCharAlphaW');
  13379. asm
  13380. MOV ESP, EBP
  13381. POP EBP
  13382. JMP [_IsCharAlphaW]
  13383. end;
  13384. end;
  13385. var
  13386. _IsCharAlpha: Pointer;
  13387. function IsCharAlpha;
  13388. begin
  13389. GetProcedureAddress(_IsCharAlpha, user32, 'IsCharAlpha' + AWSuffix);
  13390. asm
  13391. MOV ESP, EBP
  13392. POP EBP
  13393. JMP [_IsCharAlpha]
  13394. end;
  13395. end;
  13396. var
  13397. _IsCharAlphaNumericA: Pointer;
  13398. function IsCharAlphaNumericA;
  13399. begin
  13400. GetProcedureAddress(_IsCharAlphaNumericA, user32, 'IsCharAlphaNumericA');
  13401. asm
  13402. MOV ESP, EBP
  13403. POP EBP
  13404. JMP [_IsCharAlphaNumericA]
  13405. end;
  13406. end;
  13407. var
  13408. _IsCharAlphaNumericW: Pointer;
  13409. function IsCharAlphaNumericW;
  13410. begin
  13411. GetProcedureAddress(_IsCharAlphaNumericW, user32, 'IsCharAlphaNumericW');
  13412. asm
  13413. MOV ESP, EBP
  13414. POP EBP
  13415. JMP [_IsCharAlphaNumericW]
  13416. end;
  13417. end;
  13418. var
  13419. _IsCharAlphaNumeric: Pointer;
  13420. function IsCharAlphaNumeric;
  13421. begin
  13422. GetProcedureAddress(_IsCharAlphaNumeric, user32, 'IsCharAlphaNumeric' + AWSuffix);
  13423. asm
  13424. MOV ESP, EBP
  13425. POP EBP
  13426. JMP [_IsCharAlphaNumeric]
  13427. end;
  13428. end;
  13429. var
  13430. _IsCharUpperA: Pointer;
  13431. function IsCharUpperA;
  13432. begin
  13433. GetProcedureAddress(_IsCharUpperA, user32, 'IsCharUpperA');
  13434. asm
  13435. MOV ESP, EBP
  13436. POP EBP
  13437. JMP [_IsCharUpperA]
  13438. end;
  13439. end;
  13440. var
  13441. _IsCharUpperW: Pointer;
  13442. function IsCharUpperW;
  13443. begin
  13444. GetProcedureAddress(_IsCharUpperW, user32, 'IsCharUpperW');
  13445. asm
  13446. MOV ESP, EBP
  13447. POP EBP
  13448. JMP [_IsCharUpperW]
  13449. end;
  13450. end;
  13451. var
  13452. _IsCharUpper: Pointer;
  13453. function IsCharUpper;
  13454. begin
  13455. GetProcedureAddress(_IsCharUpper, user32, 'IsCharUpper' + AWSuffix);
  13456. asm
  13457. MOV ESP, EBP
  13458. POP EBP
  13459. JMP [_IsCharUpper]
  13460. end;
  13461. end;
  13462. var
  13463. _IsCharLowerA: Pointer;
  13464. function IsCharLowerA;
  13465. begin
  13466. GetProcedureAddress(_IsCharLowerA, user32, 'IsCharLowerA');
  13467. asm
  13468. MOV ESP, EBP
  13469. POP EBP
  13470. JMP [_IsCharLowerA]
  13471. end;
  13472. end;
  13473. var
  13474. _IsCharLowerW: Pointer;
  13475. function IsCharLowerW;
  13476. begin
  13477. GetProcedureAddress(_IsCharLowerW, user32, 'IsCharLowerW');
  13478. asm
  13479. MOV ESP, EBP
  13480. POP EBP
  13481. JMP [_IsCharLowerW]
  13482. end;
  13483. end;
  13484. var
  13485. _IsCharLower: Pointer;
  13486. function IsCharLower;
  13487. begin
  13488. GetProcedureAddress(_IsCharLower, user32, 'IsCharLower' + AWSuffix);
  13489. asm
  13490. MOV ESP, EBP
  13491. POP EBP
  13492. JMP [_IsCharLower]
  13493. end;
  13494. end;
  13495. var
  13496. _SetFocus: Pointer;
  13497. function SetFocus;
  13498. begin
  13499. GetProcedureAddress(_SetFocus, user32, 'SetFocus');
  13500. asm
  13501. MOV ESP, EBP
  13502. POP EBP
  13503. JMP [_SetFocus]
  13504. end;
  13505. end;
  13506. var
  13507. _GetActiveWindow: Pointer;
  13508. function GetActiveWindow;
  13509. begin
  13510. GetProcedureAddress(_GetActiveWindow, user32, 'GetActiveWindow');
  13511. asm
  13512. MOV ESP, EBP
  13513. POP EBP
  13514. JMP [_GetActiveWindow]
  13515. end;
  13516. end;
  13517. var
  13518. _GetFocus: Pointer;
  13519. function GetFocus;
  13520. begin
  13521. GetProcedureAddress(_GetFocus, user32, 'GetFocus');
  13522. asm
  13523. MOV ESP, EBP
  13524. POP EBP
  13525. JMP [_GetFocus]
  13526. end;
  13527. end;
  13528. var
  13529. _GetKBCodePage: Pointer;
  13530. function GetKBCodePage;
  13531. begin
  13532. GetProcedureAddress(_GetKBCodePage, user32, 'GetKBCodePage');
  13533. asm
  13534. MOV ESP, EBP
  13535. POP EBP
  13536. JMP [_GetKBCodePage]
  13537. end;
  13538. end;
  13539. var
  13540. _GetKeyState: Pointer;
  13541. function GetKeyState;
  13542. begin
  13543. GetProcedureAddress(_GetKeyState, user32, 'GetKeyState');
  13544. asm
  13545. MOV ESP, EBP
  13546. POP EBP
  13547. JMP [_GetKeyState]
  13548. end;
  13549. end;
  13550. var
  13551. _GetAsyncKeyState: Pointer;
  13552. function GetAsyncKeyState;
  13553. begin
  13554. GetProcedureAddress(_GetAsyncKeyState, user32, 'GetAsyncKeyState');
  13555. asm
  13556. MOV ESP, EBP
  13557. POP EBP
  13558. JMP [_GetAsyncKeyState]
  13559. end;
  13560. end;
  13561. var
  13562. _GetKeyboardState: Pointer;
  13563. function GetKeyboardState;
  13564. begin
  13565. GetProcedureAddress(_GetKeyboardState, user32, 'GetKeyboardState');
  13566. asm
  13567. MOV ESP, EBP
  13568. POP EBP
  13569. JMP [_GetKeyboardState]
  13570. end;
  13571. end;
  13572. var
  13573. _SetKeyboardState: Pointer;
  13574. function SetKeyboardState;
  13575. begin
  13576. GetProcedureAddress(_SetKeyboardState, user32, 'SetKeyboardState');
  13577. asm
  13578. MOV ESP, EBP
  13579. POP EBP
  13580. JMP [_SetKeyboardState]
  13581. end;
  13582. end;
  13583. var
  13584. _GetKeyNameTextA: Pointer;
  13585. function GetKeyNameTextA;
  13586. begin
  13587. GetProcedureAddress(_GetKeyNameTextA, user32, 'GetKeyNameTextA');
  13588. asm
  13589. MOV ESP, EBP
  13590. POP EBP
  13591. JMP [_GetKeyNameTextA]
  13592. end;
  13593. end;
  13594. var
  13595. _GetKeyNameTextW: Pointer;
  13596. function GetKeyNameTextW;
  13597. begin
  13598. GetProcedureAddress(_GetKeyNameTextW, user32, 'GetKeyNameTextW');
  13599. asm
  13600. MOV ESP, EBP
  13601. POP EBP
  13602. JMP [_GetKeyNameTextW]
  13603. end;
  13604. end;
  13605. var
  13606. _GetKeyNameText: Pointer;
  13607. function GetKeyNameText;
  13608. begin
  13609. GetProcedureAddress(_GetKeyNameText, user32, 'GetKeyNameText' + AWSuffix);
  13610. asm
  13611. MOV ESP, EBP
  13612. POP EBP
  13613. JMP [_GetKeyNameText]
  13614. end;
  13615. end;
  13616. var
  13617. _GetKeyboardType: Pointer;
  13618. function GetKeyboardType;
  13619. begin
  13620. GetProcedureAddress(_GetKeyboardType, user32, 'GetKeyboardType');
  13621. asm
  13622. MOV ESP, EBP
  13623. POP EBP
  13624. JMP [_GetKeyboardType]
  13625. end;
  13626. end;
  13627. var
  13628. _ToAscii: Pointer;
  13629. function ToAscii;
  13630. begin
  13631. GetProcedureAddress(_ToAscii, user32, 'ToAscii');
  13632. asm
  13633. MOV ESP, EBP
  13634. POP EBP
  13635. JMP [_ToAscii]
  13636. end;
  13637. end;
  13638. var
  13639. _ToAsciiEx: Pointer;
  13640. function ToAsciiEx;
  13641. begin
  13642. GetProcedureAddress(_ToAsciiEx, user32, 'ToAsciiEx');
  13643. asm
  13644. MOV ESP, EBP
  13645. POP EBP
  13646. JMP [_ToAsciiEx]
  13647. end;
  13648. end;
  13649. var
  13650. _ToUnicode: Pointer;
  13651. function ToUnicode;
  13652. begin
  13653. GetProcedureAddress(_ToUnicode, user32, 'ToUnicode');
  13654. asm
  13655. MOV ESP, EBP
  13656. POP EBP
  13657. JMP [_ToUnicode]
  13658. end;
  13659. end;
  13660. var
  13661. _OemKeyScan: Pointer;
  13662. function OemKeyScan;
  13663. begin
  13664. GetProcedureAddress(_OemKeyScan, user32, 'OemKeyScan');
  13665. asm
  13666. MOV ESP, EBP
  13667. POP EBP
  13668. JMP [_OemKeyScan]
  13669. end;
  13670. end;
  13671. var
  13672. _VkKeyScanA: Pointer;
  13673. function VkKeyScanA;
  13674. begin
  13675. GetProcedureAddress(_VkKeyScanA, user32, 'VkKeyScanA');
  13676. asm
  13677. MOV ESP, EBP
  13678. POP EBP
  13679. JMP [_VkKeyScanA]
  13680. end;
  13681. end;
  13682. var
  13683. _VkKeyScanW: Pointer;
  13684. function VkKeyScanW;
  13685. begin
  13686. GetProcedureAddress(_VkKeyScanW, user32, 'VkKeyScanW');
  13687. asm
  13688. MOV ESP, EBP
  13689. POP EBP
  13690. JMP [_VkKeyScanW]
  13691. end;
  13692. end;
  13693. var
  13694. _VkKeyScan: Pointer;
  13695. function VkKeyScan;
  13696. begin
  13697. GetProcedureAddress(_VkKeyScan, user32, 'VkKeyScan' + AWSuffix);
  13698. asm
  13699. MOV ESP, EBP
  13700. POP EBP
  13701. JMP [_VkKeyScan]
  13702. end;
  13703. end;
  13704. var
  13705. _VkKeyScanExA: Pointer;
  13706. function VkKeyScanExA;
  13707. begin
  13708. GetProcedureAddress(_VkKeyScanExA, user32, 'VkKeyScanExA');
  13709. asm
  13710. MOV ESP, EBP
  13711. POP EBP
  13712. JMP [_VkKeyScanExA]
  13713. end;
  13714. end;
  13715. var
  13716. _VkKeyScanExW: Pointer;
  13717. function VkKeyScanExW;
  13718. begin
  13719. GetProcedureAddress(_VkKeyScanExW, user32, 'VkKeyScanExW');
  13720. asm
  13721. MOV ESP, EBP
  13722. POP EBP
  13723. JMP [_VkKeyScanExW]
  13724. end;
  13725. end;
  13726. var
  13727. _VkKeyScanEx: Pointer;
  13728. function VkKeyScanEx;
  13729. begin
  13730. GetProcedureAddress(_VkKeyScanEx, user32, 'VkKeyScanEx' + AWSuffix);
  13731. asm
  13732. MOV ESP, EBP
  13733. POP EBP
  13734. JMP [_VkKeyScanEx]
  13735. end;
  13736. end;
  13737. var
  13738. _keybd_event: Pointer;
  13739. procedure keybd_event;
  13740. begin
  13741. GetProcedureAddress(_keybd_event, user32, 'keybd_event');
  13742. asm
  13743. MOV ESP, EBP
  13744. POP EBP
  13745. JMP [_keybd_event]
  13746. end;
  13747. end;
  13748. var
  13749. _mouse_event: Pointer;
  13750. procedure mouse_event;
  13751. begin
  13752. GetProcedureAddress(_mouse_event, user32, 'mouse_event');
  13753. asm
  13754. MOV ESP, EBP
  13755. POP EBP
  13756. JMP [_mouse_event]
  13757. end;
  13758. end;
  13759. var
  13760. _SendInput: Pointer;
  13761. function SendInput;
  13762. begin
  13763. GetProcedureAddress(_SendInput, user32, 'SendInput');
  13764. asm
  13765. MOV ESP, EBP
  13766. POP EBP
  13767. JMP [_SendInput]
  13768. end;
  13769. end;
  13770. var
  13771. _GetLastInputInfo: Pointer;
  13772. function GetLastInputInfo;
  13773. begin
  13774. GetProcedureAddress(_GetLastInputInfo, user32, 'GetLastInputInfo');
  13775. asm
  13776. MOV ESP, EBP
  13777. POP EBP
  13778. JMP [_GetLastInputInfo]
  13779. end;
  13780. end;
  13781. var
  13782. _MapVirtualKeyA: Pointer;
  13783. function MapVirtualKeyA;
  13784. begin
  13785. GetProcedureAddress(_MapVirtualKeyA, user32, 'MapVirtualKeyA');
  13786. asm
  13787. MOV ESP, EBP
  13788. POP EBP
  13789. JMP [_MapVirtualKeyA]
  13790. end;
  13791. end;
  13792. var
  13793. _MapVirtualKeyW: Pointer;
  13794. function MapVirtualKeyW;
  13795. begin
  13796. GetProcedureAddress(_MapVirtualKeyW, user32, 'MapVirtualKeyW');
  13797. asm
  13798. MOV ESP, EBP
  13799. POP EBP
  13800. JMP [_MapVirtualKeyW]
  13801. end;
  13802. end;
  13803. var
  13804. _MapVirtualKey: Pointer;
  13805. function MapVirtualKey;
  13806. begin
  13807. GetProcedureAddress(_MapVirtualKey, user32, 'MapVirtualKey' + AWSuffix);
  13808. asm
  13809. MOV ESP, EBP
  13810. POP EBP
  13811. JMP [_MapVirtualKey]
  13812. end;
  13813. end;
  13814. var
  13815. _MapVirtualKeyExA: Pointer;
  13816. function MapVirtualKeyExA;
  13817. begin
  13818. GetProcedureAddress(_MapVirtualKeyExA, user32, 'MapVirtualKeyExA');
  13819. asm
  13820. MOV ESP, EBP
  13821. POP EBP
  13822. JMP [_MapVirtualKeyExA]
  13823. end;
  13824. end;
  13825. var
  13826. _MapVirtualKeyExW: Pointer;
  13827. function MapVirtualKeyExW;
  13828. begin
  13829. GetProcedureAddress(_MapVirtualKeyExW, user32, 'MapVirtualKeyExW');
  13830. asm
  13831. MOV ESP, EBP
  13832. POP EBP
  13833. JMP [_MapVirtualKeyExW]
  13834. end;
  13835. end;
  13836. var
  13837. _MapVirtualKeyEx: Pointer;
  13838. function MapVirtualKeyEx;
  13839. begin
  13840. GetProcedureAddress(_MapVirtualKeyEx, user32, 'MapVirtualKeyEx' + AWSuffix);
  13841. asm
  13842. MOV ESP, EBP
  13843. POP EBP
  13844. JMP [_MapVirtualKeyEx]
  13845. end;
  13846. end;
  13847. var
  13848. _GetInputState: Pointer;
  13849. function GetInputState;
  13850. begin
  13851. GetProcedureAddress(_GetInputState, user32, 'GetInputState');
  13852. asm
  13853. MOV ESP, EBP
  13854. POP EBP
  13855. JMP [_GetInputState]
  13856. end;
  13857. end;
  13858. var
  13859. _GetQueueStatus: Pointer;
  13860. function GetQueueStatus;
  13861. begin
  13862. GetProcedureAddress(_GetQueueStatus, user32, 'GetQueueStatus');
  13863. asm
  13864. MOV ESP, EBP
  13865. POP EBP
  13866. JMP [_GetQueueStatus]
  13867. end;
  13868. end;
  13869. var
  13870. _GetCapture: Pointer;
  13871. function GetCapture;
  13872. begin
  13873. GetProcedureAddress(_GetCapture, user32, 'GetCapture');
  13874. asm
  13875. MOV ESP, EBP
  13876. POP EBP
  13877. JMP [_GetCapture]
  13878. end;
  13879. end;
  13880. var
  13881. _SetCapture: Pointer;
  13882. function SetCapture;
  13883. begin
  13884. GetProcedureAddress(_SetCapture, user32, 'SetCapture');
  13885. asm
  13886. MOV ESP, EBP
  13887. POP EBP
  13888. JMP [_SetCapture]
  13889. end;
  13890. end;
  13891. var
  13892. _ReleaseCapture: Pointer;
  13893. function ReleaseCapture;
  13894. begin
  13895. GetProcedureAddress(_ReleaseCapture, user32, 'ReleaseCapture');
  13896. asm
  13897. MOV ESP, EBP
  13898. POP EBP
  13899. JMP [_ReleaseCapture]
  13900. end;
  13901. end;
  13902. var
  13903. _MsgWaitForMultipleObjects: Pointer;
  13904. function MsgWaitForMultipleObjects;
  13905. begin
  13906. GetProcedureAddress(_MsgWaitForMultipleObjects, user32, 'MsgWaitForMultipleObjects');
  13907. asm
  13908. MOV ESP, EBP
  13909. POP EBP
  13910. JMP [_MsgWaitForMultipleObjects]
  13911. end;
  13912. end;
  13913. var
  13914. _MsgWaitForMultipleObjectsEx: Pointer;
  13915. function MsgWaitForMultipleObjectsEx;
  13916. begin
  13917. GetProcedureAddress(_MsgWaitForMultipleObjectsEx, user32, 'MsgWaitForMultipleObjectsEx');
  13918. asm
  13919. MOV ESP, EBP
  13920. POP EBP
  13921. JMP [_MsgWaitForMultipleObjectsEx]
  13922. end;
  13923. end;
  13924. var
  13925. _SetTimer: Pointer;
  13926. function SetTimer;
  13927. begin
  13928. GetProcedureAddress(_SetTimer, user32, 'SetTimer');
  13929. asm
  13930. MOV ESP, EBP
  13931. POP EBP
  13932. JMP [_SetTimer]
  13933. end;
  13934. end;
  13935. var
  13936. _KillTimer: Pointer;
  13937. function KillTimer;
  13938. begin
  13939. GetProcedureAddress(_KillTimer, user32, 'KillTimer');
  13940. asm
  13941. MOV ESP, EBP
  13942. POP EBP
  13943. JMP [_KillTimer]
  13944. end;
  13945. end;
  13946. var
  13947. _IsWindowUnicode: Pointer;
  13948. function IsWindowUnicode;
  13949. begin
  13950. GetProcedureAddress(_IsWindowUnicode, user32, 'IsWindowUnicode');
  13951. asm
  13952. MOV ESP, EBP
  13953. POP EBP
  13954. JMP [_IsWindowUnicode]
  13955. end;
  13956. end;
  13957. var
  13958. _EnableWindow: Pointer;
  13959. function EnableWindow;
  13960. begin
  13961. GetProcedureAddress(_EnableWindow, user32, 'EnableWindow');
  13962. asm
  13963. MOV ESP, EBP
  13964. POP EBP
  13965. JMP [_EnableWindow]
  13966. end;
  13967. end;
  13968. var
  13969. _IsWindowEnabled: Pointer;
  13970. function IsWindowEnabled;
  13971. begin
  13972. GetProcedureAddress(_IsWindowEnabled, user32, 'IsWindowEnabled');
  13973. asm
  13974. MOV ESP, EBP
  13975. POP EBP
  13976. JMP [_IsWindowEnabled]
  13977. end;
  13978. end;
  13979. var
  13980. _LoadAcceleratorsA: Pointer;
  13981. function LoadAcceleratorsA;
  13982. begin
  13983. GetProcedureAddress(_LoadAcceleratorsA, user32, 'LoadAcceleratorsA');
  13984. asm
  13985. MOV ESP, EBP
  13986. POP EBP
  13987. JMP [_LoadAcceleratorsA]
  13988. end;
  13989. end;
  13990. var
  13991. _LoadAcceleratorsW: Pointer;
  13992. function LoadAcceleratorsW;
  13993. begin
  13994. GetProcedureAddress(_LoadAcceleratorsW, user32, 'LoadAcceleratorsW');
  13995. asm
  13996. MOV ESP, EBP
  13997. POP EBP
  13998. JMP [_LoadAcceleratorsW]
  13999. end;
  14000. end;
  14001. var
  14002. _LoadAccelerators: Pointer;
  14003. function LoadAccelerators;
  14004. begin
  14005. GetProcedureAddress(_LoadAccelerators, user32, 'LoadAccelerators' + AWSuffix);
  14006. asm
  14007. MOV ESP, EBP
  14008. POP EBP
  14009. JMP [_LoadAccelerators]
  14010. end;
  14011. end;
  14012. var
  14013. _CreateAcceleratorTableA: Pointer;
  14014. function CreateAcceleratorTableA;
  14015. begin
  14016. GetProcedureAddress(_CreateAcceleratorTableA, user32, 'CreateAcceleratorTableA');
  14017. asm
  14018. MOV ESP, EBP
  14019. POP EBP
  14020. JMP [_CreateAcceleratorTableA]
  14021. end;
  14022. end;
  14023. var
  14024. _CreateAcceleratorTableW: Pointer;
  14025. function CreateAcceleratorTableW;
  14026. begin
  14027. GetProcedureAddress(_CreateAcceleratorTableW, user32, 'CreateAcceleratorTableW');
  14028. asm
  14029. MOV ESP, EBP
  14030. POP EBP
  14031. JMP [_CreateAcceleratorTableW]
  14032. end;
  14033. end;
  14034. var
  14035. _CreateAcceleratorTable: Pointer;
  14036. function CreateAcceleratorTable;
  14037. begin
  14038. GetProcedureAddress(_CreateAcceleratorTable, user32, 'CreateAcceleratorTable' + AWSuffix);
  14039. asm
  14040. MOV ESP, EBP
  14041. POP EBP
  14042. JMP [_CreateAcceleratorTable]
  14043. end;
  14044. end;
  14045. var
  14046. _DestroyAcceleratorTable: Pointer;
  14047. function DestroyAcceleratorTable;
  14048. begin
  14049. GetProcedureAddress(_DestroyAcceleratorTable, user32, 'DestroyAcceleratorTable');
  14050. asm
  14051. MOV ESP, EBP
  14052. POP EBP
  14053. JMP [_DestroyAcceleratorTable]
  14054. end;
  14055. end;
  14056. var
  14057. _CopyAcceleratorTableA: Pointer;
  14058. function CopyAcceleratorTableA;
  14059. begin
  14060. GetProcedureAddress(_CopyAcceleratorTableA, user32, 'CopyAcceleratorTableA');
  14061. asm
  14062. MOV ESP, EBP
  14063. POP EBP
  14064. JMP [_CopyAcceleratorTableA]
  14065. end;
  14066. end;
  14067. var
  14068. _CopyAcceleratorTableW: Pointer;
  14069. function CopyAcceleratorTableW;
  14070. begin
  14071. GetProcedureAddress(_CopyAcceleratorTableW, user32, 'CopyAcceleratorTableW');
  14072. asm
  14073. MOV ESP, EBP
  14074. POP EBP
  14075. JMP [_CopyAcceleratorTableW]
  14076. end;
  14077. end;
  14078. var
  14079. _CopyAcceleratorTable: Pointer;
  14080. function CopyAcceleratorTable;
  14081. begin
  14082. GetProcedureAddress(_CopyAcceleratorTable, user32, 'CopyAcceleratorTable' + AWSuffix);
  14083. asm
  14084. MOV ESP, EBP
  14085. POP EBP
  14086. JMP [_CopyAcceleratorTable]
  14087. end;
  14088. end;
  14089. var
  14090. _TranslateAcceleratorA: Pointer;
  14091. function TranslateAcceleratorA;
  14092. begin
  14093. GetProcedureAddress(_TranslateAcceleratorA, user32, 'TranslateAcceleratorA');
  14094. asm
  14095. MOV ESP, EBP
  14096. POP EBP
  14097. JMP [_TranslateAcceleratorA]
  14098. end;
  14099. end;
  14100. var
  14101. _TranslateAcceleratorW: Pointer;
  14102. function TranslateAcceleratorW;
  14103. begin
  14104. GetProcedureAddress(_TranslateAcceleratorW, user32, 'TranslateAcceleratorW');
  14105. asm
  14106. MOV ESP, EBP
  14107. POP EBP
  14108. JMP [_TranslateAcceleratorW]
  14109. end;
  14110. end;
  14111. var
  14112. _TranslateAccelerator: Pointer;
  14113. function TranslateAccelerator;
  14114. begin
  14115. GetProcedureAddress(_TranslateAccelerator, user32, 'TranslateAccelerator' + AWSuffix);
  14116. asm
  14117. MOV ESP, EBP
  14118. POP EBP
  14119. JMP [_TranslateAccelerator]
  14120. end;
  14121. end;
  14122. var
  14123. _GetSystemMetrics: Pointer;
  14124. function GetSystemMetrics;
  14125. begin
  14126. GetProcedureAddress(_GetSystemMetrics, user32, 'GetSystemMetrics');
  14127. asm
  14128. MOV ESP, EBP
  14129. POP EBP
  14130. JMP [_GetSystemMetrics]
  14131. end;
  14132. end;
  14133. var
  14134. _LoadMenuA: Pointer;
  14135. function LoadMenuA;
  14136. begin
  14137. GetProcedureAddress(_LoadMenuA, user32, 'LoadMenuAA');
  14138. asm
  14139. MOV ESP, EBP
  14140. POP EBP
  14141. JMP [_LoadMenuA]
  14142. end;
  14143. end;
  14144. var
  14145. _LoadMenuW: Pointer;
  14146. function LoadMenuW;
  14147. begin
  14148. GetProcedureAddress(_LoadMenuW, user32, 'LoadMenuWA');
  14149. asm
  14150. MOV ESP, EBP
  14151. POP EBP
  14152. JMP [_LoadMenuW]
  14153. end;
  14154. end;
  14155. var
  14156. _LoadMenu: Pointer;
  14157. function LoadMenu;
  14158. begin
  14159. GetProcedureAddress(_LoadMenu, user32, 'LoadMenu' + AWSuffix);
  14160. asm
  14161. MOV ESP, EBP
  14162. POP EBP
  14163. JMP [_LoadMenu]
  14164. end;
  14165. end;
  14166. var
  14167. _LoadMenuIndirectA: Pointer;
  14168. function LoadMenuIndirectA;
  14169. begin
  14170. GetProcedureAddress(_LoadMenuIndirectA, user32, 'LoadMenuIndirectA');
  14171. asm
  14172. MOV ESP, EBP
  14173. POP EBP
  14174. JMP [_LoadMenuIndirectA]
  14175. end;
  14176. end;
  14177. var
  14178. _LoadMenuIndirectW: Pointer;
  14179. function LoadMenuIndirectW;
  14180. begin
  14181. GetProcedureAddress(_LoadMenuIndirectW, user32, 'LoadMenuIndirectW');
  14182. asm
  14183. MOV ESP, EBP
  14184. POP EBP
  14185. JMP [_LoadMenuIndirectW]
  14186. end;
  14187. end;
  14188. var
  14189. _LoadMenuIndirect: Pointer;
  14190. function LoadMenuIndirect;
  14191. begin
  14192. GetProcedureAddress(_LoadMenuIndirect, user32, 'LoadMenuIndirect' + AWSuffix);
  14193. asm
  14194. MOV ESP, EBP
  14195. POP EBP
  14196. JMP [_LoadMenuIndirect]
  14197. end;
  14198. end;
  14199. var
  14200. _GetMenu: Pointer;
  14201. function GetMenu;
  14202. begin
  14203. GetProcedureAddress(_GetMenu, user32, 'GetMenu');
  14204. asm
  14205. MOV ESP, EBP
  14206. POP EBP
  14207. JMP [_GetMenu]
  14208. end;
  14209. end;
  14210. var
  14211. _SetMenu: Pointer;
  14212. function SetMenu;
  14213. begin
  14214. GetProcedureAddress(_SetMenu, user32, 'SetMenu');
  14215. asm
  14216. MOV ESP, EBP
  14217. POP EBP
  14218. JMP [_SetMenu]
  14219. end;
  14220. end;
  14221. var
  14222. _ChangeMenuA: Pointer;
  14223. function ChangeMenuA;
  14224. begin
  14225. GetProcedureAddress(_ChangeMenuA, user32, 'ChangeMenuA');
  14226. asm
  14227. MOV ESP, EBP
  14228. POP EBP
  14229. JMP [_ChangeMenuA]
  14230. end;
  14231. end;
  14232. var
  14233. _ChangeMenuW: Pointer;
  14234. function ChangeMenuW;
  14235. begin
  14236. GetProcedureAddress(_ChangeMenuW, user32, 'ChangeMenuW');
  14237. asm
  14238. MOV ESP, EBP
  14239. POP EBP
  14240. JMP [_ChangeMenuW]
  14241. end;
  14242. end;
  14243. var
  14244. _ChangeMenu: Pointer;
  14245. function ChangeMenu;
  14246. begin
  14247. GetProcedureAddress(_ChangeMenu, user32, 'ChangeMenu' + AWSuffix);
  14248. asm
  14249. MOV ESP, EBP
  14250. POP EBP
  14251. JMP [_ChangeMenu]
  14252. end;
  14253. end;
  14254. var
  14255. _HiliteMenuItem: Pointer;
  14256. function HiliteMenuItem;
  14257. begin
  14258. GetProcedureAddress(_HiliteMenuItem, user32, 'HiliteMenuItem');
  14259. asm
  14260. MOV ESP, EBP
  14261. POP EBP
  14262. JMP [_HiliteMenuItem]
  14263. end;
  14264. end;
  14265. var
  14266. _GetMenuStringA: Pointer;
  14267. function GetMenuStringA;
  14268. begin
  14269. GetProcedureAddress(_GetMenuStringA, user32, 'GetMenuStringA');
  14270. asm
  14271. MOV ESP, EBP
  14272. POP EBP
  14273. JMP [_GetMenuStringA]
  14274. end;
  14275. end;
  14276. var
  14277. _GetMenuStringW: Pointer;
  14278. function GetMenuStringW;
  14279. begin
  14280. GetProcedureAddress(_GetMenuStringW, user32, 'GetMenuStringW');
  14281. asm
  14282. MOV ESP, EBP
  14283. POP EBP
  14284. JMP [_GetMenuStringW]
  14285. end;
  14286. end;
  14287. var
  14288. _GetMenuString: Pointer;
  14289. function GetMenuString;
  14290. begin
  14291. GetProcedureAddress(_GetMenuString, user32, 'GetMenuString' + AWSuffix);
  14292. asm
  14293. MOV ESP, EBP
  14294. POP EBP
  14295. JMP [_GetMenuString]
  14296. end;
  14297. end;
  14298. var
  14299. _GetMenuState: Pointer;
  14300. function GetMenuState;
  14301. begin
  14302. GetProcedureAddress(_GetMenuState, user32, 'GetMenuState');
  14303. asm
  14304. MOV ESP, EBP
  14305. POP EBP
  14306. JMP [_GetMenuState]
  14307. end;
  14308. end;
  14309. var
  14310. _DrawMenuBar: Pointer;
  14311. function DrawMenuBar;
  14312. begin
  14313. GetProcedureAddress(_DrawMenuBar, user32, 'DrawMenuBar');
  14314. asm
  14315. MOV ESP, EBP
  14316. POP EBP
  14317. JMP [_DrawMenuBar]
  14318. end;
  14319. end;
  14320. var
  14321. _GetSystemMenu: Pointer;
  14322. function GetSystemMenu;
  14323. begin
  14324. GetProcedureAddress(_GetSystemMenu, user32, 'GetSystemMenu');
  14325. asm
  14326. MOV ESP, EBP
  14327. POP EBP
  14328. JMP [_GetSystemMenu]
  14329. end;
  14330. end;
  14331. var
  14332. _CreateMenu: Pointer;
  14333. function CreateMenu;
  14334. begin
  14335. GetProcedureAddress(_CreateMenu, user32, 'CreateMenu');
  14336. asm
  14337. MOV ESP, EBP
  14338. POP EBP
  14339. JMP [_CreateMenu]
  14340. end;
  14341. end;
  14342. var
  14343. _CreatePopupMenu: Pointer;
  14344. function CreatePopupMenu;
  14345. begin
  14346. GetProcedureAddress(_CreatePopupMenu, user32, 'CreatePopupMenu');
  14347. asm
  14348. MOV ESP, EBP
  14349. POP EBP
  14350. JMP [_CreatePopupMenu]
  14351. end;
  14352. end;
  14353. var
  14354. _DestroyMenu: Pointer;
  14355. function DestroyMenu;
  14356. begin
  14357. GetProcedureAddress(_DestroyMenu, user32, 'DestroyMenu');
  14358. asm
  14359. MOV ESP, EBP
  14360. POP EBP
  14361. JMP [_DestroyMenu]
  14362. end;
  14363. end;
  14364. var
  14365. _CheckMenuItem: Pointer;
  14366. function CheckMenuItem;
  14367. begin
  14368. GetProcedureAddress(_CheckMenuItem, user32, 'CheckMenuItem');
  14369. asm
  14370. MOV ESP, EBP
  14371. POP EBP
  14372. JMP [_CheckMenuItem]
  14373. end;
  14374. end;
  14375. var
  14376. _EnableMenuItem: Pointer;
  14377. function EnableMenuItem;
  14378. begin
  14379. GetProcedureAddress(_EnableMenuItem, user32, 'EnableMenuItem');
  14380. asm
  14381. MOV ESP, EBP
  14382. POP EBP
  14383. JMP [_EnableMenuItem]
  14384. end;
  14385. end;
  14386. var
  14387. _GetSubMenu: Pointer;
  14388. function GetSubMenu;
  14389. begin
  14390. GetProcedureAddress(_GetSubMenu, user32, 'GetSubMenu');
  14391. asm
  14392. MOV ESP, EBP
  14393. POP EBP
  14394. JMP [_GetSubMenu]
  14395. end;
  14396. end;
  14397. var
  14398. _GetMenuItemID: Pointer;
  14399. function GetMenuItemID;
  14400. begin
  14401. GetProcedureAddress(_GetMenuItemID, user32, 'GetMenuItemID');
  14402. asm
  14403. MOV ESP, EBP
  14404. POP EBP
  14405. JMP [_GetMenuItemID]
  14406. end;
  14407. end;
  14408. var
  14409. _GetMenuItemCount: Pointer;
  14410. function GetMenuItemCount;
  14411. begin
  14412. GetProcedureAddress(_GetMenuItemCount, user32, 'GetMenuItemCount');
  14413. asm
  14414. MOV ESP, EBP
  14415. POP EBP
  14416. JMP [_GetMenuItemCount]
  14417. end;
  14418. end;
  14419. var
  14420. _InsertMenuA: Pointer;
  14421. function InsertMenuA;
  14422. begin
  14423. GetProcedureAddress(_InsertMenuA, user32, 'InsertMenuA');
  14424. asm
  14425. MOV ESP, EBP
  14426. POP EBP
  14427. JMP [_InsertMenuA]
  14428. end;
  14429. end;
  14430. var
  14431. _InsertMenuW: Pointer;
  14432. function InsertMenuW;
  14433. begin
  14434. GetProcedureAddress(_InsertMenuW, user32, 'InsertMenuW');
  14435. asm
  14436. MOV ESP, EBP
  14437. POP EBP
  14438. JMP [_InsertMenuW]
  14439. end;
  14440. end;
  14441. var
  14442. _InsertMenu: Pointer;
  14443. function InsertMenu;
  14444. begin
  14445. GetProcedureAddress(_InsertMenu, user32, 'InsertMenu' + AWSuffix);
  14446. asm
  14447. MOV ESP, EBP
  14448. POP EBP
  14449. JMP [_InsertMenu]
  14450. end;
  14451. end;
  14452. var
  14453. _AppendMenuA: Pointer;
  14454. function AppendMenuA;
  14455. begin
  14456. GetProcedureAddress(_AppendMenuA, user32, 'AppendMenuA');
  14457. asm
  14458. MOV ESP, EBP
  14459. POP EBP
  14460. JMP [_AppendMenuA]
  14461. end;
  14462. end;
  14463. var
  14464. _AppendMenuW: Pointer;
  14465. function AppendMenuW;
  14466. begin
  14467. GetProcedureAddress(_AppendMenuW, user32, 'AppendMenuW');
  14468. asm
  14469. MOV ESP, EBP
  14470. POP EBP
  14471. JMP [_AppendMenuW]
  14472. end;
  14473. end;
  14474. var
  14475. _AppendMenu: Pointer;
  14476. function AppendMenu;
  14477. begin
  14478. GetProcedureAddress(_AppendMenu, user32, 'AppendMenu' + AWSuffix);
  14479. asm
  14480. MOV ESP, EBP
  14481. POP EBP
  14482. JMP [_AppendMenu]
  14483. end;
  14484. end;
  14485. var
  14486. _ModifyMenuA: Pointer;
  14487. function ModifyMenuA;
  14488. begin
  14489. GetProcedureAddress(_ModifyMenuA, user32, 'ModifyMenuA');
  14490. asm
  14491. MOV ESP, EBP
  14492. POP EBP
  14493. JMP [_ModifyMenuA]
  14494. end;
  14495. end;
  14496. var
  14497. _ModifyMenuW: Pointer;
  14498. function ModifyMenuW;
  14499. begin
  14500. GetProcedureAddress(_ModifyMenuW, user32, 'ModifyMenuW');
  14501. asm
  14502. MOV ESP, EBP
  14503. POP EBP
  14504. JMP [_ModifyMenuW]
  14505. end;
  14506. end;
  14507. var
  14508. _ModifyMenu: Pointer;
  14509. function ModifyMenu;
  14510. begin
  14511. GetProcedureAddress(_ModifyMenu, user32, 'ModifyMenu' + AWSuffix);
  14512. asm
  14513. MOV ESP, EBP
  14514. POP EBP
  14515. JMP [_ModifyMenu]
  14516. end;
  14517. end;
  14518. var
  14519. _RemoveMenu: Pointer;
  14520. function RemoveMenu;
  14521. begin
  14522. GetProcedureAddress(_RemoveMenu, user32, 'RemoveMenu');
  14523. asm
  14524. MOV ESP, EBP
  14525. POP EBP
  14526. JMP [_RemoveMenu]
  14527. end;
  14528. end;
  14529. var
  14530. _DeleteMenu: Pointer;
  14531. function DeleteMenu;
  14532. begin
  14533. GetProcedureAddress(_DeleteMenu, user32, 'DeleteMenu');
  14534. asm
  14535. MOV ESP, EBP
  14536. POP EBP
  14537. JMP [_DeleteMenu]
  14538. end;
  14539. end;
  14540. var
  14541. _SetMenuItemBitmaps: Pointer;
  14542. function SetMenuItemBitmaps;
  14543. begin
  14544. GetProcedureAddress(_SetMenuItemBitmaps, user32, 'SetMenuItemBitmaps');
  14545. asm
  14546. MOV ESP, EBP
  14547. POP EBP
  14548. JMP [_SetMenuItemBitmaps]
  14549. end;
  14550. end;
  14551. var
  14552. _GetMenuCheckMarkDimensions: Pointer;
  14553. function GetMenuCheckMarkDimensions;
  14554. begin
  14555. GetProcedureAddress(_GetMenuCheckMarkDimensions, user32, 'GetMenuCheckMarkDimensions');
  14556. asm
  14557. MOV ESP, EBP
  14558. POP EBP
  14559. JMP [_GetMenuCheckMarkDimensions]
  14560. end;
  14561. end;
  14562. var
  14563. _TrackPopupMenu: Pointer;
  14564. function TrackPopupMenu;
  14565. begin
  14566. GetProcedureAddress(_TrackPopupMenu, user32, 'TrackPopupMenu');
  14567. asm
  14568. MOV ESP, EBP
  14569. POP EBP
  14570. JMP [_TrackPopupMenu]
  14571. end;
  14572. end;
  14573. var
  14574. _TrackPopupMenuEx: Pointer;
  14575. function TrackPopupMenuEx;
  14576. begin
  14577. GetProcedureAddress(_TrackPopupMenuEx, user32, 'TrackPopupMenuEx');
  14578. asm
  14579. MOV ESP, EBP
  14580. POP EBP
  14581. JMP [_TrackPopupMenuEx]
  14582. end;
  14583. end;
  14584. var
  14585. _GetMenuInfo: Pointer;
  14586. function GetMenuInfo;
  14587. begin
  14588. GetProcedureAddress(_GetMenuInfo, user32, 'GetMenuInfo');
  14589. asm
  14590. MOV ESP, EBP
  14591. POP EBP
  14592. JMP [_GetMenuInfo]
  14593. end;
  14594. end;
  14595. var
  14596. _SetMenuInfo: Pointer;
  14597. function SetMenuInfo;
  14598. begin
  14599. GetProcedureAddress(_SetMenuInfo, user32, 'SetMenuInfo');
  14600. asm
  14601. MOV ESP, EBP
  14602. POP EBP
  14603. JMP [_SetMenuInfo]
  14604. end;
  14605. end;
  14606. var
  14607. _EndMenu: Pointer;
  14608. function EndMenu;
  14609. begin
  14610. GetProcedureAddress(_EndMenu, user32, 'EndMenu');
  14611. asm
  14612. MOV ESP, EBP
  14613. POP EBP
  14614. JMP [_EndMenu]
  14615. end;
  14616. end;
  14617. var
  14618. _InsertMenuItemA: Pointer;
  14619. function InsertMenuItemA;
  14620. begin
  14621. GetProcedureAddress(_InsertMenuItemA, user32, 'InsertMenuItemA');
  14622. asm
  14623. MOV ESP, EBP
  14624. POP EBP
  14625. JMP [_InsertMenuItemA]
  14626. end;
  14627. end;
  14628. var
  14629. _InsertMenuItemW: Pointer;
  14630. function InsertMenuItemW;
  14631. begin
  14632. GetProcedureAddress(_InsertMenuItemW, user32, 'InsertMenuItemW');
  14633. asm
  14634. MOV ESP, EBP
  14635. POP EBP
  14636. JMP [_InsertMenuItemW]
  14637. end;
  14638. end;
  14639. var
  14640. _InsertMenuItem: Pointer;
  14641. function InsertMenuItem;
  14642. begin
  14643. GetProcedureAddress(_InsertMenuItem, user32, 'InsertMenuItem' + AWSuffix);
  14644. asm
  14645. MOV ESP, EBP
  14646. POP EBP
  14647. JMP [_InsertMenuItem]
  14648. end;
  14649. end;
  14650. var
  14651. _GetMenuItemInfoA: Pointer;
  14652. function GetMenuItemInfoA;
  14653. begin
  14654. GetProcedureAddress(_GetMenuItemInfoA, user32, 'GetMenuItemInfoA');
  14655. asm
  14656. MOV ESP, EBP
  14657. POP EBP
  14658. JMP [_GetMenuItemInfoA]
  14659. end;
  14660. end;
  14661. var
  14662. _GetMenuItemInfoW: Pointer;
  14663. function GetMenuItemInfoW;
  14664. begin
  14665. GetProcedureAddress(_GetMenuItemInfoW, user32, 'GetMenuItemInfoW');
  14666. asm
  14667. MOV ESP, EBP
  14668. POP EBP
  14669. JMP [_GetMenuItemInfoW]
  14670. end;
  14671. end;
  14672. var
  14673. _GetMenuItemInfo: Pointer;
  14674. function GetMenuItemInfo;
  14675. begin
  14676. GetProcedureAddress(_GetMenuItemInfo, user32, 'GetMenuItemInfo' + AWSuffix);
  14677. asm
  14678. MOV ESP, EBP
  14679. POP EBP
  14680. JMP [_GetMenuItemInfo]
  14681. end;
  14682. end;
  14683. var
  14684. _SetMenuItemInfoA: Pointer;
  14685. function SetMenuItemInfoA;
  14686. begin
  14687. GetProcedureAddress(_SetMenuItemInfoA, user32, 'SetMenuItemInfoA');
  14688. asm
  14689. MOV ESP, EBP
  14690. POP EBP
  14691. JMP [_SetMenuItemInfoA]
  14692. end;
  14693. end;
  14694. var
  14695. _SetMenuItemInfoW: Pointer;
  14696. function SetMenuItemInfoW;
  14697. begin
  14698. GetProcedureAddress(_SetMenuItemInfoW, user32, 'SetMenuItemInfoW');
  14699. asm
  14700. MOV ESP, EBP
  14701. POP EBP
  14702. JMP [_SetMenuItemInfoW]
  14703. end;
  14704. end;
  14705. var
  14706. _SetMenuItemInfo: Pointer;
  14707. function SetMenuItemInfo;
  14708. begin
  14709. GetProcedureAddress(_SetMenuItemInfo, user32, 'SetMenuItemInfo' + AWSuffix);
  14710. asm
  14711. MOV ESP, EBP
  14712. POP EBP
  14713. JMP [_SetMenuItemInfo]
  14714. end;
  14715. end;
  14716. var
  14717. _GetMenuDefaultItem: Pointer;
  14718. function GetMenuDefaultItem;
  14719. begin
  14720. GetProcedureAddress(_GetMenuDefaultItem, user32, 'GetMenuDefaultItem');
  14721. asm
  14722. MOV ESP, EBP
  14723. POP EBP
  14724. JMP [_GetMenuDefaultItem]
  14725. end;
  14726. end;
  14727. var
  14728. _SetMenuDefaultItem: Pointer;
  14729. function SetMenuDefaultItem;
  14730. begin
  14731. GetProcedureAddress(_SetMenuDefaultItem, user32, 'SetMenuDefaultItem');
  14732. asm
  14733. MOV ESP, EBP
  14734. POP EBP
  14735. JMP [_SetMenuDefaultItem]
  14736. end;
  14737. end;
  14738. var
  14739. _GetMenuItemRect: Pointer;
  14740. function GetMenuItemRect;
  14741. begin
  14742. GetProcedureAddress(_GetMenuItemRect, user32, 'GetMenuItemRect');
  14743. asm
  14744. MOV ESP, EBP
  14745. POP EBP
  14746. JMP [_GetMenuItemRect]
  14747. end;
  14748. end;
  14749. var
  14750. _MenuItemFromPoint: Pointer;
  14751. function MenuItemFromPoint;
  14752. begin
  14753. GetProcedureAddress(_MenuItemFromPoint, user32, 'MenuItemFromPoint');
  14754. asm
  14755. MOV ESP, EBP
  14756. POP EBP
  14757. JMP [_MenuItemFromPoint]
  14758. end;
  14759. end;
  14760. var
  14761. _DragObject: Pointer;
  14762. function DragObject;
  14763. begin
  14764. GetProcedureAddress(_DragObject, user32, 'DragObject');
  14765. asm
  14766. MOV ESP, EBP
  14767. POP EBP
  14768. JMP [_DragObject]
  14769. end;
  14770. end;
  14771. var
  14772. _DragDetect: Pointer;
  14773. function DragDetect;
  14774. begin
  14775. GetProcedureAddress(_DragDetect, user32, 'DragDetect');
  14776. asm
  14777. MOV ESP, EBP
  14778. POP EBP
  14779. JMP [_DragDetect]
  14780. end;
  14781. end;
  14782. var
  14783. _DrawIcon: Pointer;
  14784. function DrawIcon;
  14785. begin
  14786. GetProcedureAddress(_DrawIcon, user32, 'DrawIcon');
  14787. asm
  14788. MOV ESP, EBP
  14789. POP EBP
  14790. JMP [_DrawIcon]
  14791. end;
  14792. end;
  14793. var
  14794. _DrawTextA: Pointer;
  14795. function DrawTextA;
  14796. begin
  14797. GetProcedureAddress(_DrawTextA, user32, 'DrawTextA');
  14798. asm
  14799. MOV ESP, EBP
  14800. POP EBP
  14801. JMP [_DrawTextA]
  14802. end;
  14803. end;
  14804. var
  14805. _DrawTextW: Pointer;
  14806. function DrawTextW;
  14807. begin
  14808. GetProcedureAddress(_DrawTextW, user32, 'DrawTextW');
  14809. asm
  14810. MOV ESP, EBP
  14811. POP EBP
  14812. JMP [_DrawTextW]
  14813. end;
  14814. end;
  14815. var
  14816. _DrawText: Pointer;
  14817. function DrawText;
  14818. begin
  14819. GetProcedureAddress(_DrawText, user32, 'DrawText' + AWSuffix);
  14820. asm
  14821. MOV ESP, EBP
  14822. POP EBP
  14823. JMP [_DrawText]
  14824. end;
  14825. end;
  14826. var
  14827. _DrawTextExA: Pointer;
  14828. function DrawTextExA;
  14829. begin
  14830. GetProcedureAddress(_DrawTextExA, user32, 'DrawTextExA');
  14831. asm
  14832. MOV ESP, EBP
  14833. POP EBP
  14834. JMP [_DrawTextExA]
  14835. end;
  14836. end;
  14837. var
  14838. _DrawTextExW: Pointer;
  14839. function DrawTextExW;
  14840. begin
  14841. GetProcedureAddress(_DrawTextExW, user32, 'DrawTextExW');
  14842. asm
  14843. MOV ESP, EBP
  14844. POP EBP
  14845. JMP [_DrawTextExW]
  14846. end;
  14847. end;
  14848. var
  14849. _DrawTextEx: Pointer;
  14850. function DrawTextEx;
  14851. begin
  14852. GetProcedureAddress(_DrawTextEx, user32, 'DrawTextEx' + AWSuffix);
  14853. asm
  14854. MOV ESP, EBP
  14855. POP EBP
  14856. JMP [_DrawTextEx]
  14857. end;
  14858. end;
  14859. var
  14860. _GrayStringA: Pointer;
  14861. function GrayStringA;
  14862. begin
  14863. GetProcedureAddress(_GrayStringA, user32, 'GrayStringA');
  14864. asm
  14865. MOV ESP, EBP
  14866. POP EBP
  14867. JMP [_GrayStringA]
  14868. end;
  14869. end;
  14870. var
  14871. _GrayStringW: Pointer;
  14872. function GrayStringW;
  14873. begin
  14874. GetProcedureAddress(_GrayStringW, user32, 'GrayStringW');
  14875. asm
  14876. MOV ESP, EBP
  14877. POP EBP
  14878. JMP [_GrayStringW]
  14879. end;
  14880. end;
  14881. var
  14882. _GrayString: Pointer;
  14883. function GrayString;
  14884. begin
  14885. GetProcedureAddress(_GrayString, user32, 'GrayString' + AWSuffix);
  14886. asm
  14887. MOV ESP, EBP
  14888. POP EBP
  14889. JMP [_GrayString]
  14890. end;
  14891. end;
  14892. var
  14893. _DrawStateA: Pointer;
  14894. function DrawStateA;
  14895. begin
  14896. GetProcedureAddress(_DrawStateA, user32, 'DrawStateA');
  14897. asm
  14898. MOV ESP, EBP
  14899. POP EBP
  14900. JMP [_DrawStateA]
  14901. end;
  14902. end;
  14903. var
  14904. _DrawStateW: Pointer;
  14905. function DrawStateW;
  14906. begin
  14907. GetProcedureAddress(_DrawStateW, user32, 'DrawStateW');
  14908. asm
  14909. MOV ESP, EBP
  14910. POP EBP
  14911. JMP [_DrawStateW]
  14912. end;
  14913. end;
  14914. var
  14915. _DrawState: Pointer;
  14916. function DrawState;
  14917. begin
  14918. GetProcedureAddress(_DrawState, user32, 'DrawState' + AWSuffix);
  14919. asm
  14920. MOV ESP, EBP
  14921. POP EBP
  14922. JMP [_DrawState]
  14923. end;
  14924. end;
  14925. var
  14926. _TabbedTextOutA: Pointer;
  14927. function TabbedTextOutA;
  14928. begin
  14929. GetProcedureAddress(_TabbedTextOutA, user32, 'TabbedTextOutA');
  14930. asm
  14931. MOV ESP, EBP
  14932. POP EBP
  14933. JMP [_TabbedTextOutA]
  14934. end;
  14935. end;
  14936. var
  14937. _TabbedTextOutW: Pointer;
  14938. function TabbedTextOutW;
  14939. begin
  14940. GetProcedureAddress(_TabbedTextOutW, user32, 'TabbedTextOutW');
  14941. asm
  14942. MOV ESP, EBP
  14943. POP EBP
  14944. JMP [_TabbedTextOutW]
  14945. end;
  14946. end;
  14947. var
  14948. _TabbedTextOut: Pointer;
  14949. function TabbedTextOut;
  14950. begin
  14951. GetProcedureAddress(_TabbedTextOut, user32, 'TabbedTextOut' + AWSuffix);
  14952. asm
  14953. MOV ESP, EBP
  14954. POP EBP
  14955. JMP [_TabbedTextOut]
  14956. end;
  14957. end;
  14958. var
  14959. _GetTabbedTextExtentA: Pointer;
  14960. function GetTabbedTextExtentA;
  14961. begin
  14962. GetProcedureAddress(_GetTabbedTextExtentA, user32, 'GetTabbedTextExtentA');
  14963. asm
  14964. MOV ESP, EBP
  14965. POP EBP
  14966. JMP [_GetTabbedTextExtentA]
  14967. end;
  14968. end;
  14969. var
  14970. _GetTabbedTextExtentW: Pointer;
  14971. function GetTabbedTextExtentW;
  14972. begin
  14973. GetProcedureAddress(_GetTabbedTextExtentW, user32, 'GetTabbedTextExtentW');
  14974. asm
  14975. MOV ESP, EBP
  14976. POP EBP
  14977. JMP [_GetTabbedTextExtentW]
  14978. end;
  14979. end;
  14980. var
  14981. _GetTabbedTextExtent: Pointer;
  14982. function GetTabbedTextExtent;
  14983. begin
  14984. GetProcedureAddress(_GetTabbedTextExtent, user32, 'GetTabbedTextExtent' + AWSuffix);
  14985. asm
  14986. MOV ESP, EBP
  14987. POP EBP
  14988. JMP [_GetTabbedTextExtent]
  14989. end;
  14990. end;
  14991. var
  14992. _UpdateWindow: Pointer;
  14993. function UpdateWindow;
  14994. begin
  14995. GetProcedureAddress(_UpdateWindow, user32, 'UpdateWindow');
  14996. asm
  14997. MOV ESP, EBP
  14998. POP EBP
  14999. JMP [_UpdateWindow]
  15000. end;
  15001. end;
  15002. var
  15003. _SetActiveWindow: Pointer;
  15004. function SetActiveWindow;
  15005. begin
  15006. GetProcedureAddress(_SetActiveWindow, user32, 'SetActiveWindow');
  15007. asm
  15008. MOV ESP, EBP
  15009. POP EBP
  15010. JMP [_SetActiveWindow]
  15011. end;
  15012. end;
  15013. var
  15014. _GetForegroundWindow: Pointer;
  15015. function GetForegroundWindow;
  15016. begin
  15017. GetProcedureAddress(_GetForegroundWindow, user32, 'GetForegroundWindow');
  15018. asm
  15019. MOV ESP, EBP
  15020. POP EBP
  15021. JMP [_GetForegroundWindow]
  15022. end;
  15023. end;
  15024. var
  15025. _PaintDesktop: Pointer;
  15026. function PaintDesktop;
  15027. begin
  15028. GetProcedureAddress(_PaintDesktop, user32, 'PaintDesktop');
  15029. asm
  15030. MOV ESP, EBP
  15031. POP EBP
  15032. JMP [_PaintDesktop]
  15033. end;
  15034. end;
  15035. var
  15036. _SwitchToThisWindow: Pointer;
  15037. procedure SwitchToThisWindow;
  15038. begin
  15039. GetProcedureAddress(_SwitchToThisWindow, user32, 'SwitchToThisWindow');
  15040. asm
  15041. MOV ESP, EBP
  15042. POP EBP
  15043. JMP [_SwitchToThisWindow]
  15044. end;
  15045. end;
  15046. var
  15047. _SetForegroundWindow: Pointer;
  15048. function SetForegroundWindow;
  15049. begin
  15050. GetProcedureAddress(_SetForegroundWindow, user32, 'SetForegroundWindow');
  15051. asm
  15052. MOV ESP, EBP
  15053. POP EBP
  15054. JMP [_SetForegroundWindow]
  15055. end;
  15056. end;
  15057. var
  15058. _AllowSetForegroundWindow: Pointer;
  15059. function AllowSetForegroundWindow;
  15060. begin
  15061. GetProcedureAddress(_AllowSetForegroundWindow, user32, 'AllowSetForegroundWindow');
  15062. asm
  15063. MOV ESP, EBP
  15064. POP EBP
  15065. JMP [_AllowSetForegroundWindow]
  15066. end;
  15067. end;
  15068. var
  15069. _LockSetForegroundWindow: Pointer;
  15070. function LockSetForegroundWindow;
  15071. begin
  15072. GetProcedureAddress(_LockSetForegroundWindow, user32, 'LockSetForegroundWindow');
  15073. asm
  15074. MOV ESP, EBP
  15075. POP EBP
  15076. JMP [_LockSetForegroundWindow]
  15077. end;
  15078. end;
  15079. var
  15080. _WindowFromDC: Pointer;
  15081. function WindowFromDC;
  15082. begin
  15083. GetProcedureAddress(_WindowFromDC, user32, 'WindowFromDC');
  15084. asm
  15085. MOV ESP, EBP
  15086. POP EBP
  15087. JMP [_WindowFromDC]
  15088. end;
  15089. end;
  15090. var
  15091. _GetDC: Pointer;
  15092. function GetDC;
  15093. begin
  15094. GetProcedureAddress(_GetDC, user32, 'GetDC');
  15095. asm
  15096. MOV ESP, EBP
  15097. POP EBP
  15098. JMP [_GetDC]
  15099. end;
  15100. end;
  15101. var
  15102. _GetDCEx: Pointer;
  15103. function GetDCEx;
  15104. begin
  15105. GetProcedureAddress(_GetDCEx, user32, 'GetDCEx');
  15106. asm
  15107. MOV ESP, EBP
  15108. POP EBP
  15109. JMP [_GetDCEx]
  15110. end;
  15111. end;
  15112. var
  15113. _GetWindowDC: Pointer;
  15114. function GetWindowDC;
  15115. begin
  15116. GetProcedureAddress(_GetWindowDC, user32, 'GetWindowDC');
  15117. asm
  15118. MOV ESP, EBP
  15119. POP EBP
  15120. JMP [_GetWindowDC]
  15121. end;
  15122. end;
  15123. var
  15124. _ReleaseDC: Pointer;
  15125. function ReleaseDC;
  15126. begin
  15127. GetProcedureAddress(_ReleaseDC, user32, 'ReleaseDC');
  15128. asm
  15129. MOV ESP, EBP
  15130. POP EBP
  15131. JMP [_ReleaseDC]
  15132. end;
  15133. end;
  15134. var
  15135. _BeginPaint: Pointer;
  15136. function BeginPaint;
  15137. begin
  15138. GetProcedureAddress(_BeginPaint, user32, 'BeginPaint');
  15139. asm
  15140. MOV ESP, EBP
  15141. POP EBP
  15142. JMP [_BeginPaint]
  15143. end;
  15144. end;
  15145. var
  15146. _EndPaint: Pointer;
  15147. function EndPaint;
  15148. begin
  15149. GetProcedureAddress(_EndPaint, user32, 'EndPaint');
  15150. asm
  15151. MOV ESP, EBP
  15152. POP EBP
  15153. JMP [_EndPaint]
  15154. end;
  15155. end;
  15156. var
  15157. _GetUpdateRect: Pointer;
  15158. function GetUpdateRect;
  15159. begin
  15160. GetProcedureAddress(_GetUpdateRect, user32, 'GetUpdateRect');
  15161. asm
  15162. MOV ESP, EBP
  15163. POP EBP
  15164. JMP [_GetUpdateRect]
  15165. end;
  15166. end;
  15167. var
  15168. _GetUpdateRgn: Pointer;
  15169. function GetUpdateRgn;
  15170. begin
  15171. GetProcedureAddress(_GetUpdateRgn, user32, 'GetUpdateRgn');
  15172. asm
  15173. MOV ESP, EBP
  15174. POP EBP
  15175. JMP [_GetUpdateRgn]
  15176. end;
  15177. end;
  15178. var
  15179. _SetWindowRgn: Pointer;
  15180. function SetWindowRgn;
  15181. begin
  15182. GetProcedureAddress(_SetWindowRgn, user32, 'SetWindowRgn');
  15183. asm
  15184. MOV ESP, EBP
  15185. POP EBP
  15186. JMP [_SetWindowRgn]
  15187. end;
  15188. end;
  15189. var
  15190. _GetWindowRgn: Pointer;
  15191. function GetWindowRgn;
  15192. begin
  15193. GetProcedureAddress(_GetWindowRgn, user32, 'GetWindowRgn');
  15194. asm
  15195. MOV ESP, EBP
  15196. POP EBP
  15197. JMP [_GetWindowRgn]
  15198. end;
  15199. end;
  15200. var
  15201. _GetWindowRgnBox: Pointer;
  15202. function GetWindowRgnBox;
  15203. begin
  15204. GetProcedureAddress(_GetWindowRgnBox, user32, 'GetWindowRgnBox');
  15205. asm
  15206. MOV ESP, EBP
  15207. POP EBP
  15208. JMP [_GetWindowRgnBox]
  15209. end;
  15210. end;
  15211. var
  15212. _ExcludeUpdateRgn: Pointer;
  15213. function ExcludeUpdateRgn;
  15214. begin
  15215. GetProcedureAddress(_ExcludeUpdateRgn, user32, 'ExcludeUpdateRgn');
  15216. asm
  15217. MOV ESP, EBP
  15218. POP EBP
  15219. JMP [_ExcludeUpdateRgn]
  15220. end;
  15221. end;
  15222. var
  15223. _InvalidateRect: Pointer;
  15224. function InvalidateRect;
  15225. begin
  15226. GetProcedureAddress(_InvalidateRect, user32, 'InvalidateRect');
  15227. asm
  15228. MOV ESP, EBP
  15229. POP EBP
  15230. JMP [_InvalidateRect]
  15231. end;
  15232. end;
  15233. var
  15234. _ValidateRect: Pointer;
  15235. function ValidateRect;
  15236. begin
  15237. GetProcedureAddress(_ValidateRect, user32, 'ValidateRect');
  15238. asm
  15239. MOV ESP, EBP
  15240. POP EBP
  15241. JMP [_ValidateRect]
  15242. end;
  15243. end;
  15244. var
  15245. _InvalidateRgn: Pointer;
  15246. function InvalidateRgn;
  15247. begin
  15248. GetProcedureAddress(_InvalidateRgn, user32, 'InvalidateRgn');
  15249. asm
  15250. MOV ESP, EBP
  15251. POP EBP
  15252. JMP [_InvalidateRgn]
  15253. end;
  15254. end;
  15255. var
  15256. _ValidateRgn: Pointer;
  15257. function ValidateRgn;
  15258. begin
  15259. GetProcedureAddress(_ValidateRgn, user32, 'ValidateRgn');
  15260. asm
  15261. MOV ESP, EBP
  15262. POP EBP
  15263. JMP [_ValidateRgn]
  15264. end;
  15265. end;
  15266. var
  15267. _RedrawWindow: Pointer;
  15268. function RedrawWindow;
  15269. begin
  15270. GetProcedureAddress(_RedrawWindow, user32, 'RedrawWindow');
  15271. asm
  15272. MOV ESP, EBP
  15273. POP EBP
  15274. JMP [_RedrawWindow]
  15275. end;
  15276. end;
  15277. var
  15278. _LockWindowUpdate: Pointer;
  15279. function LockWindowUpdate;
  15280. begin
  15281. GetProcedureAddress(_LockWindowUpdate, user32, 'LockWindowUpdate');
  15282. asm
  15283. MOV ESP, EBP
  15284. POP EBP
  15285. JMP [_LockWindowUpdate]
  15286. end;
  15287. end;
  15288. var
  15289. _ScrollWindow: Pointer;
  15290. function ScrollWindow;
  15291. begin
  15292. GetProcedureAddress(_ScrollWindow, user32, 'ScrollWindow');
  15293. asm
  15294. MOV ESP, EBP
  15295. POP EBP
  15296. JMP [_ScrollWindow]
  15297. end;
  15298. end;
  15299. var
  15300. _ScrollDC: Pointer;
  15301. function ScrollDC;
  15302. begin
  15303. GetProcedureAddress(_ScrollDC, user32, 'ScrollDC');
  15304. asm
  15305. MOV ESP, EBP
  15306. POP EBP
  15307. JMP [_ScrollDC]
  15308. end;
  15309. end;
  15310. var
  15311. _ScrollWindowEx: Pointer;
  15312. function ScrollWindowEx;
  15313. begin
  15314. GetProcedureAddress(_ScrollWindowEx, user32, 'ScrollWindowEx');
  15315. asm
  15316. MOV ESP, EBP
  15317. POP EBP
  15318. JMP [_ScrollWindowEx]
  15319. end;
  15320. end;
  15321. var
  15322. _SetScrollPos: Pointer;
  15323. function SetScrollPos;
  15324. begin
  15325. GetProcedureAddress(_SetScrollPos, user32, 'SetScrollPos');
  15326. asm
  15327. MOV ESP, EBP
  15328. POP EBP
  15329. JMP [_SetScrollPos]
  15330. end;
  15331. end;
  15332. var
  15333. _GetScrollPos: Pointer;
  15334. function GetScrollPos;
  15335. begin
  15336. GetProcedureAddress(_GetScrollPos, user32, 'GetScrollPos');
  15337. asm
  15338. MOV ESP, EBP
  15339. POP EBP
  15340. JMP [_GetScrollPos]
  15341. end;
  15342. end;
  15343. var
  15344. _SetScrollRange: Pointer;
  15345. function SetScrollRange;
  15346. begin
  15347. GetProcedureAddress(_SetScrollRange, user32, 'SetScrollRange');
  15348. asm
  15349. MOV ESP, EBP
  15350. POP EBP
  15351. JMP [_SetScrollRange]
  15352. end;
  15353. end;
  15354. var
  15355. _GetScrollRange: Pointer;
  15356. function GetScrollRange;
  15357. begin
  15358. GetProcedureAddress(_GetScrollRange, user32, 'GetScrollRange');
  15359. asm
  15360. MOV ESP, EBP
  15361. POP EBP
  15362. JMP [_GetScrollRange]
  15363. end;
  15364. end;
  15365. var
  15366. _ShowScrollBar: Pointer;
  15367. function ShowScrollBar;
  15368. begin
  15369. GetProcedureAddress(_ShowScrollBar, user32, 'ShowScrollBar');
  15370. asm
  15371. MOV ESP, EBP
  15372. POP EBP
  15373. JMP [_ShowScrollBar]
  15374. end;
  15375. end;
  15376. var
  15377. _EnableScrollBar: Pointer;
  15378. function EnableScrollBar;
  15379. begin
  15380. GetProcedureAddress(_EnableScrollBar, user32, 'EnableScrollBar');
  15381. asm
  15382. MOV ESP, EBP
  15383. POP EBP
  15384. JMP [_EnableScrollBar]
  15385. end;
  15386. end;
  15387. var
  15388. _SetPropA: Pointer;
  15389. function SetPropA;
  15390. begin
  15391. GetProcedureAddress(_SetPropA, user32, 'SetPropA');
  15392. asm
  15393. MOV ESP, EBP
  15394. POP EBP
  15395. JMP [_SetPropA]
  15396. end;
  15397. end;
  15398. var
  15399. _SetPropW: Pointer;
  15400. function SetPropW;
  15401. begin
  15402. GetProcedureAddress(_SetPropW, user32, 'SetPropW');
  15403. asm
  15404. MOV ESP, EBP
  15405. POP EBP
  15406. JMP [_SetPropW]
  15407. end;
  15408. end;
  15409. var
  15410. _SetProp: Pointer;
  15411. function SetProp;
  15412. begin
  15413. GetProcedureAddress(_SetProp, user32, 'SetProp' + AWSuffix);
  15414. asm
  15415. MOV ESP, EBP
  15416. POP EBP
  15417. JMP [_SetProp]
  15418. end;
  15419. end;
  15420. var
  15421. _GetPropA: Pointer;
  15422. function GetPropA;
  15423. begin
  15424. GetProcedureAddress(_GetPropA, user32, 'GetPropA');
  15425. asm
  15426. MOV ESP, EBP
  15427. POP EBP
  15428. JMP [_GetPropA]
  15429. end;
  15430. end;
  15431. var
  15432. _GetPropW: Pointer;
  15433. function GetPropW;
  15434. begin
  15435. GetProcedureAddress(_GetPropW, user32, 'GetPropW');
  15436. asm
  15437. MOV ESP, EBP
  15438. POP EBP
  15439. JMP [_GetPropW]
  15440. end;
  15441. end;
  15442. var
  15443. _GetProp: Pointer;
  15444. function GetProp;
  15445. begin
  15446. GetProcedureAddress(_GetProp, user32, 'GetProp' + AWSuffix);
  15447. asm
  15448. MOV ESP, EBP
  15449. POP EBP
  15450. JMP [_GetProp]
  15451. end;
  15452. end;
  15453. var
  15454. _RemovePropA: Pointer;
  15455. function RemovePropA;
  15456. begin
  15457. GetProcedureAddress(_RemovePropA, user32, 'RemovePropA');
  15458. asm
  15459. MOV ESP, EBP
  15460. POP EBP
  15461. JMP [_RemovePropA]
  15462. end;
  15463. end;
  15464. var
  15465. _RemovePropW: Pointer;
  15466. function RemovePropW;
  15467. begin
  15468. GetProcedureAddress(_RemovePropW, user32, 'RemovePropW');
  15469. asm
  15470. MOV ESP, EBP
  15471. POP EBP
  15472. JMP [_RemovePropW]
  15473. end;
  15474. end;
  15475. var
  15476. _RemoveProp: Pointer;
  15477. function RemoveProp;
  15478. begin
  15479. GetProcedureAddress(_RemoveProp, user32, 'RemoveProp' + AWSuffix);
  15480. asm
  15481. MOV ESP, EBP
  15482. POP EBP
  15483. JMP [_RemoveProp]
  15484. end;
  15485. end;
  15486. var
  15487. _EnumPropsExA: Pointer;
  15488. function EnumPropsExA;
  15489. begin
  15490. GetProcedureAddress(_EnumPropsExA, user32, 'EnumPropsExA');
  15491. asm
  15492. MOV ESP, EBP
  15493. POP EBP
  15494. JMP [_EnumPropsExA]
  15495. end;
  15496. end;
  15497. var
  15498. _EnumPropsExW: Pointer;
  15499. function EnumPropsExW;
  15500. begin
  15501. GetProcedureAddress(_EnumPropsExW, user32, 'EnumPropsExW');
  15502. asm
  15503. MOV ESP, EBP
  15504. POP EBP
  15505. JMP [_EnumPropsExW]
  15506. end;
  15507. end;
  15508. var
  15509. _EnumPropsEx: Pointer;
  15510. function EnumPropsEx;
  15511. begin
  15512. GetProcedureAddress(_EnumPropsEx, user32, 'EnumPropsEx' + AWSuffix);
  15513. asm
  15514. MOV ESP, EBP
  15515. POP EBP
  15516. JMP [_EnumPropsEx]
  15517. end;
  15518. end;
  15519. var
  15520. _EnumPropsA: Pointer;
  15521. function EnumPropsA;
  15522. begin
  15523. GetProcedureAddress(_EnumPropsA, user32, 'EnumPropsA');
  15524. asm
  15525. MOV ESP, EBP
  15526. POP EBP
  15527. JMP [_EnumPropsA]
  15528. end;
  15529. end;
  15530. var
  15531. _EnumPropsW: Pointer;
  15532. function EnumPropsW;
  15533. begin
  15534. GetProcedureAddress(_EnumPropsW, user32, 'EnumPropsW');
  15535. asm
  15536. MOV ESP, EBP
  15537. POP EBP
  15538. JMP [_EnumPropsW]
  15539. end;
  15540. end;
  15541. var
  15542. _EnumProps: Pointer;
  15543. function EnumProps;
  15544. begin
  15545. GetProcedureAddress(_EnumProps, user32, 'EnumProps' + AWSuffix);
  15546. asm
  15547. MOV ESP, EBP
  15548. POP EBP
  15549. JMP [_EnumProps]
  15550. end;
  15551. end;
  15552. var
  15553. _SetWindowTextA: Pointer;
  15554. function SetWindowTextA;
  15555. begin
  15556. GetProcedureAddress(_SetWindowTextA, user32, 'SetWindowTextA');
  15557. asm
  15558. MOV ESP, EBP
  15559. POP EBP
  15560. JMP [_SetWindowTextA]
  15561. end;
  15562. end;
  15563. var
  15564. _SetWindowTextW: Pointer;
  15565. function SetWindowTextW;
  15566. begin
  15567. GetProcedureAddress(_SetWindowTextW, user32, 'SetWindowTextW');
  15568. asm
  15569. MOV ESP, EBP
  15570. POP EBP
  15571. JMP [_SetWindowTextW]
  15572. end;
  15573. end;
  15574. var
  15575. _SetWindowText: Pointer;
  15576. function SetWindowText;
  15577. begin
  15578. GetProcedureAddress(_SetWindowText, user32, 'SetWindowText' + AWSuffix);
  15579. asm
  15580. MOV ESP, EBP
  15581. POP EBP
  15582. JMP [_SetWindowText]
  15583. end;
  15584. end;
  15585. var
  15586. _GetWindowTextA: Pointer;
  15587. function GetWindowTextA;
  15588. begin
  15589. GetProcedureAddress(_GetWindowTextA, user32, 'GetWindowTextA');
  15590. asm
  15591. MOV ESP, EBP
  15592. POP EBP
  15593. JMP [_GetWindowTextA]
  15594. end;
  15595. end;
  15596. var
  15597. _GetWindowTextW: Pointer;
  15598. function GetWindowTextW;
  15599. begin
  15600. GetProcedureAddress(_GetWindowTextW, user32, 'GetWindowTextW');
  15601. asm
  15602. MOV ESP, EBP
  15603. POP EBP
  15604. JMP [_GetWindowTextW]
  15605. end;
  15606. end;
  15607. var
  15608. _GetWindowText: Pointer;
  15609. function GetWindowText;
  15610. begin
  15611. GetProcedureAddress(_GetWindowText, user32, 'GetWindowText' + AWSuffix);
  15612. asm
  15613. MOV ESP, EBP
  15614. POP EBP
  15615. JMP [_GetWindowText]
  15616. end;
  15617. end;
  15618. var
  15619. _GetWindowTextLengthA: Pointer;
  15620. function GetWindowTextLengthA;
  15621. begin
  15622. GetProcedureAddress(_GetWindowTextLengthA, user32, 'GetWindowTextLengthA');
  15623. asm
  15624. MOV ESP, EBP
  15625. POP EBP
  15626. JMP [_GetWindowTextLengthA]
  15627. end;
  15628. end;
  15629. var
  15630. _GetWindowTextLengthW: Pointer;
  15631. function GetWindowTextLengthW;
  15632. begin
  15633. GetProcedureAddress(_GetWindowTextLengthW, user32, 'GetWindowTextLengthW');
  15634. asm
  15635. MOV ESP, EBP
  15636. POP EBP
  15637. JMP [_GetWindowTextLengthW]
  15638. end;
  15639. end;
  15640. var
  15641. _GetWindowTextLength: Pointer;
  15642. function GetWindowTextLength;
  15643. begin
  15644. GetProcedureAddress(_GetWindowTextLength, user32, 'GetWindowTextLength' + AWSuffix);
  15645. asm
  15646. MOV ESP, EBP
  15647. POP EBP
  15648. JMP [_GetWindowTextLength]
  15649. end;
  15650. end;
  15651. var
  15652. _GetClientRect: Pointer;
  15653. function GetClientRect;
  15654. begin
  15655. GetProcedureAddress(_GetClientRect, user32, 'GetClientRect');
  15656. asm
  15657. MOV ESP, EBP
  15658. POP EBP
  15659. JMP [_GetClientRect]
  15660. end;
  15661. end;
  15662. var
  15663. _GetWindowRect: Pointer;
  15664. function GetWindowRect;
  15665. begin
  15666. GetProcedureAddress(_GetWindowRect, user32, 'GetWindowRect');
  15667. asm
  15668. MOV ESP, EBP
  15669. POP EBP
  15670. JMP [_GetWindowRect]
  15671. end;
  15672. end;
  15673. var
  15674. _AdjustWindowRect: Pointer;
  15675. function AdjustWindowRect;
  15676. begin
  15677. GetProcedureAddress(_AdjustWindowRect, user32, 'AdjustWindowRect');
  15678. asm
  15679. MOV ESP, EBP
  15680. POP EBP
  15681. JMP [_AdjustWindowRect]
  15682. end;
  15683. end;
  15684. var
  15685. _AdjustWindowRectEx: Pointer;
  15686. function AdjustWindowRectEx;
  15687. begin
  15688. GetProcedureAddress(_AdjustWindowRectEx, user32, 'AdjustWindowRectEx');
  15689. asm
  15690. MOV ESP, EBP
  15691. POP EBP
  15692. JMP [_AdjustWindowRectEx]
  15693. end;
  15694. end;
  15695. var
  15696. _SetWindowContextHelpId: Pointer;
  15697. function SetWindowContextHelpId;
  15698. begin
  15699. GetProcedureAddress(_SetWindowContextHelpId, user32, 'SetWindowContextHelpId');
  15700. asm
  15701. MOV ESP, EBP
  15702. POP EBP
  15703. JMP [_SetWindowContextHelpId]
  15704. end;
  15705. end;
  15706. var
  15707. _GetWindowContextHelpId: Pointer;
  15708. function GetWindowContextHelpId;
  15709. begin
  15710. GetProcedureAddress(_GetWindowContextHelpId, user32, 'GetWindowContextHelpId');
  15711. asm
  15712. MOV ESP, EBP
  15713. POP EBP
  15714. JMP [_GetWindowContextHelpId]
  15715. end;
  15716. end;
  15717. var
  15718. _SetMenuContextHelpId: Pointer;
  15719. function SetMenuContextHelpId;
  15720. begin
  15721. GetProcedureAddress(_SetMenuContextHelpId, user32, 'SetMenuContextHelpId');
  15722. asm
  15723. MOV ESP, EBP
  15724. POP EBP
  15725. JMP [_SetMenuContextHelpId]
  15726. end;
  15727. end;
  15728. var
  15729. _GetMenuContextHelpId: Pointer;
  15730. function GetMenuContextHelpId;
  15731. begin
  15732. GetProcedureAddress(_GetMenuContextHelpId, user32, 'GetMenuContextHelpId');
  15733. asm
  15734. MOV ESP, EBP
  15735. POP EBP
  15736. JMP [_GetMenuContextHelpId]
  15737. end;
  15738. end;
  15739. var
  15740. _MessageBoxA: Pointer;
  15741. function MessageBoxA;
  15742. begin
  15743. GetProcedureAddress(_MessageBoxA, user32, 'MessageBoxA');
  15744. asm
  15745. MOV ESP, EBP
  15746. POP EBP
  15747. JMP [_MessageBoxA]
  15748. end;
  15749. end;
  15750. var
  15751. _MessageBoxW: Pointer;
  15752. function MessageBoxW;
  15753. begin
  15754. GetProcedureAddress(_MessageBoxW, user32, 'MessageBoxW');
  15755. asm
  15756. MOV ESP, EBP
  15757. POP EBP
  15758. JMP [_MessageBoxW]
  15759. end;
  15760. end;
  15761. var
  15762. _MessageBox: Pointer;
  15763. function MessageBox;
  15764. begin
  15765. GetProcedureAddress(_MessageBox, user32, 'MessageBox' + AWSuffix);
  15766. asm
  15767. MOV ESP, EBP
  15768. POP EBP
  15769. JMP [_MessageBox]
  15770. end;
  15771. end;
  15772. var
  15773. _MessageBoxExA: Pointer;
  15774. function MessageBoxExA;
  15775. begin
  15776. GetProcedureAddress(_MessageBoxExA, user32, 'MessageBoxExA');
  15777. asm
  15778. MOV ESP, EBP
  15779. POP EBP
  15780. JMP [_MessageBoxExA]
  15781. end;
  15782. end;
  15783. var
  15784. _MessageBoxExW: Pointer;
  15785. function MessageBoxExW;
  15786. begin
  15787. GetProcedureAddress(_MessageBoxExW, user32, 'MessageBoxExW');
  15788. asm
  15789. MOV ESP, EBP
  15790. POP EBP
  15791. JMP [_MessageBoxExW]
  15792. end;
  15793. end;
  15794. var
  15795. _MessageBoxEx: Pointer;
  15796. function MessageBoxEx;
  15797. begin
  15798. GetProcedureAddress(_MessageBoxEx, user32, 'MessageBoxEx' + AWSuffix);
  15799. asm
  15800. MOV ESP, EBP
  15801. POP EBP
  15802. JMP [_MessageBoxEx]
  15803. end;
  15804. end;
  15805. var
  15806. _MessageBoxIndirectA: Pointer;
  15807. function MessageBoxIndirectA;
  15808. begin
  15809. GetProcedureAddress(_MessageBoxIndirectA, user32, 'MessageBoxIndirectA');
  15810. asm
  15811. MOV ESP, EBP
  15812. POP EBP
  15813. JMP [_MessageBoxIndirectA]
  15814. end;
  15815. end;
  15816. var
  15817. _MessageBoxIndirectW: Pointer;
  15818. function MessageBoxIndirectW;
  15819. begin
  15820. GetProcedureAddress(_MessageBoxIndirectW, user32, 'MessageBoxIndirectW');
  15821. asm
  15822. MOV ESP, EBP
  15823. POP EBP
  15824. JMP [_MessageBoxIndirectW]
  15825. end;
  15826. end;
  15827. var
  15828. _MessageBoxIndirect: Pointer;
  15829. function MessageBoxIndirect;
  15830. begin
  15831. GetProcedureAddress(_MessageBoxIndirect, user32, 'MessageBoxIndirect' + AWSuffix);
  15832. asm
  15833. MOV ESP, EBP
  15834. POP EBP
  15835. JMP [_MessageBoxIndirect]
  15836. end;
  15837. end;
  15838. var
  15839. _MessageBeep: Pointer;
  15840. function MessageBeep;
  15841. begin
  15842. GetProcedureAddress(_MessageBeep, user32, 'MessageBeep');
  15843. asm
  15844. MOV ESP, EBP
  15845. POP EBP
  15846. JMP [_MessageBeep]
  15847. end;
  15848. end;
  15849. var
  15850. _ShowCursor: Pointer;
  15851. function ShowCursor;
  15852. begin
  15853. GetProcedureAddress(_ShowCursor, user32, 'ShowCursor');
  15854. asm
  15855. MOV ESP, EBP
  15856. POP EBP
  15857. JMP [_ShowCursor]
  15858. end;
  15859. end;
  15860. var
  15861. _SetCursorPos: Pointer;
  15862. function SetCursorPos;
  15863. begin
  15864. GetProcedureAddress(_SetCursorPos, user32, 'SetCursorPos');
  15865. asm
  15866. MOV ESP, EBP
  15867. POP EBP
  15868. JMP [_SetCursorPos]
  15869. end;
  15870. end;
  15871. var
  15872. _SetCursor: Pointer;
  15873. function SetCursor;
  15874. begin
  15875. GetProcedureAddress(_SetCursor, user32, 'SetCursor');
  15876. asm
  15877. MOV ESP, EBP
  15878. POP EBP
  15879. JMP [_SetCursor]
  15880. end;
  15881. end;
  15882. var
  15883. _GetCursorPos: Pointer;
  15884. function GetCursorPos;
  15885. begin
  15886. GetProcedureAddress(_GetCursorPos, user32, 'GetCursorPos');
  15887. asm
  15888. MOV ESP, EBP
  15889. POP EBP
  15890. JMP [_GetCursorPos]
  15891. end;
  15892. end;
  15893. var
  15894. _ClipCursor: Pointer;
  15895. function ClipCursor;
  15896. begin
  15897. GetProcedureAddress(_ClipCursor, user32, 'ClipCursor');
  15898. asm
  15899. MOV ESP, EBP
  15900. POP EBP
  15901. JMP [_ClipCursor]
  15902. end;
  15903. end;
  15904. var
  15905. _GetClipCursor: Pointer;
  15906. function GetClipCursor;
  15907. begin
  15908. GetProcedureAddress(_GetClipCursor, user32, 'GetClipCursor');
  15909. asm
  15910. MOV ESP, EBP
  15911. POP EBP
  15912. JMP [_GetClipCursor]
  15913. end;
  15914. end;
  15915. var
  15916. _GetCursor: Pointer;
  15917. function GetCursor;
  15918. begin
  15919. GetProcedureAddress(_GetCursor, user32, 'GetCursor');
  15920. asm
  15921. MOV ESP, EBP
  15922. POP EBP
  15923. JMP [_GetCursor]
  15924. end;
  15925. end;
  15926. var
  15927. _CreateCaret: Pointer;
  15928. function CreateCaret;
  15929. begin
  15930. GetProcedureAddress(_CreateCaret, user32, 'CreateCaret');
  15931. asm
  15932. MOV ESP, EBP
  15933. POP EBP
  15934. JMP [_CreateCaret]
  15935. end;
  15936. end;
  15937. var
  15938. _GetCaretBlinkTime: Pointer;
  15939. function GetCaretBlinkTime;
  15940. begin
  15941. GetProcedureAddress(_GetCaretBlinkTime, user32, 'GetCaretBlinkTime');
  15942. asm
  15943. MOV ESP, EBP
  15944. POP EBP
  15945. JMP [_GetCaretBlinkTime]
  15946. end;
  15947. end;
  15948. var
  15949. _SetCaretBlinkTime: Pointer;
  15950. function SetCaretBlinkTime;
  15951. begin
  15952. GetProcedureAddress(_SetCaretBlinkTime, user32, 'SetCaretBlinkTime');
  15953. asm
  15954. MOV ESP, EBP
  15955. POP EBP
  15956. JMP [_SetCaretBlinkTime]
  15957. end;
  15958. end;
  15959. var
  15960. _DestroyCaret: Pointer;
  15961. function DestroyCaret;
  15962. begin
  15963. GetProcedureAddress(_DestroyCaret, user32, 'DestroyCaret');
  15964. asm
  15965. MOV ESP, EBP
  15966. POP EBP
  15967. JMP [_DestroyCaret]
  15968. end;
  15969. end;
  15970. var
  15971. _HideCaret: Pointer;
  15972. function HideCaret;
  15973. begin
  15974. GetProcedureAddress(_HideCaret, user32, 'HideCaret');
  15975. asm
  15976. MOV ESP, EBP
  15977. POP EBP
  15978. JMP [_HideCaret]
  15979. end;
  15980. end;
  15981. var
  15982. _ShowCaret: Pointer;
  15983. function ShowCaret;
  15984. begin
  15985. GetProcedureAddress(_ShowCaret, user32, 'ShowCaret');
  15986. asm
  15987. MOV ESP, EBP
  15988. POP EBP
  15989. JMP [_ShowCaret]
  15990. end;
  15991. end;
  15992. var
  15993. _SetCaretPos: Pointer;
  15994. function SetCaretPos;
  15995. begin
  15996. GetProcedureAddress(_SetCaretPos, user32, 'SetCaretPos');
  15997. asm
  15998. MOV ESP, EBP
  15999. POP EBP
  16000. JMP [_SetCaretPos]
  16001. end;
  16002. end;
  16003. var
  16004. _GetCaretPos: Pointer;
  16005. function GetCaretPos;
  16006. begin
  16007. GetProcedureAddress(_GetCaretPos, user32, 'GetCaretPos');
  16008. asm
  16009. MOV ESP, EBP
  16010. POP EBP
  16011. JMP [_GetCaretPos]
  16012. end;
  16013. end;
  16014. var
  16015. _ClientToScreen: Pointer;
  16016. function ClientToScreen;
  16017. begin
  16018. GetProcedureAddress(_ClientToScreen, user32, 'ClientToScreen');
  16019. asm
  16020. MOV ESP, EBP
  16021. POP EBP
  16022. JMP [_ClientToScreen]
  16023. end;
  16024. end;
  16025. var
  16026. _ScreenToClient: Pointer;
  16027. function ScreenToClient;
  16028. begin
  16029. GetProcedureAddress(_ScreenToClient, user32, 'ScreenToClient');
  16030. asm
  16031. MOV ESP, EBP
  16032. POP EBP
  16033. JMP [_ScreenToClient]
  16034. end;
  16035. end;
  16036. var
  16037. _MapWindowPoints: Pointer;
  16038. function MapWindowPoints;
  16039. begin
  16040. GetProcedureAddress(_MapWindowPoints, user32, 'MapWindowPoints');
  16041. asm
  16042. MOV ESP, EBP
  16043. POP EBP
  16044. JMP [_MapWindowPoints]
  16045. end;
  16046. end;
  16047. var
  16048. _WindowFromPoint: Pointer;
  16049. function WindowFromPoint;
  16050. begin
  16051. GetProcedureAddress(_WindowFromPoint, user32, 'WindowFromPoint');
  16052. asm
  16053. MOV ESP, EBP
  16054. POP EBP
  16055. JMP [_WindowFromPoint]
  16056. end;
  16057. end;
  16058. var
  16059. _ChildWindowFromPoint: Pointer;
  16060. function ChildWindowFromPoint;
  16061. begin
  16062. GetProcedureAddress(_ChildWindowFromPoint, user32, 'ChildWindowFromPoint');
  16063. asm
  16064. MOV ESP, EBP
  16065. POP EBP
  16066. JMP [_ChildWindowFromPoint]
  16067. end;
  16068. end;
  16069. var
  16070. _ChildWindowFromPointEx: Pointer;
  16071. function ChildWindowFromPointEx;
  16072. begin
  16073. GetProcedureAddress(_ChildWindowFromPointEx, user32, 'ChildWindowFromPointEx');
  16074. asm
  16075. MOV ESP, EBP
  16076. POP EBP
  16077. JMP [_ChildWindowFromPointEx]
  16078. end;
  16079. end;
  16080. var
  16081. _GetSysColor: Pointer;
  16082. function GetSysColor;
  16083. begin
  16084. GetProcedureAddress(_GetSysColor, user32, 'GetSysColor');
  16085. asm
  16086. MOV ESP, EBP
  16087. POP EBP
  16088. JMP [_GetSysColor]
  16089. end;
  16090. end;
  16091. var
  16092. _GetSysColorBrush: Pointer;
  16093. function GetSysColorBrush;
  16094. begin
  16095. GetProcedureAddress(_GetSysColorBrush, user32, 'GetSysColorBrush');
  16096. asm
  16097. MOV ESP, EBP
  16098. POP EBP
  16099. JMP [_GetSysColorBrush]
  16100. end;
  16101. end;
  16102. var
  16103. _SetSysColors: Pointer;
  16104. function SetSysColors;
  16105. begin
  16106. GetProcedureAddress(_SetSysColors, user32, 'SetSysColors');
  16107. asm
  16108. MOV ESP, EBP
  16109. POP EBP
  16110. JMP [_SetSysColors]
  16111. end;
  16112. end;
  16113. var
  16114. _DrawFocusRect: Pointer;
  16115. function DrawFocusRect;
  16116. begin
  16117. GetProcedureAddress(_DrawFocusRect, user32, 'DrawFocusRect');
  16118. asm
  16119. MOV ESP, EBP
  16120. POP EBP
  16121. JMP [_DrawFocusRect]
  16122. end;
  16123. end;
  16124. var
  16125. _FillRect: Pointer;
  16126. function FillRect;
  16127. begin
  16128. GetProcedureAddress(_FillRect, user32, 'FillRect');
  16129. asm
  16130. MOV ESP, EBP
  16131. POP EBP
  16132. JMP [_FillRect]
  16133. end;
  16134. end;
  16135. var
  16136. _FrameRect: Pointer;
  16137. function FrameRect;
  16138. begin
  16139. GetProcedureAddress(_FrameRect, user32, 'FrameRect');
  16140. asm
  16141. MOV ESP, EBP
  16142. POP EBP
  16143. JMP [_FrameRect]
  16144. end;
  16145. end;
  16146. var
  16147. _InvertRect: Pointer;
  16148. function InvertRect;
  16149. begin
  16150. GetProcedureAddress(_InvertRect, user32, 'InvertRect');
  16151. asm
  16152. MOV ESP, EBP
  16153. POP EBP
  16154. JMP [_InvertRect]
  16155. end;
  16156. end;
  16157. var
  16158. _SetRect: Pointer;
  16159. function SetRect;
  16160. begin
  16161. GetProcedureAddress(_SetRect, user32, 'SetRect');
  16162. asm
  16163. MOV ESP, EBP
  16164. POP EBP
  16165. JMP [_SetRect]
  16166. end;
  16167. end;
  16168. var
  16169. _SetRectEmpty: Pointer;
  16170. function SetRectEmpty;
  16171. begin
  16172. GetProcedureAddress(_SetRectEmpty, user32, 'SetRectEmpty');
  16173. asm
  16174. MOV ESP, EBP
  16175. POP EBP
  16176. JMP [_SetRectEmpty]
  16177. end;
  16178. end;
  16179. var
  16180. _CopyRect: Pointer;
  16181. function CopyRect;
  16182. begin
  16183. GetProcedureAddress(_CopyRect, user32, 'CopyRect');
  16184. asm
  16185. MOV ESP, EBP
  16186. POP EBP
  16187. JMP [_CopyRect]
  16188. end;
  16189. end;
  16190. var
  16191. _InflateRect: Pointer;
  16192. function InflateRect;
  16193. begin
  16194. GetProcedureAddress(_InflateRect, user32, 'InflateRect');
  16195. asm
  16196. MOV ESP, EBP
  16197. POP EBP
  16198. JMP [_InflateRect]
  16199. end;
  16200. end;
  16201. var
  16202. _IntersectRect: Pointer;
  16203. function IntersectRect;
  16204. begin
  16205. GetProcedureAddress(_IntersectRect, user32, 'IntersectRect');
  16206. asm
  16207. MOV ESP, EBP
  16208. POP EBP
  16209. JMP [_IntersectRect]
  16210. end;
  16211. end;
  16212. var
  16213. _UnionRect: Pointer;
  16214. function UnionRect;
  16215. begin
  16216. GetProcedureAddress(_UnionRect, user32, 'UnionRect');
  16217. asm
  16218. MOV ESP, EBP
  16219. POP EBP
  16220. JMP [_UnionRect]
  16221. end;
  16222. end;
  16223. var
  16224. _SubtractRect: Pointer;
  16225. function SubtractRect;
  16226. begin
  16227. GetProcedureAddress(_SubtractRect, user32, 'SubtractRect');
  16228. asm
  16229. MOV ESP, EBP
  16230. POP EBP
  16231. JMP [_SubtractRect]
  16232. end;
  16233. end;
  16234. var
  16235. _OffsetRect: Pointer;
  16236. function OffsetRect;
  16237. begin
  16238. GetProcedureAddress(_OffsetRect, user32, 'OffsetRect');
  16239. asm
  16240. MOV ESP, EBP
  16241. POP EBP
  16242. JMP [_OffsetRect]
  16243. end;
  16244. end;
  16245. var
  16246. _IsRectEmpty: Pointer;
  16247. function IsRectEmpty;
  16248. begin
  16249. GetProcedureAddress(_IsRectEmpty, user32, 'IsRectEmpty');
  16250. asm
  16251. MOV ESP, EBP
  16252. POP EBP
  16253. JMP [_IsRectEmpty]
  16254. end;
  16255. end;
  16256. var
  16257. _EqualRect: Pointer;
  16258. function EqualRect;
  16259. begin
  16260. GetProcedureAddress(_EqualRect, user32, 'EqualRect');
  16261. asm
  16262. MOV ESP, EBP
  16263. POP EBP
  16264. JMP [_EqualRect]
  16265. end;
  16266. end;
  16267. var
  16268. _PtInRect: Pointer;
  16269. function PtInRect;
  16270. begin
  16271. GetProcedureAddress(_PtInRect, user32, 'PtInRect');
  16272. asm
  16273. MOV ESP, EBP
  16274. POP EBP
  16275. JMP [_PtInRect]
  16276. end;
  16277. end;
  16278. var
  16279. _GetWindowWord: Pointer;
  16280. function GetWindowWord;
  16281. begin
  16282. GetProcedureAddress(_GetWindowWord, user32, 'GetWindowWord');
  16283. asm
  16284. MOV ESP, EBP
  16285. POP EBP
  16286. JMP [_GetWindowWord]
  16287. end;
  16288. end;
  16289. var
  16290. _SetWindowWord: Pointer;
  16291. function SetWindowWord;
  16292. begin
  16293. GetProcedureAddress(_SetWindowWord, user32, 'SetWindowWord');
  16294. asm
  16295. MOV ESP, EBP
  16296. POP EBP
  16297. JMP [_SetWindowWord]
  16298. end;
  16299. end;
  16300. var
  16301. _GetWindowLongA: Pointer;
  16302. function GetWindowLongA;
  16303. begin
  16304. GetProcedureAddress(_GetWindowLongA, user32, 'GetWindowLongA');
  16305. asm
  16306. MOV ESP, EBP
  16307. POP EBP
  16308. JMP [_GetWindowLongA]
  16309. end;
  16310. end;
  16311. var
  16312. _GetWindowLongW: Pointer;
  16313. function GetWindowLongW;
  16314. begin
  16315. GetProcedureAddress(_GetWindowLongW, user32, 'GetWindowLongW');
  16316. asm
  16317. MOV ESP, EBP
  16318. POP EBP
  16319. JMP [_GetWindowLongW]
  16320. end;
  16321. end;
  16322. var
  16323. _GetWindowLong: Pointer;
  16324. function GetWindowLong;
  16325. begin
  16326. GetProcedureAddress(_GetWindowLong, user32, 'GetWindowLong' + AWSuffix);
  16327. asm
  16328. MOV ESP, EBP
  16329. POP EBP
  16330. JMP [_GetWindowLong]
  16331. end;
  16332. end;
  16333. var
  16334. _SetWindowLongA: Pointer;
  16335. function SetWindowLongA;
  16336. begin
  16337. GetProcedureAddress(_SetWindowLongA, user32, 'SetWindowLongA');
  16338. asm
  16339. MOV ESP, EBP
  16340. POP EBP
  16341. JMP [_SetWindowLongA]
  16342. end;
  16343. end;
  16344. var
  16345. _SetWindowLongW: Pointer;
  16346. function SetWindowLongW;
  16347. begin
  16348. GetProcedureAddress(_SetWindowLongW, user32, 'SetWindowLongW');
  16349. asm
  16350. MOV ESP, EBP
  16351. POP EBP
  16352. JMP [_SetWindowLongW]
  16353. end;
  16354. end;
  16355. var
  16356. _SetWindowLong: Pointer;
  16357. function SetWindowLong;
  16358. begin
  16359. GetProcedureAddress(_SetWindowLong, user32, 'SetWindowLong' + AWSuffix);
  16360. asm
  16361. MOV ESP, EBP
  16362. POP EBP
  16363. JMP [_SetWindowLong]
  16364. end;
  16365. end;
  16366. var
  16367. _GetClassWord: Pointer;
  16368. function GetClassWord;
  16369. begin
  16370. GetProcedureAddress(_GetClassWord, user32, 'GetClassWord');
  16371. asm
  16372. MOV ESP, EBP
  16373. POP EBP
  16374. JMP [_GetClassWord]
  16375. end;
  16376. end;
  16377. var
  16378. _SetClassWord: Pointer;
  16379. function SetClassWord;
  16380. begin
  16381. GetProcedureAddress(_SetClassWord, user32, 'SetClassWord');
  16382. asm
  16383. MOV ESP, EBP
  16384. POP EBP
  16385. JMP [_SetClassWord]
  16386. end;
  16387. end;
  16388. var
  16389. _GetClassLongA: Pointer;
  16390. function GetClassLongA;
  16391. begin
  16392. GetProcedureAddress(_GetClassLongA, user32, 'GetClassLongA');
  16393. asm
  16394. MOV ESP, EBP
  16395. POP EBP
  16396. JMP [_GetClassLongA]
  16397. end;
  16398. end;
  16399. var
  16400. _GetClassLongW: Pointer;
  16401. function GetClassLongW;
  16402. begin
  16403. GetProcedureAddress(_GetClassLongW, user32, 'GetClassLongW');
  16404. asm
  16405. MOV ESP, EBP
  16406. POP EBP
  16407. JMP [_GetClassLongW]
  16408. end;
  16409. end;
  16410. var
  16411. _GetClassLong: Pointer;
  16412. function GetClassLong;
  16413. begin
  16414. GetProcedureAddress(_GetClassLong, user32, 'GetClassLong' + AWSuffix);
  16415. asm
  16416. MOV ESP, EBP
  16417. POP EBP
  16418. JMP [_GetClassLong]
  16419. end;
  16420. end;
  16421. var
  16422. _SetClassLongA: Pointer;
  16423. function SetClassLongA;
  16424. begin
  16425. GetProcedureAddress(_SetClassLongA, user32, 'SetClassLongA');
  16426. asm
  16427. MOV ESP, EBP
  16428. POP EBP
  16429. JMP [_SetClassLongA]
  16430. end;
  16431. end;
  16432. var
  16433. _SetClassLongW: Pointer;
  16434. function SetClassLongW;
  16435. begin
  16436. GetProcedureAddress(_SetClassLongW, user32, 'SetClassLongW');
  16437. asm
  16438. MOV ESP, EBP
  16439. POP EBP
  16440. JMP [_SetClassLongW]
  16441. end;
  16442. end;
  16443. var
  16444. _SetClassLong: Pointer;
  16445. function SetClassLong;
  16446. begin
  16447. GetProcedureAddress(_SetClassLong, user32, 'SetClassLong' + AWSuffix);
  16448. asm
  16449. MOV ESP, EBP
  16450. POP EBP
  16451. JMP [_SetClassLong]
  16452. end;
  16453. end;
  16454. var
  16455. _GetProcessDefaultLayout: Pointer;
  16456. function GetProcessDefaultLayout;
  16457. begin
  16458. GetProcedureAddress(_GetProcessDefaultLayout, user32, 'GetProcessDefaultLayout');
  16459. asm
  16460. MOV ESP, EBP
  16461. POP EBP
  16462. JMP [_GetProcessDefaultLayout]
  16463. end;
  16464. end;
  16465. var
  16466. _SetProcessDefaultLayout: Pointer;
  16467. function SetProcessDefaultLayout;
  16468. begin
  16469. GetProcedureAddress(_SetProcessDefaultLayout, user32, 'SetProcessDefaultLayout');
  16470. asm
  16471. MOV ESP, EBP
  16472. POP EBP
  16473. JMP [_SetProcessDefaultLayout]
  16474. end;
  16475. end;
  16476. var
  16477. _GetDesktopWindow: Pointer;
  16478. function GetDesktopWindow;
  16479. begin
  16480. GetProcedureAddress(_GetDesktopWindow, user32, 'GetDesktopWindow');
  16481. asm
  16482. MOV ESP, EBP
  16483. POP EBP
  16484. JMP [_GetDesktopWindow]
  16485. end;
  16486. end;
  16487. var
  16488. _GetParent: Pointer;
  16489. function GetParent;
  16490. begin
  16491. GetProcedureAddress(_GetParent, user32, 'GetParent');
  16492. asm
  16493. MOV ESP, EBP
  16494. POP EBP
  16495. JMP [_GetParent]
  16496. end;
  16497. end;
  16498. var
  16499. _SetParent: Pointer;
  16500. function SetParent;
  16501. begin
  16502. GetProcedureAddress(_SetParent, user32, 'SetParent');
  16503. asm
  16504. MOV ESP, EBP
  16505. POP EBP
  16506. JMP [_SetParent]
  16507. end;
  16508. end;
  16509. var
  16510. _EnumChildWindows: Pointer;
  16511. function EnumChildWindows;
  16512. begin
  16513. GetProcedureAddress(_EnumChildWindows, user32, 'EnumChildWindows');
  16514. asm
  16515. MOV ESP, EBP
  16516. POP EBP
  16517. JMP [_EnumChildWindows]
  16518. end;
  16519. end;
  16520. var
  16521. _FindWindowA: Pointer;
  16522. function FindWindowA;
  16523. begin
  16524. GetProcedureAddress(_FindWindowA, user32, 'FindWindowA');
  16525. asm
  16526. MOV ESP, EBP
  16527. POP EBP
  16528. JMP [_FindWindowA]
  16529. end;
  16530. end;
  16531. var
  16532. _FindWindowW: Pointer;
  16533. function FindWindowW;
  16534. begin
  16535. GetProcedureAddress(_FindWindowW, user32, 'FindWindowW');
  16536. asm
  16537. MOV ESP, EBP
  16538. POP EBP
  16539. JMP [_FindWindowW]
  16540. end;
  16541. end;
  16542. var
  16543. _FindWindow: Pointer;
  16544. function FindWindow;
  16545. begin
  16546. GetProcedureAddress(_FindWindow, user32, 'FindWindow' + AWSuffix);
  16547. asm
  16548. MOV ESP, EBP
  16549. POP EBP
  16550. JMP [_FindWindow]
  16551. end;
  16552. end;
  16553. var
  16554. _FindWindowExA: Pointer;
  16555. function FindWindowExA;
  16556. begin
  16557. GetProcedureAddress(_FindWindowExA, user32, 'FindWindowExA');
  16558. asm
  16559. MOV ESP, EBP
  16560. POP EBP
  16561. JMP [_FindWindowExA]
  16562. end;
  16563. end;
  16564. var
  16565. _FindWindowExW: Pointer;
  16566. function FindWindowExW;
  16567. begin
  16568. GetProcedureAddress(_FindWindowExW, user32, 'FindWindowExW');
  16569. asm
  16570. MOV ESP, EBP
  16571. POP EBP
  16572. JMP [_FindWindowExW]
  16573. end;
  16574. end;
  16575. var
  16576. _FindWindowEx: Pointer;
  16577. function FindWindowEx;
  16578. begin
  16579. GetProcedureAddress(_FindWindowEx, user32, 'FindWindowEx' + AWSuffix);
  16580. asm
  16581. MOV ESP, EBP
  16582. POP EBP
  16583. JMP [_FindWindowEx]
  16584. end;
  16585. end;
  16586. var
  16587. _GetShellWindow: Pointer;
  16588. function GetShellWindow;
  16589. begin
  16590. GetProcedureAddress(_GetShellWindow, user32, 'GetShellWindow');
  16591. asm
  16592. MOV ESP, EBP
  16593. POP EBP
  16594. JMP [_GetShellWindow]
  16595. end;
  16596. end;
  16597. var
  16598. _RegisterShellHookWindow: Pointer;
  16599. function RegisterShellHookWindow;
  16600. begin
  16601. GetProcedureAddress(_RegisterShellHookWindow, user32, 'RegisterShellHookWindow');
  16602. asm
  16603. MOV ESP, EBP
  16604. POP EBP
  16605. JMP [_RegisterShellHookWindow]
  16606. end;
  16607. end;
  16608. var
  16609. _DeregisterShellHookWindow: Pointer;
  16610. function DeregisterShellHookWindow;
  16611. begin
  16612. GetProcedureAddress(_DeregisterShellHookWindow, user32, 'DeregisterShellHookWindow');
  16613. asm
  16614. MOV ESP, EBP
  16615. POP EBP
  16616. JMP [_DeregisterShellHookWindow]
  16617. end;
  16618. end;
  16619. var
  16620. _EnumWindows: Pointer;
  16621. function EnumWindows;
  16622. begin
  16623. GetProcedureAddress(_EnumWindows, user32, 'EnumWindows');
  16624. asm
  16625. MOV ESP, EBP
  16626. POP EBP
  16627. JMP [_EnumWindows]
  16628. end;
  16629. end;
  16630. var
  16631. _EnumThreadWindows: Pointer;
  16632. function EnumThreadWindows;
  16633. begin
  16634. GetProcedureAddress(_EnumThreadWindows, user32, 'EnumThreadWindows');
  16635. asm
  16636. MOV ESP, EBP
  16637. POP EBP
  16638. JMP [_EnumThreadWindows]
  16639. end;
  16640. end;
  16641. var
  16642. _GetClassNameA: Pointer;
  16643. function GetClassNameA;
  16644. begin
  16645. GetProcedureAddress(_GetClassNameA, user32, 'GetClassNameA');
  16646. asm
  16647. MOV ESP, EBP
  16648. POP EBP
  16649. JMP [_GetClassNameA]
  16650. end;
  16651. end;
  16652. var
  16653. _GetClassNameW: Pointer;
  16654. function GetClassNameW;
  16655. begin
  16656. GetProcedureAddress(_GetClassNameW, user32, 'GetClassNameW');
  16657. asm
  16658. MOV ESP, EBP
  16659. POP EBP
  16660. JMP [_GetClassNameW]
  16661. end;
  16662. end;
  16663. var
  16664. _GetClassName: Pointer;
  16665. function GetClassName;
  16666. begin
  16667. GetProcedureAddress(_GetClassName, user32, 'GetClassName' + AWSuffix);
  16668. asm
  16669. MOV ESP, EBP
  16670. POP EBP
  16671. JMP [_GetClassName]
  16672. end;
  16673. end;
  16674. var
  16675. _GetTopWindow: Pointer;
  16676. function GetTopWindow;
  16677. begin
  16678. GetProcedureAddress(_GetTopWindow, user32, 'GetTopWindow');
  16679. asm
  16680. MOV ESP, EBP
  16681. POP EBP
  16682. JMP [_GetTopWindow]
  16683. end;
  16684. end;
  16685. var
  16686. _GetWindowThreadProcessId: Pointer;
  16687. function GetWindowThreadProcessId;
  16688. begin
  16689. GetProcedureAddress(_GetWindowThreadProcessId, user32, 'GetWindowThreadProcessId');
  16690. asm
  16691. MOV ESP, EBP
  16692. POP EBP
  16693. JMP [_GetWindowThreadProcessId]
  16694. end;
  16695. end;
  16696. var
  16697. _IsGUIThread: Pointer;
  16698. function IsGUIThread;
  16699. begin
  16700. GetProcedureAddress(_IsGUIThread, user32, 'IsGUIThread');
  16701. asm
  16702. MOV ESP, EBP
  16703. POP EBP
  16704. JMP [_IsGUIThread]
  16705. end;
  16706. end;
  16707. var
  16708. _GetLastActivePopup: Pointer;
  16709. function GetLastActivePopup;
  16710. begin
  16711. GetProcedureAddress(_GetLastActivePopup, user32, 'GetLastActivePopup');
  16712. asm
  16713. MOV ESP, EBP
  16714. POP EBP
  16715. JMP [_GetLastActivePopup]
  16716. end;
  16717. end;
  16718. var
  16719. _GetWindow: Pointer;
  16720. function GetWindow;
  16721. begin
  16722. GetProcedureAddress(_GetWindow, user32, 'GetWindow');
  16723. asm
  16724. MOV ESP, EBP
  16725. POP EBP
  16726. JMP [_GetWindow]
  16727. end;
  16728. end;
  16729. var
  16730. _SetWindowsHookA: Pointer;
  16731. function SetWindowsHookA;
  16732. begin
  16733. GetProcedureAddress(_SetWindowsHookA, user32, 'SetWindowsHookA');
  16734. asm
  16735. MOV ESP, EBP
  16736. POP EBP
  16737. JMP [_SetWindowsHookA]
  16738. end;
  16739. end;
  16740. var
  16741. _SetWindowsHookW: Pointer;
  16742. function SetWindowsHookW;
  16743. begin
  16744. GetProcedureAddress(_SetWindowsHookW, user32, 'SetWindowsHookW');
  16745. asm
  16746. MOV ESP, EBP
  16747. POP EBP
  16748. JMP [_SetWindowsHookW]
  16749. end;
  16750. end;
  16751. var
  16752. _SetWindowsHook: Pointer;
  16753. function SetWindowsHook;
  16754. begin
  16755. GetProcedureAddress(_SetWindowsHook, user32, 'SetWindowsHook' + AWSuffix);
  16756. asm
  16757. MOV ESP, EBP
  16758. POP EBP
  16759. JMP [_SetWindowsHook]
  16760. end;
  16761. end;
  16762. var
  16763. _UnhookWindowsHook: Pointer;
  16764. function UnhookWindowsHook;
  16765. begin
  16766. GetProcedureAddress(_UnhookWindowsHook, user32, 'UnhookWindowsHook');
  16767. asm
  16768. MOV ESP, EBP
  16769. POP EBP
  16770. JMP [_UnhookWindowsHook]
  16771. end;
  16772. end;
  16773. var
  16774. _SetWindowsHookExA: Pointer;
  16775. function SetWindowsHookExA;
  16776. begin
  16777. GetProcedureAddress(_SetWindowsHookExA, user32, 'SetWindowsHookExA');
  16778. asm
  16779. MOV ESP, EBP
  16780. POP EBP
  16781. JMP [_SetWindowsHookExA]
  16782. end;
  16783. end;
  16784. var
  16785. _SetWindowsHookExW: Pointer;
  16786. function SetWindowsHookExW;
  16787. begin
  16788. GetProcedureAddress(_SetWindowsHookExW, user32, 'SetWindowsHookExW');
  16789. asm
  16790. MOV ESP, EBP
  16791. POP EBP
  16792. JMP [_SetWindowsHookExW]
  16793. end;
  16794. end;
  16795. var
  16796. _SetWindowsHookEx: Pointer;
  16797. function SetWindowsHookEx;
  16798. begin
  16799. GetProcedureAddress(_SetWindowsHookEx, user32, 'SetWindowsHookEx' + AWSuffix);
  16800. asm
  16801. MOV ESP, EBP
  16802. POP EBP
  16803. JMP [_SetWindowsHookEx]
  16804. end;
  16805. end;
  16806. var
  16807. _UnhookWindowsHookEx: Pointer;
  16808. function UnhookWindowsHookEx;
  16809. begin
  16810. GetProcedureAddress(_UnhookWindowsHookEx, user32, 'UnhookWindowsHookEx');
  16811. asm
  16812. MOV ESP, EBP
  16813. POP EBP
  16814. JMP [_UnhookWindowsHookEx]
  16815. end;
  16816. end;
  16817. var
  16818. _CallNextHookEx: Pointer;
  16819. function CallNextHookEx;
  16820. begin
  16821. GetProcedureAddress(_CallNextHookEx, user32, 'CallNextHookEx');
  16822. asm
  16823. MOV ESP, EBP
  16824. POP EBP
  16825. JMP [_CallNextHookEx]
  16826. end;
  16827. end;
  16828. var
  16829. _CheckMenuRadioItem: Pointer;
  16830. function CheckMenuRadioItem;
  16831. begin
  16832. GetProcedureAddress(_CheckMenuRadioItem, user32, 'CheckMenuRadioItem');
  16833. asm
  16834. MOV ESP, EBP
  16835. POP EBP
  16836. JMP [_CheckMenuRadioItem]
  16837. end;
  16838. end;
  16839. var
  16840. _LoadBitmapA: Pointer;
  16841. function LoadBitmapA;
  16842. begin
  16843. GetProcedureAddress(_LoadBitmapA, user32, 'LoadBitmapA');
  16844. asm
  16845. MOV ESP, EBP
  16846. POP EBP
  16847. JMP [_LoadBitmapA]
  16848. end;
  16849. end;
  16850. var
  16851. _LoadBitmapW: Pointer;
  16852. function LoadBitmapW;
  16853. begin
  16854. GetProcedureAddress(_LoadBitmapW, user32, 'LoadBitmapW');
  16855. asm
  16856. MOV ESP, EBP
  16857. POP EBP
  16858. JMP [_LoadBitmapW]
  16859. end;
  16860. end;
  16861. var
  16862. _LoadBitmap: Pointer;
  16863. function LoadBitmap;
  16864. begin
  16865. GetProcedureAddress(_LoadBitmap, user32, 'LoadBitmap' + AWSuffix);
  16866. asm
  16867. MOV ESP, EBP
  16868. POP EBP
  16869. JMP [_LoadBitmap]
  16870. end;
  16871. end;
  16872. var
  16873. _LoadCursorA: Pointer;
  16874. function LoadCursorA;
  16875. begin
  16876. GetProcedureAddress(_LoadCursorA, user32, 'LoadCursorA');
  16877. asm
  16878. MOV ESP, EBP
  16879. POP EBP
  16880. JMP [_LoadCursorA]
  16881. end;
  16882. end;
  16883. var
  16884. _LoadCursorW: Pointer;
  16885. function LoadCursorW;
  16886. begin
  16887. GetProcedureAddress(_LoadCursorW, user32, 'LoadCursorW');
  16888. asm
  16889. MOV ESP, EBP
  16890. POP EBP
  16891. JMP [_LoadCursorW]
  16892. end;
  16893. end;
  16894. var
  16895. _LoadCursor: Pointer;
  16896. function LoadCursor;
  16897. begin
  16898. GetProcedureAddress(_LoadCursor, user32, 'LoadCursor' + AWSuffix);
  16899. asm
  16900. MOV ESP, EBP
  16901. POP EBP
  16902. JMP [_LoadCursor]
  16903. end;
  16904. end;
  16905. var
  16906. _LoadCursorFromFileA: Pointer;
  16907. function LoadCursorFromFileA;
  16908. begin
  16909. GetProcedureAddress(_LoadCursorFromFileA, user32, 'LoadCursorFromFileA');
  16910. asm
  16911. MOV ESP, EBP
  16912. POP EBP
  16913. JMP [_LoadCursorFromFileA]
  16914. end;
  16915. end;
  16916. var
  16917. _LoadCursorFromFileW: Pointer;
  16918. function LoadCursorFromFileW;
  16919. begin
  16920. GetProcedureAddress(_LoadCursorFromFileW, user32, 'LoadCursorFromFileW');
  16921. asm
  16922. MOV ESP, EBP
  16923. POP EBP
  16924. JMP [_LoadCursorFromFileW]
  16925. end;
  16926. end;
  16927. var
  16928. _LoadCursorFromFile: Pointer;
  16929. function LoadCursorFromFile;
  16930. begin
  16931. GetProcedureAddress(_LoadCursorFromFile, user32, 'LoadCursorFromFile' + AWSuffix);
  16932. asm
  16933. MOV ESP, EBP
  16934. POP EBP
  16935. JMP [_LoadCursorFromFile]
  16936. end;
  16937. end;
  16938. var
  16939. _CreateCursor: Pointer;
  16940. function CreateCursor;
  16941. begin
  16942. GetProcedureAddress(_CreateCursor, user32, 'CreateCursor');
  16943. asm
  16944. MOV ESP, EBP
  16945. POP EBP
  16946. JMP [_CreateCursor]
  16947. end;
  16948. end;
  16949. var
  16950. _DestroyCursor: Pointer;
  16951. function DestroyCursor;
  16952. begin
  16953. GetProcedureAddress(_DestroyCursor, user32, 'DestroyCursor');
  16954. asm
  16955. MOV ESP, EBP
  16956. POP EBP
  16957. JMP [_DestroyCursor]
  16958. end;
  16959. end;
  16960. var
  16961. _SetSystemCursor: Pointer;
  16962. function SetSystemCursor;
  16963. begin
  16964. GetProcedureAddress(_SetSystemCursor, user32, 'SetSystemCursor');
  16965. asm
  16966. MOV ESP, EBP
  16967. POP EBP
  16968. JMP [_SetSystemCursor]
  16969. end;
  16970. end;
  16971. var
  16972. _LoadIconA: Pointer;
  16973. function LoadIconA;
  16974. begin
  16975. GetProcedureAddress(_LoadIconA, user32, 'LoadIconA');
  16976. asm
  16977. MOV ESP, EBP
  16978. POP EBP
  16979. JMP [_LoadIconA]
  16980. end;
  16981. end;
  16982. var
  16983. _LoadIconW: Pointer;
  16984. function LoadIconW;
  16985. begin
  16986. GetProcedureAddress(_LoadIconW, user32, 'LoadIconW');
  16987. asm
  16988. MOV ESP, EBP
  16989. POP EBP
  16990. JMP [_LoadIconW]
  16991. end;
  16992. end;
  16993. var
  16994. _LoadIcon: Pointer;
  16995. function LoadIcon;
  16996. begin
  16997. GetProcedureAddress(_LoadIcon, user32, 'LoadIcon' + AWSuffix);
  16998. asm
  16999. MOV ESP, EBP
  17000. POP EBP
  17001. JMP [_LoadIcon]
  17002. end;
  17003. end;
  17004. var
  17005. _PrivateExtractIconsA: Pointer;
  17006. function PrivateExtractIconsA;
  17007. begin
  17008. GetProcedureAddress(_PrivateExtractIconsA, user32, 'PrivateExtractIconsA');
  17009. asm
  17010. MOV ESP, EBP
  17011. POP EBP
  17012. JMP [_PrivateExtractIconsA]
  17013. end;
  17014. end;
  17015. var
  17016. _PrivateExtractIconsW: Pointer;
  17017. function PrivateExtractIconsW;
  17018. begin
  17019. GetProcedureAddress(_PrivateExtractIconsW, user32, 'PrivateExtractIconsW');
  17020. asm
  17021. MOV ESP, EBP
  17022. POP EBP
  17023. JMP [_PrivateExtractIconsW]
  17024. end;
  17025. end;
  17026. var
  17027. _PrivateExtractIcons: Pointer;
  17028. function PrivateExtractIcons;
  17029. begin
  17030. GetProcedureAddress(_PrivateExtractIcons, user32, 'PrivateExtractIcons' + AWSuffix);
  17031. asm
  17032. MOV ESP, EBP
  17033. POP EBP
  17034. JMP [_PrivateExtractIcons]
  17035. end;
  17036. end;
  17037. var
  17038. _CreateIcon: Pointer;
  17039. function CreateIcon;
  17040. begin
  17041. GetProcedureAddress(_CreateIcon, user32, 'CreateIcon');
  17042. asm
  17043. MOV ESP, EBP
  17044. POP EBP
  17045. JMP [_CreateIcon]
  17046. end;
  17047. end;
  17048. var
  17049. _DestroyIcon: Pointer;
  17050. function DestroyIcon;
  17051. begin
  17052. GetProcedureAddress(_DestroyIcon, user32, 'DestroyIcon');
  17053. asm
  17054. MOV ESP, EBP
  17055. POP EBP
  17056. JMP [_DestroyIcon]
  17057. end;
  17058. end;
  17059. var
  17060. _LookupIconIdFromDirectory: Pointer;
  17061. function LookupIconIdFromDirectory;
  17062. begin
  17063. GetProcedureAddress(_LookupIconIdFromDirectory, user32, 'LookupIconIdFromDirectory');
  17064. asm
  17065. MOV ESP, EBP
  17066. POP EBP
  17067. JMP [_LookupIconIdFromDirectory]
  17068. end;
  17069. end;
  17070. var
  17071. _LookupIconIdFromDirectoryEx: Pointer;
  17072. function LookupIconIdFromDirectoryEx;
  17073. begin
  17074. GetProcedureAddress(_LookupIconIdFromDirectoryEx, user32, 'LookupIconIdFromDirectoryEx');
  17075. asm
  17076. MOV ESP, EBP
  17077. POP EBP
  17078. JMP [_LookupIconIdFromDirectoryEx]
  17079. end;
  17080. end;
  17081. var
  17082. _CreateIconFromResource: Pointer;
  17083. function CreateIconFromResource;
  17084. begin
  17085. GetProcedureAddress(_CreateIconFromResource, user32, 'CreateIconFromResource');
  17086. asm
  17087. MOV ESP, EBP
  17088. POP EBP
  17089. JMP [_CreateIconFromResource]
  17090. end;
  17091. end;
  17092. var
  17093. _CreateIconFromResourceEx: Pointer;
  17094. function CreateIconFromResourceEx;
  17095. begin
  17096. GetProcedureAddress(_CreateIconFromResourceEx, user32, 'CreateIconFromResourceEx');
  17097. asm
  17098. MOV ESP, EBP
  17099. POP EBP
  17100. JMP [_CreateIconFromResourceEx]
  17101. end;
  17102. end;
  17103. var
  17104. _LoadImageA: Pointer;
  17105. function LoadImageA;
  17106. begin
  17107. GetProcedureAddress(_LoadImageA, user32, 'LoadImageA');
  17108. asm
  17109. MOV ESP, EBP
  17110. POP EBP
  17111. JMP [_LoadImageA]
  17112. end;
  17113. end;
  17114. var
  17115. _LoadImageW: Pointer;
  17116. function LoadImageW;
  17117. begin
  17118. GetProcedureAddress(_LoadImageW, user32, 'LoadImageW');
  17119. asm
  17120. MOV ESP, EBP
  17121. POP EBP
  17122. JMP [_LoadImageW]
  17123. end;
  17124. end;
  17125. var
  17126. _LoadImage: Pointer;
  17127. function LoadImage;
  17128. begin
  17129. GetProcedureAddress(_LoadImage, user32, 'LoadImage' + AWSuffix);
  17130. asm
  17131. MOV ESP, EBP
  17132. POP EBP
  17133. JMP [_LoadImage]
  17134. end;
  17135. end;
  17136. var
  17137. _CopyImage: Pointer;
  17138. function CopyImage;
  17139. begin
  17140. GetProcedureAddress(_CopyImage, user32, 'CopyImage');
  17141. asm
  17142. MOV ESP, EBP
  17143. POP EBP
  17144. JMP [_CopyImage]
  17145. end;
  17146. end;
  17147. var
  17148. _DrawIconEx: Pointer;
  17149. function DrawIconEx;
  17150. begin
  17151. GetProcedureAddress(_DrawIconEx, user32, 'DrawIconEx');
  17152. asm
  17153. MOV ESP, EBP
  17154. POP EBP
  17155. JMP [_DrawIconEx]
  17156. end;
  17157. end;
  17158. var
  17159. _CreateIconIndirect: Pointer;
  17160. function CreateIconIndirect;
  17161. begin
  17162. GetProcedureAddress(_CreateIconIndirect, user32, 'CreateIconIndirect');
  17163. asm
  17164. MOV ESP, EBP
  17165. POP EBP
  17166. JMP [_CreateIconIndirect]
  17167. end;
  17168. end;
  17169. var
  17170. _CopyIcon: Pointer;
  17171. function CopyIcon;
  17172. begin
  17173. GetProcedureAddress(_CopyIcon, user32, 'CopyIcon');
  17174. asm
  17175. MOV ESP, EBP
  17176. POP EBP
  17177. JMP [_CopyIcon]
  17178. end;
  17179. end;
  17180. var
  17181. _GetIconInfo: Pointer;
  17182. function GetIconInfo;
  17183. begin
  17184. GetProcedureAddress(_GetIconInfo, user32, 'GetIconInfo');
  17185. asm
  17186. MOV ESP, EBP
  17187. POP EBP
  17188. JMP [_GetIconInfo]
  17189. end;
  17190. end;
  17191. var
  17192. _LoadStringA: Pointer;
  17193. function LoadStringA;
  17194. begin
  17195. GetProcedureAddress(_LoadStringA, user32, 'LoadStringA');
  17196. asm
  17197. MOV ESP, EBP
  17198. POP EBP
  17199. JMP [_LoadStringA]
  17200. end;
  17201. end;
  17202. var
  17203. _LoadStringW: Pointer;
  17204. function LoadStringW;
  17205. begin
  17206. GetProcedureAddress(_LoadStringW, user32, 'LoadStringW');
  17207. asm
  17208. MOV ESP, EBP
  17209. POP EBP
  17210. JMP [_LoadStringW]
  17211. end;
  17212. end;
  17213. var
  17214. _LoadString: Pointer;
  17215. function LoadString;
  17216. begin
  17217. GetProcedureAddress(_LoadString, user32, 'LoadString' + AWSuffix);
  17218. asm
  17219. MOV ESP, EBP
  17220. POP EBP
  17221. JMP [_LoadString]
  17222. end;
  17223. end;
  17224. var
  17225. _IsDialogMessageA: Pointer;
  17226. function IsDialogMessageA;
  17227. begin
  17228. GetProcedureAddress(_IsDialogMessageA, user32, 'IsDialogMessageA');
  17229. asm
  17230. MOV ESP, EBP
  17231. POP EBP
  17232. JMP [_IsDialogMessageA]
  17233. end;
  17234. end;
  17235. var
  17236. _IsDialogMessageW: Pointer;
  17237. function IsDialogMessageW;
  17238. begin
  17239. GetProcedureAddress(_IsDialogMessageW, user32, 'IsDialogMessageW');
  17240. asm
  17241. MOV ESP, EBP
  17242. POP EBP
  17243. JMP [_IsDialogMessageW]
  17244. end;
  17245. end;
  17246. var
  17247. _IsDialogMessage: Pointer;
  17248. function IsDialogMessage;
  17249. begin
  17250. GetProcedureAddress(_IsDialogMessage, user32, 'IsDialogMessage' + AWSuffix);
  17251. asm
  17252. MOV ESP, EBP
  17253. POP EBP
  17254. JMP [_IsDialogMessage]
  17255. end;
  17256. end;
  17257. var
  17258. _MapDialogRect: Pointer;
  17259. function MapDialogRect;
  17260. begin
  17261. GetProcedureAddress(_MapDialogRect, user32, 'MapDialogRect');
  17262. asm
  17263. MOV ESP, EBP
  17264. POP EBP
  17265. JMP [_MapDialogRect]
  17266. end;
  17267. end;
  17268. var
  17269. _DlgDirListA: Pointer;
  17270. function DlgDirListA;
  17271. begin
  17272. GetProcedureAddress(_DlgDirListA, user32, 'DlgDirListA');
  17273. asm
  17274. MOV ESP, EBP
  17275. POP EBP
  17276. JMP [_DlgDirListA]
  17277. end;
  17278. end;
  17279. var
  17280. _DlgDirListW: Pointer;
  17281. function DlgDirListW;
  17282. begin
  17283. GetProcedureAddress(_DlgDirListW, user32, 'DlgDirListW');
  17284. asm
  17285. MOV ESP, EBP
  17286. POP EBP
  17287. JMP [_DlgDirListW]
  17288. end;
  17289. end;
  17290. var
  17291. _DlgDirList: Pointer;
  17292. function DlgDirList;
  17293. begin
  17294. GetProcedureAddress(_DlgDirList, user32, 'DlgDirList' + AWSuffix);
  17295. asm
  17296. MOV ESP, EBP
  17297. POP EBP
  17298. JMP [_DlgDirList]
  17299. end;
  17300. end;
  17301. var
  17302. _DlgDirSelectExA: Pointer;
  17303. function DlgDirSelectExA;
  17304. begin
  17305. GetProcedureAddress(_DlgDirSelectExA, user32, 'DlgDirSelectExA');
  17306. asm
  17307. MOV ESP, EBP
  17308. POP EBP
  17309. JMP [_DlgDirSelectExA]
  17310. end;
  17311. end;
  17312. var
  17313. _DlgDirSelectExW: Pointer;
  17314. function DlgDirSelectExW;
  17315. begin
  17316. GetProcedureAddress(_DlgDirSelectExW, user32, 'DlgDirSelectExW');
  17317. asm
  17318. MOV ESP, EBP
  17319. POP EBP
  17320. JMP [_DlgDirSelectExW]
  17321. end;
  17322. end;
  17323. var
  17324. _DlgDirSelectEx: Pointer;
  17325. function DlgDirSelectEx;
  17326. begin
  17327. GetProcedureAddress(_DlgDirSelectEx, user32, 'DlgDirSelectEx' + AWSuffix);
  17328. asm
  17329. MOV ESP, EBP
  17330. POP EBP
  17331. JMP [_DlgDirSelectEx]
  17332. end;
  17333. end;
  17334. var
  17335. _DlgDirListComboBoxA: Pointer;
  17336. function DlgDirListComboBoxA;
  17337. begin
  17338. GetProcedureAddress(_DlgDirListComboBoxA, user32, 'DlgDirListComboBoxA');
  17339. asm
  17340. MOV ESP, EBP
  17341. POP EBP
  17342. JMP [_DlgDirListComboBoxA]
  17343. end;
  17344. end;
  17345. var
  17346. _DlgDirListComboBoxW: Pointer;
  17347. function DlgDirListComboBoxW;
  17348. begin
  17349. GetProcedureAddress(_DlgDirListComboBoxW, user32, 'DlgDirListComboBoxW');
  17350. asm
  17351. MOV ESP, EBP
  17352. POP EBP
  17353. JMP [_DlgDirListComboBoxW]
  17354. end;
  17355. end;
  17356. var
  17357. _DlgDirListComboBox: Pointer;
  17358. function DlgDirListComboBox;
  17359. begin
  17360. GetProcedureAddress(_DlgDirListComboBox, user32, 'DlgDirListComboBox' + AWSuffix);
  17361. asm
  17362. MOV ESP, EBP
  17363. POP EBP
  17364. JMP [_DlgDirListComboBox]
  17365. end;
  17366. end;
  17367. var
  17368. _DlgDirSelectComboBoxExA: Pointer;
  17369. function DlgDirSelectComboBoxExA;
  17370. begin
  17371. GetProcedureAddress(_DlgDirSelectComboBoxExA, user32, 'DlgDirSelectComboBoxExA');
  17372. asm
  17373. MOV ESP, EBP
  17374. POP EBP
  17375. JMP [_DlgDirSelectComboBoxExA]
  17376. end;
  17377. end;
  17378. var
  17379. _DlgDirSelectComboBoxExW: Pointer;
  17380. function DlgDirSelectComboBoxExW;
  17381. begin
  17382. GetProcedureAddress(_DlgDirSelectComboBoxExW, user32, 'DlgDirSelectComboBoxExW');
  17383. asm
  17384. MOV ESP, EBP
  17385. POP EBP
  17386. JMP [_DlgDirSelectComboBoxExW]
  17387. end;
  17388. end;
  17389. var
  17390. _DlgDirSelectComboBoxEx: Pointer;
  17391. function DlgDirSelectComboBoxEx;
  17392. begin
  17393. GetProcedureAddress(_DlgDirSelectComboBoxEx, user32, 'DlgDirSelectComboBoxEx' + AWSuffix);
  17394. asm
  17395. MOV ESP, EBP
  17396. POP EBP
  17397. JMP [_DlgDirSelectComboBoxEx]
  17398. end;
  17399. end;
  17400. var
  17401. _SetScrollInfo: Pointer;
  17402. function SetScrollInfo;
  17403. begin
  17404. GetProcedureAddress(_SetScrollInfo, user32, 'SetScrollInfo');
  17405. asm
  17406. MOV ESP, EBP
  17407. POP EBP
  17408. JMP [_SetScrollInfo]
  17409. end;
  17410. end;
  17411. var
  17412. _GetScrollInfo: Pointer;
  17413. function GetScrollInfo;
  17414. begin
  17415. GetProcedureAddress(_GetScrollInfo, user32, 'GetScrollInfo');
  17416. asm
  17417. MOV ESP, EBP
  17418. POP EBP
  17419. JMP [_GetScrollInfo]
  17420. end;
  17421. end;
  17422. var
  17423. _DefFrameProcA: Pointer;
  17424. function DefFrameProcA;
  17425. begin
  17426. GetProcedureAddress(_DefFrameProcA, user32, 'DefFrameProcA');
  17427. asm
  17428. MOV ESP, EBP
  17429. POP EBP
  17430. JMP [_DefFrameProcA]
  17431. end;
  17432. end;
  17433. var
  17434. _DefFrameProcW: Pointer;
  17435. function DefFrameProcW;
  17436. begin
  17437. GetProcedureAddress(_DefFrameProcW, user32, 'DefFrameProcW');
  17438. asm
  17439. MOV ESP, EBP
  17440. POP EBP
  17441. JMP [_DefFrameProcW]
  17442. end;
  17443. end;
  17444. var
  17445. _DefFrameProc: Pointer;
  17446. function DefFrameProc;
  17447. begin
  17448. GetProcedureAddress(_DefFrameProc, user32, 'DefFrameProc' + AWSuffix);
  17449. asm
  17450. MOV ESP, EBP
  17451. POP EBP
  17452. JMP [_DefFrameProc]
  17453. end;
  17454. end;
  17455. var
  17456. _DefMDIChildProcA: Pointer;
  17457. function DefMDIChildProcA;
  17458. begin
  17459. GetProcedureAddress(_DefMDIChildProcA, user32, 'DefMDIChildProcA');
  17460. asm
  17461. MOV ESP, EBP
  17462. POP EBP
  17463. JMP [_DefMDIChildProcA]
  17464. end;
  17465. end;
  17466. var
  17467. _DefMDIChildProcW: Pointer;
  17468. function DefMDIChildProcW;
  17469. begin
  17470. GetProcedureAddress(_DefMDIChildProcW, user32, 'DefMDIChildProcW');
  17471. asm
  17472. MOV ESP, EBP
  17473. POP EBP
  17474. JMP [_DefMDIChildProcW]
  17475. end;
  17476. end;
  17477. var
  17478. _DefMDIChildProc: Pointer;
  17479. function DefMDIChildProc;
  17480. begin
  17481. GetProcedureAddress(_DefMDIChildProc, user32, 'DefMDIChildProc' + AWSuffix);
  17482. asm
  17483. MOV ESP, EBP
  17484. POP EBP
  17485. JMP [_DefMDIChildProc]
  17486. end;
  17487. end;
  17488. var
  17489. _TranslateMDISysAccel: Pointer;
  17490. function TranslateMDISysAccel;
  17491. begin
  17492. GetProcedureAddress(_TranslateMDISysAccel, user32, 'TranslateMDISysAccel');
  17493. asm
  17494. MOV ESP, EBP
  17495. POP EBP
  17496. JMP [_TranslateMDISysAccel]
  17497. end;
  17498. end;
  17499. var
  17500. _ArrangeIconicWindows: Pointer;
  17501. function ArrangeIconicWindows;
  17502. begin
  17503. GetProcedureAddress(_ArrangeIconicWindows, user32, 'ArrangeIconicWindows');
  17504. asm
  17505. MOV ESP, EBP
  17506. POP EBP
  17507. JMP [_ArrangeIconicWindows]
  17508. end;
  17509. end;
  17510. var
  17511. _CreateMDIWindowA: Pointer;
  17512. function CreateMDIWindowA;
  17513. begin
  17514. GetProcedureAddress(_CreateMDIWindowA, user32, 'CreateMDIWindowA');
  17515. asm
  17516. MOV ESP, EBP
  17517. POP EBP
  17518. JMP [_CreateMDIWindowA]
  17519. end;
  17520. end;
  17521. var
  17522. _CreateMDIWindowW: Pointer;
  17523. function CreateMDIWindowW;
  17524. begin
  17525. GetProcedureAddress(_CreateMDIWindowW, user32, 'CreateMDIWindowW');
  17526. asm
  17527. MOV ESP, EBP
  17528. POP EBP
  17529. JMP [_CreateMDIWindowW]
  17530. end;
  17531. end;
  17532. var
  17533. _CreateMDIWindow: Pointer;
  17534. function CreateMDIWindow;
  17535. begin
  17536. GetProcedureAddress(_CreateMDIWindow, user32, 'CreateMDIWindow' + AWSuffix);
  17537. asm
  17538. MOV ESP, EBP
  17539. POP EBP
  17540. JMP [_CreateMDIWindow]
  17541. end;
  17542. end;
  17543. var
  17544. _TileWindows: Pointer;
  17545. function TileWindows;
  17546. begin
  17547. GetProcedureAddress(_TileWindows, user32, 'TileWindows');
  17548. asm
  17549. MOV ESP, EBP
  17550. POP EBP
  17551. JMP [_TileWindows]
  17552. end;
  17553. end;
  17554. var
  17555. _CascadeWindows: Pointer;
  17556. function CascadeWindows;
  17557. begin
  17558. GetProcedureAddress(_CascadeWindows, user32, 'CascadeWindows');
  17559. asm
  17560. MOV ESP, EBP
  17561. POP EBP
  17562. JMP [_CascadeWindows]
  17563. end;
  17564. end;
  17565. var
  17566. _WinHelpA: Pointer;
  17567. function WinHelpA;
  17568. begin
  17569. GetProcedureAddress(_WinHelpA, user32, 'WinHelpA');
  17570. asm
  17571. MOV ESP, EBP
  17572. POP EBP
  17573. JMP [_WinHelpA]
  17574. end;
  17575. end;
  17576. var
  17577. _WinHelpW: Pointer;
  17578. function WinHelpW;
  17579. begin
  17580. GetProcedureAddress(_WinHelpW, user32, 'WinHelpW');
  17581. asm
  17582. MOV ESP, EBP
  17583. POP EBP
  17584. JMP [_WinHelpW]
  17585. end;
  17586. end;
  17587. var
  17588. _WinHelp: Pointer;
  17589. function WinHelp;
  17590. begin
  17591. GetProcedureAddress(_WinHelp, user32, 'WinHelp' + AWSuffix);
  17592. asm
  17593. MOV ESP, EBP
  17594. POP EBP
  17595. JMP [_WinHelp]
  17596. end;
  17597. end;
  17598. var
  17599. _GetGuiResources: Pointer;
  17600. function GetGuiResources;
  17601. begin
  17602. GetProcedureAddress(_GetGuiResources, user32, 'GetGuiResources');
  17603. asm
  17604. MOV ESP, EBP
  17605. POP EBP
  17606. JMP [_GetGuiResources]
  17607. end;
  17608. end;
  17609. var
  17610. _ChangeDisplaySettingsA: Pointer;
  17611. function ChangeDisplaySettingsA;
  17612. begin
  17613. GetProcedureAddress(_ChangeDisplaySettingsA, user32, 'ChangeDisplaySettingsA');
  17614. asm
  17615. MOV ESP, EBP
  17616. POP EBP
  17617. JMP [_ChangeDisplaySettingsA]
  17618. end;
  17619. end;
  17620. var
  17621. _ChangeDisplaySettingsW: Pointer;
  17622. function ChangeDisplaySettingsW;
  17623. begin
  17624. GetProcedureAddress(_ChangeDisplaySettingsW, user32, 'ChangeDisplaySettingsW');
  17625. asm
  17626. MOV ESP, EBP
  17627. POP EBP
  17628. JMP [_ChangeDisplaySettingsW]
  17629. end;
  17630. end;
  17631. var
  17632. _ChangeDisplaySettings: Pointer;
  17633. function ChangeDisplaySettings;
  17634. begin
  17635. GetProcedureAddress(_ChangeDisplaySettings, user32, 'ChangeDisplaySettings' + AWSuffix);
  17636. asm
  17637. MOV ESP, EBP
  17638. POP EBP
  17639. JMP [_ChangeDisplaySettings]
  17640. end;
  17641. end;
  17642. var
  17643. _ChangeDisplaySettingsExA: Pointer;
  17644. function ChangeDisplaySettingsExA;
  17645. begin
  17646. GetProcedureAddress(_ChangeDisplaySettingsExA, user32, 'ChangeDisplaySettingsExA');
  17647. asm
  17648. MOV ESP, EBP
  17649. POP EBP
  17650. JMP [_ChangeDisplaySettingsExA]
  17651. end;
  17652. end;
  17653. var
  17654. _ChangeDisplaySettingsExW: Pointer;
  17655. function ChangeDisplaySettingsExW;
  17656. begin
  17657. GetProcedureAddress(_ChangeDisplaySettingsExW, user32, 'ChangeDisplaySettingsExW');
  17658. asm
  17659. MOV ESP, EBP
  17660. POP EBP
  17661. JMP [_ChangeDisplaySettingsExW]
  17662. end;
  17663. end;
  17664. var
  17665. _ChangeDisplaySettingsEx: Pointer;
  17666. function ChangeDisplaySettingsEx;
  17667. begin
  17668. GetProcedureAddress(_ChangeDisplaySettingsEx, user32, 'ChangeDisplaySettingsEx' + AWSuffix);
  17669. asm
  17670. MOV ESP, EBP
  17671. POP EBP
  17672. JMP [_ChangeDisplaySettingsEx]
  17673. end;
  17674. end;
  17675. var
  17676. _EnumDisplaySettingsA: Pointer;
  17677. function EnumDisplaySettingsA;
  17678. begin
  17679. GetProcedureAddress(_EnumDisplaySettingsA, user32, 'EnumDisplaySettingsA');
  17680. asm
  17681. MOV ESP, EBP
  17682. POP EBP
  17683. JMP [_EnumDisplaySettingsA]
  17684. end;
  17685. end;
  17686. var
  17687. _EnumDisplaySettingsW: Pointer;
  17688. function EnumDisplaySettingsW;
  17689. begin
  17690. GetProcedureAddress(_EnumDisplaySettingsW, user32, 'EnumDisplaySettingsW');
  17691. asm
  17692. MOV ESP, EBP
  17693. POP EBP
  17694. JMP [_EnumDisplaySettingsW]
  17695. end;
  17696. end;
  17697. var
  17698. _EnumDisplaySettings: Pointer;
  17699. function EnumDisplaySettings;
  17700. begin
  17701. GetProcedureAddress(_EnumDisplaySettings, user32, 'EnumDisplaySettings' + AWSuffix);
  17702. asm
  17703. MOV ESP, EBP
  17704. POP EBP
  17705. JMP [_EnumDisplaySettings]
  17706. end;
  17707. end;
  17708. var
  17709. _EnumDisplaySettingsExA: Pointer;
  17710. function EnumDisplaySettingsExA;
  17711. begin
  17712. GetProcedureAddress(_EnumDisplaySettingsExA, user32, 'EnumDisplaySettingsExA');
  17713. asm
  17714. MOV ESP, EBP
  17715. POP EBP
  17716. JMP [_EnumDisplaySettingsExA]
  17717. end;
  17718. end;
  17719. var
  17720. _EnumDisplaySettingsExW: Pointer;
  17721. function EnumDisplaySettingsExW;
  17722. begin
  17723. GetProcedureAddress(_EnumDisplaySettingsExW, user32, 'EnumDisplaySettingsExW');
  17724. asm
  17725. MOV ESP, EBP
  17726. POP EBP
  17727. JMP [_EnumDisplaySettingsExW]
  17728. end;
  17729. end;
  17730. var
  17731. _EnumDisplaySettingsEx: Pointer;
  17732. function EnumDisplaySettingsEx;
  17733. begin
  17734. GetProcedureAddress(_EnumDisplaySettingsEx, user32, 'EnumDisplaySettingsEx' + AWSuffix);
  17735. asm
  17736. MOV ESP, EBP
  17737. POP EBP
  17738. JMP [_EnumDisplaySettingsEx]
  17739. end;
  17740. end;
  17741. var
  17742. _EnumDisplayDevicesA: Pointer;
  17743. function EnumDisplayDevicesA;
  17744. begin
  17745. GetProcedureAddress(_EnumDisplayDevicesA, user32, 'EnumDisplayDevicesA');
  17746. asm
  17747. MOV ESP, EBP
  17748. POP EBP
  17749. JMP [_EnumDisplayDevicesA]
  17750. end;
  17751. end;
  17752. var
  17753. _EnumDisplayDevicesW: Pointer;
  17754. function EnumDisplayDevicesW;
  17755. begin
  17756. GetProcedureAddress(_EnumDisplayDevicesW, user32, 'EnumDisplayDevicesW');
  17757. asm
  17758. MOV ESP, EBP
  17759. POP EBP
  17760. JMP [_EnumDisplayDevicesW]
  17761. end;
  17762. end;
  17763. var
  17764. _EnumDisplayDevices: Pointer;
  17765. function EnumDisplayDevices;
  17766. begin
  17767. GetProcedureAddress(_EnumDisplayDevices, user32, 'EnumDisplayDevices' + AWSuffix);
  17768. asm
  17769. MOV ESP, EBP
  17770. POP EBP
  17771. JMP [_EnumDisplayDevices]
  17772. end;
  17773. end;
  17774. var
  17775. _SystemParametersInfoA: Pointer;
  17776. function SystemParametersInfoA;
  17777. begin
  17778. GetProcedureAddress(_SystemParametersInfoA, user32, 'SystemParametersInfoA');
  17779. asm
  17780. MOV ESP, EBP
  17781. POP EBP
  17782. JMP [_SystemParametersInfoA]
  17783. end;
  17784. end;
  17785. var
  17786. _SystemParametersInfoW: Pointer;
  17787. function SystemParametersInfoW;
  17788. begin
  17789. GetProcedureAddress(_SystemParametersInfoW, user32, 'SystemParametersInfoW');
  17790. asm
  17791. MOV ESP, EBP
  17792. POP EBP
  17793. JMP [_SystemParametersInfoW]
  17794. end;
  17795. end;
  17796. var
  17797. _SystemParametersInfo: Pointer;
  17798. function SystemParametersInfo;
  17799. begin
  17800. GetProcedureAddress(_SystemParametersInfo, user32, 'SystemParametersInfo' + AWSuffix);
  17801. asm
  17802. MOV ESP, EBP
  17803. POP EBP
  17804. JMP [_SystemParametersInfo]
  17805. end;
  17806. end;
  17807. var
  17808. _SetDebugErrorLevel: Pointer;
  17809. procedure SetDebugErrorLevel;
  17810. begin
  17811. GetProcedureAddress(_SetDebugErrorLevel, user32, 'SetDebugErrorLevel');
  17812. asm
  17813. MOV ESP, EBP
  17814. POP EBP
  17815. JMP [_SetDebugErrorLevel]
  17816. end;
  17817. end;
  17818. var
  17819. _SetLastErrorEx: Pointer;
  17820. procedure SetLastErrorEx;
  17821. begin
  17822. GetProcedureAddress(_SetLastErrorEx, user32, 'SetLastErrorEx');
  17823. asm
  17824. MOV ESP, EBP
  17825. POP EBP
  17826. JMP [_SetLastErrorEx]
  17827. end;
  17828. end;
  17829. var
  17830. _InternalGetWindowText: Pointer;
  17831. function InternalGetWindowText;
  17832. begin
  17833. GetProcedureAddress(_InternalGetWindowText, user32, 'InternalGetWindowText');
  17834. asm
  17835. MOV ESP, EBP
  17836. POP EBP
  17837. JMP [_InternalGetWindowText]
  17838. end;
  17839. end;
  17840. var
  17841. _EndTask: Pointer;
  17842. function EndTask;
  17843. begin
  17844. GetProcedureAddress(_EndTask, user32, 'EndTask');
  17845. asm
  17846. MOV ESP, EBP
  17847. POP EBP
  17848. JMP [_EndTask]
  17849. end;
  17850. end;
  17851. var
  17852. _MonitorFromPoint: Pointer;
  17853. function MonitorFromPoint;
  17854. begin
  17855. GetProcedureAddress(_MonitorFromPoint, user32, 'MonitorFromPoint');
  17856. asm
  17857. MOV ESP, EBP
  17858. POP EBP
  17859. JMP [_MonitorFromPoint]
  17860. end;
  17861. end;
  17862. var
  17863. _MonitorFromRect: Pointer;
  17864. function MonitorFromRect;
  17865. begin
  17866. GetProcedureAddress(_MonitorFromRect, user32, 'MonitorFromRect');
  17867. asm
  17868. MOV ESP, EBP
  17869. POP EBP
  17870. JMP [_MonitorFromRect]
  17871. end;
  17872. end;
  17873. var
  17874. _MonitorFromWindow: Pointer;
  17875. function MonitorFromWindow;
  17876. begin
  17877. GetProcedureAddress(_MonitorFromWindow, user32, 'MonitorFromWindow');
  17878. asm
  17879. MOV ESP, EBP
  17880. POP EBP
  17881. JMP [_MonitorFromWindow]
  17882. end;
  17883. end;
  17884. var
  17885. _GetMonitorInfoA: Pointer;
  17886. function GetMonitorInfoA;
  17887. begin
  17888. GetProcedureAddress(_GetMonitorInfoA, user32, 'GetMonitorInfoA');
  17889. asm
  17890. MOV ESP, EBP
  17891. POP EBP
  17892. JMP [_GetMonitorInfoA]
  17893. end;
  17894. end;
  17895. var
  17896. _GetMonitorInfoW: Pointer;
  17897. function GetMonitorInfoW;
  17898. begin
  17899. GetProcedureAddress(_GetMonitorInfoW, user32, 'GetMonitorInfoW');
  17900. asm
  17901. MOV ESP, EBP
  17902. POP EBP
  17903. JMP [_GetMonitorInfoW]
  17904. end;
  17905. end;
  17906. var
  17907. _GetMonitorInfo: Pointer;
  17908. function GetMonitorInfo;
  17909. begin
  17910. GetProcedureAddress(_GetMonitorInfo, user32, 'GetMonitorInfo' + AWSuffix);
  17911. asm
  17912. MOV ESP, EBP
  17913. POP EBP
  17914. JMP [_GetMonitorInfo]
  17915. end;
  17916. end;
  17917. var
  17918. _EnumDisplayMonitors: Pointer;
  17919. function EnumDisplayMonitors;
  17920. begin
  17921. GetProcedureAddress(_EnumDisplayMonitors, user32, 'EnumDisplayMonitors');
  17922. asm
  17923. MOV ESP, EBP
  17924. POP EBP
  17925. JMP [_EnumDisplayMonitors]
  17926. end;
  17927. end;
  17928. var
  17929. _NotifyWinEvent: Pointer;
  17930. procedure NotifyWinEvent;
  17931. begin
  17932. GetProcedureAddress(_NotifyWinEvent, user32, 'NotifyWinEvent');
  17933. asm
  17934. MOV ESP, EBP
  17935. POP EBP
  17936. JMP [_NotifyWinEvent]
  17937. end;
  17938. end;
  17939. var
  17940. _SetWinEventHook: Pointer;
  17941. function SetWinEventHook;
  17942. begin
  17943. GetProcedureAddress(_SetWinEventHook, user32, 'SetWinEventHook');
  17944. asm
  17945. MOV ESP, EBP
  17946. POP EBP
  17947. JMP [_SetWinEventHook]
  17948. end;
  17949. end;
  17950. var
  17951. _IsWinEventHookInstalled: Pointer;
  17952. function IsWinEventHookInstalled;
  17953. begin
  17954. GetProcedureAddress(_IsWinEventHookInstalled, user32, 'IsWinEventHookInstalled');
  17955. asm
  17956. MOV ESP, EBP
  17957. POP EBP
  17958. JMP [_IsWinEventHookInstalled]
  17959. end;
  17960. end;
  17961. var
  17962. _UnhookWinEvent: Pointer;
  17963. function UnhookWinEvent;
  17964. begin
  17965. GetProcedureAddress(_UnhookWinEvent, user32, 'UnhookWinEvent');
  17966. asm
  17967. MOV ESP, EBP
  17968. POP EBP
  17969. JMP [_UnhookWinEvent]
  17970. end;
  17971. end;
  17972. var
  17973. _GetGUIThreadInfo: Pointer;
  17974. function GetGUIThreadInfo;
  17975. begin
  17976. GetProcedureAddress(_GetGUIThreadInfo, user32, 'GetGUIThreadInfo');
  17977. asm
  17978. MOV ESP, EBP
  17979. POP EBP
  17980. JMP [_GetGUIThreadInfo]
  17981. end;
  17982. end;
  17983. var
  17984. _GetWindowModuleFileNameA: Pointer;
  17985. function GetWindowModuleFileNameA;
  17986. begin
  17987. GetProcedureAddress(_GetWindowModuleFileNameA, user32, 'GetWindowModuleFileNameA');
  17988. asm
  17989. MOV ESP, EBP
  17990. POP EBP
  17991. JMP [_GetWindowModuleFileNameA]
  17992. end;
  17993. end;
  17994. var
  17995. _GetWindowModuleFileNameW: Pointer;
  17996. function GetWindowModuleFileNameW;
  17997. begin
  17998. GetProcedureAddress(_GetWindowModuleFileNameW, user32, 'GetWindowModuleFileNameW');
  17999. asm
  18000. MOV ESP, EBP
  18001. POP EBP
  18002. JMP [_GetWindowModuleFileNameW]
  18003. end;
  18004. end;
  18005. var
  18006. _GetWindowModuleFileName: Pointer;
  18007. function GetWindowModuleFileName;
  18008. begin
  18009. GetProcedureAddress(_GetWindowModuleFileName, user32, 'GetWindowModuleFileName' + AWSuffix);
  18010. asm
  18011. MOV ESP, EBP
  18012. POP EBP
  18013. JMP [_GetWindowModuleFileName]
  18014. end;
  18015. end;
  18016. var
  18017. _GetCursorInfo: Pointer;
  18018. function GetCursorInfo;
  18019. begin
  18020. GetProcedureAddress(_GetCursorInfo, user32, 'GetCursorInfo');
  18021. asm
  18022. MOV ESP, EBP
  18023. POP EBP
  18024. JMP [_GetCursorInfo]
  18025. end;
  18026. end;
  18027. var
  18028. _GetWindowInfo: Pointer;
  18029. function GetWindowInfo;
  18030. begin
  18031. GetProcedureAddress(_GetWindowInfo, user32, 'GetWindowInfo');
  18032. asm
  18033. MOV ESP, EBP
  18034. POP EBP
  18035. JMP [_GetWindowInfo]
  18036. end;
  18037. end;
  18038. var
  18039. _GetTitleBarInfo: Pointer;
  18040. function GetTitleBarInfo;
  18041. begin
  18042. GetProcedureAddress(_GetTitleBarInfo, user32, 'GetTitleBarInfo');
  18043. asm
  18044. MOV ESP, EBP
  18045. POP EBP
  18046. JMP [_GetTitleBarInfo]
  18047. end;
  18048. end;
  18049. var
  18050. _GetMenuBarInfo: Pointer;
  18051. function GetMenuBarInfo;
  18052. begin
  18053. GetProcedureAddress(_GetMenuBarInfo, user32, 'GetMenuBarInfo');
  18054. asm
  18055. MOV ESP, EBP
  18056. POP EBP
  18057. JMP [_GetMenuBarInfo]
  18058. end;
  18059. end;
  18060. var
  18061. _GetScrollBarInfo: Pointer;
  18062. function GetScrollBarInfo;
  18063. begin
  18064. GetProcedureAddress(_GetScrollBarInfo, user32, 'GetScrollBarInfo');
  18065. asm
  18066. MOV ESP, EBP
  18067. POP EBP
  18068. JMP [_GetScrollBarInfo]
  18069. end;
  18070. end;
  18071. var
  18072. _GetComboBoxInfo: Pointer;
  18073. function GetComboBoxInfo;
  18074. begin
  18075. GetProcedureAddress(_GetComboBoxInfo, user32, 'GetComboBoxInfo');
  18076. asm
  18077. MOV ESP, EBP
  18078. POP EBP
  18079. JMP [_GetComboBoxInfo]
  18080. end;
  18081. end;
  18082. var
  18083. _GetAncestor: Pointer;
  18084. function GetAncestor;
  18085. begin
  18086. GetProcedureAddress(_GetAncestor, user32, 'GetAncestor');
  18087. asm
  18088. MOV ESP, EBP
  18089. POP EBP
  18090. JMP [_GetAncestor]
  18091. end;
  18092. end;
  18093. var
  18094. _RealChildWindowFromPoint: Pointer;
  18095. function RealChildWindowFromPoint;
  18096. begin
  18097. GetProcedureAddress(_RealChildWindowFromPoint, user32, 'RealChildWindowFromPoint');
  18098. asm
  18099. MOV ESP, EBP
  18100. POP EBP
  18101. JMP [_RealChildWindowFromPoint]
  18102. end;
  18103. end;
  18104. var
  18105. _RealGetWindowClassA: Pointer;
  18106. function RealGetWindowClassA;
  18107. begin
  18108. GetProcedureAddress(_RealGetWindowClassA, user32, 'RealGetWindowClassA');
  18109. asm
  18110. MOV ESP, EBP
  18111. POP EBP
  18112. JMP [_RealGetWindowClassA]
  18113. end;
  18114. end;
  18115. var
  18116. _RealGetWindowClassW: Pointer;
  18117. function RealGetWindowClassW;
  18118. begin
  18119. GetProcedureAddress(_RealGetWindowClassW, user32, 'RealGetWindowClassW');
  18120. asm
  18121. MOV ESP, EBP
  18122. POP EBP
  18123. JMP [_RealGetWindowClassW]
  18124. end;
  18125. end;
  18126. var
  18127. _RealGetWindowClass: Pointer;
  18128. function RealGetWindowClass;
  18129. begin
  18130. GetProcedureAddress(_RealGetWindowClass, user32, 'RealGetWindowClass' + AWSuffix);
  18131. asm
  18132. MOV ESP, EBP
  18133. POP EBP
  18134. JMP [_RealGetWindowClass]
  18135. end;
  18136. end;
  18137. var
  18138. _GetAltTabInfoA: Pointer;
  18139. function GetAltTabInfoA;
  18140. begin
  18141. GetProcedureAddress(_GetAltTabInfoA, user32, 'GetAltTabInfoA');
  18142. asm
  18143. MOV ESP, EBP
  18144. POP EBP
  18145. JMP [_GetAltTabInfoA]
  18146. end;
  18147. end;
  18148. var
  18149. _GetAltTabInfoW: Pointer;
  18150. function GetAltTabInfoW;
  18151. begin
  18152. GetProcedureAddress(_GetAltTabInfoW, user32, 'GetAltTabInfoW');
  18153. asm
  18154. MOV ESP, EBP
  18155. POP EBP
  18156. JMP [_GetAltTabInfoW]
  18157. end;
  18158. end;
  18159. var
  18160. _GetAltTabInfo: Pointer;
  18161. function GetAltTabInfo;
  18162. begin
  18163. GetProcedureAddress(_GetAltTabInfo, user32, 'GetAltTabInfo' + AWSuffix);
  18164. asm
  18165. MOV ESP, EBP
  18166. POP EBP
  18167. JMP [_GetAltTabInfo]
  18168. end;
  18169. end;
  18170. var
  18171. _GetListBoxInfo: Pointer;
  18172. function GetListBoxInfo;
  18173. begin
  18174. GetProcedureAddress(_GetListBoxInfo, user32, 'GetListBoxInfo');
  18175. asm
  18176. MOV ESP, EBP
  18177. POP EBP
  18178. JMP [_GetListBoxInfo]
  18179. end;
  18180. end;
  18181. var
  18182. _LockWorkStation: Pointer;
  18183. function LockWorkStation;
  18184. begin
  18185. GetProcedureAddress(_LockWorkStation, user32, 'LockWorkStation');
  18186. asm
  18187. MOV ESP, EBP
  18188. POP EBP
  18189. JMP [_LockWorkStation]
  18190. end;
  18191. end;
  18192. var
  18193. _UserHandleGrantAccess: Pointer;
  18194. function UserHandleGrantAccess;
  18195. begin
  18196. GetProcedureAddress(_UserHandleGrantAccess, user32, 'UserHandleGrantAccess');
  18197. asm
  18198. MOV ESP, EBP
  18199. POP EBP
  18200. JMP [_UserHandleGrantAccess]
  18201. end;
  18202. end;
  18203. var
  18204. _GetRawInputData: Pointer;
  18205. function GetRawInputData;
  18206. begin
  18207. GetProcedureAddress(_GetRawInputData, user32, 'GetRawInputData');
  18208. asm
  18209. MOV ESP, EBP
  18210. POP EBP
  18211. JMP [_GetRawInputData]
  18212. end;
  18213. end;
  18214. var
  18215. _GetRawInputDeviceInfoA: Pointer;
  18216. function GetRawInputDeviceInfoA;
  18217. begin
  18218. GetProcedureAddress(_GetRawInputDeviceInfoA, user32, 'GetRawInputDeviceInfoA');
  18219. asm
  18220. MOV ESP, EBP
  18221. POP EBP
  18222. JMP [_GetRawInputDeviceInfoA]
  18223. end;
  18224. end;
  18225. var
  18226. _GetRawInputDeviceInfoW: Pointer;
  18227. function GetRawInputDeviceInfoW;
  18228. begin
  18229. GetProcedureAddress(_GetRawInputDeviceInfoW, user32, 'GetRawInputDeviceInfoW');
  18230. asm
  18231. MOV ESP, EBP
  18232. POP EBP
  18233. JMP [_GetRawInputDeviceInfoW]
  18234. end;
  18235. end;
  18236. var
  18237. _GetRawInputDeviceInfo: Pointer;
  18238. function GetRawInputDeviceInfo;
  18239. begin
  18240. GetProcedureAddress(_GetRawInputDeviceInfo, user32, 'GetRawInputDeviceInfo' + AWSuffix);
  18241. asm
  18242. MOV ESP, EBP
  18243. POP EBP
  18244. JMP [_GetRawInputDeviceInfo]
  18245. end;
  18246. end;
  18247. var
  18248. _GetRawInputBuffer: Pointer;
  18249. function GetRawInputBuffer;
  18250. begin
  18251. GetProcedureAddress(_GetRawInputBuffer, user32, 'GetRawInputBuffer');
  18252. asm
  18253. MOV ESP, EBP
  18254. POP EBP
  18255. JMP [_GetRawInputBuffer]
  18256. end;
  18257. end;
  18258. var
  18259. _RegisterRawInputDevices: Pointer;
  18260. function RegisterRawInputDevices;
  18261. begin
  18262. GetProcedureAddress(_RegisterRawInputDevices, user32, 'RegisterRawInputDevices');
  18263. asm
  18264. MOV ESP, EBP
  18265. POP EBP
  18266. JMP [_RegisterRawInputDevices]
  18267. end;
  18268. end;
  18269. var
  18270. _GetRegisteredRawInputDevices: Pointer;
  18271. function GetRegisteredRawInputDevices;
  18272. begin
  18273. GetProcedureAddress(_GetRegisteredRawInputDevices, user32, 'GetRegisteredRawInputDevices');
  18274. asm
  18275. MOV ESP, EBP
  18276. POP EBP
  18277. JMP [_GetRegisteredRawInputDevices]
  18278. end;
  18279. end;
  18280. var
  18281. _GetRawInputDeviceList: Pointer;
  18282. function GetRawInputDeviceList;
  18283. begin
  18284. GetProcedureAddress(_GetRawInputDeviceList, user32, 'GetRawInputDeviceList');
  18285. asm
  18286. MOV ESP, EBP
  18287. POP EBP
  18288. JMP [_GetRawInputDeviceList]
  18289. end;
  18290. end;
  18291. var
  18292. _DefRawInputProc: Pointer;
  18293. function DefRawInputProc;
  18294. begin
  18295. GetProcedureAddress(_DefRawInputProc, user32, 'DefRawInputProc');
  18296. asm
  18297. MOV ESP, EBP
  18298. POP EBP
  18299. JMP [_DefRawInputProc]
  18300. end;
  18301. end;
  18302. {$ELSE}
  18303. function IsHungAppWindow; external user32 name 'IsHungAppWindow';
  18304. procedure DisableProcessWindowsGhosting; external user32 name 'DisableProcessWindowsGhosting';
  18305. function wvsprintfA; external user32 name 'wvsprintfA';
  18306. function wvsprintfW; external user32 name 'wvsprintfW';
  18307. function wvsprintf; external user32 name 'wvsprintf' + AWSuffix;
  18308. function wsprintfA; external user32 name 'wsprintfA';
  18309. function wsprintfW; external user32 name 'wsprintfW';
  18310. function wsprintf; external user32 name 'wsprintf' + AWSuffix;
  18311. function LoadKeyboardLayoutA; external user32 name 'LoadKeyboardLayoutA';
  18312. function LoadKeyboardLayoutW; external user32 name 'LoadKeyboardLayoutW';
  18313. function LoadKeyboardLayout; external user32 name 'LoadKeyboardLayout' + AWSuffix;
  18314. function ActivateKeyboardLayout; external user32 name 'ActivateKeyboardLayout';
  18315. function ToUnicodeEx; external user32 name 'ToUnicodeEx';
  18316. function UnloadKeyboardLayout; external user32 name 'UnloadKeyboardLayout';
  18317. function GetKeyboardLayoutNameA; external user32 name 'GetKeyboardLayoutNameA';
  18318. function GetKeyboardLayoutNameW; external user32 name 'GetKeyboardLayoutNameW';
  18319. function GetKeyboardLayoutName; external user32 name 'GetKeyboardLayoutName' + AWSuffix;
  18320. function GetKeyboardLayoutList; external user32 name 'GetKeyboardLayoutList';
  18321. function GetKeyboardLayout; external user32 name 'GetKeyboardLayout';
  18322. function GetMouseMovePointsEx; external user32 name 'GetMouseMovePointsEx';
  18323. function CreateDesktopA; external user32 name 'CreateDesktopA';
  18324. function CreateDesktopW; external user32 name 'CreateDesktopW';
  18325. function CreateDesktop; external user32 name 'CreateDesktop' + AWSuffix;
  18326. function OpenDesktopA; external user32 name 'OpenDesktopA';
  18327. function OpenDesktopW; external user32 name 'OpenDesktopW';
  18328. function OpenDesktop; external user32 name 'OpenDesktop' + AWSuffix;
  18329. function OpenInputDesktop; external user32 name 'OpenInputDesktop';
  18330. function EnumDesktopsA; external user32 name 'EnumDesktopsA';
  18331. function EnumDesktopsW; external user32 name 'EnumDesktopsW';
  18332. function EnumDesktops; external user32 name 'EnumDesktops' + AWSuffix;
  18333. function EnumDesktopWindows; external user32 name 'EnumDesktopWindows';
  18334. function SwitchDesktop; external user32 name 'SwitchDesktop';
  18335. function SetThreadDesktop; external user32 name 'SetThreadDesktop';
  18336. function CloseDesktop; external user32 name 'CloseDesktop';
  18337. function GetThreadDesktop; external user32 name 'GetThreadDesktop';
  18338. function CreateWindowStationA; external user32 name 'CreateWindowStationA';
  18339. function CreateWindowStationW; external user32 name 'CreateWindowStationW';
  18340. function CreateWindowStation; external user32 name 'CreateWindowStation' + AWSuffix;
  18341. function OpenWindowStationA; external user32 name 'OpenWindowStationA';
  18342. function OpenWindowStationW; external user32 name 'OpenWindowStationW';
  18343. function OpenWindowStation; external user32 name 'OpenWindowStation' + AWSuffix;
  18344. function EnumWindowStationsA; external user32 name 'EnumWindowStationsA';
  18345. function EnumWindowStationsW; external user32 name 'EnumWindowStationsW';
  18346. function EnumWindowStations; external user32 name 'EnumWindowStations' + AWSuffix;
  18347. function CloseWindowStation; external user32 name 'CloseWindowStation';
  18348. function SetProcessWindowStation; external user32 name 'SetProcessWindowStation';
  18349. function GetProcessWindowStation; external user32 name 'GetProcessWindowStation';
  18350. function SetUserObjectSecurity; external user32 name 'SetUserObjectSecurity';
  18351. function GetUserObjectSecurity; external user32 name 'GetUserObjectSecurity';
  18352. function GetUserObjectInformationA; external user32 name 'GetUserObjectInformationA';
  18353. function GetUserObjectInformationW; external user32 name 'GetUserObjectInformationW';
  18354. function GetUserObjectInformation; external user32 name 'GetUserObjectInformation' + AWSuffix;
  18355. function SetUserObjectInformationA; external user32 name 'SetUserObjectInformationA';
  18356. function SetUserObjectInformationW; external user32 name 'SetUserObjectInformationW';
  18357. function SetUserObjectInformation; external user32 name 'SetUserObjectInformation' + AWSuffix;
  18358. function RegisterWindowMessageA; external user32 name 'RegisterWindowMessageA';
  18359. function RegisterWindowMessageW; external user32 name 'RegisterWindowMessageW';
  18360. function RegisterWindowMessage; external user32 name 'RegisterWindowMessage' + AWSuffix;
  18361. function TrackMouseEvent; external user32 name 'TrackMouseEvent';
  18362. function DrawEdge; external user32 name 'DrawEdge';
  18363. function DrawFrameControl; external user32 name 'DrawFrameControl';
  18364. function DrawCaption; external user32 name 'DrawCaption';
  18365. function DrawAnimatedRects; external user32 name 'DrawAnimatedRects';
  18366. function GetMessageA; external user32 name 'GetMessageA';
  18367. function GetMessageW; external user32 name 'GetMessageW';
  18368. function GetMessage; external user32 name 'GetMessage' + AWSuffix;
  18369. function TranslateMessage; external user32 name 'TranslateMessage';
  18370. function DispatchMessageA; external user32 name 'DispatchMessageA';
  18371. function DispatchMessageW; external user32 name 'DispatchMessageW';
  18372. function DispatchMessage; external user32 name 'DispatchMessage' + AWSuffix;
  18373. function SetMessageQueue; external user32 name 'SetMessageQueue';
  18374. function PeekMessageA; external user32 name 'PeekMessageA';
  18375. function PeekMessageW; external user32 name 'PeekMessageW';
  18376. function PeekMessage; external user32 name 'PeekMessage' + AWSuffix;
  18377. function RegisterHotKey; external user32 name 'RegisterHotKey';
  18378. function UnregisterHotKey; external user32 name 'UnregisterHotKey';
  18379. function ExitWindowsEx; external user32 name 'ExitWindowsEx';
  18380. function SwapMouseButton; external user32 name 'SwapMouseButton';
  18381. function GetMessagePos; external user32 name 'GetMessagePos';
  18382. function GetMessageTime; external user32 name 'GetMessageTime';
  18383. function GetMessageExtraInfo; external user32 name 'GetMessageExtraInfo';
  18384. function SetMessageExtraInfo; external user32 name 'SetMessageExtraInfo';
  18385. function SendMessageA; external user32 name 'SendMessageA';
  18386. function SendMessageW; external user32 name 'SendMessageW';
  18387. function SendMessage; external user32 name 'SendMessage' + AWSuffix;
  18388. function SendMessageTimeoutA; external user32 name 'SendMessageTimeoutA';
  18389. function SendMessageTimeoutW; external user32 name 'SendMessageTimeoutW';
  18390. function SendMessageTimeout; external user32 name 'SendMessageTimeout' + AWSuffix;
  18391. function SendNotifyMessageA; external user32 name 'SendNotifyMessageA';
  18392. function SendNotifyMessageW; external user32 name 'SendNotifyMessageW';
  18393. function SendNotifyMessage; external user32 name 'SendNotifyMessage' + AWSuffix;
  18394. function SendMessageCallbackA; external user32 name 'SendMessageCallbackA';
  18395. function SendMessageCallbackW; external user32 name 'SendMessageCallbackW';
  18396. function SendMessageCallback; external user32 name 'SendMessageCallback' + AWSuffix;
  18397. function BroadcastSystemMessageExA; external user32 name 'BroadcastSystemMessageExA';
  18398. function BroadcastSystemMessageExW; external user32 name 'BroadcastSystemMessageExW';
  18399. function BroadcastSystemMessageEx; external user32 name 'BroadcastSystemMessageEx' + AWSuffix;
  18400. function BroadcastSystemMessageA; external user32 name 'BroadcastSystemMessageA';
  18401. function BroadcastSystemMessageW; external user32 name 'BroadcastSystemMessageW';
  18402. function BroadcastSystemMessage; external user32 name 'BroadcastSystemMessage' + AWSuffix;
  18403. function RegisterDeviceNotificationA; external user32 name 'RegisterDeviceNotificationA';
  18404. function RegisterDeviceNotificationW; external user32 name 'RegisterDeviceNotificationW';
  18405. function RegisterDeviceNotification; external user32 name 'RegisterDeviceNotification' + AWSuffix;
  18406. function UnregisterDeviceNotification; external user32 name 'UnregisterDeviceNotification';
  18407. function PostMessageA; external user32 name 'PostMessageA';
  18408. function PostMessageW; external user32 name 'PostMessageW';
  18409. function PostMessage; external user32 name 'PostMessage' + AWSuffix;
  18410. function PostThreadMessageA; external user32 name 'PostThreadMessageA';
  18411. function PostThreadMessageW; external user32 name 'PostThreadMessageW';
  18412. function PostThreadMessage; external user32 name 'PostThreadMessage' + AWSuffix;
  18413. function AttachThreadInput; external user32 name 'AttachThreadInput';
  18414. function ReplyMessage; external user32 name 'ReplyMessage';
  18415. function WaitMessage; external user32 name 'WaitMessage';
  18416. function WaitForInputIdle; external user32 name 'WaitForInputIdle';
  18417. function DefWindowProcA; external user32 name 'DefWindowProcA';
  18418. function DefWindowProcW; external user32 name 'DefWindowProcW';
  18419. function DefWindowProc; external user32 name 'DefWindowProc' + AWSuffix;
  18420. procedure PostQuitMessage; external user32 name 'PostQuitMessage';
  18421. function CallWindowProcA; external user32 name 'CallWindowProcA';
  18422. function CallWindowProcW; external user32 name 'CallWindowProcW';
  18423. function CallWindowProc; external user32 name 'CallWindowProc' + AWSuffix;
  18424. function InSendMessage; external user32 name 'InSendMessage';
  18425. function InSendMessageEx; external user32 name 'InSendMessageEx';
  18426. function GetDoubleClickTime; external user32 name 'GetDoubleClickTime';
  18427. function SetDoubleClickTime; external user32 name 'SetDoubleClickTime';
  18428. function RegisterClassA; external user32 name 'RegisterClassA';
  18429. function RegisterClassW; external user32 name 'RegisterClassW';
  18430. function RegisterClass; external user32 name 'RegisterClass' + AWSuffix;
  18431. function UnregisterClassA; external user32 name 'UnregisterClassA';
  18432. function UnregisterClassW; external user32 name 'UnregisterClassW';
  18433. function UnregisterClass; external user32 name 'UnregisterClass' + AWSuffix;
  18434. function GetClassInfoA; external user32 name 'GetClassInfoA';
  18435. function GetClassInfoW; external user32 name 'GetClassInfoW';
  18436. function GetClassInfo; external user32 name 'GetClassInfo' + AWSuffix;
  18437. function RegisterClassExA; external user32 name 'RegisterClassExA';
  18438. function RegisterClassExW; external user32 name 'RegisterClassExW';
  18439. function RegisterClassEx; external user32 name 'RegisterClassEx' + AWSuffix;
  18440. function GetClassInfoExA; external user32 name 'GetClassInfoExA';
  18441. function GetClassInfoExW; external user32 name 'GetClassInfoExW';
  18442. function GetClassInfoEx; external user32 name 'GetClassInfoEx' + AWSuffix;
  18443. function CreateWindowExA; external user32 name 'CreateWindowExA';
  18444. function CreateWindowExW; external user32 name 'CreateWindowExW';
  18445. function CreateWindowEx; external user32 name 'CreateWindowEx' + AWSuffix;
  18446. function IsWindow; external user32 name 'IsWindow';
  18447. function IsMenu; external user32 name 'IsMenu';
  18448. function IsChild; external user32 name 'IsChild';
  18449. function DestroyWindow; external user32 name 'DestroyWindow';
  18450. function ShowWindow; external user32 name 'ShowWindow';
  18451. function AnimateWindow; external user32 name 'AnimateWindow';
  18452. function UpdateLayeredWindow; external user32 name 'UpdateLayeredWindow';
  18453. function GetLayeredWindowAttributes; external user32 name 'GetLayeredWindowAttributes';
  18454. function PrintWindow; external user32 name 'PrintWindow';
  18455. function SetLayeredWindowAttributes; external user32 name 'SetLayeredWindowAttributes';
  18456. function ShowWindowAsync; external user32 name 'ShowWindowAsync';
  18457. function FlashWindow; external user32 name 'FlashWindow';
  18458. function FlashWindowEx; external user32 name 'FlashWindowEx';
  18459. function ShowOwnedPopups; external user32 name 'ShowOwnedPopups';
  18460. function OpenIcon; external user32 name 'OpenIcon';
  18461. function CloseWindow; external user32 name 'CloseWindow';
  18462. function MoveWindow; external user32 name 'MoveWindow';
  18463. function SetWindowPos; external user32 name 'SetWindowPos';
  18464. function GetWindowPlacement; external user32 name 'GetWindowPlacement';
  18465. function SetWindowPlacement; external user32 name 'SetWindowPlacement';
  18466. function BeginDeferWindowPos; external user32 name 'BeginDeferWindowPos';
  18467. function DeferWindowPos; external user32 name 'DeferWindowPos';
  18468. function EndDeferWindowPos; external user32 name 'EndDeferWindowPos';
  18469. function IsWindowVisible; external user32 name 'IsWindowVisible';
  18470. function IsIconic; external user32 name 'IsIconic';
  18471. function AnyPopup; external user32 name 'AnyPopup';
  18472. function BringWindowToTop; external user32 name 'BringWindowToTop';
  18473. function IsZoomed; external user32 name 'IsZoomed';
  18474. function CreateDialogParamA; external user32 name 'CreateDialogParamA';
  18475. function CreateDialogParamW; external user32 name 'CreateDialogParamW';
  18476. function CreateDialogParam; external user32 name 'CreateDialogParam' + AWSuffix;
  18477. function CreateDialogIndirectParamA; external user32 name 'CreateDialogIndirectParamA';
  18478. function CreateDialogIndirectParamW; external user32 name 'CreateDialogIndirectParamW';
  18479. function CreateDialogIndirectParam; external user32 name 'CreateDialogIndirectParam' + AWSuffix;
  18480. function DialogBoxParamA; external user32 name 'DialogBoxParamA';
  18481. function DialogBoxParamW; external user32 name 'DialogBoxParamW';
  18482. function DialogBoxParam; external user32 name 'DialogBoxParam' + AWSuffix;
  18483. function DialogBoxIndirectParamA; external user32 name 'DialogBoxIndirectParamA';
  18484. function DialogBoxIndirectParamW; external user32 name 'DialogBoxIndirectParamW';
  18485. function DialogBoxIndirectParam; external user32 name 'DialogBoxIndirectParam' + AWSuffix;
  18486. function EndDialog; external user32 name 'EndDialog';
  18487. function GetDlgItem; external user32 name 'GetDlgItem';
  18488. function SetDlgItemInt; external user32 name 'SetDlgItemInt';
  18489. function GetDlgItemInt; external user32 name 'GetDlgItemInt';
  18490. function SetDlgItemTextA; external user32 name 'SetDlgItemTextA';
  18491. function SetDlgItemTextW; external user32 name 'SetDlgItemTextW';
  18492. function SetDlgItemText; external user32 name 'SetDlgItemText' + AWSuffix;
  18493. function GetDlgItemTextA; external user32 name 'GetDlgItemTextA';
  18494. function GetDlgItemTextW; external user32 name 'GetDlgItemTextW';
  18495. function GetDlgItemText; external user32 name 'GetDlgItemText' + AWSuffix;
  18496. function CheckDlgButton; external user32 name 'CheckDlgButton';
  18497. function CheckRadioButton; external user32 name 'CheckRadioButton';
  18498. function IsDlgButtonChecked; external user32 name 'IsDlgButtonChecked';
  18499. function SendDlgItemMessageA; external user32 name 'SendDlgItemMessageA';
  18500. function SendDlgItemMessageW; external user32 name 'SendDlgItemMessageW';
  18501. function SendDlgItemMessage; external user32 name 'SendDlgItemMessage' + AWSuffix;
  18502. function GetNextDlgGroupItem; external user32 name 'GetNextDlgGroupItem';
  18503. function GetNextDlgTabItem; external user32 name 'GetNextDlgTabItem';
  18504. function GetDlgCtrlID; external user32 name 'GetDlgCtrlID';
  18505. function GetDialogBaseUnits; external user32 name 'GetDialogBaseUnits';
  18506. function DefDlgProcA; external user32 name 'DefDlgProcA';
  18507. function DefDlgProcW; external user32 name 'DefDlgProcW';
  18508. function DefDlgProc; external user32 name 'DefDlgProc' + AWSuffix;
  18509. function CallMsgFilterA; external user32 name 'CallMsgFilterA';
  18510. function CallMsgFilterW; external user32 name 'CallMsgFilterW';
  18511. function CallMsgFilter; external user32 name 'CallMsgFilter' + AWSuffix;
  18512. function OpenClipboard; external user32 name 'OpenClipboard';
  18513. function CloseClipboard; external user32 name 'CloseClipboard';
  18514. function GetClipboardSequenceNumber; external user32 name 'GetClipboardSequenceNumber';
  18515. function GetClipboardOwner; external user32 name 'GetClipboardOwner';
  18516. function SetClipboardViewer; external user32 name 'SetClipboardViewer';
  18517. function GetClipboardViewer; external user32 name 'GetClipboardViewer';
  18518. function ChangeClipboardChain; external user32 name 'ChangeClipboardChain';
  18519. function SetClipboardData; external user32 name 'SetClipboardData';
  18520. function GetClipboardData; external user32 name 'GetClipboardData';
  18521. function RegisterClipboardFormatA; external user32 name 'RegisterClipboardFormatA';
  18522. function RegisterClipboardFormatW; external user32 name 'RegisterClipboardFormatW';
  18523. function RegisterClipboardFormat; external user32 name 'RegisterClipboardFormat' + AWSuffix;
  18524. function CountClipboardFormats; external user32 name 'CountClipboardFormats';
  18525. function EnumClipboardFormats; external user32 name 'EnumClipboardFormats';
  18526. function GetClipboardFormatNameA; external user32 name 'GetClipboardFormatNameA';
  18527. function GetClipboardFormatNameW; external user32 name 'GetClipboardFormatNameW';
  18528. function GetClipboardFormatName; external user32 name 'GetClipboardFormatName' + AWSuffix;
  18529. function EmptyClipboard; external user32 name 'EmptyClipboard';
  18530. function IsClipboardFormatAvailable; external user32 name 'IsClipboardFormatAvailable';
  18531. function GetPriorityClipboardFormat; external user32 name 'GetPriorityClipboardFormat';
  18532. function GetOpenClipboardWindow; external user32 name 'GetOpenClipboardWindow';
  18533. function CharToOemA; external user32 name 'CharToOemA';
  18534. function CharToOemW; external user32 name 'CharToOemW';
  18535. function CharToOem; external user32 name 'CharToOem' + AWSuffix;
  18536. function OemToCharA; external user32 name 'OemToCharA';
  18537. function OemToCharW; external user32 name 'OemToCharW';
  18538. function OemToChar; external user32 name 'OemToChar' + AWSuffix;
  18539. function CharToOemBuffA; external user32 name 'CharToOemBuffA';
  18540. function CharToOemBuffW; external user32 name 'CharToOemBuffW';
  18541. function CharToOemBuff; external user32 name 'CharToOemBuff' + AWSuffix;
  18542. function OemToCharBuffA; external user32 name 'OemToCharBuffA';
  18543. function OemToCharBuffW; external user32 name 'OemToCharBuffW';
  18544. function OemToCharBuff; external user32 name 'OemToCharBuff' + AWSuffix;
  18545. function CharUpperA; external user32 name 'CharUpperA';
  18546. function CharUpperW; external user32 name 'CharUpperW';
  18547. function CharUpper; external user32 name 'CharUpper' + AWSuffix;
  18548. function CharUpperBuffA; external user32 name 'CharUpperBuffA';
  18549. function CharUpperBuffW; external user32 name 'CharUpperBuffW';
  18550. function CharUpperBuff; external user32 name 'CharUpperBuff' + AWSuffix;
  18551. function CharLowerA; external user32 name 'CharLowerA';
  18552. function CharLowerW; external user32 name 'CharLowerW';
  18553. function CharLower; external user32 name 'CharLower' + AWSuffix;
  18554. function CharLowerBuffA; external user32 name 'CharLowerBuffA';
  18555. function CharLowerBuffW; external user32 name 'CharLowerBuffW';
  18556. function CharLowerBuff; external user32 name 'CharLowerBuff' + AWSuffix;
  18557. function CharNextA; external user32 name 'CharNextA';
  18558. function CharNextW; external user32 name 'CharNextW';
  18559. function CharNext; external user32 name 'CharNext' + AWSuffix;
  18560. function CharPrevA; external user32 name 'CharPrevA';
  18561. function CharPrevW; external user32 name 'CharPrevW';
  18562. function CharPrev; external user32 name 'CharPrev' + AWSuffix;
  18563. function CharNextExA; external user32 name 'CharNextExA';
  18564. function CharPrevExA; external user32 name 'CharPrevExA';
  18565. function IsCharAlphaA; external user32 name 'IsCharAlphaA';
  18566. function IsCharAlphaW; external user32 name 'IsCharAlphaW';
  18567. function IsCharAlpha; external user32 name 'IsCharAlpha' + AWSuffix;
  18568. function IsCharAlphaNumericA; external user32 name 'IsCharAlphaNumericA';
  18569. function IsCharAlphaNumericW; external user32 name 'IsCharAlphaNumericW';
  18570. function IsCharAlphaNumeric; external user32 name 'IsCharAlphaNumeric' + AWSuffix;
  18571. function IsCharUpperA; external user32 name 'IsCharUpperA';
  18572. function IsCharUpperW; external user32 name 'IsCharUpperW';
  18573. function IsCharUpper; external user32 name 'IsCharUpper' + AWSuffix;
  18574. function IsCharLowerA; external user32 name 'IsCharLowerA';
  18575. function IsCharLowerW; external user32 name 'IsCharLowerW';
  18576. function IsCharLower; external user32 name 'IsCharLower' + AWSuffix;
  18577. function SetFocus; external user32 name 'SetFocus';
  18578. function GetActiveWindow; external user32 name 'GetActiveWindow';
  18579. function GetFocus; external user32 name 'GetFocus';
  18580. function GetKBCodePage; external user32 name 'GetKBCodePage';
  18581. function GetKeyState; external user32 name 'GetKeyState';
  18582. function GetAsyncKeyState; external user32 name 'GetAsyncKeyState';
  18583. function GetKeyboardState; external user32 name 'GetKeyboardState';
  18584. function SetKeyboardState; external user32 name 'SetKeyboardState';
  18585. function GetKeyNameTextA; external user32 name 'GetKeyNameTextA';
  18586. function GetKeyNameTextW; external user32 name 'GetKeyNameTextW';
  18587. function GetKeyNameText; external user32 name 'GetKeyNameText' + AWSuffix;
  18588. function GetKeyboardType; external user32 name 'GetKeyboardType';
  18589. function ToAscii; external user32 name 'ToAscii';
  18590. function ToAsciiEx; external user32 name 'ToAsciiEx';
  18591. function ToUnicode; external user32 name 'ToUnicode';
  18592. function OemKeyScan; external user32 name 'OemKeyScan';
  18593. function VkKeyScanA; external user32 name 'VkKeyScanA';
  18594. function VkKeyScanW; external user32 name 'VkKeyScanW';
  18595. function VkKeyScan; external user32 name 'VkKeyScan' + AWSuffix;
  18596. function VkKeyScanExA; external user32 name 'VkKeyScanExA';
  18597. function VkKeyScanExW; external user32 name 'VkKeyScanExW';
  18598. function VkKeyScanEx; external user32 name 'VkKeyScanEx' + AWSuffix;
  18599. procedure keybd_event; external user32 name 'keybd_event';
  18600. procedure mouse_event; external user32 name 'mouse_event';
  18601. function SendInput; external user32 name 'SendInput';
  18602. function GetLastInputInfo; external user32 name 'GetLastInputInfo';
  18603. function MapVirtualKeyA; external user32 name 'MapVirtualKeyA';
  18604. function MapVirtualKeyW; external user32 name 'MapVirtualKeyW';
  18605. function MapVirtualKey; external user32 name 'MapVirtualKey' + AWSuffix;
  18606. function MapVirtualKeyExA; external user32 name 'MapVirtualKeyExA';
  18607. function MapVirtualKeyExW; external user32 name 'MapVirtualKeyExW';
  18608. function MapVirtualKeyEx; external user32 name 'MapVirtualKeyEx' + AWSuffix;
  18609. function GetInputState; external user32 name 'GetInputState';
  18610. function GetQueueStatus; external user32 name 'GetQueueStatus';
  18611. function GetCapture; external user32 name 'GetCapture';
  18612. function SetCapture; external user32 name 'SetCapture';
  18613. function ReleaseCapture; external user32 name 'ReleaseCapture';
  18614. function MsgWaitForMultipleObjects; external user32 name 'MsgWaitForMultipleObjects';
  18615. function MsgWaitForMultipleObjectsEx; external user32 name 'MsgWaitForMultipleObjectsEx';
  18616. function SetTimer; external user32 name 'SetTimer';
  18617. function KillTimer; external user32 name 'KillTimer';
  18618. function IsWindowUnicode; external user32 name 'IsWindowUnicode';
  18619. function EnableWindow; external user32 name 'EnableWindow';
  18620. function IsWindowEnabled; external user32 name 'IsWindowEnabled';
  18621. function LoadAcceleratorsA; external user32 name 'LoadAcceleratorsA';
  18622. function LoadAcceleratorsW; external user32 name 'LoadAcceleratorsW';
  18623. function LoadAccelerators; external user32 name 'LoadAccelerators' + AWSuffix;
  18624. function CreateAcceleratorTableA; external user32 name 'CreateAcceleratorTableA';
  18625. function CreateAcceleratorTableW; external user32 name 'CreateAcceleratorTableW';
  18626. function CreateAcceleratorTable; external user32 name 'CreateAcceleratorTable' + AWSuffix;
  18627. function DestroyAcceleratorTable; external user32 name 'DestroyAcceleratorTable';
  18628. function CopyAcceleratorTableA; external user32 name 'CopyAcceleratorTableA';
  18629. function CopyAcceleratorTableW; external user32 name 'CopyAcceleratorTableW';
  18630. function CopyAcceleratorTable; external user32 name 'CopyAcceleratorTable' + AWSuffix;
  18631. function TranslateAcceleratorA; external user32 name 'TranslateAcceleratorA';
  18632. function TranslateAcceleratorW; external user32 name 'TranslateAcceleratorW';
  18633. function TranslateAccelerator; external user32 name 'TranslateAccelerator' + AWSuffix;
  18634. function GetSystemMetrics; external user32 name 'GetSystemMetrics';
  18635. function LoadMenuA; external user32 name 'LoadMenuAA';
  18636. function LoadMenuW; external user32 name 'LoadMenuWA';
  18637. function LoadMenu; external user32 name 'LoadMenu' + AWSuffix;
  18638. function LoadMenuIndirectA; external user32 name 'LoadMenuIndirectA';
  18639. function LoadMenuIndirectW; external user32 name 'LoadMenuIndirectW';
  18640. function LoadMenuIndirect; external user32 name 'LoadMenuIndirect' + AWSuffix;
  18641. function GetMenu; external user32 name 'GetMenu';
  18642. function SetMenu; external user32 name 'SetMenu';
  18643. function ChangeMenuA; external user32 name 'ChangeMenuA';
  18644. function ChangeMenuW; external user32 name 'ChangeMenuW';
  18645. function ChangeMenu; external user32 name 'ChangeMenu' + AWSuffix;
  18646. function HiliteMenuItem; external user32 name 'HiliteMenuItem';
  18647. function GetMenuStringA; external user32 name 'GetMenuStringA';
  18648. function GetMenuStringW; external user32 name 'GetMenuStringW';
  18649. function GetMenuString; external user32 name 'GetMenuString' + AWSuffix;
  18650. function GetMenuState; external user32 name 'GetMenuState';
  18651. function DrawMenuBar; external user32 name 'DrawMenuBar';
  18652. function GetSystemMenu; external user32 name 'GetSystemMenu';
  18653. function CreateMenu; external user32 name 'CreateMenu';
  18654. function CreatePopupMenu; external user32 name 'CreatePopupMenu';
  18655. function DestroyMenu; external user32 name 'DestroyMenu';
  18656. function CheckMenuItem; external user32 name 'CheckMenuItem';
  18657. function EnableMenuItem; external user32 name 'EnableMenuItem';
  18658. function GetSubMenu; external user32 name 'GetSubMenu';
  18659. function GetMenuItemID; external user32 name 'GetMenuItemID';
  18660. function GetMenuItemCount; external user32 name 'GetMenuItemCount';
  18661. function InsertMenuA; external user32 name 'InsertMenuA';
  18662. function InsertMenuW; external user32 name 'InsertMenuW';
  18663. function InsertMenu; external user32 name 'InsertMenu' + AWSuffix;
  18664. function AppendMenuA; external user32 name 'AppendMenuA';
  18665. function AppendMenuW; external user32 name 'AppendMenuW';
  18666. function AppendMenu; external user32 name 'AppendMenu' + AWSuffix;
  18667. function ModifyMenuA; external user32 name 'ModifyMenuA';
  18668. function ModifyMenuW; external user32 name 'ModifyMenuW';
  18669. function ModifyMenu; external user32 name 'ModifyMenu' + AWSuffix;
  18670. function RemoveMenu; external user32 name 'RemoveMenu';
  18671. function DeleteMenu; external user32 name 'DeleteMenu';
  18672. function SetMenuItemBitmaps; external user32 name 'SetMenuItemBitmaps';
  18673. function GetMenuCheckMarkDimensions; external user32 name 'GetMenuCheckMarkDimensions';
  18674. function TrackPopupMenu; external user32 name 'TrackPopupMenu';
  18675. function TrackPopupMenuEx; external user32 name 'TrackPopupMenuEx';
  18676. function GetMenuInfo; external user32 name 'GetMenuInfo';
  18677. function SetMenuInfo; external user32 name 'SetMenuInfo';
  18678. function EndMenu; external user32 name 'EndMenu';
  18679. function InsertMenuItemA; external user32 name 'InsertMenuItemA';
  18680. function InsertMenuItemW; external user32 name 'InsertMenuItemW';
  18681. function InsertMenuItem; external user32 name 'InsertMenuItem' + AWSuffix;
  18682. function GetMenuItemInfoA; external user32 name 'GetMenuItemInfoA';
  18683. function GetMenuItemInfoW; external user32 name 'GetMenuItemInfoW';
  18684. function GetMenuItemInfo; external user32 name 'GetMenuItemInfo' + AWSuffix;
  18685. function SetMenuItemInfoA; external user32 name 'SetMenuItemInfoA';
  18686. function SetMenuItemInfoW; external user32 name 'SetMenuItemInfoW';
  18687. function SetMenuItemInfo; external user32 name 'SetMenuItemInfo' + AWSuffix;
  18688. function GetMenuDefaultItem; external user32 name 'GetMenuDefaultItem';
  18689. function SetMenuDefaultItem; external user32 name 'SetMenuDefaultItem';
  18690. function GetMenuItemRect; external user32 name 'GetMenuItemRect';
  18691. function MenuItemFromPoint; external user32 name 'MenuItemFromPoint';
  18692. function DragObject; external user32 name 'DragObject';
  18693. function DragDetect; external user32 name 'DragDetect';
  18694. function DrawIcon; external user32 name 'DrawIcon';
  18695. function DrawTextA; external user32 name 'DrawTextA';
  18696. function DrawTextW; external user32 name 'DrawTextW';
  18697. function DrawText; external user32 name 'DrawText' + AWSuffix;
  18698. function DrawTextExA; external user32 name 'DrawTextExA';
  18699. function DrawTextExW; external user32 name 'DrawTextExW';
  18700. function DrawTextEx; external user32 name 'DrawTextEx' + AWSuffix;
  18701. function GrayStringA; external user32 name 'GrayStringA';
  18702. function GrayStringW; external user32 name 'GrayStringW';
  18703. function GrayString; external user32 name 'GrayString' + AWSuffix;
  18704. function DrawStateA; external user32 name 'DrawStateA';
  18705. function DrawStateW; external user32 name 'DrawStateW';
  18706. function DrawState; external user32 name 'DrawState' + AWSuffix;
  18707. function TabbedTextOutA; external user32 name 'TabbedTextOutA';
  18708. function TabbedTextOutW; external user32 name 'TabbedTextOutW';
  18709. function TabbedTextOut; external user32 name 'TabbedTextOut' + AWSuffix;
  18710. function GetTabbedTextExtentA; external user32 name 'GetTabbedTextExtentA';
  18711. function GetTabbedTextExtentW; external user32 name 'GetTabbedTextExtentW';
  18712. function GetTabbedTextExtent; external user32 name 'GetTabbedTextExtent' + AWSuffix;
  18713. function UpdateWindow; external user32 name 'UpdateWindow';
  18714. function SetActiveWindow; external user32 name 'SetActiveWindow';
  18715. function GetForegroundWindow; external user32 name 'GetForegroundWindow';
  18716. function PaintDesktop; external user32 name 'PaintDesktop';
  18717. procedure SwitchToThisWindow; external user32 name 'SwitchToThisWindow';
  18718. function SetForegroundWindow; external user32 name 'SetForegroundWindow';
  18719. function AllowSetForegroundWindow; external user32 name 'AllowSetForegroundWindow';
  18720. function LockSetForegroundWindow; external user32 name 'LockSetForegroundWindow';
  18721. function WindowFromDC; external user32 name 'WindowFromDC';
  18722. function GetDC; external user32 name 'GetDC';
  18723. function GetDCEx; external user32 name 'GetDCEx';
  18724. function GetWindowDC; external user32 name 'GetWindowDC';
  18725. function ReleaseDC; external user32 name 'ReleaseDC';
  18726. function BeginPaint; external user32 name 'BeginPaint';
  18727. function EndPaint; external user32 name 'EndPaint';
  18728. function GetUpdateRect; external user32 name 'GetUpdateRect';
  18729. function GetUpdateRgn; external user32 name 'GetUpdateRgn';
  18730. function SetWindowRgn; external user32 name 'SetWindowRgn';
  18731. function GetWindowRgn; external user32 name 'GetWindowRgn';
  18732. function GetWindowRgnBox; external user32 name 'GetWindowRgnBox';
  18733. function ExcludeUpdateRgn; external user32 name 'ExcludeUpdateRgn';
  18734. function InvalidateRect; external user32 name 'InvalidateRect';
  18735. function ValidateRect; external user32 name 'ValidateRect';
  18736. function InvalidateRgn; external user32 name 'InvalidateRgn';
  18737. function ValidateRgn; external user32 name 'ValidateRgn';
  18738. function RedrawWindow; external user32 name 'RedrawWindow';
  18739. function LockWindowUpdate; external user32 name 'LockWindowUpdate';
  18740. function ScrollWindow; external user32 name 'ScrollWindow';
  18741. function ScrollDC; external user32 name 'ScrollDC';
  18742. function ScrollWindowEx; external user32 name 'ScrollWindowEx';
  18743. function SetScrollPos; external user32 name 'SetScrollPos';
  18744. function GetScrollPos; external user32 name 'GetScrollPos';
  18745. function SetScrollRange; external user32 name 'SetScrollRange';
  18746. function GetScrollRange; external user32 name 'GetScrollRange';
  18747. function ShowScrollBar; external user32 name 'ShowScrollBar';
  18748. function EnableScrollBar; external user32 name 'EnableScrollBar';
  18749. function SetPropA; external user32 name 'SetPropA';
  18750. function SetPropW; external user32 name 'SetPropW';
  18751. function SetProp; external user32 name 'SetProp' + AWSuffix;
  18752. function GetPropA; external user32 name 'GetPropA';
  18753. function GetPropW; external user32 name 'GetPropW';
  18754. function GetProp; external user32 name 'GetProp' + AWSuffix;
  18755. function RemovePropA; external user32 name 'RemovePropA';
  18756. function RemovePropW; external user32 name 'RemovePropW';
  18757. function RemoveProp; external user32 name 'RemoveProp' + AWSuffix;
  18758. function EnumPropsExA; external user32 name 'EnumPropsExA';
  18759. function EnumPropsExW; external user32 name 'EnumPropsExW';
  18760. function EnumPropsEx; external user32 name 'EnumPropsEx' + AWSuffix;
  18761. function EnumPropsA; external user32 name 'EnumPropsA';
  18762. function EnumPropsW; external user32 name 'EnumPropsW';
  18763. function EnumProps; external user32 name 'EnumProps' + AWSuffix;
  18764. function SetWindowTextA; external user32 name 'SetWindowTextA';
  18765. function SetWindowTextW; external user32 name 'SetWindowTextW';
  18766. function SetWindowText; external user32 name 'SetWindowText' + AWSuffix;
  18767. function GetWindowTextA; external user32 name 'GetWindowTextA';
  18768. function GetWindowTextW; external user32 name 'GetWindowTextW';
  18769. function GetWindowText; external user32 name 'GetWindowText' + AWSuffix;
  18770. function GetWindowTextLengthA; external user32 name 'GetWindowTextLengthA';
  18771. function GetWindowTextLengthW; external user32 name 'GetWindowTextLengthW';
  18772. function GetWindowTextLength; external user32 name 'GetWindowTextLength' + AWSuffix;
  18773. function GetClientRect; external user32 name 'GetClientRect';
  18774. function GetWindowRect; external user32 name 'GetWindowRect';
  18775. function AdjustWindowRect; external user32 name 'AdjustWindowRect';
  18776. function AdjustWindowRectEx; external user32 name 'AdjustWindowRectEx';
  18777. function SetWindowContextHelpId; external user32 name 'SetWindowContextHelpId';
  18778. function GetWindowContextHelpId; external user32 name 'GetWindowContextHelpId';
  18779. function SetMenuContextHelpId; external user32 name 'SetMenuContextHelpId';
  18780. function GetMenuContextHelpId; external user32 name 'GetMenuContextHelpId';
  18781. function MessageBoxA; external user32 name 'MessageBoxA';
  18782. function MessageBoxW; external user32 name 'MessageBoxW';
  18783. function MessageBox; external user32 name 'MessageBox' + AWSuffix;
  18784. function MessageBoxExA; external user32 name 'MessageBoxExA';
  18785. function MessageBoxExW; external user32 name 'MessageBoxExW';
  18786. function MessageBoxEx; external user32 name 'MessageBoxEx' + AWSuffix;
  18787. function MessageBoxIndirectA; external user32 name 'MessageBoxIndirectA';
  18788. function MessageBoxIndirectW; external user32 name 'MessageBoxIndirectW';
  18789. function MessageBoxIndirect; external user32 name 'MessageBoxIndirect' + AWSuffix;
  18790. function MessageBeep; external user32 name 'MessageBeep';
  18791. function ShowCursor; external user32 name 'ShowCursor';
  18792. function SetCursorPos; external user32 name 'SetCursorPos';
  18793. function SetCursor; external user32 name 'SetCursor';
  18794. function GetCursorPos; external user32 name 'GetCursorPos';
  18795. function ClipCursor; external user32 name 'ClipCursor';
  18796. function GetClipCursor; external user32 name 'GetClipCursor';
  18797. function GetCursor; external user32 name 'GetCursor';
  18798. function CreateCaret; external user32 name 'CreateCaret';
  18799. function GetCaretBlinkTime; external user32 name 'GetCaretBlinkTime';
  18800. function SetCaretBlinkTime; external user32 name 'SetCaretBlinkTime';
  18801. function DestroyCaret; external user32 name 'DestroyCaret';
  18802. function HideCaret; external user32 name 'HideCaret';
  18803. function ShowCaret; external user32 name 'ShowCaret';
  18804. function SetCaretPos; external user32 name 'SetCaretPos';
  18805. function GetCaretPos; external user32 name 'GetCaretPos';
  18806. function ClientToScreen; external user32 name 'ClientToScreen';
  18807. function ScreenToClient; external user32 name 'ScreenToClient';
  18808. function MapWindowPoints; external user32 name 'MapWindowPoints';
  18809. function WindowFromPoint; external user32 name 'WindowFromPoint';
  18810. function ChildWindowFromPoint; external user32 name 'ChildWindowFromPoint';
  18811. function ChildWindowFromPointEx; external user32 name 'ChildWindowFromPointEx';
  18812. function GetSysColor; external user32 name 'GetSysColor';
  18813. function GetSysColorBrush; external user32 name 'GetSysColorBrush';
  18814. function SetSysColors; external user32 name 'SetSysColors';
  18815. function DrawFocusRect; external user32 name 'DrawFocusRect';
  18816. function FillRect; external user32 name 'FillRect';
  18817. function FrameRect; external user32 name 'FrameRect';
  18818. function InvertRect; external user32 name 'InvertRect';
  18819. function SetRect; external user32 name 'SetRect';
  18820. function SetRectEmpty; external user32 name 'SetRectEmpty';
  18821. function CopyRect; external user32 name 'CopyRect';
  18822. function InflateRect; external user32 name 'InflateRect';
  18823. function IntersectRect; external user32 name 'IntersectRect';
  18824. function UnionRect; external user32 name 'UnionRect';
  18825. function SubtractRect; external user32 name 'SubtractRect';
  18826. function OffsetRect; external user32 name 'OffsetRect';
  18827. function IsRectEmpty; external user32 name 'IsRectEmpty';
  18828. function EqualRect; external user32 name 'EqualRect';
  18829. function PtInRect; external user32 name 'PtInRect';
  18830. function GetWindowWord; external user32 name 'GetWindowWord';
  18831. function SetWindowWord; external user32 name 'SetWindowWord';
  18832. function GetWindowLongA; external user32 name 'GetWindowLongA';
  18833. function GetWindowLongW; external user32 name 'GetWindowLongW';
  18834. function GetWindowLong; external user32 name 'GetWindowLong' + AWSuffix;
  18835. function SetWindowLongA; external user32 name 'SetWindowLongA';
  18836. function SetWindowLongW; external user32 name 'SetWindowLongW';
  18837. function SetWindowLong; external user32 name 'SetWindowLong' + AWSuffix;
  18838. function GetClassWord; external user32 name 'GetClassWord';
  18839. function SetClassWord; external user32 name 'SetClassWord';
  18840. function GetClassLongA; external user32 name 'GetClassLongA';
  18841. function GetClassLongW; external user32 name 'GetClassLongW';
  18842. function GetClassLong; external user32 name 'GetClassLong' + AWSuffix;
  18843. function SetClassLongA; external user32 name 'SetClassLongA';
  18844. function SetClassLongW; external user32 name 'SetClassLongW';
  18845. function SetClassLong; external user32 name 'SetClassLong' + AWSuffix;
  18846. function GetProcessDefaultLayout; external user32 name 'GetProcessDefaultLayout';
  18847. function SetProcessDefaultLayout; external user32 name 'SetProcessDefaultLayout';
  18848. function GetDesktopWindow; external user32 name 'GetDesktopWindow';
  18849. function GetParent; external user32 name 'GetParent';
  18850. function SetParent; external user32 name 'SetParent';
  18851. function EnumChildWindows; external user32 name 'EnumChildWindows';
  18852. function FindWindowA; external user32 name 'FindWindowA';
  18853. function FindWindowW; external user32 name 'FindWindowW';
  18854. function FindWindow; external user32 name 'FindWindow' + AWSuffix;
  18855. function FindWindowExA; external user32 name 'FindWindowExA';
  18856. function FindWindowExW; external user32 name 'FindWindowExW';
  18857. function FindWindowEx; external user32 name 'FindWindowEx' + AWSuffix;
  18858. function GetShellWindow; external user32 name 'GetShellWindow';
  18859. function RegisterShellHookWindow; external user32 name 'RegisterShellHookWindow';
  18860. function DeregisterShellHookWindow; external user32 name 'DeregisterShellHookWindow';
  18861. function EnumWindows; external user32 name 'EnumWindows';
  18862. function EnumThreadWindows; external user32 name 'EnumThreadWindows';
  18863. function GetClassNameA; external user32 name 'GetClassNameA';
  18864. function GetClassNameW; external user32 name 'GetClassNameW';
  18865. function GetClassName; external user32 name 'GetClassName' + AWSuffix;
  18866. function GetTopWindow; external user32 name 'GetTopWindow';
  18867. function GetWindowThreadProcessId; external user32 name 'GetWindowThreadProcessId';
  18868. function IsGUIThread; external user32 name 'IsGUIThread';
  18869. function GetLastActivePopup; external user32 name 'GetLastActivePopup';
  18870. function GetWindow; external user32 name 'GetWindow';
  18871. function SetWindowsHookA; external user32 name 'SetWindowsHookA';
  18872. function SetWindowsHookW; external user32 name 'SetWindowsHookW';
  18873. function SetWindowsHook; external user32 name 'SetWindowsHook' + AWSuffix;
  18874. function UnhookWindowsHook; external user32 name 'UnhookWindowsHook';
  18875. function SetWindowsHookExA; external user32 name 'SetWindowsHookExA';
  18876. function SetWindowsHookExW; external user32 name 'SetWindowsHookExW';
  18877. function SetWindowsHookEx; external user32 name 'SetWindowsHookEx' + AWSuffix;
  18878. function UnhookWindowsHookEx; external user32 name 'UnhookWindowsHookEx';
  18879. function CallNextHookEx; external user32 name 'CallNextHookEx';
  18880. function CheckMenuRadioItem; external user32 name 'CheckMenuRadioItem';
  18881. function LoadBitmapA; external user32 name 'LoadBitmapA';
  18882. function LoadBitmapW; external user32 name 'LoadBitmapW';
  18883. function LoadBitmap; external user32 name 'LoadBitmap' + AWSuffix;
  18884. function LoadCursorA; external user32 name 'LoadCursorA';
  18885. function LoadCursorW; external user32 name 'LoadCursorW';
  18886. function LoadCursor; external user32 name 'LoadCursor' + AWSuffix;
  18887. function LoadCursorFromFileA; external user32 name 'LoadCursorFromFileA';
  18888. function LoadCursorFromFileW; external user32 name 'LoadCursorFromFileW';
  18889. function LoadCursorFromFile; external user32 name 'LoadCursorFromFile' + AWSuffix;
  18890. function CreateCursor; external user32 name 'CreateCursor';
  18891. function DestroyCursor; external user32 name 'DestroyCursor';
  18892. function SetSystemCursor; external user32 name 'SetSystemCursor';
  18893. function LoadIconA; external user32 name 'LoadIconA';
  18894. function LoadIconW; external user32 name 'LoadIconW';
  18895. function LoadIcon; external user32 name 'LoadIcon' + AWSuffix;
  18896. function PrivateExtractIconsA; external user32 name 'PrivateExtractIconsA';
  18897. function PrivateExtractIconsW; external user32 name 'PrivateExtractIconsW';
  18898. function PrivateExtractIcons; external user32 name 'PrivateExtractIcons' + AWSuffix;
  18899. function CreateIcon; external user32 name 'CreateIcon';
  18900. function DestroyIcon; external user32 name 'DestroyIcon';
  18901. function LookupIconIdFromDirectory; external user32 name 'LookupIconIdFromDirectory';
  18902. function LookupIconIdFromDirectoryEx; external user32 name 'LookupIconIdFromDirectoryEx';
  18903. function CreateIconFromResource; external user32 name 'CreateIconFromResource';
  18904. function CreateIconFromResourceEx; external user32 name 'CreateIconFromResourceEx';
  18905. function LoadImageA; external user32 name 'LoadImageA';
  18906. function LoadImageW; external user32 name 'LoadImageW';
  18907. function LoadImage; external user32 name 'LoadImage' + AWSuffix;
  18908. function CopyImage; external user32 name 'CopyImage';
  18909. function DrawIconEx; external user32 name 'DrawIconEx';
  18910. function CreateIconIndirect; external user32 name 'CreateIconIndirect';
  18911. function CopyIcon; external user32 name 'CopyIcon';
  18912. function GetIconInfo; external user32 name 'GetIconInfo';
  18913. function LoadStringA; external user32 name 'LoadStringA';
  18914. function LoadStringW; external user32 name 'LoadStringW';
  18915. function LoadString; external user32 name 'LoadString' + AWSuffix;
  18916. function IsDialogMessageA; external user32 name 'IsDialogMessageA';
  18917. function IsDialogMessageW; external user32 name 'IsDialogMessageW';
  18918. function IsDialogMessage; external user32 name 'IsDialogMessage' + AWSuffix;
  18919. function MapDialogRect; external user32 name 'MapDialogRect';
  18920. function DlgDirListA; external user32 name 'DlgDirListA';
  18921. function DlgDirListW; external user32 name 'DlgDirListW';
  18922. function DlgDirList; external user32 name 'DlgDirList' + AWSuffix;
  18923. function DlgDirSelectExA; external user32 name 'DlgDirSelectExA';
  18924. function DlgDirSelectExW; external user32 name 'DlgDirSelectExW';
  18925. function DlgDirSelectEx; external user32 name 'DlgDirSelectEx' + AWSuffix;
  18926. function DlgDirListComboBoxA; external user32 name 'DlgDirListComboBoxA';
  18927. function DlgDirListComboBoxW; external user32 name 'DlgDirListComboBoxW';
  18928. function DlgDirListComboBox; external user32 name 'DlgDirListComboBox' + AWSuffix;
  18929. function DlgDirSelectComboBoxExA; external user32 name 'DlgDirSelectComboBoxExA';
  18930. function DlgDirSelectComboBoxExW; external user32 name 'DlgDirSelectComboBoxExW';
  18931. function DlgDirSelectComboBoxEx; external user32 name 'DlgDirSelectComboBoxEx' + AWSuffix;
  18932. function SetScrollInfo; external user32 name 'SetScrollInfo';
  18933. function GetScrollInfo; external user32 name 'GetScrollInfo';
  18934. function DefFrameProcA; external user32 name 'DefFrameProcA';
  18935. function DefFrameProcW; external user32 name 'DefFrameProcW';
  18936. function DefFrameProc; external user32 name 'DefFrameProc' + AWSuffix;
  18937. function DefMDIChildProcA; external user32 name 'DefMDIChildProcA';
  18938. function DefMDIChildProcW; external user32 name 'DefMDIChildProcW';
  18939. function DefMDIChildProc; external user32 name 'DefMDIChildProc' + AWSuffix;
  18940. function TranslateMDISysAccel; external user32 name 'TranslateMDISysAccel';
  18941. function ArrangeIconicWindows; external user32 name 'ArrangeIconicWindows';
  18942. function CreateMDIWindowA; external user32 name 'CreateMDIWindowA';
  18943. function CreateMDIWindowW; external user32 name 'CreateMDIWindowW';
  18944. function CreateMDIWindow; external user32 name 'CreateMDIWindow' + AWSuffix;
  18945. function TileWindows; external user32 name 'TileWindows';
  18946. function CascadeWindows; external user32 name 'CascadeWindows';
  18947. function WinHelpA; external user32 name 'WinHelpA';
  18948. function WinHelpW; external user32 name 'WinHelpW';
  18949. function WinHelp; external user32 name 'WinHelp' + AWSuffix;
  18950. function GetGuiResources; external user32 name 'GetGuiResources';
  18951. function ChangeDisplaySettingsA; external user32 name 'ChangeDisplaySettingsA';
  18952. function ChangeDisplaySettingsW; external user32 name 'ChangeDisplaySettingsW';
  18953. function ChangeDisplaySettings; external user32 name 'ChangeDisplaySettings' + AWSuffix;
  18954. function ChangeDisplaySettingsExA; external user32 name 'ChangeDisplaySettingsExA';
  18955. function ChangeDisplaySettingsExW; external user32 name 'ChangeDisplaySettingsExW';
  18956. function ChangeDisplaySettingsEx; external user32 name 'ChangeDisplaySettingsEx' + AWSuffix;
  18957. function EnumDisplaySettingsA; external user32 name 'EnumDisplaySettingsA';
  18958. function EnumDisplaySettingsW; external user32 name 'EnumDisplaySettingsW';
  18959. function EnumDisplaySettings; external user32 name 'EnumDisplaySettings' + AWSuffix;
  18960. function EnumDisplaySettingsExA; external user32 name 'EnumDisplaySettingsExA';
  18961. function EnumDisplaySettingsExW; external user32 name 'EnumDisplaySettingsExW';
  18962. function EnumDisplaySettingsEx; external user32 name 'EnumDisplaySettingsEx' + AWSuffix;
  18963. function EnumDisplayDevicesA; external user32 name 'EnumDisplayDevicesA';
  18964. function EnumDisplayDevicesW; external user32 name 'EnumDisplayDevicesW';
  18965. function EnumDisplayDevices; external user32 name 'EnumDisplayDevices' + AWSuffix;
  18966. function SystemParametersInfoA; external user32 name 'SystemParametersInfoA';
  18967. function SystemParametersInfoW; external user32 name 'SystemParametersInfoW';
  18968. function SystemParametersInfo; external user32 name 'SystemParametersInfo' + AWSuffix;
  18969. procedure SetDebugErrorLevel; external user32 name 'SetDebugErrorLevel';
  18970. procedure SetLastErrorEx; external user32 name 'SetLastErrorEx';
  18971. function InternalGetWindowText; external user32 name 'InternalGetWindowText';
  18972. function EndTask; external user32 name 'EndTask';
  18973. function MonitorFromPoint; external user32 name 'MonitorFromPoint';
  18974. function MonitorFromRect; external user32 name 'MonitorFromRect';
  18975. function MonitorFromWindow; external user32 name 'MonitorFromWindow';
  18976. function GetMonitorInfoA; external user32 name 'GetMonitorInfoA';
  18977. function GetMonitorInfoW; external user32 name 'GetMonitorInfoW';
  18978. function GetMonitorInfo; external user32 name 'GetMonitorInfo' + AWSuffix;
  18979. function EnumDisplayMonitors; external user32 name 'EnumDisplayMonitors';
  18980. procedure NotifyWinEvent; external user32 name 'NotifyWinEvent';
  18981. function SetWinEventHook; external user32 name 'SetWinEventHook';
  18982. function IsWinEventHookInstalled; external user32 name 'IsWinEventHookInstalled';
  18983. function UnhookWinEvent; external user32 name 'UnhookWinEvent';
  18984. function GetGUIThreadInfo; external user32 name 'GetGUIThreadInfo';
  18985. function GetWindowModuleFileNameA; external user32 name 'GetWindowModuleFileNameA';
  18986. function GetWindowModuleFileNameW; external user32 name 'GetWindowModuleFileNameW';
  18987. function GetWindowModuleFileName; external user32 name 'GetWindowModuleFileName' + AWSuffix;
  18988. function GetCursorInfo; external user32 name 'GetCursorInfo';
  18989. function GetWindowInfo; external user32 name 'GetWindowInfo';
  18990. function GetTitleBarInfo; external user32 name 'GetTitleBarInfo';
  18991. function GetMenuBarInfo; external user32 name 'GetMenuBarInfo';
  18992. function GetScrollBarInfo; external user32 name 'GetScrollBarInfo';
  18993. function GetComboBoxInfo; external user32 name 'GetComboBoxInfo';
  18994. function GetAncestor; external user32 name 'GetAncestor';
  18995. function RealChildWindowFromPoint; external user32 name 'RealChildWindowFromPoint';
  18996. function RealGetWindowClassA; external user32 name 'RealGetWindowClassA';
  18997. function RealGetWindowClassW; external user32 name 'RealGetWindowClassW';
  18998. function RealGetWindowClass; external user32 name 'RealGetWindowClass' + AWSuffix;
  18999. function GetAltTabInfoA; external user32 name 'GetAltTabInfoA';
  19000. function GetAltTabInfoW; external user32 name 'GetAltTabInfoW';
  19001. function GetAltTabInfo; external user32 name 'GetAltTabInfo' + AWSuffix;
  19002. function GetListBoxInfo; external user32 name 'GetListBoxInfo';
  19003. function LockWorkStation; external user32 name 'LockWorkStation';
  19004. function UserHandleGrantAccess; external user32 name 'UserHandleGrantAccess';
  19005. function GetRawInputData; external user32 name 'GetRawInputData';
  19006. function GetRawInputDeviceInfoA; external user32 name 'GetRawInputDeviceInfoA';
  19007. function GetRawInputDeviceInfoW; external user32 name 'GetRawInputDeviceInfoW';
  19008. function GetRawInputDeviceInfo; external user32 name 'GetRawInputDeviceInfo' + AWSuffix;
  19009. function GetRawInputBuffer; external user32 name 'GetRawInputBuffer';
  19010. function RegisterRawInputDevices; external user32 name 'RegisterRawInputDevices';
  19011. function GetRegisteredRawInputDevices; external user32 name 'GetRegisteredRawInputDevices';
  19012. function GetRawInputDeviceList; external user32 name 'GetRawInputDeviceList';
  19013. function DefRawInputProc; external user32 name 'DefRawInputProc';
  19014. {$ENDIF DYNAMIC_LINK}
  19015. {$ENDIF JWA_IMPLEMENTATIONSECTION}
  19016. {$IFNDEF JWA_INCLUDEMODE}
  19017. end.
  19018. {$ENDIF !JWA_INCLUDEMODE}