jwawinuser.pas 560 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894
  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. unit JwaWinUser;
  43. {$WEAKPACKAGEUNIT}
  44. {$HPPEMIT ''}
  45. {$HPPEMIT '#include "WinUser.h"'}
  46. {$HPPEMIT ''}
  47. {$I jediapilib.inc}
  48. interface
  49. uses
  50. JwaWinBase, JwaWinGDI, JwaWinNT, JwaWinType;
  51. const
  52. UINT_MAX = UINT($FFFFFFFF); // from limits.h TODO
  53. {$EXTERNALSYM UINT_MAX}
  54. type
  55. HDWP = HANDLE;
  56. {$EXTERNALSYM HDWP}
  57. MENUTEMPLATEA = Pointer;
  58. {$EXTERNALSYM MENUTEMPLATEA}
  59. MENUTEMPLATEW = Pointer;
  60. {$EXTERNALSYM MENUTEMPLATEW}
  61. {$IFDEF UNICODE}
  62. MENUTEMPLATE = MENUTEMPLATEW;
  63. {$EXTERNALSYM MENUTEMPLATE}
  64. {$ELSE}
  65. MENUTEMPLATE = MENUTEMPLATEA;
  66. {$EXTERNALSYM MENUTEMPLATE}
  67. {$ENDIF UNICODE}
  68. LPMENUTEMPLATEA = PVOID;
  69. {$EXTERNALSYM LPMENUTEMPLATEA}
  70. LPMENUTEMPLATEW = PVOID;
  71. {$EXTERNALSYM LPMENUTEMPLATEW}
  72. {$IFDEF UNICODE}
  73. LPMENUTEMPLATE = LPMENUTEMPLATEW;
  74. {$EXTERNALSYM LPMENUTEMPLATE}
  75. {$ELSE}
  76. LPMENUTEMPLATE = LPMENUTEMPLATEA;
  77. {$EXTERNALSYM LPMENUTEMPLATE}
  78. {$ENDIF UNICODE}
  79. WNDPROC = function(hWnd: HWND; uMsg: UINT; lParam: WPARAM; wParam: LPARAM): LRESULT;
  80. {$EXTERNALSYM WNDPROC}
  81. DLGPROC = function(hwndDlg: HWND; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): INT_PTR; stdcall;
  82. {$EXTERNALSYM DLGPROC}
  83. TIMERPROC = procedure(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
  84. {$EXTERNALSYM TIMERPROC}
  85. GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cchData: Integer): BOOL; stdcall;
  86. {$EXTERNALSYM GRAYSTRINGPROC}
  87. WNDENUMPROC = function(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
  88. {$EXTERNALSYM WNDENUMPROC}
  89. HOOKPROC = function(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  90. {$EXTERNALSYM HOOKPROC}
  91. SENDASYNCPROC = procedure(hwnd: HWND; uMsg: UINT; dwData: ULONG_PTR; lResult: LRESULT); stdcall;
  92. {$EXTERNALSYM SENDASYNCPROC}
  93. PROPENUMPROCA = function(hwnd: HWND; lpszString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  94. {$EXTERNALSYM PROPENUMPROCA}
  95. PROPENUMPROCW = function(hwnd: HWND; lpszString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  96. {$EXTERNALSYM PROPENUMPROCW}
  97. PROPENUMPROCEXA = function(hwnd: HWND; lpszString: LPSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  98. {$EXTERNALSYM PROPENUMPROCEXA}
  99. PROPENUMPROCEXW = function(hwnd: HWND; lpszString: LPWSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  100. {$EXTERNALSYM PROPENUMPROCEXW}
  101. EDITWORDBREAKPROCA = function(lpch: LPSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  102. {$EXTERNALSYM EDITWORDBREAKPROCA}
  103. EDITWORDBREAKPROCW = function(lpch: LPWSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  104. {$EXTERNALSYM EDITWORDBREAKPROCW}
  105. DRAWSTATEPROC = function(hdc: HDC; lData: LPARAM; wData: WPARAM; cx, cy: Integer): BOOL; stdcall;
  106. {$EXTERNALSYM DRAWSTATEPROC}
  107. {$IFDEF UNICODE}
  108. PROPENUMPROC = PROPENUMPROCW;
  109. {$EXTERNALSYM PROPENUMPROC}
  110. PROPENUMPROCEX = PROPENUMPROCEXW;
  111. {$EXTERNALSYM PROPENUMPROCEX}
  112. EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
  113. {$EXTERNALSYM EDITWORDBREAKPROC}
  114. {$ELSE}
  115. PROPENUMPROC = PROPENUMPROCA;
  116. {$EXTERNALSYM PROPENUMPROC}
  117. PROPENUMPROCEX = PROPENUMPROCEXA;
  118. {$EXTERNALSYM PROPENUMPROCEX}
  119. EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
  120. {$EXTERNALSYM EDITWORDBREAKPROC}
  121. {$ENDIF UNICODE}
  122. NAMEENUMPROCA = function(lpstr: LPSTR; lParam: LPARAM): BOOL; stdcall;
  123. {$EXTERNALSYM NAMEENUMPROCA}
  124. NAMEENUMPROCW = function(lpstr: LPWSTR; lParam: LPARAM): BOOL; stdcall;
  125. {$EXTERNALSYM NAMEENUMPROCW}
  126. WINSTAENUMPROCA = NAMEENUMPROCA;
  127. {$EXTERNALSYM WINSTAENUMPROCA}
  128. DESKTOPENUMPROCA = NAMEENUMPROCA;
  129. {$EXTERNALSYM DESKTOPENUMPROCA}
  130. WINSTAENUMPROCW = NAMEENUMPROCW;
  131. {$EXTERNALSYM WINSTAENUMPROCW}
  132. DESKTOPENUMPROCW = NAMEENUMPROCW;
  133. {$EXTERNALSYM DESKTOPENUMPROCW}
  134. {$IFDEF UNICODE}
  135. WINSTAENUMPROC = WINSTAENUMPROCW;
  136. {$EXTERNALSYM WINSTAENUMPROC}
  137. DESKTOPENUMPROC = DESKTOPENUMPROCW;
  138. {$EXTERNALSYM DESKTOPENUMPROC}
  139. {$ELSE}
  140. WINSTAENUMPROC = WINSTAENUMPROCA;
  141. {$EXTERNALSYM WINSTAENUMPROC}
  142. DESKTOPENUMPROC = DESKTOPENUMPROCA;
  143. {$EXTERNALSYM DESKTOPENUMPROC}
  144. {$ENDIF UNICODE}
  145. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  146. {$EXTERNALSYM IS_INTRESOURCE}
  147. type
  148. MAKEINTRESOURCEA = LPSTR;
  149. {$EXTERNALSYM MAKEINTRESOURCEA}
  150. MAKEINTRESOURCEW = LPWSTR;
  151. {$EXTERNALSYM MAKEINTRESOURCEW}
  152. {$IFDEF UNICODE}
  153. MAKEINTRESOURCE = MAKEINTRESOURCEW;
  154. {$EXTERNALSYM MAKEINTRESOURCE}
  155. {$ELSE}
  156. MAKEINTRESOURCE = MAKEINTRESOURCEA;
  157. {$EXTERNALSYM MAKEINTRESOURCE}
  158. {$ENDIF UNICODE}
  159. //
  160. // Predefined Resource Types
  161. //
  162. const
  163. RT_CURSOR = MAKEINTRESOURCE(1);
  164. {$EXTERNALSYM RT_CURSOR}
  165. RT_BITMAP = MAKEINTRESOURCE(2);
  166. {$EXTERNALSYM RT_BITMAP}
  167. RT_ICON = MAKEINTRESOURCE(3);
  168. {$EXTERNALSYM RT_ICON}
  169. RT_MENU = MAKEINTRESOURCE(4);
  170. {$EXTERNALSYM RT_MENU}
  171. RT_DIALOG = MAKEINTRESOURCE(5);
  172. {$EXTERNALSYM RT_DIALOG}
  173. RT_STRING = MAKEINTRESOURCE(6);
  174. {$EXTERNALSYM RT_STRING}
  175. RT_FONTDIR = MAKEINTRESOURCE(7);
  176. {$EXTERNALSYM RT_FONTDIR}
  177. RT_FONT = MAKEINTRESOURCE(8);
  178. {$EXTERNALSYM RT_FONT}
  179. RT_ACCELERATOR = MAKEINTRESOURCE(9);
  180. {$EXTERNALSYM RT_ACCELERATOR}
  181. RT_RCDATA = MAKEINTRESOURCE(10);
  182. {$EXTERNALSYM RT_RCDATA}
  183. RT_MESSAGETABLE = MAKEINTRESOURCE(11);
  184. {$EXTERNALSYM RT_MESSAGETABLE}
  185. DIFFERENCE = 11;
  186. {$EXTERNALSYM DIFFERENCE}
  187. RT_GROUP_CURSOR = MAKEINTRESOURCE(ULONG_PTR(RT_CURSOR) + DIFFERENCE);
  188. {$EXTERNALSYM RT_GROUP_CURSOR}
  189. RT_GROUP_ICON = MAKEINTRESOURCE(ULONG_PTR(RT_ICON) + DIFFERENCE);
  190. {$EXTERNALSYM RT_GROUP_ICON}
  191. RT_VERSION = MAKEINTRESOURCE(16);
  192. {$EXTERNALSYM RT_VERSION}
  193. RT_DLGINCLUDE = MAKEINTRESOURCE(17);
  194. {$EXTERNALSYM RT_DLGINCLUDE}
  195. RT_PLUGPLAY = MAKEINTRESOURCE(19);
  196. {$EXTERNALSYM RT_PLUGPLAY}
  197. RT_VXD = MAKEINTRESOURCE(20);
  198. {$EXTERNALSYM RT_VXD}
  199. RT_ANICURSOR = MAKEINTRESOURCE(21);
  200. {$EXTERNALSYM RT_ANICURSOR}
  201. RT_ANIICON = MAKEINTRESOURCE(22);
  202. {$EXTERNALSYM RT_ANIICON}
  203. RT_HTML = MAKEINTRESOURCE(23);
  204. {$EXTERNALSYM RT_HTML}
  205. RT_MANIFEST = MAKEINTRESOURCE(24);
  206. CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1);
  207. {$EXTERNALSYM CREATEPROCESS_MANIFEST_RESOURCE_ID}
  208. ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(2);
  209. {$EXTERNALSYM ISOLATIONAWARE_MANIFEST_RESOURCE_ID}
  210. ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(3);
  211. {$EXTERNALSYM ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID}
  212. MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1{inclusive});
  213. {$EXTERNALSYM MINIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  214. MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(16{inclusive});
  215. {$EXTERNALSYM MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  216. type
  217. va_list = PChar;
  218. {$EXTERNALSYM va_list}
  219. function wvsprintfA(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
  220. {$EXTERNALSYM wvsprintfA}
  221. function wvsprintfW(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
  222. {$EXTERNALSYM wvsprintfW}
  223. function wvsprintf(Output: LPTSTR; Format: LPCTSTR; arglist: va_list): Integer; stdcall;
  224. {$EXTERNALSYM wvsprintf}
  225. function wsprintfA(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
  226. {$EXTERNALSYM wsprintfA}
  227. function wsprintfW(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
  228. {$EXTERNALSYM wsprintfW}
  229. function wsprintf(Output: LPTSTR; Format: LPCTSTR): Integer; stdcall;
  230. {$EXTERNALSYM wsprintf}
  231. //
  232. // SPI_SETDESKWALLPAPER defined constants
  233. //
  234. const
  235. SETWALLPAPER_DEFAULT = LPWSTR(-1);
  236. {$EXTERNALSYM SETWALLPAPER_DEFAULT}
  237. //
  238. // Scroll Bar Constants
  239. //
  240. SB_HORZ = 0;
  241. {$EXTERNALSYM SB_HORZ}
  242. SB_VERT = 1;
  243. {$EXTERNALSYM SB_VERT}
  244. SB_CTL = 2;
  245. {$EXTERNALSYM SB_CTL}
  246. SB_BOTH = 3;
  247. {$EXTERNALSYM SB_BOTH}
  248. //
  249. // Scroll Bar Commands
  250. //
  251. SB_LINEUP = 0;
  252. {$EXTERNALSYM SB_LINEUP}
  253. SB_LINELEFT = 0;
  254. {$EXTERNALSYM SB_LINELEFT}
  255. SB_LINEDOWN = 1;
  256. {$EXTERNALSYM SB_LINEDOWN}
  257. SB_LINERIGHT = 1;
  258. {$EXTERNALSYM SB_LINERIGHT}
  259. SB_PAGEUP = 2;
  260. {$EXTERNALSYM SB_PAGEUP}
  261. SB_PAGELEFT = 2;
  262. {$EXTERNALSYM SB_PAGELEFT}
  263. SB_PAGEDOWN = 3;
  264. {$EXTERNALSYM SB_PAGEDOWN}
  265. SB_PAGERIGHT = 3;
  266. {$EXTERNALSYM SB_PAGERIGHT}
  267. SB_THUMBPOSITION = 4;
  268. {$EXTERNALSYM SB_THUMBPOSITION}
  269. SB_THUMBTRACK = 5;
  270. {$EXTERNALSYM SB_THUMBTRACK}
  271. SB_TOP = 6;
  272. {$EXTERNALSYM SB_TOP}
  273. SB_LEFT = 6;
  274. {$EXTERNALSYM SB_LEFT}
  275. SB_BOTTOM = 7;
  276. {$EXTERNALSYM SB_BOTTOM}
  277. SB_RIGHT = 7;
  278. {$EXTERNALSYM SB_RIGHT}
  279. SB_ENDSCROLL = 8;
  280. {$EXTERNALSYM SB_ENDSCROLL}
  281. //
  282. // ShowWindow() Commands
  283. //
  284. SW_HIDE = 0;
  285. {$EXTERNALSYM SW_HIDE}
  286. SW_SHOWNORMAL = 1;
  287. {$EXTERNALSYM SW_SHOWNORMAL}
  288. SW_NORMAL = 1;
  289. {$EXTERNALSYM SW_NORMAL}
  290. SW_SHOWMINIMIZED = 2;
  291. {$EXTERNALSYM SW_SHOWMINIMIZED}
  292. SW_SHOWMAXIMIZED = 3;
  293. {$EXTERNALSYM SW_SHOWMAXIMIZED}
  294. SW_MAXIMIZE = 3;
  295. {$EXTERNALSYM SW_MAXIMIZE}
  296. SW_SHOWNOACTIVATE = 4;
  297. {$EXTERNALSYM SW_SHOWNOACTIVATE}
  298. SW_SHOW = 5;
  299. {$EXTERNALSYM SW_SHOW}
  300. SW_MINIMIZE = 6;
  301. {$EXTERNALSYM SW_MINIMIZE}
  302. SW_SHOWMINNOACTIVE = 7;
  303. {$EXTERNALSYM SW_SHOWMINNOACTIVE}
  304. SW_SHOWNA = 8;
  305. {$EXTERNALSYM SW_SHOWNA}
  306. SW_RESTORE = 9;
  307. {$EXTERNALSYM SW_RESTORE}
  308. SW_SHOWDEFAULT = 10;
  309. {$EXTERNALSYM SW_SHOWDEFAULT}
  310. SW_FORCEMINIMIZE = 11;
  311. {$EXTERNALSYM SW_FORCEMINIMIZE}
  312. SW_MAX = 11;
  313. {$EXTERNALSYM SW_MAX}
  314. //
  315. // Old ShowWindow() Commands
  316. //
  317. HIDE_WINDOW = 0;
  318. {$EXTERNALSYM HIDE_WINDOW}
  319. SHOW_OPENWINDOW = 1;
  320. {$EXTERNALSYM SHOW_OPENWINDOW}
  321. SHOW_ICONWINDOW = 2;
  322. {$EXTERNALSYM SHOW_ICONWINDOW}
  323. SHOW_FULLSCREEN = 3;
  324. {$EXTERNALSYM SHOW_FULLSCREEN}
  325. SHOW_OPENNOACTIVATE = 4;
  326. {$EXTERNALSYM SHOW_OPENNOACTIVATE}
  327. //
  328. // Identifiers for the WM_SHOWWINDOW message
  329. //
  330. SW_PARENTCLOSING = 1;
  331. {$EXTERNALSYM SW_PARENTCLOSING}
  332. SW_OTHERZOOM = 2;
  333. {$EXTERNALSYM SW_OTHERZOOM}
  334. SW_PARENTOPENING = 3;
  335. {$EXTERNALSYM SW_PARENTOPENING}
  336. SW_OTHERUNZOOM = 4;
  337. {$EXTERNALSYM SW_OTHERUNZOOM}
  338. //
  339. // AnimateWindow() Commands
  340. //
  341. AW_HOR_POSITIVE = $00000001;
  342. {$EXTERNALSYM AW_HOR_POSITIVE}
  343. AW_HOR_NEGATIVE = $00000002;
  344. {$EXTERNALSYM AW_HOR_NEGATIVE}
  345. AW_VER_POSITIVE = $00000004;
  346. {$EXTERNALSYM AW_VER_POSITIVE}
  347. AW_VER_NEGATIVE = $00000008;
  348. {$EXTERNALSYM AW_VER_NEGATIVE}
  349. AW_CENTER = $00000010;
  350. {$EXTERNALSYM AW_CENTER}
  351. AW_HIDE = $00010000;
  352. {$EXTERNALSYM AW_HIDE}
  353. AW_ACTIVATE = $00020000;
  354. {$EXTERNALSYM AW_ACTIVATE}
  355. AW_SLIDE = $00040000;
  356. {$EXTERNALSYM AW_SLIDE}
  357. AW_BLEND = $00080000;
  358. {$EXTERNALSYM AW_BLEND}
  359. //
  360. // WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
  361. //
  362. KF_EXTENDED = $0100;
  363. {$EXTERNALSYM KF_EXTENDED}
  364. KF_DLGMODE = $0800;
  365. {$EXTERNALSYM KF_DLGMODE}
  366. KF_MENUMODE = $1000;
  367. {$EXTERNALSYM KF_MENUMODE}
  368. KF_ALTDOWN = $2000;
  369. {$EXTERNALSYM KF_ALTDOWN}
  370. KF_REPEAT = $4000;
  371. {$EXTERNALSYM KF_REPEAT}
  372. KF_UP = $8000;
  373. {$EXTERNALSYM KF_UP}
  374. //
  375. // Virtual Keys, Standard Set
  376. //
  377. VK_LBUTTON = $01;
  378. {$EXTERNALSYM VK_LBUTTON}
  379. VK_RBUTTON = $02;
  380. {$EXTERNALSYM VK_RBUTTON}
  381. VK_CANCEL = $03;
  382. {$EXTERNALSYM VK_CANCEL}
  383. VK_MBUTTON = $04; // NOT contiguous with L & RBUTTON
  384. {$EXTERNALSYM VK_MBUTTON}
  385. {$IFDEF WIN98ME_UP}
  386. VK_XBUTTON1 = $05; // NOT contiguous with L & RBUTTON
  387. {$EXTERNALSYM VK_XBUTTON1}
  388. VK_XBUTTON2 = $06; // NOT contiguous with L & RBUTTON
  389. {$EXTERNALSYM VK_XBUTTON2}
  390. {$ENDIF WIN98ME_UP}
  391. //
  392. // 0x07 : unassigned
  393. //
  394. VK_BACK = $08;
  395. {$EXTERNALSYM VK_BACK}
  396. VK_TAB = $09;
  397. {$EXTERNALSYM VK_TAB}
  398. //
  399. // 0x0A - 0x0B : reserved
  400. //
  401. VK_CLEAR = $0C;
  402. {$EXTERNALSYM VK_CLEAR}
  403. VK_RETURN = $0D;
  404. {$EXTERNALSYM VK_RETURN}
  405. VK_SHIFT = $10;
  406. {$EXTERNALSYM VK_SHIFT}
  407. VK_CONTROL = $11;
  408. {$EXTERNALSYM VK_CONTROL}
  409. VK_MENU = $12;
  410. {$EXTERNALSYM VK_MENU}
  411. VK_PAUSE = $13;
  412. {$EXTERNALSYM VK_PAUSE}
  413. VK_CAPITAL = $14;
  414. {$EXTERNALSYM VK_CAPITAL}
  415. VK_KANA = $15;
  416. {$EXTERNALSYM VK_KANA}
  417. VK_HANGEUL = $15; // old name - should be here for compatibility
  418. {$EXTERNALSYM VK_HANGEUL}
  419. VK_HANGUL = $15;
  420. {$EXTERNALSYM VK_HANGUL}
  421. VK_JUNJA = $17;
  422. {$EXTERNALSYM VK_JUNJA}
  423. VK_FINAL = $18;
  424. {$EXTERNALSYM VK_FINAL}
  425. VK_HANJA = $19;
  426. {$EXTERNALSYM VK_HANJA}
  427. VK_KANJI = $19;
  428. {$EXTERNALSYM VK_KANJI}
  429. VK_ESCAPE = $1B;
  430. {$EXTERNALSYM VK_ESCAPE}
  431. VK_CONVERT = $1C;
  432. {$EXTERNALSYM VK_CONVERT}
  433. VK_NONCONVERT = $1D;
  434. {$EXTERNALSYM VK_NONCONVERT}
  435. VK_ACCEPT = $1E;
  436. {$EXTERNALSYM VK_ACCEPT}
  437. VK_MODECHANGE = $1F;
  438. {$EXTERNALSYM VK_MODECHANGE}
  439. VK_SPACE = $20;
  440. {$EXTERNALSYM VK_SPACE}
  441. VK_PRIOR = $21;
  442. {$EXTERNALSYM VK_PRIOR}
  443. VK_NEXT = $22;
  444. {$EXTERNALSYM VK_NEXT}
  445. VK_END = $23;
  446. {$EXTERNALSYM VK_END}
  447. VK_HOME = $24;
  448. {$EXTERNALSYM VK_HOME}
  449. VK_LEFT = $25;
  450. {$EXTERNALSYM VK_LEFT}
  451. VK_UP = $26;
  452. {$EXTERNALSYM VK_UP}
  453. VK_RIGHT = $27;
  454. {$EXTERNALSYM VK_RIGHT}
  455. VK_DOWN = $28;
  456. {$EXTERNALSYM VK_DOWN}
  457. VK_SELECT = $29;
  458. {$EXTERNALSYM VK_SELECT}
  459. VK_PRINT = $2A;
  460. {$EXTERNALSYM VK_PRINT}
  461. VK_EXECUTE = $2B;
  462. {$EXTERNALSYM VK_EXECUTE}
  463. VK_SNAPSHOT = $2C;
  464. {$EXTERNALSYM VK_SNAPSHOT}
  465. VK_INSERT = $2D;
  466. {$EXTERNALSYM VK_INSERT}
  467. VK_DELETE = $2E;
  468. {$EXTERNALSYM VK_DELETE}
  469. VK_HELP = $2F;
  470. {$EXTERNALSYM VK_HELP}
  471. //
  472. // VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
  473. // 0x40 : unassigned
  474. // VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
  475. //
  476. VK_LWIN = $5B;
  477. {$EXTERNALSYM VK_LWIN}
  478. VK_RWIN = $5C;
  479. {$EXTERNALSYM VK_RWIN}
  480. VK_APPS = $5D;
  481. {$EXTERNALSYM VK_APPS}
  482. //
  483. // 0x5E : reserved
  484. //
  485. VK_SLEEP = $5F;
  486. {$EXTERNALSYM VK_SLEEP}
  487. VK_NUMPAD0 = $60;
  488. {$EXTERNALSYM VK_NUMPAD0}
  489. VK_NUMPAD1 = $61;
  490. {$EXTERNALSYM VK_NUMPAD1}
  491. VK_NUMPAD2 = $62;
  492. {$EXTERNALSYM VK_NUMPAD2}
  493. VK_NUMPAD3 = $63;
  494. {$EXTERNALSYM VK_NUMPAD3}
  495. VK_NUMPAD4 = $64;
  496. {$EXTERNALSYM VK_NUMPAD4}
  497. VK_NUMPAD5 = $65;
  498. {$EXTERNALSYM VK_NUMPAD5}
  499. VK_NUMPAD6 = $66;
  500. {$EXTERNALSYM VK_NUMPAD6}
  501. VK_NUMPAD7 = $67;
  502. {$EXTERNALSYM VK_NUMPAD7}
  503. VK_NUMPAD8 = $68;
  504. {$EXTERNALSYM VK_NUMPAD8}
  505. VK_NUMPAD9 = $69;
  506. {$EXTERNALSYM VK_NUMPAD9}
  507. VK_MULTIPLY = $6A;
  508. {$EXTERNALSYM VK_MULTIPLY}
  509. VK_ADD = $6B;
  510. {$EXTERNALSYM VK_ADD}
  511. VK_SEPARATOR = $6C;
  512. {$EXTERNALSYM VK_SEPARATOR}
  513. VK_SUBTRACT = $6D;
  514. {$EXTERNALSYM VK_SUBTRACT}
  515. VK_DECIMAL = $6E;
  516. {$EXTERNALSYM VK_DECIMAL}
  517. VK_DIVIDE = $6F;
  518. {$EXTERNALSYM VK_DIVIDE}
  519. VK_F1 = $70;
  520. {$EXTERNALSYM VK_F1}
  521. VK_F2 = $71;
  522. {$EXTERNALSYM VK_F2}
  523. VK_F3 = $72;
  524. {$EXTERNALSYM VK_F3}
  525. VK_F4 = $73;
  526. {$EXTERNALSYM VK_F4}
  527. VK_F5 = $74;
  528. {$EXTERNALSYM VK_F5}
  529. VK_F6 = $75;
  530. {$EXTERNALSYM VK_F6}
  531. VK_F7 = $76;
  532. {$EXTERNALSYM VK_F7}
  533. VK_F8 = $77;
  534. {$EXTERNALSYM VK_F8}
  535. VK_F9 = $78;
  536. {$EXTERNALSYM VK_F9}
  537. VK_F10 = $79;
  538. {$EXTERNALSYM VK_F10}
  539. VK_F11 = $7A;
  540. {$EXTERNALSYM VK_F11}
  541. VK_F12 = $7B;
  542. {$EXTERNALSYM VK_F12}
  543. VK_F13 = $7C;
  544. {$EXTERNALSYM VK_F13}
  545. VK_F14 = $7D;
  546. {$EXTERNALSYM VK_F14}
  547. VK_F15 = $7E;
  548. {$EXTERNALSYM VK_F15}
  549. VK_F16 = $7F;
  550. {$EXTERNALSYM VK_F16}
  551. VK_F17 = $80;
  552. {$EXTERNALSYM VK_F17}
  553. VK_F18 = $81;
  554. {$EXTERNALSYM VK_F18}
  555. VK_F19 = $82;
  556. {$EXTERNALSYM VK_F19}
  557. VK_F20 = $83;
  558. {$EXTERNALSYM VK_F20}
  559. VK_F21 = $84;
  560. {$EXTERNALSYM VK_F21}
  561. VK_F22 = $85;
  562. {$EXTERNALSYM VK_F22}
  563. VK_F23 = $86;
  564. {$EXTERNALSYM VK_F23}
  565. VK_F24 = $87;
  566. {$EXTERNALSYM VK_F24}
  567. //
  568. // 0x88 - 0x8F : unassigned
  569. //
  570. VK_NUMLOCK = $90;
  571. {$EXTERNALSYM VK_NUMLOCK}
  572. VK_SCROLL = $91;
  573. {$EXTERNALSYM VK_SCROLL}
  574. //
  575. // NEC PC-9800 kbd definitions
  576. //
  577. VK_OEM_NEC_EQUAL = $92; // '=' key on numpad
  578. {$EXTERNALSYM VK_OEM_NEC_EQUAL}
  579. //
  580. // Fujitsu/OASYS kbd definitions
  581. //
  582. VK_OEM_FJ_JISHO = $92; // 'Dictionary' key
  583. {$EXTERNALSYM VK_OEM_FJ_JISHO}
  584. VK_OEM_FJ_MASSHOU = $93; // 'Unregister word' key
  585. {$EXTERNALSYM VK_OEM_FJ_MASSHOU}
  586. VK_OEM_FJ_TOUROKU = $94; // 'Register word' key
  587. {$EXTERNALSYM VK_OEM_FJ_TOUROKU}
  588. VK_OEM_FJ_LOYA = $95; // 'Left OYAYUBI' key
  589. {$EXTERNALSYM VK_OEM_FJ_LOYA}
  590. VK_OEM_FJ_ROYA = $96; // 'Right OYAYUBI' key
  591. {$EXTERNALSYM VK_OEM_FJ_ROYA}
  592. //
  593. // 0x97 - 0x9F : unassigned
  594. //
  595. //
  596. // VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
  597. // Used only as parameters to GetAsyncKeyState() and GetKeyState().
  598. // No other API or message will distinguish left and right keys in this way.
  599. //
  600. VK_LSHIFT = $A0;
  601. {$EXTERNALSYM VK_LSHIFT}
  602. VK_RSHIFT = $A1;
  603. {$EXTERNALSYM VK_RSHIFT}
  604. VK_LCONTROL = $A2;
  605. {$EXTERNALSYM VK_LCONTROL}
  606. VK_RCONTROL = $A3;
  607. {$EXTERNALSYM VK_RCONTROL}
  608. VK_LMENU = $A4;
  609. {$EXTERNALSYM VK_LMENU}
  610. VK_RMENU = $A5;
  611. {$EXTERNALSYM VK_RMENU}
  612. {$IFDEF WIN98ME_UP}
  613. VK_BROWSER_BACK = $A6;
  614. {$EXTERNALSYM VK_BROWSER_BACK}
  615. VK_BROWSER_FORWARD = $A7;
  616. {$EXTERNALSYM VK_BROWSER_FORWARD}
  617. VK_BROWSER_REFRESH = $A8;
  618. {$EXTERNALSYM VK_BROWSER_REFRESH}
  619. VK_BROWSER_STOP = $A9;
  620. {$EXTERNALSYM VK_BROWSER_STOP}
  621. VK_BROWSER_SEARCH = $AA;
  622. {$EXTERNALSYM VK_BROWSER_SEARCH}
  623. VK_BROWSER_FAVORITES = $AB;
  624. {$EXTERNALSYM VK_BROWSER_FAVORITES}
  625. VK_BROWSER_HOME = $AC;
  626. {$EXTERNALSYM VK_BROWSER_HOME}
  627. VK_VOLUME_MUTE = $AD;
  628. {$EXTERNALSYM VK_VOLUME_MUTE}
  629. VK_VOLUME_DOWN = $AE;
  630. {$EXTERNALSYM VK_VOLUME_DOWN}
  631. VK_VOLUME_UP = $AF;
  632. {$EXTERNALSYM VK_VOLUME_UP}
  633. VK_MEDIA_NEXT_TRACK = $B0;
  634. {$EXTERNALSYM VK_MEDIA_NEXT_TRACK}
  635. VK_MEDIA_PREV_TRACK = $B1;
  636. {$EXTERNALSYM VK_MEDIA_PREV_TRACK}
  637. VK_MEDIA_STOP = $B2;
  638. {$EXTERNALSYM VK_MEDIA_STOP}
  639. VK_MEDIA_PLAY_PAUSE = $B3;
  640. {$EXTERNALSYM VK_MEDIA_PLAY_PAUSE}
  641. VK_LAUNCH_MAIL = $B4;
  642. {$EXTERNALSYM VK_LAUNCH_MAIL}
  643. VK_LAUNCH_MEDIA_SELECT = $B5;
  644. {$EXTERNALSYM VK_LAUNCH_MEDIA_SELECT}
  645. VK_LAUNCH_APP1 = $B6;
  646. {$EXTERNALSYM VK_LAUNCH_APP1}
  647. VK_LAUNCH_APP2 = $B7;
  648. {$EXTERNALSYM VK_LAUNCH_APP2}
  649. {$ENDIF WIN98ME_UP}
  650. //
  651. // 0xB8 - 0xB9 : reserved
  652. //
  653. VK_OEM_1 = $BA; // ';:' for US
  654. {$EXTERNALSYM VK_OEM_1}
  655. VK_OEM_PLUS = $BB; // '+' any country
  656. {$EXTERNALSYM VK_OEM_PLUS}
  657. VK_OEM_COMMA = $BC; // ',' any country
  658. {$EXTERNALSYM VK_OEM_COMMA}
  659. VK_OEM_MINUS = $BD; // '-' any country
  660. {$EXTERNALSYM VK_OEM_MINUS}
  661. VK_OEM_PERIOD = $BE; // '.' any country
  662. {$EXTERNALSYM VK_OEM_PERIOD}
  663. VK_OEM_2 = $BF; // '/?' for US
  664. {$EXTERNALSYM VK_OEM_2}
  665. VK_OEM_3 = $C0; // '`~' for US
  666. {$EXTERNALSYM VK_OEM_3}
  667. //
  668. // 0xC1 - 0xD7 : reserved
  669. //
  670. //
  671. // 0xD8 - 0xDA : unassigned
  672. //
  673. VK_OEM_4 = $DB; // '[{' for US
  674. {$EXTERNALSYM VK_OEM_4}
  675. VK_OEM_5 = $DC; // '\|' for US
  676. {$EXTERNALSYM VK_OEM_5}
  677. VK_OEM_6 = $DD; // ']}' for US
  678. {$EXTERNALSYM VK_OEM_6}
  679. VK_OEM_7 = $DE; // ''"' for US
  680. {$EXTERNALSYM VK_OEM_7}
  681. VK_OEM_8 = $DF;
  682. {$EXTERNALSYM VK_OEM_8}
  683. //
  684. // 0xE0 : reserved
  685. //
  686. //
  687. // Various extended or enhanced keyboards
  688. //
  689. VK_OEM_AX = $E1; // 'AX' key on Japanese AX kbd
  690. {$EXTERNALSYM VK_OEM_AX}
  691. VK_OEM_102 = $E2; // "<>" or "\|" on RT 102-key kbd.
  692. {$EXTERNALSYM VK_OEM_102}
  693. VK_ICO_HELP = $E3; // Help key on ICO
  694. {$EXTERNALSYM VK_ICO_HELP}
  695. VK_ICO_00 = $E4; // 00 key on ICO
  696. {$EXTERNALSYM VK_ICO_00}
  697. VK_PROCESSKEY = $E5;
  698. {$EXTERNALSYM VK_PROCESSKEY}
  699. VK_ICO_CLEAR = $E6;
  700. {$EXTERNALSYM VK_ICO_CLEAR}
  701. {$IFDEF WIN98ME_UP}
  702. VK_PACKET = $E7;
  703. {$EXTERNALSYM VK_PACKET}
  704. {$ENDIF WIN98ME_UP}
  705. //
  706. // 0xE8 : unassigned
  707. //
  708. //
  709. // Nokia/Ericsson definitions
  710. //
  711. VK_OEM_RESET = $E9;
  712. {$EXTERNALSYM VK_OEM_RESET}
  713. VK_OEM_JUMP = $EA;
  714. {$EXTERNALSYM VK_OEM_JUMP}
  715. VK_OEM_PA1 = $EB;
  716. {$EXTERNALSYM VK_OEM_PA1}
  717. VK_OEM_PA2 = $EC;
  718. {$EXTERNALSYM VK_OEM_PA2}
  719. VK_OEM_PA3 = $ED;
  720. {$EXTERNALSYM VK_OEM_PA3}
  721. VK_OEM_WSCTRL = $EE;
  722. {$EXTERNALSYM VK_OEM_WSCTRL}
  723. VK_OEM_CUSEL = $EF;
  724. {$EXTERNALSYM VK_OEM_CUSEL}
  725. VK_OEM_ATTN = $F0;
  726. {$EXTERNALSYM VK_OEM_ATTN}
  727. VK_OEM_FINISH = $F1;
  728. {$EXTERNALSYM VK_OEM_FINISH}
  729. VK_OEM_COPY = $F2;
  730. {$EXTERNALSYM VK_OEM_COPY}
  731. VK_OEM_AUTO = $F3;
  732. {$EXTERNALSYM VK_OEM_AUTO}
  733. VK_OEM_ENLW = $F4;
  734. {$EXTERNALSYM VK_OEM_ENLW}
  735. VK_OEM_BACKTAB = $F5;
  736. {$EXTERNALSYM VK_OEM_BACKTAB}
  737. VK_ATTN = $F6;
  738. {$EXTERNALSYM VK_ATTN}
  739. VK_CRSEL = $F7;
  740. {$EXTERNALSYM VK_CRSEL}
  741. VK_EXSEL = $F8;
  742. {$EXTERNALSYM VK_EXSEL}
  743. VK_EREOF = $F9;
  744. {$EXTERNALSYM VK_EREOF}
  745. VK_PLAY = $FA;
  746. {$EXTERNALSYM VK_PLAY}
  747. VK_ZOOM = $FB;
  748. {$EXTERNALSYM VK_ZOOM}
  749. VK_NONAME = $FC;
  750. {$EXTERNALSYM VK_NONAME}
  751. VK_PA1 = $FD;
  752. {$EXTERNALSYM VK_PA1}
  753. VK_OEM_CLEAR = $FE;
  754. {$EXTERNALSYM VK_OEM_CLEAR}
  755. //
  756. // 0xFF : reserved
  757. //
  758. //
  759. // SetWindowsHook() codes
  760. //
  761. WH_MIN = DWORD(-1);
  762. {$EXTERNALSYM WH_MIN}
  763. WH_MSGFILTER = DWORD(-1);
  764. {$EXTERNALSYM WH_MSGFILTER}
  765. WH_JOURNALRECORD = 0;
  766. {$EXTERNALSYM WH_JOURNALRECORD}
  767. WH_JOURNALPLAYBACK = 1;
  768. {$EXTERNALSYM WH_JOURNALPLAYBACK}
  769. WH_KEYBOARD = 2;
  770. {$EXTERNALSYM WH_KEYBOARD}
  771. WH_GETMESSAGE = 3;
  772. {$EXTERNALSYM WH_GETMESSAGE}
  773. WH_CALLWNDPROC = 4;
  774. {$EXTERNALSYM WH_CALLWNDPROC}
  775. WH_CBT = 5;
  776. {$EXTERNALSYM WH_CBT}
  777. WH_SYSMSGFILTER = 6;
  778. {$EXTERNALSYM WH_SYSMSGFILTER}
  779. WH_MOUSE = 7;
  780. {$EXTERNALSYM WH_MOUSE}
  781. WH_HARDWARE = 8;
  782. {$EXTERNALSYM WH_HARDWARE}
  783. WH_DEBUG = 9;
  784. {$EXTERNALSYM WH_DEBUG}
  785. WH_SHELL = 10;
  786. {$EXTERNALSYM WH_SHELL}
  787. WH_FOREGROUNDIDLE = 11;
  788. {$EXTERNALSYM WH_FOREGROUNDIDLE}
  789. WH_CALLWNDPROCRET = 12;
  790. {$EXTERNALSYM WH_CALLWNDPROCRET}
  791. {$IFDEF WINNT4_UP}
  792. WH_KEYBOARD_LL = 13;
  793. {$EXTERNALSYM WH_KEYBOARD_LL}
  794. WH_MOUSE_LL = 14;
  795. {$EXTERNALSYM WH_MOUSE_LL}
  796. {$ENDIF WINNT4_UP}
  797. {$IFDEF WINNT4_UP}
  798. WH_MAX = 14;
  799. {$EXTERNALSYM WH_MAX}
  800. {$ELSE}
  801. WH_MAX = 12;
  802. {$EXTERNALSYM WH_MAX}
  803. {$ENDIF WINNT4_UP}
  804. WH_MINHOOK = WH_MIN;
  805. {$EXTERNALSYM WH_MINHOOK}
  806. WH_MAXHOOK = WH_MAX;
  807. {$EXTERNALSYM WH_MAXHOOK}
  808. //
  809. // Hook Codes
  810. //
  811. HC_ACTION = 0;
  812. {$EXTERNALSYM HC_ACTION}
  813. HC_GETNEXT = 1;
  814. {$EXTERNALSYM HC_GETNEXT}
  815. HC_SKIP = 2;
  816. {$EXTERNALSYM HC_SKIP}
  817. HC_NOREMOVE = 3;
  818. {$EXTERNALSYM HC_NOREMOVE}
  819. HC_NOREM = HC_NOREMOVE;
  820. {$EXTERNALSYM HC_NOREM}
  821. HC_SYSMODALON = 4;
  822. {$EXTERNALSYM HC_SYSMODALON}
  823. HC_SYSMODALOFF = 5;
  824. {$EXTERNALSYM HC_SYSMODALOFF}
  825. //
  826. // CBT Hook Codes
  827. //
  828. HCBT_MOVESIZE = 0;
  829. {$EXTERNALSYM HCBT_MOVESIZE}
  830. HCBT_MINMAX = 1;
  831. {$EXTERNALSYM HCBT_MINMAX}
  832. HCBT_QS = 2;
  833. {$EXTERNALSYM HCBT_QS}
  834. HCBT_CREATEWND = 3;
  835. {$EXTERNALSYM HCBT_CREATEWND}
  836. HCBT_DESTROYWND = 4;
  837. {$EXTERNALSYM HCBT_DESTROYWND}
  838. HCBT_ACTIVATE = 5;
  839. {$EXTERNALSYM HCBT_ACTIVATE}
  840. HCBT_CLICKSKIPPED = 6;
  841. {$EXTERNALSYM HCBT_CLICKSKIPPED}
  842. HCBT_KEYSKIPPED = 7;
  843. {$EXTERNALSYM HCBT_KEYSKIPPED}
  844. HCBT_SYSCOMMAND = 8;
  845. {$EXTERNALSYM HCBT_SYSCOMMAND}
  846. HCBT_SETFOCUS = 9;
  847. {$EXTERNALSYM HCBT_SETFOCUS}
  848. //
  849. // HCBT_ACTIVATE structure pointed to by lParam
  850. //
  851. type
  852. LPCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;
  853. {$EXTERNALSYM LPCBTACTIVATESTRUCT}
  854. tagCBTACTIVATESTRUCT = record
  855. fMouse: BOOL;
  856. hWndActive: HWND;
  857. end;
  858. {$EXTERNALSYM tagCBTACTIVATESTRUCT}
  859. CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT;
  860. {$EXTERNALSYM CBTACTIVATESTRUCT}
  861. TCbtActivateStruct = CBTACTIVATESTRUCT;
  862. PCbtActivateStruct = LPCBTACTIVATESTRUCT;
  863. {$IFDEF WINXP_UP}
  864. //
  865. // WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
  866. //
  867. tagWTSSESSION_NOTIFICATION = record
  868. cbSize: DWORD;
  869. dwSessionId: DWORD;
  870. end;
  871. {$EXTERNALSYM tagWTSSESSION_NOTIFICATION}
  872. WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION;
  873. {$EXTERNALSYM WTSSESSION_NOTIFICATION}
  874. PWTSSESSION_NOTIFICATION = ^WTSSESSION_NOTIFICATION;
  875. {$EXTERNALSYM PWTSSESSION_NOTIFICATION}
  876. TWtsSessionNotification = WTSSESSION_NOTIFICATION;
  877. PWtsSessionNotification = PWTSSESSION_NOTIFICATION;
  878. //
  879. // codes passed in WPARAM for WM_WTSSESSION_CHANGE
  880. //
  881. const
  882. WTS_CONSOLE_CONNECT = $1;
  883. {$EXTERNALSYM WTS_CONSOLE_CONNECT}
  884. WTS_CONSOLE_DISCONNECT = $2;
  885. {$EXTERNALSYM WTS_CONSOLE_DISCONNECT}
  886. WTS_REMOTE_CONNECT = $3;
  887. {$EXTERNALSYM WTS_REMOTE_CONNECT}
  888. WTS_REMOTE_DISCONNECT = $4;
  889. {$EXTERNALSYM WTS_REMOTE_DISCONNECT}
  890. WTS_SESSION_LOGON = $5;
  891. {$EXTERNALSYM WTS_SESSION_LOGON}
  892. WTS_SESSION_LOGOFF = $6;
  893. {$EXTERNALSYM WTS_SESSION_LOGOFF}
  894. WTS_SESSION_LOCK = $7;
  895. {$EXTERNALSYM WTS_SESSION_LOCK}
  896. WTS_SESSION_UNLOCK = $8;
  897. {$EXTERNALSYM WTS_SESSION_UNLOCK}
  898. WTS_SESSION_REMOTE_CONTROL = $9;
  899. {$EXTERNALSYM WTS_SESSION_REMOTE_CONTROL}
  900. {$ENDIF WINXP_UP}
  901. //
  902. // WH_MSGFILTER Filter Proc Codes
  903. //
  904. const
  905. MSGF_DIALOGBOX = 0;
  906. {$EXTERNALSYM MSGF_DIALOGBOX}
  907. MSGF_MESSAGEBOX = 1;
  908. {$EXTERNALSYM MSGF_MESSAGEBOX}
  909. MSGF_MENU = 2;
  910. {$EXTERNALSYM MSGF_MENU}
  911. MSGF_SCROLLBAR = 5;
  912. {$EXTERNALSYM MSGF_SCROLLBAR}
  913. MSGF_NEXTWINDOW = 6;
  914. {$EXTERNALSYM MSGF_NEXTWINDOW}
  915. MSGF_MAX = 8; // unused
  916. {$EXTERNALSYM MSGF_MAX}
  917. MSGF_USER = 4096;
  918. {$EXTERNALSYM MSGF_USER}
  919. //
  920. // Shell support
  921. //
  922. HSHELL_WINDOWCREATED = 1;
  923. {$EXTERNALSYM HSHELL_WINDOWCREATED}
  924. HSHELL_WINDOWDESTROYED = 2;
  925. {$EXTERNALSYM HSHELL_WINDOWDESTROYED}
  926. HSHELL_ACTIVATESHELLWINDOW = 3;
  927. {$EXTERNALSYM HSHELL_ACTIVATESHELLWINDOW}
  928. HSHELL_WINDOWACTIVATED = 4;
  929. {$EXTERNALSYM HSHELL_WINDOWACTIVATED}
  930. HSHELL_GETMINRECT = 5;
  931. {$EXTERNALSYM HSHELL_GETMINRECT}
  932. HSHELL_REDRAW = 6;
  933. {$EXTERNALSYM HSHELL_REDRAW}
  934. HSHELL_TASKMAN = 7;
  935. {$EXTERNALSYM HSHELL_TASKMAN}
  936. HSHELL_LANGUAGE = 8;
  937. {$EXTERNALSYM HSHELL_LANGUAGE}
  938. HSHELL_SYSMENU = 9;
  939. {$EXTERNALSYM HSHELL_SYSMENU}
  940. HSHELL_ENDTASK = 10;
  941. {$EXTERNALSYM HSHELL_ENDTASK}
  942. {$IFDEF WIN2000_UP}
  943. HSHELL_ACCESSIBILITYSTATE = 11;
  944. {$EXTERNALSYM HSHELL_ACCESSIBILITYSTATE}
  945. HSHELL_APPCOMMAND = 12;
  946. {$EXTERNALSYM HSHELL_APPCOMMAND}
  947. {$ENDIF WIN2000_UP}
  948. {$IFDEF WINXP_UP}
  949. HSHELL_WINDOWREPLACED = 13;
  950. {$EXTERNALSYM HSHELL_WINDOWREPLACED}
  951. {$ENDIF WINXP_UP}
  952. HSHELL_WINDOWREPLACING = 14;
  953. {$EXTERNALSYM HSHELL_WINDOWREPLACING}
  954. HSHELL_HIGHBIT = $8000;
  955. {$EXTERNALSYM HSHELL_HIGHBIT}
  956. HSHELL_FLASH = HSHELL_REDRAW or HSHELL_HIGHBIT;
  957. {$EXTERNALSYM HSHELL_FLASH}
  958. HSHELL_RUDEAPPACTIVATED = HSHELL_WINDOWACTIVATED or HSHELL_HIGHBIT;
  959. {$EXTERNALSYM HSHELL_RUDEAPPACTIVATED}
  960. {$IFDEF WIN2000_UP}
  961. // wparam for HSHELL_ACCESSIBILITYSTATE//
  962. ACCESS_STICKYKEYS = $0001;
  963. {$EXTERNALSYM ACCESS_STICKYKEYS}
  964. ACCESS_FILTERKEYS = $0002;
  965. {$EXTERNALSYM ACCESS_FILTERKEYS}
  966. ACCESS_MOUSEKEYS = $0003;
  967. {$EXTERNALSYM ACCESS_MOUSEKEYS}
  968. // cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND//
  969. APPCOMMAND_BROWSER_BACKWARD = 1;
  970. {$EXTERNALSYM APPCOMMAND_BROWSER_BACKWARD}
  971. APPCOMMAND_BROWSER_FORWARD = 2;
  972. {$EXTERNALSYM APPCOMMAND_BROWSER_FORWARD}
  973. APPCOMMAND_BROWSER_REFRESH = 3;
  974. {$EXTERNALSYM APPCOMMAND_BROWSER_REFRESH}
  975. APPCOMMAND_BROWSER_STOP = 4;
  976. {$EXTERNALSYM APPCOMMAND_BROWSER_STOP}
  977. APPCOMMAND_BROWSER_SEARCH = 5;
  978. {$EXTERNALSYM APPCOMMAND_BROWSER_SEARCH}
  979. APPCOMMAND_BROWSER_FAVORITES = 6;
  980. {$EXTERNALSYM APPCOMMAND_BROWSER_FAVORITES}
  981. APPCOMMAND_BROWSER_HOME = 7;
  982. {$EXTERNALSYM APPCOMMAND_BROWSER_HOME}
  983. APPCOMMAND_VOLUME_MUTE = 8;
  984. {$EXTERNALSYM APPCOMMAND_VOLUME_MUTE}
  985. APPCOMMAND_VOLUME_DOWN = 9;
  986. {$EXTERNALSYM APPCOMMAND_VOLUME_DOWN}
  987. APPCOMMAND_VOLUME_UP = 10;
  988. {$EXTERNALSYM APPCOMMAND_VOLUME_UP}
  989. APPCOMMAND_MEDIA_NEXTTRACK = 11;
  990. {$EXTERNALSYM APPCOMMAND_MEDIA_NEXTTRACK}
  991. APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
  992. {$EXTERNALSYM APPCOMMAND_MEDIA_PREVIOUSTRACK}
  993. APPCOMMAND_MEDIA_STOP = 13;
  994. {$EXTERNALSYM APPCOMMAND_MEDIA_STOP}
  995. APPCOMMAND_MEDIA_PLAY_PAUSE = 14;
  996. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY_PAUSE}
  997. APPCOMMAND_LAUNCH_MAIL = 15;
  998. {$EXTERNALSYM APPCOMMAND_LAUNCH_MAIL}
  999. APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
  1000. {$EXTERNALSYM APPCOMMAND_LAUNCH_MEDIA_SELECT}
  1001. APPCOMMAND_LAUNCH_APP1 = 17;
  1002. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP1}
  1003. APPCOMMAND_LAUNCH_APP2 = 18;
  1004. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP2}
  1005. APPCOMMAND_BASS_DOWN = 19;
  1006. {$EXTERNALSYM APPCOMMAND_BASS_DOWN}
  1007. APPCOMMAND_BASS_BOOST = 20;
  1008. {$EXTERNALSYM APPCOMMAND_BASS_BOOST}
  1009. APPCOMMAND_BASS_UP = 21;
  1010. {$EXTERNALSYM APPCOMMAND_BASS_UP}
  1011. APPCOMMAND_TREBLE_DOWN = 22;
  1012. {$EXTERNALSYM APPCOMMAND_TREBLE_DOWN}
  1013. APPCOMMAND_TREBLE_UP = 23;
  1014. {$EXTERNALSYM APPCOMMAND_TREBLE_UP}
  1015. {$IFDEF WINXP_UP}
  1016. APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
  1017. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_MUTE}
  1018. APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
  1019. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_DOWN}
  1020. APPCOMMAND_MICROPHONE_VOLUME_UP = 26;
  1021. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_UP}
  1022. APPCOMMAND_HELP = 27;
  1023. {$EXTERNALSYM APPCOMMAND_HELP}
  1024. APPCOMMAND_FIND = 28;
  1025. {$EXTERNALSYM APPCOMMAND_FIND}
  1026. APPCOMMAND_NEW = 29;
  1027. {$EXTERNALSYM APPCOMMAND_NEW}
  1028. APPCOMMAND_OPEN = 30;
  1029. {$EXTERNALSYM APPCOMMAND_OPEN}
  1030. APPCOMMAND_CLOSE = 31;
  1031. {$EXTERNALSYM APPCOMMAND_CLOSE}
  1032. APPCOMMAND_SAVE = 32;
  1033. {$EXTERNALSYM APPCOMMAND_SAVE}
  1034. APPCOMMAND_PRINT = 33;
  1035. {$EXTERNALSYM APPCOMMAND_PRINT}
  1036. APPCOMMAND_UNDO = 34;
  1037. {$EXTERNALSYM APPCOMMAND_UNDO}
  1038. APPCOMMAND_REDO = 35;
  1039. {$EXTERNALSYM APPCOMMAND_REDO}
  1040. APPCOMMAND_COPY = 36;
  1041. {$EXTERNALSYM APPCOMMAND_COPY}
  1042. APPCOMMAND_CUT = 37;
  1043. {$EXTERNALSYM APPCOMMAND_CUT}
  1044. APPCOMMAND_PASTE = 38;
  1045. {$EXTERNALSYM APPCOMMAND_PASTE}
  1046. APPCOMMAND_REPLY_TO_MAIL = 39;
  1047. {$EXTERNALSYM APPCOMMAND_REPLY_TO_MAIL}
  1048. APPCOMMAND_FORWARD_MAIL = 40;
  1049. {$EXTERNALSYM APPCOMMAND_FORWARD_MAIL}
  1050. APPCOMMAND_SEND_MAIL = 41;
  1051. {$EXTERNALSYM APPCOMMAND_SEND_MAIL}
  1052. APPCOMMAND_SPELL_CHECK = 42;
  1053. {$EXTERNALSYM APPCOMMAND_SPELL_CHECK}
  1054. APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
  1055. {$EXTERNALSYM APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE}
  1056. APPCOMMAND_MIC_ON_OFF_TOGGLE = 44;
  1057. {$EXTERNALSYM APPCOMMAND_MIC_ON_OFF_TOGGLE}
  1058. APPCOMMAND_CORRECTION_LIST = 45;
  1059. {$EXTERNALSYM APPCOMMAND_CORRECTION_LIST}
  1060. {$ENDIF WINXP_UP}
  1061. APPCOMMAND_MEDIA_PLAY = 46;
  1062. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY}
  1063. APPCOMMAND_MEDIA_PAUSE = 47;
  1064. {$EXTERNALSYM APPCOMMAND_MEDIA_PAUSE}
  1065. APPCOMMAND_MEDIA_RECORD = 48;
  1066. {$EXTERNALSYM APPCOMMAND_MEDIA_RECORD}
  1067. APPCOMMAND_MEDIA_FAST_FORWARD = 49;
  1068. {$EXTERNALSYM APPCOMMAND_MEDIA_FAST_FORWARD}
  1069. APPCOMMAND_MEDIA_REWIND = 50;
  1070. {$EXTERNALSYM APPCOMMAND_MEDIA_REWIND}
  1071. APPCOMMAND_MEDIA_CHANNEL_UP = 51;
  1072. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_UP}
  1073. APPCOMMAND_MEDIA_CHANNEL_DOWN = 52;
  1074. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_DOWN}
  1075. FAPPCOMMAND_MOUSE = $8000;
  1076. {$EXTERNALSYM FAPPCOMMAND_MOUSE}
  1077. FAPPCOMMAND_KEY = 0;
  1078. {$EXTERNALSYM FAPPCOMMAND_KEY}
  1079. FAPPCOMMAND_OEM = $1000;
  1080. {$EXTERNALSYM FAPPCOMMAND_OEM}
  1081. FAPPCOMMAND_MASK = $F000;
  1082. {$EXTERNALSYM FAPPCOMMAND_MASK}
  1083. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): Shortint;
  1084. {$EXTERNALSYM GET_APPCOMMAND_LPARAM}
  1085. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  1086. {$EXTERNALSYM GET_DEVICE_LPARAM}
  1087. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  1088. {$EXTERNALSYM GET_MOUSEORKEY_LPARAM}
  1089. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  1090. {$EXTERNALSYM GET_FLAGS_LPARAM}
  1091. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  1092. {$EXTERNALSYM GET_KEYSTATE_LPARAM}
  1093. {$ENDIF WIN2000_UP}
  1094. type
  1095. SHELLHOOKINFO = record
  1096. hwnd: HWND;
  1097. rc: RECT;
  1098. end;
  1099. {$EXTERNALSYM SHELLHOOKINFO}
  1100. LPSHELLHOOKINFO = ^SHELLHOOKINFO;
  1101. {$EXTERNALSYM LPSHELLHOOKINFO}
  1102. TShellHookInfo = SHELLHOOKINFO;
  1103. PShellHookInfo = LPSHELLHOOKINFO;
  1104. //
  1105. // Message Structure used in Journaling
  1106. //
  1107. type
  1108. LPEVENTMSG = ^EVENTMSG;
  1109. {$EXTERNALSYM LPEVENTMSG}
  1110. tagEVENTMSG = record
  1111. message_: UINT;
  1112. paramL: UINT;
  1113. paramH: UINT;
  1114. time: DWORD;
  1115. hwnd: HWND;
  1116. end;
  1117. {$EXTERNALSYM tagEVENTMSG}
  1118. EVENTMSG = tagEVENTMSG;
  1119. {$EXTERNALSYM EVENTMSG}
  1120. LPEVENTMSGMSG = ^EVENTMSG;
  1121. {$EXTERNALSYM LPEVENTMSGMSG}
  1122. PEVENTMSGMSG = ^EVENTMSG;
  1123. {$EXTERNALSYM PEVENTMSGMSG}
  1124. NPEVENTMSG = ^EVENTMSG;
  1125. {$EXTERNALSYM NPEVENTMSG}
  1126. NPEVENTMSGMSG = ^EVENTMSG;
  1127. {$EXTERNALSYM NPEVENTMSGMSG}
  1128. TEventMsg = EVENTMSG;
  1129. PEventMsg = LPEVENTMSG;
  1130. //
  1131. // Message structure used by WH_CALLWNDPROC
  1132. //
  1133. LPCWPSTRUCT = ^CWPSTRUCT;
  1134. {$EXTERNALSYM LPCWPSTRUCT}
  1135. tagCWPSTRUCT = record
  1136. lParam: LPARAM;
  1137. wParam: WPARAM;
  1138. message: UINT;
  1139. hwnd: HWND;
  1140. end;
  1141. {$EXTERNALSYM tagCWPSTRUCT}
  1142. CWPSTRUCT = tagCWPSTRUCT;
  1143. {$EXTERNALSYM CWPSTRUCT}
  1144. NPCWPSTRUCT = ^CWPSTRUCT;
  1145. {$EXTERNALSYM NPCWPSTRUCT}
  1146. TCwpStruct = CWPSTRUCT;
  1147. PCwpStruct = LPCWPSTRUCT;
  1148. //
  1149. // Message structure used by WH_CALLWNDPROCRET
  1150. //
  1151. LPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1152. {$EXTERNALSYM LPCWPRETSTRUCT}
  1153. tagCWPRETSTRUCT = record
  1154. lResult: LRESULT;
  1155. lParam: LPARAM;
  1156. wParam: WPARAM;
  1157. message: UINT;
  1158. hwnd: HWND;
  1159. end;
  1160. {$EXTERNALSYM tagCWPRETSTRUCT}
  1161. CWPRETSTRUCT = tagCWPRETSTRUCT;
  1162. {$EXTERNALSYM CWPRETSTRUCT}
  1163. NPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1164. {$EXTERNALSYM NPCWPRETSTRUCT}
  1165. TCwpRetStruct = CWPRETSTRUCT;
  1166. PCwpRetStruct = LPCWPRETSTRUCT;
  1167. //
  1168. // Low level hook flags
  1169. //
  1170. const
  1171. LLKHF_EXTENDED = KF_EXTENDED shr 8;
  1172. {$EXTERNALSYM LLKHF_EXTENDED}
  1173. LLKHF_INJECTED = $00000010;
  1174. {$EXTERNALSYM LLKHF_INJECTED}
  1175. LLKHF_ALTDOWN = KF_ALTDOWN shr 8;
  1176. {$EXTERNALSYM LLKHF_ALTDOWN}
  1177. LLKHF_UP = KF_UP shr 8;
  1178. {$EXTERNALSYM LLKHF_UP}
  1179. LLMHF_INJECTED = $00000001;
  1180. {$EXTERNALSYM LLMHF_INJECTED}
  1181. //
  1182. // Structure used by WH_KEYBOARD_LL
  1183. //
  1184. type
  1185. LPKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
  1186. {$EXTERNALSYM LPKBDLLHOOKSTRUCT}
  1187. tagKBDLLHOOKSTRUCT = record
  1188. vkCode: DWORD;
  1189. scanCode: DWORD;
  1190. flags: DWORD;
  1191. time: DWORD;
  1192. dwExtraInfo: ULONG_PTR;
  1193. end;
  1194. {$EXTERNALSYM tagKBDLLHOOKSTRUCT}
  1195. KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
  1196. {$EXTERNALSYM KBDLLHOOKSTRUCT}
  1197. TKbDllHookStruct = KBDLLHOOKSTRUCT;
  1198. PKbDllHookStruct = LPKBDLLHOOKSTRUCT;
  1199. //
  1200. // Structure used by WH_MOUSE_LL
  1201. //
  1202. LPMSLLHOOKSTRUCT = ^MSLLHOOKSTRUCT;
  1203. {$EXTERNALSYM LPMSLLHOOKSTRUCT}
  1204. tagMSLLHOOKSTRUCT = record
  1205. pt: POINT;
  1206. mouseData: DWORD;
  1207. flags: DWORD;
  1208. time: DWORD;
  1209. dwExtraInfo: ULONG_PTR;
  1210. end;
  1211. {$EXTERNALSYM tagMSLLHOOKSTRUCT}
  1212. MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT;
  1213. {$EXTERNALSYM MSLLHOOKSTRUCT}
  1214. TMsllHookStruct = MSLLHOOKSTRUCT;
  1215. PMsllHookStruct = LPMSLLHOOKSTRUCT;
  1216. //
  1217. // Structure used by WH_DEBUG
  1218. //
  1219. LPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1220. {$EXTERNALSYM LPDEBUGHOOKINFO}
  1221. tagDEBUGHOOKINFO = record
  1222. idThread: DWORD;
  1223. idThreadInstaller: DWORD;
  1224. lParam: LPARAM;
  1225. wParam: WPARAM;
  1226. code: Integer;
  1227. end;
  1228. {$EXTERNALSYM tagDEBUGHOOKINFO}
  1229. DEBUGHOOKINFO = tagDEBUGHOOKINFO;
  1230. {$EXTERNALSYM DEBUGHOOKINFO}
  1231. NPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1232. {$EXTERNALSYM NPDEBUGHOOKINFO}
  1233. TDebugHookInfo = DEBUGHOOKINFO;
  1234. PDebugHookInfo = LPDEBUGHOOKINFO;
  1235. //
  1236. // Structure used by WH_MOUSE
  1237. //
  1238. LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  1239. {$EXTERNALSYM LPMOUSEHOOKSTRUCT}
  1240. tagMOUSEHOOKSTRUCT = record
  1241. pt: POINT;
  1242. hwnd: HWND;
  1243. wHitTestCode: UINT;
  1244. dwExtraInfo: ULONG_PTR;
  1245. end;
  1246. {$EXTERNALSYM tagMOUSEHOOKSTRUCT}
  1247. MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
  1248. {$EXTERNALSYM MOUSEHOOKSTRUCT}
  1249. TMouseHookStruct = MOUSEHOOKSTRUCT;
  1250. PMouseHookStruct = LPMOUSEHOOKSTRUCT;
  1251. LPMOUSEHOOKSTRUCTEX = ^MOUSEHOOKSTRUCTEX;
  1252. {$EXTERNALSYM LPMOUSEHOOKSTRUCTEX}
  1253. tagMOUSEHOOKSTRUCTEX = record
  1254. mhs: MOUSEHOOKSTRUCT;
  1255. mouseData: DWORD;
  1256. end;
  1257. {$EXTERNALSYM tagMOUSEHOOKSTRUCTEX}
  1258. MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
  1259. {$EXTERNALSYM MOUSEHOOKSTRUCTEX}
  1260. TMouseHookStructEx = MOUSEHOOKSTRUCTEX;
  1261. PMouseHookStructEx = LPMOUSEHOOKSTRUCTEX;
  1262. //
  1263. // Structure used by WH_HARDWARE
  1264. //
  1265. LPHARDWAREHOOKSTRUCT = ^HARDWAREHOOKSTRUCT;
  1266. {$EXTERNALSYM LPHARDWAREHOOKSTRUCT}
  1267. tagHARDWAREHOOKSTRUCT = record
  1268. hwnd: HWND;
  1269. message: UINT;
  1270. wParam: WPARAM;
  1271. lParam: LPARAM;
  1272. end;
  1273. {$EXTERNALSYM tagHARDWAREHOOKSTRUCT}
  1274. HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
  1275. {$EXTERNALSYM HARDWAREHOOKSTRUCT}
  1276. THardwareHookStruct = HARDWAREHOOKSTRUCT;
  1277. PHardwareHookStruct = LPHARDWAREHOOKSTRUCT;
  1278. //
  1279. // Keyboard Layout API
  1280. //
  1281. const
  1282. HKL_PREV = 0;
  1283. {$EXTERNALSYM HKL_PREV}
  1284. HKL_NEXT = 1;
  1285. {$EXTERNALSYM HKL_NEXT}
  1286. KLF_ACTIVATE = $00000001;
  1287. {$EXTERNALSYM KLF_ACTIVATE}
  1288. KLF_SUBSTITUTE_OK = $00000002;
  1289. {$EXTERNALSYM KLF_SUBSTITUTE_OK}
  1290. KLF_REORDER = $00000008;
  1291. {$EXTERNALSYM KLF_REORDER}
  1292. KLF_REPLACELANG = $00000010;
  1293. {$EXTERNALSYM KLF_REPLACELANG}
  1294. KLF_NOTELLSHELL = $00000080;
  1295. {$EXTERNALSYM KLF_NOTELLSHELL}
  1296. KLF_SETFORPROCESS = $00000100;
  1297. {$EXTERNALSYM KLF_SETFORPROCESS}
  1298. KLF_SHIFTLOCK = $00010000;
  1299. {$EXTERNALSYM KLF_SHIFTLOCK}
  1300. KLF_RESET = $40000000;
  1301. {$EXTERNALSYM KLF_RESET}
  1302. //
  1303. // Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
  1304. //
  1305. INPUTLANGCHANGE_SYSCHARSET = $0001;
  1306. {$EXTERNALSYM INPUTLANGCHANGE_SYSCHARSET}
  1307. INPUTLANGCHANGE_FORWARD = $0002;
  1308. {$EXTERNALSYM INPUTLANGCHANGE_FORWARD}
  1309. INPUTLANGCHANGE_BACKWARD = $0004;
  1310. {$EXTERNALSYM INPUTLANGCHANGE_BACKWARD}
  1311. //
  1312. // Size of KeyboardLayoutName (number of characters), including nul terminator
  1313. //
  1314. KL_NAMELENGTH = 9;
  1315. {$EXTERNALSYM KL_NAMELENGTH}
  1316. function LoadKeyboardLayoutA(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
  1317. {$EXTERNALSYM LoadKeyboardLayoutA}
  1318. function LoadKeyboardLayoutW(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
  1319. {$EXTERNALSYM LoadKeyboardLayoutW}
  1320. function LoadKeyboardLayout(pwszKLID: LPCTSTR; Flags: UINT): HKL; stdcall;
  1321. {$EXTERNALSYM LoadKeyboardLayout}
  1322. function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): HKL; stdcall;
  1323. {$EXTERNALSYM ActivateKeyboardLayout}
  1324. function ToUnicodeEx(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE;
  1325. pwszBuff: LPWSTR; cchBuff: Integer; wFlags: UINT; dwhkl: HKL): Integer; stdcall;
  1326. {$EXTERNALSYM ToUnicodeEx}
  1327. function UnloadKeyboardLayout(hkl: HKL): BOOL; stdcall;
  1328. {$EXTERNALSYM UnloadKeyboardLayout}
  1329. function GetKeyboardLayoutNameA(pwszKLID: LPSTR): BOOL; stdcall;
  1330. {$EXTERNALSYM GetKeyboardLayoutNameA}
  1331. function GetKeyboardLayoutNameW(pwszKLID: LPWSTR): BOOL; stdcall;
  1332. {$EXTERNALSYM GetKeyboardLayoutNameW}
  1333. function GetKeyboardLayoutName(pwszKLID: LPTSTR): BOOL; stdcall;
  1334. {$EXTERNALSYM GetKeyboardLayoutName}
  1335. function GetKeyboardLayoutList(nBuff: Integer; lpList: PHKL): Integer; stdcall;
  1336. {$EXTERNALSYM GetKeyboardLayoutList}
  1337. function GetKeyboardLayout(idThread: DWORD): HKL; stdcall;
  1338. {$EXTERNALSYM GetKeyboardLayout}
  1339. type
  1340. LPMOUSEMOVEPOINT = ^MOUSEMOVEPOINT;
  1341. {$EXTERNALSYM LPMOUSEMOVEPOINT}
  1342. tagMOUSEMOVEPOINT = record
  1343. x: Integer;
  1344. y: Integer;
  1345. time: DWORD;
  1346. dwExtraInfo: ULONG_PTR;
  1347. end;
  1348. {$EXTERNALSYM tagMOUSEMOVEPOINT}
  1349. MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
  1350. {$EXTERNALSYM MOUSEMOVEPOINT}
  1351. TMouseMovePoint = MOUSEMOVEPOINT;
  1352. PMouseMovePoint = LPMOUSEMOVEPOINT;
  1353. //
  1354. // Values for resolution parameter of GetMouseMovePointsEx
  1355. //
  1356. const
  1357. GMMP_USE_DISPLAY_POINTS = 1;
  1358. {$EXTERNALSYM GMMP_USE_DISPLAY_POINTS}
  1359. GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
  1360. {$EXTERNALSYM GMMP_USE_HIGH_RESOLUTION_POINTS}
  1361. function GetMouseMovePointsEx(cbSize: UINT; lppt, lpptBuf: LPMOUSEMOVEPOINT;
  1362. nBufPoints: Integer; resolution: DWORD): Integer; stdcall;
  1363. {$EXTERNALSYM GetMouseMovePointsEx}
  1364. //
  1365. // Desktop-specific access flags
  1366. //
  1367. const
  1368. DESKTOP_READOBJECTS = $0001;
  1369. {$EXTERNALSYM DESKTOP_READOBJECTS}
  1370. DESKTOP_CREATEWINDOW = $0002;
  1371. {$EXTERNALSYM DESKTOP_CREATEWINDOW}
  1372. DESKTOP_CREATEMENU = $0004;
  1373. {$EXTERNALSYM DESKTOP_CREATEMENU}
  1374. DESKTOP_HOOKCONTROL = $0008;
  1375. {$EXTERNALSYM DESKTOP_HOOKCONTROL}
  1376. DESKTOP_JOURNALRECORD = $0010;
  1377. {$EXTERNALSYM DESKTOP_JOURNALRECORD}
  1378. DESKTOP_JOURNALPLAYBACK = $0020;
  1379. {$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
  1380. DESKTOP_ENUMERATE = $0040;
  1381. {$EXTERNALSYM DESKTOP_ENUMERATE}
  1382. DESKTOP_WRITEOBJECTS = $0080;
  1383. {$EXTERNALSYM DESKTOP_WRITEOBJECTS}
  1384. DESKTOP_SWITCHDESKTOP = $0100;
  1385. {$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
  1386. //
  1387. // Desktop-specific control flags
  1388. //
  1389. DF_ALLOWOTHERACCOUNTHOOK = $0001;
  1390. {$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
  1391. function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
  1392. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1393. {$EXTERNALSYM CreateDesktopA}
  1394. function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
  1395. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1396. {$EXTERNALSYM CreateDesktopW}
  1397. function CreateDesktop(lpszDesktop, lpszDevice: LPCTSTR; pDevmode: LPDEVMODE;
  1398. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1399. {$EXTERNALSYM CreateDesktop}
  1400. function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
  1401. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1402. {$EXTERNALSYM OpenDesktopA}
  1403. function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
  1404. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1405. {$EXTERNALSYM OpenDesktopW}
  1406. function OpenDesktop(lpszDesktop: LPCTSTR; dwFlags: DWORD; fInherit: BOOL;
  1407. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1408. {$EXTERNALSYM OpenDesktop}
  1409. function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
  1410. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1411. {$EXTERNALSYM OpenInputDesktop}
  1412. function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
  1413. lParam: LPARAM): BOOL; stdcall;
  1414. {$EXTERNALSYM EnumDesktopsA}
  1415. function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
  1416. lParam: LPARAM): BOOL; stdcall;
  1417. {$EXTERNALSYM EnumDesktopsW}
  1418. function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROC;
  1419. lParam: LPARAM): BOOL; stdcall;
  1420. {$EXTERNALSYM EnumDesktops}
  1421. function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1422. {$EXTERNALSYM EnumDesktopWindows}
  1423. function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
  1424. {$EXTERNALSYM SwitchDesktop}
  1425. function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
  1426. {$EXTERNALSYM SetThreadDesktop}
  1427. function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
  1428. {$EXTERNALSYM CloseDesktop}
  1429. function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
  1430. {$EXTERNALSYM GetThreadDesktop}
  1431. //
  1432. // Windowstation-specific access flags
  1433. //
  1434. const
  1435. WINSTA_ENUMDESKTOPS = $0001;
  1436. {$EXTERNALSYM WINSTA_ENUMDESKTOPS}
  1437. WINSTA_READATTRIBUTES = $0002;
  1438. {$EXTERNALSYM WINSTA_READATTRIBUTES}
  1439. WINSTA_ACCESSCLIPBOARD = $0004;
  1440. {$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
  1441. WINSTA_CREATEDESKTOP = $0008;
  1442. {$EXTERNALSYM WINSTA_CREATEDESKTOP}
  1443. WINSTA_WRITEATTRIBUTES = $0010;
  1444. {$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
  1445. WINSTA_ACCESSGLOBALATOMS = $0020;
  1446. {$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
  1447. WINSTA_EXITWINDOWS = $0040;
  1448. {$EXTERNALSYM WINSTA_EXITWINDOWS}
  1449. WINSTA_ENUMERATE = $0100;
  1450. {$EXTERNALSYM WINSTA_ENUMERATE}
  1451. WINSTA_READSCREEN = $0200;
  1452. {$EXTERNALSYM WINSTA_READSCREEN}
  1453. WINSTA_ALL_ACCESS = (WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or
  1454. WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or
  1455. WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN);
  1456. {$EXTERNALSYM WINSTA_ALL_ACCESS}
  1457. //
  1458. // Windowstation creation flags.
  1459. //
  1460. CWF_CREATE_ONLY = $0001;
  1461. {$EXTERNALSYM CWF_CREATE_ONLY}
  1462. //
  1463. // Windowstation-specific attribute flags
  1464. //
  1465. WSF_VISIBLE = $0001;
  1466. {$EXTERNALSYM WSF_VISIBLE}
  1467. function CreateWindowStationA(lpwinsta: LPCSTR; dwFlags: DWORD;
  1468. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1469. {$EXTERNALSYM CreateWindowStationA}
  1470. function CreateWindowStationW(lpwinsta: LPCWSTR; dwFlags: DWORD;
  1471. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1472. {$EXTERNALSYM CreateWindowStationW}
  1473. function CreateWindowStation(lpwinsta: LPCTSTR; dwFlags: DWORD;
  1474. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1475. {$EXTERNALSYM CreateWindowStation}
  1476. function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
  1477. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1478. {$EXTERNALSYM OpenWindowStationA}
  1479. function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
  1480. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1481. {$EXTERNALSYM OpenWindowStationW}
  1482. function OpenWindowStation(lpszWinSta: LPCTSTR; fInherit: BOOL;
  1483. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1484. {$EXTERNALSYM OpenWindowStation}
  1485. function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
  1486. {$EXTERNALSYM EnumWindowStationsA}
  1487. function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
  1488. {$EXTERNALSYM EnumWindowStationsW}
  1489. function EnumWindowStations(lpEnumFunc: WINSTAENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1490. {$EXTERNALSYM EnumWindowStations}
  1491. function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1492. {$EXTERNALSYM CloseWindowStation}
  1493. function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1494. {$EXTERNALSYM SetProcessWindowStation}
  1495. function GetProcessWindowStation: HWINSTA; stdcall;
  1496. {$EXTERNALSYM GetProcessWindowStation}
  1497. function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1498. pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  1499. {$EXTERNALSYM SetUserObjectSecurity}
  1500. function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1501. pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1502. {$EXTERNALSYM GetUserObjectSecurity}
  1503. const
  1504. UOI_FLAGS = 1;
  1505. {$EXTERNALSYM UOI_FLAGS}
  1506. UOI_NAME = 2;
  1507. {$EXTERNALSYM UOI_NAME}
  1508. UOI_TYPE = 3;
  1509. {$EXTERNALSYM UOI_TYPE}
  1510. UOI_USER_SID = 4;
  1511. {$EXTERNALSYM UOI_USER_SID}
  1512. type
  1513. PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
  1514. tagUSEROBJECTFLAGS = record
  1515. fInherit: BOOL;
  1516. fReserved: BOOL;
  1517. dwFlags: DWORD;
  1518. end;
  1519. {$EXTERNALSYM tagUSEROBJECTFLAGS}
  1520. USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
  1521. {$EXTERNALSYM USEROBJECTFLAGS}
  1522. TUserObjectFlags = USEROBJECTFLAGS;
  1523. function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1524. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1525. {$EXTERNALSYM GetUserObjectInformationA}
  1526. function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1527. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1528. {$EXTERNALSYM GetUserObjectInformationW}
  1529. function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1530. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1531. {$EXTERNALSYM GetUserObjectInformation}
  1532. function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1533. nLength: DWORD): BOOL; stdcall;
  1534. {$EXTERNALSYM SetUserObjectInformationA}
  1535. function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1536. nLength: DWORD): BOOL; stdcall;
  1537. {$EXTERNALSYM SetUserObjectInformationW}
  1538. function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1539. nLength: DWORD): BOOL; stdcall;
  1540. {$EXTERNALSYM SetUserObjectInformation}
  1541. type
  1542. LPWNDCLASSEXA = ^WNDCLASSEXA;
  1543. {$EXTERNALSYM LPWNDCLASSEXA}
  1544. tagWNDCLASSEXA = record
  1545. cbSize: UINT;
  1546. // Win 3.x
  1547. style: UINT;
  1548. lpfnWndProc: WNDPROC;
  1549. cbClsExtra: Integer;
  1550. cbWndExtra: Integer;
  1551. hInstance: HINSTANCE;
  1552. hIcon: HICON;
  1553. hCursor: HCURSOR;
  1554. hbrBackground: HBRUSH;
  1555. lpszMenuName: LPCSTR;
  1556. lpszClassName: LPCSTR;
  1557. // Win 4.0
  1558. hIconSm: HICON;
  1559. end;
  1560. {$EXTERNALSYM tagWNDCLASSEXA}
  1561. WNDCLASSEXA = tagWNDCLASSEXA;
  1562. {$EXTERNALSYM WNDCLASSEXA}
  1563. NPWNDCLASSEXA = ^WNDCLASSEXA;
  1564. {$EXTERNALSYM NPWNDCLASSEXA}
  1565. TWndClassExA = WNDCLASSEXA;
  1566. PWndClassExA = LPWNDCLASSEXA;
  1567. LPWNDCLASSEXW = ^WNDCLASSEXW;
  1568. {$EXTERNALSYM LPWNDCLASSEXW}
  1569. tagWNDCLASSEXW = record
  1570. cbSize: UINT;
  1571. // Win 3.x
  1572. style: UINT;
  1573. lpfnWndProc: WNDPROC;
  1574. cbClsExtra: Integer;
  1575. cbWndExtra: Integer;
  1576. hInstance: HINSTANCE;
  1577. hIcon: HICON;
  1578. hCursor: HCURSOR;
  1579. hbrBackground: HBRUSH;
  1580. lpszMenuName: LPCWSTR;
  1581. lpszClassName: LPCWSTR;
  1582. // Win 4.0
  1583. hIconSm: HICON;
  1584. end;
  1585. {$EXTERNALSYM tagWNDCLASSEXW}
  1586. WNDCLASSEXW = tagWNDCLASSEXW;
  1587. {$EXTERNALSYM WNDCLASSEXW}
  1588. NPWNDCLASSEXW = ^WNDCLASSEXW;
  1589. {$EXTERNALSYM NPWNDCLASSEXW}
  1590. TWndClassExW = WNDCLASSEXW;
  1591. PWndClassExW = LPWNDCLASSEXW;
  1592. {$IFDEF UNICODE}
  1593. WNDCLASSEX = WNDCLASSEXW;
  1594. {$EXTERNALSYM WNDCLASSEX}
  1595. NPWNDCLASSEX = NPWNDCLASSEXW;
  1596. {$EXTERNALSYM NPWNDCLASSEX}
  1597. LPWNDCLASSEX = LPWNDCLASSEXW;
  1598. {$EXTERNALSYM LPWNDCLASSEX}
  1599. TWndClassEx = TWndClassExW;
  1600. PWndClassEx = PWndClassExW;
  1601. {$ELSE}
  1602. WNDCLASSEX = WNDCLASSEXA;
  1603. {$EXTERNALSYM WNDCLASSEX}
  1604. NPWNDCLASSEX = NPWNDCLASSEXA;
  1605. {$EXTERNALSYM NPWNDCLASSEX}
  1606. LPWNDCLASSEX = LPWNDCLASSEXA;
  1607. {$EXTERNALSYM LPWNDCLASSEX}
  1608. TWndClassEx = TWndClassExA;
  1609. PWndClassEx = PWndClassExA;
  1610. {$ENDIF UNICODE}
  1611. LPWNDCLASSA = ^WNDCLASSA;
  1612. {$EXTERNALSYM LPWNDCLASSA}
  1613. tagWNDCLASSA = record
  1614. style: UINT;
  1615. lpfnWndProc: WNDPROC;
  1616. cbClsExtra: Integer;
  1617. cbWndExtra: Integer;
  1618. hInstance: HINSTANCE;
  1619. hIcon: HICON;
  1620. hCursor: HCURSOR;
  1621. hbrBackground: HBRUSH;
  1622. lpszMenuName: LPCSTR;
  1623. lpszClassName: LPCSTR;
  1624. end;
  1625. {$EXTERNALSYM tagWNDCLASSA}
  1626. WNDCLASSA = tagWNDCLASSA;
  1627. {$EXTERNALSYM WNDCLASSA}
  1628. NPWNDCLASSA = ^WNDCLASSA;
  1629. {$EXTERNALSYM NPWNDCLASSA}
  1630. TWndClassA = WNDCLASSA;
  1631. PWndClassA = LPWNDCLASSA;
  1632. LPWNDCLASSW = ^WNDCLASSW;
  1633. {$EXTERNALSYM LPWNDCLASSW}
  1634. tagWNDCLASSW = record
  1635. style: UINT;
  1636. lpfnWndProc: WNDPROC;
  1637. cbClsExtra: Integer;
  1638. cbWndExtra: Integer;
  1639. hInstance: HINSTANCE;
  1640. hIcon: HICON;
  1641. hCursor: HCURSOR;
  1642. hbrBackground: HBRUSH;
  1643. lpszMenuName: LPCWSTR;
  1644. lpszClassName: LPCWSTR;
  1645. end;
  1646. {$EXTERNALSYM tagWNDCLASSW}
  1647. WNDCLASSW = tagWNDCLASSW;
  1648. {$EXTERNALSYM WNDCLASSW}
  1649. NPWNDCLASSW = ^WNDCLASSW;
  1650. {$EXTERNALSYM NPWNDCLASSW}
  1651. TWndClassW = WNDCLASSW;
  1652. PWndClassW = LPWNDCLASSW;
  1653. {$IFDEF UNICODE}
  1654. WNDCLASS = WNDCLASSW;
  1655. {$EXTERNALSYM WNDCLASS}
  1656. NPWNDCLASS = NPWNDCLASSW;
  1657. {$EXTERNALSYM NPWNDCLASS}
  1658. LPWNDCLASS = LPWNDCLASSW;
  1659. {$EXTERNALSYM LPWNDCLASS}
  1660. TWndClass = TWndClassW;
  1661. PWndClass = PWndClassW;
  1662. {$ELSE}
  1663. WNDCLASS = WNDCLASSA;
  1664. {$EXTERNALSYM WNDCLASS}
  1665. NPWNDCLASS = NPWNDCLASSA;
  1666. {$EXTERNALSYM NPWNDCLASS}
  1667. LPWNDCLASS = LPWNDCLASSA;
  1668. {$EXTERNALSYM LPWNDCLASS}
  1669. TWndClass = TWndClassA;
  1670. PWndClass = PWndClassA;
  1671. {$ENDIF UNICODE}
  1672. function IsHungAppWindow(hwnd: HWND): BOOL; stdcall;
  1673. {$EXTERNALSYM IsHungAppWindow}
  1674. procedure DisableProcessWindowsGhosting; stdcall;
  1675. {$EXTERNALSYM DisableProcessWindowsGhosting}
  1676. //
  1677. // Message structure
  1678. //
  1679. type
  1680. LPMSG = ^MSG;
  1681. {$EXTERNALSYM LPMSG}
  1682. tagMSG = record
  1683. hwnd: HWND;
  1684. message: UINT;
  1685. wParam: WPARAM;
  1686. lParam: LPARAM;
  1687. time: DWORD;
  1688. pt: POINT;
  1689. end;
  1690. {$EXTERNALSYM tagMSG}
  1691. MSG = tagMSG;
  1692. {$EXTERNALSYM MSG}
  1693. NPMSG = ^MSG;
  1694. {$EXTERNALSYM NPMSG}
  1695. TMsg = MSG;
  1696. PMsg = LPMSG;
  1697. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  1698. {$EXTERNALSYM MAKEWPARAM}
  1699. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  1700. {$EXTERNALSYM MAKELPARAM}
  1701. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  1702. {$EXTERNALSYM MAKELRESULT}
  1703. //
  1704. // Window field offsets for GetWindowLong()
  1705. //
  1706. const
  1707. GWL_WNDPROC = -4;
  1708. {$EXTERNALSYM GWL_WNDPROC}
  1709. GWL_HINSTANCE = -6;
  1710. {$EXTERNALSYM GWL_HINSTANCE}
  1711. GWL_HWNDPARENT = -8;
  1712. {$EXTERNALSYM GWL_HWNDPARENT}
  1713. GWL_STYLE = -16;
  1714. {$EXTERNALSYM GWL_STYLE}
  1715. GWL_EXSTYLE = -20;
  1716. {$EXTERNALSYM GWL_EXSTYLE}
  1717. GWL_USERDATA = -21;
  1718. {$EXTERNALSYM GWL_USERDATA}
  1719. GWL_ID = -12;
  1720. {$EXTERNALSYM GWL_ID}
  1721. GWLP_WNDPROC = -4;
  1722. {$EXTERNALSYM GWLP_WNDPROC}
  1723. GWLP_HINSTANCE = -6;
  1724. {$EXTERNALSYM GWLP_HINSTANCE}
  1725. GWLP_HWNDPARENT = -8;
  1726. {$EXTERNALSYM GWLP_HWNDPARENT}
  1727. GWLP_USERDATA = -21;
  1728. {$EXTERNALSYM GWLP_USERDATA}
  1729. GWLP_ID = -12;
  1730. {$EXTERNALSYM GWLP_ID}
  1731. //
  1732. // Class field offsets for GetClassLong()
  1733. //
  1734. GCL_MENUNAME = DWORD(-8);
  1735. {$EXTERNALSYM GCL_MENUNAME}
  1736. GCL_HBRBACKGROUND = DWORD(-10);
  1737. {$EXTERNALSYM GCL_HBRBACKGROUND}
  1738. GCL_HCURSOR = DWORD(-12);
  1739. {$EXTERNALSYM GCL_HCURSOR}
  1740. GCL_HICON = DWORD(-14);
  1741. {$EXTERNALSYM GCL_HICON}
  1742. GCL_HMODULE = DWORD(-16);
  1743. {$EXTERNALSYM GCL_HMODULE}
  1744. GCL_CBWNDEXTRA = DWORD(-18);
  1745. {$EXTERNALSYM GCL_CBWNDEXTRA}
  1746. GCL_CBCLSEXTRA = DWORD(-20);
  1747. {$EXTERNALSYM GCL_CBCLSEXTRA}
  1748. GCL_WNDPROC = DWORD(-24);
  1749. {$EXTERNALSYM GCL_WNDPROC}
  1750. GCL_STYLE = DWORD(-26);
  1751. {$EXTERNALSYM GCL_STYLE}
  1752. GCW_ATOM = DWORD(-32);
  1753. {$EXTERNALSYM GCW_ATOM}
  1754. GCL_HICONSM = DWORD(-34);
  1755. {$EXTERNALSYM GCL_HICONSM}
  1756. GCLP_MENUNAME = DWORD(-8);
  1757. {$EXTERNALSYM GCLP_MENUNAME}
  1758. GCLP_HBRBACKGROUND = DWORD(-10);
  1759. {$EXTERNALSYM GCLP_HBRBACKGROUND}
  1760. GCLP_HCURSOR = DWORD(-12);
  1761. {$EXTERNALSYM GCLP_HCURSOR}
  1762. GCLP_HICON = DWORD(-14);
  1763. {$EXTERNALSYM GCLP_HICON}
  1764. GCLP_HMODULE = DWORD(-16);
  1765. {$EXTERNALSYM GCLP_HMODULE}
  1766. GCLP_WNDPROC = DWORD(-24);
  1767. {$EXTERNALSYM GCLP_WNDPROC}
  1768. GCLP_HICONSM = DWORD(-34);
  1769. {$EXTERNALSYM GCLP_HICONSM}
  1770. //
  1771. // Window Messages
  1772. //
  1773. WM_NULL = $0000;
  1774. {$EXTERNALSYM WM_NULL}
  1775. WM_CREATE = $0001;
  1776. {$EXTERNALSYM WM_CREATE}
  1777. WM_DESTROY = $0002;
  1778. {$EXTERNALSYM WM_DESTROY}
  1779. WM_MOVE = $0003;
  1780. {$EXTERNALSYM WM_MOVE}
  1781. WM_SIZE = $0005;
  1782. {$EXTERNALSYM WM_SIZE}
  1783. WM_ACTIVATE = $0006;
  1784. {$EXTERNALSYM WM_ACTIVATE}
  1785. //
  1786. // WM_ACTIVATE state values
  1787. //
  1788. WA_INACTIVE = 0;
  1789. {$EXTERNALSYM WA_INACTIVE}
  1790. WA_ACTIVE = 1;
  1791. {$EXTERNALSYM WA_ACTIVE}
  1792. WA_CLICKACTIVE = 2;
  1793. {$EXTERNALSYM WA_CLICKACTIVE}
  1794. WM_SETFOCUS = $0007;
  1795. {$EXTERNALSYM WM_SETFOCUS}
  1796. WM_KILLFOCUS = $0008;
  1797. {$EXTERNALSYM WM_KILLFOCUS}
  1798. WM_ENABLE = $000A;
  1799. {$EXTERNALSYM WM_ENABLE}
  1800. WM_SETREDRAW = $000B;
  1801. {$EXTERNALSYM WM_SETREDRAW}
  1802. WM_SETTEXT = $000C;
  1803. {$EXTERNALSYM WM_SETTEXT}
  1804. WM_GETTEXT = $000D;
  1805. {$EXTERNALSYM WM_GETTEXT}
  1806. WM_GETTEXTLENGTH = $000E;
  1807. {$EXTERNALSYM WM_GETTEXTLENGTH}
  1808. WM_PAINT = $000F;
  1809. {$EXTERNALSYM WM_PAINT}
  1810. WM_CLOSE = $0010;
  1811. {$EXTERNALSYM WM_CLOSE}
  1812. WM_QUERYENDSESSION = $0011;
  1813. {$EXTERNALSYM WM_QUERYENDSESSION}
  1814. WM_QUERYOPEN = $0013;
  1815. {$EXTERNALSYM WM_QUERYOPEN}
  1816. WM_ENDSESSION = $0016;
  1817. {$EXTERNALSYM WM_ENDSESSION}
  1818. WM_QUIT = $0012;
  1819. {$EXTERNALSYM WM_QUIT}
  1820. WM_ERASEBKGND = $0014;
  1821. {$EXTERNALSYM WM_ERASEBKGND}
  1822. WM_SYSCOLORCHANGE = $0015;
  1823. {$EXTERNALSYM WM_SYSCOLORCHANGE}
  1824. WM_SHOWWINDOW = $0018;
  1825. {$EXTERNALSYM WM_SHOWWINDOW}
  1826. WM_WININICHANGE = $001A;
  1827. {$EXTERNALSYM WM_WININICHANGE}
  1828. WM_SETTINGCHANGE = WM_WININICHANGE;
  1829. {$EXTERNALSYM WM_SETTINGCHANGE}
  1830. WM_DEVMODECHANGE = $001B;
  1831. {$EXTERNALSYM WM_DEVMODECHANGE}
  1832. WM_ACTIVATEAPP = $001C;
  1833. {$EXTERNALSYM WM_ACTIVATEAPP}
  1834. WM_FONTCHANGE = $001D;
  1835. {$EXTERNALSYM WM_FONTCHANGE}
  1836. WM_TIMECHANGE = $001E;
  1837. {$EXTERNALSYM WM_TIMECHANGE}
  1838. WM_CANCELMODE = $001F;
  1839. {$EXTERNALSYM WM_CANCELMODE}
  1840. WM_SETCURSOR = $0020;
  1841. {$EXTERNALSYM WM_SETCURSOR}
  1842. WM_MOUSEACTIVATE = $0021;
  1843. {$EXTERNALSYM WM_MOUSEACTIVATE}
  1844. WM_CHILDACTIVATE = $0022;
  1845. {$EXTERNALSYM WM_CHILDACTIVATE}
  1846. WM_QUEUESYNC = $0023;
  1847. {$EXTERNALSYM WM_QUEUESYNC}
  1848. WM_GETMINMAXINFO = $0024;
  1849. {$EXTERNALSYM WM_GETMINMAXINFO}
  1850. //
  1851. // Struct pointed to by WM_GETMINMAXINFO lParam
  1852. //
  1853. type
  1854. LPMINMAXINFO = ^MINMAXINFO;
  1855. {$EXTERNALSYM LPMINMAXINFO}
  1856. tagMINMAXINFO = record
  1857. ptReserved: POINT;
  1858. ptMaxSize: POINT;
  1859. ptMaxPosition: POINT;
  1860. ptMinTrackSize: POINT;
  1861. ptMaxTrackSize: POINT;
  1862. end;
  1863. {$EXTERNALSYM tagMINMAXINFO}
  1864. MINMAXINFO = tagMINMAXINFO;
  1865. {$EXTERNALSYM MINMAXINFO}
  1866. TMinMaxInfo = MINMAXINFO;
  1867. PMinMaxInfo = LPMINMAXINFO;
  1868. const
  1869. WM_PAINTICON = $0026;
  1870. {$EXTERNALSYM WM_PAINTICON}
  1871. WM_ICONERASEBKGND = $0027;
  1872. {$EXTERNALSYM WM_ICONERASEBKGND}
  1873. WM_NEXTDLGCTL = $0028;
  1874. {$EXTERNALSYM WM_NEXTDLGCTL}
  1875. WM_SPOOLERSTATUS = $002A;
  1876. {$EXTERNALSYM WM_SPOOLERSTATUS}
  1877. WM_DRAWITEM = $002B;
  1878. {$EXTERNALSYM WM_DRAWITEM}
  1879. WM_MEASUREITEM = $002C;
  1880. {$EXTERNALSYM WM_MEASUREITEM}
  1881. WM_DELETEITEM = $002D;
  1882. {$EXTERNALSYM WM_DELETEITEM}
  1883. WM_VKEYTOITEM = $002E;
  1884. {$EXTERNALSYM WM_VKEYTOITEM}
  1885. WM_CHARTOITEM = $002F;
  1886. {$EXTERNALSYM WM_CHARTOITEM}
  1887. WM_SETFONT = $0030;
  1888. {$EXTERNALSYM WM_SETFONT}
  1889. WM_GETFONT = $0031;
  1890. {$EXTERNALSYM WM_GETFONT}
  1891. WM_SETHOTKEY = $0032;
  1892. {$EXTERNALSYM WM_SETHOTKEY}
  1893. WM_GETHOTKEY = $0033;
  1894. {$EXTERNALSYM WM_GETHOTKEY}
  1895. WM_QUERYDRAGICON = $0037;
  1896. {$EXTERNALSYM WM_QUERYDRAGICON}
  1897. WM_COMPAREITEM = $0039;
  1898. {$EXTERNALSYM WM_COMPAREITEM}
  1899. WM_GETOBJECT = $003D;
  1900. {$EXTERNALSYM WM_GETOBJECT}
  1901. WM_COMPACTING = $0041;
  1902. {$EXTERNALSYM WM_COMPACTING}
  1903. WM_COMMNOTIFY = $0044; // no longer suported
  1904. {$EXTERNALSYM WM_COMMNOTIFY}
  1905. WM_WINDOWPOSCHANGING = $0046;
  1906. {$EXTERNALSYM WM_WINDOWPOSCHANGING}
  1907. WM_WINDOWPOSCHANGED = $0047;
  1908. {$EXTERNALSYM WM_WINDOWPOSCHANGED}
  1909. WM_POWER = $0048;
  1910. {$EXTERNALSYM WM_POWER}
  1911. //
  1912. // wParam for WM_POWER window message and DRV_POWER driver notification
  1913. //
  1914. PWR_OK = 1;
  1915. {$EXTERNALSYM PWR_OK}
  1916. PWR_FAIL = DWORD(-1);
  1917. {$EXTERNALSYM PWR_FAIL}
  1918. PWR_SUSPENDREQUEST = 1;
  1919. {$EXTERNALSYM PWR_SUSPENDREQUEST}
  1920. PWR_SUSPENDRESUME = 2;
  1921. {$EXTERNALSYM PWR_SUSPENDRESUME}
  1922. PWR_CRITICALRESUME = 3;
  1923. {$EXTERNALSYM PWR_CRITICALRESUME}
  1924. WM_COPYDATA = $004A;
  1925. {$EXTERNALSYM WM_COPYDATA}
  1926. WM_CANCELJOURNAL = $004B;
  1927. {$EXTERNALSYM WM_CANCELJOURNAL}
  1928. //
  1929. // lParam of WM_COPYDATA message points to...
  1930. //
  1931. type
  1932. PCOPYDATASTRUCT = ^COPYDATASTRUCT;
  1933. tagCOPYDATASTRUCT = record
  1934. dwData: ULONG_PTR;
  1935. cbData: DWORD;
  1936. lpData: PVOID;
  1937. end;
  1938. {$EXTERNALSYM tagCOPYDATASTRUCT}
  1939. COPYDATASTRUCT = tagCOPYDATASTRUCT;
  1940. {$EXTERNALSYM COPYDATASTRUCT}
  1941. TCopyDataStruct = COPYDATASTRUCT;
  1942. LPMDINEXTMENU = ^MDINEXTMENU;
  1943. {$EXTERNALSYM LPMDINEXTMENU}
  1944. tagMDINEXTMENU = record
  1945. hmenuIn: HMENU;
  1946. hmenuNext: HMENU;
  1947. hwndNext: HWND;
  1948. end;
  1949. {$EXTERNALSYM tagMDINEXTMENU}
  1950. MDINEXTMENU = tagMDINEXTMENU;
  1951. {$EXTERNALSYM MDINEXTMENU}
  1952. TMdiNextMenu = MDINEXTMENU;
  1953. PMdiNextMenu = LPMDINEXTMENU;
  1954. const
  1955. WM_NOTIFY = $004E;
  1956. {$EXTERNALSYM WM_NOTIFY}
  1957. WM_INPUTLANGCHANGEREQUEST = $0050;
  1958. {$EXTERNALSYM WM_INPUTLANGCHANGEREQUEST}
  1959. WM_INPUTLANGCHANGE = $0051;
  1960. {$EXTERNALSYM WM_INPUTLANGCHANGE}
  1961. WM_TCARD = $0052;
  1962. {$EXTERNALSYM WM_TCARD}
  1963. WM_HELP = $0053;
  1964. {$EXTERNALSYM WM_HELP}
  1965. WM_USERCHANGED = $0054;
  1966. {$EXTERNALSYM WM_USERCHANGED}
  1967. WM_NOTIFYFORMAT = $0055;
  1968. {$EXTERNALSYM WM_NOTIFYFORMAT}
  1969. NFR_ANSI = 1;
  1970. {$EXTERNALSYM NFR_ANSI}
  1971. NFR_UNICODE = 2;
  1972. {$EXTERNALSYM NFR_UNICODE}
  1973. NF_QUERY = 3;
  1974. {$EXTERNALSYM NF_QUERY}
  1975. NF_REQUERY = 4;
  1976. {$EXTERNALSYM NF_REQUERY}
  1977. WM_CONTEXTMENU = $007B;
  1978. {$EXTERNALSYM WM_CONTEXTMENU}
  1979. WM_STYLECHANGING = $007C;
  1980. {$EXTERNALSYM WM_STYLECHANGING}
  1981. WM_STYLECHANGED = $007D;
  1982. {$EXTERNALSYM WM_STYLECHANGED}
  1983. WM_DISPLAYCHANGE = $007E;
  1984. {$EXTERNALSYM WM_DISPLAYCHANGE}
  1985. WM_GETICON = $007F;
  1986. {$EXTERNALSYM WM_GETICON}
  1987. WM_SETICON = $0080;
  1988. {$EXTERNALSYM WM_SETICON}
  1989. WM_NCCREATE = $0081;
  1990. {$EXTERNALSYM WM_NCCREATE}
  1991. WM_NCDESTROY = $0082;
  1992. {$EXTERNALSYM WM_NCDESTROY}
  1993. WM_NCCALCSIZE = $0083;
  1994. {$EXTERNALSYM WM_NCCALCSIZE}
  1995. WM_NCHITTEST = $0084;
  1996. {$EXTERNALSYM WM_NCHITTEST}
  1997. WM_NCPAINT = $0085;
  1998. {$EXTERNALSYM WM_NCPAINT}
  1999. WM_NCACTIVATE = $0086;
  2000. {$EXTERNALSYM WM_NCACTIVATE}
  2001. WM_GETDLGCODE = $0087;
  2002. {$EXTERNALSYM WM_GETDLGCODE}
  2003. WM_SYNCPAINT = $0088;
  2004. {$EXTERNALSYM WM_SYNCPAINT}
  2005. WM_NCMOUSEMOVE = $00A0;
  2006. {$EXTERNALSYM WM_NCMOUSEMOVE}
  2007. WM_NCLBUTTONDOWN = $00A1;
  2008. {$EXTERNALSYM WM_NCLBUTTONDOWN}
  2009. WM_NCLBUTTONUP = $00A2;
  2010. {$EXTERNALSYM WM_NCLBUTTONUP}
  2011. WM_NCLBUTTONDBLCLK = $00A3;
  2012. {$EXTERNALSYM WM_NCLBUTTONDBLCLK}
  2013. WM_NCRBUTTONDOWN = $00A4;
  2014. {$EXTERNALSYM WM_NCRBUTTONDOWN}
  2015. WM_NCRBUTTONUP = $00A5;
  2016. {$EXTERNALSYM WM_NCRBUTTONUP}
  2017. WM_NCRBUTTONDBLCLK = $00A6;
  2018. {$EXTERNALSYM WM_NCRBUTTONDBLCLK}
  2019. WM_NCMBUTTONDOWN = $00A7;
  2020. {$EXTERNALSYM WM_NCMBUTTONDOWN}
  2021. WM_NCMBUTTONUP = $00A8;
  2022. {$EXTERNALSYM WM_NCMBUTTONUP}
  2023. WM_NCMBUTTONDBLCLK = $00A9;
  2024. {$EXTERNALSYM WM_NCMBUTTONDBLCLK}
  2025. WM_NCXBUTTONDOWN = $00AB;
  2026. {$EXTERNALSYM WM_NCXBUTTONDOWN}
  2027. WM_NCXBUTTONUP = $00AC;
  2028. {$EXTERNALSYM WM_NCXBUTTONUP}
  2029. WM_NCXBUTTONDBLCLK = $00AD;
  2030. {$EXTERNALSYM WM_NCXBUTTONDBLCLK}
  2031. WM_INPUT = $00FF;
  2032. {$EXTERNALSYM WM_INPUT}
  2033. WM_KEYFIRST = $0100;
  2034. {$EXTERNALSYM WM_KEYFIRST}
  2035. WM_KEYDOWN = $0100;
  2036. {$EXTERNALSYM WM_KEYDOWN}
  2037. WM_KEYUP = $0101;
  2038. {$EXTERNALSYM WM_KEYUP}
  2039. WM_CHAR = $0102;
  2040. {$EXTERNALSYM WM_CHAR}
  2041. WM_DEADCHAR = $0103;
  2042. {$EXTERNALSYM WM_DEADCHAR}
  2043. WM_SYSKEYDOWN = $0104;
  2044. {$EXTERNALSYM WM_SYSKEYDOWN}
  2045. WM_SYSKEYUP = $0105;
  2046. {$EXTERNALSYM WM_SYSKEYUP}
  2047. WM_SYSCHAR = $0106;
  2048. {$EXTERNALSYM WM_SYSCHAR}
  2049. WM_SYSDEADCHAR = $0107;
  2050. {$EXTERNALSYM WM_SYSDEADCHAR}
  2051. {$IFDEF WINXP_UP}
  2052. WM_UNICHAR = $0109;
  2053. {$EXTERNALSYM WM_UNICHAR}
  2054. WM_KEYLAST = $0109;
  2055. {$EXTERNALSYM WM_KEYLAST}
  2056. UNICODE_NOCHAR = $FFFF;
  2057. {$EXTERNALSYM UNICODE_NOCHAR}
  2058. {$ELSE}
  2059. WM_KEYLAST = $0108;
  2060. {$EXTERNALSYM WM_KEYLAST}
  2061. {$ENDIF WINXP_UP}
  2062. WM_IME_STARTCOMPOSITION = $010D;
  2063. {$EXTERNALSYM WM_IME_STARTCOMPOSITION}
  2064. WM_IME_ENDCOMPOSITION = $010E;
  2065. {$EXTERNALSYM WM_IME_ENDCOMPOSITION}
  2066. WM_IME_COMPOSITION = $010F;
  2067. {$EXTERNALSYM WM_IME_COMPOSITION}
  2068. WM_IME_KEYLAST = $010F;
  2069. {$EXTERNALSYM WM_IME_KEYLAST}
  2070. WM_INITDIALOG = $0110;
  2071. {$EXTERNALSYM WM_INITDIALOG}
  2072. WM_COMMAND = $0111;
  2073. {$EXTERNALSYM WM_COMMAND}
  2074. WM_SYSCOMMAND = $0112;
  2075. {$EXTERNALSYM WM_SYSCOMMAND}
  2076. WM_TIMER = $0113;
  2077. {$EXTERNALSYM WM_TIMER}
  2078. WM_HSCROLL = $0114;
  2079. {$EXTERNALSYM WM_HSCROLL}
  2080. WM_VSCROLL = $0115;
  2081. {$EXTERNALSYM WM_VSCROLL}
  2082. WM_INITMENU = $0116;
  2083. {$EXTERNALSYM WM_INITMENU}
  2084. WM_INITMENUPOPUP = $0117;
  2085. {$EXTERNALSYM WM_INITMENUPOPUP}
  2086. WM_MENUSELECT = $011F;
  2087. {$EXTERNALSYM WM_MENUSELECT}
  2088. WM_MENUCHAR = $0120;
  2089. {$EXTERNALSYM WM_MENUCHAR}
  2090. WM_ENTERIDLE = $0121;
  2091. {$EXTERNALSYM WM_ENTERIDLE}
  2092. WM_MENURBUTTONUP = $0122;
  2093. {$EXTERNALSYM WM_MENURBUTTONUP}
  2094. WM_MENUDRAG = $0123;
  2095. {$EXTERNALSYM WM_MENUDRAG}
  2096. WM_MENUGETOBJECT = $0124;
  2097. {$EXTERNALSYM WM_MENUGETOBJECT}
  2098. WM_UNINITMENUPOPUP = $0125;
  2099. {$EXTERNALSYM WM_UNINITMENUPOPUP}
  2100. WM_MENUCOMMAND = $0126;
  2101. {$EXTERNALSYM WM_MENUCOMMAND}
  2102. WM_CHANGEUISTATE = $0127;
  2103. {$EXTERNALSYM WM_CHANGEUISTATE}
  2104. WM_UPDATEUISTATE = $0128;
  2105. {$EXTERNALSYM WM_UPDATEUISTATE}
  2106. WM_QUERYUISTATE = $0129;
  2107. {$EXTERNALSYM WM_QUERYUISTATE}
  2108. //
  2109. // LOWORD(wParam) values in WM_*UISTATE*
  2110. //
  2111. UIS_SET = 1;
  2112. {$EXTERNALSYM UIS_SET}
  2113. UIS_CLEAR = 2;
  2114. {$EXTERNALSYM UIS_CLEAR}
  2115. UIS_INITIALIZE = 3;
  2116. {$EXTERNALSYM UIS_INITIALIZE}
  2117. //
  2118. // HIWORD(wParam) values in WM_*UISTATE*
  2119. //
  2120. UISF_HIDEFOCUS = $1;
  2121. {$EXTERNALSYM UISF_HIDEFOCUS}
  2122. UISF_HIDEACCEL = $2;
  2123. {$EXTERNALSYM UISF_HIDEACCEL}
  2124. UISF_ACTIVE = $4;
  2125. {$EXTERNALSYM UISF_ACTIVE}
  2126. WM_CTLCOLORMSGBOX = $0132;
  2127. {$EXTERNALSYM WM_CTLCOLORMSGBOX}
  2128. WM_CTLCOLOREDIT = $0133;
  2129. {$EXTERNALSYM WM_CTLCOLOREDIT}
  2130. WM_CTLCOLORLISTBOX = $0134;
  2131. {$EXTERNALSYM WM_CTLCOLORLISTBOX}
  2132. WM_CTLCOLORBTN = $0135;
  2133. {$EXTERNALSYM WM_CTLCOLORBTN}
  2134. WM_CTLCOLORDLG = $0136;
  2135. {$EXTERNALSYM WM_CTLCOLORDLG}
  2136. WM_CTLCOLORSCROLLBAR = $0137;
  2137. {$EXTERNALSYM WM_CTLCOLORSCROLLBAR}
  2138. WM_CTLCOLORSTATIC = $0138;
  2139. {$EXTERNALSYM WM_CTLCOLORSTATIC}
  2140. MN_GETHMENU = $01E1;
  2141. {$EXTERNALSYM MN_GETHMENU}
  2142. WM_MOUSEFIRST = $0200;
  2143. {$EXTERNALSYM WM_MOUSEFIRST}
  2144. WM_MOUSEMOVE = $0200;
  2145. {$EXTERNALSYM WM_MOUSEMOVE}
  2146. WM_LBUTTONDOWN = $0201;
  2147. {$EXTERNALSYM WM_LBUTTONDOWN}
  2148. WM_LBUTTONUP = $0202;
  2149. {$EXTERNALSYM WM_LBUTTONUP}
  2150. WM_LBUTTONDBLCLK = $0203;
  2151. {$EXTERNALSYM WM_LBUTTONDBLCLK}
  2152. WM_RBUTTONDOWN = $0204;
  2153. {$EXTERNALSYM WM_RBUTTONDOWN}
  2154. WM_RBUTTONUP = $0205;
  2155. {$EXTERNALSYM WM_RBUTTONUP}
  2156. WM_RBUTTONDBLCLK = $0206;
  2157. {$EXTERNALSYM WM_RBUTTONDBLCLK}
  2158. WM_MBUTTONDOWN = $0207;
  2159. {$EXTERNALSYM WM_MBUTTONDOWN}
  2160. WM_MBUTTONUP = $0208;
  2161. {$EXTERNALSYM WM_MBUTTONUP}
  2162. WM_MBUTTONDBLCLK = $0209;
  2163. {$EXTERNALSYM WM_MBUTTONDBLCLK}
  2164. WM_MOUSEWHEEL = $020A;
  2165. {$EXTERNALSYM WM_MOUSEWHEEL}
  2166. WM_XBUTTONDOWN = $020B;
  2167. {$EXTERNALSYM WM_XBUTTONDOWN}
  2168. WM_XBUTTONUP = $020C;
  2169. {$EXTERNALSYM WM_XBUTTONUP}
  2170. WM_XBUTTONDBLCLK = $020D;
  2171. {$EXTERNALSYM WM_XBUTTONDBLCLK}
  2172. {$IFDEF WIN2000_UP}
  2173. WM_MOUSELAST = $020D;
  2174. {$EXTERNALSYM WM_MOUSELAST}
  2175. {$ELSE}
  2176. {$IFDEF WINNT4}
  2177. WM_MOUSELAST = $020A;
  2178. {$EXTERNALSYM WM_MOUSELAST}
  2179. {$ELSE}
  2180. {$IFDEF WIN95_UP}
  2181. WM_MOUSELAST = $020A;
  2182. {$EXTERNALSYM WM_MOUSELAST}
  2183. {$ELSE}
  2184. WM_MOUSELAST = $0209;
  2185. {$EXTERNALSYM WM_MOUSELAST}
  2186. {$ENDIF WIN95_UP}
  2187. {$ENDIF WINNT4}
  2188. {$ENDIF WIN2000_UP}
  2189. // Value for rolling one detent//
  2190. WHEEL_DELTA = 120;
  2191. {$EXTERNALSYM WHEEL_DELTA}
  2192. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  2193. {$EXTERNALSYM GET_WHEEL_DELTA_WPARAM(wParam)}
  2194. // Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES//
  2195. const
  2196. WHEEL_PAGESCROLL = UINT_MAX;
  2197. {$EXTERNALSYM WHEEL_PAGESCROLL}
  2198. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  2199. {$EXTERNALSYM GET_KEYSTATE_WPARAM}
  2200. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  2201. {$EXTERNALSYM GET_NCHITTEST_WPARAM}
  2202. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  2203. {$EXTERNALSYM GET_XBUTTON_WPARAM}
  2204. // XButton values are WORD flags//
  2205. const
  2206. XBUTTON1 = $0001;
  2207. {$EXTERNALSYM XBUTTON1}
  2208. XBUTTON2 = $0002;
  2209. {$EXTERNALSYM XBUTTON2}
  2210. // Were there to be an XBUTTON3, it's value would be 0x0004//
  2211. WM_PARENTNOTIFY = $0210;
  2212. {$EXTERNALSYM WM_PARENTNOTIFY}
  2213. WM_ENTERMENULOOP = $0211;
  2214. {$EXTERNALSYM WM_ENTERMENULOOP}
  2215. WM_EXITMENULOOP = $0212;
  2216. {$EXTERNALSYM WM_EXITMENULOOP}
  2217. WM_NEXTMENU = $0213;
  2218. {$EXTERNALSYM WM_NEXTMENU}
  2219. WM_SIZING = $0214;
  2220. {$EXTERNALSYM WM_SIZING}
  2221. WM_CAPTURECHANGED = $0215;
  2222. {$EXTERNALSYM WM_CAPTURECHANGED}
  2223. WM_MOVING = $0216;
  2224. {$EXTERNALSYM WM_MOVING}
  2225. WM_POWERBROADCAST = $0218;
  2226. {$EXTERNALSYM WM_POWERBROADCAST}
  2227. PBT_APMQUERYSUSPEND = $0000;
  2228. {$EXTERNALSYM PBT_APMQUERYSUSPEND}
  2229. PBT_APMQUERYSTANDBY = $0001;
  2230. {$EXTERNALSYM PBT_APMQUERYSTANDBY}
  2231. PBT_APMQUERYSUSPENDFAILED = $0002;
  2232. {$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED}
  2233. PBT_APMQUERYSTANDBYFAILED = $0003;
  2234. {$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED}
  2235. PBT_APMSUSPEND = $0004;
  2236. {$EXTERNALSYM PBT_APMSUSPEND}
  2237. PBT_APMSTANDBY = $0005;
  2238. {$EXTERNALSYM PBT_APMSTANDBY}
  2239. PBT_APMRESUMECRITICAL = $0006;
  2240. {$EXTERNALSYM PBT_APMRESUMECRITICAL}
  2241. PBT_APMRESUMESUSPEND = $0007;
  2242. {$EXTERNALSYM PBT_APMRESUMESUSPEND}
  2243. PBT_APMRESUMESTANDBY = $0008;
  2244. {$EXTERNALSYM PBT_APMRESUMESTANDBY}
  2245. PBTF_APMRESUMEFROMFAILURE = $00000001;
  2246. {$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE}
  2247. PBT_APMBATTERYLOW = $0009;
  2248. {$EXTERNALSYM PBT_APMBATTERYLOW}
  2249. PBT_APMPOWERSTATUSCHANGE = $000A;
  2250. {$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE}
  2251. PBT_APMOEMEVENT = $000B;
  2252. {$EXTERNALSYM PBT_APMOEMEVENT}
  2253. PBT_APMRESUMEAUTOMATIC = $0012;
  2254. {$EXTERNALSYM PBT_APMRESUMEAUTOMATIC}
  2255. WM_DEVICECHANGE = $0219;
  2256. {$EXTERNALSYM WM_DEVICECHANGE}
  2257. WM_MDICREATE = $0220;
  2258. {$EXTERNALSYM WM_MDICREATE}
  2259. WM_MDIDESTROY = $0221;
  2260. {$EXTERNALSYM WM_MDIDESTROY}
  2261. WM_MDIACTIVATE = $0222;
  2262. {$EXTERNALSYM WM_MDIACTIVATE}
  2263. WM_MDIRESTORE = $0223;
  2264. {$EXTERNALSYM WM_MDIRESTORE}
  2265. WM_MDINEXT = $0224;
  2266. {$EXTERNALSYM WM_MDINEXT}
  2267. WM_MDIMAXIMIZE = $0225;
  2268. {$EXTERNALSYM WM_MDIMAXIMIZE}
  2269. WM_MDITILE = $0226;
  2270. {$EXTERNALSYM WM_MDITILE}
  2271. WM_MDICASCADE = $0227;
  2272. {$EXTERNALSYM WM_MDICASCADE}
  2273. WM_MDIICONARRANGE = $0228;
  2274. {$EXTERNALSYM WM_MDIICONARRANGE}
  2275. WM_MDIGETACTIVE = $0229;
  2276. {$EXTERNALSYM WM_MDIGETACTIVE}
  2277. WM_MDISETMENU = $0230;
  2278. {$EXTERNALSYM WM_MDISETMENU}
  2279. WM_ENTERSIZEMOVE = $0231;
  2280. {$EXTERNALSYM WM_ENTERSIZEMOVE}
  2281. WM_EXITSIZEMOVE = $0232;
  2282. {$EXTERNALSYM WM_EXITSIZEMOVE}
  2283. WM_DROPFILES = $0233;
  2284. {$EXTERNALSYM WM_DROPFILES}
  2285. WM_MDIREFRESHMENU = $0234;
  2286. {$EXTERNALSYM WM_MDIREFRESHMENU}
  2287. WM_IME_SETCONTEXT = $0281;
  2288. {$EXTERNALSYM WM_IME_SETCONTEXT}
  2289. WM_IME_NOTIFY = $0282;
  2290. {$EXTERNALSYM WM_IME_NOTIFY}
  2291. WM_IME_CONTROL = $0283;
  2292. {$EXTERNALSYM WM_IME_CONTROL}
  2293. WM_IME_COMPOSITIONFULL = $0284;
  2294. {$EXTERNALSYM WM_IME_COMPOSITIONFULL}
  2295. WM_IME_SELECT = $0285;
  2296. {$EXTERNALSYM WM_IME_SELECT}
  2297. WM_IME_CHAR = $0286;
  2298. {$EXTERNALSYM WM_IME_CHAR}
  2299. WM_IME_REQUEST = $0288;
  2300. {$EXTERNALSYM WM_IME_REQUEST}
  2301. WM_IME_KEYDOWN = $0290;
  2302. {$EXTERNALSYM WM_IME_KEYDOWN}
  2303. WM_IME_KEYUP = $0291;
  2304. {$EXTERNALSYM WM_IME_KEYUP}
  2305. WM_MOUSEHOVER = $02A1;
  2306. {$EXTERNALSYM WM_MOUSEHOVER}
  2307. WM_MOUSELEAVE = $02A3;
  2308. {$EXTERNALSYM WM_MOUSELEAVE}
  2309. WM_NCMOUSEHOVER = $02A0;
  2310. {$EXTERNALSYM WM_NCMOUSEHOVER}
  2311. WM_NCMOUSELEAVE = $02A2;
  2312. {$EXTERNALSYM WM_NCMOUSELEAVE}
  2313. WM_WTSSESSION_CHANGE = $02B1;
  2314. {$EXTERNALSYM WM_WTSSESSION_CHANGE}
  2315. WM_TABLET_FIRST = $02c0;
  2316. {$EXTERNALSYM WM_TABLET_FIRST}
  2317. WM_TABLET_LAST = $02df;
  2318. {$EXTERNALSYM WM_TABLET_LAST}
  2319. WM_CUT = $0300;
  2320. {$EXTERNALSYM WM_CUT}
  2321. WM_COPY = $0301;
  2322. {$EXTERNALSYM WM_COPY}
  2323. WM_PASTE = $0302;
  2324. {$EXTERNALSYM WM_PASTE}
  2325. WM_CLEAR = $0303;
  2326. {$EXTERNALSYM WM_CLEAR}
  2327. WM_UNDO = $0304;
  2328. {$EXTERNALSYM WM_UNDO}
  2329. WM_RENDERFORMAT = $0305;
  2330. {$EXTERNALSYM WM_RENDERFORMAT}
  2331. WM_RENDERALLFORMATS = $0306;
  2332. {$EXTERNALSYM WM_RENDERALLFORMATS}
  2333. WM_DESTROYCLIPBOARD = $0307;
  2334. {$EXTERNALSYM WM_DESTROYCLIPBOARD}
  2335. WM_DRAWCLIPBOARD = $0308;
  2336. {$EXTERNALSYM WM_DRAWCLIPBOARD}
  2337. WM_PAINTCLIPBOARD = $0309;
  2338. {$EXTERNALSYM WM_PAINTCLIPBOARD}
  2339. WM_VSCROLLCLIPBOARD = $030A;
  2340. {$EXTERNALSYM WM_VSCROLLCLIPBOARD}
  2341. WM_SIZECLIPBOARD = $030B;
  2342. {$EXTERNALSYM WM_SIZECLIPBOARD}
  2343. WM_ASKCBFORMATNAME = $030C;
  2344. {$EXTERNALSYM WM_ASKCBFORMATNAME}
  2345. WM_CHANGECBCHAIN = $030D;
  2346. {$EXTERNALSYM WM_CHANGECBCHAIN}
  2347. WM_HSCROLLCLIPBOARD = $030E;
  2348. {$EXTERNALSYM WM_HSCROLLCLIPBOARD}
  2349. WM_QUERYNEWPALETTE = $030F;
  2350. {$EXTERNALSYM WM_QUERYNEWPALETTE}
  2351. WM_PALETTEISCHANGING = $0310;
  2352. {$EXTERNALSYM WM_PALETTEISCHANGING}
  2353. WM_PALETTECHANGED = $0311;
  2354. {$EXTERNALSYM WM_PALETTECHANGED}
  2355. WM_HOTKEY = $0312;
  2356. {$EXTERNALSYM WM_HOTKEY}
  2357. WM_PRINT = $0317;
  2358. {$EXTERNALSYM WM_PRINT}
  2359. WM_PRINTCLIENT = $0318;
  2360. {$EXTERNALSYM WM_PRINTCLIENT}
  2361. WM_APPCOMMAND = $0319;
  2362. {$EXTERNALSYM WM_APPCOMMAND}
  2363. WM_THEMECHANGED = $031A;
  2364. {$EXTERNALSYM WM_THEMECHANGED}
  2365. WM_HANDHELDFIRST = $0358;
  2366. {$EXTERNALSYM WM_HANDHELDFIRST}
  2367. WM_HANDHELDLAST = $035F;
  2368. {$EXTERNALSYM WM_HANDHELDLAST}
  2369. WM_AFXFIRST = $0360;
  2370. {$EXTERNALSYM WM_AFXFIRST}
  2371. WM_AFXLAST = $037F;
  2372. {$EXTERNALSYM WM_AFXLAST}
  2373. WM_PENWINFIRST = $0380;
  2374. {$EXTERNALSYM WM_PENWINFIRST}
  2375. WM_PENWINLAST = $038F;
  2376. {$EXTERNALSYM WM_PENWINLAST}
  2377. WM_APP = $8000;
  2378. {$EXTERNALSYM WM_APP}
  2379. //
  2380. // NOTE: All Message Numbers below 0x0400 are RESERVED.
  2381. //
  2382. // Private Window Messages Start Here:
  2383. //
  2384. WM_USER = $0400;
  2385. {$EXTERNALSYM WM_USER}
  2386. // wParam for WM_SIZING message
  2387. WMSZ_LEFT = 1;
  2388. {$EXTERNALSYM WMSZ_LEFT}
  2389. WMSZ_RIGHT = 2;
  2390. {$EXTERNALSYM WMSZ_RIGHT}
  2391. WMSZ_TOP = 3;
  2392. {$EXTERNALSYM WMSZ_TOP}
  2393. WMSZ_TOPLEFT = 4;
  2394. {$EXTERNALSYM WMSZ_TOPLEFT}
  2395. WMSZ_TOPRIGHT = 5;
  2396. {$EXTERNALSYM WMSZ_TOPRIGHT}
  2397. WMSZ_BOTTOM = 6;
  2398. {$EXTERNALSYM WMSZ_BOTTOM}
  2399. WMSZ_BOTTOMLEFT = 7;
  2400. {$EXTERNALSYM WMSZ_BOTTOMLEFT}
  2401. WMSZ_BOTTOMRIGHT = 8;
  2402. {$EXTERNALSYM WMSZ_BOTTOMRIGHT}
  2403. //
  2404. // WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
  2405. //
  2406. HTERROR = DWORD(-2);
  2407. {$EXTERNALSYM HTERROR}
  2408. HTTRANSPARENT = DWORD(-1);
  2409. {$EXTERNALSYM HTTRANSPARENT}
  2410. HTNOWHERE = 0;
  2411. {$EXTERNALSYM HTNOWHERE}
  2412. HTCLIENT = 1;
  2413. {$EXTERNALSYM HTCLIENT}
  2414. HTCAPTION = 2;
  2415. {$EXTERNALSYM HTCAPTION}
  2416. HTSYSMENU = 3;
  2417. {$EXTERNALSYM HTSYSMENU}
  2418. HTGROWBOX = 4;
  2419. {$EXTERNALSYM HTGROWBOX}
  2420. HTSIZE = HTGROWBOX;
  2421. {$EXTERNALSYM HTSIZE}
  2422. HTMENU = 5;
  2423. {$EXTERNALSYM HTMENU}
  2424. HTHSCROLL = 6;
  2425. {$EXTERNALSYM HTHSCROLL}
  2426. HTVSCROLL = 7;
  2427. {$EXTERNALSYM HTVSCROLL}
  2428. HTMINBUTTON = 8;
  2429. {$EXTERNALSYM HTMINBUTTON}
  2430. HTMAXBUTTON = 9;
  2431. {$EXTERNALSYM HTMAXBUTTON}
  2432. HTLEFT = 10;
  2433. {$EXTERNALSYM HTLEFT}
  2434. HTRIGHT = 11;
  2435. {$EXTERNALSYM HTRIGHT}
  2436. HTTOP = 12;
  2437. {$EXTERNALSYM HTTOP}
  2438. HTTOPLEFT = 13;
  2439. {$EXTERNALSYM HTTOPLEFT}
  2440. HTTOPRIGHT = 14;
  2441. {$EXTERNALSYM HTTOPRIGHT}
  2442. HTBOTTOM = 15;
  2443. {$EXTERNALSYM HTBOTTOM}
  2444. HTBOTTOMLEFT = 16;
  2445. {$EXTERNALSYM HTBOTTOMLEFT}
  2446. HTBOTTOMRIGHT = 17;
  2447. {$EXTERNALSYM HTBOTTOMRIGHT}
  2448. HTBORDER = 18;
  2449. {$EXTERNALSYM HTBORDER}
  2450. HTREDUCE = HTMINBUTTON;
  2451. {$EXTERNALSYM HTREDUCE}
  2452. HTZOOM = HTMAXBUTTON;
  2453. {$EXTERNALSYM HTZOOM}
  2454. HTSIZEFIRST = HTLEFT;
  2455. {$EXTERNALSYM HTSIZEFIRST}
  2456. HTSIZELAST = HTBOTTOMRIGHT;
  2457. {$EXTERNALSYM HTSIZELAST}
  2458. HTOBJECT = 19;
  2459. {$EXTERNALSYM HTOBJECT}
  2460. HTCLOSE = 20;
  2461. {$EXTERNALSYM HTCLOSE}
  2462. HTHELP = 21;
  2463. {$EXTERNALSYM HTHELP}
  2464. //
  2465. // SendMessageTimeout values
  2466. //
  2467. SMTO_NORMAL = $0000;
  2468. {$EXTERNALSYM SMTO_NORMAL}
  2469. SMTO_BLOCK = $0001;
  2470. {$EXTERNALSYM SMTO_BLOCK}
  2471. SMTO_ABORTIFHUNG = $0002;
  2472. {$EXTERNALSYM SMTO_ABORTIFHUNG}
  2473. SMTO_NOTIMEOUTIFNOTHUNG = $0008;
  2474. {$EXTERNALSYM SMTO_NOTIMEOUTIFNOTHUNG}
  2475. //
  2476. // WM_MOUSEACTIVATE Return Codes
  2477. //
  2478. MA_ACTIVATE = 1;
  2479. {$EXTERNALSYM MA_ACTIVATE}
  2480. MA_ACTIVATEANDEAT = 2;
  2481. {$EXTERNALSYM MA_ACTIVATEANDEAT}
  2482. MA_NOACTIVATE = 3;
  2483. {$EXTERNALSYM MA_NOACTIVATE}
  2484. MA_NOACTIVATEANDEAT = 4;
  2485. {$EXTERNALSYM MA_NOACTIVATEANDEAT}
  2486. //
  2487. // WM_SETICON / WM_GETICON Type Codes
  2488. //
  2489. ICON_SMALL = 0;
  2490. {$EXTERNALSYM ICON_SMALL}
  2491. ICON_BIG = 1;
  2492. {$EXTERNALSYM ICON_BIG}
  2493. ICON_SMALL2 = 2;
  2494. {$EXTERNALSYM ICON_SMALL2}
  2495. function RegisterWindowMessageA(lpString: LPCSTR): UINT; stdcall;
  2496. {$EXTERNALSYM RegisterWindowMessageA}
  2497. function RegisterWindowMessageW(lpString: LPCWSTR): UINT; stdcall;
  2498. {$EXTERNALSYM RegisterWindowMessageW}
  2499. function RegisterWindowMessage(lpString: LPCTSTR): UINT; stdcall;
  2500. {$EXTERNALSYM RegisterWindowMessage}
  2501. //
  2502. // WM_SIZE message wParam values
  2503. //
  2504. const
  2505. SIZE_RESTORED = 0;
  2506. {$EXTERNALSYM SIZE_RESTORED}
  2507. SIZE_MINIMIZED = 1;
  2508. {$EXTERNALSYM SIZE_MINIMIZED}
  2509. SIZE_MAXIMIZED = 2;
  2510. {$EXTERNALSYM SIZE_MAXIMIZED}
  2511. SIZE_MAXSHOW = 3;
  2512. {$EXTERNALSYM SIZE_MAXSHOW}
  2513. SIZE_MAXHIDE = 4;
  2514. {$EXTERNALSYM SIZE_MAXHIDE}
  2515. //
  2516. // Obsolete constant names
  2517. //
  2518. SIZENORMAL = SIZE_RESTORED;
  2519. {$EXTERNALSYM SIZENORMAL}
  2520. SIZEICONIC = SIZE_MINIMIZED;
  2521. {$EXTERNALSYM SIZEICONIC}
  2522. SIZEFULLSCREEN = SIZE_MAXIMIZED;
  2523. {$EXTERNALSYM SIZEFULLSCREEN}
  2524. SIZEZOOMSHOW = SIZE_MAXSHOW;
  2525. {$EXTERNALSYM SIZEZOOMSHOW}
  2526. SIZEZOOMHIDE = SIZE_MAXHIDE;
  2527. {$EXTERNALSYM SIZEZOOMHIDE}
  2528. //
  2529. // WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
  2530. //
  2531. type
  2532. LPWINDOWPOS = ^WINDOWPOS;
  2533. {$EXTERNALSYM LPWINDOWPOS}
  2534. tagWINDOWPOS = record
  2535. hwnd: HWND;
  2536. hwndInsertAfter: HWND;
  2537. x: Integer;
  2538. y: Integer;
  2539. cx: Integer;
  2540. cy: Integer;
  2541. flags: UINT;
  2542. end;
  2543. {$EXTERNALSYM tagWINDOWPOS}
  2544. WINDOWPOS = tagWINDOWPOS;
  2545. {$EXTERNALSYM WINDOWPOS}
  2546. TWindowPos = WINDOWPOS;
  2547. PWindowPos = LPWINDOWPOS;
  2548. //
  2549. // WM_NCCALCSIZE parameter structure
  2550. //
  2551. LPNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS;
  2552. {$EXTERNALSYM LPNCCALCSIZE_PARAMS}
  2553. NCCALCSIZE_PARAMS = record
  2554. rgrc: array [0..2] of RECT;
  2555. lppos: PWINDOWPOS;
  2556. end;
  2557. {$EXTERNALSYM NCCALCSIZE_PARAMS}
  2558. TNcCalcSizeParams = NCCALCSIZE_PARAMS;
  2559. PNcCalcSizeParams = LPNCCALCSIZE_PARAMS;
  2560. //
  2561. // WM_NCCALCSIZE "window valid rect" return values
  2562. //
  2563. const
  2564. WVR_ALIGNTOP = $0010;
  2565. {$EXTERNALSYM WVR_ALIGNTOP}
  2566. WVR_ALIGNLEFT = $0020;
  2567. {$EXTERNALSYM WVR_ALIGNLEFT}
  2568. WVR_ALIGNBOTTOM = $0040;
  2569. {$EXTERNALSYM WVR_ALIGNBOTTOM}
  2570. WVR_ALIGNRIGHT = $0080;
  2571. {$EXTERNALSYM WVR_ALIGNRIGHT}
  2572. WVR_HREDRAW = $0100;
  2573. {$EXTERNALSYM WVR_HREDRAW}
  2574. WVR_VREDRAW = $0200;
  2575. {$EXTERNALSYM WVR_VREDRAW}
  2576. WVR_REDRAW = WVR_HREDRAW or WVR_VREDRAW;
  2577. {$EXTERNALSYM WVR_REDRAW}
  2578. WVR_VALIDRECTS = $0400;
  2579. {$EXTERNALSYM WVR_VALIDRECTS}
  2580. //
  2581. // Key State Masks for Mouse Messages
  2582. //
  2583. MK_LBUTTON = $0001;
  2584. {$EXTERNALSYM MK_LBUTTON}
  2585. MK_RBUTTON = $0002;
  2586. {$EXTERNALSYM MK_RBUTTON}
  2587. MK_SHIFT = $0004;
  2588. {$EXTERNALSYM MK_SHIFT}
  2589. MK_CONTROL = $0008;
  2590. {$EXTERNALSYM MK_CONTROL}
  2591. MK_MBUTTON = $0010;
  2592. {$EXTERNALSYM MK_MBUTTON}
  2593. MK_XBUTTON1 = $0020;
  2594. {$EXTERNALSYM MK_XBUTTON1}
  2595. MK_XBUTTON2 = $0040;
  2596. {$EXTERNALSYM MK_XBUTTON2}
  2597. TME_HOVER = $00000001;
  2598. {$EXTERNALSYM TME_HOVER}
  2599. TME_LEAVE = $00000002;
  2600. {$EXTERNALSYM TME_LEAVE}
  2601. TME_NONCLIENT = $00000010;
  2602. {$EXTERNALSYM TME_NONCLIENT}
  2603. TME_QUERY = $40000000;
  2604. {$EXTERNALSYM TME_QUERY}
  2605. TME_CANCEL = $80000000;
  2606. {$EXTERNALSYM TME_CANCEL}
  2607. HOVER_DEFAULT = $FFFFFFFF;
  2608. {$EXTERNALSYM HOVER_DEFAULT}
  2609. type
  2610. LPTRACKMOUSEEVENT = ^_TRACKMOUSEEVENT;
  2611. {$EXTERNALSYM LPTRACKMOUSEEVENT}
  2612. _TRACKMOUSEEVENT = record
  2613. cbSize: DWORD;
  2614. dwFlags: DWORD;
  2615. hwndTrack: HWND;
  2616. dwHoverTime: DWORD;
  2617. end;
  2618. //TRACKMOUSEEVENT = _TRACKMOUSEEVENT;
  2619. //{$EXTERNALSYM TRACKMOUSEEVENT}
  2620. TTrackMouseEvent = _TRACKMOUSEEVENT;
  2621. PTrackMouseEvent = LPTRACKMOUSEEVENT;
  2622. function TrackMouseEvent(var lpEventTrack: TTrackMouseEvent): BOOL; stdcall;
  2623. {$EXTERNALSYM TrackMouseEvent}
  2624. //
  2625. // Window Styles
  2626. //
  2627. const
  2628. WS_OVERLAPPED = $00000000;
  2629. {$EXTERNALSYM WS_OVERLAPPED}
  2630. WS_POPUP = $80000000;
  2631. {$EXTERNALSYM WS_POPUP}
  2632. WS_CHILD = $40000000;
  2633. {$EXTERNALSYM WS_CHILD}
  2634. WS_MINIMIZE = $20000000;
  2635. {$EXTERNALSYM WS_MINIMIZE}
  2636. WS_VISIBLE = $10000000;
  2637. {$EXTERNALSYM WS_VISIBLE}
  2638. WS_DISABLED = $08000000;
  2639. {$EXTERNALSYM WS_DISABLED}
  2640. WS_CLIPSIBLINGS = $04000000;
  2641. {$EXTERNALSYM WS_CLIPSIBLINGS}
  2642. WS_CLIPCHILDREN = $02000000;
  2643. {$EXTERNALSYM WS_CLIPCHILDREN}
  2644. WS_MAXIMIZE = $01000000;
  2645. {$EXTERNALSYM WS_MAXIMIZE}
  2646. WS_CAPTION = $00C00000; // WS_BORDER | WS_DLGFRAME
  2647. {$EXTERNALSYM WS_CAPTION}
  2648. WS_BORDER = $00800000;
  2649. {$EXTERNALSYM WS_BORDER}
  2650. WS_DLGFRAME = $00400000;
  2651. {$EXTERNALSYM WS_DLGFRAME}
  2652. WS_VSCROLL = $00200000;
  2653. {$EXTERNALSYM WS_VSCROLL}
  2654. WS_HSCROLL = $00100000;
  2655. {$EXTERNALSYM WS_HSCROLL}
  2656. WS_SYSMENU = $00080000;
  2657. {$EXTERNALSYM WS_SYSMENU}
  2658. WS_THICKFRAME = $00040000;
  2659. {$EXTERNALSYM WS_THICKFRAME}
  2660. WS_GROUP = $00020000;
  2661. {$EXTERNALSYM WS_GROUP}
  2662. WS_TABSTOP = $00010000;
  2663. {$EXTERNALSYM WS_TABSTOP}
  2664. WS_MINIMIZEBOX = $00020000;
  2665. {$EXTERNALSYM WS_MINIMIZEBOX}
  2666. WS_MAXIMIZEBOX = $00010000;
  2667. {$EXTERNALSYM WS_MAXIMIZEBOX}
  2668. WS_TILED = WS_OVERLAPPED;
  2669. {$EXTERNALSYM WS_TILED}
  2670. WS_ICONIC = WS_MINIMIZE;
  2671. {$EXTERNALSYM WS_ICONIC}
  2672. WS_SIZEBOX = WS_THICKFRAME;
  2673. {$EXTERNALSYM WS_SIZEBOX}
  2674. //
  2675. // Common Window Styles
  2676. //
  2677. WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
  2678. WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
  2679. {$EXTERNALSYM WS_OVERLAPPEDWINDOW}
  2680. WS_POPUPWINDOW = WS_POPUP or WS_BORDER or WS_SYSMENU;
  2681. {$EXTERNALSYM WS_POPUPWINDOW}
  2682. WS_CHILDWINDOW = WS_CHILD;
  2683. {$EXTERNALSYM WS_CHILDWINDOW}
  2684. WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
  2685. {$EXTERNALSYM WS_TILEDWINDOW}
  2686. //
  2687. // Extended Window Styles
  2688. //
  2689. WS_EX_DLGMODALFRAME = $00000001;
  2690. {$EXTERNALSYM WS_EX_DLGMODALFRAME}
  2691. WS_EX_NOPARENTNOTIFY = $00000004;
  2692. {$EXTERNALSYM WS_EX_NOPARENTNOTIFY}
  2693. WS_EX_TOPMOST = $00000008;
  2694. {$EXTERNALSYM WS_EX_TOPMOST}
  2695. WS_EX_ACCEPTFILES = $00000010;
  2696. {$EXTERNALSYM WS_EX_ACCEPTFILES}
  2697. WS_EX_TRANSPARENT = $00000020;
  2698. {$EXTERNALSYM WS_EX_TRANSPARENT}
  2699. WS_EX_MDICHILD = $00000040;
  2700. {$EXTERNALSYM WS_EX_MDICHILD}
  2701. WS_EX_TOOLWINDOW = $00000080;
  2702. {$EXTERNALSYM WS_EX_TOOLWINDOW}
  2703. WS_EX_WINDOWEDGE = $00000100;
  2704. {$EXTERNALSYM WS_EX_WINDOWEDGE}
  2705. WS_EX_CLIENTEDGE = $00000200;
  2706. {$EXTERNALSYM WS_EX_CLIENTEDGE}
  2707. WS_EX_CONTEXTHELP = $00000400;
  2708. {$EXTERNALSYM WS_EX_CONTEXTHELP}
  2709. WS_EX_RIGHT = $00001000;
  2710. {$EXTERNALSYM WS_EX_RIGHT}
  2711. WS_EX_LEFT = $00000000;
  2712. {$EXTERNALSYM WS_EX_LEFT}
  2713. WS_EX_RTLREADING = $00002000;
  2714. {$EXTERNALSYM WS_EX_RTLREADING}
  2715. WS_EX_LTRREADING = $00000000;
  2716. {$EXTERNALSYM WS_EX_LTRREADING}
  2717. WS_EX_LEFTSCROLLBAR = $00004000;
  2718. {$EXTERNALSYM WS_EX_LEFTSCROLLBAR}
  2719. WS_EX_RIGHTSCROLLBAR = $00000000;
  2720. {$EXTERNALSYM WS_EX_RIGHTSCROLLBAR}
  2721. WS_EX_CONTROLPARENT = $00010000;
  2722. {$EXTERNALSYM WS_EX_CONTROLPARENT}
  2723. WS_EX_STATICEDGE = $00020000;
  2724. {$EXTERNALSYM WS_EX_STATICEDGE}
  2725. WS_EX_APPWINDOW = $00040000;
  2726. {$EXTERNALSYM WS_EX_APPWINDOW}
  2727. WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE;
  2728. {$EXTERNALSYM WS_EX_OVERLAPPEDWINDOW}
  2729. WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
  2730. {$EXTERNALSYM WS_EX_PALETTEWINDOW}
  2731. WS_EX_LAYERED = $00080000;
  2732. {$EXTERNALSYM WS_EX_LAYERED}
  2733. WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
  2734. {$EXTERNALSYM WS_EX_NOINHERITLAYOUT}
  2735. WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
  2736. {$EXTERNALSYM WS_EX_LAYOUTRTL}
  2737. WS_EX_COMPOSITED = $02000000;
  2738. {$EXTERNALSYM WS_EX_COMPOSITED}
  2739. WS_EX_NOACTIVATE = $08000000;
  2740. {$EXTERNALSYM WS_EX_NOACTIVATE}
  2741. //
  2742. // Class styles
  2743. //
  2744. CS_VREDRAW = $0001;
  2745. {$EXTERNALSYM CS_VREDRAW}
  2746. CS_HREDRAW = $0002;
  2747. {$EXTERNALSYM CS_HREDRAW}
  2748. CS_DBLCLKS = $0008;
  2749. {$EXTERNALSYM CS_DBLCLKS}
  2750. CS_OWNDC = $0020;
  2751. {$EXTERNALSYM CS_OWNDC}
  2752. CS_CLASSDC = $0040;
  2753. {$EXTERNALSYM CS_CLASSDC}
  2754. CS_PARENTDC = $0080;
  2755. {$EXTERNALSYM CS_PARENTDC}
  2756. CS_NOCLOSE = $0200;
  2757. {$EXTERNALSYM CS_NOCLOSE}
  2758. CS_SAVEBITS = $0800;
  2759. {$EXTERNALSYM CS_SAVEBITS}
  2760. CS_BYTEALIGNCLIENT = $1000;
  2761. {$EXTERNALSYM CS_BYTEALIGNCLIENT}
  2762. CS_BYTEALIGNWINDOW = $2000;
  2763. {$EXTERNALSYM CS_BYTEALIGNWINDOW}
  2764. CS_GLOBALCLASS = $4000;
  2765. {$EXTERNALSYM CS_GLOBALCLASS}
  2766. CS_IME = $00010000;
  2767. {$EXTERNALSYM CS_IME}
  2768. CS_DROPSHADOW = $00020000;
  2769. {$EXTERNALSYM CS_DROPSHADOW}
  2770. // WM_PRINT flags//
  2771. PRF_CHECKVISIBLE = $00000001;
  2772. {$EXTERNALSYM PRF_CHECKVISIBLE}
  2773. PRF_NONCLIENT = $00000002;
  2774. {$EXTERNALSYM PRF_NONCLIENT}
  2775. PRF_CLIENT = $00000004;
  2776. {$EXTERNALSYM PRF_CLIENT}
  2777. PRF_ERASEBKGND = $00000008;
  2778. {$EXTERNALSYM PRF_ERASEBKGND}
  2779. PRF_CHILDREN = $00000010;
  2780. {$EXTERNALSYM PRF_CHILDREN}
  2781. PRF_OWNED = $00000020;
  2782. {$EXTERNALSYM PRF_OWNED}
  2783. // 3D border styles//
  2784. BDR_RAISEDOUTER = $0001;
  2785. {$EXTERNALSYM BDR_RAISEDOUTER}
  2786. BDR_SUNKENOUTER = $0002;
  2787. {$EXTERNALSYM BDR_SUNKENOUTER}
  2788. BDR_RAISEDINNER = $0004;
  2789. {$EXTERNALSYM BDR_RAISEDINNER}
  2790. BDR_SUNKENINNER = $0008;
  2791. {$EXTERNALSYM BDR_SUNKENINNER}
  2792. BDR_OUTER = BDR_RAISEDOUTER or BDR_SUNKENOUTER;
  2793. {$EXTERNALSYM BDR_OUTER}
  2794. BDR_INNER = BDR_RAISEDINNER or BDR_SUNKENINNER;
  2795. {$EXTERNALSYM BDR_INNER}
  2796. BDR_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2797. {$EXTERNALSYM BDR_RAISED}
  2798. BDR_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2799. {$EXTERNALSYM BDR_SUNKEN}
  2800. EDGE_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2801. {$EXTERNALSYM EDGE_RAISED}
  2802. EDGE_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2803. {$EXTERNALSYM EDGE_SUNKEN}
  2804. EDGE_ETCHED = BDR_SUNKENOUTER or BDR_RAISEDINNER;
  2805. {$EXTERNALSYM EDGE_ETCHED}
  2806. EDGE_BUMP = BDR_RAISEDOUTER or BDR_SUNKENINNER;
  2807. {$EXTERNALSYM EDGE_BUMP}
  2808. // Border flags//
  2809. BF_LEFT = $0001;
  2810. {$EXTERNALSYM BF_LEFT}
  2811. BF_TOP = $0002;
  2812. {$EXTERNALSYM BF_TOP}
  2813. BF_RIGHT = $0004;
  2814. {$EXTERNALSYM BF_RIGHT}
  2815. BF_BOTTOM = $0008;
  2816. {$EXTERNALSYM BF_BOTTOM}
  2817. BF_TOPLEFT = BF_TOP or BF_LEFT;
  2818. {$EXTERNALSYM BF_TOPLEFT}
  2819. BF_TOPRIGHT = BF_TOP or BF_RIGHT;
  2820. {$EXTERNALSYM BF_TOPRIGHT}
  2821. BF_BOTTOMLEFT = BF_BOTTOM or BF_LEFT;
  2822. {$EXTERNALSYM BF_BOTTOMLEFT}
  2823. BF_BOTTOMRIGHT = BF_BOTTOM or BF_RIGHT;
  2824. {$EXTERNALSYM BF_BOTTOMRIGHT}
  2825. BF_RECT = BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM;
  2826. {$EXTERNALSYM BF_RECT}
  2827. BF_DIAGONAL = $0010;
  2828. {$EXTERNALSYM BF_DIAGONAL}
  2829. // For diagonal lines, the BF_RECT flags specify the end point of the
  2830. // vector bounded by the rectangle parameter.
  2831. BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL or BF_TOP or BF_RIGHT;
  2832. {$EXTERNALSYM BF_DIAGONAL_ENDTOPRIGHT}
  2833. BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL or BF_TOP or BF_LEFT;
  2834. {$EXTERNALSYM BF_DIAGONAL_ENDTOPLEFT}
  2835. BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL or BF_BOTTOM or BF_LEFT;
  2836. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMLEFT}
  2837. BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL or BF_BOTTOM or BF_RIGHT;
  2838. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMRIGHT}
  2839. BF_MIDDLE = $0800; // Fill in the middle
  2840. {$EXTERNALSYM BF_MIDDLE}
  2841. BF_SOFT = $1000; // For softer buttons
  2842. {$EXTERNALSYM BF_SOFT}
  2843. BF_ADJUST = $2000; // Calculate the space left over
  2844. {$EXTERNALSYM BF_ADJUST}
  2845. BF_FLAT = $4000; // For flat rather than 3D borders
  2846. {$EXTERNALSYM BF_FLAT}
  2847. BF_MONO = $8000; // For monochrome borders
  2848. {$EXTERNALSYM BF_MONO}
  2849. function DrawEdge(hdc: HDC; var qrc: RECT; edge, grfFlags: UINT): BOOL; stdcall;
  2850. {$EXTERNALSYM DrawEdge}
  2851. // flags for DrawFrameControl//
  2852. const
  2853. DFC_CAPTION = 1;
  2854. {$EXTERNALSYM DFC_CAPTION}
  2855. DFC_MENU = 2;
  2856. {$EXTERNALSYM DFC_MENU}
  2857. DFC_SCROLL = 3;
  2858. {$EXTERNALSYM DFC_SCROLL}
  2859. DFC_BUTTON = 4;
  2860. {$EXTERNALSYM DFC_BUTTON}
  2861. DFC_POPUPMENU = 5;
  2862. {$EXTERNALSYM DFC_POPUPMENU}
  2863. DFCS_CAPTIONCLOSE = $0000;
  2864. {$EXTERNALSYM DFCS_CAPTIONCLOSE}
  2865. DFCS_CAPTIONMIN = $0001;
  2866. {$EXTERNALSYM DFCS_CAPTIONMIN}
  2867. DFCS_CAPTIONMAX = $0002;
  2868. {$EXTERNALSYM DFCS_CAPTIONMAX}
  2869. DFCS_CAPTIONRESTORE = $0003;
  2870. {$EXTERNALSYM DFCS_CAPTIONRESTORE}
  2871. DFCS_CAPTIONHELP = $0004;
  2872. {$EXTERNALSYM DFCS_CAPTIONHELP}
  2873. DFCS_MENUARROW = $0000;
  2874. {$EXTERNALSYM DFCS_MENUARROW}
  2875. DFCS_MENUCHECK = $0001;
  2876. {$EXTERNALSYM DFCS_MENUCHECK}
  2877. DFCS_MENUBULLET = $0002;
  2878. {$EXTERNALSYM DFCS_MENUBULLET}
  2879. DFCS_MENUARROWRIGHT = $0004;
  2880. {$EXTERNALSYM DFCS_MENUARROWRIGHT}
  2881. DFCS_SCROLLUP = $0000;
  2882. {$EXTERNALSYM DFCS_SCROLLUP}
  2883. DFCS_SCROLLDOWN = $0001;
  2884. {$EXTERNALSYM DFCS_SCROLLDOWN}
  2885. DFCS_SCROLLLEFT = $0002;
  2886. {$EXTERNALSYM DFCS_SCROLLLEFT}
  2887. DFCS_SCROLLRIGHT = $0003;
  2888. {$EXTERNALSYM DFCS_SCROLLRIGHT}
  2889. DFCS_SCROLLCOMBOBOX = $0005;
  2890. {$EXTERNALSYM DFCS_SCROLLCOMBOBOX}
  2891. DFCS_SCROLLSIZEGRIP = $0008;
  2892. {$EXTERNALSYM DFCS_SCROLLSIZEGRIP}
  2893. DFCS_SCROLLSIZEGRIPRIGHT = $0010;
  2894. {$EXTERNALSYM DFCS_SCROLLSIZEGRIPRIGHT}
  2895. DFCS_BUTTONCHECK = $0000;
  2896. {$EXTERNALSYM DFCS_BUTTONCHECK}
  2897. DFCS_BUTTONRADIOIMAGE = $0001;
  2898. {$EXTERNALSYM DFCS_BUTTONRADIOIMAGE}
  2899. DFCS_BUTTONRADIOMASK = $0002;
  2900. {$EXTERNALSYM DFCS_BUTTONRADIOMASK}
  2901. DFCS_BUTTONRADIO = $0004;
  2902. {$EXTERNALSYM DFCS_BUTTONRADIO}
  2903. DFCS_BUTTON3STATE = $0008;
  2904. {$EXTERNALSYM DFCS_BUTTON3STATE}
  2905. DFCS_BUTTONPUSH = $0010;
  2906. {$EXTERNALSYM DFCS_BUTTONPUSH}
  2907. DFCS_INACTIVE = $0100;
  2908. {$EXTERNALSYM DFCS_INACTIVE}
  2909. DFCS_PUSHED = $0200;
  2910. {$EXTERNALSYM DFCS_PUSHED}
  2911. DFCS_CHECKED = $0400;
  2912. {$EXTERNALSYM DFCS_CHECKED}
  2913. DFCS_TRANSPARENT = $0800;
  2914. {$EXTERNALSYM DFCS_TRANSPARENT}
  2915. DFCS_HOT = $1000;
  2916. {$EXTERNALSYM DFCS_HOT}
  2917. DFCS_ADJUSTRECT = $2000;
  2918. {$EXTERNALSYM DFCS_ADJUSTRECT}
  2919. DFCS_FLAT = $4000;
  2920. {$EXTERNALSYM DFCS_FLAT}
  2921. DFCS_MONO = $8000;
  2922. {$EXTERNALSYM DFCS_MONO}
  2923. function DrawFrameControl(hdc: HDC; const lprc: RECT; uType, uState: UINT): BOOL; stdcall;
  2924. {$EXTERNALSYM DrawFrameControl}
  2925. // flags for DrawCaption//
  2926. const
  2927. DC_ACTIVE = $0001;
  2928. {$EXTERNALSYM DC_ACTIVE}
  2929. DC_SMALLCAP = $0002;
  2930. {$EXTERNALSYM DC_SMALLCAP}
  2931. DC_ICON = $0004;
  2932. {$EXTERNALSYM DC_ICON}
  2933. DC_TEXT = $0008;
  2934. {$EXTERNALSYM DC_TEXT}
  2935. DC_INBUTTON = $0010;
  2936. {$EXTERNALSYM DC_INBUTTON}
  2937. DC_GRADIENT = $0020;
  2938. {$EXTERNALSYM DC_GRADIENT}
  2939. DC_BUTTONS = $1000;
  2940. {$EXTERNALSYM DC_BUTTONS}
  2941. function DrawCaption(hwnd: HWND; hdc: HDC; const lprc: RECT; uFlags: UINT): BOOL; stdcall;
  2942. {$EXTERNALSYM DrawCaption}
  2943. const
  2944. IDANI_OPEN = 1;
  2945. {$EXTERNALSYM IDANI_OPEN}
  2946. IDANI_CAPTION = 3;
  2947. {$EXTERNALSYM IDANI_CAPTION}
  2948. function DrawAnimatedRects(hwnd: HWND; idAni: Integer; const lprcFrom, lprcTo: RECT): BOOL; stdcall;
  2949. {$EXTERNALSYM DrawAnimatedRects}
  2950. //
  2951. // Predefined Clipboard Formats
  2952. //
  2953. const
  2954. CF_TEXT = 1;
  2955. {$EXTERNALSYM CF_TEXT}
  2956. CF_BITMAP = 2;
  2957. {$EXTERNALSYM CF_BITMAP}
  2958. CF_METAFILEPICT = 3;
  2959. {$EXTERNALSYM CF_METAFILEPICT}
  2960. CF_SYLK = 4;
  2961. {$EXTERNALSYM CF_SYLK}
  2962. CF_DIF = 5;
  2963. {$EXTERNALSYM CF_DIF}
  2964. CF_TIFF = 6;
  2965. {$EXTERNALSYM CF_TIFF}
  2966. CF_OEMTEXT = 7;
  2967. {$EXTERNALSYM CF_OEMTEXT}
  2968. CF_DIB = 8;
  2969. {$EXTERNALSYM CF_DIB}
  2970. CF_PALETTE = 9;
  2971. {$EXTERNALSYM CF_PALETTE}
  2972. CF_PENDATA = 10;
  2973. {$EXTERNALSYM CF_PENDATA}
  2974. CF_RIFF = 11;
  2975. {$EXTERNALSYM CF_RIFF}
  2976. CF_WAVE = 12;
  2977. {$EXTERNALSYM CF_WAVE}
  2978. CF_UNICODETEXT = 13;
  2979. {$EXTERNALSYM CF_UNICODETEXT}
  2980. CF_ENHMETAFILE = 14;
  2981. {$EXTERNALSYM CF_ENHMETAFILE}
  2982. CF_HDROP = 15;
  2983. {$EXTERNALSYM CF_HDROP}
  2984. CF_LOCALE = 16;
  2985. {$EXTERNALSYM CF_LOCALE}
  2986. CF_DIBV5 = 17;
  2987. {$EXTERNALSYM CF_DIBV5}
  2988. {$IFDEF WIN98ME_UP}
  2989. CF_MAX = 18;
  2990. {$EXTERNALSYM CF_MAX}
  2991. {$ELSE}
  2992. CF_MAX = 17;
  2993. {$EXTERNALSYM CF_MAX}
  2994. {$ENDIF WIN98ME_UP}
  2995. CF_OWNERDISPLAY = $0080;
  2996. {$EXTERNALSYM CF_OWNERDISPLAY}
  2997. CF_DSPTEXT = $0081;
  2998. {$EXTERNALSYM CF_DSPTEXT}
  2999. CF_DSPBITMAP = $0082;
  3000. {$EXTERNALSYM CF_DSPBITMAP}
  3001. CF_DSPMETAFILEPICT = $0083;
  3002. {$EXTERNALSYM CF_DSPMETAFILEPICT}
  3003. CF_DSPENHMETAFILE = $008E;
  3004. {$EXTERNALSYM CF_DSPENHMETAFILE}
  3005. //
  3006. // "Private" formats don't get GlobalFree()'d
  3007. //
  3008. CF_PRIVATEFIRST = $0200;
  3009. {$EXTERNALSYM CF_PRIVATEFIRST}
  3010. CF_PRIVATELAST = $02FF;
  3011. {$EXTERNALSYM CF_PRIVATELAST}
  3012. //
  3013. // "GDIOBJ" formats do get DeleteObject()'d
  3014. //
  3015. CF_GDIOBJFIRST = $0300;
  3016. {$EXTERNALSYM CF_GDIOBJFIRST}
  3017. CF_GDIOBJLAST = $03FF;
  3018. {$EXTERNALSYM CF_GDIOBJLAST}
  3019. //
  3020. // Defines for the fVirt field of the Accelerator table structure.
  3021. //
  3022. FVIRTKEY = TRUE; // Assumed to be == TRUE
  3023. {$EXTERNALSYM FVIRTKEY}
  3024. FNOINVERT = $02;
  3025. {$EXTERNALSYM FNOINVERT}
  3026. FSHIFT = $04;
  3027. {$EXTERNALSYM FSHIFT}
  3028. FCONTROL = $08;
  3029. {$EXTERNALSYM FCONTROL}
  3030. FALT = $10;
  3031. {$EXTERNALSYM FALT}
  3032. type
  3033. LPACCEL = ^ACCEL;
  3034. {$EXTERNALSYM LPACCEL}
  3035. tagACCEL = record
  3036. fVirt: BYTE; // Also called the flags field//
  3037. key: WORD;
  3038. cmd: WORD;
  3039. end;
  3040. {$EXTERNALSYM tagACCEL}
  3041. ACCEL = tagACCEL;
  3042. {$EXTERNALSYM ACCEL}
  3043. TAccel = ACCEL;
  3044. PAccel = LPACCEL;
  3045. LPPAINTSTRUCT = ^PAINTSTRUCT;
  3046. {$EXTERNALSYM LPPAINTSTRUCT}
  3047. tagPAINTSTRUCT = record
  3048. hdc: HDC;
  3049. fErase: BOOL;
  3050. rcPaint: RECT;
  3051. fRestore: BOOL;
  3052. fIncUpdate: BOOL;
  3053. rgbReserved: array [0..31] of BYTE;
  3054. end;
  3055. {$EXTERNALSYM tagPAINTSTRUCT}
  3056. PAINTSTRUCT = tagPAINTSTRUCT;
  3057. {$EXTERNALSYM PAINTSTRUCT}
  3058. NPPAINTSTRUCT = ^PAINTSTRUCT;
  3059. {$EXTERNALSYM NPPAINTSTRUCT}
  3060. TPaintStruct = PAINTSTRUCT;
  3061. PPaintStruct = LPPAINTSTRUCT;
  3062. LPCREATESTRUCTA = ^CREATESTRUCTA;
  3063. {$EXTERNALSYM LPCREATESTRUCTA}
  3064. tagCREATESTRUCTA = record
  3065. lpCreateParams: LPVOID;
  3066. hInstance: HINSTANCE;
  3067. hMenu: HMENU;
  3068. hwndParent: HWND;
  3069. cy: Integer;
  3070. cx: Integer;
  3071. y: Integer;
  3072. x: Integer;
  3073. style: LONG;
  3074. lpszName: LPCSTR;
  3075. lpszClass: LPCSTR;
  3076. dwExStyle: DWORD;
  3077. end;
  3078. {$EXTERNALSYM tagCREATESTRUCTA}
  3079. CREATESTRUCTA = tagCREATESTRUCTA;
  3080. {$EXTERNALSYM CREATESTRUCTA}
  3081. TCreateStructA = CREATESTRUCTA;
  3082. PCreateStructA = LPCREATESTRUCTA;
  3083. LPCREATESTRUCTW = ^CREATESTRUCTW;
  3084. {$EXTERNALSYM LPCREATESTRUCTW}
  3085. tagCREATESTRUCTW = record
  3086. lpCreateParams: LPVOID;
  3087. hInstance: HINSTANCE;
  3088. hMenu: HMENU;
  3089. hwndParent: HWND;
  3090. cy: Integer;
  3091. cx: Integer;
  3092. y: Integer;
  3093. x: Integer;
  3094. style: LONG;
  3095. lpszName: LPCWSTR;
  3096. lpszClass: LPCWSTR;
  3097. dwExStyle: DWORD;
  3098. end;
  3099. {$EXTERNALSYM tagCREATESTRUCTW}
  3100. CREATESTRUCTW = tagCREATESTRUCTW;
  3101. {$EXTERNALSYM CREATESTRUCTW}
  3102. TCreateStructW = CREATESTRUCTW;
  3103. PCreateStructW = LPCREATESTRUCTW;
  3104. {$IFDEF UNICODE}
  3105. CREATESTRUCT = CREATESTRUCTW;
  3106. {$EXTERNALSYM CREATESTRUCT}
  3107. LPCREATESTRUCT = LPCREATESTRUCTW;
  3108. {$EXTERNALSYM LPCREATESTRUCT}
  3109. TCreateStruct = TCreateStructW;
  3110. PCreateStruct = PCreateStructW;
  3111. {$ELSE}
  3112. CREATESTRUCT = CREATESTRUCTA;
  3113. {$EXTERNALSYM CREATESTRUCT}
  3114. LPCREATESTRUCT = LPCREATESTRUCTA;
  3115. {$EXTERNALSYM LPCREATESTRUCT}
  3116. TCreateStruct = TCreateStructA;
  3117. PCreateStruct = PCreateStructA;
  3118. {$ENDIF UNICODE}
  3119. //
  3120. // HCBT_CREATEWND parameters pointed to by lParam
  3121. //
  3122. type
  3123. LPCBT_CREATEWNDA = ^CBT_CREATEWNDA;
  3124. {$EXTERNALSYM LPCBT_CREATEWNDA}
  3125. tagCBT_CREATEWNDA = record
  3126. lpcs: LPCREATESTRUCTA;
  3127. hwndInsertAfter: HWND;
  3128. end;
  3129. {$EXTERNALSYM tagCBT_CREATEWNDA}
  3130. CBT_CREATEWNDA = tagCBT_CREATEWNDA;
  3131. {$EXTERNALSYM CBT_CREATEWNDA}
  3132. TCbtCreateWndA = CBT_CREATEWNDA;
  3133. PCbtCreateWndA = LPCBT_CREATEWNDA;
  3134. //
  3135. // HCBT_CREATEWND parameters pointed to by lParam
  3136. //
  3137. LPCBT_CREATEWNDW = ^CBT_CREATEWNDW;
  3138. {$EXTERNALSYM LPCBT_CREATEWNDW}
  3139. tagCBT_CREATEWNDW = record
  3140. lpcs: LPCREATESTRUCTW;
  3141. hwndInsertAfter: HWND;
  3142. end;
  3143. {$EXTERNALSYM tagCBT_CREATEWNDW}
  3144. CBT_CREATEWNDW = tagCBT_CREATEWNDW;
  3145. {$EXTERNALSYM CBT_CREATEWNDW}
  3146. TCbtCreateWndW = CBT_CREATEWNDW;
  3147. PCbtCreateWndW = LPCBT_CREATEWNDW;
  3148. {$IFDEF UNICODE}
  3149. CBT_CREATEWND = CBT_CREATEWNDW;
  3150. {$EXTERNALSYM CBT_CREATEWND}
  3151. LPCBT_CREATEWND = LPCBT_CREATEWNDW;
  3152. {$EXTERNALSYM LPCBT_CREATEWND}
  3153. {$ELSE}
  3154. CBT_CREATEWND = CBT_CREATEWNDA;
  3155. {$EXTERNALSYM CBT_CREATEWND}
  3156. LPCBT_CREATEWND = LPCBT_CREATEWNDA;
  3157. {$EXTERNALSYM LPCBT_CREATEWND}
  3158. {$ENDIF UNICODE}
  3159. LPWINDOWPLACEMENT = ^WINDOWPLACEMENT;
  3160. {$EXTERNALSYM LPWINDOWPLACEMENT}
  3161. tagWINDOWPLACEMENT = record
  3162. length: UINT;
  3163. flags: UINT;
  3164. showCmd: UINT;
  3165. ptMinPosition: POINT;
  3166. ptMaxPosition: POINT;
  3167. rcNormalPosition: RECT;
  3168. end;
  3169. {$EXTERNALSYM tagWINDOWPLACEMENT}
  3170. WINDOWPLACEMENT = tagWINDOWPLACEMENT;
  3171. {$EXTERNALSYM WINDOWPLACEMENT}
  3172. TWindowPlacement = WINDOWPLACEMENT;
  3173. PWindowPlacement = LPWINDOWPLACEMENT;
  3174. const
  3175. WPF_SETMINPOSITION = $0001;
  3176. {$EXTERNALSYM WPF_SETMINPOSITION}
  3177. WPF_RESTORETOMAXIMIZED = $0002;
  3178. {$EXTERNALSYM WPF_RESTORETOMAXIMIZED}
  3179. WPF_ASYNCWINDOWPLACEMENT = $0004;
  3180. {$EXTERNALSYM WPF_ASYNCWINDOWPLACEMENT}
  3181. type
  3182. LPNMHDR = ^NMHDR;
  3183. {$EXTERNALSYM LPNMHDR}
  3184. tagNMHDR = record
  3185. hwndFrom: HWND;
  3186. idFrom: UINT_PTR;
  3187. code: UINT; // NM_ code
  3188. end;
  3189. {$EXTERNALSYM tagNMHDR}
  3190. NMHDR = tagNMHDR;
  3191. {$EXTERNALSYM NMHDR}
  3192. TNmHdr = NMHDR;
  3193. PNmHdr = LPNMHDR;
  3194. LPSTYLESTRUCT = ^STYLESTRUCT;
  3195. {$EXTERNALSYM LPSTYLESTRUCT}
  3196. tagSTYLESTRUCT = record
  3197. styleOld: DWORD;
  3198. styleNew: DWORD;
  3199. end;
  3200. {$EXTERNALSYM tagSTYLESTRUCT}
  3201. STYLESTRUCT = tagSTYLESTRUCT;
  3202. {$EXTERNALSYM STYLESTRUCT}
  3203. TStyleStruct = STYLESTRUCT;
  3204. PStyleStruct = LPSTYLESTRUCT;
  3205. //
  3206. // Owner draw control types
  3207. //
  3208. const
  3209. ODT_MENU = 1;
  3210. {$EXTERNALSYM ODT_MENU}
  3211. ODT_LISTBOX = 2;
  3212. {$EXTERNALSYM ODT_LISTBOX}
  3213. ODT_COMBOBOX = 3;
  3214. {$EXTERNALSYM ODT_COMBOBOX}
  3215. ODT_BUTTON = 4;
  3216. {$EXTERNALSYM ODT_BUTTON}
  3217. ODT_STATIC = 5;
  3218. {$EXTERNALSYM ODT_STATIC}
  3219. //
  3220. // Owner draw actions
  3221. //
  3222. ODA_DRAWENTIRE = $0001;
  3223. {$EXTERNALSYM ODA_DRAWENTIRE}
  3224. ODA_SELECT = $0002;
  3225. {$EXTERNALSYM ODA_SELECT}
  3226. ODA_FOCUS = $0004;
  3227. {$EXTERNALSYM ODA_FOCUS}
  3228. //
  3229. // Owner draw state
  3230. //
  3231. ODS_SELECTED = $0001;
  3232. {$EXTERNALSYM ODS_SELECTED}
  3233. ODS_GRAYED = $0002;
  3234. {$EXTERNALSYM ODS_GRAYED}
  3235. ODS_DISABLED = $0004;
  3236. {$EXTERNALSYM ODS_DISABLED}
  3237. ODS_CHECKED = $0008;
  3238. {$EXTERNALSYM ODS_CHECKED}
  3239. ODS_FOCUS = $0010;
  3240. {$EXTERNALSYM ODS_FOCUS}
  3241. ODS_DEFAULT = $0020;
  3242. {$EXTERNALSYM ODS_DEFAULT}
  3243. ODS_COMBOBOXEDIT = $1000;
  3244. {$EXTERNALSYM ODS_COMBOBOXEDIT}
  3245. ODS_HOTLIGHT = $0040;
  3246. {$EXTERNALSYM ODS_HOTLIGHT}
  3247. ODS_INACTIVE = $0080;
  3248. {$EXTERNALSYM ODS_INACTIVE}
  3249. ODS_NOACCEL = $0100;
  3250. {$EXTERNALSYM ODS_NOACCEL}
  3251. ODS_NOFOCUSRECT = $0200;
  3252. {$EXTERNALSYM ODS_NOFOCUSRECT}
  3253. //
  3254. // MEASUREITEMSTRUCT for ownerdraw
  3255. //
  3256. type
  3257. LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  3258. {$EXTERNALSYM LPMEASUREITEMSTRUCT}
  3259. tagMEASUREITEMSTRUCT = record
  3260. CtlType: UINT;
  3261. CtlID: UINT;
  3262. itemID: UINT;
  3263. itemWidth: UINT;
  3264. itemHeight: UINT;
  3265. itemData: ULONG_PTR;
  3266. end;
  3267. {$EXTERNALSYM tagMEASUREITEMSTRUCT}
  3268. MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT;
  3269. {$EXTERNALSYM MEASUREITEMSTRUCT}
  3270. TMeasureItemStruct = MEASUREITEMSTRUCT;
  3271. PMeasureItemStruct = LPMEASUREITEMSTRUCT;
  3272. //
  3273. // DRAWITEMSTRUCT for ownerdraw
  3274. //
  3275. LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  3276. {$EXTERNALSYM LPDRAWITEMSTRUCT}
  3277. tagDRAWITEMSTRUCT = record
  3278. CtlType: UINT;
  3279. CtlID: UINT;
  3280. itemID: UINT;
  3281. itemAction: UINT;
  3282. itemState: UINT;
  3283. hwndItem: HWND;
  3284. hDC: HDC;
  3285. rcItem: RECT;
  3286. itemData: ULONG_PTR;
  3287. end;
  3288. {$EXTERNALSYM tagDRAWITEMSTRUCT}
  3289. DRAWITEMSTRUCT = tagDRAWITEMSTRUCT;
  3290. {$EXTERNALSYM DRAWITEMSTRUCT}
  3291. TDrawItemStruct = DRAWITEMSTRUCT;
  3292. PDrawItemStruct = LPDRAWITEMSTRUCT;
  3293. //
  3294. // DELETEITEMSTRUCT for ownerdraw
  3295. //
  3296. LPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
  3297. {$EXTERNALSYM LPDELETEITEMSTRUCT}
  3298. tagDELETEITEMSTRUCT = record
  3299. CtlType: UINT;
  3300. CtlID: UINT;
  3301. itemID: UINT;
  3302. hwndItem: HWND;
  3303. itemData: ULONG_PTR;
  3304. end;
  3305. {$EXTERNALSYM tagDELETEITEMSTRUCT}
  3306. DELETEITEMSTRUCT = tagDELETEITEMSTRUCT;
  3307. {$EXTERNALSYM DELETEITEMSTRUCT}
  3308. TDeleteItemStruct = DELETEITEMSTRUCT;
  3309. PDeleteItemStruct = LPDELETEITEMSTRUCT;
  3310. //
  3311. // COMPAREITEMSTUCT for ownerdraw sorting
  3312. //
  3313. LPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
  3314. {$EXTERNALSYM LPCOMPAREITEMSTRUCT}
  3315. tagCOMPAREITEMSTRUCT = record
  3316. CtlType: UINT;
  3317. CtlID: UINT;
  3318. hwndItem: HWND;
  3319. itemID1: UINT;
  3320. itemData1: ULONG_PTR;
  3321. itemID2: UINT;
  3322. itemData2: ULONG_PTR;
  3323. dwLocaleId: DWORD;
  3324. end;
  3325. {$EXTERNALSYM tagCOMPAREITEMSTRUCT}
  3326. COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT;
  3327. {$EXTERNALSYM COMPAREITEMSTRUCT}
  3328. TCompareItemStruct = COMPAREITEMSTRUCT;
  3329. PCompareItemStruct = LPCOMPAREITEMSTRUCT;
  3330. //
  3331. // Message Function Templates
  3332. //
  3333. function GetMessageA(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3334. {$EXTERNALSYM GetMessageA}
  3335. function GetMessageW(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3336. {$EXTERNALSYM GetMessageW}
  3337. function GetMessage(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3338. {$EXTERNALSYM GetMessage}
  3339. function TranslateMessage(lpMsg: LPMSG): BOOL; stdcall;
  3340. {$EXTERNALSYM TranslateMessage}
  3341. function DispatchMessageA(lpMsg: LPMSG): LRESULT; stdcall;
  3342. {$EXTERNALSYM DispatchMessageA}
  3343. function DispatchMessageW(lpMsg: LPMSG): LRESULT; stdcall;
  3344. {$EXTERNALSYM DispatchMessageW}
  3345. function DispatchMessage(lpMsg: LPMSG): LRESULT; stdcall;
  3346. {$EXTERNALSYM DispatchMessage}
  3347. function SetMessageQueue(cMessagesMax: Integer): BOOL; stdcall;
  3348. {$EXTERNALSYM SetMessageQueue}
  3349. function PeekMessageA(var lpMsg: MSG; hWnd: HWND;
  3350. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3351. {$EXTERNALSYM PeekMessageA}
  3352. function PeekMessageW(var lpMsg: MSG; hWnd: HWND;
  3353. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3354. {$EXTERNALSYM PeekMessageW}
  3355. function PeekMessage(var lpMsg: MSG; hWnd: HWND;
  3356. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3357. {$EXTERNALSYM PeekMessage}
  3358. //
  3359. // Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
  3360. //
  3361. const
  3362. QS_KEY = $0001;
  3363. {$EXTERNALSYM QS_KEY}
  3364. QS_MOUSEMOVE = $0002;
  3365. {$EXTERNALSYM QS_MOUSEMOVE}
  3366. QS_MOUSEBUTTON = $0004;
  3367. {$EXTERNALSYM QS_MOUSEBUTTON}
  3368. QS_POSTMESSAGE = $0008;
  3369. {$EXTERNALSYM QS_POSTMESSAGE}
  3370. QS_TIMER = $0010;
  3371. {$EXTERNALSYM QS_TIMER}
  3372. QS_PAINT = $0020;
  3373. {$EXTERNALSYM QS_PAINT}
  3374. QS_SENDMESSAGE = $0040;
  3375. {$EXTERNALSYM QS_SENDMESSAGE}
  3376. QS_HOTKEY = $0080;
  3377. {$EXTERNALSYM QS_HOTKEY}
  3378. QS_ALLPOSTMESSAGE = $0100;
  3379. {$EXTERNALSYM QS_ALLPOSTMESSAGE}
  3380. QS_RAWINPUT = $0400;
  3381. {$EXTERNALSYM QS_RAWINPUT}
  3382. QS_MOUSE = QS_MOUSEMOVE or QS_MOUSEBUTTON;
  3383. {$EXTERNALSYM QS_MOUSE}
  3384. QS_INPUT = QS_MOUSE or QS_KEY {$IFDEF WINXP_UP} or QS_RAWINPUT {$ENDIF};
  3385. {$EXTERNALSYM QS_INPUT}
  3386. QS_ALLEVENTS = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY;
  3387. {$EXTERNALSYM QS_ALLEVENTS}
  3388. QS_ALLINPUT = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or
  3389. QS_HOTKEY or QS_SENDMESSAGE);
  3390. {$EXTERNALSYM QS_ALLINPUT}
  3391. //
  3392. // PeekMessage() Options
  3393. //
  3394. const
  3395. PM_NOREMOVE = $0000;
  3396. {$EXTERNALSYM PM_NOREMOVE}
  3397. PM_REMOVE = $0001;
  3398. {$EXTERNALSYM PM_REMOVE}
  3399. PM_NOYIELD = $0002;
  3400. {$EXTERNALSYM PM_NOYIELD}
  3401. PM_QS_INPUT = QS_INPUT shl 16;
  3402. {$EXTERNALSYM PM_QS_INPUT}
  3403. PM_QS_POSTMESSAGE = (QS_POSTMESSAGE or QS_HOTKEY or QS_TIMER) shl 16;
  3404. {$EXTERNALSYM PM_QS_POSTMESSAGE}
  3405. PM_QS_PAINT = QS_PAINT shl 16;
  3406. {$EXTERNALSYM PM_QS_PAINT}
  3407. PM_QS_SENDMESSAGE = QS_SENDMESSAGE shl 16;
  3408. {$EXTERNALSYM PM_QS_SENDMESSAGE}
  3409. function RegisterHotKey(hWnd: HWND; id: Integer; fsModifiers, vk: UINT): BOOL; stdcall;
  3410. {$EXTERNALSYM RegisterHotKey}
  3411. function UnregisterHotKey(hWnd: HWND; id: Integer): BOOL; stdcall;
  3412. {$EXTERNALSYM UnregisterHotKey}
  3413. const
  3414. MOD_ALT = $0001;
  3415. {$EXTERNALSYM MOD_ALT}
  3416. MOD_CONTROL = $0002;
  3417. {$EXTERNALSYM MOD_CONTROL}
  3418. MOD_SHIFT = $0004;
  3419. {$EXTERNALSYM MOD_SHIFT}
  3420. MOD_WIN = $0008;
  3421. {$EXTERNALSYM MOD_WIN}
  3422. IDHOT_SNAPWINDOW = DWORD(-1); // SHIFT-PRINTSCRN
  3423. {$EXTERNALSYM IDHOT_SNAPWINDOW}
  3424. IDHOT_SNAPDESKTOP = DWORD(-2); // PRINTSCRN
  3425. {$EXTERNALSYM IDHOT_SNAPDESKTOP}
  3426. const
  3427. ENDSESSION_LOGOFF = DWORD($80000000);
  3428. {$EXTERNALSYM ENDSESSION_LOGOFF}
  3429. EWX_LOGOFF = 0;
  3430. {$EXTERNALSYM EWX_LOGOFF}
  3431. EWX_SHUTDOWN = $00000001;
  3432. {$EXTERNALSYM EWX_SHUTDOWN}
  3433. EWX_REBOOT = $00000002;
  3434. {$EXTERNALSYM EWX_REBOOT}
  3435. EWX_FORCE = $00000004;
  3436. {$EXTERNALSYM EWX_FORCE}
  3437. EWX_POWEROFF = $00000008;
  3438. {$EXTERNALSYM EWX_POWEROFF}
  3439. EWX_FORCEIFHUNG = $00000010;
  3440. {$EXTERNALSYM EWX_FORCEIFHUNG}
  3441. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  3442. {$EXTERNALSYM ExitWindows}
  3443. function ExitWindowsEx(uFlags: UINT; dwReserved: DWORD): BOOL; stdcall;
  3444. {$EXTERNALSYM ExitWindowsEx}
  3445. function SwapMouseButton(fSwap: BOOL): BOOL; stdcall;
  3446. {$EXTERNALSYM SwapMouseButton}
  3447. function GetMessagePos: DWORD; stdcall;
  3448. {$EXTERNALSYM GetMessagePos}
  3449. function GetMessageTime: LONG; stdcall;
  3450. {$EXTERNALSYM GetMessageTime}
  3451. function GetMessageExtraInfo: LPARAM; stdcall;
  3452. {$EXTERNALSYM GetMessageExtraInfo}
  3453. function SetMessageExtraInfo(lParam: LPARAM): LPARAM; stdcall;
  3454. {$EXTERNALSYM SetMessageExtraInfo}
  3455. function SendMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3456. {$EXTERNALSYM SendMessageA}
  3457. function SendMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3458. {$EXTERNALSYM SendMessageW}
  3459. function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3460. {$EXTERNALSYM SendMessage}
  3461. function SendMessageTimeoutA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3462. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3463. {$EXTERNALSYM SendMessageTimeoutA}
  3464. function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3465. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3466. {$EXTERNALSYM SendMessageTimeoutW}
  3467. function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3468. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3469. {$EXTERNALSYM SendMessageTimeout}
  3470. function SendNotifyMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3471. {$EXTERNALSYM SendNotifyMessageA}
  3472. function SendNotifyMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3473. {$EXTERNALSYM SendNotifyMessageW}
  3474. function SendNotifyMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3475. {$EXTERNALSYM SendNotifyMessage}
  3476. function SendMessageCallbackA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3477. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3478. {$EXTERNALSYM SendMessageCallbackA}
  3479. function SendMessageCallbackW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3480. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3481. {$EXTERNALSYM SendMessageCallbackW}
  3482. function SendMessageCallback(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3483. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3484. {$EXTERNALSYM SendMessageCallback}
  3485. type
  3486. BSMINFO = record
  3487. cbSize: UINT;
  3488. hdesk: HDESK;
  3489. hwnd: HWND;
  3490. luid: LUID;
  3491. end;
  3492. {$EXTERNALSYM BSMINFO}
  3493. PBSMINFO = ^BSMINFO;
  3494. TBsmInfo = BSMINFO;
  3495. function BroadcastSystemMessageExA(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3496. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3497. {$EXTERNALSYM BroadcastSystemMessageExA}
  3498. function BroadcastSystemMessageExW(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3499. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3500. {$EXTERNALSYM BroadcastSystemMessageExW}
  3501. function BroadcastSystemMessageEx(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3502. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3503. {$EXTERNALSYM BroadcastSystemMessageEx}
  3504. function BroadcastSystemMessageA(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3505. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3506. {$EXTERNALSYM BroadcastSystemMessageA}
  3507. function BroadcastSystemMessageW(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3508. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3509. {$EXTERNALSYM BroadcastSystemMessageW}
  3510. function BroadcastSystemMessage(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3511. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3512. {$EXTERNALSYM BroadcastSystemMessage}
  3513. //Broadcast Special Message Recipient list
  3514. const
  3515. BSM_ALLCOMPONENTS = $00000000;
  3516. {$EXTERNALSYM BSM_ALLCOMPONENTS}
  3517. BSM_VXDS = $00000001;
  3518. {$EXTERNALSYM BSM_VXDS}
  3519. BSM_NETDRIVER = $00000002;
  3520. {$EXTERNALSYM BSM_NETDRIVER}
  3521. BSM_INSTALLABLEDRIVERS = $00000004;
  3522. {$EXTERNALSYM BSM_INSTALLABLEDRIVERS}
  3523. BSM_APPLICATIONS = $00000008;
  3524. {$EXTERNALSYM BSM_APPLICATIONS}
  3525. BSM_ALLDESKTOPS = $00000010;
  3526. {$EXTERNALSYM BSM_ALLDESKTOPS}
  3527. //Broadcast Special Message Flags
  3528. BSF_QUERY = $00000001;
  3529. {$EXTERNALSYM BSF_QUERY}
  3530. BSF_IGNORECURRENTTASK = $00000002;
  3531. {$EXTERNALSYM BSF_IGNORECURRENTTASK}
  3532. BSF_FLUSHDISK = $00000004;
  3533. {$EXTERNALSYM BSF_FLUSHDISK}
  3534. BSF_NOHANG = $00000008;
  3535. {$EXTERNALSYM BSF_NOHANG}
  3536. BSF_POSTMESSAGE = $00000010;
  3537. {$EXTERNALSYM BSF_POSTMESSAGE}
  3538. BSF_FORCEIFHUNG = $00000020;
  3539. {$EXTERNALSYM BSF_FORCEIFHUNG}
  3540. BSF_NOTIMEOUTIFNOTHUNG = $00000040;
  3541. {$EXTERNALSYM BSF_NOTIMEOUTIFNOTHUNG}
  3542. BSF_ALLOWSFW = $00000080;
  3543. {$EXTERNALSYM BSF_ALLOWSFW}
  3544. BSF_SENDNOTIFYMESSAGE = $00000100;
  3545. {$EXTERNALSYM BSF_SENDNOTIFYMESSAGE}
  3546. BSF_RETURNHDESK = $00000200;
  3547. {$EXTERNALSYM BSF_RETURNHDESK}
  3548. BSF_LUID = $00000400;
  3549. {$EXTERNALSYM BSF_LUID}
  3550. BROADCAST_QUERY_DENY = $424D5144; // Return this value to deny a query.
  3551. {$EXTERNALSYM BROADCAST_QUERY_DENY}
  3552. // RegisterDeviceNotification
  3553. type
  3554. HDEVNOTIFY = PVOID;
  3555. {$EXTERNALSYM HDEVNOTIFY}
  3556. PHDEVNOTIFY = ^HDEVNOTIFY;
  3557. {$EXTERNALSYM PHDEVNOTIFY}
  3558. const
  3559. DEVICE_NOTIFY_WINDOW_HANDLE = $00000000;
  3560. {$EXTERNALSYM DEVICE_NOTIFY_WINDOW_HANDLE}
  3561. DEVICE_NOTIFY_SERVICE_HANDLE = $00000001;
  3562. {$EXTERNALSYM DEVICE_NOTIFY_SERVICE_HANDLE}
  3563. DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = $00000004;
  3564. {$EXTERNALSYM DEVICE_NOTIFY_ALL_INTERFACE_CLASSES}
  3565. function RegisterDeviceNotificationA(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3566. Flags: DWORD): HDEVNOTIFY; stdcall;
  3567. {$EXTERNALSYM RegisterDeviceNotificationA}
  3568. function RegisterDeviceNotificationW(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3569. Flags: DWORD): HDEVNOTIFY; stdcall;
  3570. {$EXTERNALSYM RegisterDeviceNotificationW}
  3571. function RegisterDeviceNotification(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3572. Flags: DWORD): HDEVNOTIFY; stdcall;
  3573. {$EXTERNALSYM RegisterDeviceNotification}
  3574. function UnregisterDeviceNotification(Handle: HDEVNOTIFY): BOOL; stdcall;
  3575. {$EXTERNALSYM UnregisterDeviceNotification}
  3576. function PostMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3577. {$EXTERNALSYM PostMessageA}
  3578. function PostMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3579. {$EXTERNALSYM PostMessageW}
  3580. function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3581. {$EXTERNALSYM PostMessage}
  3582. function PostThreadMessageA(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3583. {$EXTERNALSYM PostThreadMessageA}
  3584. function PostThreadMessageW(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3585. {$EXTERNALSYM PostThreadMessageW}
  3586. function PostThreadMessage(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3587. {$EXTERNALSYM PostThreadMessage}
  3588. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3589. {$EXTERNALSYM PostAppMessageA}
  3590. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3591. {$EXTERNALSYM PostAppMessageW}
  3592. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3593. {$EXTERNALSYM PostAppMessage}
  3594. //
  3595. // Special HWND value for use with PostMessage() and SendMessage()
  3596. //
  3597. const
  3598. HWND_BROADCAST = HWND($ffff);
  3599. {$EXTERNALSYM HWND_BROADCAST}
  3600. HWND_MESSAGE = HWND(-3);
  3601. {$EXTERNALSYM HWND_MESSAGE}
  3602. function AttachThreadInput(idAttach, idAttachTo: DWORD; fAttach: BOOL): BOOL; stdcall;
  3603. {$EXTERNALSYM AttachThreadInput}
  3604. function ReplyMessage(lResult: LRESULT): BOOL; stdcall;
  3605. {$EXTERNALSYM ReplyMessage}
  3606. function WaitMessage: BOOL; stdcall;
  3607. {$EXTERNALSYM WaitMessage}
  3608. function WaitForInputIdle(hProcess: HANDLE; dwMilliseconds: DWORD): DWORD; stdcall;
  3609. {$EXTERNALSYM WaitForInputIdle}
  3610. function DefWindowProcA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3611. {$EXTERNALSYM DefWindowProcA}
  3612. function DefWindowProcW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3613. {$EXTERNALSYM DefWindowProcW}
  3614. function DefWindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3615. {$EXTERNALSYM DefWindowProc}
  3616. procedure PostQuitMessage(nExitCode: Integer); stdcall;
  3617. {$EXTERNALSYM PostQuitMessage}
  3618. function CallWindowProcA(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3619. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3620. {$EXTERNALSYM CallWindowProcA}
  3621. function CallWindowProcW(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3622. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3623. {$EXTERNALSYM CallWindowProcW}
  3624. function CallWindowProc(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3625. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3626. {$EXTERNALSYM CallWindowProc}
  3627. function InSendMessage: BOOL; stdcall;
  3628. {$EXTERNALSYM InSendMessage}
  3629. function InSendMessageEx(lpReserved: LPVOID): DWORD; stdcall;
  3630. {$EXTERNALSYM InSendMessageEx}
  3631. //
  3632. // InSendMessageEx return value
  3633. //
  3634. const
  3635. ISMEX_NOSEND = $00000000;
  3636. {$EXTERNALSYM ISMEX_NOSEND}
  3637. ISMEX_SEND = $00000001;
  3638. {$EXTERNALSYM ISMEX_SEND}
  3639. ISMEX_NOTIFY = $00000002;
  3640. {$EXTERNALSYM ISMEX_NOTIFY}
  3641. ISMEX_CALLBACK = $00000004;
  3642. {$EXTERNALSYM ISMEX_CALLBACK}
  3643. ISMEX_REPLIED = $00000008;
  3644. {$EXTERNALSYM ISMEX_REPLIED}
  3645. function GetDoubleClickTime: UINT; stdcall;
  3646. {$EXTERNALSYM GetDoubleClickTime}
  3647. function SetDoubleClickTime(uInterval: UINT): BOOL; stdcall;
  3648. {$EXTERNALSYM SetDoubleClickTime}
  3649. function RegisterClassA(const lpWndClass: WNDCLASSA): ATOM; stdcall;
  3650. {$EXTERNALSYM RegisterClassA}
  3651. function RegisterClassW(const lpWndClass: WNDCLASSW): ATOM; stdcall;
  3652. {$EXTERNALSYM RegisterClassW}
  3653. function RegisterClass(const lpWndClass: WNDCLASS): ATOM; stdcall;
  3654. {$EXTERNALSYM RegisterClass}
  3655. function UnregisterClassA(lpClassName: LPCSTR; hInstance: HINSTANCE): BOOL; stdcall;
  3656. {$EXTERNALSYM UnregisterClassA}
  3657. function UnregisterClassW(lpClassName: LPCWSTR; hInstance: HINSTANCE): BOOL; stdcall;
  3658. {$EXTERNALSYM UnregisterClassW}
  3659. function UnregisterClass(lpClassName: LPCTSTR; hInstance: HINSTANCE): BOOL; stdcall;
  3660. {$EXTERNALSYM UnregisterClass}
  3661. function GetClassInfoA(hInstance: HINSTANCE; lpClassName: LPCSTR;
  3662. var lpWndClass: WNDCLASSA): BOOL; stdcall;
  3663. {$EXTERNALSYM GetClassInfoA}
  3664. function GetClassInfoW(hInstance: HINSTANCE; lpClassName: LPCWSTR;
  3665. var lpWndClass: WNDCLASSW): BOOL; stdcall;
  3666. {$EXTERNALSYM GetClassInfoW}
  3667. function GetClassInfo(hInstance: HINSTANCE; lpClassName: LPCTSTR;
  3668. var lpWndClass: WNDCLASS): BOOL; stdcall;
  3669. {$EXTERNALSYM GetClassInfo}
  3670. function RegisterClassExA(const lpwcx: WNDCLASSEXA): ATOM; stdcall;
  3671. {$EXTERNALSYM RegisterClassExA}
  3672. function RegisterClassExW(const lpwcx: WNDCLASSEXW): ATOM; stdcall;
  3673. {$EXTERNALSYM RegisterClassExW}
  3674. function RegisterClassEx(const lpwcx: WNDCLASSEX): ATOM; stdcall;
  3675. {$EXTERNALSYM RegisterClassEx}
  3676. function GetClassInfoExA(hinst: HINSTANCE; lpszClass: LPCSTR; var lpwcx: WNDCLASSEXA): BOOL; stdcall;
  3677. {$EXTERNALSYM GetClassInfoExA}
  3678. function GetClassInfoExW(hinst: HINSTANCE; lpszClass: LPCWSTR; var lpwcx: WNDCLASSEXW): BOOL; stdcall;
  3679. {$EXTERNALSYM GetClassInfoExW}
  3680. function GetClassInfoEx(hinst: HINSTANCE; lpszClass: LPCTSTR; var lpwcx: WNDCLASSEX): BOOL; stdcall;
  3681. {$EXTERNALSYM GetClassInfoEx}
  3682. const
  3683. CW_USEDEFAULT = Integer($80000000);
  3684. {$EXTERNALSYM CW_USEDEFAULT}
  3685. //
  3686. // Special value for CreateWindow, et al.
  3687. //
  3688. const
  3689. HWND_DESKTOP = HWND(0);
  3690. {$EXTERNALSYM HWND_DESKTOP}
  3691. type
  3692. PREGISTERCLASSNAMEW = function(p: LPCWSTR): LongBool; stdcall;
  3693. {$EXTERNALSYM PREGISTERCLASSNAMEW}
  3694. function CreateWindowExA(dwExStyle: DWORD; lpClassName, lpWindowName: LPCSTR;
  3695. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3696. hMenu: HMENU; hInstance: HINSTANCE; lpParam: LPVOID): HWND; stdcall;
  3697. {$EXTERNALSYM CreateWindowExA}
  3698. function CreateWindowExW(dwExStyle: DWORD; lpClassName, lpWindowName: LPCWSTR;
  3699. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3700. hMenu: HMENU; hInstance: HINSTANCE; lpParam: LPVOID): HWND; stdcall;
  3701. {$EXTERNALSYM CreateWindowExW}
  3702. function CreateWindowEx(dwExStyle: DWORD; lpClassName, lpWindowName: LPCTSTR;
  3703. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3704. hMenu: HMENU; hInstance: HINSTANCE; lpParam: LPVOID): HWND; stdcall;
  3705. {$EXTERNALSYM CreateWindowEx}
  3706. function CreateWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  3707. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3708. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  3709. {$EXTERNALSYM CreateWindowA}
  3710. function CreateWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  3711. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3712. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  3713. {$EXTERNALSYM CreateWindowW}
  3714. function CreateWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  3715. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3716. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  3717. {$EXTERNALSYM CreateWindow}
  3718. function IsWindow(hWnd: HWND): BOOL; stdcall;
  3719. {$EXTERNALSYM IsWindow}
  3720. function IsMenu(hMenu: HMENU): BOOL; stdcall;
  3721. {$EXTERNALSYM IsMenu}
  3722. function IsChild(hWndParent, hWnd: HWND): BOOL; stdcall;
  3723. {$EXTERNALSYM IsChild}
  3724. function DestroyWindow(hWnd: HWND): BOOL; stdcall;
  3725. {$EXTERNALSYM DestroyWindow}
  3726. function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3727. {$EXTERNALSYM ShowWindow}
  3728. function AnimateWindow(hWnd: HWND; dwTime, dwFlags: DWORD): BOOL; stdcall;
  3729. {$EXTERNALSYM AnimateWindow}
  3730. function UpdateLayeredWindow(hWnd: HWND; hdcDst: HDC; pptDst: LPPOINT;
  3731. psize: LPSIZE; hdcSrc: HDC; pptSrc: LPPOINT; crKey: COLORREF;
  3732. pblend: LPBLENDFUNCTION; dwFlags: DWORD): BOOL; stdcall;
  3733. {$EXTERNALSYM UpdateLayeredWindow}
  3734. function GetLayeredWindowAttributes(hwnd: HWND; pcrKey: LPCOLORREF; pbAlpha: LPBYTE;
  3735. pdwFlags: LPWORD): BOOL; stdcall;
  3736. {$EXTERNALSYM GetLayeredWindowAttributes}
  3737. const
  3738. PW_CLIENTONLY = $00000001;
  3739. {$EXTERNALSYM PW_CLIENTONLY}
  3740. function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
  3741. {$EXTERNALSYM PrintWindow}
  3742. function SetLayeredWindowAttributes(hwnd: HWND; crKey: COLORREF; bAlpha: BYTE;
  3743. dwFlags: DWORD): BOOL; stdcall;
  3744. {$EXTERNALSYM SetLayeredWindowAttributes}
  3745. const
  3746. LWA_COLORKEY = $00000001;
  3747. {$EXTERNALSYM LWA_COLORKEY}
  3748. LWA_ALPHA = $00000002;
  3749. {$EXTERNALSYM LWA_ALPHA}
  3750. ULW_COLORKEY = $00000001;
  3751. {$EXTERNALSYM ULW_COLORKEY}
  3752. ULW_ALPHA = $00000002;
  3753. {$EXTERNALSYM ULW_ALPHA}
  3754. ULW_OPAQUE = $00000004;
  3755. {$EXTERNALSYM ULW_OPAQUE}
  3756. function ShowWindowAsync(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3757. {$EXTERNALSYM ShowWindowAsync}
  3758. function FlashWindow(hWnd: HWND; bInvert: BOOL): BOOL; stdcall;
  3759. {$EXTERNALSYM FlashWindow}
  3760. type
  3761. PFLASH_INFO = ^FLASH_INFO;
  3762. {$EXTERNALSYM PFLASH_INFO}
  3763. FLASH_INFO = record
  3764. cbSize: UINT;
  3765. hwnd: HWND;
  3766. dwFlags: DWORD;
  3767. uCount: UINT;
  3768. dwTimeout: DWORD;
  3769. end;
  3770. {$EXTERNALSYM FLASH_INFO}
  3771. TFlashInfo = FLASH_INFO;
  3772. PFlashInfo = PFLASH_INFO;
  3773. function FlashWindowEx(var pfwi: FLASH_INFO): BOOL; stdcall;
  3774. {$EXTERNALSYM FlashWindowEx}
  3775. const
  3776. FLASHW_STOP = 0;
  3777. {$EXTERNALSYM FLASHW_STOP}
  3778. FLASHW_CAPTION = $00000001;
  3779. {$EXTERNALSYM FLASHW_CAPTION}
  3780. FLASHW_TRAY = $00000002;
  3781. {$EXTERNALSYM FLASHW_TRAY}
  3782. FLASHW_ALL = FLASHW_CAPTION or FLASHW_TRAY;
  3783. {$EXTERNALSYM FLASHW_ALL}
  3784. FLASHW_TIMER = $00000004;
  3785. {$EXTERNALSYM FLASHW_TIMER}
  3786. FLASHW_TIMERNOFG = $0000000C;
  3787. {$EXTERNALSYM FLASHW_TIMERNOFG}
  3788. function ShowOwnedPopups(hWnd: HWND; fShow: BOOL): BOOL; stdcall;
  3789. {$EXTERNALSYM ShowOwnedPopups}
  3790. function OpenIcon(hWnd: HWND): BOOL; stdcall;
  3791. {$EXTERNALSYM OpenIcon}
  3792. function CloseWindow(hWnd: HWND): BOOL; stdcall;
  3793. {$EXTERNALSYM CloseWindow}
  3794. function MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; stdcall;
  3795. {$EXTERNALSYM MoveWindow}
  3796. function SetWindowPos(hWnd, hWndInsertAfter: HWND; X, Y, cx, cy: Integer;
  3797. uFlags: UINT): BOOL; stdcall;
  3798. {$EXTERNALSYM SetWindowPos}
  3799. function GetWindowPlacement(hWnd: HWND; var lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3800. {$EXTERNALSYM GetWindowPlacement}
  3801. function SetWindowPlacement(hWnd: HWND; const lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3802. {$EXTERNALSYM SetWindowPlacement}
  3803. function BeginDeferWindowPos(nNumWindows: Integer): HDWP; stdcall;
  3804. {$EXTERNALSYM BeginDeferWindowPos}
  3805. function DeferWindowPos(hWinPosInfo: HDWP; hWnd, hWndInsertAfter: HWND;
  3806. x, y, cx, cy: Integer; uFlags: UINT): HDWP; stdcall;
  3807. {$EXTERNALSYM DeferWindowPos}
  3808. function EndDeferWindowPos(hWinPosInfo: HDWP): BOOL; stdcall;
  3809. {$EXTERNALSYM EndDeferWindowPos}
  3810. function IsWindowVisible(hWnd: HWND): BOOL; stdcall;
  3811. {$EXTERNALSYM IsWindowVisible}
  3812. function IsIconic(hWnd: HWND): BOOL; stdcall;
  3813. {$EXTERNALSYM IsIconic}
  3814. function AnyPopup: BOOL; stdcall;
  3815. {$EXTERNALSYM AnyPopup}
  3816. function BringWindowToTop(hWnd: HWND): BOOL; stdcall;
  3817. {$EXTERNALSYM BringWindowToTop}
  3818. function IsZoomed(hWnd: HWND): BOOL; stdcall;
  3819. {$EXTERNALSYM IsZoomed}
  3820. //
  3821. // SetWindowPos Flags
  3822. //
  3823. const
  3824. SWP_NOSIZE = $0001;
  3825. {$EXTERNALSYM SWP_NOSIZE}
  3826. SWP_NOMOVE = $0002;
  3827. {$EXTERNALSYM SWP_NOMOVE}
  3828. SWP_NOZORDER = $0004;
  3829. {$EXTERNALSYM SWP_NOZORDER}
  3830. SWP_NOREDRAW = $0008;
  3831. {$EXTERNALSYM SWP_NOREDRAW}
  3832. SWP_NOACTIVATE = $0010;
  3833. {$EXTERNALSYM SWP_NOACTIVATE}
  3834. SWP_FRAMECHANGED = $0020; // The frame changed: send WM_NCCALCSIZE
  3835. {$EXTERNALSYM SWP_FRAMECHANGED}
  3836. SWP_SHOWWINDOW = $0040;
  3837. {$EXTERNALSYM SWP_SHOWWINDOW}
  3838. SWP_HIDEWINDOW = $0080;
  3839. {$EXTERNALSYM SWP_HIDEWINDOW}
  3840. SWP_NOCOPYBITS = $0100;
  3841. {$EXTERNALSYM SWP_NOCOPYBITS}
  3842. SWP_NOOWNERZORDER = $0200; // Don't do owner Z ordering
  3843. {$EXTERNALSYM SWP_NOOWNERZORDER}
  3844. SWP_NOSENDCHANGING = $0400; // Don't send WM_WINDOWPOSCHANGING
  3845. {$EXTERNALSYM SWP_NOSENDCHANGING}
  3846. SWP_DRAWFRAME = SWP_FRAMECHANGED;
  3847. {$EXTERNALSYM SWP_DRAWFRAME}
  3848. SWP_NOREPOSITION = SWP_NOOWNERZORDER;
  3849. {$EXTERNALSYM SWP_NOREPOSITION}
  3850. SWP_DEFERERASE = $2000;
  3851. {$EXTERNALSYM SWP_DEFERERASE}
  3852. SWP_ASYNCWINDOWPOS = $4000;
  3853. {$EXTERNALSYM SWP_ASYNCWINDOWPOS}
  3854. HWND_TOP = HWND(0);
  3855. {$EXTERNALSYM HWND_TOP}
  3856. HWND_BOTTOM = HWND(1);
  3857. {$EXTERNALSYM HWND_BOTTOM}
  3858. HWND_TOPMOST = HWND(-1);
  3859. {$EXTERNALSYM HWND_TOPMOST}
  3860. HWND_NOTOPMOST = HWND(-2);
  3861. {$EXTERNALSYM HWND_NOTOPMOST}
  3862. //
  3863. // WARNING:
  3864. // The following structures must NOT be DWORD padded because they are
  3865. // followed by strings, etc that do not have to be DWORD aligned.
  3866. //
  3867. // #include <pshpack2.h>
  3868. //
  3869. // original NT 32 bit dialog template:
  3870. //
  3871. type
  3872. DLGTEMPLATE = packed record
  3873. style: DWORD;
  3874. dwExtendedStyle: DWORD;
  3875. cdit: WORD;
  3876. x: short;
  3877. y: short;
  3878. cx: short;
  3879. cy: short;
  3880. end;
  3881. {$EXTERNALSYM DLGTEMPLATE}
  3882. TDlgTemplate = DLGTEMPLATE;
  3883. LPDLGTEMPLATEA = ^DLGTEMPLATE;
  3884. {$EXTERNALSYM LPDLGTEMPLATEA}
  3885. LPDLGTEMPLATEW = ^DLGTEMPLATE;
  3886. {$EXTERNALSYM LPDLGTEMPLATEW}
  3887. LPCDLGTEMPLATEA = ^DLGTEMPLATE;
  3888. {$EXTERNALSYM LPCDLGTEMPLATEA}
  3889. LPCDLGTEMPLATEW = ^DLGTEMPLATE;
  3890. {$EXTERNALSYM LPCDLGTEMPLATEW}
  3891. {$IFDEF UNICODE}
  3892. LPDLGTEMPLATE = LPDLGTEMPLATEW;
  3893. {$EXTERNALSYM LPDLGTEMPLATE}
  3894. LPCDLGTEMPLATE = LPCDLGTEMPLATEW;
  3895. {$EXTERNALSYM LPCDLGTEMPLATE}
  3896. {$ELSE}
  3897. LPDLGTEMPLATE = LPDLGTEMPLATEA;
  3898. {$EXTERNALSYM LPDLGTEMPLATE}
  3899. LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
  3900. {$EXTERNALSYM LPCDLGTEMPLATE}
  3901. {$ENDIF UNICODE}
  3902. //
  3903. // 32 bit Dialog item template.
  3904. //
  3905. DLGITEMTEMPLATE = packed record
  3906. style: DWORD;
  3907. dwExtendedStyle: DWORD;
  3908. x: short;
  3909. y: short;
  3910. cx: short;
  3911. cy: short;
  3912. id: WORD;
  3913. end;
  3914. {$EXTERNALSYM DLGITEMTEMPLATE}
  3915. TDlgItemTemplate = DLGITEMTEMPLATE;
  3916. PDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3917. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3918. PDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3919. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3920. LPDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3921. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3922. LPDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3923. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3924. {$IFDEF UNICODE}
  3925. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3926. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3927. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3928. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3929. {$ELSE}
  3930. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3931. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3932. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3933. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3934. {$ENDIF UNICODE}
  3935. // #include <poppack.h> // Resume normal packing//
  3936. function CreateDialogParamA(hInstance: HINSTANCE; lpTemplateName: LPCSTR;
  3937. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3938. {$EXTERNALSYM CreateDialogParamA}
  3939. function CreateDialogParamW(hInstance: HINSTANCE; lpTemplateName: LPCWSTR;
  3940. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3941. {$EXTERNALSYM CreateDialogParamW}
  3942. function CreateDialogParam(hInstance: HINSTANCE; lpTemplateName: LPCTSTR;
  3943. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3944. {$EXTERNALSYM CreateDialogParam}
  3945. function CreateDialogIndirectParamA(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3946. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3947. {$EXTERNALSYM CreateDialogIndirectParamA}
  3948. function CreateDialogIndirectParamW(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3949. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3950. {$EXTERNALSYM CreateDialogIndirectParamW}
  3951. function CreateDialogIndirectParam(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3952. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3953. {$EXTERNALSYM CreateDialogIndirectParam}
  3954. function CreateDialogA(hInstance: HINSTANCE; lpName: LPCSTR; hWndParent: HWND;
  3955. lpDialogFunc: DLGPROC): HWND;
  3956. {$EXTERNALSYM CreateDialogA}
  3957. function CreateDialogW(hInstance: HINSTANCE; lpName: LPCWSTR; hWndParent: HWND;
  3958. lpDialogFunc: DLGPROC): HWND;
  3959. {$EXTERNALSYM CreateDialogW}
  3960. function CreateDialog(hInstance: HINSTANCE; lpName: LPCTSTR; hWndParent: HWND;
  3961. lpDialogFunc: DLGPROC): HWND;
  3962. {$EXTERNALSYM CreateDialog}
  3963. function CreateDialogIndirectA(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3964. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3965. {$EXTERNALSYM CreateDialogIndirectA}
  3966. function CreateDialogIndirectW(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3967. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3968. {$EXTERNALSYM CreateDialogIndirectW}
  3969. function CreateDialogIndirect(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  3970. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3971. {$EXTERNALSYM CreateDialogIndirect}
  3972. function DialogBoxParamA(hInstance: HINSTANCE; lpTemplateName: LPCSTR;
  3973. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3974. {$EXTERNALSYM DialogBoxParamA}
  3975. function DialogBoxParamW(hInstance: HINSTANCE; lpTemplateName: LPCWSTR;
  3976. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3977. {$EXTERNALSYM DialogBoxParamW}
  3978. function DialogBoxParam(hInstance: HINSTANCE; lpTemplateName: LPCTSTR;
  3979. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3980. {$EXTERNALSYM DialogBoxParam}
  3981. function DialogBoxIndirectParamA(hInstance: HINSTANCE;
  3982. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3983. dwInitParam: LPARAM): INT_PTR; stdcall;
  3984. {$EXTERNALSYM DialogBoxIndirectParamA}
  3985. function DialogBoxIndirectParamW(hInstance: HINSTANCE;
  3986. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3987. dwInitParam: LPARAM): INT_PTR; stdcall;
  3988. {$EXTERNALSYM DialogBoxIndirectParamW}
  3989. function DialogBoxIndirectParam(hInstance: HINSTANCE;
  3990. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3991. dwInitParam: LPARAM): INT_PTR; stdcall;
  3992. {$EXTERNALSYM DialogBoxIndirectParam}
  3993. function DialogBoxA(hInstance: HINSTANCE; lpTemplate: LPCSTR; hWndParent: HWND;
  3994. lpDialogFunc: DLGPROC): INT_PTR;
  3995. {$EXTERNALSYM DialogBoxA}
  3996. function DialogBoxW(hInstance: HINSTANCE; lpTemplate: LPCWSTR; hWndParent: HWND;
  3997. lpDialogFunc: DLGPROC): INT_PTR;
  3998. {$EXTERNALSYM DialogBoxW}
  3999. function DialogBox(hInstance: HINSTANCE; lpTemplate: LPCTSTR; hWndParent: HWND;
  4000. lpDialogFunc: DLGPROC): INT_PTR;
  4001. {$EXTERNALSYM DialogBox}
  4002. function DialogBoxIndirectA(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  4003. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4004. {$EXTERNALSYM DialogBoxIndirectA}
  4005. function DialogBoxIndirectW(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  4006. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4007. {$EXTERNALSYM DialogBoxIndirectW}
  4008. function DialogBoxIndirect(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  4009. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4010. {$EXTERNALSYM DialogBoxIndirect}
  4011. function EndDialog(hDlg: HWND; nResult: INT_PTR): BOOL; stdcall;
  4012. {$EXTERNALSYM EndDialog}
  4013. function GetDlgItem(hDlg: HWND; nIDDlgItem: Integer): HWND; stdcall;
  4014. {$EXTERNALSYM GetDlgItem}
  4015. function SetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; uValue: UINT; bSigned: BOOL): BOOL; stdcall;
  4016. {$EXTERNALSYM SetDlgItemInt}
  4017. function GetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; lpTranslated: LPBOOL;
  4018. bSigned: BOOL): UINT; stdcall;
  4019. {$EXTERNALSYM GetDlgItemInt}
  4020. function SetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCSTR): BOOL; stdcall;
  4021. {$EXTERNALSYM SetDlgItemTextA}
  4022. function SetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCWSTR): BOOL; stdcall;
  4023. {$EXTERNALSYM SetDlgItemTextW}
  4024. function SetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCTSTR): BOOL; stdcall;
  4025. {$EXTERNALSYM SetDlgItemText}
  4026. function GetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPSTR;
  4027. nMaxCount: Integer): UINT; stdcall;
  4028. {$EXTERNALSYM GetDlgItemTextA}
  4029. function GetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPWSTR;
  4030. nMaxCount: Integer): UINT; stdcall;
  4031. {$EXTERNALSYM GetDlgItemTextW}
  4032. function GetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPTSTR;
  4033. nMaxCount: Integer): UINT; stdcall;
  4034. {$EXTERNALSYM GetDlgItemText}
  4035. function CheckDlgButton(hDlg: HWND; nIDButton: Integer; uCheck: UINT): BOOL; stdcall;
  4036. {$EXTERNALSYM CheckDlgButton}
  4037. function CheckRadioButton(hDlg: HWND; nIDFirstButton, nIDLastButton: Integer;
  4038. nIDCheckButton: Integer): BOOL; stdcall;
  4039. {$EXTERNALSYM CheckRadioButton}
  4040. function IsDlgButtonChecked(hDlg: HWND; nIDButton: Integer): UINT; stdcall;
  4041. {$EXTERNALSYM IsDlgButtonChecked}
  4042. function SendDlgItemMessageA(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4043. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4044. {$EXTERNALSYM SendDlgItemMessageA}
  4045. function SendDlgItemMessageW(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4046. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4047. {$EXTERNALSYM SendDlgItemMessageW}
  4048. function SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4049. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4050. {$EXTERNALSYM SendDlgItemMessage}
  4051. function GetNextDlgGroupItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4052. {$EXTERNALSYM GetNextDlgGroupItem}
  4053. function GetNextDlgTabItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4054. {$EXTERNALSYM GetNextDlgTabItem}
  4055. function GetDlgCtrlID(hWnd: HWND): Integer; stdcall;
  4056. {$EXTERNALSYM GetDlgCtrlID}
  4057. function GetDialogBaseUnits: Longint; stdcall;
  4058. {$EXTERNALSYM GetDialogBaseUnits(VOID v)}
  4059. function DefDlgProcA(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4060. {$EXTERNALSYM DefDlgProcA}
  4061. function DefDlgProcW(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4062. {$EXTERNALSYM DefDlgProcW}
  4063. function DefDlgProc(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4064. {$EXTERNALSYM DefDlgProc}
  4065. //
  4066. // Window extra byted needed for private dialog classes.
  4067. //
  4068. const
  4069. DLGWINDOWEXTRA = 30;
  4070. {$EXTERNALSYM DLGWINDOWEXTRA}
  4071. function CallMsgFilterA(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4072. {$EXTERNALSYM CallMsgFilterA}
  4073. function CallMsgFilterW(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4074. {$EXTERNALSYM CallMsgFilterW}
  4075. function CallMsgFilter(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4076. {$EXTERNALSYM CallMsgFilter}
  4077. //
  4078. // Clipboard Manager Functions
  4079. //
  4080. function OpenClipboard(hWndNewOwner: HWND): BOOL; stdcall;
  4081. {$EXTERNALSYM OpenClipboard}
  4082. function CloseClipboard: BOOL; stdcall;
  4083. {$EXTERNALSYM CloseClipboard}
  4084. function GetClipboardSequenceNumber: DWORD; stdcall;
  4085. {$EXTERNALSYM GetClipboardSequenceNumber}
  4086. function GetClipboardOwner: HWND; stdcall;
  4087. {$EXTERNALSYM GetClipboardOwner}
  4088. function SetClipboardViewer(hWndNewViewer: HWND): HWND; stdcall;
  4089. {$EXTERNALSYM SetClipboardViewer}
  4090. function GetClipboardViewer: HWND; stdcall;
  4091. {$EXTERNALSYM GetClipboardViewer}
  4092. function ChangeClipboardChain(hWndRemove, hWndNewNext: HWND): BOOL; stdcall;
  4093. {$EXTERNALSYM ChangeClipboardChain}
  4094. function SetClipboardData(uFormat: UINT; hMem: HANDLE): HANDLE; stdcall;
  4095. {$EXTERNALSYM SetClipboardData}
  4096. function GetClipboardData(uFormat: UINT): HANDLE; stdcall;
  4097. {$EXTERNALSYM GetClipboardData}
  4098. function RegisterClipboardFormatA(lpszFormat: LPCSTR): UINT; stdcall;
  4099. {$EXTERNALSYM RegisterClipboardFormatA}
  4100. function RegisterClipboardFormatW(lpszFormat: LPCWSTR): UINT; stdcall;
  4101. {$EXTERNALSYM RegisterClipboardFormatW}
  4102. function RegisterClipboardFormat(lpszFormat: LPCTSTR): UINT; stdcall;
  4103. {$EXTERNALSYM RegisterClipboardFormat}
  4104. function CountClipboardFormats: Integer; stdcall;
  4105. {$EXTERNALSYM CountClipboardFormats}
  4106. function EnumClipboardFormats(format: UINT): UINT; stdcall;
  4107. {$EXTERNALSYM EnumClipboardFormats}
  4108. function GetClipboardFormatNameA(format: UINT; lpszFormatName: LPSTR;
  4109. cchMaxCount: Integer): Integer; stdcall;
  4110. {$EXTERNALSYM GetClipboardFormatNameA}
  4111. function GetClipboardFormatNameW(format: UINT; lpszFormatName: LPWSTR;
  4112. cchMaxCount: Integer): Integer; stdcall;
  4113. {$EXTERNALSYM GetClipboardFormatNameW}
  4114. function GetClipboardFormatName(format: UINT; lpszFormatName: LPTSTR;
  4115. cchMaxCount: Integer): Integer; stdcall;
  4116. {$EXTERNALSYM GetClipboardFormatName}
  4117. function EmptyClipboard: BOOL; stdcall;
  4118. {$EXTERNALSYM EmptyClipboard}
  4119. function IsClipboardFormatAvailable(format: UINT): BOOL; stdcall;
  4120. {$EXTERNALSYM IsClipboardFormatAvailable}
  4121. function GetPriorityClipboardFormat(paFormatPriorityList: PUINT; cFormats: Integer): Integer; stdcall;
  4122. {$EXTERNALSYM GetPriorityClipboardFormat}
  4123. function GetOpenClipboardWindow: HWND; stdcall;
  4124. {$EXTERNALSYM GetOpenClipboardWindow}
  4125. //
  4126. // Character Translation Routines
  4127. //
  4128. function CharToOemA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4129. {$EXTERNALSYM CharToOemA}
  4130. function CharToOemW(lpszSrc: LPCWSTR; lpszDst: LPSTR): BOOL; stdcall;
  4131. {$EXTERNALSYM CharToOemW}
  4132. function CharToOem(lpszSrc: LPCTSTR; lpszDst: LPSTR): BOOL; stdcall;
  4133. {$EXTERNALSYM CharToOem}
  4134. function OemToCharA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4135. {$EXTERNALSYM OemToCharA}
  4136. function OemToCharW(lpszSrc: LPCSTR; lpszDst: LPWSTR): BOOL; stdcall;
  4137. {$EXTERNALSYM OemToCharW}
  4138. function OemToChar(lpszSrc: LPCSTR; lpszDst: LPTSTR): BOOL; stdcall;
  4139. {$EXTERNALSYM OemToChar}
  4140. function CharToOemBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4141. {$EXTERNALSYM CharToOemBuffA}
  4142. function CharToOemBuffW(lpszSrc: LPCWSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4143. {$EXTERNALSYM CharToOemBuffW}
  4144. function CharToOemBuff(lpszSrc: LPCTSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4145. {$EXTERNALSYM CharToOemBuff}
  4146. function OemToCharBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4147. {$EXTERNALSYM OemToCharBuffA}
  4148. function OemToCharBuffW(lpszSrc: LPCSTR; lpszDst: LPWSTR; cchDstLength: DWORD): BOOL; stdcall;
  4149. {$EXTERNALSYM OemToCharBuffW}
  4150. function OemToCharBuff(lpszSrc: LPCSTR; lpszDst: LPTSTR; cchDstLength: DWORD): BOOL; stdcall;
  4151. {$EXTERNALSYM OemToCharBuff}
  4152. function CharUpperA(lpsz: LPSTR): LPSTR; stdcall;
  4153. {$EXTERNALSYM CharUpperA}
  4154. function CharUpperW(lpsz: LPWSTR): LPWSTR; stdcall;
  4155. {$EXTERNALSYM CharUpperW}
  4156. function CharUpper(lpsz: LPTSTR): LPTSTR; stdcall;
  4157. {$EXTERNALSYM CharUpper}
  4158. function CharUpperBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4159. {$EXTERNALSYM CharUpperBuffA}
  4160. function CharUpperBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4161. {$EXTERNALSYM CharUpperBuffW}
  4162. function CharUpperBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4163. {$EXTERNALSYM CharUpperBuff}
  4164. function CharLowerA(lpsz: LPSTR): LPSTR; stdcall;
  4165. {$EXTERNALSYM CharLowerA}
  4166. function CharLowerW(lpsz: LPWSTR): LPWSTR; stdcall;
  4167. {$EXTERNALSYM CharLowerW}
  4168. function CharLower(lpsz: LPTSTR): LPTSTR; stdcall;
  4169. {$EXTERNALSYM CharLower}
  4170. function CharLowerBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4171. {$EXTERNALSYM CharLowerBuffA}
  4172. function CharLowerBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4173. {$EXTERNALSYM CharLowerBuffW}
  4174. function CharLowerBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4175. {$EXTERNALSYM CharLowerBuff}
  4176. function CharNextA(lpsz: LPCSTR): LPSTR; stdcall;
  4177. {$EXTERNALSYM CharNextA}
  4178. function CharNextW(lpsz: LPCWSTR): LPWSTR; stdcall;
  4179. {$EXTERNALSYM CharNextW}
  4180. function CharNext(lpsz: LPCTSTR): LPTSTR; stdcall;
  4181. {$EXTERNALSYM CharNext}
  4182. function CharPrevA(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR; stdcall;
  4183. {$EXTERNALSYM CharPrevA}
  4184. function CharPrevW(lpszStart: LPCWSTR; lpszCurrent: LPCWSTR): LPWSTR; stdcall;
  4185. {$EXTERNALSYM CharPrevW}
  4186. function CharPrev(lpszStart: LPCTSTR; lpszCurrent: LPCTSTR): LPTSTR; stdcall;
  4187. {$EXTERNALSYM CharPrev}
  4188. function CharNextExA(CodePage: WORD; lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4189. {$EXTERNALSYM CharNextExA}
  4190. function CharPrevExA(CodePage: WORD; lpStart, lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4191. {$EXTERNALSYM CharPrevExA}
  4192. //
  4193. // Compatibility defines for character translation routines
  4194. //
  4195. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4196. {$EXTERNALSYM AnsiToOem}
  4197. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4198. {$EXTERNALSYM OemToAnsi}
  4199. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4200. {$EXTERNALSYM AnsiToOemBuff}
  4201. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4202. {$EXTERNALSYM OemToAnsiBuff}
  4203. function AnsiUpper(lpsz: LPSTR): LPSTR;
  4204. {$EXTERNALSYM AnsiUpper}
  4205. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4206. {$EXTERNALSYM AnsiUpperBuff}
  4207. function AnsiLower(lpsz: LPSTR): LPSTR;
  4208. {$EXTERNALSYM AnsiLower}
  4209. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4210. {$EXTERNALSYM AnsiLowerBuff}
  4211. function AnsiNext(lpsz: LPCSTR): LPSTR;
  4212. {$EXTERNALSYM AnsiNext}
  4213. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  4214. {$EXTERNALSYM AnsiPrev}
  4215. //
  4216. // Language dependent Routines
  4217. //
  4218. function IsCharAlphaA(ch: CHAR): BOOL; stdcall;
  4219. {$EXTERNALSYM IsCharAlphaA}
  4220. function IsCharAlphaW(ch: WCHAR): BOOL; stdcall;
  4221. {$EXTERNALSYM IsCharAlphaW}
  4222. function IsCharAlpha(ch: TCHAR): BOOL; stdcall;
  4223. {$EXTERNALSYM IsCharAlpha}
  4224. function IsCharAlphaNumericA(ch: CHAR): BOOL; stdcall;
  4225. {$EXTERNALSYM IsCharAlphaNumericA}
  4226. function IsCharAlphaNumericW(ch: WCHAR): BOOL; stdcall;
  4227. {$EXTERNALSYM IsCharAlphaNumericW}
  4228. function IsCharAlphaNumeric(ch: TCHAR): BOOL; stdcall;
  4229. {$EXTERNALSYM IsCharAlphaNumeric}
  4230. function IsCharUpperA(ch: CHAR): BOOL; stdcall;
  4231. {$EXTERNALSYM IsCharUpperA}
  4232. function IsCharUpperW(ch: WCHAR): BOOL; stdcall;
  4233. {$EXTERNALSYM IsCharUpperW}
  4234. function IsCharUpper(ch: TCHAR): BOOL; stdcall;
  4235. {$EXTERNALSYM IsCharUpper}
  4236. function IsCharLowerA(ch: CHAR): BOOL; stdcall;
  4237. {$EXTERNALSYM IsCharLowerA}
  4238. function IsCharLowerW(ch: WCHAR): BOOL; stdcall;
  4239. {$EXTERNALSYM IsCharLowerW}
  4240. function IsCharLower(ch: TCHAR): BOOL; stdcall;
  4241. {$EXTERNALSYM IsCharLower}
  4242. function SetFocus(hWnd: HWND): HWND; stdcall;
  4243. {$EXTERNALSYM SetFocus}
  4244. function GetActiveWindow: HWND; stdcall;
  4245. {$EXTERNALSYM GetActiveWindow}
  4246. function GetFocus: HWND; stdcall;
  4247. {$EXTERNALSYM GetFocus}
  4248. function GetKBCodePage: UINT; stdcall;
  4249. {$EXTERNALSYM GetKBCodePage}
  4250. function GetKeyState(nVirtKey: Integer): SHORT; stdcall;
  4251. {$EXTERNALSYM GetKeyState}
  4252. function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
  4253. {$EXTERNALSYM GetAsyncKeyState}
  4254. function GetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4255. {$EXTERNALSYM GetKeyboardState}
  4256. function SetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4257. {$EXTERNALSYM SetKeyboardState}
  4258. function GetKeyNameTextA(lParam: LONG; lpString: LPSTR; nSize: Integer): Integer; stdcall;
  4259. {$EXTERNALSYM GetKeyNameTextA}
  4260. function GetKeyNameTextW(lParam: LONG; lpString: LPWSTR; nSize: Integer): Integer; stdcall;
  4261. {$EXTERNALSYM GetKeyNameTextW}
  4262. function GetKeyNameText(lParam: LONG; lpString: LPTSTR; nSize: Integer): Integer; stdcall;
  4263. {$EXTERNALSYM GetKeyNameText}
  4264. function GetKeyboardType(nTypeFlag: Integer): Integer; stdcall;
  4265. {$EXTERNALSYM GetKeyboardType}
  4266. function ToAscii(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4267. uFlags: UINT): Integer; stdcall;
  4268. {$EXTERNALSYM ToAscii}
  4269. function ToAsciiEx(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4270. uFlags: UINT; dwhkl: HKL): Integer; stdcall;
  4271. {$EXTERNALSYM ToAsciiEx}
  4272. function ToUnicode(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE; pwszBuff: LPWSTR;
  4273. cchBuff: Integer; wFlags: UINT): Integer; stdcall;
  4274. {$EXTERNALSYM ToUnicode}
  4275. function OemKeyScan(wOemChar: WORD): DWORD; stdcall;
  4276. {$EXTERNALSYM OemKeyScan}
  4277. function VkKeyScanA(ch: CHAR): SHORT; stdcall;
  4278. {$EXTERNALSYM VkKeyScanA}
  4279. function VkKeyScanW(ch: WCHAR): SHORT; stdcall;
  4280. {$EXTERNALSYM VkKeyScanW}
  4281. function VkKeyScan(ch: TCHAR): SHORT; stdcall;
  4282. {$EXTERNALSYM VkKeyScan}
  4283. function VkKeyScanExA(ch: CHAR; dwhkl: HKL): SHORT; stdcall;
  4284. {$EXTERNALSYM VkKeyScanExA}
  4285. function VkKeyScanExW(ch: WCHAR; dwhkl: HKL): SHORT; stdcall;
  4286. {$EXTERNALSYM VkKeyScanExW}
  4287. function VkKeyScanEx(ch: TCHAR; dwhkl: HKL): SHORT; stdcall;
  4288. {$EXTERNALSYM VkKeyScanEx}
  4289. const
  4290. KEYEVENTF_EXTENDEDKEY = $0001;
  4291. {$EXTERNALSYM KEYEVENTF_EXTENDEDKEY}
  4292. KEYEVENTF_KEYUP = $0002;
  4293. {$EXTERNALSYM KEYEVENTF_KEYUP}
  4294. KEYEVENTF_UNICODE = $0004;
  4295. {$EXTERNALSYM KEYEVENTF_UNICODE}
  4296. KEYEVENTF_SCANCODE = $0008;
  4297. {$EXTERNALSYM KEYEVENTF_SCANCODE}
  4298. procedure keybd_event(bVk, bScan: BYTE; dwFlags: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4299. {$EXTERNALSYM keybd_event}
  4300. const
  4301. MOUSEEVENTF_MOVE = $0001; // mouse move
  4302. {$EXTERNALSYM MOUSEEVENTF_MOVE}
  4303. MOUSEEVENTF_LEFTDOWN = $0002; // left button down
  4304. {$EXTERNALSYM MOUSEEVENTF_LEFTDOWN}
  4305. MOUSEEVENTF_LEFTUP = $0004; // left button up
  4306. {$EXTERNALSYM MOUSEEVENTF_LEFTUP}
  4307. MOUSEEVENTF_RIGHTDOWN = $0008; // right button down
  4308. {$EXTERNALSYM MOUSEEVENTF_RIGHTDOWN}
  4309. MOUSEEVENTF_RIGHTUP = $0010; // right button up
  4310. {$EXTERNALSYM MOUSEEVENTF_RIGHTUP}
  4311. MOUSEEVENTF_MIDDLEDOWN = $0020; // middle button down
  4312. {$EXTERNALSYM MOUSEEVENTF_MIDDLEDOWN}
  4313. MOUSEEVENTF_MIDDLEUP = $0040; // middle button up
  4314. {$EXTERNALSYM MOUSEEVENTF_MIDDLEUP}
  4315. MOUSEEVENTF_XDOWN = $0080; // x button down
  4316. {$EXTERNALSYM MOUSEEVENTF_XDOWN}
  4317. MOUSEEVENTF_XUP = $0100; // x button down
  4318. {$EXTERNALSYM MOUSEEVENTF_XUP}
  4319. MOUSEEVENTF_WHEEL = $0800; // wheel button rolled
  4320. {$EXTERNALSYM MOUSEEVENTF_WHEEL}
  4321. MOUSEEVENTF_VIRTUALDESK = $4000; // map to entire virtual desktop
  4322. {$EXTERNALSYM MOUSEEVENTF_VIRTUALDESK}
  4323. MOUSEEVENTF_ABSOLUTE = $8000; // absolute move
  4324. {$EXTERNALSYM MOUSEEVENTF_ABSOLUTE}
  4325. procedure mouse_event(dwFlags, dx, dy, dwData: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4326. {$EXTERNALSYM mouse_event}
  4327. type
  4328. LPMOUSEINPUT = ^MOUSEINPUT;
  4329. {$EXTERNALSYM LPMOUSEINPUT}
  4330. tagMOUSEINPUT = record
  4331. dx: LONG;
  4332. dy: LONG;
  4333. mouseData: DWORD;
  4334. dwFlags: DWORD;
  4335. time: DWORD;
  4336. dwExtraInfo: ULONG_PTR;
  4337. end;
  4338. {$EXTERNALSYM MOUSEINPUT}
  4339. MOUSEINPUT = tagMOUSEINPUT;
  4340. {$EXTERNALSYM MOUSEINPUT}
  4341. TMouseInput = MOUSEINPUT;
  4342. PMouseInput = LPMOUSEINPUT;
  4343. LPKEYBDINPUT = ^KEYBDINPUT;
  4344. {$EXTERNALSYM LPKEYBDINPUT}
  4345. tagKEYBDINPUT = record
  4346. wVk: WORD;
  4347. wScan: WORD;
  4348. dwFlags: DWORD;
  4349. time: DWORD;
  4350. dwExtraInfo: ULONG_PTR;
  4351. end;
  4352. {$EXTERNALSYM tagKEYBDINPUT}
  4353. KEYBDINPUT = tagKEYBDINPUT;
  4354. {$EXTERNALSYM KEYBDINPUT}
  4355. TKeybdinput = KEYBDINPUT;
  4356. PKeybdInput = LPKEYBDINPUT;
  4357. LPHARDWAREINPUT = ^HARDWAREINPUT;
  4358. {$EXTERNALSYM LPHARDWAREINPUT}
  4359. tagHARDWAREINPUT = record
  4360. uMsg: DWORD;
  4361. wParamL: WORD;
  4362. wParamH: WORD;
  4363. end;
  4364. {$EXTERNALSYM tagHARDWAREINPUT}
  4365. HARDWAREINPUT = tagHARDWAREINPUT;
  4366. {$EXTERNALSYM HARDWAREINPUT}
  4367. THardwareInput = HARDWAREINPUT;
  4368. PHardwareInput = LPHARDWAREINPUT;
  4369. const
  4370. INPUT_MOUSE = 0;
  4371. {$EXTERNALSYM INPUT_MOUSE}
  4372. INPUT_KEYBOARD = 1;
  4373. {$EXTERNALSYM INPUT_KEYBOARD}
  4374. INPUT_HARDWARE = 2;
  4375. {$EXTERNALSYM INPUT_HARDWARE}
  4376. type
  4377. LPINPUT = ^INPUT;
  4378. {$EXTERNALSYM LPINPUT}
  4379. tagINPUT = record
  4380. type_: DWORD;
  4381. case Integer of
  4382. 0: (mi: MOUSEINPUT);
  4383. 1: (ki: KEYBDINPUT);
  4384. 2: (hi: HARDWAREINPUT);
  4385. end;
  4386. {$EXTERNALSYM tagINPUT}
  4387. INPUT = tagINPUT;
  4388. {$EXTERNALSYM INPUT}
  4389. TInput = INPUT;
  4390. PInput = LPINPUT;
  4391. function SendInput(cInputs: UINT; pInputs: LPINPUT; cbSize: Integer): UINT; stdcall;
  4392. {$EXTERNALSYM SendInput}
  4393. type
  4394. PLASTINPUTINFO = ^LASTINPUTINFO;
  4395. tagLASTINPUTINFO = record
  4396. cbSize: UINT;
  4397. dwTime: DWORD;
  4398. end;
  4399. {$EXTERNALSYM tagLASTINPUTINFO}
  4400. LASTINPUTINFO = tagLASTINPUTINFO;
  4401. {$EXTERNALSYM LASTINPUTINFO}
  4402. TLastInputInfo = LASTINPUTINFO;
  4403. function GetLastInputInfo(var plii: LASTINPUTINFO): BOOL; stdcall;
  4404. {$EXTERNALSYM GetLastInputInfo}
  4405. function MapVirtualKeyA(uCode, uMapType: UINT): UINT; stdcall;
  4406. {$EXTERNALSYM MapVirtualKeyA}
  4407. function MapVirtualKeyW(uCode, uMapType: UINT): UINT; stdcall;
  4408. {$EXTERNALSYM MapVirtualKeyW}
  4409. function MapVirtualKey(uCode, uMapType: UINT): UINT; stdcall;
  4410. {$EXTERNALSYM MapVirtualKey}
  4411. function MapVirtualKeyExA(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4412. {$EXTERNALSYM MapVirtualKeyExA}
  4413. function MapVirtualKeyExW(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4414. {$EXTERNALSYM MapVirtualKeyExW}
  4415. function MapVirtualKeyEx(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4416. {$EXTERNALSYM MapVirtualKeyEx}
  4417. function GetInputState: BOOL; stdcall;
  4418. {$EXTERNALSYM GetInputState}
  4419. function GetQueueStatus(flags: UINT): DWORD; stdcall;
  4420. {$EXTERNALSYM GetQueueStatus}
  4421. function GetCapture: HWND; stdcall;
  4422. {$EXTERNALSYM GetCapture}
  4423. function SetCapture(hWnd: HWND): HWND; stdcall;
  4424. {$EXTERNALSYM SetCapture}
  4425. function ReleaseCapture: BOOL; stdcall;
  4426. {$EXTERNALSYM ReleaseCapture}
  4427. function MsgWaitForMultipleObjects(nCount: DWORD; pHandles: PHANDLE;
  4428. fWaitAll: BOOL; dwMilliseconds: DWORD; dwWakeMask: DWORD): DWORD; stdcall;
  4429. {$EXTERNALSYM MsgWaitForMultipleObjects}
  4430. function MsgWaitForMultipleObjectsEx(nCount: DWORD; pHandles: PHANDLE;
  4431. dwMilliseconds: DWORD; dwWakeMask: DWORD; dwFlags: DWORD): DWORD; stdcall;
  4432. {$EXTERNALSYM MsgWaitForMultipleObjectsEx}
  4433. const
  4434. MWMO_WAITALL = $0001;
  4435. {$EXTERNALSYM MWMO_WAITALL}
  4436. MWMO_ALERTABLE = $0002;
  4437. {$EXTERNALSYM MWMO_ALERTABLE}
  4438. MWMO_INPUTAVAILABLE = $0004;
  4439. {$EXTERNALSYM MWMO_INPUTAVAILABLE}
  4440. //
  4441. // Windows Functions
  4442. //
  4443. function SetTimer(hWnd: HWND; nIDEvent: UINT_PTR; uElapse: UINT;
  4444. lpTimerFunc: TIMERPROC): UINT_PTR; stdcall;
  4445. {$EXTERNALSYM SetTimer}
  4446. function KillTimer(hWnd: HWND; uIDEvent: UINT_PTR): BOOL; stdcall;
  4447. {$EXTERNALSYM KillTimer}
  4448. function IsWindowUnicode(hWnd: HWND): BOOL; stdcall;
  4449. {$EXTERNALSYM IsWindowUnicode}
  4450. function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
  4451. {$EXTERNALSYM EnableWindow}
  4452. function IsWindowEnabled(hWnd: HWND): BOOL; stdcall;
  4453. {$EXTERNALSYM IsWindowEnabled}
  4454. function LoadAcceleratorsA(hInstance: HINSTANCE; lpTableName: LPCSTR): HACCEL; stdcall;
  4455. {$EXTERNALSYM LoadAcceleratorsA}
  4456. function LoadAcceleratorsW(hInstance: HINSTANCE; lpTableName: LPCWSTR): HACCEL; stdcall;
  4457. {$EXTERNALSYM LoadAcceleratorsW}
  4458. function LoadAccelerators(hInstance: HINSTANCE; lpTableName: LPCTSTR): HACCEL; stdcall;
  4459. {$EXTERNALSYM LoadAccelerators}
  4460. function CreateAcceleratorTableA(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4461. {$EXTERNALSYM CreateAcceleratorTableA}
  4462. function CreateAcceleratorTableW(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4463. {$EXTERNALSYM CreateAcceleratorTableW}
  4464. function CreateAcceleratorTable(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4465. {$EXTERNALSYM CreateAcceleratorTable}
  4466. function DestroyAcceleratorTable(hAccel: HACCEL): BOOL; stdcall;
  4467. {$EXTERNALSYM DestroyAcceleratorTable}
  4468. function CopyAcceleratorTableA(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4469. cAccelEntries: Integer): Integer; stdcall;
  4470. {$EXTERNALSYM CopyAcceleratorTableA}
  4471. function CopyAcceleratorTableW(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4472. cAccelEntries: Integer): Integer; stdcall;
  4473. {$EXTERNALSYM CopyAcceleratorTableW}
  4474. function CopyAcceleratorTable(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4475. cAccelEntries: Integer): Integer; stdcall;
  4476. {$EXTERNALSYM CopyAcceleratorTable}
  4477. function TranslateAcceleratorA(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4478. {$EXTERNALSYM TranslateAcceleratorA}
  4479. function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4480. {$EXTERNALSYM TranslateAcceleratorW}
  4481. function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4482. {$EXTERNALSYM TranslateAccelerator}
  4483. //
  4484. // GetSystemMetrics() codes
  4485. //
  4486. const
  4487. SM_CXSCREEN = 0;
  4488. {$EXTERNALSYM SM_CXSCREEN}
  4489. SM_CYSCREEN = 1;
  4490. {$EXTERNALSYM SM_CYSCREEN}
  4491. SM_CXVSCROLL = 2;
  4492. {$EXTERNALSYM SM_CXVSCROLL}
  4493. SM_CYHSCROLL = 3;
  4494. {$EXTERNALSYM SM_CYHSCROLL}
  4495. SM_CYCAPTION = 4;
  4496. {$EXTERNALSYM SM_CYCAPTION}
  4497. SM_CXBORDER = 5;
  4498. {$EXTERNALSYM SM_CXBORDER}
  4499. SM_CYBORDER = 6;
  4500. {$EXTERNALSYM SM_CYBORDER}
  4501. SM_CXDLGFRAME = 7;
  4502. {$EXTERNALSYM SM_CXDLGFRAME}
  4503. SM_CYDLGFRAME = 8;
  4504. {$EXTERNALSYM SM_CYDLGFRAME}
  4505. SM_CYVTHUMB = 9;
  4506. {$EXTERNALSYM SM_CYVTHUMB}
  4507. SM_CXHTHUMB = 10;
  4508. {$EXTERNALSYM SM_CXHTHUMB}
  4509. SM_CXICON = 11;
  4510. {$EXTERNALSYM SM_CXICON}
  4511. SM_CYICON = 12;
  4512. {$EXTERNALSYM SM_CYICON}
  4513. SM_CXCURSOR = 13;
  4514. {$EXTERNALSYM SM_CXCURSOR}
  4515. SM_CYCURSOR = 14;
  4516. {$EXTERNALSYM SM_CYCURSOR}
  4517. SM_CYMENU = 15;
  4518. {$EXTERNALSYM SM_CYMENU}
  4519. SM_CXFULLSCREEN = 16;
  4520. {$EXTERNALSYM SM_CXFULLSCREEN}
  4521. SM_CYFULLSCREEN = 17;
  4522. {$EXTERNALSYM SM_CYFULLSCREEN}
  4523. SM_CYKANJIWINDOW = 18;
  4524. {$EXTERNALSYM SM_CYKANJIWINDOW}
  4525. SM_MOUSEPRESENT = 19;
  4526. {$EXTERNALSYM SM_MOUSEPRESENT}
  4527. SM_CYVSCROLL = 20;
  4528. {$EXTERNALSYM SM_CYVSCROLL}
  4529. SM_CXHSCROLL = 21;
  4530. {$EXTERNALSYM SM_CXHSCROLL}
  4531. SM_DEBUG = 22;
  4532. {$EXTERNALSYM SM_DEBUG}
  4533. SM_SWAPBUTTON = 23;
  4534. {$EXTERNALSYM SM_SWAPBUTTON}
  4535. SM_RESERVED1 = 24;
  4536. {$EXTERNALSYM SM_RESERVED1}
  4537. SM_RESERVED2 = 25;
  4538. {$EXTERNALSYM SM_RESERVED2}
  4539. SM_RESERVED3 = 26;
  4540. {$EXTERNALSYM SM_RESERVED3}
  4541. SM_RESERVED4 = 27;
  4542. {$EXTERNALSYM SM_RESERVED4}
  4543. SM_CXMIN = 28;
  4544. {$EXTERNALSYM SM_CXMIN}
  4545. SM_CYMIN = 29;
  4546. {$EXTERNALSYM SM_CYMIN}
  4547. SM_CXSIZE = 30;
  4548. {$EXTERNALSYM SM_CXSIZE}
  4549. SM_CYSIZE = 31;
  4550. {$EXTERNALSYM SM_CYSIZE}
  4551. SM_CXFRAME = 32;
  4552. {$EXTERNALSYM SM_CXFRAME}
  4553. SM_CYFRAME = 33;
  4554. {$EXTERNALSYM SM_CYFRAME}
  4555. SM_CXMINTRACK = 34;
  4556. {$EXTERNALSYM SM_CXMINTRACK}
  4557. SM_CYMINTRACK = 35;
  4558. {$EXTERNALSYM SM_CYMINTRACK}
  4559. SM_CXDOUBLECLK = 36;
  4560. {$EXTERNALSYM SM_CXDOUBLECLK}
  4561. SM_CYDOUBLECLK = 37;
  4562. {$EXTERNALSYM SM_CYDOUBLECLK}
  4563. SM_CXICONSPACING = 38;
  4564. {$EXTERNALSYM SM_CXICONSPACING}
  4565. SM_CYICONSPACING = 39;
  4566. {$EXTERNALSYM SM_CYICONSPACING}
  4567. SM_MENUDROPALIGNMENT = 40;
  4568. {$EXTERNALSYM SM_MENUDROPALIGNMENT}
  4569. SM_PENWINDOWS = 41;
  4570. {$EXTERNALSYM SM_PENWINDOWS}
  4571. SM_DBCSENABLED = 42;
  4572. {$EXTERNALSYM SM_DBCSENABLED}
  4573. SM_CMOUSEBUTTONS = 43;
  4574. {$EXTERNALSYM SM_CMOUSEBUTTONS}
  4575. SM_CXFIXEDFRAME = SM_CXDLGFRAME; // ;win40 name change
  4576. {$EXTERNALSYM SM_CXFIXEDFRAME}
  4577. SM_CYFIXEDFRAME = SM_CYDLGFRAME; // ;win40 name change
  4578. {$EXTERNALSYM SM_CYFIXEDFRAME}
  4579. SM_CXSIZEFRAME = SM_CXFRAME; // ;win40 name change
  4580. {$EXTERNALSYM SM_CXSIZEFRAME}
  4581. SM_CYSIZEFRAME = SM_CYFRAME; // ;win40 name change
  4582. {$EXTERNALSYM SM_CYSIZEFRAME}
  4583. SM_SECURE = 44;
  4584. {$EXTERNALSYM SM_SECURE}
  4585. SM_CXEDGE = 45;
  4586. {$EXTERNALSYM SM_CXEDGE}
  4587. SM_CYEDGE = 46;
  4588. {$EXTERNALSYM SM_CYEDGE}
  4589. SM_CXMINSPACING = 47;
  4590. {$EXTERNALSYM SM_CXMINSPACING}
  4591. SM_CYMINSPACING = 48;
  4592. {$EXTERNALSYM SM_CYMINSPACING}
  4593. SM_CXSMICON = 49;
  4594. {$EXTERNALSYM SM_CXSMICON}
  4595. SM_CYSMICON = 50;
  4596. {$EXTERNALSYM SM_CYSMICON}
  4597. SM_CYSMCAPTION = 51;
  4598. {$EXTERNALSYM SM_CYSMCAPTION}
  4599. SM_CXSMSIZE = 52;
  4600. {$EXTERNALSYM SM_CXSMSIZE}
  4601. SM_CYSMSIZE = 53;
  4602. {$EXTERNALSYM SM_CYSMSIZE}
  4603. SM_CXMENUSIZE = 54;
  4604. {$EXTERNALSYM SM_CXMENUSIZE}
  4605. SM_CYMENUSIZE = 55;
  4606. {$EXTERNALSYM SM_CYMENUSIZE}
  4607. SM_ARRANGE = 56;
  4608. {$EXTERNALSYM SM_ARRANGE}
  4609. SM_CXMINIMIZED = 57;
  4610. {$EXTERNALSYM SM_CXMINIMIZED}
  4611. SM_CYMINIMIZED = 58;
  4612. {$EXTERNALSYM SM_CYMINIMIZED}
  4613. SM_CXMAXTRACK = 59;
  4614. {$EXTERNALSYM SM_CXMAXTRACK}
  4615. SM_CYMAXTRACK = 60;
  4616. {$EXTERNALSYM SM_CYMAXTRACK}
  4617. SM_CXMAXIMIZED = 61;
  4618. {$EXTERNALSYM SM_CXMAXIMIZED}
  4619. SM_CYMAXIMIZED = 62;
  4620. {$EXTERNALSYM SM_CYMAXIMIZED}
  4621. SM_NETWORK = 63;
  4622. {$EXTERNALSYM SM_NETWORK}
  4623. SM_CLEANBOOT = 67;
  4624. {$EXTERNALSYM SM_CLEANBOOT}
  4625. SM_CXDRAG = 68;
  4626. {$EXTERNALSYM SM_CXDRAG}
  4627. SM_CYDRAG = 69;
  4628. {$EXTERNALSYM SM_CYDRAG}
  4629. SM_SHOWSOUNDS = 70;
  4630. {$EXTERNALSYM SM_SHOWSOUNDS}
  4631. SM_CXMENUCHECK = 71; // Use instead of GetMenuCheckMarkDimensions()!
  4632. {$EXTERNALSYM SM_CXMENUCHECK}
  4633. SM_CYMENUCHECK = 72;
  4634. {$EXTERNALSYM SM_CYMENUCHECK}
  4635. SM_SLOWMACHINE = 73;
  4636. {$EXTERNALSYM SM_SLOWMACHINE}
  4637. SM_MIDEASTENABLED = 74;
  4638. {$EXTERNALSYM SM_MIDEASTENABLED}
  4639. SM_MOUSEWHEELPRESENT = 75;
  4640. {$EXTERNALSYM SM_MOUSEWHEELPRESENT}
  4641. SM_XVIRTUALSCREEN = 76;
  4642. {$EXTERNALSYM SM_XVIRTUALSCREEN}
  4643. SM_YVIRTUALSCREEN = 77;
  4644. {$EXTERNALSYM SM_YVIRTUALSCREEN}
  4645. SM_CXVIRTUALSCREEN = 78;
  4646. {$EXTERNALSYM SM_CXVIRTUALSCREEN}
  4647. SM_CYVIRTUALSCREEN = 79;
  4648. {$EXTERNALSYM SM_CYVIRTUALSCREEN}
  4649. SM_CMONITORS = 80;
  4650. {$EXTERNALSYM SM_CMONITORS}
  4651. SM_SAMEDISPLAYFORMAT = 81;
  4652. {$EXTERNALSYM SM_SAMEDISPLAYFORMAT}
  4653. SM_IMMENABLED = 82;
  4654. {$EXTERNALSYM SM_IMMENABLED}
  4655. SM_CXFOCUSBORDER = 83;
  4656. {$EXTERNALSYM SM_CXFOCUSBORDER}
  4657. SM_CYFOCUSBORDER = 84;
  4658. {$EXTERNALSYM SM_CYFOCUSBORDER}
  4659. //#if(_WIN32_WINNT >= 0x0501)
  4660. SM_TABLETPC = 86;
  4661. {$EXTERNALSYM SM_TABLETPC}
  4662. SM_MEDIACENTER = 87;
  4663. {$EXTERNALSYM SM_MEDIACENTER}
  4664. //#endif /* _WIN32_WINNT >= 0x0501 */
  4665. const
  4666. {$IFNDEF WIN98ME_UP}
  4667. SM_CMETRICS = 76;
  4668. {$ELSE}
  4669. {$IFDEF WIN98ME}
  4670. SM_CMETRICS = 83;
  4671. {$ELSE}
  4672. SM_CMETRICS = 88;
  4673. {$ENDIF WIN98ME}
  4674. {$ENDIF !WIN98ME_UP}
  4675. {$EXTERNALSYM SM_CMETRICS}
  4676. SM_REMOTESESSION = $1000;
  4677. {$EXTERNALSYM SM_REMOTESESSION}
  4678. SM_SHUTTINGDOWN = $2000;
  4679. {$EXTERNALSYM SM_SHUTTINGDOWN}
  4680. //#if(WINVER >= 0x0501)
  4681. SM_REMOTECONTROL = $2001;
  4682. {$EXTERNALSYM SM_REMOTECONTROL}
  4683. //#endif /* WINVER >= 0x0501 */
  4684. function GetSystemMetrics(nIndex: Integer): Integer; stdcall;
  4685. {$EXTERNALSYM GetSystemMetrics}
  4686. function LoadMenuA(hInstance: HINSTANCE; lpMenuName: LPCSTR): HMENU; stdcall;
  4687. {$EXTERNALSYM LoadMenuA}
  4688. function LoadMenuW(hInstance: HINSTANCE; lpMenuName: LPCWSTR): HMENU; stdcall;
  4689. {$EXTERNALSYM LoadMenuW}
  4690. function LoadMenu(hInstance: HINSTANCE; lpMenuName: LPCTSTR): HMENU; stdcall;
  4691. {$EXTERNALSYM LoadMenu}
  4692. function LoadMenuIndirectA(lpMenuTemplate: LPMENUTEMPLATEA): HMENU; stdcall;
  4693. {$EXTERNALSYM LoadMenuIndirectA}
  4694. function LoadMenuIndirectW(lpMenuTemplate: LPMENUTEMPLATEW): HMENU; stdcall;
  4695. {$EXTERNALSYM LoadMenuIndirectW}
  4696. function LoadMenuIndirect(lpMenuTemplate: LPMENUTEMPLATE): HMENU; stdcall;
  4697. {$EXTERNALSYM LoadMenuIndirect}
  4698. function GetMenu(hWnd: HWND): HMENU; stdcall;
  4699. {$EXTERNALSYM GetMenu}
  4700. function SetMenu(hWnd: HWND; hMenu: HMENU): BOOL; stdcall;
  4701. {$EXTERNALSYM SetMenu}
  4702. function ChangeMenuA(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCSTR;
  4703. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4704. {$EXTERNALSYM ChangeMenuA}
  4705. function ChangeMenuW(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCWSTR;
  4706. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4707. {$EXTERNALSYM ChangeMenuW}
  4708. function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCTSTR;
  4709. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4710. {$EXTERNALSYM ChangeMenu}
  4711. function HiliteMenuItem(hWnd: HWND; hMenu: HMENU; uIDHiliteItem: UINT; uHilite: UINT): BOOL; stdcall;
  4712. {$EXTERNALSYM HiliteMenuItem}
  4713. function GetMenuStringA(hMenu: HMENU; uIDItem: UINT; lpString: LPSTR;
  4714. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4715. {$EXTERNALSYM GetMenuStringA}
  4716. function GetMenuStringW(hMenu: HMENU; uIDItem: UINT; lpString: LPWSTR;
  4717. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4718. {$EXTERNALSYM GetMenuStringW}
  4719. function GetMenuString(hMenu: HMENU; uIDItem: UINT; lpString: LPTSTR;
  4720. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4721. {$EXTERNALSYM GetMenuString}
  4722. function GetMenuState(hMenu: HMENU; uId, uFlags: UINT): UINT; stdcall;
  4723. {$EXTERNALSYM GetMenuState}
  4724. function DrawMenuBar(hWnd: HWND): BOOL; stdcall;
  4725. {$EXTERNALSYM DrawMenuBar}
  4726. const
  4727. PMB_ACTIVE = $00000001;
  4728. {$EXTERNALSYM PMB_ACTIVE}
  4729. function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; stdcall;
  4730. {$EXTERNALSYM GetSystemMenu}
  4731. function CreateMenu: HMENU; stdcall;
  4732. {$EXTERNALSYM CreateMenu}
  4733. function CreatePopupMenu: HMENU; stdcall;
  4734. {$EXTERNALSYM CreatePopupMenu}
  4735. function DestroyMenu(hMenu: HMENU): BOOL; stdcall;
  4736. {$EXTERNALSYM DestroyMenu}
  4737. function CheckMenuItem(hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD; stdcall;
  4738. {$EXTERNALSYM CheckMenuItem}
  4739. function EnableMenuItem(hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL; stdcall;
  4740. {$EXTERNALSYM EnableMenuItem}
  4741. function GetSubMenu(hMenu: HMENU; nPos: Integer): HMENU; stdcall;
  4742. {$EXTERNALSYM GetSubMenu}
  4743. function GetMenuItemID(hMenu: HMENU; nPos: Integer): UINT; stdcall;
  4744. {$EXTERNALSYM GetMenuItemID}
  4745. function GetMenuItemCount(hMenu: HMENU): Integer; stdcall;
  4746. {$EXTERNALSYM GetMenuItemCount}
  4747. function InsertMenuA(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4748. lpNewItem: LPCSTR): BOOL; stdcall;
  4749. {$EXTERNALSYM InsertMenuA}
  4750. function InsertMenuW(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4751. lpNewItem: LPCWSTR): BOOL; stdcall;
  4752. {$EXTERNALSYM InsertMenuW}
  4753. function InsertMenu(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4754. lpNewItem: LPCTSTR): BOOL; stdcall;
  4755. {$EXTERNALSYM InsertMenu}
  4756. function AppendMenuA(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4757. lpNewItem: LPCSTR): BOOL; stdcall;
  4758. {$EXTERNALSYM AppendMenuA}
  4759. function AppendMenuW(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4760. lpNewItem: LPCWSTR): BOOL; stdcall;
  4761. {$EXTERNALSYM AppendMenuW}
  4762. function AppendMenu(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4763. lpNewItem: LPCTSTR): BOOL; stdcall;
  4764. {$EXTERNALSYM AppendMenu}
  4765. function ModifyMenuA(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4766. uIDNewItem: UINT_PTR; lpNewItem: LPCSTR): BOOL; stdcall;
  4767. {$EXTERNALSYM ModifyMenuA}
  4768. function ModifyMenuW(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4769. uIDNewItem: UINT_PTR; lpNewItem: LPCWSTR): BOOL; stdcall;
  4770. {$EXTERNALSYM ModifyMenuW}
  4771. function ModifyMenu(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4772. uIDNewItem: UINT_PTR; lpNewItem: LPCTSTR): BOOL; stdcall;
  4773. {$EXTERNALSYM ModifyMenu}
  4774. function RemoveMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4775. {$EXTERNALSYM RemoveMenu}
  4776. function DeleteMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4777. {$EXTERNALSYM DeleteMenu}
  4778. function SetMenuItemBitmaps(hMenu: HMENU; uPosition: UINT; uFlags: UINT;
  4779. hBitmapUnchecked: HBITMAP; hBitmapChecked: HBITMAP): BOOL; stdcall;
  4780. {$EXTERNALSYM SetMenuItemBitmaps}
  4781. function GetMenuCheckMarkDimensions: LONG; stdcall;
  4782. {$EXTERNALSYM GetMenuCheckMarkDimensions}
  4783. function TrackPopupMenu(hMenu: HMENU; uFlags: UINT; x: Integer; y: Integer;
  4784. nReserved: Integer; hWnd: HWND; prcRect: LPRECT): BOOL; stdcall;
  4785. {$EXTERNALSYM TrackPopupMenu}
  4786. // return codes for WM_MENUCHAR//
  4787. const
  4788. MNC_IGNORE = 0;
  4789. {$EXTERNALSYM MNC_IGNORE}
  4790. MNC_CLOSE = 1;
  4791. {$EXTERNALSYM MNC_CLOSE}
  4792. MNC_EXECUTE = 2;
  4793. {$EXTERNALSYM MNC_EXECUTE}
  4794. MNC_SELECT = 3;
  4795. {$EXTERNALSYM MNC_SELECT}
  4796. type
  4797. LPTPMPARAMS = ^TPMPARAMS;
  4798. {$EXTERNALSYM LPTPMPARAMS}
  4799. tagTPMPARAMS = record
  4800. cbSize: UINT; // Size of structure
  4801. rcExclude: RECT; // Screen coordinates of rectangle to exclude when positioning
  4802. end;
  4803. {$EXTERNALSYM tagTPMPARAMS}
  4804. TPMPARAMS = tagTPMPARAMS;
  4805. {$EXTERNALSYM TPMPARAMS}
  4806. TTPMParams = TPMPARAMS;
  4807. PTPMParams = LPTPMPARAMS;
  4808. function TrackPopupMenuEx(hmenu: HMENU; fuflags: UINT; x, y: Integer;
  4809. hwnd: HWND; lptpm: LPTPMPARAMS): BOOL; stdcall;
  4810. {$EXTERNALSYM TrackPopupMenuEx}
  4811. const
  4812. MNS_NOCHECK = $80000000;
  4813. {$EXTERNALSYM MNS_NOCHECK}
  4814. MNS_MODELESS = $40000000;
  4815. {$EXTERNALSYM MNS_MODELESS}
  4816. MNS_DRAGDROP = $20000000;
  4817. {$EXTERNALSYM MNS_DRAGDROP}
  4818. MNS_AUTODISMISS = $10000000;
  4819. {$EXTERNALSYM MNS_AUTODISMISS}
  4820. MNS_NOTIFYBYPOS = $08000000;
  4821. {$EXTERNALSYM MNS_NOTIFYBYPOS}
  4822. MNS_CHECKORBMP = $04000000;
  4823. {$EXTERNALSYM MNS_CHECKORBMP}
  4824. MIM_MAXHEIGHT = $00000001;
  4825. {$EXTERNALSYM MIM_MAXHEIGHT}
  4826. MIM_BACKGROUND = $00000002;
  4827. {$EXTERNALSYM MIM_BACKGROUND}
  4828. MIM_HELPID = $00000004;
  4829. {$EXTERNALSYM MIM_HELPID}
  4830. MIM_MENUDATA = $00000008;
  4831. {$EXTERNALSYM MIM_MENUDATA}
  4832. MIM_STYLE = $00000010;
  4833. {$EXTERNALSYM MIM_STYLE}
  4834. MIM_APPLYTOSUBMENUS = $80000000;
  4835. {$EXTERNALSYM MIM_APPLYTOSUBMENUS}
  4836. type
  4837. LPMENUINFO = ^MENUINFO;
  4838. {$EXTERNALSYM LPMENUINFO}
  4839. tagMENUINFO = record
  4840. cbSize: DWORD;
  4841. fMask: DWORD;
  4842. dwStyle: DWORD;
  4843. cyMax: UINT;
  4844. hbrBack: HBRUSH;
  4845. dwContextHelpID: DWORD;
  4846. dwMenuData: ULONG_PTR;
  4847. end;
  4848. {$EXTERNALSYM tagMENUINFO}
  4849. MENUINFO = tagMENUINFO;
  4850. {$EXTERNALSYM MENUINFO}
  4851. TMenuinfo = MENUINFO;
  4852. PMenuinfo = LPMENUINFO;
  4853. LPCMENUINFO = ^MENUINFO;
  4854. {$EXTERNALSYM LPCMENUINFO}
  4855. function GetMenuInfo(hmenu: HMENU; var lpcmi: MENUINFO): BOOL; stdcall;
  4856. {$EXTERNALSYM GetMenuInfo}
  4857. function SetMenuInfo(hemnu: HMENU; const lpcmi: MENUINFO): BOOL; stdcall;
  4858. {$EXTERNALSYM SetMenuInfo}
  4859. function EndMenu: BOOL; stdcall;
  4860. {$EXTERNALSYM EndMenu}
  4861. //
  4862. // WM_MENUDRAG return values.
  4863. //
  4864. const
  4865. MND_CONTINUE = 0;
  4866. {$EXTERNALSYM MND_CONTINUE}
  4867. MND_ENDMENU = 1;
  4868. {$EXTERNALSYM MND_ENDMENU}
  4869. type
  4870. PMENUGETOBJECTINFO = ^MENUGETOBJECTINFO;
  4871. tagMENUGETOBJECTINFO = record
  4872. dwFlags: DWORD;
  4873. uPos: UINT;
  4874. hmenu: HMENU;
  4875. riid: PVOID;
  4876. pvObj: PVOID;
  4877. end;
  4878. {$EXTERNALSYM tagMENUGETOBJECTINFO}
  4879. MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;
  4880. {$EXTERNALSYM MENUGETOBJECTINFO}
  4881. TMenuGetObjectInfo = MENUGETOBJECTINFO;
  4882. //
  4883. // MENUGETOBJECTINFO dwFlags values
  4884. //
  4885. const
  4886. MNGOF_TOPGAP = $00000001;
  4887. {$EXTERNALSYM MNGOF_TOPGAP}
  4888. MNGOF_BOTTOMGAP = $00000002;
  4889. {$EXTERNALSYM MNGOF_BOTTOMGAP}
  4890. //
  4891. // WM_MENUGETOBJECT return values
  4892. //
  4893. MNGO_NOINTERFACE = $00000000;
  4894. {$EXTERNALSYM MNGO_NOINTERFACE}
  4895. MNGO_NOERROR = $00000001;
  4896. {$EXTERNALSYM MNGO_NOERROR}
  4897. MIIM_STATE = $00000001;
  4898. {$EXTERNALSYM MIIM_STATE}
  4899. MIIM_ID = $00000002;
  4900. {$EXTERNALSYM MIIM_ID}
  4901. MIIM_SUBMENU = $00000004;
  4902. {$EXTERNALSYM MIIM_SUBMENU}
  4903. MIIM_CHECKMARKS = $00000008;
  4904. {$EXTERNALSYM MIIM_CHECKMARKS}
  4905. MIIM_TYPE = $00000010;
  4906. {$EXTERNALSYM MIIM_TYPE}
  4907. MIIM_DATA = $00000020;
  4908. {$EXTERNALSYM MIIM_DATA}
  4909. MIIM_STRING = $00000040;
  4910. {$EXTERNALSYM MIIM_STRING}
  4911. MIIM_BITMAP = $00000080;
  4912. {$EXTERNALSYM MIIM_BITMAP}
  4913. MIIM_FTYPE = $00000100;
  4914. {$EXTERNALSYM MIIM_FTYPE}
  4915. HBMMENU_CALLBACK = HBITMAP(-1);
  4916. {$EXTERNALSYM HBMMENU_CALLBACK}
  4917. HBMMENU_SYSTEM = HBITMAP(1);
  4918. {$EXTERNALSYM HBMMENU_SYSTEM}
  4919. HBMMENU_MBAR_RESTORE = HBITMAP(2);
  4920. {$EXTERNALSYM HBMMENU_MBAR_RESTORE}
  4921. HBMMENU_MBAR_MINIMIZE = HBITMAP(3);
  4922. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE}
  4923. HBMMENU_MBAR_CLOSE = HBITMAP(5);
  4924. {$EXTERNALSYM HBMMENU_MBAR_CLOSE}
  4925. HBMMENU_MBAR_CLOSE_D = HBITMAP(6);
  4926. {$EXTERNALSYM HBMMENU_MBAR_CLOSE_D}
  4927. HBMMENU_MBAR_MINIMIZE_D = HBITMAP(7);
  4928. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE_D}
  4929. HBMMENU_POPUP_CLOSE = HBITMAP(8);
  4930. {$EXTERNALSYM HBMMENU_POPUP_CLOSE}
  4931. HBMMENU_POPUP_RESTORE = HBITMAP(9);
  4932. {$EXTERNALSYM HBMMENU_POPUP_RESTORE}
  4933. HBMMENU_POPUP_MAXIMIZE = HBITMAP(10);
  4934. {$EXTERNALSYM HBMMENU_POPUP_MAXIMIZE}
  4935. HBMMENU_POPUP_MINIMIZE = HBITMAP(11);
  4936. {$EXTERNALSYM HBMMENU_POPUP_MINIMIZE}
  4937. type
  4938. LPMENUITEMINFOA = ^MENUITEMINFOA;
  4939. {$EXTERNALSYM LPMENUITEMINFOA}
  4940. tagMENUITEMINFOA = record
  4941. cbSize: UINT;
  4942. fMask: UINT;
  4943. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4944. fState: UINT; // used if MIIM_STATE
  4945. wID: UINT; // used if MIIM_ID
  4946. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4947. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4948. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4949. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4950. dwTypeData: LPSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4951. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4952. {$IFDEF WIN98ME_UP}
  4953. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4954. {$ENDIF WIN98ME_UP}
  4955. end;
  4956. {$EXTERNALSYM tagMENUITEMINFOA}
  4957. MENUITEMINFOA = tagMENUITEMINFOA;
  4958. {$EXTERNALSYM MENUITEMINFOA}
  4959. TMenuItemInfoA = MENUITEMINFOA;
  4960. PMenuItemInfoA = LPMENUITEMINFOA;
  4961. LPMENUITEMINFOW = ^MENUITEMINFOW;
  4962. {$EXTERNALSYM LPMENUITEMINFOW}
  4963. tagMENUITEMINFOW = record
  4964. cbSize: UINT;
  4965. fMask: UINT;
  4966. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4967. fState: UINT; // used if MIIM_STATE
  4968. wID: UINT; // used if MIIM_ID
  4969. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4970. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4971. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4972. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4973. dwTypeData: LPWSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4974. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4975. {$IFDEF WIN98ME_UP}
  4976. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4977. {$ENDIF WIN98ME_UP}
  4978. end;
  4979. {$EXTERNALSYM tagMENUITEMINFOW}
  4980. MENUITEMINFOW = tagMENUITEMINFOW;
  4981. {$EXTERNALSYM MENUITEMINFOW}
  4982. TMenuItemInfoW = MENUITEMINFOW;
  4983. PMenuItemInfoW = LPMENUITEMINFOW;
  4984. LPCMENUITEMINFOA = ^MENUITEMINFOA;
  4985. {$EXTERNALSYM LPCMENUITEMINFOA}
  4986. LPCMENUITEMINFOW = ^MENUITEMINFOW;
  4987. {$EXTERNALSYM LPCMENUITEMINFOW}
  4988. {$IFDEF UNICODE}
  4989. MENUITEMINFO = MENUITEMINFOW;
  4990. {$EXTERNALSYM MENUITEMINFO}
  4991. LPMENUITEMINFO = LPMENUITEMINFOW;
  4992. {$EXTERNALSYM LPMENUITEMINFO}
  4993. TMenuItemInfo = TMenuItemInfoW;
  4994. PMenuItemInfo = PMenuItemInfoW;
  4995. LPCMENUITEMINFO = LPCMENUITEMINFOW;
  4996. {$EXTERNALSYM LPCMENUITEMINFO}
  4997. {$ELSE}
  4998. MENUITEMINFO = MENUITEMINFOA;
  4999. {$EXTERNALSYM MENUITEMINFO}
  5000. LPMENUITEMINFO = LPMENUITEMINFOA;
  5001. {$EXTERNALSYM LPMENUITEMINFO}
  5002. TMenuItemInfo = TMenuItemInfoA;
  5003. PMenuItemInfo = PMenuItemInfoA;
  5004. LPCMENUITEMINFO = LPCMENUITEMINFOA;
  5005. {$EXTERNALSYM LPCMENUITEMINFO}
  5006. {$ENDIF UNICODE}
  5007. function InsertMenuItemA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5008. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5009. {$EXTERNALSYM InsertMenuItemA}
  5010. function InsertMenuItemW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5011. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5012. {$EXTERNALSYM InsertMenuItemW}
  5013. function InsertMenuItem(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5014. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5015. {$EXTERNALSYM InsertMenuItem}
  5016. function GetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5017. var lpmii: MENUITEMINFOA): BOOL; stdcall;
  5018. {$EXTERNALSYM GetMenuItemInfoA}
  5019. function GetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5020. var lpmii: MENUITEMINFOW): BOOL; stdcall;
  5021. {$EXTERNALSYM GetMenuItemInfoW}
  5022. function GetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5023. var lpmii: MENUITEMINFO): BOOL; stdcall;
  5024. {$EXTERNALSYM GetMenuItemInfo}
  5025. function SetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5026. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5027. {$EXTERNALSYM SetMenuItemInfoA}
  5028. function SetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5029. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5030. {$EXTERNALSYM SetMenuItemInfoW}
  5031. function SetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5032. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5033. {$EXTERNALSYM SetMenuItemInfo}
  5034. const
  5035. GMDI_USEDISABLED = $0001;
  5036. {$EXTERNALSYM GMDI_USEDISABLED}
  5037. GMDI_GOINTOPOPUPS = $0002;
  5038. {$EXTERNALSYM GMDI_GOINTOPOPUPS}
  5039. function GetMenuDefaultItem(hMenu: HMENU; fByPos, gmdiFlags: UINT): UINT; stdcall;
  5040. {$EXTERNALSYM GetMenuDefaultItem}
  5041. function SetMenuDefaultItem(hMenu: HMENU; uItem, fByPos: UINT): BOOL; stdcall;
  5042. {$EXTERNALSYM SetMenuDefaultItem}
  5043. function GetMenuItemRect(hWnd: HWND; hMenu: HMENU; uItem: UINT; var lprcItem: RECT): BOOL; stdcall;
  5044. {$EXTERNALSYM GetMenuItemRect}
  5045. function MenuItemFromPoint(hWnd: HWND; hMenu: HMENU; ptScreen: POINT): Integer; stdcall;
  5046. {$EXTERNALSYM MenuItemFromPoint}
  5047. //
  5048. // Flags for TrackPopupMenu
  5049. //
  5050. const
  5051. TPM_LEFTBUTTON = $0000;
  5052. {$EXTERNALSYM TPM_LEFTBUTTON}
  5053. TPM_RIGHTBUTTON = $0002;
  5054. {$EXTERNALSYM TPM_RIGHTBUTTON}
  5055. TPM_LEFTALIGN = $0000;
  5056. {$EXTERNALSYM TPM_LEFTALIGN}
  5057. TPM_CENTERALIGN = $0004;
  5058. {$EXTERNALSYM TPM_CENTERALIGN}
  5059. TPM_RIGHTALIGN = $0008;
  5060. {$EXTERNALSYM TPM_RIGHTALIGN}
  5061. TPM_TOPALIGN = $0000;
  5062. {$EXTERNALSYM TPM_TOPALIGN}
  5063. TPM_VCENTERALIGN = $0010;
  5064. {$EXTERNALSYM TPM_VCENTERALIGN}
  5065. TPM_BOTTOMALIGN = $0020;
  5066. {$EXTERNALSYM TPM_BOTTOMALIGN}
  5067. TPM_HORIZONTAL = $0000; // Horz alignment matters more
  5068. {$EXTERNALSYM TPM_HORIZONTAL}
  5069. TPM_VERTICAL = $0040; // Vert alignment matters more
  5070. {$EXTERNALSYM TPM_VERTICAL}
  5071. TPM_NONOTIFY = $0080; // Don't send any notification msgs
  5072. {$EXTERNALSYM TPM_NONOTIFY}
  5073. TPM_RETURNCMD = $0100;
  5074. {$EXTERNALSYM TPM_RETURNCMD}
  5075. TPM_RECURSE = $0001;
  5076. {$EXTERNALSYM TPM_RECURSE}
  5077. TPM_HORPOSANIMATION = $0400;
  5078. {$EXTERNALSYM TPM_HORPOSANIMATION}
  5079. TPM_HORNEGANIMATION = $0800;
  5080. {$EXTERNALSYM TPM_HORNEGANIMATION}
  5081. TPM_VERPOSANIMATION = $1000;
  5082. {$EXTERNALSYM TPM_VERPOSANIMATION}
  5083. TPM_VERNEGANIMATION = $2000;
  5084. {$EXTERNALSYM TPM_VERNEGANIMATION}
  5085. TPM_NOANIMATION = $4000;
  5086. {$EXTERNALSYM TPM_NOANIMATION}
  5087. TPM_LAYOUTRTL = $8000;
  5088. {$EXTERNALSYM TPM_LAYOUTRTL}
  5089. //
  5090. // Drag-and-drop support
  5091. // Obsolete - use OLE instead
  5092. //
  5093. type
  5094. LPDROPSTRUCT = ^DROPSTRUCT;
  5095. {$EXTERNALSYM LPDROPSTRUCT}
  5096. tagDROPSTRUCT = record
  5097. hwndSource: HWND;
  5098. hwndSink: HWND;
  5099. wFmt: DWORD;
  5100. dwData: ULONG_PTR;
  5101. ptDrop: POINT;
  5102. dwControlData: DWORD;
  5103. end;
  5104. {$EXTERNALSYM tagDROPSTRUCT}
  5105. DROPSTRUCT = tagDROPSTRUCT;
  5106. {$EXTERNALSYM DROPSTRUCT}
  5107. TDropStruct = DROPSTRUCT;
  5108. PDropStruct = LPDROPSTRUCT;
  5109. const
  5110. DOF_EXECUTABLE = $8001; // wFmt flags
  5111. {$EXTERNALSYM DOF_EXECUTABLE}
  5112. DOF_DOCUMENT = $8002;
  5113. {$EXTERNALSYM DOF_DOCUMENT}
  5114. DOF_DIRECTORY = $8003;
  5115. {$EXTERNALSYM DOF_DIRECTORY}
  5116. DOF_MULTIPLE = $8004;
  5117. {$EXTERNALSYM DOF_MULTIPLE}
  5118. DOF_PROGMAN = $0001;
  5119. {$EXTERNALSYM DOF_PROGMAN}
  5120. DOF_SHELLDATA = $0002;
  5121. {$EXTERNALSYM DOF_SHELLDATA}
  5122. DO_DROPFILE = $454C4946;
  5123. {$EXTERNALSYM DO_DROPFILE}
  5124. DO_PRINTFILE = $544E5250;
  5125. {$EXTERNALSYM DO_PRINTFILE}
  5126. function DragObject(hwnd1, hwnd2: HWND; i: UINT; u: ULONG_PTR; hcursor: HCURSOR): DWORD; stdcall;
  5127. {$EXTERNALSYM DragObject}
  5128. function DragDetect(hwnd: HWND; pt: POINT): BOOL; stdcall;
  5129. {$EXTERNALSYM DragDetect}
  5130. function DrawIcon(hDC: HDC; X, Y: Integer; hIcon: HICON): BOOL; stdcall;
  5131. {$EXTERNALSYM DrawIcon}
  5132. //
  5133. // DrawText() Format Flags
  5134. //
  5135. const
  5136. DT_TOP = $00000000;
  5137. {$EXTERNALSYM DT_TOP}
  5138. DT_LEFT = $00000000;
  5139. {$EXTERNALSYM DT_LEFT}
  5140. DT_CENTER = $00000001;
  5141. {$EXTERNALSYM DT_CENTER}
  5142. DT_RIGHT = $00000002;
  5143. {$EXTERNALSYM DT_RIGHT}
  5144. DT_VCENTER = $00000004;
  5145. {$EXTERNALSYM DT_VCENTER}
  5146. DT_BOTTOM = $00000008;
  5147. {$EXTERNALSYM DT_BOTTOM}
  5148. DT_WORDBREAK = $00000010;
  5149. {$EXTERNALSYM DT_WORDBREAK}
  5150. DT_SINGLELINE = $00000020;
  5151. {$EXTERNALSYM DT_SINGLELINE}
  5152. DT_EXPANDTABS = $00000040;
  5153. {$EXTERNALSYM DT_EXPANDTABS}
  5154. DT_TABSTOP = $00000080;
  5155. {$EXTERNALSYM DT_TABSTOP}
  5156. DT_NOCLIP = $00000100;
  5157. {$EXTERNALSYM DT_NOCLIP}
  5158. DT_EXTERNALLEADING = $00000200;
  5159. {$EXTERNALSYM DT_EXTERNALLEADING}
  5160. DT_CALCRECT = $00000400;
  5161. {$EXTERNALSYM DT_CALCRECT}
  5162. DT_NOPREFIX = $00000800;
  5163. {$EXTERNALSYM DT_NOPREFIX}
  5164. DT_INTERNAL = $00001000;
  5165. {$EXTERNALSYM DT_INTERNAL}
  5166. DT_EDITCONTROL = $00002000;
  5167. {$EXTERNALSYM DT_EDITCONTROL}
  5168. DT_PATH_ELLIPSIS = $00004000;
  5169. {$EXTERNALSYM DT_PATH_ELLIPSIS}
  5170. DT_END_ELLIPSIS = $00008000;
  5171. {$EXTERNALSYM DT_END_ELLIPSIS}
  5172. DT_MODIFYSTRING = $00010000;
  5173. {$EXTERNALSYM DT_MODIFYSTRING}
  5174. DT_RTLREADING = $00020000;
  5175. {$EXTERNALSYM DT_RTLREADING}
  5176. DT_WORD_ELLIPSIS = $00040000;
  5177. {$EXTERNALSYM DT_WORD_ELLIPSIS}
  5178. DT_NOFULLWIDTHCHARBREAK = $00080000;
  5179. {$EXTERNALSYM DT_NOFULLWIDTHCHARBREAK}
  5180. DT_HIDEPREFIX = $00100000;
  5181. {$EXTERNALSYM DT_HIDEPREFIX}
  5182. DT_PREFIXONLY = $00200000;
  5183. {$EXTERNALSYM DT_PREFIXONLY}
  5184. type
  5185. LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
  5186. {$EXTERNALSYM LPDRAWTEXTPARAMS}
  5187. tagDRAWTEXTPARAMS = record
  5188. cbSize: UINT;
  5189. iTabLength: Integer;
  5190. iLeftMargin: Integer;
  5191. iRightMargin: Integer;
  5192. uiLengthDrawn: UINT;
  5193. end;
  5194. {$EXTERNALSYM tagDRAWTEXTPARAMS}
  5195. DRAWTEXTPARAMS = tagDRAWTEXTPARAMS;
  5196. {$EXTERNALSYM DRAWTEXTPARAMS}
  5197. TDrawTextParams = DRAWTEXTPARAMS;
  5198. PDrawTextParams = LPDRAWTEXTPARAMS;
  5199. function DrawTextA(hDC: HDC; lpString: LPCSTR; nCount: Integer;
  5200. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5201. {$EXTERNALSYM DrawTextA}
  5202. function DrawTextW(hDC: HDC; lpString: LPCWSTR; nCount: Integer;
  5203. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5204. {$EXTERNALSYM DrawTextW}
  5205. function DrawText(hDC: HDC; lpString: LPCTSTR; nCount: Integer;
  5206. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5207. {$EXTERNALSYM DrawText}
  5208. function DrawTextExA(hDc: HDC; lpchText: LPSTR; cchText: Integer;
  5209. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5210. {$EXTERNALSYM DrawTextExA}
  5211. function DrawTextExW(hDc: HDC; lpchText: LPWSTR; cchText: Integer;
  5212. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5213. {$EXTERNALSYM DrawTextExW}
  5214. function DrawTextEx(hDc: HDC; lpchText: LPTSTR; cchText: Integer;
  5215. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5216. {$EXTERNALSYM DrawTextEx}
  5217. function GrayStringA(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5218. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5219. {$EXTERNALSYM GrayStringA}
  5220. function GrayStringW(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5221. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5222. {$EXTERNALSYM GrayStringW}
  5223. function GrayString(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5224. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5225. {$EXTERNALSYM GrayString}
  5226. // Monolithic state-drawing routine//
  5227. // Image type//
  5228. const
  5229. DST_COMPLEX = $0000;
  5230. {$EXTERNALSYM DST_COMPLEX}
  5231. DST_TEXT = $0001;
  5232. {$EXTERNALSYM DST_TEXT}
  5233. DST_PREFIXTEXT = $0002;
  5234. {$EXTERNALSYM DST_PREFIXTEXT}
  5235. DST_ICON = $0003;
  5236. {$EXTERNALSYM DST_ICON}
  5237. DST_BITMAP = $0004;
  5238. {$EXTERNALSYM DST_BITMAP}
  5239. // State type//
  5240. DSS_NORMAL = $0000;
  5241. {$EXTERNALSYM DSS_NORMAL}
  5242. DSS_UNION = $0010; // Gray string appearance
  5243. {$EXTERNALSYM DSS_UNION}
  5244. DSS_DISABLED = $0020;
  5245. {$EXTERNALSYM DSS_DISABLED}
  5246. DSS_MONO = $0080;
  5247. {$EXTERNALSYM DSS_MONO}
  5248. DSS_HIDEPREFIX = $0200;
  5249. {$EXTERNALSYM DSS_HIDEPREFIX}
  5250. DSS_PREFIXONLY = $0400;
  5251. {$EXTERNALSYM DSS_PREFIXONLY}
  5252. DSS_RIGHT = $8000;
  5253. {$EXTERNALSYM DSS_RIGHT}
  5254. function DrawStateA(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5255. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5256. {$EXTERNALSYM DrawStateA}
  5257. function DrawStateW(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5258. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5259. {$EXTERNALSYM DrawStateW}
  5260. function DrawState(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5261. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5262. {$EXTERNALSYM DrawState}
  5263. function TabbedTextOutA(hDC: HDC; X, Y: Integer; lpString: LPCSTR; nCount,
  5264. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5265. {$EXTERNALSYM TabbedTextOutA}
  5266. function TabbedTextOutW(hDC: HDC; X, Y: Integer; lpString: LPCWSTR; nCount,
  5267. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5268. {$EXTERNALSYM TabbedTextOutW}
  5269. function TabbedTextOut(hDC: HDC; X, Y: Integer; lpString: LPCTSTR; nCount,
  5270. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5271. {$EXTERNALSYM TabbedTextOut}
  5272. function GetTabbedTextExtentA(hDC: HDC; lpString: LPCSTR; nCount,
  5273. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5274. {$EXTERNALSYM GetTabbedTextExtentA}
  5275. function GetTabbedTextExtentW(hDC: HDC; lpString: LPCWSTR; nCount,
  5276. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5277. {$EXTERNALSYM GetTabbedTextExtentW}
  5278. function GetTabbedTextExtent(hDC: HDC; lpString: LPCTSTR; nCount,
  5279. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5280. {$EXTERNALSYM GetTabbedTextExtent}
  5281. function UpdateWindow(hWnd: HWND): BOOL; stdcall;
  5282. {$EXTERNALSYM UpdateWindow}
  5283. function SetActiveWindow(hWnd: HWND): HWND; stdcall;
  5284. {$EXTERNALSYM SetActiveWindow}
  5285. function GetForegroundWindow: HWND; stdcall;
  5286. {$EXTERNALSYM GetForegroundWindow}
  5287. function PaintDesktop(hdc: HDC): BOOL; stdcall;
  5288. {$EXTERNALSYM PaintDesktop}
  5289. procedure SwitchToThisWindow(hwnd: HWND; fUnknown: BOOL); stdcall;
  5290. {$EXTERNALSYM SwitchToThisWindow}
  5291. function SetForegroundWindow(hWnd: HWND): BOOL; stdcall;
  5292. {$EXTERNALSYM SetForegroundWindow}
  5293. function AllowSetForegroundWindow(dwProcessId: DWORD): BOOL; stdcall;
  5294. {$EXTERNALSYM AllowSetForegroundWindow}
  5295. const
  5296. ASFW_ANY = DWORD(-1);
  5297. {$EXTERNALSYM ASFW_ANY}
  5298. function LockSetForegroundWindow(uLockCode: UINT): BOOL; stdcall;
  5299. {$EXTERNALSYM LockSetForegroundWindow}
  5300. const
  5301. LSFW_LOCK = 1;
  5302. {$EXTERNALSYM LSFW_LOCK}
  5303. LSFW_UNLOCK = 2;
  5304. {$EXTERNALSYM LSFW_UNLOCK}
  5305. function WindowFromDC(hDC: HDC): HWND; stdcall;
  5306. {$EXTERNALSYM WindowFromDC}
  5307. function GetDC(hWnd: HWND): HDC; stdcall;
  5308. {$EXTERNALSYM GetDC}
  5309. function GetDCEx(hWnd: HWND; hrgnClip: HRGN; flags: DWORD): HDC; stdcall;
  5310. {$EXTERNALSYM GetDCEx}
  5311. //
  5312. // GetDCEx() flags
  5313. //
  5314. const
  5315. DCX_WINDOW = $00000001;
  5316. {$EXTERNALSYM DCX_WINDOW}
  5317. DCX_CACHE = $00000002;
  5318. {$EXTERNALSYM DCX_CACHE}
  5319. DCX_NORESETATTRS = $00000004;
  5320. {$EXTERNALSYM DCX_NORESETATTRS}
  5321. DCX_CLIPCHILDREN = $00000008;
  5322. {$EXTERNALSYM DCX_CLIPCHILDREN}
  5323. DCX_CLIPSIBLINGS = $00000010;
  5324. {$EXTERNALSYM DCX_CLIPSIBLINGS}
  5325. DCX_PARENTCLIP = $00000020;
  5326. {$EXTERNALSYM DCX_PARENTCLIP}
  5327. DCX_EXCLUDERGN = $00000040;
  5328. {$EXTERNALSYM DCX_EXCLUDERGN}
  5329. DCX_INTERSECTRGN = $00000080;
  5330. {$EXTERNALSYM DCX_INTERSECTRGN}
  5331. DCX_EXCLUDEUPDATE = $00000100;
  5332. {$EXTERNALSYM DCX_EXCLUDEUPDATE}
  5333. DCX_INTERSECTUPDATE = $00000200;
  5334. {$EXTERNALSYM DCX_INTERSECTUPDATE}
  5335. DCX_LOCKWINDOWUPDATE = $00000400;
  5336. {$EXTERNALSYM DCX_LOCKWINDOWUPDATE}
  5337. DCX_VALIDATE = $00200000;
  5338. {$EXTERNALSYM DCX_VALIDATE}
  5339. function GetWindowDC(hWnd: HWND): HDC; stdcall;
  5340. {$EXTERNALSYM GetWindowDC}
  5341. function ReleaseDC(hWnd: HWND; hDC: HDC): Integer; stdcall;
  5342. {$EXTERNALSYM ReleaseDC}
  5343. function BeginPaint(hWnd: HWND; var lpPaint: PAINTSTRUCT): HDC; stdcall;
  5344. {$EXTERNALSYM BeginPaint}
  5345. function EndPaint(hWnd: HWND; const lpPaint: PAINTSTRUCT): BOOL; stdcall;
  5346. {$EXTERNALSYM EndPaint}
  5347. function GetUpdateRect(hWnd: HWND; var lpRect: RECT; bErase: BOOL): BOOL; stdcall;
  5348. {$EXTERNALSYM GetUpdateRect}
  5349. function GetUpdateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): Integer; stdcall;
  5350. {$EXTERNALSYM GetUpdateRgn}
  5351. function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: BOOL): Integer; stdcall;
  5352. {$EXTERNALSYM SetWindowRgn}
  5353. function GetWindowRgn(hWnd: HWND; hRgn: HRGN): Integer; stdcall;
  5354. {$EXTERNALSYM GetWindowRgn}
  5355. function GetWindowRgnBox(hWnd: HWND; var lprc: RECT): Integer; stdcall;
  5356. {$EXTERNALSYM GetWindowRgnBox}
  5357. function ExcludeUpdateRgn(hDC: HDC; hWnd: HWND): Integer; stdcall;
  5358. {$EXTERNALSYM ExcludeUpdateRgn}
  5359. function InvalidateRect(hWnd: HWND; lpRect: LPRECT; bErase: BOOL): BOOL; stdcall;
  5360. {$EXTERNALSYM InvalidateRect}
  5361. function ValidateRect(hWnd: HWND; lpRect: LPRECT): BOOL; stdcall;
  5362. {$EXTERNALSYM ValidateRect}
  5363. function InvalidateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): BOOL; stdcall;
  5364. {$EXTERNALSYM InvalidateRgn}
  5365. function ValidateRgn(hWnd: HWND; hRgn: HRGN): BOOL; stdcall;
  5366. {$EXTERNALSYM ValidateRgn}
  5367. function RedrawWindow(hWnd: HWND; lprcUpdate: LPRECT; hrgnUpdate: HRGN; flags: UINT): BOOL; stdcall;
  5368. {$EXTERNALSYM RedrawWindow}
  5369. //
  5370. // RedrawWindow() flags
  5371. //
  5372. const
  5373. RDW_INVALIDATE = $0001;
  5374. {$EXTERNALSYM RDW_INVALIDATE}
  5375. RDW_INTERNALPAINT = $0002;
  5376. {$EXTERNALSYM RDW_INTERNALPAINT}
  5377. RDW_ERASE = $0004;
  5378. {$EXTERNALSYM RDW_ERASE}
  5379. RDW_VALIDATE = $0008;
  5380. {$EXTERNALSYM RDW_VALIDATE}
  5381. RDW_NOINTERNALPAINT = $0010;
  5382. {$EXTERNALSYM RDW_NOINTERNALPAINT}
  5383. RDW_NOERASE = $0020;
  5384. {$EXTERNALSYM RDW_NOERASE}
  5385. RDW_NOCHILDREN = $0040;
  5386. {$EXTERNALSYM RDW_NOCHILDREN}
  5387. RDW_ALLCHILDREN = $0080;
  5388. {$EXTERNALSYM RDW_ALLCHILDREN}
  5389. RDW_UPDATENOW = $0100;
  5390. {$EXTERNALSYM RDW_UPDATENOW}
  5391. RDW_ERASENOW = $0200;
  5392. {$EXTERNALSYM RDW_ERASENOW}
  5393. RDW_FRAME = $0400;
  5394. {$EXTERNALSYM RDW_FRAME}
  5395. RDW_NOFRAME = $0800;
  5396. {$EXTERNALSYM RDW_NOFRAME}
  5397. //
  5398. // LockWindowUpdate API
  5399. //
  5400. function LockWindowUpdate(hWndLock: HWND): BOOL; stdcall;
  5401. {$EXTERNALSYM LockWindowUpdate}
  5402. function ScrollWindow(hWnd: HWND; XAmount, YAmount: Integer; lpRect, lpClipRect: LPRECT): BOOL; stdcall;
  5403. {$EXTERNALSYM ScrollWindow}
  5404. function ScrollDC(hDC: HDC; dx, dy: Integer; lprcScroll, lprcClip: LPRECT;
  5405. hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; stdcall;
  5406. {$EXTERNALSYM ScrollDC}
  5407. function ScrollWindowEx(hWnd: HWND; dx, dy: Integer; prcScroll, prcClip: LPRECT;
  5408. hrgnUpdate: HRGN; prcUpdate: LPRECT; flags: UINT): Integer; stdcall;
  5409. {$EXTERNALSYM ScrollWindowEx}
  5410. const
  5411. SW_SCROLLCHILDREN = $0001; // Scroll children within *lprcScroll.
  5412. {$EXTERNALSYM SW_SCROLLCHILDREN}
  5413. SW_INVALIDATE = $0002; // Invalidate after scrolling
  5414. {$EXTERNALSYM SW_INVALIDATE}
  5415. SW_ERASE = $0004; // If SW_INVALIDATE, don't send WM_ERASEBACKGROUND
  5416. {$EXTERNALSYM SW_ERASE}
  5417. SW_SMOOTHSCROLL = $0010; // Use smooth scrolling
  5418. {$EXTERNALSYM SW_SMOOTHSCROLL}
  5419. function SetScrollPos(hWnd: HWND; nBar, nPos: Integer; bRedraw: BOOL): Integer; stdcall;
  5420. {$EXTERNALSYM SetScrollPos}
  5421. function GetScrollPos(hWnd: HWND; nBar: Integer): Integer; stdcall;
  5422. {$EXTERNALSYM GetScrollPos}
  5423. function SetScrollRange(hWnd: HWND; nBar, nMinPos, nMaxPos: Integer; bRedraw: BOOL): BOOL; stdcall;
  5424. {$EXTERNALSYM SetScrollRange}
  5425. function GetScrollRange(hWnd: HWND; nBar: Integer; var lpMinPos, lpMaxPos: Integer): BOOL; stdcall;
  5426. {$EXTERNALSYM GetScrollRange}
  5427. function ShowScrollBar(hWnd: HWND; wBar: Integer; bShow: BOOL): BOOL; stdcall;
  5428. {$EXTERNALSYM ShowScrollBar}
  5429. function EnableScrollBar(hWnd: HWND; wSBflags, wArrows: UINT): BOOL; stdcall;
  5430. {$EXTERNALSYM EnableScrollBar}
  5431. //
  5432. // EnableScrollBar() flags
  5433. //
  5434. const
  5435. ESB_ENABLE_BOTH = $0000;
  5436. {$EXTERNALSYM ESB_ENABLE_BOTH}
  5437. ESB_DISABLE_BOTH = $0003;
  5438. {$EXTERNALSYM ESB_DISABLE_BOTH}
  5439. ESB_DISABLE_LEFT = $0001;
  5440. {$EXTERNALSYM ESB_DISABLE_LEFT}
  5441. ESB_DISABLE_RIGHT = $0002;
  5442. {$EXTERNALSYM ESB_DISABLE_RIGHT}
  5443. ESB_DISABLE_UP = $0001;
  5444. {$EXTERNALSYM ESB_DISABLE_UP}
  5445. ESB_DISABLE_DOWN = $0002;
  5446. {$EXTERNALSYM ESB_DISABLE_DOWN}
  5447. ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
  5448. {$EXTERNALSYM ESB_DISABLE_LTUP}
  5449. ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
  5450. {$EXTERNALSYM ESB_DISABLE_RTDN}
  5451. function SetPropA(hWnd: HWND; lpString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  5452. {$EXTERNALSYM SetPropA}
  5453. function SetPropW(hWnd: HWND; lpString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  5454. {$EXTERNALSYM SetPropW}
  5455. function SetProp(hWnd: HWND; lpString: LPCTSTR; hData: HANDLE): BOOL; stdcall;
  5456. {$EXTERNALSYM SetProp}
  5457. function GetPropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5458. {$EXTERNALSYM GetPropA}
  5459. function GetPropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5460. {$EXTERNALSYM GetPropW}
  5461. function GetProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5462. {$EXTERNALSYM GetProp}
  5463. function RemovePropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5464. {$EXTERNALSYM RemovePropA}
  5465. function RemovePropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5466. {$EXTERNALSYM RemovePropW}
  5467. function RemoveProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5468. {$EXTERNALSYM RemoveProp}
  5469. function EnumPropsExA(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXA; lParam: LPARAM): Integer; stdcall;
  5470. {$EXTERNALSYM EnumPropsExA}
  5471. function EnumPropsExW(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXW; lParam: LPARAM): Integer; stdcall;
  5472. {$EXTERNALSYM EnumPropsExW}
  5473. function EnumPropsEx(hWnd: HWND; lpEnumFunc: PROPENUMPROCEX; lParam: LPARAM): Integer; stdcall;
  5474. {$EXTERNALSYM EnumPropsEx}
  5475. function EnumPropsA(hWnd: HWND; lpEnumFunc: PROPENUMPROCA): Integer; stdcall;
  5476. {$EXTERNALSYM EnumPropsA}
  5477. function EnumPropsW(hWnd: HWND; lpEnumFunc: PROPENUMPROCW): Integer; stdcall;
  5478. {$EXTERNALSYM EnumPropsW}
  5479. function EnumProps(hWnd: HWND; lpEnumFunc: PROPENUMPROC): Integer; stdcall;
  5480. {$EXTERNALSYM EnumProps}
  5481. function SetWindowTextA(hWnd: HWND; lpString: LPCSTR): BOOL; stdcall;
  5482. {$EXTERNALSYM SetWindowTextA}
  5483. function SetWindowTextW(hWnd: HWND; lpString: LPCWSTR): BOOL; stdcall;
  5484. {$EXTERNALSYM SetWindowTextW}
  5485. function SetWindowText(hWnd: HWND; lpString: LPCTSTR): BOOL; stdcall;
  5486. {$EXTERNALSYM SetWindowText}
  5487. function GetWindowTextA(hWnd: HWND; lpString: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5488. {$EXTERNALSYM GetWindowTextA}
  5489. function GetWindowTextW(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5490. {$EXTERNALSYM GetWindowTextW}
  5491. function GetWindowText(hWnd: HWND; lpString: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5492. {$EXTERNALSYM GetWindowText}
  5493. function GetWindowTextLengthA(hWnd: HWND): Integer; stdcall;
  5494. {$EXTERNALSYM GetWindowTextLengthA}
  5495. function GetWindowTextLengthW(hWnd: HWND): Integer; stdcall;
  5496. {$EXTERNALSYM GetWindowTextLengthW}
  5497. function GetWindowTextLength(hWnd: HWND): Integer; stdcall;
  5498. {$EXTERNALSYM GetWindowTextLength}
  5499. function GetClientRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5500. {$EXTERNALSYM GetClientRect}
  5501. function GetWindowRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5502. {$EXTERNALSYM GetWindowRect}
  5503. function AdjustWindowRect(var lpRect: RECT; dwStyle: DWORD; bMenu: BOOL): BOOL; stdcall;
  5504. {$EXTERNALSYM AdjustWindowRect}
  5505. function AdjustWindowRectEx(var lpRect: RECT; dwStyle: DWORD;
  5506. bMenu: BOOL; dwExStyle: DWORD): BOOL; stdcall;
  5507. {$EXTERNALSYM AdjustWindowRectEx}
  5508. const
  5509. HELPINFO_WINDOW = $0001;
  5510. {$EXTERNALSYM HELPINFO_WINDOW}
  5511. HELPINFO_MENUITEM = $0002;
  5512. {$EXTERNALSYM HELPINFO_MENUITEM}
  5513. type
  5514. LPHELPINFO = ^HELPINFO;
  5515. {$EXTERNALSYM LPHELPINFO}
  5516. tagHELPINFO = record // Structure pointed to by lParam of WM_HELP//
  5517. cbSize: UINT; // Size in bytes of this struct //
  5518. iContextType: Integer; // Either HELPINFO_WINDOW or HELPINFO_MENUITEM//
  5519. iCtrlId: Integer; // Control Id or a Menu item Id.//
  5520. hItemHandle: HANDLE; // hWnd of control or hMenu. //
  5521. dwContextId: DWORD_PTR; // Context Id associated with this item//
  5522. MousePos: POINT; // Mouse Position in screen co-ordinates//
  5523. end;
  5524. {$EXTERNALSYM tagHELPINFO}
  5525. HELPINFO = tagHELPINFO;
  5526. {$EXTERNALSYM HELPINFO}
  5527. THelpInfo = HELPINFO;
  5528. PHelpInfo = LPHELPINFO;
  5529. function SetWindowContextHelpId(hwnd: HWND; dwContextHelpId: DWORD): BOOL; stdcall;
  5530. {$EXTERNALSYM SetWindowContextHelpId}
  5531. function GetWindowContextHelpId(hwnd: HWND): DWORD; stdcall;
  5532. {$EXTERNALSYM GetWindowContextHelpId}
  5533. function SetMenuContextHelpId(hmenu: HMENU; dwContextHelpId: DWORD): BOOL; stdcall;
  5534. {$EXTERNALSYM SetMenuContextHelpId}
  5535. function GetMenuContextHelpId(hmenu: HMENU): DWORD; stdcall;
  5536. {$EXTERNALSYM GetMenuContextHelpId}
  5537. //
  5538. // MessageBox() Flags
  5539. //
  5540. const
  5541. MB_OK = $00000000;
  5542. {$EXTERNALSYM MB_OK}
  5543. MB_OKCANCEL = $00000001;
  5544. {$EXTERNALSYM MB_OKCANCEL}
  5545. MB_ABORTRETRYIGNORE = $00000002;
  5546. {$EXTERNALSYM MB_ABORTRETRYIGNORE}
  5547. MB_YESNOCANCEL = $00000003;
  5548. {$EXTERNALSYM MB_YESNOCANCEL}
  5549. MB_YESNO = $00000004;
  5550. {$EXTERNALSYM MB_YESNO}
  5551. MB_RETRYCANCEL = $00000005;
  5552. {$EXTERNALSYM MB_RETRYCANCEL}
  5553. MB_CANCELTRYCONTINUE = $00000006;
  5554. {$EXTERNALSYM MB_CANCELTRYCONTINUE}
  5555. MB_ICONHAND = $00000010;
  5556. {$EXTERNALSYM MB_ICONHAND}
  5557. MB_ICONQUESTION = $00000020;
  5558. {$EXTERNALSYM MB_ICONQUESTION}
  5559. MB_ICONEXCLAMATION = $00000030;
  5560. {$EXTERNALSYM MB_ICONEXCLAMATION}
  5561. MB_ICONASTERISK = $00000040;
  5562. {$EXTERNALSYM MB_ICONASTERISK}
  5563. MB_USERICON = $00000080;
  5564. {$EXTERNALSYM MB_USERICON}
  5565. MB_ICONWARNING = MB_ICONEXCLAMATION;
  5566. {$EXTERNALSYM MB_ICONWARNING}
  5567. MB_ICONERROR = MB_ICONHAND;
  5568. {$EXTERNALSYM MB_ICONERROR}
  5569. MB_ICONINFORMATION = MB_ICONASTERISK;
  5570. {$EXTERNALSYM MB_ICONINFORMATION}
  5571. MB_ICONSTOP = MB_ICONHAND;
  5572. {$EXTERNALSYM MB_ICONSTOP}
  5573. MB_DEFBUTTON1 = $00000000;
  5574. {$EXTERNALSYM MB_DEFBUTTON1}
  5575. MB_DEFBUTTON2 = $00000100;
  5576. {$EXTERNALSYM MB_DEFBUTTON2}
  5577. MB_DEFBUTTON3 = $00000200;
  5578. {$EXTERNALSYM MB_DEFBUTTON3}
  5579. MB_DEFBUTTON4 = $00000300;
  5580. {$EXTERNALSYM MB_DEFBUTTON4}
  5581. MB_APPLMODAL = $00000000;
  5582. {$EXTERNALSYM MB_APPLMODAL}
  5583. MB_SYSTEMMODAL = $00001000;
  5584. {$EXTERNALSYM MB_SYSTEMMODAL}
  5585. MB_TASKMODAL = $00002000;
  5586. {$EXTERNALSYM MB_TASKMODAL}
  5587. MB_HELP = $00004000; // Help Button
  5588. {$EXTERNALSYM MB_HELP}
  5589. MB_NOFOCUS = $00008000;
  5590. {$EXTERNALSYM MB_NOFOCUS}
  5591. MB_SETFOREGROUND = $00010000;
  5592. {$EXTERNALSYM MB_SETFOREGROUND}
  5593. MB_DEFAULT_DESKTOP_ONLY = $00020000;
  5594. {$EXTERNALSYM MB_DEFAULT_DESKTOP_ONLY}
  5595. MB_TOPMOST = $00040000;
  5596. {$EXTERNALSYM MB_TOPMOST}
  5597. MB_RIGHT = $00080000;
  5598. {$EXTERNALSYM MB_RIGHT}
  5599. MB_RTLREADING = $00100000;
  5600. {$EXTERNALSYM MB_RTLREADING}
  5601. const
  5602. {$IFDEF WINNT4_UP}
  5603. MB_SERVICE_NOTIFICATION = $00200000;
  5604. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5605. {$ELSE}
  5606. MB_SERVICE_NOTIFICATION = $00040000;
  5607. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5608. {$ENDIF WINNT4_UP}
  5609. MB_TYPEMASK = $0000000F;
  5610. {$EXTERNALSYM MB_TYPEMASK}
  5611. MB_ICONMASK = $000000F0;
  5612. {$EXTERNALSYM MB_ICONMASK}
  5613. MB_DEFMASK = $00000F00;
  5614. {$EXTERNALSYM MB_DEFMASK}
  5615. MB_MODEMASK = $00003000;
  5616. {$EXTERNALSYM MB_MODEMASK}
  5617. MB_MISCMASK = $0000C000;
  5618. {$EXTERNALSYM MB_MISCMASK}
  5619. function MessageBoxA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT): Integer; stdcall;
  5620. {$EXTERNALSYM MessageBoxA}
  5621. function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
  5622. {$EXTERNALSYM MessageBoxW}
  5623. function MessageBox(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT): Integer; stdcall;
  5624. {$EXTERNALSYM MessageBox}
  5625. function MessageBoxExA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT;
  5626. wLanguageId: WORD): Integer; stdcall;
  5627. {$EXTERNALSYM MessageBoxExA}
  5628. function MessageBoxExW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT;
  5629. wLanguageId: WORD): Integer; stdcall;
  5630. {$EXTERNALSYM MessageBoxExW}
  5631. function MessageBoxEx(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT;
  5632. wLanguageId: WORD): Integer; stdcall;
  5633. {$EXTERNALSYM MessageBoxEx}
  5634. type
  5635. MSGBOXCALLBACK = procedure(var lpHelpInfo: HELPINFO); stdcall;
  5636. {$EXTERNALSYM MSGBOXCALLBACK}
  5637. TMsgBoxCallback = MSGBOXCALLBACK;
  5638. LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;
  5639. {$EXTERNALSYM LPMSGBOXPARAMSA}
  5640. tagMSGBOXPARAMSA = record
  5641. cbSize: UINT;
  5642. hwndOwner: HWND;
  5643. hInstance: HINSTANCE;
  5644. lpszText: LPCSTR;
  5645. lpszCaption: LPCSTR;
  5646. dwStyle: DWORD;
  5647. lpszIcon: LPCSTR;
  5648. dwContextHelpId: DWORD_PTR;
  5649. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5650. dwLanguageId: DWORD;
  5651. end;
  5652. {$EXTERNALSYM tagMSGBOXPARAMSA}
  5653. MSGBOXPARAMSA = tagMSGBOXPARAMSA;
  5654. {$EXTERNALSYM MSGBOXPARAMSA}
  5655. TMsgBoxParamsA = MSGBOXPARAMSA;
  5656. PMsgBoxParamsA = LPMSGBOXPARAMSA;
  5657. LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;
  5658. {$EXTERNALSYM LPMSGBOXPARAMSW}
  5659. tagMSGBOXPARAMSW = record
  5660. cbSize: UINT;
  5661. hwndOwner: HWND;
  5662. hInstance: HINSTANCE;
  5663. lpszText: LPCWSTR;
  5664. lpszCaption: LPCWSTR;
  5665. dwStyle: DWORD;
  5666. lpszIcon: LPCWSTR;
  5667. dwContextHelpId: DWORD_PTR;
  5668. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5669. dwLanguageId: DWORD;
  5670. end;
  5671. {$EXTERNALSYM tagMSGBOXPARAMSW}
  5672. MSGBOXPARAMSW = tagMSGBOXPARAMSW;
  5673. {$EXTERNALSYM MSGBOXPARAMSW}
  5674. TMsgBoxParamsW = MSGBOXPARAMSW;
  5675. PMsgBoxParamsW = LPMSGBOXPARAMSW;
  5676. {$IFDEF UNICODE}
  5677. MSGBOXPARAMS = MSGBOXPARAMSW;
  5678. {$EXTERNALSYM MSGBOXPARAMS}
  5679. LPMSGBOXPARAMS = LPMSGBOXPARAMSW;
  5680. {$EXTERNALSYM LPMSGBOXPARAMS}
  5681. TMsgBoxParams = TMsgBoxParamsW;
  5682. PMsgBoxParams = PMsgBoxParamsW;
  5683. {$ELSE}
  5684. MSGBOXPARAMS = MSGBOXPARAMSA;
  5685. {$EXTERNALSYM MSGBOXPARAMS}
  5686. LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
  5687. {$EXTERNALSYM LPMSGBOXPARAMS}
  5688. TMsgBoxParams = TMsgBoxParamsA;
  5689. PMsgBoxParams = PMsgBoxParamsA;
  5690. {$ENDIF UNICODE}
  5691. function MessageBoxIndirectA(const lpMsgBoxParams: MSGBOXPARAMSA): Integer; stdcall;
  5692. {$EXTERNALSYM MessageBoxIndirectA}
  5693. function MessageBoxIndirectW(const lpMsgBoxParams: MSGBOXPARAMSW): Integer; stdcall;
  5694. {$EXTERNALSYM MessageBoxIndirectW}
  5695. function MessageBoxIndirect(const lpMsgBoxParams: MSGBOXPARAMS): Integer; stdcall;
  5696. {$EXTERNALSYM MessageBoxIndirect}
  5697. function MessageBeep(uType: UINT): BOOL; stdcall;
  5698. {$EXTERNALSYM MessageBeep}
  5699. function ShowCursor(bShow: BOOL): Integer; stdcall;
  5700. {$EXTERNALSYM ShowCursor}
  5701. function SetCursorPos(X, Y: Integer): BOOL; stdcall;
  5702. {$EXTERNALSYM SetCursorPos}
  5703. function SetCursor(hCursor: HCURSOR): HCURSOR; stdcall;
  5704. {$EXTERNALSYM SetCursor}
  5705. function GetCursorPos(var lpPoint: POINT): BOOL; stdcall;
  5706. {$EXTERNALSYM GetCursorPos}
  5707. function ClipCursor(lpRect: LPRECT): BOOL; stdcall;
  5708. {$EXTERNALSYM ClipCursor}
  5709. function GetClipCursor(var lpRect: RECT): BOOL; stdcall;
  5710. {$EXTERNALSYM GetClipCursor}
  5711. function GetCursor: HCURSOR; stdcall;
  5712. {$EXTERNALSYM GetCursor}
  5713. function CreateCaret(hWnd: HWND; hBitmap: HBITMAP; nWidth, nHeight: Integer): BOOL; stdcall;
  5714. {$EXTERNALSYM CreateCaret}
  5715. function GetCaretBlinkTime: UINT; stdcall;
  5716. {$EXTERNALSYM GetCaretBlinkTime}
  5717. function SetCaretBlinkTime(uMSeconds: UINT): BOOL; stdcall;
  5718. {$EXTERNALSYM SetCaretBlinkTime}
  5719. function DestroyCaret: BOOL; stdcall;
  5720. {$EXTERNALSYM DestroyCaret}
  5721. function HideCaret(hWnd: HWND): BOOL; stdcall;
  5722. {$EXTERNALSYM HideCaret}
  5723. function ShowCaret(hWnd: HWND): BOOL; stdcall;
  5724. {$EXTERNALSYM ShowCaret}
  5725. function SetCaretPos(X, Y: Integer): BOOL; stdcall;
  5726. {$EXTERNALSYM SetCaretPos}
  5727. function GetCaretPos(var lpPoint: POINT): BOOL; stdcall;
  5728. {$EXTERNALSYM GetCaretPos}
  5729. function ClientToScreen(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5730. {$EXTERNALSYM ClientToScreen}
  5731. function ScreenToClient(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5732. {$EXTERNALSYM ScreenToClient}
  5733. function MapWindowPoints(hWndFrom, hWndTo: HWND; lpPoints: LPPOINT; cPoints: UINT): Integer; stdcall;
  5734. {$EXTERNALSYM MapWindowPoints}
  5735. function WindowFromPoint(Point: POINT): HWND; stdcall;
  5736. {$EXTERNALSYM WindowFromPoint}
  5737. function ChildWindowFromPoint(hWndParent: HWND; Point: POINT): HWND; stdcall;
  5738. {$EXTERNALSYM ChildWindowFromPoint}
  5739. const
  5740. CWP_ALL = $0000;
  5741. {$EXTERNALSYM CWP_ALL}
  5742. CWP_SKIPINVISIBLE = $0001;
  5743. {$EXTERNALSYM CWP_SKIPINVISIBLE}
  5744. CWP_SKIPDISABLED = $0002;
  5745. {$EXTERNALSYM CWP_SKIPDISABLED}
  5746. CWP_SKIPTRANSPARENT = $0004;
  5747. {$EXTERNALSYM CWP_SKIPTRANSPARENT}
  5748. function ChildWindowFromPointEx(hwndParent: HWND; pt: POINT; uFlags: UINT): HWND; stdcall;
  5749. {$EXTERNALSYM ChildWindowFromPointEx}
  5750. //
  5751. // Color Types
  5752. //
  5753. const
  5754. CTLCOLOR_MSGBOX = 0;
  5755. {$EXTERNALSYM CTLCOLOR_MSGBOX}
  5756. CTLCOLOR_EDIT = 1;
  5757. {$EXTERNALSYM CTLCOLOR_EDIT}
  5758. CTLCOLOR_LISTBOX = 2;
  5759. {$EXTERNALSYM CTLCOLOR_LISTBOX}
  5760. CTLCOLOR_BTN = 3;
  5761. {$EXTERNALSYM CTLCOLOR_BTN}
  5762. CTLCOLOR_DLG = 4;
  5763. {$EXTERNALSYM CTLCOLOR_DLG}
  5764. CTLCOLOR_SCROLLBAR = 5;
  5765. {$EXTERNALSYM CTLCOLOR_SCROLLBAR}
  5766. CTLCOLOR_STATIC = 6;
  5767. {$EXTERNALSYM CTLCOLOR_STATIC}
  5768. CTLCOLOR_MAX = 7;
  5769. {$EXTERNALSYM CTLCOLOR_MAX}
  5770. COLOR_SCROLLBAR = 0;
  5771. {$EXTERNALSYM COLOR_SCROLLBAR}
  5772. COLOR_BACKGROUND = 1;
  5773. {$EXTERNALSYM COLOR_BACKGROUND}
  5774. COLOR_ACTIVECAPTION = 2;
  5775. {$EXTERNALSYM COLOR_ACTIVECAPTION}
  5776. COLOR_INACTIVECAPTION = 3;
  5777. {$EXTERNALSYM COLOR_INACTIVECAPTION}
  5778. COLOR_MENU = 4;
  5779. {$EXTERNALSYM COLOR_MENU}
  5780. COLOR_WINDOW = 5;
  5781. {$EXTERNALSYM COLOR_WINDOW}
  5782. COLOR_WINDOWFRAME = 6;
  5783. {$EXTERNALSYM COLOR_WINDOWFRAME}
  5784. COLOR_MENUTEXT = 7;
  5785. {$EXTERNALSYM COLOR_MENUTEXT}
  5786. COLOR_WINDOWTEXT = 8;
  5787. {$EXTERNALSYM COLOR_WINDOWTEXT}
  5788. COLOR_CAPTIONTEXT = 9;
  5789. {$EXTERNALSYM COLOR_CAPTIONTEXT}
  5790. COLOR_ACTIVEBORDER = 10;
  5791. {$EXTERNALSYM COLOR_ACTIVEBORDER}
  5792. COLOR_INACTIVEBORDER = 11;
  5793. {$EXTERNALSYM COLOR_INACTIVEBORDER}
  5794. COLOR_APPWORKSPACE = 12;
  5795. {$EXTERNALSYM COLOR_APPWORKSPACE}
  5796. COLOR_HIGHLIGHT = 13;
  5797. {$EXTERNALSYM COLOR_HIGHLIGHT}
  5798. COLOR_HIGHLIGHTTEXT = 14;
  5799. {$EXTERNALSYM COLOR_HIGHLIGHTTEXT}
  5800. COLOR_BTNFACE = 15;
  5801. {$EXTERNALSYM COLOR_BTNFACE}
  5802. COLOR_BTNSHADOW = 16;
  5803. {$EXTERNALSYM COLOR_BTNSHADOW}
  5804. COLOR_GRAYTEXT = 17;
  5805. {$EXTERNALSYM COLOR_GRAYTEXT}
  5806. COLOR_BTNTEXT = 18;
  5807. {$EXTERNALSYM COLOR_BTNTEXT}
  5808. COLOR_INACTIVECAPTIONTEXT = 19;
  5809. {$EXTERNALSYM COLOR_INACTIVECAPTIONTEXT}
  5810. COLOR_BTNHIGHLIGHT = 20;
  5811. {$EXTERNALSYM COLOR_BTNHIGHLIGHT}
  5812. COLOR_3DDKSHADOW = 21;
  5813. {$EXTERNALSYM COLOR_3DDKSHADOW}
  5814. COLOR_3DLIGHT = 22;
  5815. {$EXTERNALSYM COLOR_3DLIGHT}
  5816. COLOR_INFOTEXT = 23;
  5817. {$EXTERNALSYM COLOR_INFOTEXT}
  5818. COLOR_INFOBK = 24;
  5819. {$EXTERNALSYM COLOR_INFOBK}
  5820. COLOR_HOTLIGHT = 26;
  5821. {$EXTERNALSYM COLOR_HOTLIGHT}
  5822. COLOR_GRADIENTACTIVECAPTION = 27;
  5823. {$EXTERNALSYM COLOR_GRADIENTACTIVECAPTION}
  5824. COLOR_GRADIENTINACTIVECAPTION = 28;
  5825. {$EXTERNALSYM COLOR_GRADIENTINACTIVECAPTION}
  5826. COLOR_MENUHILIGHT = 29;
  5827. {$EXTERNALSYM COLOR_MENUHILIGHT}
  5828. COLOR_MENUBAR = 30;
  5829. {$EXTERNALSYM COLOR_MENUBAR}
  5830. COLOR_DESKTOP = COLOR_BACKGROUND;
  5831. {$EXTERNALSYM COLOR_DESKTOP}
  5832. COLOR_3DFACE = COLOR_BTNFACE;
  5833. {$EXTERNALSYM COLOR_3DFACE}
  5834. COLOR_3DSHADOW = COLOR_BTNSHADOW;
  5835. {$EXTERNALSYM COLOR_3DSHADOW}
  5836. COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT;
  5837. {$EXTERNALSYM COLOR_3DHIGHLIGHT}
  5838. COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT;
  5839. {$EXTERNALSYM COLOR_3DHILIGHT}
  5840. COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT;
  5841. {$EXTERNALSYM COLOR_BTNHILIGHT}
  5842. function GetSysColor(nIndex: Integer): DWORD; stdcall;
  5843. {$EXTERNALSYM GetSysColor}
  5844. function GetSysColorBrush(nIndex: Integer): HBRUSH; stdcall;
  5845. {$EXTERNALSYM GetSysColorBrush}
  5846. function SetSysColors(cElements: Integer; lpaElements: LPINT;
  5847. lpaRgbValues: LPCOLORREF): BOOL; stdcall;
  5848. {$EXTERNALSYM SetSysColors}
  5849. function DrawFocusRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5850. {$EXTERNALSYM DrawFocusRect}
  5851. function FillRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5852. {$EXTERNALSYM FillRect}
  5853. function FrameRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5854. {$EXTERNALSYM FrameRect}
  5855. function InvertRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5856. {$EXTERNALSYM InvertRect}
  5857. function SetRect(var lprc: RECT; xLeft, yTop, xRight, yBottom: Integer): BOOL; stdcall;
  5858. {$EXTERNALSYM SetRect}
  5859. function SetRectEmpty(var lprc: RECT): BOOL; stdcall;
  5860. {$EXTERNALSYM SetRectEmpty}
  5861. function CopyRect(var lprcDst: RECT; const lprcSrc: RECT): BOOL; stdcall;
  5862. {$EXTERNALSYM CopyRect}
  5863. function InflateRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5864. {$EXTERNALSYM InflateRect}
  5865. function IntersectRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5866. {$EXTERNALSYM IntersectRect}
  5867. function UnionRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5868. {$EXTERNALSYM UnionRect}
  5869. function SubtractRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5870. {$EXTERNALSYM SubtractRect}
  5871. function OffsetRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5872. {$EXTERNALSYM OffsetRect}
  5873. function IsRectEmpty(const lprc: RECT): BOOL; stdcall;
  5874. {$EXTERNALSYM IsRectEmpty}
  5875. function EqualRect(const lprc1, lprc2: RECT): BOOL; stdcall;
  5876. {$EXTERNALSYM EqualRect}
  5877. function PtInRect(const lprc: RECT; pt: POINT): BOOL; stdcall;
  5878. {$EXTERNALSYM PtInRect}
  5879. function GetWindowWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5880. {$EXTERNALSYM GetWindowWord}
  5881. function SetWindowWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5882. {$EXTERNALSYM SetWindowWord}
  5883. function GetWindowLongA(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5884. {$EXTERNALSYM GetWindowLongA}
  5885. function GetWindowLongW(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5886. {$EXTERNALSYM GetWindowLongW}
  5887. function GetWindowLong(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5888. {$EXTERNALSYM GetWindowLong}
  5889. function SetWindowLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5890. {$EXTERNALSYM SetWindowLongA}
  5891. function SetWindowLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5892. {$EXTERNALSYM SetWindowLongW}
  5893. function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5894. {$EXTERNALSYM SetWindowLong}
  5895. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5896. {$EXTERNALSYM GetWindowLongPtrA}
  5897. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5898. {$EXTERNALSYM GetWindowLongPtrW}
  5899. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5900. {$EXTERNALSYM GetWindowLongPtr}
  5901. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5902. {$EXTERNALSYM SetWindowLongPtrA}
  5903. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5904. {$EXTERNALSYM SetWindowLongPtrW}
  5905. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5906. {$EXTERNALSYM SetWindowLongPtr}
  5907. function GetClassWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5908. {$EXTERNALSYM GetClassWord}
  5909. function SetClassWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5910. {$EXTERNALSYM SetClassWord}
  5911. function GetClassLongA(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5912. {$EXTERNALSYM GetClassLongA}
  5913. function GetClassLongW(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5914. {$EXTERNALSYM GetClassLongW}
  5915. function GetClassLong(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5916. {$EXTERNALSYM GetClassLong}
  5917. function SetClassLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5918. {$EXTERNALSYM SetClassLongA}
  5919. function SetClassLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5920. {$EXTERNALSYM SetClassLongW}
  5921. function SetClassLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5922. {$EXTERNALSYM SetClassLong}
  5923. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5924. {$EXTERNALSYM GetClassLongPtrA}
  5925. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5926. {$EXTERNALSYM GetClassLongPtrW}
  5927. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5928. {$EXTERNALSYM GetClassLongPtr}
  5929. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5930. {$EXTERNALSYM SetClassLongPtrA}
  5931. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5932. {$EXTERNALSYM SetClassLongPtrW}
  5933. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5934. {$EXTERNALSYM SetClassLongPtr}
  5935. function GetProcessDefaultLayout(var pdwDefaultLayout: DWORD): BOOL; stdcall;
  5936. {$EXTERNALSYM GetProcessDefaultLayout}
  5937. function SetProcessDefaultLayout(dwDefaultLayout: DWORD): BOOL; stdcall;
  5938. {$EXTERNALSYM SetProcessDefaultLayout}
  5939. function GetDesktopWindow: HWND; stdcall;
  5940. {$EXTERNALSYM GetDesktopWindow}
  5941. function GetParent(hWnd: HWND): HWND; stdcall;
  5942. {$EXTERNALSYM GetParent}
  5943. function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;
  5944. {$EXTERNALSYM SetParent}
  5945. function EnumChildWindows(hWndParent: HWND; lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5946. {$EXTERNALSYM EnumChildWindows}
  5947. function FindWindowA(lpClassName, lpWindowName: LPCSTR): HWND; stdcall;
  5948. {$EXTERNALSYM FindWindowA}
  5949. function FindWindowW(lpClassName, lpWindowName: LPCWSTR): HWND; stdcall;
  5950. {$EXTERNALSYM FindWindowW}
  5951. function FindWindow(lpClassName, lpWindowName: LPCTSTR): HWND; stdcall;
  5952. {$EXTERNALSYM FindWindow}
  5953. function FindWindowExA(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCSTR): HWND; stdcall;
  5954. {$EXTERNALSYM FindWindowExA}
  5955. function FindWindowExW(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCWSTR): HWND; stdcall;
  5956. {$EXTERNALSYM FindWindowExW}
  5957. function FindWindowEx(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCTSTR): HWND; stdcall;
  5958. {$EXTERNALSYM FindWindowEx}
  5959. function GetShellWindow: HWND; stdcall;
  5960. {$EXTERNALSYM GetShellWindow}
  5961. function RegisterShellHookWindow(h: HWND): BOOL; stdcall;
  5962. {$EXTERNALSYM RegisterShellHookWindow}
  5963. function DeregisterShellHookWindow(h: HWND): BOOL; stdcall;
  5964. {$EXTERNALSYM DeregisterShellHookWindow}
  5965. function EnumWindows(lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5966. {$EXTERNALSYM EnumWindows}
  5967. function EnumThreadWindows(dwThreadId: DWORD; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5968. {$EXTERNALSYM EnumThreadWindows}
  5969. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  5970. {$EXTERNALSYM EnumTaskWindows}
  5971. function GetClassNameA(hWnd: HWND; lpClassName: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5972. {$EXTERNALSYM GetClassNameA}
  5973. function GetClassNameW(hWnd: HWND; lpClassName: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5974. {$EXTERNALSYM GetClassNameW}
  5975. function GetClassName(hWnd: HWND; lpClassName: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5976. {$EXTERNALSYM GetClassName}
  5977. function GetTopWindow(hWnd: HWND): HWND; stdcall;
  5978. {$EXTERNALSYM GetTopWindow}
  5979. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  5980. {$EXTERNALSYM GetNextWindow}
  5981. function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: LPDWORD): DWORD; stdcall;
  5982. {$EXTERNALSYM GetWindowThreadProcessId}
  5983. function IsGUIThread(bConvert: BOOL): BOOL; stdcall;
  5984. {$EXTERNALSYM IsGUIThread}
  5985. function GetWindowTask(hWnd: HWND): HANDLE;
  5986. {$EXTERNALSYM GetWindowTask}
  5987. function GetLastActivePopup(hWnd: HWND): HWND; stdcall;
  5988. {$EXTERNALSYM GetLastActivePopup}
  5989. //
  5990. // GetWindow() Constants
  5991. //
  5992. const
  5993. GW_HWNDFIRST = 0;
  5994. {$EXTERNALSYM GW_HWNDFIRST}
  5995. GW_HWNDLAST = 1;
  5996. {$EXTERNALSYM GW_HWNDLAST}
  5997. GW_HWNDNEXT = 2;
  5998. {$EXTERNALSYM GW_HWNDNEXT}
  5999. GW_HWNDPREV = 3;
  6000. {$EXTERNALSYM GW_HWNDPREV}
  6001. GW_OWNER = 4;
  6002. {$EXTERNALSYM GW_OWNER}
  6003. GW_CHILD = 5;
  6004. {$EXTERNALSYM GW_CHILD}
  6005. {$IFNDEF WIN98_UP} // #if(WINVER <= 0x0400)
  6006. GW_MAX = 5;
  6007. {$EXTERNALSYM GW_MAX}
  6008. {$ELSE}
  6009. GW_ENABLEDPOPUP = 6;
  6010. {$EXTERNALSYM GW_ENABLEDPOPUP}
  6011. GW_MAX = 6;
  6012. {$EXTERNALSYM GW_MAX}
  6013. {$ENDIF WIN98ME_UP}
  6014. function GetWindow(hWnd: HWND; uCmd: UINT): HWND; stdcall;
  6015. {$EXTERNALSYM GetWindow}
  6016. function SetWindowsHookA(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6017. {$EXTERNALSYM SetWindowsHookA}
  6018. function SetWindowsHookW(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6019. {$EXTERNALSYM SetWindowsHookW}
  6020. function SetWindowsHook(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6021. {$EXTERNALSYM SetWindowsHook}
  6022. function UnhookWindowsHook(nCode: Integer; pfnFilterProc: HOOKPROC): BOOL; stdcall;
  6023. {$EXTERNALSYM UnhookWindowsHook}
  6024. function SetWindowsHookExA(idHook: Integer; lpfn: HOOKPROC; hmod: HINSTANCE;
  6025. dwThreadId: DWORD): HHOOK; stdcall;
  6026. {$EXTERNALSYM SetWindowsHookExA}
  6027. function SetWindowsHookExW(idHook: Integer; lpfn: HOOKPROC; hmod: HINSTANCE;
  6028. dwThreadId: DWORD): HHOOK; stdcall;
  6029. {$EXTERNALSYM SetWindowsHookExW}
  6030. function SetWindowsHookEx(idHook: Integer; lpfn: HOOKPROC; hmod: HINSTANCE;
  6031. dwThreadId: DWORD): HHOOK; stdcall;
  6032. {$EXTERNALSYM SetWindowsHookEx}
  6033. function UnhookWindowsHookEx(hhk: HHOOK): BOOL; stdcall;
  6034. {$EXTERNALSYM UnhookWindowsHookEx}
  6035. function CallNextHookEx(hhk: HHOOK; nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  6036. {$EXTERNALSYM CallNextHookEx}
  6037. //
  6038. // Macros for source-level compatibility with old functions.
  6039. //
  6040. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  6041. {$EXTERNALSYM DefHookProc}
  6042. // ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags//
  6043. //
  6044. // Menu flags for Add/Check/EnableMenuItem()
  6045. ///)
  6046. const
  6047. MF_INSERT = $00000000;
  6048. {$EXTERNALSYM MF_INSERT}
  6049. MF_CHANGE = $00000080;
  6050. {$EXTERNALSYM MF_CHANGE}
  6051. MF_APPEND = $00000100;
  6052. {$EXTERNALSYM MF_APPEND}
  6053. MF_DELETE = $00000200;
  6054. {$EXTERNALSYM MF_DELETE}
  6055. MF_REMOVE = $00001000;
  6056. {$EXTERNALSYM MF_REMOVE}
  6057. MF_BYCOMMAND = $00000000;
  6058. {$EXTERNALSYM MF_BYCOMMAND}
  6059. MF_BYPOSITION = $00000400;
  6060. {$EXTERNALSYM MF_BYPOSITION}
  6061. MF_SEPARATOR = $00000800;
  6062. {$EXTERNALSYM MF_SEPARATOR}
  6063. MF_ENABLED = $00000000;
  6064. {$EXTERNALSYM MF_ENABLED}
  6065. MF_GRAYED = $00000001;
  6066. {$EXTERNALSYM MF_GRAYED}
  6067. MF_DISABLED = $00000002;
  6068. {$EXTERNALSYM MF_DISABLED}
  6069. MF_UNCHECKED = $00000000;
  6070. {$EXTERNALSYM MF_UNCHECKED}
  6071. MF_CHECKED = $00000008;
  6072. {$EXTERNALSYM MF_CHECKED}
  6073. MF_USECHECKBITMAPS = $00000200;
  6074. {$EXTERNALSYM MF_USECHECKBITMAPS}
  6075. MF_STRING = $00000000;
  6076. {$EXTERNALSYM MF_STRING}
  6077. MF_BITMAP = $00000004;
  6078. {$EXTERNALSYM MF_BITMAP}
  6079. MF_OWNERDRAW = $00000100;
  6080. {$EXTERNALSYM MF_OWNERDRAW}
  6081. MF_POPUP = $00000010;
  6082. {$EXTERNALSYM MF_POPUP}
  6083. MF_MENUBARBREAK = $00000020;
  6084. {$EXTERNALSYM MF_MENUBARBREAK}
  6085. MF_MENUBREAK = $00000040;
  6086. {$EXTERNALSYM MF_MENUBREAK}
  6087. MF_UNHILITE = $00000000;
  6088. {$EXTERNALSYM MF_UNHILITE}
  6089. MF_HILITE = $00000080;
  6090. {$EXTERNALSYM MF_HILITE}
  6091. MF_DEFAULT = $00001000;
  6092. {$EXTERNALSYM MF_DEFAULT}
  6093. MF_SYSMENU = $00002000;
  6094. {$EXTERNALSYM MF_SYSMENU}
  6095. MF_HELP = $00004000;
  6096. {$EXTERNALSYM MF_HELP}
  6097. MF_RIGHTJUSTIFY = $00004000;
  6098. {$EXTERNALSYM MF_RIGHTJUSTIFY}
  6099. MF_MOUSESELECT = $00008000;
  6100. {$EXTERNALSYM MF_MOUSESELECT}
  6101. MF_END = $00000080; // Obsolete -- only used by old RES files
  6102. {$EXTERNALSYM MF_END}
  6103. MFT_STRING = MF_STRING;
  6104. {$EXTERNALSYM MFT_STRING}
  6105. MFT_BITMAP = MF_BITMAP;
  6106. {$EXTERNALSYM MFT_BITMAP}
  6107. MFT_MENUBARBREAK = MF_MENUBARBREAK;
  6108. {$EXTERNALSYM MFT_MENUBARBREAK}
  6109. MFT_MENUBREAK = MF_MENUBREAK;
  6110. {$EXTERNALSYM MFT_MENUBREAK}
  6111. MFT_OWNERDRAW = MF_OWNERDRAW;
  6112. {$EXTERNALSYM MFT_OWNERDRAW}
  6113. MFT_RADIOCHECK = $00000200;
  6114. {$EXTERNALSYM MFT_RADIOCHECK}
  6115. MFT_SEPARATOR = MF_SEPARATOR;
  6116. {$EXTERNALSYM MFT_SEPARATOR}
  6117. MFT_RIGHTORDER = $00002000;
  6118. {$EXTERNALSYM MFT_RIGHTORDER}
  6119. MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY;
  6120. {$EXTERNALSYM MFT_RIGHTJUSTIFY}
  6121. // Menu flags for Add/Check/EnableMenuItem()
  6122. MFS_GRAYED = $00000003;
  6123. {$EXTERNALSYM MFS_GRAYED}
  6124. MFS_DISABLED = MFS_GRAYED;
  6125. {$EXTERNALSYM MFS_DISABLED}
  6126. MFS_CHECKED = MF_CHECKED;
  6127. {$EXTERNALSYM MFS_CHECKED}
  6128. MFS_HILITE = MF_HILITE;
  6129. {$EXTERNALSYM MFS_HILITE}
  6130. MFS_ENABLED = MF_ENABLED;
  6131. {$EXTERNALSYM MFS_ENABLED}
  6132. MFS_UNCHECKED = MF_UNCHECKED;
  6133. {$EXTERNALSYM MFS_UNCHECKED}
  6134. MFS_UNHILITE = MF_UNHILITE;
  6135. {$EXTERNALSYM MFS_UNHILITE}
  6136. MFS_DEFAULT = MF_DEFAULT;
  6137. {$EXTERNALSYM MFS_DEFAULT}
  6138. function CheckMenuRadioItem(hmenu: HMENU; idFirst, idLast, idCheck, uFlags: UINT): BOOL; stdcall;
  6139. {$EXTERNALSYM CheckMenuRadioItem}
  6140. //
  6141. // Menu item resource format
  6142. //
  6143. type
  6144. PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
  6145. MENUITEMTEMPLATEHEADER = record
  6146. versionNumber: WORD;
  6147. offset: WORD;
  6148. end;
  6149. {$EXTERNALSYM MENUITEMTEMPLATEHEADER}
  6150. TMenuItemTemplateHeader = MENUITEMTEMPLATEHEADER;
  6151. PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; // version 0
  6152. MENUITEMTEMPLATE = record
  6153. mtOption: WORD;
  6154. mtID: WORD;
  6155. mtString: array [0..0] of WCHAR;
  6156. end;
  6157. {$EXTERNALSYM MENUITEMTEMPLATE}
  6158. TMenuItemTemplate = MENUITEMTEMPLATE;
  6159. //
  6160. // System Menu Command Values
  6161. //
  6162. const
  6163. SC_SIZE = $F000;
  6164. {$EXTERNALSYM SC_SIZE}
  6165. SC_MOVE = $F010;
  6166. {$EXTERNALSYM SC_MOVE}
  6167. SC_MINIMIZE = $F020;
  6168. {$EXTERNALSYM SC_MINIMIZE}
  6169. SC_MAXIMIZE = $F030;
  6170. {$EXTERNALSYM SC_MAXIMIZE}
  6171. SC_NEXTWINDOW = $F040;
  6172. {$EXTERNALSYM SC_NEXTWINDOW}
  6173. SC_PREVWINDOW = $F050;
  6174. {$EXTERNALSYM SC_PREVWINDOW}
  6175. SC_CLOSE = $F060;
  6176. {$EXTERNALSYM SC_CLOSE}
  6177. SC_VSCROLL = $F070;
  6178. {$EXTERNALSYM SC_VSCROLL}
  6179. SC_HSCROLL = $F080;
  6180. {$EXTERNALSYM SC_HSCROLL}
  6181. SC_MOUSEMENU = $F090;
  6182. {$EXTERNALSYM SC_MOUSEMENU}
  6183. SC_KEYMENU = $F100;
  6184. {$EXTERNALSYM SC_KEYMENU}
  6185. SC_ARRANGE = $F110;
  6186. {$EXTERNALSYM SC_ARRANGE}
  6187. SC_RESTORE = $F120;
  6188. {$EXTERNALSYM SC_RESTORE}
  6189. SC_TASKLIST = $F130;
  6190. {$EXTERNALSYM SC_TASKLIST}
  6191. SC_SCREENSAVE = $F140;
  6192. {$EXTERNALSYM SC_SCREENSAVE}
  6193. SC_HOTKEY = $F150;
  6194. {$EXTERNALSYM SC_HOTKEY}
  6195. SC_DEFAULT = $F160;
  6196. {$EXTERNALSYM SC_DEFAULT}
  6197. SC_MONITORPOWER = $F170;
  6198. {$EXTERNALSYM SC_MONITORPOWER}
  6199. SC_CONTEXTHELP = $F180;
  6200. {$EXTERNALSYM SC_CONTEXTHELP}
  6201. SC_SEPARATOR = $F00F;
  6202. {$EXTERNALSYM SC_SEPARATOR}
  6203. //
  6204. // Obsolete names
  6205. //
  6206. const
  6207. SC_ICON = SC_MINIMIZE;
  6208. {$EXTERNALSYM SC_ICON}
  6209. SC_ZOOM = SC_MAXIMIZE;
  6210. {$EXTERNALSYM SC_ZOOM}
  6211. //
  6212. // Resource Loading Routines
  6213. //
  6214. function LoadBitmapA(hInstance: HINSTANCE; lpBitmapName: LPCSTR): HBITMAP; stdcall;
  6215. {$EXTERNALSYM LoadBitmapA}
  6216. function LoadBitmapW(hInstance: HINSTANCE; lpBitmapName: LPCWSTR): HBITMAP; stdcall;
  6217. {$EXTERNALSYM LoadBitmapW}
  6218. function LoadBitmap(hInstance: HINSTANCE; lpBitmapName: LPCTSTR): HBITMAP; stdcall;
  6219. {$EXTERNALSYM LoadBitmap}
  6220. function LoadCursorA(hInstance: HINSTANCE; lpCursorName: LPCSTR): HCURSOR; stdcall;
  6221. {$EXTERNALSYM LoadCursorA}
  6222. function LoadCursorW(hInstance: HINSTANCE; lpCursorName: LPCWSTR): HCURSOR; stdcall;
  6223. {$EXTERNALSYM LoadCursorW}
  6224. function LoadCursor(hInstance: HINSTANCE; lpCursorName: LPCTSTR): HCURSOR; stdcall;
  6225. {$EXTERNALSYM LoadCursor}
  6226. function LoadCursorFromFileA(lpFileName: LPCSTR): HCURSOR; stdcall;
  6227. {$EXTERNALSYM LoadCursorFromFileA}
  6228. function LoadCursorFromFileW(lpFileName: LPCWSTR): HCURSOR; stdcall;
  6229. {$EXTERNALSYM LoadCursorFromFileW}
  6230. function LoadCursorFromFile(lpFileName: LPCTSTR): HCURSOR; stdcall;
  6231. {$EXTERNALSYM LoadCursorFromFile}
  6232. function CreateCursor(hInst: HINSTANCE; xHotSpot, yHotSpot, nWidth, nHeight: Integer;
  6233. pvANDPlane: PVOID; pvXORPlane: PVOID): HCURSOR; stdcall;
  6234. {$EXTERNALSYM CreateCursor}
  6235. function DestroyCursor(hCursor: HCURSOR): BOOL; stdcall;
  6236. {$EXTERNALSYM DestroyCursor}
  6237. function CopyCursor(pcur: HCURSOR): HCURSOR;
  6238. {$EXTERNALSYM CopyCursor}
  6239. //
  6240. // Standard Cursor IDs
  6241. //
  6242. const
  6243. IDC_ARROW = MAKEINTRESOURCE(32512);
  6244. {$EXTERNALSYM IDC_ARROW}
  6245. IDC_IBEAM = MAKEINTRESOURCE(32513);
  6246. {$EXTERNALSYM IDC_IBEAM}
  6247. IDC_WAIT = MAKEINTRESOURCE(32514);
  6248. {$EXTERNALSYM IDC_WAIT}
  6249. IDC_CROSS = MAKEINTRESOURCE(32515);
  6250. {$EXTERNALSYM IDC_CROSS}
  6251. IDC_UPARROW = MAKEINTRESOURCE(32516);
  6252. {$EXTERNALSYM IDC_UPARROW}
  6253. IDC_SIZE = MAKEINTRESOURCE(32640); // OBSOLETE: use IDC_SIZEALL
  6254. {$EXTERNALSYM IDC_SIZE}
  6255. IDC_ICON = MAKEINTRESOURCE(32641); // OBSOLETE: use IDC_ARROW
  6256. {$EXTERNALSYM IDC_ICON}
  6257. IDC_SIZENWSE = MAKEINTRESOURCE(32642);
  6258. {$EXTERNALSYM IDC_SIZENWSE}
  6259. IDC_SIZENESW = MAKEINTRESOURCE(32643);
  6260. {$EXTERNALSYM IDC_SIZENESW}
  6261. IDC_SIZEWE = MAKEINTRESOURCE(32644);
  6262. {$EXTERNALSYM IDC_SIZEWE}
  6263. IDC_SIZENS = MAKEINTRESOURCE(32645);
  6264. {$EXTERNALSYM IDC_SIZENS}
  6265. IDC_SIZEALL = MAKEINTRESOURCE(32646);
  6266. {$EXTERNALSYM IDC_SIZEALL}
  6267. IDC_NO = MAKEINTRESOURCE(32648); // not in win3.1
  6268. {$EXTERNALSYM IDC_NO}
  6269. IDC_HAND = MAKEINTRESOURCE(32649);
  6270. {$EXTERNALSYM IDC_HAND}
  6271. IDC_APPSTARTING = MAKEINTRESOURCE(32650); // not in win3.1
  6272. {$EXTERNALSYM IDC_APPSTARTING}
  6273. IDC_HELP = MAKEINTRESOURCE(32651);
  6274. {$EXTERNALSYM IDC_HELP}
  6275. function SetSystemCursor(hcur: HCURSOR; id: DWORD): BOOL; stdcall;
  6276. {$EXTERNALSYM SetSystemCursor}
  6277. type
  6278. PICONINFO = ^ICONINFO;
  6279. _ICONINFO = record
  6280. fIcon: BOOL;
  6281. xHotspot: DWORD;
  6282. yHotspot: DWORD;
  6283. hbmMask: HBITMAP;
  6284. hbmColor: HBITMAP;
  6285. end;
  6286. {$EXTERNALSYM _ICONINFO}
  6287. ICONINFO = _ICONINFO;
  6288. {$EXTERNALSYM ICONINFO}
  6289. TIconInfo = ICONINFO;
  6290. function LoadIconA(hInstance: HINSTANCE; lpIconName: LPCSTR): HICON; stdcall;
  6291. {$EXTERNALSYM LoadIconA}
  6292. function LoadIconW(hInstance: HINSTANCE; lpIconName: LPCWSTR): HICON; stdcall;
  6293. {$EXTERNALSYM LoadIconW}
  6294. function LoadIcon(hInstance: HINSTANCE; lpIconName: LPCTSTR): HICON; stdcall;
  6295. {$EXTERNALSYM LoadIcon}
  6296. function PrivateExtractIconsA(szFileName: LPCSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6297. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6298. {$EXTERNALSYM PrivateExtractIconsA}
  6299. function PrivateExtractIconsW(szFileName: LPCWSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6300. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6301. {$EXTERNALSYM PrivateExtractIconsW}
  6302. function PrivateExtractIcons(szFileName: LPCTSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6303. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6304. {$EXTERNALSYM PrivateExtractIcons}
  6305. function CreateIcon(hInstance: HINSTANCE; nWidth, nHeight: Integer; cPlanes,
  6306. cBitsPixel: BYTE; lpbANDbits: LPBYTE; lpbXORbits: LPBYTE): HICON; stdcall;
  6307. {$EXTERNALSYM CreateIcon}
  6308. function DestroyIcon(hIcon: HICON): BOOL; stdcall;
  6309. {$EXTERNALSYM DestroyIcon}
  6310. function LookupIconIdFromDirectory(presbits: PBYTE; fIcon: BOOL): Integer; stdcall;
  6311. {$EXTERNALSYM LookupIconIdFromDirectory}
  6312. function LookupIconIdFromDirectoryEx(presbits: PBYTE; fIcon: BOOL;
  6313. cxDesired, cyDesired: Integer; Flags: UINT): Integer; stdcall;
  6314. {$EXTERNALSYM LookupIconIdFromDirectoryEx}
  6315. function CreateIconFromResource(presbits: PBYTE; dwResSize: DWORD;
  6316. fIcon: BOOL; dwVer: DWORD): HICON; stdcall;
  6317. {$EXTERNALSYM CreateIconFromResource}
  6318. function CreateIconFromResourceEx(presbits: PBYTE; dwResSize: DWORD; fIcon: BOOL;
  6319. dwVer: DWORD; cxDesired, cyDesired: Integer; Flags: UINT): HICON; stdcall;
  6320. {$EXTERNALSYM CreateIconFromResourceEx}
  6321. // Icon/Cursor header//
  6322. type
  6323. LPCURSORSHAPE = ^CURSORSHAPE;
  6324. {$EXTERNALSYM LPCURSORSHAPE}
  6325. tagCURSORSHAPE = record
  6326. xHotSpot: Integer;
  6327. yHotSpot: Integer;
  6328. cx: Integer;
  6329. cy: Integer;
  6330. cbWidth: Integer;
  6331. Planes: BYTE;
  6332. BitsPixel: BYTE;
  6333. end;
  6334. {$EXTERNALSYM tagCURSORSHAPE}
  6335. CURSORSHAPE = tagCURSORSHAPE;
  6336. {$EXTERNALSYM CURSORSHAPE}
  6337. TCursorShape = CURSORSHAPE;
  6338. PCursorShape = LPCURSORSHAPE;
  6339. const
  6340. IMAGE_BITMAP = 0;
  6341. {$EXTERNALSYM IMAGE_BITMAP}
  6342. IMAGE_ICON = 1;
  6343. {$EXTERNALSYM IMAGE_ICON}
  6344. IMAGE_CURSOR = 2;
  6345. {$EXTERNALSYM IMAGE_CURSOR}
  6346. IMAGE_ENHMETAFILE = 3;
  6347. {$EXTERNALSYM IMAGE_ENHMETAFILE}
  6348. LR_DEFAULTCOLOR = $0000;
  6349. {$EXTERNALSYM LR_DEFAULTCOLOR}
  6350. LR_MONOCHROME = $0001;
  6351. {$EXTERNALSYM LR_MONOCHROME}
  6352. LR_COLOR = $0002;
  6353. {$EXTERNALSYM LR_COLOR}
  6354. LR_COPYRETURNORG = $0004;
  6355. {$EXTERNALSYM LR_COPYRETURNORG}
  6356. LR_COPYDELETEORG = $0008;
  6357. {$EXTERNALSYM LR_COPYDELETEORG}
  6358. LR_LOADFROMFILE = $0010;
  6359. {$EXTERNALSYM LR_LOADFROMFILE}
  6360. LR_LOADTRANSPARENT = $0020;
  6361. {$EXTERNALSYM LR_LOADTRANSPARENT}
  6362. LR_DEFAULTSIZE = $0040;
  6363. {$EXTERNALSYM LR_DEFAULTSIZE}
  6364. LR_VGACOLOR = $0080;
  6365. {$EXTERNALSYM LR_VGACOLOR}
  6366. LR_LOADMAP3DCOLORS = $1000;
  6367. {$EXTERNALSYM LR_LOADMAP3DCOLORS}
  6368. LR_CREATEDIBSECTION = $2000;
  6369. {$EXTERNALSYM LR_CREATEDIBSECTION}
  6370. LR_COPYFROMRESOURCE = $4000;
  6371. {$EXTERNALSYM LR_COPYFROMRESOURCE}
  6372. LR_SHARED = $8000;
  6373. {$EXTERNALSYM LR_SHARED}
  6374. function LoadImageA(hinst: HINSTANCE; lpszName: LPCSTR; uType: UINT;
  6375. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6376. {$EXTERNALSYM LoadImageA}
  6377. function LoadImageW(hinst: HINSTANCE; lpszName: LPCWSTR; uType: UINT;
  6378. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6379. {$EXTERNALSYM LoadImageW}
  6380. function LoadImage(hinst: HINSTANCE; lpszName: LPCTSTR; uType: UINT;
  6381. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6382. {$EXTERNALSYM LoadImage}
  6383. function CopyImage(hinst: HANDLE; lpszName: UINT; cxDesired, cyDesired: Integer;
  6384. fuFlags: UINT): HANDLE; stdcall;
  6385. {$EXTERNALSYM CopyImage}
  6386. const
  6387. DI_MASK = $0001;
  6388. {$EXTERNALSYM DI_MASK}
  6389. DI_IMAGE = $0002;
  6390. {$EXTERNALSYM DI_IMAGE}
  6391. DI_NORMAL = $0003;
  6392. {$EXTERNALSYM DI_NORMAL}
  6393. DI_COMPAT = $0004;
  6394. {$EXTERNALSYM DI_COMPAT}
  6395. DI_DEFAULTSIZE = $0008;
  6396. {$EXTERNALSYM DI_DEFAULTSIZE}
  6397. DI_NOMIRROR = $0010;
  6398. {$EXTERNALSYM DI_NOMIRROR}
  6399. function DrawIconEx(hdc: HDC; xLeft, yTop: Integer; hIcon: HICON;
  6400. cxWidth, cyWidth: Integer; istepIfAniCur: UINT; hbrFlickerFreeDraw: HBRUSH;
  6401. diFlags: UINT): BOOL; stdcall;
  6402. {$EXTERNALSYM DrawIconEx}
  6403. function CreateIconIndirect(const piconinfo: ICONINFO): HICON; stdcall;
  6404. {$EXTERNALSYM CreateIconIndirect}
  6405. function CopyIcon(hIcon: HICON): HICON; stdcall;
  6406. {$EXTERNALSYM CopyIcon}
  6407. function GetIconInfo(hIcon: HICON; var piconinfo: ICONINFO): BOOL; stdcall;
  6408. {$EXTERNALSYM GetIconInfo}
  6409. const
  6410. RES_ICON = 1;
  6411. {$EXTERNALSYM RES_ICON}
  6412. RES_CURSOR = 2;
  6413. {$EXTERNALSYM RES_CURSOR}
  6414. //
  6415. // OEM Resource Ordinal Numbers
  6416. //
  6417. OBM_CLOSE = 32754;
  6418. {$EXTERNALSYM OBM_CLOSE}
  6419. OBM_UPARROW = 32753;
  6420. {$EXTERNALSYM OBM_UPARROW}
  6421. OBM_DNARROW = 32752;
  6422. {$EXTERNALSYM OBM_DNARROW}
  6423. OBM_RGARROW = 32751;
  6424. {$EXTERNALSYM OBM_RGARROW}
  6425. OBM_LFARROW = 32750;
  6426. {$EXTERNALSYM OBM_LFARROW}
  6427. OBM_REDUCE = 32749;
  6428. {$EXTERNALSYM OBM_REDUCE}
  6429. OBM_ZOOM = 32748;
  6430. {$EXTERNALSYM OBM_ZOOM}
  6431. OBM_RESTORE = 32747;
  6432. {$EXTERNALSYM OBM_RESTORE}
  6433. OBM_REDUCED = 32746;
  6434. {$EXTERNALSYM OBM_REDUCED}
  6435. OBM_ZOOMD = 32745;
  6436. {$EXTERNALSYM OBM_ZOOMD}
  6437. OBM_RESTORED = 32744;
  6438. {$EXTERNALSYM OBM_RESTORED}
  6439. OBM_UPARROWD = 32743;
  6440. {$EXTERNALSYM OBM_UPARROWD}
  6441. OBM_DNARROWD = 32742;
  6442. {$EXTERNALSYM OBM_DNARROWD}
  6443. OBM_RGARROWD = 32741;
  6444. {$EXTERNALSYM OBM_RGARROWD}
  6445. OBM_LFARROWD = 32740;
  6446. {$EXTERNALSYM OBM_LFARROWD}
  6447. OBM_MNARROW = 32739;
  6448. {$EXTERNALSYM OBM_MNARROW}
  6449. OBM_COMBO = 32738;
  6450. {$EXTERNALSYM OBM_COMBO}
  6451. OBM_UPARROWI = 32737;
  6452. {$EXTERNALSYM OBM_UPARROWI}
  6453. OBM_DNARROWI = 32736;
  6454. {$EXTERNALSYM OBM_DNARROWI}
  6455. OBM_RGARROWI = 32735;
  6456. {$EXTERNALSYM OBM_RGARROWI}
  6457. OBM_LFARROWI = 32734;
  6458. {$EXTERNALSYM OBM_LFARROWI}
  6459. OBM_OLD_CLOSE = 32767;
  6460. {$EXTERNALSYM OBM_OLD_CLOSE}
  6461. OBM_SIZE = 32766;
  6462. {$EXTERNALSYM OBM_SIZE}
  6463. OBM_OLD_UPARROW = 32765;
  6464. {$EXTERNALSYM OBM_OLD_UPARROW}
  6465. OBM_OLD_DNARROW = 32764;
  6466. {$EXTERNALSYM OBM_OLD_DNARROW}
  6467. OBM_OLD_RGARROW = 32763;
  6468. {$EXTERNALSYM OBM_OLD_RGARROW}
  6469. OBM_OLD_LFARROW = 32762;
  6470. {$EXTERNALSYM OBM_OLD_LFARROW}
  6471. OBM_BTSIZE = 32761;
  6472. {$EXTERNALSYM OBM_BTSIZE}
  6473. OBM_CHECK = 32760;
  6474. {$EXTERNALSYM OBM_CHECK}
  6475. OBM_CHECKBOXES = 32759;
  6476. {$EXTERNALSYM OBM_CHECKBOXES}
  6477. OBM_BTNCORNERS = 32758;
  6478. {$EXTERNALSYM OBM_BTNCORNERS}
  6479. OBM_OLD_REDUCE = 32757;
  6480. {$EXTERNALSYM OBM_OLD_REDUCE}
  6481. OBM_OLD_ZOOM = 32756;
  6482. {$EXTERNALSYM OBM_OLD_ZOOM}
  6483. OBM_OLD_RESTORE = 32755;
  6484. {$EXTERNALSYM OBM_OLD_RESTORE}
  6485. OCR_NORMAL = 32512;
  6486. {$EXTERNALSYM OCR_NORMAL}
  6487. OCR_IBEAM = 32513;
  6488. {$EXTERNALSYM OCR_IBEAM}
  6489. OCR_WAIT = 32514;
  6490. {$EXTERNALSYM OCR_WAIT}
  6491. OCR_CROSS = 32515;
  6492. {$EXTERNALSYM OCR_CROSS}
  6493. OCR_UP = 32516;
  6494. {$EXTERNALSYM OCR_UP}
  6495. OCR_SIZE = 32640; // OBSOLETE: use OCR_SIZEALL
  6496. {$EXTERNALSYM OCR_SIZE}
  6497. OCR_ICON = 32641; // OBSOLETE: use OCR_NORMAL
  6498. {$EXTERNALSYM OCR_ICON}
  6499. OCR_SIZENWSE = 32642;
  6500. {$EXTERNALSYM OCR_SIZENWSE}
  6501. OCR_SIZENESW = 32643;
  6502. {$EXTERNALSYM OCR_SIZENESW}
  6503. OCR_SIZEWE = 32644;
  6504. {$EXTERNALSYM OCR_SIZEWE}
  6505. OCR_SIZENS = 32645;
  6506. {$EXTERNALSYM OCR_SIZENS}
  6507. OCR_SIZEALL = 32646;
  6508. {$EXTERNALSYM OCR_SIZEALL}
  6509. OCR_ICOCUR = 32647; // OBSOLETE: use OIC_WINLOGO
  6510. {$EXTERNALSYM OCR_ICOCUR}
  6511. OCR_NO = 32648;
  6512. {$EXTERNALSYM OCR_NO}
  6513. OCR_HAND = 32649;
  6514. {$EXTERNALSYM OCR_HAND}
  6515. OCR_APPSTARTING = 32650;
  6516. {$EXTERNALSYM OCR_APPSTARTING}
  6517. OIC_SAMPLE = 32512;
  6518. {$EXTERNALSYM OIC_SAMPLE}
  6519. OIC_HAND = 32513;
  6520. {$EXTERNALSYM OIC_HAND}
  6521. OIC_QUES = 32514;
  6522. {$EXTERNALSYM OIC_QUES}
  6523. OIC_BANG = 32515;
  6524. {$EXTERNALSYM OIC_BANG}
  6525. OIC_NOTE = 32516;
  6526. {$EXTERNALSYM OIC_NOTE}
  6527. OIC_WINLOGO = 32517;
  6528. {$EXTERNALSYM OIC_WINLOGO}
  6529. OIC_WARNING = OIC_BANG;
  6530. {$EXTERNALSYM OIC_WARNING}
  6531. OIC_ERROR = OIC_HAND;
  6532. {$EXTERNALSYM OIC_ERROR}
  6533. OIC_INFORMATION = OIC_NOTE;
  6534. {$EXTERNALSYM OIC_INFORMATION}
  6535. ORD_LANGDRIVER = 1; // The ordinal number for the entry point of language drivers.
  6536. {$EXTERNALSYM ORD_LANGDRIVER}
  6537. //
  6538. // Standard Icon IDs
  6539. //
  6540. IDI_APPLICATION = MAKEINTRESOURCE(32512);
  6541. {$EXTERNALSYM IDI_APPLICATION}
  6542. IDI_HAND = MAKEINTRESOURCE(32513);
  6543. {$EXTERNALSYM IDI_HAND}
  6544. IDI_QUESTION = MAKEINTRESOURCE(32514);
  6545. {$EXTERNALSYM IDI_QUESTION}
  6546. IDI_EXCLAMATION = MAKEINTRESOURCE(32515);
  6547. {$EXTERNALSYM IDI_EXCLAMATION}
  6548. IDI_ASTERISK = MAKEINTRESOURCE(32516);
  6549. {$EXTERNALSYM IDI_ASTERISK}
  6550. IDI_WINLOGO = MAKEINTRESOURCE(32517);
  6551. {$EXTERNALSYM IDI_WINLOGO}
  6552. IDI_WARNING = IDI_EXCLAMATION;
  6553. {$EXTERNALSYM IDI_WARNING}
  6554. IDI_ERROR = IDI_HAND;
  6555. {$EXTERNALSYM IDI_ERROR}
  6556. IDI_INFORMATION = IDI_ASTERISK;
  6557. {$EXTERNALSYM IDI_INFORMATION}
  6558. function LoadStringA(hInstance: HINSTANCE; uID: UINT; lpBuffer: LPSTR;
  6559. nBufferMax: Integer): Integer; stdcall;
  6560. {$EXTERNALSYM LoadStringA}
  6561. function LoadStringW(hInstance: HINSTANCE; uID: UINT; lpBuffer: LPWSTR;
  6562. nBufferMax: Integer): Integer; stdcall;
  6563. {$EXTERNALSYM LoadStringW}
  6564. function LoadString(hInstance: HINSTANCE; uID: UINT; lpBuffer: LPTSTR;
  6565. nBufferMax: Integer): Integer; stdcall;
  6566. {$EXTERNALSYM LoadString}
  6567. //
  6568. // Dialog Box Command IDs
  6569. //
  6570. const
  6571. IDOK = 1;
  6572. {$EXTERNALSYM IDOK}
  6573. IDCANCEL = 2;
  6574. {$EXTERNALSYM IDCANCEL}
  6575. IDABORT = 3;
  6576. {$EXTERNALSYM IDABORT}
  6577. IDRETRY = 4;
  6578. {$EXTERNALSYM IDRETRY}
  6579. IDIGNORE = 5;
  6580. {$EXTERNALSYM IDIGNORE}
  6581. IDYES = 6;
  6582. {$EXTERNALSYM IDYES}
  6583. IDNO = 7;
  6584. {$EXTERNALSYM IDNO}
  6585. IDCLOSE = 8;
  6586. {$EXTERNALSYM IDCLOSE}
  6587. IDHELP = 9;
  6588. {$EXTERNALSYM IDHELP}
  6589. IDTRYAGAIN = 10;
  6590. {$EXTERNALSYM IDTRYAGAIN}
  6591. IDCONTINUE = 11;
  6592. {$EXTERNALSYM IDCONTINUE}
  6593. IDTIMEOUT = 32000;
  6594. {$EXTERNALSYM IDTIMEOUT}
  6595. //
  6596. // Control Manager Structures and Definitions
  6597. //
  6598. //
  6599. // Edit Control Styles
  6600. //
  6601. ES_LEFT = $0000;
  6602. {$EXTERNALSYM ES_LEFT}
  6603. ES_CENTER = $0001;
  6604. {$EXTERNALSYM ES_CENTER}
  6605. ES_RIGHT = $0002;
  6606. {$EXTERNALSYM ES_RIGHT}
  6607. ES_MULTILINE = $0004;
  6608. {$EXTERNALSYM ES_MULTILINE}
  6609. ES_UPPERCASE = $0008;
  6610. {$EXTERNALSYM ES_UPPERCASE}
  6611. ES_LOWERCASE = $0010;
  6612. {$EXTERNALSYM ES_LOWERCASE}
  6613. ES_PASSWORD = $0020;
  6614. {$EXTERNALSYM ES_PASSWORD}
  6615. ES_AUTOVSCROLL = $0040;
  6616. {$EXTERNALSYM ES_AUTOVSCROLL}
  6617. ES_AUTOHSCROLL = $0080;
  6618. {$EXTERNALSYM ES_AUTOHSCROLL}
  6619. ES_NOHIDESEL = $0100;
  6620. {$EXTERNALSYM ES_NOHIDESEL}
  6621. ES_OEMCONVERT = $0400;
  6622. {$EXTERNALSYM ES_OEMCONVERT}
  6623. ES_READONLY = $0800;
  6624. {$EXTERNALSYM ES_READONLY}
  6625. ES_WANTRETURN = $1000;
  6626. {$EXTERNALSYM ES_WANTRETURN}
  6627. ES_NUMBER = $2000;
  6628. {$EXTERNALSYM ES_NUMBER}
  6629. //
  6630. // Edit Control Notification Codes
  6631. //
  6632. EN_SETFOCUS = $0100;
  6633. {$EXTERNALSYM EN_SETFOCUS}
  6634. EN_KILLFOCUS = $0200;
  6635. {$EXTERNALSYM EN_KILLFOCUS}
  6636. EN_CHANGE = $0300;
  6637. {$EXTERNALSYM EN_CHANGE}
  6638. EN_UPDATE = $0400;
  6639. {$EXTERNALSYM EN_UPDATE}
  6640. EN_ERRSPACE = $0500;
  6641. {$EXTERNALSYM EN_ERRSPACE}
  6642. EN_MAXTEXT = $0501;
  6643. {$EXTERNALSYM EN_MAXTEXT}
  6644. EN_HSCROLL = $0601;
  6645. {$EXTERNALSYM EN_HSCROLL}
  6646. EN_VSCROLL = $0602;
  6647. {$EXTERNALSYM EN_VSCROLL}
  6648. EN_ALIGN_LTR_EC = $0700;
  6649. {$EXTERNALSYM EN_ALIGN_LTR_EC}
  6650. EN_ALIGN_RTL_EC = $0701;
  6651. {$EXTERNALSYM EN_ALIGN_RTL_EC}
  6652. // Edit control EM_SETMARGIN parameters//
  6653. EC_LEFTMARGIN = $0001;
  6654. {$EXTERNALSYM EC_LEFTMARGIN}
  6655. EC_RIGHTMARGIN = $0002;
  6656. {$EXTERNALSYM EC_RIGHTMARGIN}
  6657. EC_USEFONTINFO = $ffff;
  6658. {$EXTERNALSYM EC_USEFONTINFO}
  6659. // wParam of EM_GET/SETIMESTATUS //
  6660. EMSIS_COMPOSITIONSTRING = $0001;
  6661. {$EXTERNALSYM EMSIS_COMPOSITIONSTRING}
  6662. // lParam for EMSIS_COMPOSITIONSTRING //
  6663. EIMES_GETCOMPSTRATONCE = $0001;
  6664. {$EXTERNALSYM EIMES_GETCOMPSTRATONCE}
  6665. EIMES_CANCELCOMPSTRINFOCUS = $0002;
  6666. {$EXTERNALSYM EIMES_CANCELCOMPSTRINFOCUS}
  6667. EIMES_COMPLETECOMPSTRKILLFOCUS = $0004;
  6668. {$EXTERNALSYM EIMES_COMPLETECOMPSTRKILLFOCUS}
  6669. //
  6670. // Edit Control Messages
  6671. //
  6672. EM_GETSEL = $00B0;
  6673. {$EXTERNALSYM EM_GETSEL}
  6674. EM_SETSEL = $00B1;
  6675. {$EXTERNALSYM EM_SETSEL}
  6676. EM_GETRECT = $00B2;
  6677. {$EXTERNALSYM EM_GETRECT}
  6678. EM_SETRECT = $00B3;
  6679. {$EXTERNALSYM EM_SETRECT}
  6680. EM_SETRECTNP = $00B4;
  6681. {$EXTERNALSYM EM_SETRECTNP}
  6682. EM_SCROLL = $00B5;
  6683. {$EXTERNALSYM EM_SCROLL}
  6684. EM_LINESCROLL = $00B6;
  6685. {$EXTERNALSYM EM_LINESCROLL}
  6686. EM_SCROLLCARET = $00B7;
  6687. {$EXTERNALSYM EM_SCROLLCARET}
  6688. EM_GETMODIFY = $00B8;
  6689. {$EXTERNALSYM EM_GETMODIFY}
  6690. EM_SETMODIFY = $00B9;
  6691. {$EXTERNALSYM EM_SETMODIFY}
  6692. EM_GETLINECOUNT = $00BA;
  6693. {$EXTERNALSYM EM_GETLINECOUNT}
  6694. EM_LINEINDEX = $00BB;
  6695. {$EXTERNALSYM EM_LINEINDEX}
  6696. EM_SETHANDLE = $00BC;
  6697. {$EXTERNALSYM EM_SETHANDLE}
  6698. EM_GETHANDLE = $00BD;
  6699. {$EXTERNALSYM EM_GETHANDLE}
  6700. EM_GETTHUMB = $00BE;
  6701. {$EXTERNALSYM EM_GETTHUMB}
  6702. EM_LINELENGTH = $00C1;
  6703. {$EXTERNALSYM EM_LINELENGTH}
  6704. EM_REPLACESEL = $00C2;
  6705. {$EXTERNALSYM EM_REPLACESEL}
  6706. EM_GETLINE = $00C4;
  6707. {$EXTERNALSYM EM_GETLINE}
  6708. EM_LIMITTEXT = $00C5;
  6709. {$EXTERNALSYM EM_LIMITTEXT}
  6710. EM_CANUNDO = $00C6;
  6711. {$EXTERNALSYM EM_CANUNDO}
  6712. EM_UNDO = $00C7;
  6713. {$EXTERNALSYM EM_UNDO}
  6714. EM_FMTLINES = $00C8;
  6715. {$EXTERNALSYM EM_FMTLINES}
  6716. EM_LINEFROMCHAR = $00C9;
  6717. {$EXTERNALSYM EM_LINEFROMCHAR}
  6718. EM_SETTABSTOPS = $00CB;
  6719. {$EXTERNALSYM EM_SETTABSTOPS}
  6720. EM_SETPASSWORDCHAR = $00CC;
  6721. {$EXTERNALSYM EM_SETPASSWORDCHAR}
  6722. EM_EMPTYUNDOBUFFER = $00CD;
  6723. {$EXTERNALSYM EM_EMPTYUNDOBUFFER}
  6724. EM_GETFIRSTVISIBLELINE = $00CE;
  6725. {$EXTERNALSYM EM_GETFIRSTVISIBLELINE}
  6726. EM_SETREADONLY = $00CF;
  6727. {$EXTERNALSYM EM_SETREADONLY}
  6728. EM_SETWORDBREAKPROC = $00D0;
  6729. {$EXTERNALSYM EM_SETWORDBREAKPROC}
  6730. EM_GETWORDBREAKPROC = $00D1;
  6731. {$EXTERNALSYM EM_GETWORDBREAKPROC}
  6732. EM_GETPASSWORDCHAR = $00D2;
  6733. {$EXTERNALSYM EM_GETPASSWORDCHAR}
  6734. EM_SETMARGINS = $00D3;
  6735. {$EXTERNALSYM EM_SETMARGINS}
  6736. EM_GETMARGINS = $00D4;
  6737. {$EXTERNALSYM EM_GETMARGINS}
  6738. EM_SETLIMITTEXT = EM_LIMITTEXT; // ;win40 Name change
  6739. {$EXTERNALSYM EM_SETLIMITTEXT}
  6740. EM_GETLIMITTEXT = $00D5;
  6741. {$EXTERNALSYM EM_GETLIMITTEXT}
  6742. EM_POSFROMCHAR = $00D6;
  6743. {$EXTERNALSYM EM_POSFROMCHAR}
  6744. EM_CHARFROMPOS = $00D7;
  6745. {$EXTERNALSYM EM_CHARFROMPOS}
  6746. EM_SETIMESTATUS = $00D8;
  6747. {$EXTERNALSYM EM_SETIMESTATUS}
  6748. EM_GETIMESTATUS = $00D9;
  6749. {$EXTERNALSYM EM_GETIMESTATUS}
  6750. //
  6751. // EDITWORDBREAKPROC code values
  6752. //
  6753. WB_LEFT = 0;
  6754. {$EXTERNALSYM WB_LEFT}
  6755. WB_RIGHT = 1;
  6756. {$EXTERNALSYM WB_RIGHT}
  6757. WB_ISDELIMITER = 2;
  6758. {$EXTERNALSYM WB_ISDELIMITER}
  6759. //
  6760. // Button Control Styles
  6761. //
  6762. BS_PUSHBUTTON = $00000000;
  6763. {$EXTERNALSYM BS_PUSHBUTTON}
  6764. BS_DEFPUSHBUTTON = $00000001;
  6765. {$EXTERNALSYM BS_DEFPUSHBUTTON}
  6766. BS_CHECKBOX = $00000002;
  6767. {$EXTERNALSYM BS_CHECKBOX}
  6768. BS_AUTOCHECKBOX = $00000003;
  6769. {$EXTERNALSYM BS_AUTOCHECKBOX}
  6770. BS_RADIOBUTTON = $00000004;
  6771. {$EXTERNALSYM BS_RADIOBUTTON}
  6772. BS_3STATE = $00000005;
  6773. {$EXTERNALSYM BS_3STATE}
  6774. BS_AUTO3STATE = $00000006;
  6775. {$EXTERNALSYM BS_AUTO3STATE}
  6776. BS_GROUPBOX = $00000007;
  6777. {$EXTERNALSYM BS_GROUPBOX}
  6778. BS_USERBUTTON = $00000008;
  6779. {$EXTERNALSYM BS_USERBUTTON}
  6780. BS_AUTORADIOBUTTON = $00000009;
  6781. {$EXTERNALSYM BS_AUTORADIOBUTTON}
  6782. BS_PUSHBOX = $0000000A;
  6783. {$EXTERNALSYM BS_PUSHBOX}
  6784. BS_OWNERDRAW = $0000000B;
  6785. {$EXTERNALSYM BS_OWNERDRAW}
  6786. BS_TYPEMASK = $0000000F;
  6787. {$EXTERNALSYM BS_TYPEMASK}
  6788. BS_LEFTTEXT = $00000020;
  6789. {$EXTERNALSYM BS_LEFTTEXT}
  6790. BS_TEXT = $00000000;
  6791. {$EXTERNALSYM BS_TEXT}
  6792. BS_ICON = $00000040;
  6793. {$EXTERNALSYM BS_ICON}
  6794. BS_BITMAP = $00000080;
  6795. {$EXTERNALSYM BS_BITMAP}
  6796. BS_LEFT = $00000100;
  6797. {$EXTERNALSYM BS_LEFT}
  6798. BS_RIGHT = $00000200;
  6799. {$EXTERNALSYM BS_RIGHT}
  6800. BS_CENTER = $00000300;
  6801. {$EXTERNALSYM BS_CENTER}
  6802. BS_TOP = $00000400;
  6803. {$EXTERNALSYM BS_TOP}
  6804. BS_BOTTOM = $00000800;
  6805. {$EXTERNALSYM BS_BOTTOM}
  6806. BS_VCENTER = $00000C00;
  6807. {$EXTERNALSYM BS_VCENTER}
  6808. BS_PUSHLIKE = $00001000;
  6809. {$EXTERNALSYM BS_PUSHLIKE}
  6810. BS_MULTILINE = $00002000;
  6811. {$EXTERNALSYM BS_MULTILINE}
  6812. BS_NOTIFY = $00004000;
  6813. {$EXTERNALSYM BS_NOTIFY}
  6814. BS_FLAT = $00008000;
  6815. {$EXTERNALSYM BS_FLAT}
  6816. BS_RIGHTBUTTON = BS_LEFTTEXT;
  6817. {$EXTERNALSYM BS_RIGHTBUTTON}
  6818. //
  6819. // User Button Notification Codes
  6820. //
  6821. BN_CLICKED = 0;
  6822. {$EXTERNALSYM BN_CLICKED}
  6823. BN_PAINT = 1;
  6824. {$EXTERNALSYM BN_PAINT}
  6825. BN_HILITE = 2;
  6826. {$EXTERNALSYM BN_HILITE}
  6827. BN_UNHILITE = 3;
  6828. {$EXTERNALSYM BN_UNHILITE}
  6829. BN_DISABLE = 4;
  6830. {$EXTERNALSYM BN_DISABLE}
  6831. BN_DOUBLECLICKED = 5;
  6832. {$EXTERNALSYM BN_DOUBLECLICKED}
  6833. BN_PUSHED = BN_HILITE;
  6834. {$EXTERNALSYM BN_PUSHED}
  6835. BN_UNPUSHED = BN_UNHILITE;
  6836. {$EXTERNALSYM BN_UNPUSHED}
  6837. BN_DBLCLK = BN_DOUBLECLICKED;
  6838. {$EXTERNALSYM BN_DBLCLK}
  6839. BN_SETFOCUS = 6;
  6840. {$EXTERNALSYM BN_SETFOCUS}
  6841. BN_KILLFOCUS = 7;
  6842. {$EXTERNALSYM BN_KILLFOCUS}
  6843. //
  6844. // Button Control Messages
  6845. //
  6846. BM_GETCHECK = $00F0;
  6847. {$EXTERNALSYM BM_GETCHECK}
  6848. BM_SETCHECK = $00F1;
  6849. {$EXTERNALSYM BM_SETCHECK}
  6850. BM_GETSTATE = $00F2;
  6851. {$EXTERNALSYM BM_GETSTATE}
  6852. BM_SETSTATE = $00F3;
  6853. {$EXTERNALSYM BM_SETSTATE}
  6854. BM_SETSTYLE = $00F4;
  6855. {$EXTERNALSYM BM_SETSTYLE}
  6856. BM_CLICK = $00F5;
  6857. {$EXTERNALSYM BM_CLICK}
  6858. BM_GETIMAGE = $00F6;
  6859. {$EXTERNALSYM BM_GETIMAGE}
  6860. BM_SETIMAGE = $00F7;
  6861. {$EXTERNALSYM BM_SETIMAGE}
  6862. BST_UNCHECKED = $0000;
  6863. {$EXTERNALSYM BST_UNCHECKED}
  6864. BST_CHECKED = $0001;
  6865. {$EXTERNALSYM BST_CHECKED}
  6866. BST_INDETERMINATE = $0002;
  6867. {$EXTERNALSYM BST_INDETERMINATE}
  6868. BST_PUSHED = $0004;
  6869. {$EXTERNALSYM BST_PUSHED}
  6870. BST_FOCUS = $0008;
  6871. {$EXTERNALSYM BST_FOCUS}
  6872. //
  6873. // Static Control Constants
  6874. //
  6875. SS_LEFT = $00000000;
  6876. {$EXTERNALSYM SS_LEFT}
  6877. SS_CENTER = $00000001;
  6878. {$EXTERNALSYM SS_CENTER}
  6879. SS_RIGHT = $00000002;
  6880. {$EXTERNALSYM SS_RIGHT}
  6881. SS_ICON = $00000003;
  6882. {$EXTERNALSYM SS_ICON}
  6883. SS_BLACKRECT = $00000004;
  6884. {$EXTERNALSYM SS_BLACKRECT}
  6885. SS_GRAYRECT = $00000005;
  6886. {$EXTERNALSYM SS_GRAYRECT}
  6887. SS_WHITERECT = $00000006;
  6888. {$EXTERNALSYM SS_WHITERECT}
  6889. SS_BLACKFRAME = $00000007;
  6890. {$EXTERNALSYM SS_BLACKFRAME}
  6891. SS_GRAYFRAME = $00000008;
  6892. {$EXTERNALSYM SS_GRAYFRAME}
  6893. SS_WHITEFRAME = $00000009;
  6894. {$EXTERNALSYM SS_WHITEFRAME}
  6895. SS_USERITEM = $0000000A;
  6896. {$EXTERNALSYM SS_USERITEM}
  6897. SS_SIMPLE = $0000000B;
  6898. {$EXTERNALSYM SS_SIMPLE}
  6899. SS_LEFTNOWORDWRAP = $0000000C;
  6900. {$EXTERNALSYM SS_LEFTNOWORDWRAP}
  6901. SS_OWNERDRAW = $0000000D;
  6902. {$EXTERNALSYM SS_OWNERDRAW}
  6903. SS_BITMAP = $0000000E;
  6904. {$EXTERNALSYM SS_BITMAP}
  6905. SS_ENHMETAFILE = $0000000F;
  6906. {$EXTERNALSYM SS_ENHMETAFILE}
  6907. SS_ETCHEDHORZ = $00000010;
  6908. {$EXTERNALSYM SS_ETCHEDHORZ}
  6909. SS_ETCHEDVERT = $00000011;
  6910. {$EXTERNALSYM SS_ETCHEDVERT}
  6911. SS_ETCHEDFRAME = $00000012;
  6912. {$EXTERNALSYM SS_ETCHEDFRAME}
  6913. SS_TYPEMASK = $0000001F;
  6914. {$EXTERNALSYM SS_TYPEMASK}
  6915. SS_REALSIZECONTROL = $00000040;
  6916. {$EXTERNALSYM SS_REALSIZECONTROL}
  6917. SS_NOPREFIX = $00000080; // Don't do "&" character translation
  6918. {$EXTERNALSYM SS_NOPREFIX}
  6919. SS_NOTIFY = $00000100;
  6920. {$EXTERNALSYM SS_NOTIFY}
  6921. SS_CENTERIMAGE = $00000200;
  6922. {$EXTERNALSYM SS_CENTERIMAGE}
  6923. SS_RIGHTJUST = $00000400;
  6924. {$EXTERNALSYM SS_RIGHTJUST}
  6925. SS_REALSIZEIMAGE = $00000800;
  6926. {$EXTERNALSYM SS_REALSIZEIMAGE}
  6927. SS_SUNKEN = $00001000;
  6928. {$EXTERNALSYM SS_SUNKEN}
  6929. SS_EDITCONTROL = $00002000;
  6930. {$EXTERNALSYM SS_EDITCONTROL}
  6931. SS_ENDELLIPSIS = $00004000;
  6932. {$EXTERNALSYM SS_ENDELLIPSIS}
  6933. SS_PATHELLIPSIS = $00008000;
  6934. {$EXTERNALSYM SS_PATHELLIPSIS}
  6935. SS_WORDELLIPSIS = $0000C000;
  6936. {$EXTERNALSYM SS_WORDELLIPSIS}
  6937. SS_ELLIPSISMASK = $0000C000;
  6938. {$EXTERNALSYM SS_ELLIPSISMASK}
  6939. //
  6940. // Static Control Mesages
  6941. //
  6942. STM_SETICON = $0170;
  6943. {$EXTERNALSYM STM_SETICON}
  6944. STM_GETICON = $0171;
  6945. {$EXTERNALSYM STM_GETICON}
  6946. STM_SETIMAGE = $0172;
  6947. {$EXTERNALSYM STM_SETIMAGE}
  6948. STM_GETIMAGE = $0173;
  6949. {$EXTERNALSYM STM_GETIMAGE}
  6950. STN_CLICKED = 0;
  6951. {$EXTERNALSYM STN_CLICKED}
  6952. STN_DBLCLK = 1;
  6953. {$EXTERNALSYM STN_DBLCLK}
  6954. STN_ENABLE = 2;
  6955. {$EXTERNALSYM STN_ENABLE}
  6956. STN_DISABLE = 3;
  6957. {$EXTERNALSYM STN_DISABLE}
  6958. STM_MSGMAX = $0174;
  6959. {$EXTERNALSYM STM_MSGMAX}
  6960. //
  6961. // Dialog window class
  6962. //
  6963. WC_DIALOG = MAKEINTATOM($8002);
  6964. {$EXTERNALSYM WC_DIALOG}
  6965. //
  6966. // Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
  6967. //
  6968. DWL_MSGRESULT = 0;
  6969. {$EXTERNALSYM DWL_MSGRESULT}
  6970. DWL_DLGPROC = 4;
  6971. {$EXTERNALSYM DWL_DLGPROC}
  6972. DWL_USER = 8;
  6973. {$EXTERNALSYM DWL_USER}
  6974. DWLP_MSGRESULT = 0;
  6975. {$EXTERNALSYM DWLP_MSGRESULT}
  6976. DWLP_DLGPROC = DWLP_MSGRESULT + SizeOf(LRESULT);
  6977. {$EXTERNALSYM DWLP_DLGPROC}
  6978. DWLP_USER = DWLP_DLGPROC + SizeOf(DLGPROC);
  6979. {$EXTERNALSYM DWLP_USER}
  6980. //
  6981. // Dialog Manager Routines
  6982. //
  6983. function IsDialogMessageA(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6984. {$EXTERNALSYM IsDialogMessageA}
  6985. function IsDialogMessageW(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6986. {$EXTERNALSYM IsDialogMessageW}
  6987. function IsDialogMessage(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6988. {$EXTERNALSYM IsDialogMessage}
  6989. function MapDialogRect(hDlg: HWND; var lpRect: RECT): BOOL; stdcall;
  6990. {$EXTERNALSYM MapDialogRect}
  6991. function DlgDirListA(hDlg: HWND; lpPathSpec: LPSTR; nIDListBox: Integer;
  6992. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  6993. {$EXTERNALSYM DlgDirListA}
  6994. function DlgDirListW(hDlg: HWND; lpPathSpec: LPWSTR; nIDListBox: Integer;
  6995. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  6996. {$EXTERNALSYM DlgDirListW}
  6997. function DlgDirList(hDlg: HWND; lpPathSpec: LPTSTR; nIDListBox: Integer;
  6998. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  6999. {$EXTERNALSYM DlgDirList}
  7000. //
  7001. // DlgDirList, DlgDirListComboBox flags values
  7002. //
  7003. const
  7004. DDL_READWRITE = $0000;
  7005. {$EXTERNALSYM DDL_READWRITE}
  7006. DDL_READONLY = $0001;
  7007. {$EXTERNALSYM DDL_READONLY}
  7008. DDL_HIDDEN = $0002;
  7009. {$EXTERNALSYM DDL_HIDDEN}
  7010. DDL_SYSTEM = $0004;
  7011. {$EXTERNALSYM DDL_SYSTEM}
  7012. DDL_DIRECTORY = $0010;
  7013. {$EXTERNALSYM DDL_DIRECTORY}
  7014. DDL_ARCHIVE = $0020;
  7015. {$EXTERNALSYM DDL_ARCHIVE}
  7016. DDL_POSTMSGS = $2000;
  7017. {$EXTERNALSYM DDL_POSTMSGS}
  7018. DDL_DRIVES = $4000;
  7019. {$EXTERNALSYM DDL_DRIVES}
  7020. DDL_EXCLUSIVE = $8000;
  7021. {$EXTERNALSYM DDL_EXCLUSIVE}
  7022. function DlgDirSelectExA(hDlg: HWND; lpString: LPSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7023. {$EXTERNALSYM DlgDirSelectExA}
  7024. function DlgDirSelectExW(hDlg: HWND; lpString: LPWSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7025. {$EXTERNALSYM DlgDirSelectExW}
  7026. function DlgDirSelectEx(hDlg: HWND; lpString: LPTSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7027. {$EXTERNALSYM DlgDirSelectEx}
  7028. function DlgDirListComboBoxA(hDlg: HWND; lpPathSpec: LPSTR; nIDComboBox: Integer;
  7029. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7030. {$EXTERNALSYM DlgDirListComboBoxA}
  7031. function DlgDirListComboBoxW(hDlg: HWND; lpPathSpec: LPWSTR; nIDComboBox: Integer;
  7032. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7033. {$EXTERNALSYM DlgDirListComboBoxW}
  7034. function DlgDirListComboBox(hDlg: HWND; lpPathSpec: LPTSTR; nIDComboBox: Integer;
  7035. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7036. {$EXTERNALSYM DlgDirListComboBox}
  7037. function DlgDirSelectComboBoxExA(hDlg: HWND; lpString: LPSTR; nCount: Integer;
  7038. nIDComboBox: Integer): BOOL; stdcall;
  7039. {$EXTERNALSYM DlgDirSelectComboBoxExA}
  7040. function DlgDirSelectComboBoxExW(hDlg: HWND; lpString: LPWSTR; nCount: Integer;
  7041. nIDComboBox: Integer): BOOL; stdcall;
  7042. {$EXTERNALSYM DlgDirSelectComboBoxExW}
  7043. function DlgDirSelectComboBoxEx(hDlg: HWND; lpString: LPTSTR; nCount: Integer;
  7044. nIDComboBox: Integer): BOOL; stdcall;
  7045. {$EXTERNALSYM DlgDirSelectComboBoxEx}
  7046. //
  7047. // Dialog Styles
  7048. //
  7049. const
  7050. DS_ABSALIGN = $01;
  7051. {$EXTERNALSYM DS_ABSALIGN}
  7052. DS_SYSMODAL = $02;
  7053. {$EXTERNALSYM DS_SYSMODAL}
  7054. DS_LOCALEDIT = $20; // Edit items get Local storage.
  7055. {$EXTERNALSYM DS_LOCALEDIT}
  7056. DS_SETFONT = $40; // User specified font for Dlg controls
  7057. {$EXTERNALSYM DS_SETFONT}
  7058. DS_MODALFRAME = $80; // Can be combined with WS_CAPTION
  7059. {$EXTERNALSYM DS_MODALFRAME}
  7060. DS_NOIDLEMSG = $100; // WM_ENTERIDLE message will not be sent
  7061. {$EXTERNALSYM DS_NOIDLEMSG}
  7062. DS_SETFOREGROUND = $200; // not in win3.1
  7063. {$EXTERNALSYM DS_SETFOREGROUND}
  7064. DS_3DLOOK = $0004;
  7065. {$EXTERNALSYM DS_3DLOOK}
  7066. DS_FIXEDSYS = $0008;
  7067. {$EXTERNALSYM DS_FIXEDSYS}
  7068. DS_NOFAILCREATE = $0010;
  7069. {$EXTERNALSYM DS_NOFAILCREATE}
  7070. DS_CONTROL = $0400;
  7071. {$EXTERNALSYM DS_CONTROL}
  7072. DS_CENTER = $0800;
  7073. {$EXTERNALSYM DS_CENTER}
  7074. DS_CENTERMOUSE = $1000;
  7075. {$EXTERNALSYM DS_CENTERMOUSE}
  7076. DS_CONTEXTHELP = $2000;
  7077. {$EXTERNALSYM DS_CONTEXTHELP}
  7078. DS_SHELLFONT = DS_SETFONT or DS_FIXEDSYS;
  7079. {$EXTERNALSYM DS_SHELLFONT}
  7080. //#if(_WIN32_WCE >= 0x0500)
  7081. DS_USEPIXELS = $8000;
  7082. {$EXTERNALSYM DS_USEPIXELS}
  7083. //#endif
  7084. DM_GETDEFID = WM_USER + 0;
  7085. {$EXTERNALSYM DM_GETDEFID}
  7086. DM_SETDEFID = WM_USER + 1;
  7087. {$EXTERNALSYM DM_SETDEFID}
  7088. DM_REPOSITION = WM_USER + 2;
  7089. {$EXTERNALSYM DM_REPOSITION}
  7090. //
  7091. // Returned in HIWORD() of DM_GETDEFID result if msg is supported
  7092. //
  7093. DC_HASDEFID = $534B;
  7094. {$EXTERNALSYM DC_HASDEFID}
  7095. //
  7096. // Dialog Codes
  7097. //
  7098. DLGC_WANTARROWS = $0001; // Control wants arrow keys
  7099. {$EXTERNALSYM DLGC_WANTARROWS}
  7100. DLGC_WANTTAB = $0002; // Control wants tab keys
  7101. {$EXTERNALSYM DLGC_WANTTAB}
  7102. DLGC_WANTALLKEYS = $0004; // Control wants all keys
  7103. {$EXTERNALSYM DLGC_WANTALLKEYS}
  7104. DLGC_WANTMESSAGE = $0004; // Pass message to control
  7105. {$EXTERNALSYM DLGC_WANTMESSAGE}
  7106. DLGC_HASSETSEL = $0008; // Understands EM_SETSEL message
  7107. {$EXTERNALSYM DLGC_HASSETSEL}
  7108. DLGC_DEFPUSHBUTTON = $0010; // Default pushbutton
  7109. {$EXTERNALSYM DLGC_DEFPUSHBUTTON}
  7110. DLGC_UNDEFPUSHBUTTON = $0020; // Non-default pushbutton
  7111. {$EXTERNALSYM DLGC_UNDEFPUSHBUTTON}
  7112. DLGC_RADIOBUTTON = $0040; // Radio button
  7113. {$EXTERNALSYM DLGC_RADIOBUTTON}
  7114. DLGC_WANTCHARS = $0080; // Want WM_CHAR messages
  7115. {$EXTERNALSYM DLGC_WANTCHARS}
  7116. DLGC_STATIC = $0100; // Static item: don't include
  7117. {$EXTERNALSYM DLGC_STATIC}
  7118. DLGC_BUTTON = $2000; // Button item: can be checked
  7119. {$EXTERNALSYM DLGC_BUTTON}
  7120. LB_CTLCODE = 0;
  7121. {$EXTERNALSYM LB_CTLCODE}
  7122. //
  7123. // Listbox Return Values
  7124. //
  7125. LB_OKAY = 0;
  7126. {$EXTERNALSYM LB_OKAY}
  7127. LB_ERR = DWORD(-1);
  7128. {$EXTERNALSYM LB_ERR}
  7129. LB_ERRSPACE = DWORD(-2);
  7130. {$EXTERNALSYM LB_ERRSPACE}
  7131. //
  7132. // The idStaticPath parameter to DlgDirList can have the following values
  7133. // ORed if the list box should show other details of the files along with
  7134. // the name of the files;
  7135. //
  7136. // all other details also will be returned
  7137. //
  7138. // Listbox Notification Codes
  7139. //
  7140. LBN_ERRSPACE = DWORD(-2);
  7141. {$EXTERNALSYM LBN_ERRSPACE}
  7142. LBN_SELCHANGE = 1;
  7143. {$EXTERNALSYM LBN_SELCHANGE}
  7144. LBN_DBLCLK = 2;
  7145. {$EXTERNALSYM LBN_DBLCLK}
  7146. LBN_SELCANCEL = 3;
  7147. {$EXTERNALSYM LBN_SELCANCEL}
  7148. LBN_SETFOCUS = 4;
  7149. {$EXTERNALSYM LBN_SETFOCUS}
  7150. LBN_KILLFOCUS = 5;
  7151. {$EXTERNALSYM LBN_KILLFOCUS}
  7152. //
  7153. // Listbox messages
  7154. //
  7155. LB_ADDSTRING = $0180;
  7156. {$EXTERNALSYM LB_ADDSTRING}
  7157. LB_INSERTSTRING = $0181;
  7158. {$EXTERNALSYM LB_INSERTSTRING}
  7159. LB_DELETESTRING = $0182;
  7160. {$EXTERNALSYM LB_DELETESTRING}
  7161. LB_SELITEMRANGEEX = $0183;
  7162. {$EXTERNALSYM LB_SELITEMRANGEEX}
  7163. LB_RESETCONTENT = $0184;
  7164. {$EXTERNALSYM LB_RESETCONTENT}
  7165. LB_SETSEL = $0185;
  7166. {$EXTERNALSYM LB_SETSEL}
  7167. LB_SETCURSEL = $0186;
  7168. {$EXTERNALSYM LB_SETCURSEL}
  7169. LB_GETSEL = $0187;
  7170. {$EXTERNALSYM LB_GETSEL}
  7171. LB_GETCURSEL = $0188;
  7172. {$EXTERNALSYM LB_GETCURSEL}
  7173. LB_GETTEXT = $0189;
  7174. {$EXTERNALSYM LB_GETTEXT}
  7175. LB_GETTEXTLEN = $018A;
  7176. {$EXTERNALSYM LB_GETTEXTLEN}
  7177. LB_GETCOUNT = $018B;
  7178. {$EXTERNALSYM LB_GETCOUNT}
  7179. LB_SELECTSTRING = $018C;
  7180. {$EXTERNALSYM LB_SELECTSTRING}
  7181. LB_DIR = $018D;
  7182. {$EXTERNALSYM LB_DIR}
  7183. LB_GETTOPINDEX = $018E;
  7184. {$EXTERNALSYM LB_GETTOPINDEX}
  7185. LB_FINDSTRING = $018F;
  7186. {$EXTERNALSYM LB_FINDSTRING}
  7187. LB_GETSELCOUNT = $0190;
  7188. {$EXTERNALSYM LB_GETSELCOUNT}
  7189. LB_GETSELITEMS = $0191;
  7190. {$EXTERNALSYM LB_GETSELITEMS}
  7191. LB_SETTABSTOPS = $0192;
  7192. {$EXTERNALSYM LB_SETTABSTOPS}
  7193. LB_GETHORIZONTALEXTENT = $0193;
  7194. {$EXTERNALSYM LB_GETHORIZONTALEXTENT}
  7195. LB_SETHORIZONTALEXTENT = $0194;
  7196. {$EXTERNALSYM LB_SETHORIZONTALEXTENT}
  7197. LB_SETCOLUMNWIDTH = $0195;
  7198. {$EXTERNALSYM LB_SETCOLUMNWIDTH}
  7199. LB_ADDFILE = $0196;
  7200. {$EXTERNALSYM LB_ADDFILE}
  7201. LB_SETTOPINDEX = $0197;
  7202. {$EXTERNALSYM LB_SETTOPINDEX}
  7203. LB_GETITEMRECT = $0198;
  7204. {$EXTERNALSYM LB_GETITEMRECT}
  7205. LB_GETITEMDATA = $0199;
  7206. {$EXTERNALSYM LB_GETITEMDATA}
  7207. LB_SETITEMDATA = $019A;
  7208. {$EXTERNALSYM LB_SETITEMDATA}
  7209. LB_SELITEMRANGE = $019B;
  7210. {$EXTERNALSYM LB_SELITEMRANGE}
  7211. LB_SETANCHORINDEX = $019C;
  7212. {$EXTERNALSYM LB_SETANCHORINDEX}
  7213. LB_GETANCHORINDEX = $019D;
  7214. {$EXTERNALSYM LB_GETANCHORINDEX}
  7215. LB_SETCARETINDEX = $019E;
  7216. {$EXTERNALSYM LB_SETCARETINDEX}
  7217. LB_GETCARETINDEX = $019F;
  7218. {$EXTERNALSYM LB_GETCARETINDEX}
  7219. LB_SETITEMHEIGHT = $01A0;
  7220. {$EXTERNALSYM LB_SETITEMHEIGHT}
  7221. LB_GETITEMHEIGHT = $01A1;
  7222. {$EXTERNALSYM LB_GETITEMHEIGHT}
  7223. LB_FINDSTRINGEXACT = $01A2;
  7224. {$EXTERNALSYM LB_FINDSTRINGEXACT}
  7225. LB_SETLOCALE = $01A5;
  7226. {$EXTERNALSYM LB_SETLOCALE}
  7227. LB_GETLOCALE = $01A6;
  7228. {$EXTERNALSYM LB_GETLOCALE}
  7229. LB_SETCOUNT = $01A7;
  7230. {$EXTERNALSYM LB_SETCOUNT}
  7231. LB_INITSTORAGE = $01A8;
  7232. {$EXTERNALSYM LB_INITSTORAGE}
  7233. LB_ITEMFROMPOINT = $01A9;
  7234. {$EXTERNALSYM LB_ITEMFROMPOINT}
  7235. LB_MULTIPLEADDSTRING = $01B1;
  7236. {$EXTERNALSYM LB_MULTIPLEADDSTRING}
  7237. LB_GETLISTBOXINFO = $01B2;
  7238. {$EXTERNALSYM LB_GETLISTBOXINFO}
  7239. {$IFDEF WINXP_UP}
  7240. LB_MSGMAX = $01B3;
  7241. {$EXTERNALSYM LB_MSGMAX}
  7242. {$ELSE}
  7243. LB_MSGMAX = $01B0;
  7244. {$EXTERNALSYM LB_MSGMAX}
  7245. {$ENDIF WINXP_UP}
  7246. //
  7247. // Listbox Styles
  7248. //
  7249. LBS_NOTIFY = $0001;
  7250. {$EXTERNALSYM LBS_NOTIFY}
  7251. LBS_SORT = $0002;
  7252. {$EXTERNALSYM LBS_SORT}
  7253. LBS_NOREDRAW = $0004;
  7254. {$EXTERNALSYM LBS_NOREDRAW}
  7255. LBS_MULTIPLESEL = $0008;
  7256. {$EXTERNALSYM LBS_MULTIPLESEL}
  7257. LBS_OWNERDRAWFIXED = $0010;
  7258. {$EXTERNALSYM LBS_OWNERDRAWFIXED}
  7259. LBS_OWNERDRAWVARIABLE = $0020;
  7260. {$EXTERNALSYM LBS_OWNERDRAWVARIABLE}
  7261. LBS_HASSTRINGS = $0040;
  7262. {$EXTERNALSYM LBS_HASSTRINGS}
  7263. LBS_USETABSTOPS = $0080;
  7264. {$EXTERNALSYM LBS_USETABSTOPS}
  7265. LBS_NOINTEGRALHEIGHT = $0100;
  7266. {$EXTERNALSYM LBS_NOINTEGRALHEIGHT}
  7267. LBS_MULTICOLUMN = $0200;
  7268. {$EXTERNALSYM LBS_MULTICOLUMN}
  7269. LBS_WANTKEYBOARDINPUT = $0400;
  7270. {$EXTERNALSYM LBS_WANTKEYBOARDINPUT}
  7271. LBS_EXTENDEDSEL = $0800;
  7272. {$EXTERNALSYM LBS_EXTENDEDSEL}
  7273. LBS_DISABLENOSCROLL = $1000;
  7274. {$EXTERNALSYM LBS_DISABLENOSCROLL}
  7275. LBS_NODATA = $2000;
  7276. {$EXTERNALSYM LBS_NODATA}
  7277. LBS_NOSEL = $4000;
  7278. {$EXTERNALSYM LBS_NOSEL}
  7279. LBS_COMBOBOX = $8000;
  7280. {$EXTERNALSYM LBS_COMBOBOX}
  7281. LBS_STANDARD = LBS_NOTIFY or LBS_SORT or WS_VSCROLL or WS_BORDER;
  7282. {$EXTERNALSYM LBS_STANDARD}
  7283. //
  7284. // Combo Box return Values
  7285. //
  7286. CB_OKAY = 0;
  7287. {$EXTERNALSYM CB_OKAY}
  7288. CB_ERR = DWORD(-1);
  7289. {$EXTERNALSYM CB_ERR}
  7290. CB_ERRSPACE = DWORD(-2);
  7291. {$EXTERNALSYM CB_ERRSPACE}
  7292. //
  7293. // Combo Box Notification Codes
  7294. //
  7295. CBN_ERRSPACE = DWORD(-1);
  7296. {$EXTERNALSYM CBN_ERRSPACE}
  7297. CBN_SELCHANGE = 1;
  7298. {$EXTERNALSYM CBN_SELCHANGE}
  7299. CBN_DBLCLK = 2;
  7300. {$EXTERNALSYM CBN_DBLCLK}
  7301. CBN_SETFOCUS = 3;
  7302. {$EXTERNALSYM CBN_SETFOCUS}
  7303. CBN_KILLFOCUS = 4;
  7304. {$EXTERNALSYM CBN_KILLFOCUS}
  7305. CBN_EDITCHANGE = 5;
  7306. {$EXTERNALSYM CBN_EDITCHANGE}
  7307. CBN_EDITUPDATE = 6;
  7308. {$EXTERNALSYM CBN_EDITUPDATE}
  7309. CBN_DROPDOWN = 7;
  7310. {$EXTERNALSYM CBN_DROPDOWN}
  7311. CBN_CLOSEUP = 8;
  7312. {$EXTERNALSYM CBN_CLOSEUP}
  7313. CBN_SELENDOK = 9;
  7314. {$EXTERNALSYM CBN_SELENDOK}
  7315. CBN_SELENDCANCEL = 10;
  7316. {$EXTERNALSYM CBN_SELENDCANCEL}
  7317. //
  7318. // Combo Box styles
  7319. //
  7320. CBS_SIMPLE = $0001;
  7321. {$EXTERNALSYM CBS_SIMPLE}
  7322. CBS_DROPDOWN = $0002;
  7323. {$EXTERNALSYM CBS_DROPDOWN}
  7324. CBS_DROPDOWNLIST = $0003;
  7325. {$EXTERNALSYM CBS_DROPDOWNLIST}
  7326. CBS_OWNERDRAWFIXED = $0010;
  7327. {$EXTERNALSYM CBS_OWNERDRAWFIXED}
  7328. CBS_OWNERDRAWVARIABLE = $0020;
  7329. {$EXTERNALSYM CBS_OWNERDRAWVARIABLE}
  7330. CBS_AUTOHSCROLL = $0040;
  7331. {$EXTERNALSYM CBS_AUTOHSCROLL}
  7332. CBS_OEMCONVERT = $0080;
  7333. {$EXTERNALSYM CBS_OEMCONVERT}
  7334. CBS_SORT = $0100;
  7335. {$EXTERNALSYM CBS_SORT}
  7336. CBS_HASSTRINGS = $0200;
  7337. {$EXTERNALSYM CBS_HASSTRINGS}
  7338. CBS_NOINTEGRALHEIGHT = $0400;
  7339. {$EXTERNALSYM CBS_NOINTEGRALHEIGHT}
  7340. CBS_DISABLENOSCROLL = $0800;
  7341. {$EXTERNALSYM CBS_DISABLENOSCROLL}
  7342. CBS_UPPERCASE = $2000;
  7343. {$EXTERNALSYM CBS_UPPERCASE}
  7344. CBS_LOWERCASE = $4000;
  7345. {$EXTERNALSYM CBS_LOWERCASE}
  7346. //
  7347. // Combo Box messages
  7348. //
  7349. CB_GETEDITSEL = $0140;
  7350. {$EXTERNALSYM CB_GETEDITSEL}
  7351. CB_LIMITTEXT = $0141;
  7352. {$EXTERNALSYM CB_LIMITTEXT}
  7353. CB_SETEDITSEL = $0142;
  7354. {$EXTERNALSYM CB_SETEDITSEL}
  7355. CB_ADDSTRING = $0143;
  7356. {$EXTERNALSYM CB_ADDSTRING}
  7357. CB_DELETESTRING = $0144;
  7358. {$EXTERNALSYM CB_DELETESTRING}
  7359. CB_DIR = $0145;
  7360. {$EXTERNALSYM CB_DIR}
  7361. CB_GETCOUNT = $0146;
  7362. {$EXTERNALSYM CB_GETCOUNT}
  7363. CB_GETCURSEL = $0147;
  7364. {$EXTERNALSYM CB_GETCURSEL}
  7365. CB_GETLBTEXT = $0148;
  7366. {$EXTERNALSYM CB_GETLBTEXT}
  7367. CB_GETLBTEXTLEN = $0149;
  7368. {$EXTERNALSYM CB_GETLBTEXTLEN}
  7369. CB_INSERTSTRING = $014A;
  7370. {$EXTERNALSYM CB_INSERTSTRING}
  7371. CB_RESETCONTENT = $014B;
  7372. {$EXTERNALSYM CB_RESETCONTENT}
  7373. CB_FINDSTRING = $014C;
  7374. {$EXTERNALSYM CB_FINDSTRING}
  7375. CB_SELECTSTRING = $014D;
  7376. {$EXTERNALSYM CB_SELECTSTRING}
  7377. CB_SETCURSEL = $014E;
  7378. {$EXTERNALSYM CB_SETCURSEL}
  7379. CB_SHOWDROPDOWN = $014F;
  7380. {$EXTERNALSYM CB_SHOWDROPDOWN}
  7381. CB_GETITEMDATA = $0150;
  7382. {$EXTERNALSYM CB_GETITEMDATA}
  7383. CB_SETITEMDATA = $0151;
  7384. {$EXTERNALSYM CB_SETITEMDATA}
  7385. CB_GETDROPPEDCONTROLRECT = $0152;
  7386. {$EXTERNALSYM CB_GETDROPPEDCONTROLRECT}
  7387. CB_SETITEMHEIGHT = $0153;
  7388. {$EXTERNALSYM CB_SETITEMHEIGHT}
  7389. CB_GETITEMHEIGHT = $0154;
  7390. {$EXTERNALSYM CB_GETITEMHEIGHT}
  7391. CB_SETEXTENDEDUI = $0155;
  7392. {$EXTERNALSYM CB_SETEXTENDEDUI}
  7393. CB_GETEXTENDEDUI = $0156;
  7394. {$EXTERNALSYM CB_GETEXTENDEDUI}
  7395. CB_GETDROPPEDSTATE = $0157;
  7396. {$EXTERNALSYM CB_GETDROPPEDSTATE}
  7397. CB_FINDSTRINGEXACT = $0158;
  7398. {$EXTERNALSYM CB_FINDSTRINGEXACT}
  7399. CB_SETLOCALE = $0159;
  7400. {$EXTERNALSYM CB_SETLOCALE}
  7401. CB_GETLOCALE = $015A;
  7402. {$EXTERNALSYM CB_GETLOCALE}
  7403. CB_GETTOPINDEX = $015b;
  7404. {$EXTERNALSYM CB_GETTOPINDEX}
  7405. CB_SETTOPINDEX = $015c;
  7406. {$EXTERNALSYM CB_SETTOPINDEX}
  7407. CB_GETHORIZONTALEXTENT = $015d;
  7408. {$EXTERNALSYM CB_GETHORIZONTALEXTENT}
  7409. CB_SETHORIZONTALEXTENT = $015e;
  7410. {$EXTERNALSYM CB_SETHORIZONTALEXTENT}
  7411. CB_GETDROPPEDWIDTH = $015f;
  7412. {$EXTERNALSYM CB_GETDROPPEDWIDTH}
  7413. CB_SETDROPPEDWIDTH = $0160;
  7414. {$EXTERNALSYM CB_SETDROPPEDWIDTH}
  7415. CB_INITSTORAGE = $0161;
  7416. {$EXTERNALSYM CB_INITSTORAGE}
  7417. CB_MULTIPLEADDSTRING = $0163;
  7418. {$EXTERNALSYM CB_MULTIPLEADDSTRING}
  7419. CB_GETCOMBOBOXINFO = $0164;
  7420. {$EXTERNALSYM CB_GETCOMBOBOXINFO}
  7421. {$IFDEF WINXP_UP}
  7422. CB_MSGMAX = $0165;
  7423. {$EXTERNALSYM CB_MSGMAX}
  7424. {$ELSE}
  7425. CB_MSGMAX = $0162;
  7426. {$EXTERNALSYM CB_MSGMAX}
  7427. {$ENDIF WINXP_UP}
  7428. //
  7429. // Scroll Bar Styles
  7430. //
  7431. SBS_HORZ = $0000;
  7432. {$EXTERNALSYM SBS_HORZ}
  7433. SBS_VERT = $0001;
  7434. {$EXTERNALSYM SBS_VERT}
  7435. SBS_TOPALIGN = $0002;
  7436. {$EXTERNALSYM SBS_TOPALIGN}
  7437. SBS_LEFTALIGN = $0002;
  7438. {$EXTERNALSYM SBS_LEFTALIGN}
  7439. SBS_BOTTOMALIGN = $0004;
  7440. {$EXTERNALSYM SBS_BOTTOMALIGN}
  7441. SBS_RIGHTALIGN = $0004;
  7442. {$EXTERNALSYM SBS_RIGHTALIGN}
  7443. SBS_SIZEBOXTOPLEFTALIGN = $0002;
  7444. {$EXTERNALSYM SBS_SIZEBOXTOPLEFTALIGN}
  7445. SBS_SIZEBOXBOTTOMRIGHTALIGN = $0004;
  7446. {$EXTERNALSYM SBS_SIZEBOXBOTTOMRIGHTALIGN}
  7447. SBS_SIZEBOX = $0008;
  7448. {$EXTERNALSYM SBS_SIZEBOX}
  7449. SBS_SIZEGRIP = $0010;
  7450. {$EXTERNALSYM SBS_SIZEGRIP}
  7451. //
  7452. // Scroll bar messages
  7453. //
  7454. SBM_SETPOS = $00E0; // not in win3.1
  7455. {$EXTERNALSYM SBM_SETPOS}
  7456. SBM_GETPOS = $00E1; // not in win3.1
  7457. {$EXTERNALSYM SBM_GETPOS}
  7458. SBM_SETRANGE = $00E2; // not in win3.1
  7459. {$EXTERNALSYM SBM_SETRANGE}
  7460. SBM_SETRANGEREDRAW = $00E6; // not in win3.1
  7461. {$EXTERNALSYM SBM_SETRANGEREDRAW}
  7462. SBM_GETRANGE = $00E3; // not in win3.1
  7463. {$EXTERNALSYM SBM_GETRANGE}
  7464. SBM_ENABLE_ARROWS = $00E4; // not in win3.1
  7465. {$EXTERNALSYM SBM_ENABLE_ARROWS}
  7466. SBM_SETSCROLLINFO = $00E9;
  7467. {$EXTERNALSYM SBM_SETSCROLLINFO}
  7468. SBM_GETSCROLLINFO = $00EA;
  7469. {$EXTERNALSYM SBM_GETSCROLLINFO}
  7470. SBM_GETSCROLLBARINFO = $00EB;
  7471. {$EXTERNALSYM SBM_GETSCROLLBARINFO}
  7472. SIF_RANGE = $0001;
  7473. {$EXTERNALSYM SIF_RANGE}
  7474. SIF_PAGE = $0002;
  7475. {$EXTERNALSYM SIF_PAGE}
  7476. SIF_POS = $0004;
  7477. {$EXTERNALSYM SIF_POS}
  7478. SIF_DISABLENOSCROLL = $0008;
  7479. {$EXTERNALSYM SIF_DISABLENOSCROLL}
  7480. SIF_TRACKPOS = $0010;
  7481. {$EXTERNALSYM SIF_TRACKPOS}
  7482. SIF_ALL = SIF_RANGE or SIF_PAGE or SIF_POS or SIF_TRACKPOS;
  7483. {$EXTERNALSYM SIF_ALL}
  7484. type
  7485. LPSCROLLINFO = ^SCROLLINFO;
  7486. {$EXTERNALSYM LPSCROLLINFO}
  7487. tagSCROLLINFO = record
  7488. cbSize: UINT;
  7489. fMask: UINT;
  7490. nMin: Integer;
  7491. nMax: Integer;
  7492. nPage: UINT;
  7493. nPos: Integer;
  7494. nTrackPos: Integer;
  7495. end;
  7496. {$EXTERNALSYM tagSCROLLINFO}
  7497. SCROLLINFO = tagSCROLLINFO;
  7498. {$EXTERNALSYM SCROLLINFO}
  7499. TScrollInfo = SCROLLINFO;
  7500. PScrollInfo = LPSCROLLINFO;
  7501. function SetScrollInfo(hwnd: HWND; fnBar: Integer; const lpsi: SCROLLINFO;
  7502. fRedraw: BOOL): Integer; stdcall;
  7503. {$EXTERNALSYM SetScrollInfo}
  7504. function GetScrollInfo(hwnd: HWND; fnBar: Integer; var lpsi: SCROLLINFO): BOOL; stdcall;
  7505. {$EXTERNALSYM GetScrollInfo}
  7506. //
  7507. // MDI client style bits
  7508. //
  7509. const
  7510. MDIS_ALLCHILDSTYLES = $0001;
  7511. {$EXTERNALSYM MDIS_ALLCHILDSTYLES}
  7512. //
  7513. // wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
  7514. //
  7515. const
  7516. MDITILE_VERTICAL = $0000; // not in win3.1
  7517. {$EXTERNALSYM MDITILE_VERTICAL}
  7518. MDITILE_HORIZONTAL = $0001; // not in win3.1
  7519. {$EXTERNALSYM MDITILE_HORIZONTAL}
  7520. MDITILE_SKIPDISABLED = $0002; // not in win3.1
  7521. {$EXTERNALSYM MDITILE_SKIPDISABLED}
  7522. MDITILE_ZORDER = $0004;
  7523. {$EXTERNALSYM MDITILE_ZORDER}
  7524. type
  7525. LPMDICREATESTRUCTA = ^MDICREATESTRUCTA;
  7526. {$EXTERNALSYM LPMDICREATESTRUCTA}
  7527. tagMDICREATESTRUCTA = record
  7528. szClass: LPCSTR;
  7529. szTitle: LPCSTR;
  7530. hOwner: HANDLE;
  7531. x: Integer;
  7532. y: Integer;
  7533. cx: Integer;
  7534. cy: Integer;
  7535. style: DWORD;
  7536. lParam: LPARAM; // app-defined stuff//
  7537. end;
  7538. {$EXTERNALSYM tagMDICREATESTRUCTA}
  7539. MDICREATESTRUCTA = tagMDICREATESTRUCTA;
  7540. {$EXTERNALSYM MDICREATESTRUCTA}
  7541. TMdiCreateStructA = MDICREATESTRUCTA;
  7542. PMdiCreateStructA = LPMDICREATESTRUCTA;
  7543. LPMDICREATESTRUCTW = ^MDICREATESTRUCTW;
  7544. {$EXTERNALSYM LPMDICREATESTRUCTW}
  7545. tagMDICREATESTRUCTW = record
  7546. szClass: LPCWSTR;
  7547. szTitle: LPCWSTR;
  7548. hOwner: HANDLE;
  7549. x: Integer;
  7550. y: Integer;
  7551. cx: Integer;
  7552. cy: Integer;
  7553. style: DWORD;
  7554. lParam: LPARAM; // app-defined stuff//
  7555. end;
  7556. {$EXTERNALSYM tagMDICREATESTRUCTW}
  7557. MDICREATESTRUCTW = tagMDICREATESTRUCTW;
  7558. {$EXTERNALSYM MDICREATESTRUCTW}
  7559. TMdiCreateStructW = MDICREATESTRUCTW;
  7560. PMdiCreateStructW = LPMDICREATESTRUCTW;
  7561. {$IFDEF UNICODE}
  7562. MDICREATESTRUCT = MDICREATESTRUCTW;
  7563. {$EXTERNALSYM MDICREATESTRUCT}
  7564. LPMDICREATESTRUCT = LPMDICREATESTRUCTW;
  7565. {$EXTERNALSYM LPMDICREATESTRUCT}
  7566. TMdiCreateStruct = TMdiCreateStructW;
  7567. PMdiCreateStruct = PMdiCreateStructW;
  7568. {$ELSE}
  7569. MDICREATESTRUCT = MDICREATESTRUCTA;
  7570. {$EXTERNALSYM MDICREATESTRUCT}
  7571. LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
  7572. {$EXTERNALSYM LPMDICREATESTRUCT}
  7573. TMdiCreateStruct = TMdiCreateStructA;
  7574. PMdiCreateStruct = PMdiCreateStructA;
  7575. {$ENDIF UNICODE}
  7576. LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  7577. {$EXTERNALSYM LPCLIENTCREATESTRUCT}
  7578. tagCLIENTCREATESTRUCT = record
  7579. hWindowMenu: HANDLE;
  7580. idFirstChild: UINT;
  7581. end;
  7582. {$EXTERNALSYM tagCLIENTCREATESTRUCT}
  7583. CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT;
  7584. {$EXTERNALSYM CLIENTCREATESTRUCT}
  7585. TClientCreateStruct = CLIENTCREATESTRUCT;
  7586. PClientCreateStruct = LPCLIENTCREATESTRUCT;
  7587. function DefFrameProcA(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7588. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7589. {$EXTERNALSYM DefFrameProcA}
  7590. function DefFrameProcW(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7591. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7592. {$EXTERNALSYM DefFrameProcW}
  7593. function DefFrameProc(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7594. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7595. {$EXTERNALSYM DefFrameProc}
  7596. function DefMDIChildProcA(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7597. {$EXTERNALSYM DefMDIChildProcA}
  7598. function DefMDIChildProcW(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7599. {$EXTERNALSYM DefMDIChildProcW}
  7600. function DefMDIChildProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7601. {$EXTERNALSYM DefMDIChildProc}
  7602. function TranslateMDISysAccel(hWndClient: HWND; const lpMsg: MSG): BOOL; stdcall;
  7603. {$EXTERNALSYM TranslateMDISysAccel}
  7604. function ArrangeIconicWindows(hWnd: HWND): UINT; stdcall;
  7605. {$EXTERNALSYM ArrangeIconicWindows}
  7606. function CreateMDIWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  7607. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINSTANCE;
  7608. lParam: LPARAM): HWND; stdcall;
  7609. {$EXTERNALSYM CreateMDIWindowA}
  7610. function CreateMDIWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  7611. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINSTANCE;
  7612. lParam: LPARAM): HWND; stdcall;
  7613. {$EXTERNALSYM CreateMDIWindowW}
  7614. function CreateMDIWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  7615. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINSTANCE;
  7616. lParam: LPARAM): HWND; stdcall;
  7617. {$EXTERNALSYM CreateMDIWindow}
  7618. function TileWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT; cKids: UINT;
  7619. hwnd: HWND; lpKids: LPHWND): WORD; stdcall;
  7620. {$EXTERNALSYM TileWindows}
  7621. function CascadeWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT;
  7622. cKids: UINT; lpKids: LPHWND): WORD; stdcall;
  7623. {$EXTERNALSYM CascadeWindows}
  7624. //***** Help support ********************************************************/
  7625. type
  7626. HELPPOLY = DWORD;
  7627. {$EXTERNALSYM HELPPOLY}
  7628. LPMULTIKEYHELPA = ^MULTIKEYHELPA;
  7629. {$EXTERNALSYM LPMULTIKEYHELPA}
  7630. tagMULTIKEYHELPA = record
  7631. mkSize: DWORD;
  7632. mkKeylist: CHAR;
  7633. szKeyphrase: array [0..0] of CHAR;
  7634. end;
  7635. {$EXTERNALSYM tagMULTIKEYHELPA}
  7636. MULTIKEYHELPA = tagMULTIKEYHELPA;
  7637. {$EXTERNALSYM MULTIKEYHELPA}
  7638. TMultiKeyHelpA = MULTIKEYHELPA;
  7639. PMultiKeyHelpA = LPMULTIKEYHELPA;
  7640. LPMULTIKEYHELPW = ^MULTIKEYHELPW;
  7641. {$EXTERNALSYM LPMULTIKEYHELPW}
  7642. tagMULTIKEYHELPW = record
  7643. mkSize: DWORD;
  7644. mkKeylist: WCHAR;
  7645. szKeyphrase: array [0..0] of WCHAR;
  7646. end;
  7647. {$EXTERNALSYM tagMULTIKEYHELPW}
  7648. MULTIKEYHELPW = tagMULTIKEYHELPW;
  7649. {$EXTERNALSYM MULTIKEYHELPW}
  7650. TMultiKeyHelpW = MULTIKEYHELPW;
  7651. PMultiKeyHelpW = LPMULTIKEYHELPW;
  7652. {$IFDEF UNICODE}
  7653. MULTIKEYHELP = MULTIKEYHELPW;
  7654. {$EXTERNALSYM MULTIKEYHELP}
  7655. LPMULTIKEYHELP = LPMULTIKEYHELPW;
  7656. {$EXTERNALSYM LPMULTIKEYHELP}
  7657. TMultiKeyHelp = TMultiKeyHelpW;
  7658. PMultiKeyHelp = PMultiKeyHelpW;
  7659. {$ELSE}
  7660. MULTIKEYHELP = MULTIKEYHELPA;
  7661. {$EXTERNALSYM MULTIKEYHELP}
  7662. LPMULTIKEYHELP = LPMULTIKEYHELPA;
  7663. {$EXTERNALSYM LPMULTIKEYHELP}
  7664. TMultiKeyHelp = TMultiKeyHelpA;
  7665. PMultiKeyHelp = PMultiKeyHelpA;
  7666. {$ENDIF UNICODE}
  7667. LPHELPWININFOA = ^HELPWININFOA;
  7668. {$EXTERNALSYM LPHELPWININFOA}
  7669. tagHELPWININFOA = record
  7670. wStructSize: Integer;
  7671. x: Integer;
  7672. y: Integer;
  7673. dx: Integer;
  7674. dy: Integer;
  7675. wMax: Integer;
  7676. rgchMember: array [0..1] of CHAR;
  7677. end;
  7678. {$EXTERNALSYM tagHELPWININFOA}
  7679. HELPWININFOA = tagHELPWININFOA;
  7680. {$EXTERNALSYM HELPWININFOA}
  7681. THelpWinInfoA = HELPWININFOA;
  7682. PHelpWinInfoA = LPHELPWININFOA;
  7683. LPHELPWININFOW = ^HELPWININFOW;
  7684. {$EXTERNALSYM LPHELPWININFOW}
  7685. tagHELPWININFOW = record
  7686. wStructSize: Integer;
  7687. x: Integer;
  7688. y: Integer;
  7689. dx: Integer;
  7690. dy: Integer;
  7691. wMax: Integer;
  7692. rgchMember: array [0..1] of WCHAR;
  7693. end;
  7694. {$EXTERNALSYM tagHELPWININFOW}
  7695. HELPWININFOW = tagHELPWININFOW;
  7696. {$EXTERNALSYM HELPWININFOW}
  7697. THelpWinInfoW = HELPWININFOW;
  7698. PHelpWinInfoW = LPHELPWININFOW;
  7699. {$IFDEF UNICODE}
  7700. HELPWININFO = HELPWININFOW;
  7701. {$EXTERNALSYM HELPWININFO}
  7702. LPHELPWININFO = LPHELPWININFOW;
  7703. {$EXTERNALSYM LPHELPWININFO}
  7704. THelpWinInfo = THelpWinInfoW;
  7705. PHelpWinInfo = PHelpWinInfoW;
  7706. {$ELSE}
  7707. HELPWININFO = HELPWININFOA;
  7708. {$EXTERNALSYM HELPWININFO}
  7709. LPHELPWININFO = LPHELPWININFOA;
  7710. {$EXTERNALSYM LPHELPWININFO}
  7711. THelpWinInfo = THelpWinInfoA;
  7712. PHelpWinInfo = PHelpWinInfoA;
  7713. {$ENDIF UNICODE}
  7714. //
  7715. // Commands to pass to WinHelp()
  7716. //
  7717. const
  7718. HELP_CONTEXT = $0001; // Display topic in ulTopic
  7719. {$EXTERNALSYM HELP_CONTEXT}
  7720. HELP_QUIT = $0002; // Terminate help
  7721. {$EXTERNALSYM HELP_QUIT}
  7722. HELP_INDEX = $0003; // Display index
  7723. {$EXTERNALSYM HELP_INDEX}
  7724. HELP_CONTENTS = $0003;
  7725. {$EXTERNALSYM HELP_CONTENTS}
  7726. HELP_HELPONHELP = $0004; // Display help on using help
  7727. {$EXTERNALSYM HELP_HELPONHELP}
  7728. HELP_SETINDEX = $0005; // Set current Index for multi index help
  7729. {$EXTERNALSYM HELP_SETINDEX}
  7730. HELP_SETCONTENTS = $0005;
  7731. {$EXTERNALSYM HELP_SETCONTENTS}
  7732. HELP_CONTEXTPOPUP = $0008;
  7733. {$EXTERNALSYM HELP_CONTEXTPOPUP}
  7734. HELP_FORCEFILE = $0009;
  7735. {$EXTERNALSYM HELP_FORCEFILE}
  7736. HELP_KEY = $0101; // Display topic for keyword in offabData
  7737. {$EXTERNALSYM HELP_KEY}
  7738. HELP_COMMAND = $0102;
  7739. {$EXTERNALSYM HELP_COMMAND}
  7740. HELP_PARTIALKEY = $0105;
  7741. {$EXTERNALSYM HELP_PARTIALKEY}
  7742. HELP_MULTIKEY = $0201;
  7743. {$EXTERNALSYM HELP_MULTIKEY}
  7744. HELP_SETWINPOS = $0203;
  7745. {$EXTERNALSYM HELP_SETWINPOS}
  7746. HELP_CONTEXTMENU = $000a;
  7747. {$EXTERNALSYM HELP_CONTEXTMENU}
  7748. HELP_FINDER = $000b;
  7749. {$EXTERNALSYM HELP_FINDER}
  7750. HELP_WM_HELP = $000c;
  7751. {$EXTERNALSYM HELP_WM_HELP}
  7752. HELP_SETPOPUP_POS = $000d;
  7753. {$EXTERNALSYM HELP_SETPOPUP_POS}
  7754. HELP_TCARD = $8000;
  7755. {$EXTERNALSYM HELP_TCARD}
  7756. HELP_TCARD_DATA = $0010;
  7757. {$EXTERNALSYM HELP_TCARD_DATA}
  7758. HELP_TCARD_OTHER_CALLER = $0011;
  7759. {$EXTERNALSYM HELP_TCARD_OTHER_CALLER}
  7760. // These are in winhelp.h in Win95.
  7761. IDH_NO_HELP = 28440;
  7762. {$EXTERNALSYM IDH_NO_HELP}
  7763. IDH_MISSING_CONTEXT = 28441; // Control doesn't have matching help context
  7764. {$EXTERNALSYM IDH_MISSING_CONTEXT}
  7765. IDH_GENERIC_HELP_BUTTON = 28442; // Property sheet help button
  7766. {$EXTERNALSYM IDH_GENERIC_HELP_BUTTON}
  7767. IDH_OK = 28443;
  7768. {$EXTERNALSYM IDH_OK}
  7769. IDH_CANCEL = 28444;
  7770. {$EXTERNALSYM IDH_CANCEL}
  7771. IDH_HELP = 28445;
  7772. {$EXTERNALSYM IDH_HELP}
  7773. function WinHelpA(hWndMain: HWND; lpszHelp: LPCSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7774. {$EXTERNALSYM WinHelpA}
  7775. function WinHelpW(hWndMain: HWND; lpszHelp: LPCWSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7776. {$EXTERNALSYM WinHelpW}
  7777. function WinHelp(hWndMain: HWND; lpszHelp: LPCTSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7778. {$EXTERNALSYM WinHelp}
  7779. const
  7780. GR_GDIOBJECTS = 0; // Count of GDI objects
  7781. {$EXTERNALSYM GR_GDIOBJECTS}
  7782. GR_USEROBJECTS = 1; // Count of USER objects
  7783. {$EXTERNALSYM GR_USEROBJECTS}
  7784. function GetGuiResources(hProcess: HANDLE; uiFlags: DWORD): DWORD; stdcall;
  7785. {$EXTERNALSYM GetGuiResources}
  7786. //
  7787. // Parameter for SystemParametersInfo()
  7788. //
  7789. const
  7790. SPI_GETBEEP = 1;
  7791. {$EXTERNALSYM SPI_GETBEEP}
  7792. SPI_SETBEEP = 2;
  7793. {$EXTERNALSYM SPI_SETBEEP}
  7794. SPI_GETMOUSE = 3;
  7795. {$EXTERNALSYM SPI_GETMOUSE}
  7796. SPI_SETMOUSE = 4;
  7797. {$EXTERNALSYM SPI_SETMOUSE}
  7798. SPI_GETBORDER = 5;
  7799. {$EXTERNALSYM SPI_GETBORDER}
  7800. SPI_SETBORDER = 6;
  7801. {$EXTERNALSYM SPI_SETBORDER}
  7802. SPI_GETKEYBOARDSPEED = 10;
  7803. {$EXTERNALSYM SPI_GETKEYBOARDSPEED}
  7804. SPI_SETKEYBOARDSPEED = 11;
  7805. {$EXTERNALSYM SPI_SETKEYBOARDSPEED}
  7806. SPI_LANGDRIVER = 12;
  7807. {$EXTERNALSYM SPI_LANGDRIVER}
  7808. SPI_ICONHORIZONTALSPACING = 13;
  7809. {$EXTERNALSYM SPI_ICONHORIZONTALSPACING}
  7810. SPI_GETSCREENSAVETIMEOUT = 14;
  7811. {$EXTERNALSYM SPI_GETSCREENSAVETIMEOUT}
  7812. SPI_SETSCREENSAVETIMEOUT = 15;
  7813. {$EXTERNALSYM SPI_SETSCREENSAVETIMEOUT}
  7814. SPI_GETSCREENSAVEACTIVE = 16;
  7815. {$EXTERNALSYM SPI_GETSCREENSAVEACTIVE}
  7816. SPI_SETSCREENSAVEACTIVE = 17;
  7817. {$EXTERNALSYM SPI_SETSCREENSAVEACTIVE}
  7818. SPI_GETGRIDGRANULARITY = 18;
  7819. {$EXTERNALSYM SPI_GETGRIDGRANULARITY}
  7820. SPI_SETGRIDGRANULARITY = 19;
  7821. {$EXTERNALSYM SPI_SETGRIDGRANULARITY}
  7822. SPI_SETDESKWALLPAPER = 20;
  7823. {$EXTERNALSYM SPI_SETDESKWALLPAPER}
  7824. SPI_SETDESKPATTERN = 21;
  7825. {$EXTERNALSYM SPI_SETDESKPATTERN}
  7826. SPI_GETKEYBOARDDELAY = 22;
  7827. {$EXTERNALSYM SPI_GETKEYBOARDDELAY}
  7828. SPI_SETKEYBOARDDELAY = 23;
  7829. {$EXTERNALSYM SPI_SETKEYBOARDDELAY}
  7830. SPI_ICONVERTICALSPACING = 24;
  7831. {$EXTERNALSYM SPI_ICONVERTICALSPACING}
  7832. SPI_GETICONTITLEWRAP = 25;
  7833. {$EXTERNALSYM SPI_GETICONTITLEWRAP}
  7834. SPI_SETICONTITLEWRAP = 26;
  7835. {$EXTERNALSYM SPI_SETICONTITLEWRAP}
  7836. SPI_GETMENUDROPALIGNMENT = 27;
  7837. {$EXTERNALSYM SPI_GETMENUDROPALIGNMENT}
  7838. SPI_SETMENUDROPALIGNMENT = 28;
  7839. {$EXTERNALSYM SPI_SETMENUDROPALIGNMENT}
  7840. SPI_SETDOUBLECLKWIDTH = 29;
  7841. {$EXTERNALSYM SPI_SETDOUBLECLKWIDTH}
  7842. SPI_SETDOUBLECLKHEIGHT = 30;
  7843. {$EXTERNALSYM SPI_SETDOUBLECLKHEIGHT}
  7844. SPI_GETICONTITLELOGFONT = 31;
  7845. {$EXTERNALSYM SPI_GETICONTITLELOGFONT}
  7846. SPI_SETDOUBLECLICKTIME = 32;
  7847. {$EXTERNALSYM SPI_SETDOUBLECLICKTIME}
  7848. SPI_SETMOUSEBUTTONSWAP = 33;
  7849. {$EXTERNALSYM SPI_SETMOUSEBUTTONSWAP}
  7850. SPI_SETICONTITLELOGFONT = 34;
  7851. {$EXTERNALSYM SPI_SETICONTITLELOGFONT}
  7852. SPI_GETFASTTASKSWITCH = 35;
  7853. {$EXTERNALSYM SPI_GETFASTTASKSWITCH}
  7854. SPI_SETFASTTASKSWITCH = 36;
  7855. {$EXTERNALSYM SPI_SETFASTTASKSWITCH}
  7856. SPI_SETDRAGFULLWINDOWS = 37;
  7857. {$EXTERNALSYM SPI_SETDRAGFULLWINDOWS}
  7858. SPI_GETDRAGFULLWINDOWS = 38;
  7859. {$EXTERNALSYM SPI_GETDRAGFULLWINDOWS}
  7860. SPI_GETNONCLIENTMETRICS = 41;
  7861. {$EXTERNALSYM SPI_GETNONCLIENTMETRICS}
  7862. SPI_SETNONCLIENTMETRICS = 42;
  7863. {$EXTERNALSYM SPI_SETNONCLIENTMETRICS}
  7864. SPI_GETMINIMIZEDMETRICS = 43;
  7865. {$EXTERNALSYM SPI_GETMINIMIZEDMETRICS}
  7866. SPI_SETMINIMIZEDMETRICS = 44;
  7867. {$EXTERNALSYM SPI_SETMINIMIZEDMETRICS}
  7868. SPI_GETICONMETRICS = 45;
  7869. {$EXTERNALSYM SPI_GETICONMETRICS}
  7870. SPI_SETICONMETRICS = 46;
  7871. {$EXTERNALSYM SPI_SETICONMETRICS}
  7872. SPI_SETWORKAREA = 47;
  7873. {$EXTERNALSYM SPI_SETWORKAREA}
  7874. SPI_GETWORKAREA = 48;
  7875. {$EXTERNALSYM SPI_GETWORKAREA}
  7876. SPI_SETPENWINDOWS = 49;
  7877. {$EXTERNALSYM SPI_SETPENWINDOWS}
  7878. SPI_GETHIGHCONTRAST = 66;
  7879. {$EXTERNALSYM SPI_GETHIGHCONTRAST}
  7880. SPI_SETHIGHCONTRAST = 67;
  7881. {$EXTERNALSYM SPI_SETHIGHCONTRAST}
  7882. SPI_GETKEYBOARDPREF = 68;
  7883. {$EXTERNALSYM SPI_GETKEYBOARDPREF}
  7884. SPI_SETKEYBOARDPREF = 69;
  7885. {$EXTERNALSYM SPI_SETKEYBOARDPREF}
  7886. SPI_GETSCREENREADER = 70;
  7887. {$EXTERNALSYM SPI_GETSCREENREADER}
  7888. SPI_SETSCREENREADER = 71;
  7889. {$EXTERNALSYM SPI_SETSCREENREADER}
  7890. SPI_GETANIMATION = 72;
  7891. {$EXTERNALSYM SPI_GETANIMATION}
  7892. SPI_SETANIMATION = 73;
  7893. {$EXTERNALSYM SPI_SETANIMATION}
  7894. SPI_GETFONTSMOOTHING = 74;
  7895. {$EXTERNALSYM SPI_GETFONTSMOOTHING}
  7896. SPI_SETFONTSMOOTHING = 75;
  7897. {$EXTERNALSYM SPI_SETFONTSMOOTHING}
  7898. SPI_SETDRAGWIDTH = 76;
  7899. {$EXTERNALSYM SPI_SETDRAGWIDTH}
  7900. SPI_SETDRAGHEIGHT = 77;
  7901. {$EXTERNALSYM SPI_SETDRAGHEIGHT}
  7902. SPI_SETHANDHELD = 78;
  7903. {$EXTERNALSYM SPI_SETHANDHELD}
  7904. SPI_GETLOWPOWERTIMEOUT = 79;
  7905. {$EXTERNALSYM SPI_GETLOWPOWERTIMEOUT}
  7906. SPI_GETPOWEROFFTIMEOUT = 80;
  7907. {$EXTERNALSYM SPI_GETPOWEROFFTIMEOUT}
  7908. SPI_SETLOWPOWERTIMEOUT = 81;
  7909. {$EXTERNALSYM SPI_SETLOWPOWERTIMEOUT}
  7910. SPI_SETPOWEROFFTIMEOUT = 82;
  7911. {$EXTERNALSYM SPI_SETPOWEROFFTIMEOUT}
  7912. SPI_GETLOWPOWERACTIVE = 83;
  7913. {$EXTERNALSYM SPI_GETLOWPOWERACTIVE}
  7914. SPI_GETPOWEROFFACTIVE = 84;
  7915. {$EXTERNALSYM SPI_GETPOWEROFFACTIVE}
  7916. SPI_SETLOWPOWERACTIVE = 85;
  7917. {$EXTERNALSYM SPI_SETLOWPOWERACTIVE}
  7918. SPI_SETPOWEROFFACTIVE = 86;
  7919. {$EXTERNALSYM SPI_SETPOWEROFFACTIVE}
  7920. SPI_SETCURSORS = 87;
  7921. {$EXTERNALSYM SPI_SETCURSORS}
  7922. SPI_SETICONS = 88;
  7923. {$EXTERNALSYM SPI_SETICONS}
  7924. SPI_GETDEFAULTINPUTLANG = 89;
  7925. {$EXTERNALSYM SPI_GETDEFAULTINPUTLANG}
  7926. SPI_SETDEFAULTINPUTLANG = 90;
  7927. {$EXTERNALSYM SPI_SETDEFAULTINPUTLANG}
  7928. SPI_SETLANGTOGGLE = 91;
  7929. {$EXTERNALSYM SPI_SETLANGTOGGLE}
  7930. SPI_GETWINDOWSEXTENSION = 92;
  7931. {$EXTERNALSYM SPI_GETWINDOWSEXTENSION}
  7932. SPI_SETMOUSETRAILS = 93;
  7933. {$EXTERNALSYM SPI_SETMOUSETRAILS}
  7934. SPI_GETMOUSETRAILS = 94;
  7935. {$EXTERNALSYM SPI_GETMOUSETRAILS}
  7936. SPI_SETSCREENSAVERRUNNING = 97;
  7937. {$EXTERNALSYM SPI_SETSCREENSAVERRUNNING}
  7938. SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING;
  7939. {$EXTERNALSYM SPI_SCREENSAVERRUNNING}
  7940. SPI_GETFILTERKEYS = 50;
  7941. {$EXTERNALSYM SPI_GETFILTERKEYS}
  7942. SPI_SETFILTERKEYS = 51;
  7943. {$EXTERNALSYM SPI_SETFILTERKEYS}
  7944. SPI_GETTOGGLEKEYS = 52;
  7945. {$EXTERNALSYM SPI_GETTOGGLEKEYS}
  7946. SPI_SETTOGGLEKEYS = 53;
  7947. {$EXTERNALSYM SPI_SETTOGGLEKEYS}
  7948. SPI_GETMOUSEKEYS = 54;
  7949. {$EXTERNALSYM SPI_GETMOUSEKEYS}
  7950. SPI_SETMOUSEKEYS = 55;
  7951. {$EXTERNALSYM SPI_SETMOUSEKEYS}
  7952. SPI_GETSHOWSOUNDS = 56;
  7953. {$EXTERNALSYM SPI_GETSHOWSOUNDS}
  7954. SPI_SETSHOWSOUNDS = 57;
  7955. {$EXTERNALSYM SPI_SETSHOWSOUNDS}
  7956. SPI_GETSTICKYKEYS = 58;
  7957. {$EXTERNALSYM SPI_GETSTICKYKEYS}
  7958. SPI_SETSTICKYKEYS = 59;
  7959. {$EXTERNALSYM SPI_SETSTICKYKEYS}
  7960. SPI_GETACCESSTIMEOUT = 60;
  7961. {$EXTERNALSYM SPI_GETACCESSTIMEOUT}
  7962. SPI_SETACCESSTIMEOUT = 61;
  7963. {$EXTERNALSYM SPI_SETACCESSTIMEOUT}
  7964. SPI_GETSERIALKEYS = 62;
  7965. {$EXTERNALSYM SPI_GETSERIALKEYS}
  7966. SPI_SETSERIALKEYS = 63;
  7967. {$EXTERNALSYM SPI_SETSERIALKEYS}
  7968. SPI_GETSOUNDSENTRY = 64;
  7969. {$EXTERNALSYM SPI_GETSOUNDSENTRY}
  7970. SPI_SETSOUNDSENTRY = 65;
  7971. {$EXTERNALSYM SPI_SETSOUNDSENTRY}
  7972. SPI_GETSNAPTODEFBUTTON = 95;
  7973. {$EXTERNALSYM SPI_GETSNAPTODEFBUTTON}
  7974. SPI_SETSNAPTODEFBUTTON = 96;
  7975. {$EXTERNALSYM SPI_SETSNAPTODEFBUTTON}
  7976. SPI_GETMOUSEHOVERWIDTH = 98;
  7977. {$EXTERNALSYM SPI_GETMOUSEHOVERWIDTH}
  7978. SPI_SETMOUSEHOVERWIDTH = 99;
  7979. {$EXTERNALSYM SPI_SETMOUSEHOVERWIDTH}
  7980. SPI_GETMOUSEHOVERHEIGHT = 100;
  7981. {$EXTERNALSYM SPI_GETMOUSEHOVERHEIGHT}
  7982. SPI_SETMOUSEHOVERHEIGHT = 101;
  7983. {$EXTERNALSYM SPI_SETMOUSEHOVERHEIGHT}
  7984. SPI_GETMOUSEHOVERTIME = 102;
  7985. {$EXTERNALSYM SPI_GETMOUSEHOVERTIME}
  7986. SPI_SETMOUSEHOVERTIME = 103;
  7987. {$EXTERNALSYM SPI_SETMOUSEHOVERTIME}
  7988. SPI_GETWHEELSCROLLLINES = 104;
  7989. {$EXTERNALSYM SPI_GETWHEELSCROLLLINES}
  7990. SPI_SETWHEELSCROLLLINES = 105;
  7991. {$EXTERNALSYM SPI_SETWHEELSCROLLLINES}
  7992. SPI_GETMENUSHOWDELAY = 106;
  7993. {$EXTERNALSYM SPI_GETMENUSHOWDELAY}
  7994. SPI_SETMENUSHOWDELAY = 107;
  7995. {$EXTERNALSYM SPI_SETMENUSHOWDELAY}
  7996. SPI_GETSHOWIMEUI = 110;
  7997. {$EXTERNALSYM SPI_GETSHOWIMEUI}
  7998. SPI_SETSHOWIMEUI = 111;
  7999. {$EXTERNALSYM SPI_SETSHOWIMEUI}
  8000. SPI_GETMOUSESPEED = 112;
  8001. {$EXTERNALSYM SPI_GETMOUSESPEED}
  8002. SPI_SETMOUSESPEED = 113;
  8003. {$EXTERNALSYM SPI_SETMOUSESPEED}
  8004. SPI_GETSCREENSAVERRUNNING = 114;
  8005. {$EXTERNALSYM SPI_GETSCREENSAVERRUNNING}
  8006. SPI_GETDESKWALLPAPER = 115;
  8007. {$EXTERNALSYM SPI_GETDESKWALLPAPER}
  8008. SPI_GETACTIVEWINDOWTRACKING = $1000;
  8009. {$EXTERNALSYM SPI_GETACTIVEWINDOWTRACKING}
  8010. SPI_SETACTIVEWINDOWTRACKING = $1001;
  8011. {$EXTERNALSYM SPI_SETACTIVEWINDOWTRACKING}
  8012. SPI_GETMENUANIMATION = $1002;
  8013. {$EXTERNALSYM SPI_GETMENUANIMATION}
  8014. SPI_SETMENUANIMATION = $1003;
  8015. {$EXTERNALSYM SPI_SETMENUANIMATION}
  8016. SPI_GETCOMBOBOXANIMATION = $1004;
  8017. {$EXTERNALSYM SPI_GETCOMBOBOXANIMATION}
  8018. SPI_SETCOMBOBOXANIMATION = $1005;
  8019. {$EXTERNALSYM SPI_SETCOMBOBOXANIMATION}
  8020. SPI_GETLISTBOXSMOOTHSCROLLING = $1006;
  8021. {$EXTERNALSYM SPI_GETLISTBOXSMOOTHSCROLLING}
  8022. SPI_SETLISTBOXSMOOTHSCROLLING = $1007;
  8023. {$EXTERNALSYM SPI_SETLISTBOXSMOOTHSCROLLING}
  8024. SPI_GETGRADIENTCAPTIONS = $1008;
  8025. {$EXTERNALSYM SPI_GETGRADIENTCAPTIONS}
  8026. SPI_SETGRADIENTCAPTIONS = $1009;
  8027. {$EXTERNALSYM SPI_SETGRADIENTCAPTIONS}
  8028. SPI_GETKEYBOARDCUES = $100A;
  8029. {$EXTERNALSYM SPI_GETKEYBOARDCUES}
  8030. SPI_SETKEYBOARDCUES = $100B;
  8031. {$EXTERNALSYM SPI_SETKEYBOARDCUES}
  8032. SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES;
  8033. {$EXTERNALSYM SPI_GETMENUUNDERLINES}
  8034. SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES;
  8035. {$EXTERNALSYM SPI_SETMENUUNDERLINES}
  8036. SPI_GETACTIVEWNDTRKZORDER = $100C;
  8037. {$EXTERNALSYM SPI_GETACTIVEWNDTRKZORDER}
  8038. SPI_SETACTIVEWNDTRKZORDER = $100D;
  8039. {$EXTERNALSYM SPI_SETACTIVEWNDTRKZORDER}
  8040. SPI_GETHOTTRACKING = $100E;
  8041. {$EXTERNALSYM SPI_GETHOTTRACKING}
  8042. SPI_SETHOTTRACKING = $100F;
  8043. {$EXTERNALSYM SPI_SETHOTTRACKING}
  8044. SPI_GETMENUFADE = $1012;
  8045. {$EXTERNALSYM SPI_GETMENUFADE}
  8046. SPI_SETMENUFADE = $1013;
  8047. {$EXTERNALSYM SPI_SETMENUFADE}
  8048. SPI_GETSELECTIONFADE = $1014;
  8049. {$EXTERNALSYM SPI_GETSELECTIONFADE}
  8050. SPI_SETSELECTIONFADE = $1015;
  8051. {$EXTERNALSYM SPI_SETSELECTIONFADE}
  8052. SPI_GETTOOLTIPANIMATION = $1016;
  8053. {$EXTERNALSYM SPI_GETTOOLTIPANIMATION}
  8054. SPI_SETTOOLTIPANIMATION = $1017;
  8055. {$EXTERNALSYM SPI_SETTOOLTIPANIMATION}
  8056. SPI_GETTOOLTIPFADE = $1018;
  8057. {$EXTERNALSYM SPI_GETTOOLTIPFADE}
  8058. SPI_SETTOOLTIPFADE = $1019;
  8059. {$EXTERNALSYM SPI_SETTOOLTIPFADE}
  8060. SPI_GETCURSORSHADOW = $101A;
  8061. {$EXTERNALSYM SPI_GETCURSORSHADOW}
  8062. SPI_SETCURSORSHADOW = $101B;
  8063. {$EXTERNALSYM SPI_SETCURSORSHADOW}
  8064. SPI_GETMOUSESONAR = $101C;
  8065. {$EXTERNALSYM SPI_GETMOUSESONAR}
  8066. SPI_SETMOUSESONAR = $101D;
  8067. {$EXTERNALSYM SPI_SETMOUSESONAR}
  8068. SPI_GETMOUSECLICKLOCK = $101E;
  8069. {$EXTERNALSYM SPI_GETMOUSECLICKLOCK}
  8070. SPI_SETMOUSECLICKLOCK = $101F;
  8071. {$EXTERNALSYM SPI_SETMOUSECLICKLOCK}
  8072. SPI_GETMOUSEVANISH = $1020;
  8073. {$EXTERNALSYM SPI_GETMOUSEVANISH}
  8074. SPI_SETMOUSEVANISH = $1021;
  8075. {$EXTERNALSYM SPI_SETMOUSEVANISH}
  8076. SPI_GETFLATMENU = $1022;
  8077. {$EXTERNALSYM SPI_GETFLATMENU}
  8078. SPI_SETFLATMENU = $1023;
  8079. {$EXTERNALSYM SPI_SETFLATMENU}
  8080. SPI_GETDROPSHADOW = $1024;
  8081. {$EXTERNALSYM SPI_GETDROPSHADOW}
  8082. SPI_SETDROPSHADOW = $1025;
  8083. {$EXTERNALSYM SPI_SETDROPSHADOW}
  8084. SPI_GETBLOCKSENDINPUTRESETS = $1026;
  8085. {$EXTERNALSYM SPI_GETBLOCKSENDINPUTRESETS}
  8086. SPI_SETBLOCKSENDINPUTRESETS = $1027;
  8087. {$EXTERNALSYM SPI_SETBLOCKSENDINPUTRESETS}
  8088. SPI_GETUIEFFECTS = $103E;
  8089. {$EXTERNALSYM SPI_GETUIEFFECTS}
  8090. SPI_SETUIEFFECTS = $103F;
  8091. {$EXTERNALSYM SPI_SETUIEFFECTS}
  8092. SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  8093. {$EXTERNALSYM SPI_GETFOREGROUNDLOCKTIMEOUT}
  8094. SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
  8095. {$EXTERNALSYM SPI_SETFOREGROUNDLOCKTIMEOUT}
  8096. SPI_GETACTIVEWNDTRKTIMEOUT = $2002;
  8097. {$EXTERNALSYM SPI_GETACTIVEWNDTRKTIMEOUT}
  8098. SPI_SETACTIVEWNDTRKTIMEOUT = $2003;
  8099. {$EXTERNALSYM SPI_SETACTIVEWNDTRKTIMEOUT}
  8100. SPI_GETFOREGROUNDFLASHCOUNT = $2004;
  8101. {$EXTERNALSYM SPI_GETFOREGROUNDFLASHCOUNT}
  8102. SPI_SETFOREGROUNDFLASHCOUNT = $2005;
  8103. {$EXTERNALSYM SPI_SETFOREGROUNDFLASHCOUNT}
  8104. SPI_GETCARETWIDTH = $2006;
  8105. {$EXTERNALSYM SPI_GETCARETWIDTH}
  8106. SPI_SETCARETWIDTH = $2007;
  8107. {$EXTERNALSYM SPI_SETCARETWIDTH}
  8108. SPI_GETMOUSECLICKLOCKTIME = $2008;
  8109. {$EXTERNALSYM SPI_GETMOUSECLICKLOCKTIME}
  8110. SPI_SETMOUSECLICKLOCKTIME = $2009;
  8111. {$EXTERNALSYM SPI_SETMOUSECLICKLOCKTIME}
  8112. SPI_GETFONTSMOOTHINGTYPE = $200A;
  8113. {$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
  8114. SPI_SETFONTSMOOTHINGTYPE = $200B;
  8115. {$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
  8116. // constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE
  8117. FE_FONTSMOOTHINGSTANDARD = $0001;
  8118. {$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
  8119. FE_FONTSMOOTHINGCLEARTYPE = $0002;
  8120. {$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
  8121. FE_FONTSMOOTHINGDOCKING = $8000;
  8122. {$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
  8123. SPI_GETFONTSMOOTHINGCONTRAST = $200C;
  8124. {$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
  8125. SPI_SETFONTSMOOTHINGCONTRAST = $200D;
  8126. {$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
  8127. SPI_GETFOCUSBORDERWIDTH = $200E;
  8128. {$EXTERNALSYM SPI_GETFOCUSBORDERWIDTH}
  8129. SPI_SETFOCUSBORDERWIDTH = $200F;
  8130. {$EXTERNALSYM SPI_SETFOCUSBORDERWIDTH}
  8131. SPI_GETFOCUSBORDERHEIGHT = $2010;
  8132. {$EXTERNALSYM SPI_GETFOCUSBORDERHEIGHT}
  8133. SPI_SETFOCUSBORDERHEIGHT = $2011;
  8134. {$EXTERNALSYM SPI_SETFOCUSBORDERHEIGHT}
  8135. SPI_GETFONTSMOOTHINGORIENTATION = $2012;
  8136. {$EXTERNALSYM SPI_GETFONTSMOOTHINGORIENTATION}
  8137. SPI_SETFONTSMOOTHINGORIENTATION = $2013;
  8138. {$EXTERNALSYM SPI_SETFONTSMOOTHINGORIENTATION}
  8139. // constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION:
  8140. FE_FONTSMOOTHINGORIENTATIONBGR = $0000;
  8141. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONBGR}
  8142. FE_FONTSMOOTHINGORIENTATIONRGB = $0001;
  8143. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONRGB}
  8144. //
  8145. // Flags
  8146. //
  8147. SPIF_UPDATEINIFILE = $0001;
  8148. {$EXTERNALSYM SPIF_UPDATEINIFILE}
  8149. SPIF_SENDWININICHANGE = $0002;
  8150. {$EXTERNALSYM SPIF_SENDWININICHANGE}
  8151. SPIF_SENDCHANGE = SPIF_SENDWININICHANGE;
  8152. {$EXTERNALSYM SPIF_SENDCHANGE}
  8153. METRICS_USEDEFAULT = DWORD(-1);
  8154. {$EXTERNALSYM METRICS_USEDEFAULT}
  8155. type
  8156. LPNONCLIENTMETRICSA = ^NONCLIENTMETRICSA;
  8157. {$EXTERNALSYM LPNONCLIENTMETRICSA}
  8158. tagNONCLIENTMETRICSA = record
  8159. cbSize: UINT;
  8160. iBorderWidth: Integer;
  8161. iScrollWidth: Integer;
  8162. iScrollHeight: Integer;
  8163. iCaptionWidth: Integer;
  8164. iCaptionHeight: Integer;
  8165. lfCaptionFont: LOGFONTA;
  8166. iSmCaptionWidth: Integer;
  8167. iSmCaptionHeight: Integer;
  8168. lfSmCaptionFont: LOGFONTA;
  8169. iMenuWidth: Integer;
  8170. iMenuHeight: Integer;
  8171. lfMenuFont: LOGFONTA;
  8172. lfStatusFont: LOGFONTA;
  8173. lfMessageFont: LOGFONTA;
  8174. end;
  8175. {$EXTERNALSYM tagNONCLIENTMETRICSA}
  8176. NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
  8177. {$EXTERNALSYM NONCLIENTMETRICSA}
  8178. TNonClientMetricsA = NONCLIENTMETRICSA;
  8179. PNonClientMetricsA = LPNONCLIENTMETRICSA;
  8180. LPNONCLIENTMETRICSW = ^NONCLIENTMETRICSW;
  8181. {$EXTERNALSYM LPNONCLIENTMETRICSW}
  8182. tagNONCLIENTMETRICSW = record
  8183. cbSize: UINT;
  8184. iBorderWidth: Integer;
  8185. iScrollWidth: Integer;
  8186. iScrollHeight: Integer;
  8187. iCaptionWidth: Integer;
  8188. iCaptionHeight: Integer;
  8189. lfCaptionFont: LOGFONTW;
  8190. iSmCaptionWidth: Integer;
  8191. iSmCaptionHeight: Integer;
  8192. lfSmCaptionFont: LOGFONTW;
  8193. iMenuWidth: Integer;
  8194. iMenuHeight: Integer;
  8195. lfMenuFont: LOGFONTW;
  8196. lfStatusFont: LOGFONTW;
  8197. lfMessageFont: LOGFONTW;
  8198. end;
  8199. {$EXTERNALSYM tagNONCLIENTMETRICSW}
  8200. NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
  8201. {$EXTERNALSYM NONCLIENTMETRICSW}
  8202. TNonClientMetricsW = NONCLIENTMETRICSW;
  8203. PNonClientMetricsW = LPNONCLIENTMETRICSW;
  8204. {$IFDEF UNICODE}
  8205. NONCLIENTMETRICS = NONCLIENTMETRICSW;
  8206. {$EXTERNALSYM NONCLIENTMETRICS}
  8207. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSW;
  8208. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8209. TNonClientMetrics = TNonClientMetricsW;
  8210. PNonClientMetrics = PNonClientMetricsW;
  8211. {$ELSE}
  8212. NONCLIENTMETRICS = NONCLIENTMETRICSA;
  8213. {$EXTERNALSYM NONCLIENTMETRICS}
  8214. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
  8215. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8216. TNonClientMetrics = TNonClientMetricsA;
  8217. PNonClientMetrics = PNonClientMetricsA;
  8218. {$ENDIF UNICODE}
  8219. const
  8220. ARW_BOTTOMLEFT = $0000;
  8221. {$EXTERNALSYM ARW_BOTTOMLEFT}
  8222. ARW_BOTTOMRIGHT = $0001;
  8223. {$EXTERNALSYM ARW_BOTTOMRIGHT}
  8224. ARW_TOPLEFT = $0002;
  8225. {$EXTERNALSYM ARW_TOPLEFT}
  8226. ARW_TOPRIGHT = $0003;
  8227. {$EXTERNALSYM ARW_TOPRIGHT}
  8228. ARW_STARTMASK = $0003;
  8229. {$EXTERNALSYM ARW_STARTMASK}
  8230. ARW_STARTRIGHT = $0001;
  8231. {$EXTERNALSYM ARW_STARTRIGHT}
  8232. ARW_STARTTOP = $0002;
  8233. {$EXTERNALSYM ARW_STARTTOP}
  8234. ARW_LEFT = $0000;
  8235. {$EXTERNALSYM ARW_LEFT}
  8236. ARW_RIGHT = $0000;
  8237. {$EXTERNALSYM ARW_RIGHT}
  8238. ARW_UP = $0004;
  8239. {$EXTERNALSYM ARW_UP}
  8240. ARW_DOWN = $0004;
  8241. {$EXTERNALSYM ARW_DOWN}
  8242. ARW_HIDE = $0008;
  8243. {$EXTERNALSYM ARW_HIDE}
  8244. type
  8245. LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
  8246. {$EXTERNALSYM LPMINIMIZEDMETRICS}
  8247. tagMINIMIZEDMETRICS = record
  8248. cbSize: UINT;
  8249. iWidth: Integer;
  8250. iHorzGap: Integer;
  8251. iVertGap: Integer;
  8252. iArrange: Integer;
  8253. end;
  8254. {$EXTERNALSYM tagMINIMIZEDMETRICS}
  8255. MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
  8256. {$EXTERNALSYM MINIMIZEDMETRICS}
  8257. TMinimizedMetrics = MINIMIZEDMETRICS;
  8258. PMinimizedMetrics = LPMINIMIZEDMETRICS;
  8259. LPICONMETRICSA = ^ICONMETRICSA;
  8260. {$EXTERNALSYM LPICONMETRICSA}
  8261. tagICONMETRICSA = record
  8262. cbSize: UINT;
  8263. iHorzSpacing: Integer;
  8264. iVertSpacing: Integer;
  8265. iTitleWrap: Integer;
  8266. lfFont: LOGFONTA;
  8267. end;
  8268. {$EXTERNALSYM tagICONMETRICSA}
  8269. ICONMETRICSA = tagICONMETRICSA;
  8270. {$EXTERNALSYM ICONMETRICSA}
  8271. TIconMetricsA = ICONMETRICSA;
  8272. PIconMetricsA = LPICONMETRICSA;
  8273. LPICONMETRICSW = ^ICONMETRICSW;
  8274. {$EXTERNALSYM LPICONMETRICSW}
  8275. tagICONMETRICSW = record
  8276. cbSize: UINT;
  8277. iHorzSpacing: Integer;
  8278. iVertSpacing: Integer;
  8279. iTitleWrap: Integer;
  8280. lfFont: LOGFONTW;
  8281. end;
  8282. {$EXTERNALSYM tagICONMETRICSW}
  8283. ICONMETRICSW = tagICONMETRICSW;
  8284. {$EXTERNALSYM ICONMETRICSW}
  8285. TIconMetricsW = ICONMETRICSW;
  8286. PIconMetricsW = LPICONMETRICSW;
  8287. {$IFDEF UNICODE}
  8288. ICONMETRICS = ICONMETRICSW;
  8289. {$EXTERNALSYM ICONMETRICS}
  8290. LPICONMETRICS = LPICONMETRICSW;
  8291. {$EXTERNALSYM LPICONMETRICS}
  8292. TIconMetrics = TIconMetricsW;
  8293. PIconMetrics = PIconMetricsW;
  8294. {$ELSE}
  8295. ICONMETRICS = ICONMETRICSA;
  8296. {$EXTERNALSYM ICONMETRICS}
  8297. LPICONMETRICS = LPICONMETRICSA;
  8298. {$EXTERNALSYM LPICONMETRICS}
  8299. TIconMetrics = TIconMetricsA;
  8300. PIconMetrics = PIconMetricsA;
  8301. {$ENDIF UNICODE}
  8302. LPANIMATIONINFO = ^ANIMATIONINFO;
  8303. {$EXTERNALSYM LPANIMATIONINFO}
  8304. tagANIMATIONINFO = record
  8305. cbSize: UINT;
  8306. iMinAnimate: Integer;
  8307. end;
  8308. {$EXTERNALSYM tagANIMATIONINFO}
  8309. ANIMATIONINFO = tagANIMATIONINFO;
  8310. {$EXTERNALSYM ANIMATIONINFO}
  8311. TAnimationInfo = ANIMATIONINFO;
  8312. PAnimationInfo = LPANIMATIONINFO;
  8313. LPSERIALKEYSA = ^SERIALKEYSA;
  8314. {$EXTERNALSYM LPSERIALKEYSA}
  8315. tagSERIALKEYSA = record
  8316. cbSize: UINT;
  8317. dwFlags: DWORD;
  8318. lpszActivePort: LPSTR;
  8319. lpszPort: LPSTR;
  8320. iBaudRate: UINT;
  8321. iPortState: UINT;
  8322. iActive: UINT;
  8323. end;
  8324. {$EXTERNALSYM tagSERIALKEYSA}
  8325. SERIALKEYSA = tagSERIALKEYSA;
  8326. {$EXTERNALSYM SERIALKEYSA}
  8327. TSerialKeysA = SERIALKEYSA;
  8328. PSerialKeysA = LPSERIALKEYSA;
  8329. LPSERIALKEYSW = ^SERIALKEYSW;
  8330. {$EXTERNALSYM LPSERIALKEYSW}
  8331. tagSERIALKEYSW = record
  8332. cbSize: UINT;
  8333. dwFlags: DWORD;
  8334. lpszActivePort: LPWSTR;
  8335. lpszPort: LPWSTR;
  8336. iBaudRate: UINT;
  8337. iPortState: UINT;
  8338. iActive: UINT;
  8339. end;
  8340. {$EXTERNALSYM tagSERIALKEYSW}
  8341. SERIALKEYSW = tagSERIALKEYSW;
  8342. {$EXTERNALSYM SERIALKEYSW}
  8343. TSerialKeysW = SERIALKEYSW;
  8344. PSerialKeysW = LPSERIALKEYSW;
  8345. {$IFDEF UNICODE}
  8346. SERIALKEYS = SERIALKEYSW;
  8347. {$EXTERNALSYM SERIALKEYS}
  8348. LPSERIALKEYS = LPSERIALKEYSW;
  8349. {$EXTERNALSYM LPSERIALKEYS}
  8350. TSerialKeys = TSerialKeysW;
  8351. PSerialKeys = PSerialKeysW;
  8352. {$ELSE}
  8353. SERIALKEYS = SERIALKEYSA;
  8354. {$EXTERNALSYM SERIALKEYS}
  8355. LPSERIALKEYS = LPSERIALKEYSA;
  8356. {$EXTERNALSYM LPSERIALKEYS}
  8357. TSerialKeys = TSerialKeysA;
  8358. PSerialKeys = PSerialKeysA;
  8359. {$ENDIF UNICODE}
  8360. // flags for SERIALKEYS dwFlags field//
  8361. const
  8362. SERKF_SERIALKEYSON = $00000001;
  8363. {$EXTERNALSYM SERKF_SERIALKEYSON}
  8364. SERKF_AVAILABLE = $00000002;
  8365. {$EXTERNALSYM SERKF_AVAILABLE}
  8366. SERKF_INDICATOR = $00000004;
  8367. {$EXTERNALSYM SERKF_INDICATOR}
  8368. type
  8369. LPHIGHCONTRASTA = ^HIGHCONTRASTA;
  8370. {$EXTERNALSYM LPHIGHCONTRASTA}
  8371. tagHIGHCONTRASTA = record
  8372. cbSize: UINT;
  8373. dwFlags: DWORD;
  8374. lpszDefaultScheme: LPSTR;
  8375. end;
  8376. {$EXTERNALSYM tagHIGHCONTRASTA}
  8377. HIGHCONTRASTA = tagHIGHCONTRASTA;
  8378. {$EXTERNALSYM HIGHCONTRASTA}
  8379. THighContrastA = HIGHCONTRASTA;
  8380. PHighContrastA = LPHIGHCONTRASTA;
  8381. LPHIGHCONTRASTW = ^HIGHCONTRASTW;
  8382. {$EXTERNALSYM LPHIGHCONTRASTW}
  8383. tagHIGHCONTRASTW = record
  8384. cbSize: UINT;
  8385. dwFlags: DWORD;
  8386. lpszDefaultScheme: LPWSTR;
  8387. end;
  8388. {$EXTERNALSYM tagHIGHCONTRASTW}
  8389. HIGHCONTRASTW = tagHIGHCONTRASTW;
  8390. {$EXTERNALSYM HIGHCONTRASTW}
  8391. THighContrastW = HIGHCONTRASTW;
  8392. PHighContrastW = LPHIGHCONTRASTW;
  8393. {$IFDEF UNICODE}
  8394. HIGHCONTRAST = HIGHCONTRASTW;
  8395. {$EXTERNALSYM HIGHCONTRAST}
  8396. LPHIGHCONTRAST = LPHIGHCONTRASTW;
  8397. {$EXTERNALSYM LPHIGHCONTRAST}
  8398. THighContrast = THighContrastW;
  8399. PHighContrast = PHighContrastW;
  8400. {$ELSE}
  8401. HIGHCONTRAST = HIGHCONTRASTA;
  8402. {$EXTERNALSYM HIGHCONTRAST}
  8403. LPHIGHCONTRAST = LPHIGHCONTRASTA;
  8404. {$EXTERNALSYM LPHIGHCONTRAST}
  8405. THighContrast = THighContrastA;
  8406. PHighContrast = PHighContrastA;
  8407. {$ENDIF UNICODE}
  8408. // flags for HIGHCONTRAST dwFlags field//
  8409. const
  8410. HCF_HIGHCONTRASTON = $00000001;
  8411. {$EXTERNALSYM HCF_HIGHCONTRASTON}
  8412. HCF_AVAILABLE = $00000002;
  8413. {$EXTERNALSYM HCF_AVAILABLE}
  8414. HCF_HOTKEYACTIVE = $00000004;
  8415. {$EXTERNALSYM HCF_HOTKEYACTIVE}
  8416. HCF_CONFIRMHOTKEY = $00000008;
  8417. {$EXTERNALSYM HCF_CONFIRMHOTKEY}
  8418. HCF_HOTKEYSOUND = $00000010;
  8419. {$EXTERNALSYM HCF_HOTKEYSOUND}
  8420. HCF_INDICATOR = $00000020;
  8421. {$EXTERNALSYM HCF_INDICATOR}
  8422. HCF_HOTKEYAVAILABLE = $00000040;
  8423. {$EXTERNALSYM HCF_HOTKEYAVAILABLE}
  8424. // Flags for ChangeDisplaySettings//
  8425. CDS_UPDATEREGISTRY = $00000001;
  8426. {$EXTERNALSYM CDS_UPDATEREGISTRY}
  8427. CDS_TEST = $00000002;
  8428. {$EXTERNALSYM CDS_TEST}
  8429. CDS_FULLSCREEN = $00000004;
  8430. {$EXTERNALSYM CDS_FULLSCREEN}
  8431. CDS_GLOBAL = $00000008;
  8432. {$EXTERNALSYM CDS_GLOBAL}
  8433. CDS_SET_PRIMARY = $00000010;
  8434. {$EXTERNALSYM CDS_SET_PRIMARY}
  8435. CDS_VIDEOPARAMETERS = $00000020;
  8436. {$EXTERNALSYM CDS_VIDEOPARAMETERS}
  8437. CDS_RESET = $40000000;
  8438. {$EXTERNALSYM CDS_RESET}
  8439. CDS_NORESET = $10000000;
  8440. {$EXTERNALSYM CDS_NORESET}
  8441. // #include <tvout.h>
  8442. // Return values for ChangeDisplaySettings
  8443. DISP_CHANGE_SUCCESSFUL = 0;
  8444. {$EXTERNALSYM DISP_CHANGE_SUCCESSFUL}
  8445. DISP_CHANGE_RESTART = 1;
  8446. {$EXTERNALSYM DISP_CHANGE_RESTART}
  8447. DISP_CHANGE_FAILED = DWORD(-1);
  8448. {$EXTERNALSYM DISP_CHANGE_FAILED}
  8449. DISP_CHANGE_BADMODE = DWORD(-2);
  8450. {$EXTERNALSYM DISP_CHANGE_BADMODE}
  8451. DISP_CHANGE_NOTUPDATED = DWORD(-3);
  8452. {$EXTERNALSYM DISP_CHANGE_NOTUPDATED}
  8453. DISP_CHANGE_BADFLAGS = DWORD(-4);
  8454. {$EXTERNALSYM DISP_CHANGE_BADFLAGS}
  8455. DISP_CHANGE_BADPARAM = DWORD(-5);
  8456. {$EXTERNALSYM DISP_CHANGE_BADPARAM}
  8457. DISP_CHANGE_BADDUALVIEW = DWORD(-6);
  8458. {$EXTERNALSYM DISP_CHANGE_BADDUALVIEW}
  8459. function ChangeDisplaySettingsA(lpDevMode: LPDEVMODEA; dwFlags: DWORD): LONG; stdcall;
  8460. {$EXTERNALSYM ChangeDisplaySettingsA}
  8461. function ChangeDisplaySettingsW(lpDevMode: LPDEVMODEW; dwFlags: DWORD): LONG; stdcall;
  8462. {$EXTERNALSYM ChangeDisplaySettingsW}
  8463. function ChangeDisplaySettings(lpDevMode: LPDEVMODE; dwFlags: DWORD): LONG; stdcall;
  8464. {$EXTERNALSYM ChangeDisplaySettings}
  8465. function ChangeDisplaySettingsExA(lpszDeviceName: LPCSTR; lpDevMode: LPDEVMODEA;
  8466. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8467. {$EXTERNALSYM ChangeDisplaySettingsExA}
  8468. function ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR; lpDevMode: LPDEVMODEW;
  8469. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8470. {$EXTERNALSYM ChangeDisplaySettingsExW}
  8471. function ChangeDisplaySettingsEx(lpszDeviceName: LPCTSTR; lpDevMode: LPDEVMODE;
  8472. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8473. {$EXTERNALSYM ChangeDisplaySettingsEx}
  8474. const
  8475. ENUM_CURRENT_SETTINGS = DWORD(-1);
  8476. {$EXTERNALSYM ENUM_CURRENT_SETTINGS}
  8477. ENUM_REGISTRY_SETTINGS = DWORD(-2);
  8478. {$EXTERNALSYM ENUM_REGISTRY_SETTINGS}
  8479. function EnumDisplaySettingsA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8480. var lpDevMode: DEVMODEA): BOOL; stdcall;
  8481. {$EXTERNALSYM EnumDisplaySettingsA}
  8482. function EnumDisplaySettingsW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8483. var lpDevMode: DEVMODEW): BOOL; stdcall;
  8484. {$EXTERNALSYM EnumDisplaySettingsW}
  8485. function EnumDisplaySettings(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8486. var lpDevMode: DEVMODE): BOOL; stdcall;
  8487. {$EXTERNALSYM EnumDisplaySettings}
  8488. function EnumDisplaySettingsExA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8489. var lpDevMode: DEVMODEA; dwFlags: DWORD): BOOL; stdcall;
  8490. {$EXTERNALSYM EnumDisplaySettingsExA}
  8491. function EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8492. var lpDevMode: DEVMODEW; dwFlags: DWORD): BOOL; stdcall;
  8493. {$EXTERNALSYM EnumDisplaySettingsExW}
  8494. function EnumDisplaySettingsEx(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8495. var lpDevMode: DEVMODE; dwFlags: DWORD): BOOL; stdcall;
  8496. {$EXTERNALSYM EnumDisplaySettingsEx}
  8497. // Flags for EnumDisplaySettingsEx//
  8498. const
  8499. EDS_RAWMODE = $00000002;
  8500. {$EXTERNALSYM EDS_RAWMODE}
  8501. function EnumDisplayDevicesA(lpDevice: LPCSTR; iDevNum: DWORD;
  8502. var lpDisplayDevice: DISPLAY_DEVICEA; dwFlags: DWORD): BOOL; stdcall;
  8503. {$EXTERNALSYM EnumDisplayDevicesA}
  8504. function EnumDisplayDevicesW(lpDevice: LPCWSTR; iDevNum: DWORD;
  8505. var lpDisplayDevice: DISPLAY_DEVICEW; dwFlags: DWORD): BOOL; stdcall;
  8506. {$EXTERNALSYM EnumDisplayDevicesW}
  8507. function EnumDisplayDevices(lpDevice: LPCTSTR; iDevNum: DWORD;
  8508. var lpDisplayDevice: DISPLAY_DEVICE; dwFlags: DWORD): BOOL; stdcall;
  8509. {$EXTERNALSYM EnumDisplayDevices}
  8510. function SystemParametersInfoA(uiAction: UINT; uiParam: UINT;
  8511. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8512. {$EXTERNALSYM SystemParametersInfoA}
  8513. function SystemParametersInfoW(uiAction: UINT; uiParam: UINT;
  8514. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8515. {$EXTERNALSYM SystemParametersInfoW}
  8516. function SystemParametersInfo(uiAction: UINT; uiParam: UINT;
  8517. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8518. {$EXTERNALSYM SystemParametersInfo}
  8519. //
  8520. // Accessibility support
  8521. //
  8522. type
  8523. LPFILTERKEYS = ^FILTERKEYS;
  8524. {$EXTERNALSYM LPFILTERKEYS}
  8525. tagFILTERKEYS = record
  8526. cbSize: UINT;
  8527. dwFlags: DWORD;
  8528. iWaitMSec: DWORD; // Acceptance Delay
  8529. iDelayMSec: DWORD; // Delay Until Repeat
  8530. iRepeatMSec: DWORD; // Repeat Rate
  8531. iBounceMSec: DWORD; // Debounce Time
  8532. end;
  8533. {$EXTERNALSYM tagFILTERKEYS}
  8534. FILTERKEYS = tagFILTERKEYS;
  8535. {$EXTERNALSYM FILTERKEYS}
  8536. TFilterKeys = FILTERKEYS;
  8537. PFilterKeys = LPFILTERKEYS;
  8538. //
  8539. // FILTERKEYS dwFlags field
  8540. //
  8541. const
  8542. FKF_FILTERKEYSON = $00000001;
  8543. {$EXTERNALSYM FKF_FILTERKEYSON}
  8544. FKF_AVAILABLE = $00000002;
  8545. {$EXTERNALSYM FKF_AVAILABLE}
  8546. FKF_HOTKEYACTIVE = $00000004;
  8547. {$EXTERNALSYM FKF_HOTKEYACTIVE}
  8548. FKF_CONFIRMHOTKEY = $00000008;
  8549. {$EXTERNALSYM FKF_CONFIRMHOTKEY}
  8550. FKF_HOTKEYSOUND = $00000010;
  8551. {$EXTERNALSYM FKF_HOTKEYSOUND}
  8552. FKF_INDICATOR = $00000020;
  8553. {$EXTERNALSYM FKF_INDICATOR}
  8554. FKF_CLICKON = $00000040;
  8555. {$EXTERNALSYM FKF_CLICKON}
  8556. type
  8557. LPSTICKYKEYS = ^STICKYKEYS;
  8558. {$EXTERNALSYM LPSTICKYKEYS}
  8559. tagSTICKYKEYS = record
  8560. cbSize: UINT;
  8561. dwFlags: DWORD;
  8562. end;
  8563. {$EXTERNALSYM tagSTICKYKEYS}
  8564. STICKYKEYS = tagSTICKYKEYS;
  8565. {$EXTERNALSYM STICKYKEYS}
  8566. TStickyKeys = STICKYKEYS;
  8567. PStickyKeys = LPSTICKYKEYS;
  8568. //
  8569. // STICKYKEYS dwFlags field
  8570. //
  8571. const
  8572. SKF_STICKYKEYSON = $00000001;
  8573. {$EXTERNALSYM SKF_STICKYKEYSON}
  8574. SKF_AVAILABLE = $00000002;
  8575. {$EXTERNALSYM SKF_AVAILABLE}
  8576. SKF_HOTKEYACTIVE = $00000004;
  8577. {$EXTERNALSYM SKF_HOTKEYACTIVE}
  8578. SKF_CONFIRMHOTKEY = $00000008;
  8579. {$EXTERNALSYM SKF_CONFIRMHOTKEY}
  8580. SKF_HOTKEYSOUND = $00000010;
  8581. {$EXTERNALSYM SKF_HOTKEYSOUND}
  8582. SKF_INDICATOR = $00000020;
  8583. {$EXTERNALSYM SKF_INDICATOR}
  8584. SKF_AUDIBLEFEEDBACK = $00000040;
  8585. {$EXTERNALSYM SKF_AUDIBLEFEEDBACK}
  8586. SKF_TRISTATE = $00000080;
  8587. {$EXTERNALSYM SKF_TRISTATE}
  8588. SKF_TWOKEYSOFF = $00000100;
  8589. {$EXTERNALSYM SKF_TWOKEYSOFF}
  8590. SKF_LALTLATCHED = $10000000;
  8591. {$EXTERNALSYM SKF_LALTLATCHED}
  8592. SKF_LCTLLATCHED = $04000000;
  8593. {$EXTERNALSYM SKF_LCTLLATCHED}
  8594. SKF_LSHIFTLATCHED = $01000000;
  8595. {$EXTERNALSYM SKF_LSHIFTLATCHED}
  8596. SKF_RALTLATCHED = $20000000;
  8597. {$EXTERNALSYM SKF_RALTLATCHED}
  8598. SKF_RCTLLATCHED = $08000000;
  8599. {$EXTERNALSYM SKF_RCTLLATCHED}
  8600. SKF_RSHIFTLATCHED = $02000000;
  8601. {$EXTERNALSYM SKF_RSHIFTLATCHED}
  8602. SKF_LWINLATCHED = $40000000;
  8603. {$EXTERNALSYM SKF_LWINLATCHED}
  8604. SKF_RWINLATCHED = $80000000;
  8605. {$EXTERNALSYM SKF_RWINLATCHED}
  8606. SKF_LALTLOCKED = $00100000;
  8607. {$EXTERNALSYM SKF_LALTLOCKED}
  8608. SKF_LCTLLOCKED = $00040000;
  8609. {$EXTERNALSYM SKF_LCTLLOCKED}
  8610. SKF_LSHIFTLOCKED = $00010000;
  8611. {$EXTERNALSYM SKF_LSHIFTLOCKED}
  8612. SKF_RALTLOCKED = $00200000;
  8613. {$EXTERNALSYM SKF_RALTLOCKED}
  8614. SKF_RCTLLOCKED = $00080000;
  8615. {$EXTERNALSYM SKF_RCTLLOCKED}
  8616. SKF_RSHIFTLOCKED = $00020000;
  8617. {$EXTERNALSYM SKF_RSHIFTLOCKED}
  8618. SKF_LWINLOCKED = $00400000;
  8619. {$EXTERNALSYM SKF_LWINLOCKED}
  8620. SKF_RWINLOCKED = $00800000;
  8621. {$EXTERNALSYM SKF_RWINLOCKED}
  8622. type
  8623. LPMOUSEKEYS = ^MOUSEKEYS;
  8624. {$EXTERNALSYM LPMOUSEKEYS}
  8625. tagMOUSEKEYS = record
  8626. cbSize: UINT;
  8627. dwFlags: DWORD;
  8628. iMaxSpeed: DWORD;
  8629. iTimeToMaxSpeed: DWORD;
  8630. iCtrlSpeed: DWORD;
  8631. dwReserved1: DWORD;
  8632. dwReserved2: DWORD;
  8633. end;
  8634. {$EXTERNALSYM tagMOUSEKEYS}
  8635. MOUSEKEYS = tagMOUSEKEYS;
  8636. {$EXTERNALSYM MOUSEKEYS}
  8637. TMouseKeys = MOUSEKEYS;
  8638. PMouseKeys = LPMOUSEKEYS;
  8639. //
  8640. // MOUSEKEYS dwFlags field
  8641. //
  8642. const
  8643. MKF_MOUSEKEYSON = $00000001;
  8644. {$EXTERNALSYM MKF_MOUSEKEYSON}
  8645. MKF_AVAILABLE = $00000002;
  8646. {$EXTERNALSYM MKF_AVAILABLE}
  8647. MKF_HOTKEYACTIVE = $00000004;
  8648. {$EXTERNALSYM MKF_HOTKEYACTIVE}
  8649. MKF_CONFIRMHOTKEY = $00000008;
  8650. {$EXTERNALSYM MKF_CONFIRMHOTKEY}
  8651. MKF_HOTKEYSOUND = $00000010;
  8652. {$EXTERNALSYM MKF_HOTKEYSOUND}
  8653. MKF_INDICATOR = $00000020;
  8654. {$EXTERNALSYM MKF_INDICATOR}
  8655. MKF_MODIFIERS = $00000040;
  8656. {$EXTERNALSYM MKF_MODIFIERS}
  8657. MKF_REPLACENUMBERS = $00000080;
  8658. {$EXTERNALSYM MKF_REPLACENUMBERS}
  8659. MKF_LEFTBUTTONSEL = $10000000;
  8660. {$EXTERNALSYM MKF_LEFTBUTTONSEL}
  8661. MKF_RIGHTBUTTONSEL = $20000000;
  8662. {$EXTERNALSYM MKF_RIGHTBUTTONSEL}
  8663. MKF_LEFTBUTTONDOWN = $01000000;
  8664. {$EXTERNALSYM MKF_LEFTBUTTONDOWN}
  8665. MKF_RIGHTBUTTONDOWN = $02000000;
  8666. {$EXTERNALSYM MKF_RIGHTBUTTONDOWN}
  8667. MKF_MOUSEMODE = $80000000;
  8668. {$EXTERNALSYM MKF_MOUSEMODE}
  8669. type
  8670. LPACCESSTIMEOUT = ^ACCESSTIMEOUT;
  8671. {$EXTERNALSYM LPACCESSTIMEOUT}
  8672. tagACCESSTIMEOUT = record
  8673. cbSize: UINT;
  8674. dwFlags: DWORD;
  8675. iTimeOutMSec: DWORD;
  8676. end;
  8677. {$EXTERNALSYM tagACCESSTIMEOUT}
  8678. ACCESSTIMEOUT = tagACCESSTIMEOUT;
  8679. {$EXTERNALSYM ACCESSTIMEOUT}
  8680. TAccessTimeout = ACCESSTIMEOUT;
  8681. PAccessTimeout = LPACCESSTIMEOUT;
  8682. //
  8683. // ACCESSTIMEOUT dwFlags field
  8684. //
  8685. const
  8686. ATF_TIMEOUTON = $00000001;
  8687. {$EXTERNALSYM ATF_TIMEOUTON}
  8688. ATF_ONOFFFEEDBACK = $00000002;
  8689. {$EXTERNALSYM ATF_ONOFFFEEDBACK}
  8690. // values for SOUNDSENTRY iFSGrafEffect field//
  8691. SSGF_NONE = 0;
  8692. {$EXTERNALSYM SSGF_NONE}
  8693. SSGF_DISPLAY = 3;
  8694. {$EXTERNALSYM SSGF_DISPLAY}
  8695. // values for SOUNDSENTRY iFSTextEffect field//
  8696. SSTF_NONE = 0;
  8697. {$EXTERNALSYM SSTF_NONE}
  8698. SSTF_CHARS = 1;
  8699. {$EXTERNALSYM SSTF_CHARS}
  8700. SSTF_BORDER = 2;
  8701. {$EXTERNALSYM SSTF_BORDER}
  8702. SSTF_DISPLAY = 3;
  8703. {$EXTERNALSYM SSTF_DISPLAY}
  8704. // values for SOUNDSENTRY iWindowsEffect field//
  8705. SSWF_NONE = 0;
  8706. {$EXTERNALSYM SSWF_NONE}
  8707. SSWF_TITLE = 1;
  8708. {$EXTERNALSYM SSWF_TITLE}
  8709. SSWF_WINDOW = 2;
  8710. {$EXTERNALSYM SSWF_WINDOW}
  8711. SSWF_DISPLAY = 3;
  8712. {$EXTERNALSYM SSWF_DISPLAY}
  8713. SSWF_CUSTOM = 4;
  8714. {$EXTERNALSYM SSWF_CUSTOM}
  8715. type
  8716. LPSOUNDSENTRYA = ^SOUNDSENTRYA;
  8717. {$EXTERNALSYM LPSOUNDSENTRYA}
  8718. tagSOUNDSENTRYA = record
  8719. cbSize: UINT;
  8720. dwFlags: DWORD;
  8721. iFSTextEffect: DWORD;
  8722. iFSTextEffectMSec: DWORD;
  8723. iFSTextEffectColorBits: DWORD;
  8724. iFSGrafEffect: DWORD;
  8725. iFSGrafEffectMSec: DWORD;
  8726. iFSGrafEffectColor: DWORD;
  8727. iWindowsEffect: DWORD;
  8728. iWindowsEffectMSec: DWORD;
  8729. lpszWindowsEffectDLL: LPSTR;
  8730. iWindowsEffectOrdinal: DWORD;
  8731. end;
  8732. {$EXTERNALSYM tagSOUNDSENTRYA}
  8733. SOUNDSENTRYA = tagSOUNDSENTRYA;
  8734. {$EXTERNALSYM SOUNDSENTRYA}
  8735. TSoundsEntryA = SOUNDSENTRYA;
  8736. PSoundsEntryA = LPSOUNDSENTRYA;
  8737. LPSOUNDSENTRYW = ^SOUNDSENTRYW;
  8738. {$EXTERNALSYM LPSOUNDSENTRYW}
  8739. tagSOUNDSENTRYW = record
  8740. cbSize: UINT;
  8741. dwFlags: DWORD;
  8742. iFSTextEffect: DWORD;
  8743. iFSTextEffectMSec: DWORD;
  8744. iFSTextEffectColorBits: DWORD;
  8745. iFSGrafEffect: DWORD;
  8746. iFSGrafEffectMSec: DWORD;
  8747. iFSGrafEffectColor: DWORD;
  8748. iWindowsEffect: DWORD;
  8749. iWindowsEffectMSec: DWORD;
  8750. lpszWindowsEffectDLL: LPWSTR;
  8751. iWindowsEffectOrdinal: DWORD;
  8752. end;
  8753. {$EXTERNALSYM tagSOUNDSENTRYW}
  8754. SOUNDSENTRYW = tagSOUNDSENTRYW;
  8755. {$EXTERNALSYM SOUNDSENTRYW}
  8756. TSoundsEntryW = SOUNDSENTRYW;
  8757. PSoundsEntryW = LPSOUNDSENTRYW;
  8758. {$IFDEF UNICODE}
  8759. SOUNDSENTRY = SOUNDSENTRYW;
  8760. {$EXTERNALSYM SOUNDSENTRY}
  8761. LPSOUNDSENTRY = LPSOUNDSENTRYW;
  8762. {$EXTERNALSYM LPSOUNDSENTRY}
  8763. TSoundsEntry = TSoundsEntryW;
  8764. PSoundsEntry = PSoundsEntryW;
  8765. {$ELSE}
  8766. SOUNDSENTRY = SOUNDSENTRYA;
  8767. {$EXTERNALSYM SOUNDSENTRY}
  8768. LPSOUNDSENTRY = LPSOUNDSENTRYA;
  8769. {$EXTERNALSYM LPSOUNDSENTRY}
  8770. TSoundsEntry = TSoundsEntryA;
  8771. PSoundsEntry = PSoundsEntryA;
  8772. {$ENDIF UNICODE}
  8773. //
  8774. // SOUNDSENTRY dwFlags field
  8775. //
  8776. const
  8777. SSF_SOUNDSENTRYON = $00000001;
  8778. {$EXTERNALSYM SSF_SOUNDSENTRYON}
  8779. SSF_AVAILABLE = $00000002;
  8780. {$EXTERNALSYM SSF_AVAILABLE}
  8781. SSF_INDICATOR = $00000004;
  8782. {$EXTERNALSYM SSF_INDICATOR}
  8783. type
  8784. LPTOGGLEKEYS = ^TOGGLEKEYS;
  8785. {$EXTERNALSYM LPTOGGLEKEYS}
  8786. tagTOGGLEKEYS = record
  8787. cbSize: UINT;
  8788. dwFlags: DWORD;
  8789. end;
  8790. {$EXTERNALSYM tagTOGGLEKEYS}
  8791. TOGGLEKEYS = tagTOGGLEKEYS;
  8792. {$EXTERNALSYM TOGGLEKEYS}
  8793. TToggleKeys = TOGGLEKEYS;
  8794. PToggleKeys = LPTOGGLEKEYS;
  8795. //
  8796. // TOGGLEKEYS dwFlags field
  8797. //
  8798. const
  8799. TKF_TOGGLEKEYSON = $00000001;
  8800. {$EXTERNALSYM TKF_TOGGLEKEYSON}
  8801. TKF_AVAILABLE = $00000002;
  8802. {$EXTERNALSYM TKF_AVAILABLE}
  8803. TKF_HOTKEYACTIVE = $00000004;
  8804. {$EXTERNALSYM TKF_HOTKEYACTIVE}
  8805. TKF_CONFIRMHOTKEY = $00000008;
  8806. {$EXTERNALSYM TKF_CONFIRMHOTKEY}
  8807. TKF_HOTKEYSOUND = $00000010;
  8808. {$EXTERNALSYM TKF_HOTKEYSOUND}
  8809. TKF_INDICATOR = $00000020;
  8810. {$EXTERNALSYM TKF_INDICATOR}
  8811. //
  8812. // Set debug level
  8813. //
  8814. procedure SetDebugErrorLevel(dwLevel: DWORD); stdcall;
  8815. {$EXTERNALSYM SetDebugErrorLevel}
  8816. //
  8817. // SetLastErrorEx() types.
  8818. //
  8819. const
  8820. SLE_ERROR = $00000001;
  8821. {$EXTERNALSYM SLE_ERROR}
  8822. SLE_MINORERROR = $00000002;
  8823. {$EXTERNALSYM SLE_MINORERROR}
  8824. SLE_WARNING = $00000003;
  8825. {$EXTERNALSYM SLE_WARNING}
  8826. procedure SetLastErrorEx(dwErrCode, dwType: DWORD); stdcall;
  8827. {$EXTERNALSYM SetLastErrorEx}
  8828. function InternalGetWindowText(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  8829. {$EXTERNALSYM InternalGetWindowText}
  8830. function EndTask(hWnd: HWND; fShutDown, fForce: BOOL): BOOL; stdcall;
  8831. {$EXTERNALSYM EndTask}
  8832. //
  8833. // Multimonitor API.
  8834. //
  8835. const
  8836. MONITOR_DEFAULTTONULL = $00000000;
  8837. {$EXTERNALSYM MONITOR_DEFAULTTONULL}
  8838. MONITOR_DEFAULTTOPRIMARY = $00000001;
  8839. {$EXTERNALSYM MONITOR_DEFAULTTOPRIMARY}
  8840. MONITOR_DEFAULTTONEAREST = $00000002;
  8841. {$EXTERNALSYM MONITOR_DEFAULTTONEAREST}
  8842. function MonitorFromPoint(pt: POINT; dwFlags: DWORD): HMONITOR; stdcall;
  8843. {$EXTERNALSYM MonitorFromPoint}
  8844. function MonitorFromRect(const lprc: RECT; dwFlags: DWORD): HMONITOR; stdcall;
  8845. {$EXTERNALSYM MonitorFromRect}
  8846. function MonitorFromWindow(hwnd: HWND; dwFlags: DWORD): HMONITOR; stdcall;
  8847. {$EXTERNALSYM MonitorFromWindow}
  8848. const
  8849. MONITORINFOF_PRIMARY = $00000001;
  8850. {$EXTERNALSYM MONITORINFOF_PRIMARY}
  8851. CCHDEVICENAME = 32;
  8852. {$EXTERNALSYM CCHDEVICENAME}
  8853. type
  8854. LPMONITORINFO = ^MONITORINFO;
  8855. {$EXTERNALSYM LPMONITORINFO}
  8856. tagMONITORINFO = record
  8857. cbSize: DWORD;
  8858. rcMonitor: RECT;
  8859. rcWork: RECT;
  8860. dwFlags: DWORD;
  8861. end;
  8862. {$EXTERNALSYM tagMONITORINFO}
  8863. MONITORINFO = tagMONITORINFO;
  8864. {$EXTERNALSYM MONITORINFO}
  8865. TMonitorInfo = MONITORINFO;
  8866. PMonitorInfo = LPMONITORINFO;
  8867. LPMONITORINFOEXA = ^MONITORINFOEXA;
  8868. {$EXTERNALSYM LPMONITORINFOEXA}
  8869. tagMONITORINFOEXA = record
  8870. MonitorInfo: MONITORINFO;
  8871. szDevice: array [0..CCHDEVICENAME - 1] of CHAR;
  8872. end;
  8873. {$EXTERNALSYM tagMONITORINFOEXA}
  8874. MONITORINFOEXA = tagMONITORINFOEXA;
  8875. {$EXTERNALSYM MONITORINFOEXA}
  8876. TMonitorinfoexa = MONITORINFOEXA;
  8877. PMonitorInfoExA = LPMONITORINFOEXA;
  8878. LPMONITORINFOEXW = ^MONITORINFOEXW;
  8879. {$EXTERNALSYM LPMONITORINFOEXW}
  8880. tagMONITORINFOEXW = record
  8881. MonitorInfo: MONITORINFO;
  8882. szDevice: array [0..CCHDEVICENAME - 1] of WCHAR;
  8883. end;
  8884. {$EXTERNALSYM tagMONITORINFOEXW}
  8885. MONITORINFOEXW = tagMONITORINFOEXW;
  8886. {$EXTERNALSYM MONITORINFOEXW}
  8887. TMonitorInfoExW = MONITORINFOEXW;
  8888. PMonitorInfoExW = LPMONITORINFOEXW;
  8889. {$IFDEF UNICODE}
  8890. MONITORINFOEX = MONITORINFOEXW;
  8891. {$EXTERNALSYM MONITORINFOEX}
  8892. LPMONITORINFOEX = LPMONITORINFOEXW;
  8893. {$EXTERNALSYM LPMONITORINFOEX}
  8894. TMonitorInfoEx = TMonitorInfoExW;
  8895. PMonitorInfoEx = PMonitorInfoExW;
  8896. {$ELSE}
  8897. MONITORINFOEX = MONITORINFOEXA;
  8898. {$EXTERNALSYM MONITORINFOEX}
  8899. LPMONITORINFOEX = LPMONITORINFOEXA;
  8900. {$EXTERNALSYM LPMONITORINFOEX}
  8901. TMonitorInfoEx = TMonitorInfoExA;
  8902. PMonitorInfoEx = PMonitorInfoExA;
  8903. {$ENDIF UNICODE}
  8904. function GetMonitorInfoA(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8905. {$EXTERNALSYM GetMonitorInfoA}
  8906. function GetMonitorInfoW(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8907. {$EXTERNALSYM GetMonitorInfoW}
  8908. function GetMonitorInfo(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8909. {$EXTERNALSYM GetMonitorInfo}
  8910. type
  8911. MONITORENUMPROC = function(hMonitor: HMONITOR; hdcMonitor: HDC;
  8912. lprcMonitor: LPRECT; dwData: LPARAM): BOOL; stdcall;
  8913. {$EXTERNALSYM MONITORENUMPROC}
  8914. TMonitorEnumProc = MONITORENUMPROC;
  8915. function EnumDisplayMonitors(hdc: HDC; lprcClip: LPCRECT;
  8916. lpfnEnum: MONITORENUMPROC; dwData: LPARAM): BOOL; stdcall;
  8917. {$EXTERNALSYM EnumDisplayMonitors}
  8918. //
  8919. // WinEvents - Active Accessibility hooks
  8920. //
  8921. procedure NotifyWinEvent(event: DWORD; hwnd: HWND; idObject: LONG; idChild: LONG); stdcall;
  8922. {$EXTERNALSYM NotifyWinEvent}
  8923. type
  8924. WINEVENTPROC = procedure(hWinEventHook: HWINEVENTHOOK; event: DWORD; hwnd: HWND;
  8925. idObject, idChild: LONG; idEventThread, dwmsEventTime: DWORD); stdcall;
  8926. {$EXTERNALSYM WINEVENTPROC}
  8927. TWinEventProc = WINEVENTPROC;
  8928. function SetWinEventHook(eventMin: DWORD; eventMax: DWORD;
  8929. hmodWinEventProc: HMODULE; pfnWinEventProc: WINEVENTPROC; idProcess: DWORD;
  8930. idThread: DWORD; dwFlags: DWORD): HWINEVENTHOOK; stdcall;
  8931. {$EXTERNALSYM SetWinEventHook}
  8932. function IsWinEventHookInstalled(event: DWORD): BOOL; stdcall;
  8933. {$EXTERNALSYM IsWinEventHookInstalled}
  8934. //
  8935. // dwFlags for SetWinEventHook
  8936. //
  8937. const
  8938. WINEVENT_OUTOFCONTEXT = $0000; // Events are ASYNC
  8939. {$EXTERNALSYM WINEVENT_OUTOFCONTEXT}
  8940. WINEVENT_SKIPOWNTHREAD = $0001; // Don't call back for events on installer's thread
  8941. {$EXTERNALSYM WINEVENT_SKIPOWNTHREAD}
  8942. WINEVENT_SKIPOWNPROCESS = $0002; // Don't call back for events on installer's process
  8943. {$EXTERNALSYM WINEVENT_SKIPOWNPROCESS}
  8944. WINEVENT_INCONTEXT = $0004; // Events are SYNC, this causes your dll to be injected into every process
  8945. {$EXTERNALSYM WINEVENT_INCONTEXT}
  8946. function UnhookWinEvent(hWinEventHook: HWINEVENTHOOK): BOOL; stdcall;
  8947. {$EXTERNALSYM UnhookWinEvent}
  8948. //
  8949. // idObject values for WinEventProc and NotifyWinEvent
  8950. //
  8951. //
  8952. // hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
  8953. // to get an interface pointer to the container. indexChild is the item
  8954. // within the container in question. Setup a VARIANT with vt VT_I4 and
  8955. // lVal the indexChild and pass that in to all methods. Then you
  8956. // are raring to go.
  8957. //
  8958. //
  8959. // Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
  8960. // thing in question). Positive IDs are reserved for apps (app specific),
  8961. // negative IDs are system things and are global, 0 means "just little old
  8962. // me".
  8963. //
  8964. const
  8965. CHILDID_SELF = 0;
  8966. {$EXTERNALSYM CHILDID_SELF}
  8967. INDEXID_OBJECT = 0;
  8968. {$EXTERNALSYM INDEXID_OBJECT}
  8969. INDEXID_CONTAINER = 0;
  8970. {$EXTERNALSYM INDEXID_CONTAINER}
  8971. //
  8972. // Reserved IDs for system objects
  8973. //
  8974. const
  8975. OBJID_WINDOW = DWORD($00000000);
  8976. {$EXTERNALSYM OBJID_WINDOW}
  8977. OBJID_SYSMENU = DWORD($FFFFFFFF);
  8978. {$EXTERNALSYM OBJID_SYSMENU}
  8979. OBJID_TITLEBAR = DWORD($FFFFFFFE);
  8980. {$EXTERNALSYM OBJID_TITLEBAR}
  8981. OBJID_MENU = DWORD($FFFFFFFD);
  8982. {$EXTERNALSYM OBJID_MENU}
  8983. OBJID_CLIENT = DWORD($FFFFFFFC);
  8984. {$EXTERNALSYM OBJID_CLIENT}
  8985. OBJID_VSCROLL = DWORD($FFFFFFFB);
  8986. {$EXTERNALSYM OBJID_VSCROLL}
  8987. OBJID_HSCROLL = DWORD($FFFFFFFA);
  8988. {$EXTERNALSYM OBJID_HSCROLL}
  8989. OBJID_SIZEGRIP = DWORD($FFFFFFF9);
  8990. {$EXTERNALSYM OBJID_SIZEGRIP}
  8991. OBJID_CARET = DWORD($FFFFFFF8);
  8992. {$EXTERNALSYM OBJID_CARET}
  8993. OBJID_CURSOR = DWORD($FFFFFFF7);
  8994. {$EXTERNALSYM OBJID_CURSOR}
  8995. OBJID_ALERT = DWORD($FFFFFFF6);
  8996. {$EXTERNALSYM OBJID_ALERT}
  8997. OBJID_SOUND = DWORD($FFFFFFF5);
  8998. {$EXTERNALSYM OBJID_SOUND}
  8999. OBJID_QUERYCLASSNAMEIDX = DWORD($FFFFFFF4);
  9000. {$EXTERNALSYM OBJID_QUERYCLASSNAMEIDX}
  9001. OBJID_NATIVEOM = DWORD($FFFFFFF0);
  9002. {$EXTERNALSYM OBJID_NATIVEOM}
  9003. //
  9004. // EVENT DEFINITION
  9005. //
  9006. EVENT_MIN = $00000001;
  9007. {$EXTERNALSYM EVENT_MIN}
  9008. EVENT_MAX = $7FFFFFFF;
  9009. {$EXTERNALSYM EVENT_MAX}
  9010. //
  9011. // EVENT_SYSTEM_SOUND
  9012. // Sent when a sound is played. Currently nothing is generating this, we
  9013. // this event when a system sound (for menus, etc) is played. Apps
  9014. // generate this, if accessible, when a private sound is played. For
  9015. // example, if Mail plays a "New Mail" sound.
  9016. //
  9017. // System Sounds:
  9018. // (Generated by PlaySoundEvent in USER itself)
  9019. // hwnd is NULL
  9020. // idObject is OBJID_SOUND
  9021. // idChild is sound child ID if one
  9022. // App Sounds:
  9023. // (PlaySoundEvent won't generate notification; up to app)
  9024. // hwnd + idObject gets interface pointer to Sound object
  9025. // idChild identifies the sound in question
  9026. // are going to be cleaning up the SOUNDSENTRY feature in the control panel
  9027. // and will use this at that time. Applications implementing WinEvents
  9028. // are perfectly welcome to use it. Clients of IAccessible* will simply
  9029. // turn around and get back a non-visual object that describes the sound.
  9030. //
  9031. EVENT_SYSTEM_SOUND = $0001;
  9032. {$EXTERNALSYM EVENT_SYSTEM_SOUND}
  9033. //
  9034. // EVENT_SYSTEM_ALERT
  9035. // System Alerts:
  9036. // (Generated by MessageBox() calls for example)
  9037. // hwnd is hwndMessageBox
  9038. // idObject is OBJID_ALERT
  9039. // App Alerts:
  9040. // (Generated whenever)
  9041. // hwnd+idObject gets interface pointer to Alert
  9042. //
  9043. EVENT_SYSTEM_ALERT = $0002;
  9044. {$EXTERNALSYM EVENT_SYSTEM_ALERT}
  9045. //
  9046. // EVENT_SYSTEM_FOREGROUND
  9047. // Sent when the foreground (active) window changes, even if it is changing
  9048. // to another window in the same thread as the previous one.
  9049. // hwnd is hwndNewForeground
  9050. // idObject is OBJID_WINDOW
  9051. // idChild is INDEXID_OBJECT
  9052. //
  9053. EVENT_SYSTEM_FOREGROUND = $0003;
  9054. {$EXTERNALSYM EVENT_SYSTEM_FOREGROUND}
  9055. //
  9056. // Menu
  9057. // hwnd is window (top level window or popup menu window)
  9058. // idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
  9059. // idChild is CHILDID_SELF
  9060. // EVENT_SYSTEM_MENUSTART
  9061. // EVENT_SYSTEM_MENUEND
  9062. // For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
  9063. // or the control bringing up the context menu.
  9064. // Sent when entering into and leaving from menu mode (system, app bar, and
  9065. // track popups).
  9066. //
  9067. EVENT_SYSTEM_MENUSTART = $0004;
  9068. {$EXTERNALSYM EVENT_SYSTEM_MENUSTART}
  9069. EVENT_SYSTEM_MENUEND = $0005;
  9070. {$EXTERNALSYM EVENT_SYSTEM_MENUEND}
  9071. //
  9072. // EVENT_SYSTEM_MENUPOPUPSTART
  9073. // EVENT_SYSTEM_MENUPOPUPEND
  9074. // Sent when a menu popup comes up and just before it is taken down. Note
  9075. // that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
  9076. // followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
  9077. // being shown.
  9078. // For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
  9079. // parent item which is hierarchical. You can get the parent menu/popup by
  9080. // asking for the accParent object.
  9081. //
  9082. EVENT_SYSTEM_MENUPOPUPSTART = $0006;
  9083. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPSTART}
  9084. EVENT_SYSTEM_MENUPOPUPEND = $0007;
  9085. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPEND}
  9086. //
  9087. // EVENT_SYSTEM_CAPTURESTART
  9088. // EVENT_SYSTEM_CAPTUREEND
  9089. // Sent when a window takes the capture and releases the capture.
  9090. //
  9091. EVENT_SYSTEM_CAPTURESTART = $0008;
  9092. {$EXTERNALSYM EVENT_SYSTEM_CAPTURESTART}
  9093. EVENT_SYSTEM_CAPTUREEND = $0009;
  9094. {$EXTERNALSYM EVENT_SYSTEM_CAPTUREEND}
  9095. //
  9096. // Move Size
  9097. // EVENT_SYSTEM_MOVESIZESTART
  9098. // EVENT_SYSTEM_MOVESIZEEND
  9099. // Sent when a window enters and leaves move-size dragging mode.
  9100. //
  9101. EVENT_SYSTEM_MOVESIZESTART = $000A;
  9102. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZESTART}
  9103. EVENT_SYSTEM_MOVESIZEEND = $000B;
  9104. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZEEND}
  9105. //
  9106. // Context Help
  9107. // EVENT_SYSTEM_CONTEXTHELPSTART
  9108. // EVENT_SYSTEM_CONTEXTHELPEND
  9109. // Sent when a window enters and leaves context sensitive help mode.
  9110. //
  9111. EVENT_SYSTEM_CONTEXTHELPSTART = $000C;
  9112. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPSTART}
  9113. EVENT_SYSTEM_CONTEXTHELPEND = $000D;
  9114. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPEND}
  9115. //
  9116. // Drag & Drop
  9117. // EVENT_SYSTEM_DRAGDROPSTART
  9118. // EVENT_SYSTEM_DRAGDROPEND
  9119. // Send the START notification just before going into drag&drop loop. Send
  9120. // the END notification just after canceling out.
  9121. // Note that it is up to apps and OLE to generate this, since the system
  9122. // doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this
  9123. // is prevalent.
  9124. //
  9125. EVENT_SYSTEM_DRAGDROPSTART = $000E;
  9126. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPSTART}
  9127. EVENT_SYSTEM_DRAGDROPEND = $000F;
  9128. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPEND}
  9129. //
  9130. // Dialog
  9131. // Send the START notification right after the dialog is completely
  9132. // initialized and visible. Send the END right before the dialog
  9133. // is hidden and goes away.
  9134. // EVENT_SYSTEM_DIALOGSTART
  9135. // EVENT_SYSTEM_DIALOGEND
  9136. //
  9137. EVENT_SYSTEM_DIALOGSTART = $0010;
  9138. {$EXTERNALSYM EVENT_SYSTEM_DIALOGSTART}
  9139. EVENT_SYSTEM_DIALOGEND = $0011;
  9140. {$EXTERNALSYM EVENT_SYSTEM_DIALOGEND}
  9141. //
  9142. // EVENT_SYSTEM_SCROLLING
  9143. // EVENT_SYSTEM_SCROLLINGSTART
  9144. // EVENT_SYSTEM_SCROLLINGEND
  9145. // Sent when beginning and ending the tracking of a scrollbar in a window,
  9146. // and also for scrollbar controls.
  9147. //
  9148. EVENT_SYSTEM_SCROLLINGSTART = $0012;
  9149. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGSTART}
  9150. EVENT_SYSTEM_SCROLLINGEND = $0013;
  9151. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGEND}
  9152. //
  9153. // Alt-Tab Window
  9154. // Send the START notification right after the switch window is initialized
  9155. // and visible. Send the END right before it is hidden and goes away.
  9156. // EVENT_SYSTEM_SWITCHSTART
  9157. // EVENT_SYSTEM_SWITCHEND
  9158. //
  9159. EVENT_SYSTEM_SWITCHSTART = $0014;
  9160. {$EXTERNALSYM EVENT_SYSTEM_SWITCHSTART}
  9161. EVENT_SYSTEM_SWITCHEND = $0015;
  9162. {$EXTERNALSYM EVENT_SYSTEM_SWITCHEND}
  9163. //
  9164. // EVENT_SYSTEM_MINIMIZESTART
  9165. // EVENT_SYSTEM_MINIMIZEEND
  9166. // Sent when a window minimizes and just before it restores.
  9167. //
  9168. EVENT_SYSTEM_MINIMIZESTART = $0016;
  9169. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZESTART}
  9170. EVENT_SYSTEM_MINIMIZEEND = $0017;
  9171. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZEEND}
  9172. EVENT_CONSOLE_CARET = $4001;
  9173. {$EXTERNALSYM EVENT_CONSOLE_CARET}
  9174. EVENT_CONSOLE_UPDATE_REGION = $4002;
  9175. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_REGION}
  9176. EVENT_CONSOLE_UPDATE_SIMPLE = $4003;
  9177. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SIMPLE}
  9178. EVENT_CONSOLE_UPDATE_SCROLL = $4004;
  9179. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SCROLL}
  9180. EVENT_CONSOLE_LAYOUT = $4005;
  9181. {$EXTERNALSYM EVENT_CONSOLE_LAYOUT}
  9182. EVENT_CONSOLE_START_APPLICATION = $4006;
  9183. {$EXTERNALSYM EVENT_CONSOLE_START_APPLICATION}
  9184. EVENT_CONSOLE_END_APPLICATION = $4007;
  9185. {$EXTERNALSYM EVENT_CONSOLE_END_APPLICATION}
  9186. //
  9187. // Flags for EVENT_CONSOLE_START/END_APPLICATION.
  9188. //
  9189. CONSOLE_APPLICATION_16BIT = $0001;
  9190. {$EXTERNALSYM CONSOLE_APPLICATION_16BIT}
  9191. //
  9192. // Flags for EVENT_CONSOLE_CARET
  9193. //
  9194. CONSOLE_CARET_SELECTION = $0001;
  9195. {$EXTERNALSYM CONSOLE_CARET_SELECTION}
  9196. CONSOLE_CARET_VISIBLE = $0002;
  9197. {$EXTERNALSYM CONSOLE_CARET_VISIBLE}
  9198. //
  9199. // Object events
  9200. // The system AND apps generate these. The system generates these for
  9201. // real windows. Apps generate these for objects within their window which
  9202. // act like a separate control, e.g. an item in a list view.
  9203. // When the system generate them, dwParam2 is always WMOBJID_SELF. When
  9204. // apps generate them, apps put the has-meaning-to-the-app-only ID value
  9205. // in dwParam2.
  9206. // For all events, if you want detailed accessibility information, callers
  9207. // should
  9208. // * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
  9209. // of the event, and IID_IAccessible as the REFIID, to get back an
  9210. // IAccessible* to talk to
  9211. // * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
  9212. // parameter of the event.
  9213. // * If idChild isn't zero, call get_accChild() in the container to see
  9214. // if the child is an object in its own right. If so, you will get
  9215. // back an IDispatch* object for the child. You should release the
  9216. // parent, and call QueryInterface() on the child object to get its
  9217. // IAccessible*. Then you talk directly to the child. Otherwise,
  9218. // if get_accChild() returns you nothing, you should continue to
  9219. // use the child VARIANT. You will ask the container for the properties
  9220. // of the child identified by the VARIANT. In other words, the
  9221. // child in this case is accessible but not a full-blown object.
  9222. // Like a button on a titlebar which is 'small' and has no children.
  9223. //
  9224. //
  9225. // For all EVENT_OBJECT events,
  9226. // hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL,
  9227. // see above for system things)
  9228. // idObject is the ID of the object that can resolve any queries a
  9229. // client might have. It's a way to deal with windowless controls,
  9230. // controls that are just drawn on the screen in some larger parent
  9231. // window (like SDM), or standard frame elements of a window.
  9232. // idChild is the piece inside of the object that is affected. This
  9233. // allows clients to access things that are too small to have full
  9234. // blown objects in their own right. Like the thumb of a scrollbar.
  9235. // The hwnd/idObject pair gets you to the container, the dude you
  9236. // probably want to talk to most of the time anyway. The idChild
  9237. // can then be passed into the acc properties to get the name/value
  9238. // of it as needed.
  9239. // Example #1:
  9240. // System propagating a listbox selection change
  9241. // EVENT_OBJECT_SELECTION
  9242. // hwnd == listbox hwnd
  9243. // idObject == OBJID_WINDOW
  9244. // idChild == new selected item, or CHILDID_SELF if
  9245. // nothing now selected within container.
  9246. // Word '97 propagating a listbox selection change
  9247. // hwnd == SDM window
  9248. // idObject == SDM ID to get at listbox 'control'
  9249. // idChild == new selected item, or CHILDID_SELF if
  9250. // nothing
  9251. // Example #2:
  9252. // System propagating a menu item selection on the menu bar
  9253. // EVENT_OBJECT_SELECTION
  9254. // hwnd == top level window
  9255. // idObject == OBJID_MENU
  9256. // idChild == ID of child menu bar item selected
  9257. // *
  9258. // Example #3:
  9259. // System propagating a dropdown coming off of said menu bar item
  9260. // EVENT_OBJECT_CREATE
  9261. // hwnd == popup item
  9262. // idObject == OBJID_WINDOW
  9263. // idChild == CHILDID_SELF
  9264. //
  9265. // Example #4:
  9266. //
  9267. // For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the
  9268. // PARENT container in which the zorder is occurring. This is because if
  9269. // one child is zordering, all of them are changing their relative zorder.
  9270. //
  9271. EVENT_OBJECT_CREATE = $8000; // hwnd + ID + idChild is created item
  9272. {$EXTERNALSYM EVENT_OBJECT_CREATE}
  9273. EVENT_OBJECT_DESTROY = $8001; // hwnd + ID + idChild is destroyed item
  9274. {$EXTERNALSYM EVENT_OBJECT_DESTROY}
  9275. EVENT_OBJECT_SHOW = $8002; // hwnd + ID + idChild is shown item
  9276. {$EXTERNALSYM EVENT_OBJECT_SHOW}
  9277. EVENT_OBJECT_HIDE = $8003; // hwnd + ID + idChild is hidden item
  9278. {$EXTERNALSYM EVENT_OBJECT_HIDE}
  9279. EVENT_OBJECT_REORDER = $8004; // hwnd + ID + idChild is parent of zordering children
  9280. {$EXTERNALSYM EVENT_OBJECT_REORDER}
  9281. //
  9282. // NOTE:
  9283. // Minimize the number of notifications!
  9284. //
  9285. // When you are hiding a parent object, obviously all child objects are no
  9286. // longer visible on screen. They still have the same "visible" status,
  9287. // but are not truly visible. Hence do not send HIDE notifications for the
  9288. // children also. One implies all. The same goes for SHOW.
  9289. //
  9290. EVENT_OBJECT_FOCUS = $8005; // hwnd + ID + idChild is focused item
  9291. {$EXTERNALSYM EVENT_OBJECT_FOCUS}
  9292. EVENT_OBJECT_SELECTION = $8006; // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
  9293. {$EXTERNALSYM EVENT_OBJECT_SELECTION}
  9294. EVENT_OBJECT_SELECTIONADD = $8007; // hwnd + ID + idChild is item added
  9295. {$EXTERNALSYM EVENT_OBJECT_SELECTIONADD}
  9296. EVENT_OBJECT_SELECTIONREMOVE = $8008; // hwnd + ID + idChild is item removed
  9297. {$EXTERNALSYM EVENT_OBJECT_SELECTIONREMOVE}
  9298. EVENT_OBJECT_SELECTIONWITHIN = $8009; // hwnd + ID + idChild is parent of changed selected items
  9299. {$EXTERNALSYM EVENT_OBJECT_SELECTIONWITHIN}
  9300. //
  9301. // NOTES:
  9302. // There is only one "focused" child item in a parent. This is the place
  9303. // keystrokes are going at a given moment. Hence only send a notification
  9304. // about where the NEW focus is going. A NEW item getting the focus already
  9305. // implies that the OLD item is losing it.
  9306. //
  9307. // SELECTION however can be multiple. Hence the different SELECTION
  9308. // notifications. Here's when to use each:
  9309. //
  9310. // (1) Send a SELECTION notification in the simple single selection
  9311. // case (like the focus) when the item with the selection is
  9312. // merely moving to a different item within a container. hwnd + ID
  9313. // is the container control, idChildItem is the new child with the
  9314. // selection.
  9315. //
  9316. // (2) Send a SELECTIONADD notification when a new item has simply been added
  9317. // to the selection within a container. This is appropriate when the
  9318. // number of newly selected items is very small. hwnd + ID is the
  9319. // container control, idChildItem is the new child added to the selection.
  9320. //
  9321. // (3) Send a SELECTIONREMOVE notification when a new item has simply been
  9322. // removed from the selection within a container. This is appropriate
  9323. // when the number of newly selected items is very small, just like
  9324. // SELECTIONADD. hwnd + ID is the container control, idChildItem is the
  9325. // new child removed from the selection.
  9326. //
  9327. // (4) Send a SELECTIONWITHIN notification when the selected items within a
  9328. // control have changed substantially. Rather than propagate a large
  9329. // number of changes to reflect removal for some items, addition of
  9330. // others, just tell somebody who cares that a lot happened. It will
  9331. // be faster an easier for somebody watching to just turn around and
  9332. // query the container control what the new bunch of selected items
  9333. // are.
  9334. //
  9335. EVENT_OBJECT_STATECHANGE = $800A; // hwnd + ID + idChild is item w/ state change
  9336. {$EXTERNALSYM EVENT_OBJECT_STATECHANGE}
  9337. //
  9338. // Examples of when to send an EVENT_OBJECT_STATECHANGE include
  9339. // * It is being enabled/disabled (USER does for windows)
  9340. // * It is being pressed/released (USER does for buttons)
  9341. // * It is being checked/unchecked (USER does for radio/check buttons)
  9342. //
  9343. EVENT_OBJECT_LOCATIONCHANGE = $800B; // hwnd + ID + idChild is moved/sized item
  9344. {$EXTERNALSYM EVENT_OBJECT_LOCATIONCHANGE}
  9345. //
  9346. // Note:
  9347. // A LOCATIONCHANGE is not sent for every child object when the parent
  9348. // changes shape/moves. Send one notification for the topmost object
  9349. // that is changing. For example, if the user resizes a top level window,
  9350. // USER will generate a LOCATIONCHANGE for it, but not for the menu bar,
  9351. // title bar, scrollbars, etc. that are also changing shape/moving.
  9352. //
  9353. // In other words, it only generates LOCATIONCHANGE notifications for
  9354. // real windows that are moving/sizing. It will not generate a LOCATIONCHANGE
  9355. // for every non-floating child window when the parent moves (the children are
  9356. // logically moving also on screen, but not relative to the parent).
  9357. //
  9358. // Now, if the app itself resizes child windows as a result of being
  9359. // sized, USER will generate LOCATIONCHANGEs for those dudes also because
  9360. // it doesn't know better.
  9361. //
  9362. // Note also that USER will generate LOCATIONCHANGE notifications for two
  9363. // non-window sys objects:
  9364. // (1) System caret
  9365. // (2) Cursor
  9366. //
  9367. EVENT_OBJECT_NAMECHANGE = $800C; // hwnd + ID + idChild is item w/ name change
  9368. {$EXTERNALSYM EVENT_OBJECT_NAMECHANGE}
  9369. EVENT_OBJECT_DESCRIPTIONCHANGE = $800D; // hwnd + ID + idChild is item w/ desc change
  9370. {$EXTERNALSYM EVENT_OBJECT_DESCRIPTIONCHANGE}
  9371. EVENT_OBJECT_VALUECHANGE = $800E; // hwnd + ID + idChild is item w/ value change
  9372. {$EXTERNALSYM EVENT_OBJECT_VALUECHANGE}
  9373. EVENT_OBJECT_PARENTCHANGE = $800F; // hwnd + ID + idChild is item w/ new parent
  9374. {$EXTERNALSYM EVENT_OBJECT_PARENTCHANGE}
  9375. EVENT_OBJECT_HELPCHANGE = $8010; // hwnd + ID + idChild is item w/ help change
  9376. {$EXTERNALSYM EVENT_OBJECT_HELPCHANGE}
  9377. EVENT_OBJECT_DEFACTIONCHANGE = $8011; // hwnd + ID + idChild is item w/ def action change
  9378. {$EXTERNALSYM EVENT_OBJECT_DEFACTIONCHANGE}
  9379. EVENT_OBJECT_ACCELERATORCHANGE = $8012; // hwnd + ID + idChild is item w/ keybd accel change
  9380. {$EXTERNALSYM EVENT_OBJECT_ACCELERATORCHANGE}
  9381. //
  9382. // Child IDs
  9383. //
  9384. //
  9385. // System Sounds (idChild of system SOUND notification)
  9386. //
  9387. SOUND_SYSTEM_STARTUP = 1;
  9388. {$EXTERNALSYM SOUND_SYSTEM_STARTUP}
  9389. SOUND_SYSTEM_SHUTDOWN = 2;
  9390. {$EXTERNALSYM SOUND_SYSTEM_SHUTDOWN}
  9391. SOUND_SYSTEM_BEEP = 3;
  9392. {$EXTERNALSYM SOUND_SYSTEM_BEEP}
  9393. SOUND_SYSTEM_ERROR = 4;
  9394. {$EXTERNALSYM SOUND_SYSTEM_ERROR}
  9395. SOUND_SYSTEM_QUESTION = 5;
  9396. {$EXTERNALSYM SOUND_SYSTEM_QUESTION}
  9397. SOUND_SYSTEM_WARNING = 6;
  9398. {$EXTERNALSYM SOUND_SYSTEM_WARNING}
  9399. SOUND_SYSTEM_INFORMATION = 7;
  9400. {$EXTERNALSYM SOUND_SYSTEM_INFORMATION}
  9401. SOUND_SYSTEM_MAXIMIZE = 8;
  9402. {$EXTERNALSYM SOUND_SYSTEM_MAXIMIZE}
  9403. SOUND_SYSTEM_MINIMIZE = 9;
  9404. {$EXTERNALSYM SOUND_SYSTEM_MINIMIZE}
  9405. SOUND_SYSTEM_RESTOREUP = 10;
  9406. {$EXTERNALSYM SOUND_SYSTEM_RESTOREUP}
  9407. SOUND_SYSTEM_RESTOREDOWN = 11;
  9408. {$EXTERNALSYM SOUND_SYSTEM_RESTOREDOWN}
  9409. SOUND_SYSTEM_APPSTART = 12;
  9410. {$EXTERNALSYM SOUND_SYSTEM_APPSTART}
  9411. SOUND_SYSTEM_FAULT = 13;
  9412. {$EXTERNALSYM SOUND_SYSTEM_FAULT}
  9413. SOUND_SYSTEM_APPEND = 14;
  9414. {$EXTERNALSYM SOUND_SYSTEM_APPEND}
  9415. SOUND_SYSTEM_MENUCOMMAND = 15;
  9416. {$EXTERNALSYM SOUND_SYSTEM_MENUCOMMAND}
  9417. SOUND_SYSTEM_MENUPOPUP = 16;
  9418. {$EXTERNALSYM SOUND_SYSTEM_MENUPOPUP}
  9419. CSOUND_SYSTEM = 16;
  9420. {$EXTERNALSYM CSOUND_SYSTEM}
  9421. //
  9422. // System Alerts (indexChild of system ALERT notification)
  9423. //
  9424. ALERT_SYSTEM_INFORMATIONAL = 1; // MB_INFORMATION
  9425. {$EXTERNALSYM ALERT_SYSTEM_INFORMATIONAL}
  9426. ALERT_SYSTEM_WARNING = 2; // MB_WARNING
  9427. {$EXTERNALSYM ALERT_SYSTEM_WARNING}
  9428. ALERT_SYSTEM_ERROR = 3; // MB_ERROR
  9429. {$EXTERNALSYM ALERT_SYSTEM_ERROR}
  9430. ALERT_SYSTEM_QUERY = 4; // MB_QUESTION
  9431. {$EXTERNALSYM ALERT_SYSTEM_QUERY}
  9432. ALERT_SYSTEM_CRITICAL = 5; // HardSysErrBox
  9433. {$EXTERNALSYM ALERT_SYSTEM_CRITICAL}
  9434. CALERT_SYSTEM = 6;
  9435. {$EXTERNALSYM CALERT_SYSTEM}
  9436. type
  9437. LPGUITHREADINFO = ^GUITHREADINFO;
  9438. {$EXTERNALSYM LPGUITHREADINFO}
  9439. tagGUITHREADINFO = record
  9440. cbSize: DWORD;
  9441. flags: DWORD;
  9442. hwndActive: HWND;
  9443. hwndFocus: HWND;
  9444. hwndCapture: HWND;
  9445. hwndMenuOwner: HWND;
  9446. hwndMoveSize: HWND;
  9447. hwndCaret: HWND;
  9448. rcCaret: RECT;
  9449. end;
  9450. {$EXTERNALSYM tagGUITHREADINFO}
  9451. GUITHREADINFO = tagGUITHREADINFO;
  9452. {$EXTERNALSYM GUITHREADINFO}
  9453. TGuiThreadInfo = GUITHREADINFO;
  9454. PGuiThreadInfo = LPGUITHREADINFO;
  9455. const
  9456. GUI_CARETBLINKING = $00000001;
  9457. {$EXTERNALSYM GUI_CARETBLINKING}
  9458. GUI_INMOVESIZE = $00000002;
  9459. {$EXTERNALSYM GUI_INMOVESIZE}
  9460. GUI_INMENUMODE = $00000004;
  9461. {$EXTERNALSYM GUI_INMENUMODE}
  9462. GUI_SYSTEMMENUMODE = $00000008;
  9463. {$EXTERNALSYM GUI_SYSTEMMENUMODE}
  9464. GUI_POPUPMENUMODE = $00000010;
  9465. {$EXTERNALSYM GUI_POPUPMENUMODE}
  9466. GUI_16BITTASK = $00000020;
  9467. {$EXTERNALSYM GUI_16BITTASK}
  9468. function GetGUIThreadInfo(idThread: DWORD; var pgui: GUITHREADINFO): BOOL; stdcall;
  9469. {$EXTERNALSYM GetGUIThreadInfo}
  9470. function GetWindowModuleFileNameA(hwnd: HWND; pszFileName: LPSTR; cchFileNameMax: UINT): UINT; stdcall;
  9471. {$EXTERNALSYM GetWindowModuleFileNameA}
  9472. function GetWindowModuleFileNameW(hwnd: HWND; pszFileName: LPWSTR; cchFileNameMax: UINT): UINT; stdcall;
  9473. {$EXTERNALSYM GetWindowModuleFileNameW}
  9474. function GetWindowModuleFileName(hwnd: HWND; pszFileName: LPTSTR; cchFileNameMax: UINT): UINT; stdcall;
  9475. {$EXTERNALSYM GetWindowModuleFileName}
  9476. const
  9477. STATE_SYSTEM_UNAVAILABLE = $00000001; // Disabled
  9478. {$EXTERNALSYM STATE_SYSTEM_UNAVAILABLE}
  9479. STATE_SYSTEM_SELECTED = $00000002;
  9480. {$EXTERNALSYM STATE_SYSTEM_SELECTED}
  9481. STATE_SYSTEM_FOCUSED = $00000004;
  9482. {$EXTERNALSYM STATE_SYSTEM_FOCUSED}
  9483. STATE_SYSTEM_PRESSED = $00000008;
  9484. {$EXTERNALSYM STATE_SYSTEM_PRESSED}
  9485. STATE_SYSTEM_CHECKED = $00000010;
  9486. {$EXTERNALSYM STATE_SYSTEM_CHECKED}
  9487. STATE_SYSTEM_MIXED = $00000020; // 3-state checkbox or toolbar button
  9488. {$EXTERNALSYM STATE_SYSTEM_MIXED}
  9489. STATE_SYSTEM_INDETERMINATE = STATE_SYSTEM_MIXED;
  9490. {$EXTERNALSYM STATE_SYSTEM_INDETERMINATE}
  9491. STATE_SYSTEM_READONLY = $00000040;
  9492. {$EXTERNALSYM STATE_SYSTEM_READONLY}
  9493. STATE_SYSTEM_HOTTRACKED = $00000080;
  9494. {$EXTERNALSYM STATE_SYSTEM_HOTTRACKED}
  9495. STATE_SYSTEM_DEFAULT = $00000100;
  9496. {$EXTERNALSYM STATE_SYSTEM_DEFAULT}
  9497. STATE_SYSTEM_EXPANDED = $00000200;
  9498. {$EXTERNALSYM STATE_SYSTEM_EXPANDED}
  9499. STATE_SYSTEM_COLLAPSED = $00000400;
  9500. {$EXTERNALSYM STATE_SYSTEM_COLLAPSED}
  9501. STATE_SYSTEM_BUSY = $00000800;
  9502. {$EXTERNALSYM STATE_SYSTEM_BUSY}
  9503. STATE_SYSTEM_FLOATING = $00001000; // Children "owned" not "contained" by parent
  9504. {$EXTERNALSYM STATE_SYSTEM_FLOATING}
  9505. STATE_SYSTEM_MARQUEED = $00002000;
  9506. {$EXTERNALSYM STATE_SYSTEM_MARQUEED}
  9507. STATE_SYSTEM_ANIMATED = $00004000;
  9508. {$EXTERNALSYM STATE_SYSTEM_ANIMATED}
  9509. STATE_SYSTEM_INVISIBLE = $00008000;
  9510. {$EXTERNALSYM STATE_SYSTEM_INVISIBLE}
  9511. STATE_SYSTEM_OFFSCREEN = $00010000;
  9512. {$EXTERNALSYM STATE_SYSTEM_OFFSCREEN}
  9513. STATE_SYSTEM_SIZEABLE = $00020000;
  9514. {$EXTERNALSYM STATE_SYSTEM_SIZEABLE}
  9515. STATE_SYSTEM_MOVEABLE = $00040000;
  9516. {$EXTERNALSYM STATE_SYSTEM_MOVEABLE}
  9517. STATE_SYSTEM_SELFVOICING = $00080000;
  9518. {$EXTERNALSYM STATE_SYSTEM_SELFVOICING}
  9519. STATE_SYSTEM_FOCUSABLE = $00100000;
  9520. {$EXTERNALSYM STATE_SYSTEM_FOCUSABLE}
  9521. STATE_SYSTEM_SELECTABLE = $00200000;
  9522. {$EXTERNALSYM STATE_SYSTEM_SELECTABLE}
  9523. STATE_SYSTEM_LINKED = $00400000;
  9524. {$EXTERNALSYM STATE_SYSTEM_LINKED}
  9525. STATE_SYSTEM_TRAVERSED = $00800000;
  9526. {$EXTERNALSYM STATE_SYSTEM_TRAVERSED}
  9527. STATE_SYSTEM_MULTISELECTABLE = $01000000; // Supports multiple selection
  9528. {$EXTERNALSYM STATE_SYSTEM_MULTISELECTABLE}
  9529. STATE_SYSTEM_EXTSELECTABLE = $02000000; // Supports extended selection
  9530. {$EXTERNALSYM STATE_SYSTEM_EXTSELECTABLE}
  9531. STATE_SYSTEM_ALERT_LOW = $04000000; // This information is of low priority
  9532. {$EXTERNALSYM STATE_SYSTEM_ALERT_LOW}
  9533. STATE_SYSTEM_ALERT_MEDIUM = $08000000; // This information is of medium priority
  9534. {$EXTERNALSYM STATE_SYSTEM_ALERT_MEDIUM}
  9535. STATE_SYSTEM_ALERT_HIGH = $10000000; // This information is of high priority
  9536. {$EXTERNALSYM STATE_SYSTEM_ALERT_HIGH}
  9537. STATE_SYSTEM_PROTECTED = $20000000; // access to this is restricted
  9538. {$EXTERNALSYM STATE_SYSTEM_PROTECTED}
  9539. STATE_SYSTEM_VALID = $3FFFFFFF;
  9540. {$EXTERNALSYM STATE_SYSTEM_VALID}
  9541. CCHILDREN_TITLEBAR = 5;
  9542. {$EXTERNALSYM CCHILDREN_TITLEBAR}
  9543. CCHILDREN_SCROLLBAR = 5;
  9544. {$EXTERNALSYM CCHILDREN_SCROLLBAR}
  9545. //
  9546. // Information about the global cursor.
  9547. //
  9548. type
  9549. LPCURSORINFO = ^CURSORINFO;
  9550. {$EXTERNALSYM LPCURSORINFO}
  9551. tagCURSORINFO = record
  9552. cbSize: DWORD;
  9553. flags: DWORD;
  9554. hCursor: HCURSOR;
  9555. ptScreenPos: POINT;
  9556. end;
  9557. {$EXTERNALSYM tagCURSORINFO}
  9558. CURSORINFO = tagCURSORINFO;
  9559. {$EXTERNALSYM CURSORINFO}
  9560. TCursorInfo = CURSORINFO;
  9561. PCursorInfo = LPCURSORINFO;
  9562. const
  9563. CURSOR_SHOWING = $00000001;
  9564. {$EXTERNALSYM CURSOR_SHOWING}
  9565. function GetCursorInfo(var pci: CURSORINFO): BOOL; stdcall;
  9566. {$EXTERNALSYM GetCursorInfo}
  9567. //
  9568. // Window information snapshot
  9569. //
  9570. type
  9571. LPWINDOWINFO = ^WINDOWINFO;
  9572. {$EXTERNALSYM LPWINDOWINFO}
  9573. tagWINDOWINFO = record
  9574. cbSize: DWORD;
  9575. rcWindow: RECT;
  9576. rcClient: RECT;
  9577. dwStyle: DWORD;
  9578. dwExStyle: DWORD;
  9579. dwWindowStatus: DWORD;
  9580. cxWindowBorders: UINT;
  9581. cyWindowBorders: UINT;
  9582. atomWindowType: ATOM;
  9583. wCreatorVersion: WORD;
  9584. end;
  9585. {$EXTERNALSYM tagWINDOWINFO}
  9586. WINDOWINFO = tagWINDOWINFO;
  9587. {$EXTERNALSYM WINDOWINFO}
  9588. TWindowInfo = WINDOWINFO;
  9589. PWindowInfo = LPWINDOWINFO;
  9590. const
  9591. WS_ACTIVECAPTION = $0001;
  9592. {$EXTERNALSYM WS_ACTIVECAPTION}
  9593. function GetWindowInfo(hwnd: HWND; var pwi: WINDOWINFO): BOOL; stdcall;
  9594. {$EXTERNALSYM GetWindowInfo}
  9595. //
  9596. // Titlebar information.
  9597. //
  9598. type
  9599. LPTITLEBARINFO = ^TITLEBARINFO;
  9600. {$EXTERNALSYM LPTITLEBARINFO}
  9601. tagTITLEBARINFO = record
  9602. cbSize: DWORD;
  9603. rcTitleBar: RECT;
  9604. rgstate: array [0..CCHILDREN_TITLEBAR] of DWORD;
  9605. end;
  9606. {$EXTERNALSYM tagTITLEBARINFO}
  9607. TITLEBARINFO = tagTITLEBARINFO;
  9608. {$EXTERNALSYM TITLEBARINFO}
  9609. TTitleBarInfo = TITLEBARINFO;
  9610. PTitleBarInfo = LPTITLEBARINFO;
  9611. function GetTitleBarInfo(hwnd: HWND; var pti: TITLEBARINFO): BOOL; stdcall;
  9612. {$EXTERNALSYM GetTitleBarInfo}
  9613. //
  9614. // Menubar information
  9615. //
  9616. type
  9617. LPMENUBARINFO = ^MENUBARINFO;
  9618. {$EXTERNALSYM LPMENUBARINFO}
  9619. tagMENUBARINFO = record
  9620. cbSize: DWORD;
  9621. rcBar: RECT; // rect of bar, popup, item
  9622. hMenu: HMENU; // real menu handle of bar, popup
  9623. hwndMenu: HWND; // hwnd of item submenu if one
  9624. Flags: DWORD;
  9625. // BOOL fBarFocused:1; // bar, popup has the focus
  9626. // BOOL fFocused:1; // item has the focus
  9627. end;
  9628. {$EXTERNALSYM tagMENUBARINFO}
  9629. MENUBARINFO = tagMENUBARINFO;
  9630. {$EXTERNALSYM MENUBARINFO}
  9631. TMenuBarInfo = MENUBARINFO;
  9632. PMenuBarInfo = LPMENUBARINFO;
  9633. function GetMenuBarInfo(hwnd: HWND; idObject: LONG; idItem: LONG;
  9634. var pmbi: MENUBARINFO): BOOL; stdcall;
  9635. {$EXTERNALSYM GetMenuBarInfo}
  9636. //
  9637. // Scrollbar information
  9638. //
  9639. type
  9640. LPSCROLLBARINFO = ^SCROLLBARINFO;
  9641. {$EXTERNALSYM LPSCROLLBARINFO}
  9642. tagSCROLLBARINFO = record
  9643. cbSize: DWORD;
  9644. rcScrollBar: RECT;
  9645. dxyLineButton: Integer;
  9646. xyThumbTop: Integer;
  9647. xyThumbBottom: Integer;
  9648. reserved: Integer;
  9649. rgstate: array [0..CCHILDREN_SCROLLBAR] of DWORD;
  9650. end;
  9651. {$EXTERNALSYM tagSCROLLBARINFO}
  9652. SCROLLBARINFO = tagSCROLLBARINFO;
  9653. {$EXTERNALSYM SCROLLBARINFO}
  9654. TScrollBarInfo = SCROLLBARINFO;
  9655. PScrollBarInfo = LPSCROLLBARINFO;
  9656. function GetScrollBarInfo(hwnd: HWND; idObject: LONG; var psbi: SCROLLBARINFO): BOOL; stdcall;
  9657. {$EXTERNALSYM GetScrollBarInfo}
  9658. //
  9659. // Combobox information
  9660. //
  9661. type
  9662. LPCOMBOBOXINFO = ^COMBOBOXINFO;
  9663. {$EXTERNALSYM LPCOMBOBOXINFO}
  9664. tagCOMBOBOXINFO = record
  9665. cbSize: DWORD;
  9666. rcItem: RECT;
  9667. rcButton: RECT;
  9668. stateButton: DWORD;
  9669. hwndCombo: HWND;
  9670. hwndItem: HWND;
  9671. hwndList: HWND;
  9672. end;
  9673. {$EXTERNALSYM tagCOMBOBOXINFO}
  9674. COMBOBOXINFO = tagCOMBOBOXINFO;
  9675. {$EXTERNALSYM COMBOBOXINFO}
  9676. TComboBoxInfo = COMBOBOXINFO;
  9677. PComboBoxInfo = LPCOMBOBOXINFO;
  9678. function GetComboBoxInfo(hwndCombo: HWND; var pcbi: COMBOBOXINFO): BOOL; stdcall;
  9679. {$EXTERNALSYM GetComboBoxInfo}
  9680. //
  9681. // The "real" ancestor window
  9682. //
  9683. const
  9684. GA_PARENT = 1;
  9685. {$EXTERNALSYM GA_PARENT}
  9686. GA_ROOT = 2;
  9687. {$EXTERNALSYM GA_ROOT}
  9688. GA_ROOTOWNER = 3;
  9689. {$EXTERNALSYM GA_ROOTOWNER}
  9690. function GetAncestor(hwnd: HWND; gaFlags: UINT): HWND; stdcall;
  9691. {$EXTERNALSYM GetAncestor}
  9692. //
  9693. // This gets the REAL child window at the point. If it is in the dead
  9694. // space of a group box, it will try a sibling behind it. But static
  9695. // fields will get returned. In other words, it is kind of a cross between
  9696. // ChildWindowFromPointEx and WindowFromPoint.
  9697. //
  9698. function RealChildWindowFromPoint(hwndParent: HWND; ptParentClientCoords: POINT): HWND; stdcall;
  9699. {$EXTERNALSYM RealChildWindowFromPoint}
  9700. //
  9701. // This gets the name of the window TYPE, not class. This allows us to
  9702. // recognize ThunderButton32 et al.
  9703. //
  9704. function RealGetWindowClassA(hwnd: HWND; pszType: LPSTR; cchType: UINT): UINT; stdcall;
  9705. {$EXTERNALSYM RealGetWindowClassA}
  9706. //
  9707. // This gets the name of the window TYPE, not class. This allows us to
  9708. // recognize ThunderButton32 et al.
  9709. //
  9710. function RealGetWindowClassW(hwnd: HWND; pszType: LPWSTR; cchType: UINT): UINT; stdcall;
  9711. {$EXTERNALSYM RealGetWindowClassW}
  9712. function RealGetWindowClass(hwnd: HWND; pszType: LPTSTR; cchType: UINT): UINT; stdcall;
  9713. {$EXTERNALSYM RealGetWindowClass}
  9714. //
  9715. // Alt-Tab Switch window information.
  9716. //
  9717. type
  9718. LPALTTABINFO = ^ALTTABINFO;
  9719. {$EXTERNALSYM LPALTTABINFO}
  9720. tagALTTABINFO = record
  9721. cbSize: DWORD;
  9722. cItems: Integer;
  9723. cColumns: Integer;
  9724. cRows: Integer;
  9725. iColFocus: Integer;
  9726. iRowFocus: Integer;
  9727. cxItem: Integer;
  9728. cyItem: Integer;
  9729. ptStart: POINT;
  9730. end;
  9731. {$EXTERNALSYM tagALTTABINFO}
  9732. ALTTABINFO = tagALTTABINFO;
  9733. {$EXTERNALSYM ALTTABINFO}
  9734. TAltTabInfo = ALTTABINFO;
  9735. PAltTabInfo = LPALTTABINFO;
  9736. function GetAltTabInfoA(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9737. pszItemText: LPSTR; cchItemText: UINT): BOOL; stdcall;
  9738. {$EXTERNALSYM GetAltTabInfoA}
  9739. function GetAltTabInfoW(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9740. pszItemText: LPWSTR; cchItemText: UINT): BOOL; stdcall;
  9741. {$EXTERNALSYM GetAltTabInfoW}
  9742. function GetAltTabInfo(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9743. pszItemText: LPTSTR; cchItemText: UINT): BOOL; stdcall;
  9744. {$EXTERNALSYM GetAltTabInfo}
  9745. //
  9746. // Listbox information.
  9747. // Returns the number of items per row.
  9748. //
  9749. function GetListBoxInfo(hwnd: HWND): DWORD; stdcall;
  9750. {$EXTERNALSYM GetListBoxInfo}
  9751. function LockWorkStation: BOOL; stdcall;
  9752. {$EXTERNALSYM LockWorkStation}
  9753. function UserHandleGrantAccess(hUserHandle, hJob: HANDLE; bGrant: BOOL): BOOL; stdcall;
  9754. {$EXTERNALSYM UserHandleGrantAccess}
  9755. //
  9756. // Raw Input Messages.
  9757. //
  9758. type
  9759. HRAWINPUT = HANDLE;
  9760. {$EXTERNALSYM HRAWINPUT}
  9761. //
  9762. // WM_INPUT wParam
  9763. //
  9764. //
  9765. // Use this macro to get the input code from wParam.
  9766. //
  9767. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  9768. {$EXTERNALSYM GET_RAWINPUT_CODE_WPARAM}
  9769. //
  9770. // The input is in the regular message flow,
  9771. // the app is required to call DefWindowProc
  9772. // so that the system can perform clean ups.
  9773. //
  9774. const
  9775. RIM_INPUT = 0;
  9776. {$EXTERNALSYM RIM_INPUT}
  9777. //
  9778. // The input is sink only. The app is expected
  9779. // to behave nicely.
  9780. //
  9781. RIM_INPUTSINK = 1;
  9782. {$EXTERNALSYM RIM_INPUTSINK}
  9783. //
  9784. // Raw Input data header
  9785. //
  9786. type
  9787. tagRAWINPUTHEADER = record
  9788. dwType: DWORD;
  9789. dwSize: DWORD;
  9790. hDevice: HANDLE;
  9791. wParam: WPARAM;
  9792. end;
  9793. {$EXTERNALSYM tagRAWINPUTHEADER}
  9794. RAWINPUTHEADER = tagRAWINPUTHEADER;
  9795. {$EXTERNALSYM RAWINPUTHEADER}
  9796. PRAWINPUTHEADER = ^RAWINPUTHEADER;
  9797. {$EXTERNALSYM PRAWINPUTHEADER}
  9798. LPRAWINPUTHEADER = ^RAWINPUTHEADER;
  9799. {$EXTERNALSYM LPRAWINPUTHEADER}
  9800. TRawInputHeader = RAWINPUTHEADER;
  9801. //
  9802. // Type of the raw input
  9803. //
  9804. const
  9805. RIM_TYPEMOUSE = 0;
  9806. {$EXTERNALSYM RIM_TYPEMOUSE}
  9807. RIM_TYPEKEYBOARD = 1;
  9808. {$EXTERNALSYM RIM_TYPEKEYBOARD}
  9809. RIM_TYPEHID = 2;
  9810. {$EXTERNALSYM RIM_TYPEHID}
  9811. //
  9812. // Raw format of the mouse input
  9813. //
  9814. type
  9815. tagRAWMOUSE = record
  9816. //
  9817. // Indicator flags.
  9818. //
  9819. usFlags: USHORT;
  9820. //
  9821. // The transition state of the mouse buttons.
  9822. //
  9823. union: record
  9824. case Integer of
  9825. 0: (
  9826. ulButtons: ULONG);
  9827. 1: (
  9828. usButtonFlags: USHORT;
  9829. usButtonData: USHORT);
  9830. end;
  9831. //
  9832. // The raw state of the mouse buttons.
  9833. //
  9834. ulRawButtons: ULONG;
  9835. //
  9836. // The signed relative or absolute motion in the X direction.
  9837. //
  9838. lLastX: LONG;
  9839. //
  9840. // The signed relative or absolute motion in the Y direction.
  9841. //
  9842. lLastY: LONG;
  9843. //
  9844. // Device-specific additional information for the event.
  9845. //
  9846. ulExtraInformation: ULONG;
  9847. end;
  9848. {$EXTERNALSYM tagRAWMOUSE}
  9849. RAWMOUSE = tagRAWMOUSE;
  9850. {$EXTERNALSYM RAWMOUSE}
  9851. PRAWMOUSE = ^RAWMOUSE;
  9852. {$EXTERNALSYM PRAWMOUSE}
  9853. LPRAWMOUSE = ^RAWMOUSE;
  9854. {$EXTERNALSYM LPRAWMOUSE}
  9855. TRawMouse = RAWMOUSE;
  9856. //
  9857. // Define the mouse button state indicators.
  9858. //
  9859. const
  9860. RI_MOUSE_LEFT_BUTTON_DOWN = $0001; // Left Button changed to down.
  9861. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_DOWN}
  9862. RI_MOUSE_LEFT_BUTTON_UP = $0002; // Left Button changed to up.
  9863. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_UP}
  9864. RI_MOUSE_RIGHT_BUTTON_DOWN = $0004; // Right Button changed to down.
  9865. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_DOWN}
  9866. RI_MOUSE_RIGHT_BUTTON_UP = $0008; // Right Button changed to up.
  9867. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_UP}
  9868. RI_MOUSE_MIDDLE_BUTTON_DOWN = $0010; // Middle Button changed to down.
  9869. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_DOWN}
  9870. RI_MOUSE_MIDDLE_BUTTON_UP = $0020; // Middle Button changed to up.
  9871. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_UP}
  9872. RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
  9873. {$EXTERNALSYM RI_MOUSE_BUTTON_1_DOWN}
  9874. RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP;
  9875. {$EXTERNALSYM RI_MOUSE_BUTTON_1_UP}
  9876. RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
  9877. {$EXTERNALSYM RI_MOUSE_BUTTON_2_DOWN}
  9878. RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP;
  9879. {$EXTERNALSYM RI_MOUSE_BUTTON_2_UP}
  9880. RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
  9881. {$EXTERNALSYM RI_MOUSE_BUTTON_3_DOWN}
  9882. RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP;
  9883. {$EXTERNALSYM RI_MOUSE_BUTTON_3_UP}
  9884. RI_MOUSE_BUTTON_4_DOWN = $0040;
  9885. {$EXTERNALSYM RI_MOUSE_BUTTON_4_DOWN}
  9886. RI_MOUSE_BUTTON_4_UP = $0080;
  9887. {$EXTERNALSYM RI_MOUSE_BUTTON_4_UP}
  9888. RI_MOUSE_BUTTON_5_DOWN = $0100;
  9889. {$EXTERNALSYM RI_MOUSE_BUTTON_5_DOWN}
  9890. RI_MOUSE_BUTTON_5_UP = $0200;
  9891. {$EXTERNALSYM RI_MOUSE_BUTTON_5_UP}
  9892. //
  9893. // If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
  9894. // Take it as a signed value.
  9895. //
  9896. RI_MOUSE_WHEEL = $0400;
  9897. {$EXTERNALSYM RI_MOUSE_WHEEL}
  9898. //
  9899. // Define the mouse indicator flags.
  9900. //
  9901. MOUSE_MOVE_RELATIVE = 0;
  9902. {$EXTERNALSYM MOUSE_MOVE_RELATIVE}
  9903. MOUSE_MOVE_ABSOLUTE = 1;
  9904. {$EXTERNALSYM MOUSE_MOVE_ABSOLUTE}
  9905. MOUSE_VIRTUAL_DESKTOP = $02; // the coordinates are mapped to the virtual desktop
  9906. {$EXTERNALSYM MOUSE_VIRTUAL_DESKTOP}
  9907. MOUSE_ATTRIBUTES_CHANGED = $04; // requery for mouse attributes
  9908. {$EXTERNALSYM MOUSE_ATTRIBUTES_CHANGED}
  9909. //
  9910. // Raw format of the keyboard input
  9911. //
  9912. type
  9913. tagRAWKEYBOARD = record
  9914. //
  9915. // The "make" scan code (key depression).
  9916. //
  9917. MakeCode: USHORT;
  9918. //
  9919. // The flags field indicates a "break" (key release) and other
  9920. // miscellaneous scan code information defined in ntddkbd.h.
  9921. //
  9922. Flags: USHORT;
  9923. Reserved: USHORT;
  9924. //
  9925. // Windows message compatible information
  9926. //
  9927. VKey: USHORT;
  9928. Message: UINT;
  9929. //
  9930. // Device-specific additional information for the event.
  9931. //
  9932. ExtraInformation: ULONG;
  9933. end;
  9934. {$EXTERNALSYM tagRAWKEYBOARD}
  9935. RAWKEYBOARD = tagRAWKEYBOARD;
  9936. {$EXTERNALSYM RAWKEYBOARD}
  9937. PRAWKEYBOARD = ^RAWKEYBOARD;
  9938. {$EXTERNALSYM PRAWKEYBOARD}
  9939. LPRAWKEYBOARD = ^RAWKEYBOARD;
  9940. {$EXTERNALSYM LPRAWKEYBOARD}
  9941. TRawKeyBoard = RAWKEYBOARD;
  9942. //
  9943. // Define the keyboard overrun MakeCode.
  9944. //
  9945. const
  9946. KEYBOARD_OVERRUN_MAKE_CODE = $FF;
  9947. {$EXTERNALSYM KEYBOARD_OVERRUN_MAKE_CODE}
  9948. //
  9949. // Define the keyboard input data Flags.
  9950. //
  9951. RI_KEY_MAKE = 0;
  9952. {$EXTERNALSYM RI_KEY_MAKE}
  9953. RI_KEY_BREAK = 1;
  9954. {$EXTERNALSYM RI_KEY_BREAK}
  9955. RI_KEY_E0 = 2;
  9956. {$EXTERNALSYM RI_KEY_E0}
  9957. RI_KEY_E1 = 4;
  9958. {$EXTERNALSYM RI_KEY_E1}
  9959. RI_KEY_TERMSRV_SET_LED = 8;
  9960. {$EXTERNALSYM RI_KEY_TERMSRV_SET_LED}
  9961. RI_KEY_TERMSRV_SHADOW = $10;
  9962. {$EXTERNALSYM RI_KEY_TERMSRV_SHADOW}
  9963. //
  9964. // Raw format of the input from Human Input Devices
  9965. //
  9966. type
  9967. tagRAWHID = record
  9968. dwSizeHid: DWORD; // byte size of each report
  9969. dwCount: DWORD; // number of input packed
  9970. bRawData: array [0..0] of BYTE;
  9971. end;
  9972. {$EXTERNALSYM tagRAWHID}
  9973. RAWHID = tagRAWHID;
  9974. {$EXTERNALSYM RAWHID}
  9975. PRAWHID = ^RAWHID;
  9976. {$EXTERNALSYM PRAWHID}
  9977. LPRAWHID = ^RAWHID;
  9978. {$EXTERNALSYM LPRAWHID}
  9979. TRawHid = RAWHID;
  9980. //
  9981. // RAWINPUT data structure.
  9982. //
  9983. tagRAWINPUT = record
  9984. header: RAWINPUTHEADER;
  9985. case Integer of
  9986. 0: (mouse: RAWMOUSE);
  9987. 1: (keyboard: RAWKEYBOARD);
  9988. 2: (hid: RAWHID);
  9989. end;
  9990. {$EXTERNALSYM tagRAWINPUT}
  9991. RAWINPUT = tagRAWINPUT;
  9992. {$EXTERNALSYM RAWINPUT}
  9993. PRAWINPUT = ^RAWINPUT;
  9994. {$EXTERNALSYM PRAWINPUT}
  9995. LPRAWINPUT = ^RAWINPUT;
  9996. {$EXTERNALSYM LPRAWINPUT}
  9997. TRawInput = RAWINPUT;
  9998. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  9999. {$EXTERNALSYM RAWINPUT_ALIGN}
  10000. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10001. {$EXTERNALSYM NEXTRAWINPUTBLOCK}
  10002. //
  10003. // Flags for GetRawInputData
  10004. //
  10005. const
  10006. RID_INPUT = $10000003;
  10007. {$EXTERNALSYM RID_INPUT}
  10008. RID_HEADER = $10000005;
  10009. {$EXTERNALSYM RID_HEADER}
  10010. function GetRawInputData(hRawInput: HRAWINPUT; uiCommand: UINT; pData: LPVOID;
  10011. var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10012. {$EXTERNALSYM GetRawInputData}
  10013. //
  10014. // Raw Input Device Information
  10015. //
  10016. const
  10017. RIDI_PREPARSEDDATA = $20000005;
  10018. {$EXTERNALSYM RIDI_PREPARSEDDATA}
  10019. RIDI_DEVICENAME = $20000007; // the return valus is the character length, not the byte size
  10020. {$EXTERNALSYM RIDI_DEVICENAME}
  10021. RIDI_DEVICEINFO = $2000000b;
  10022. {$EXTERNALSYM RIDI_DEVICEINFO}
  10023. type
  10024. PRID_DEVICE_INFO_MOUSE = ^RID_DEVICE_INFO_MOUSE;
  10025. {$EXTERNALSYM PRID_DEVICE_INFO_MOUSE}
  10026. tagRID_DEVICE_INFO_MOUSE = record
  10027. dwId: DWORD;
  10028. dwNumberOfButtons: DWORD;
  10029. dwSampleRate: DWORD;
  10030. end;
  10031. {$EXTERNALSYM tagRID_DEVICE_INFO_MOUSE}
  10032. RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;
  10033. {$EXTERNALSYM RID_DEVICE_INFO_MOUSE}
  10034. TRidDeviceInfoMouse = RID_DEVICE_INFO_MOUSE;
  10035. PRidDeviceInfoMouse = PRID_DEVICE_INFO_MOUSE;
  10036. PRID_DEVICE_INFO_KEYBOARD = ^RID_DEVICE_INFO_KEYBOARD;
  10037. {$EXTERNALSYM PRID_DEVICE_INFO_KEYBOARD}
  10038. tagRID_DEVICE_INFO_KEYBOARD = record
  10039. dwType: DWORD;
  10040. dwSubType: DWORD;
  10041. dwKeyboardMode: DWORD;
  10042. dwNumberOfFunctionKeys: DWORD;
  10043. dwNumberOfIndicators: DWORD;
  10044. dwNumberOfKeysTotal: DWORD;
  10045. end;
  10046. {$EXTERNALSYM tagRID_DEVICE_INFO_KEYBOARD}
  10047. RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;
  10048. {$EXTERNALSYM RID_DEVICE_INFO_KEYBOARD}
  10049. TRidDeviceInfoKeyboard = RID_DEVICE_INFO_KEYBOARD;
  10050. PRidDeviceInfoKeyboard = PRID_DEVICE_INFO_KEYBOARD;
  10051. PRID_DEVICE_INFO_HID = ^RID_DEVICE_INFO_HID;
  10052. {$EXTERNALSYM PRID_DEVICE_INFO_HID}
  10053. tagRID_DEVICE_INFO_HID = record
  10054. dwVendorId: DWORD;
  10055. dwProductId: DWORD;
  10056. dwVersionNumber: DWORD;
  10057. //
  10058. // Top level collection UsagePage and Usage
  10059. //
  10060. usUsagePage: USHORT;
  10061. usUsage: USHORT;
  10062. end;
  10063. {$EXTERNALSYM tagRID_DEVICE_INFO_HID}
  10064. RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;
  10065. {$EXTERNALSYM RID_DEVICE_INFO_HID}
  10066. TRidDeviceInfoHid = RID_DEVICE_INFO_HID;
  10067. PRidDeviceInfoHid = PRID_DEVICE_INFO_HID;
  10068. tagRID_DEVICE_INFO = record
  10069. cbSize: DWORD;
  10070. dwType: DWORD;
  10071. case Integer of
  10072. 0: (mouse: RID_DEVICE_INFO_MOUSE);
  10073. 1: (keyboard: RID_DEVICE_INFO_KEYBOARD);
  10074. 2: (hid: RID_DEVICE_INFO_HID);
  10075. end;
  10076. {$EXTERNALSYM tagRID_DEVICE_INFO}
  10077. RID_DEVICE_INFO = tagRID_DEVICE_INFO;
  10078. {$EXTERNALSYM RID_DEVICE_INFO}
  10079. PRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10080. {$EXTERNALSYM PRID_DEVICE_INFO}
  10081. LPRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10082. {$EXTERNALSYM LPRID_DEVICE_INFO}
  10083. TRidDeviceInfo = RID_DEVICE_INFO;
  10084. PRidDeviceInfo = PRID_DEVICE_INFO;
  10085. function GetRawInputDeviceInfoA(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10086. var pcbSize: UINT): UINT; stdcall;
  10087. {$EXTERNALSYM GetRawInputDeviceInfoA}
  10088. function GetRawInputDeviceInfoW(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10089. var pcbSize: UINT): UINT; stdcall;
  10090. {$EXTERNALSYM GetRawInputDeviceInfoW}
  10091. function GetRawInputDeviceInfo(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10092. var pcbSize: UINT): UINT; stdcall;
  10093. {$EXTERNALSYM GetRawInputDeviceInfo}
  10094. //
  10095. // Raw Input Bulk Read: GetRawInputBuffer
  10096. //
  10097. function GetRawInputBuffer(pData: PRAWINPUT; var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10098. {$EXTERNALSYM GetRawInputBuffer}
  10099. //
  10100. // Raw Input request APIs
  10101. //
  10102. type
  10103. LPRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10104. {$EXTERNALSYM LPRAWINPUTDEVICE}
  10105. PRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10106. {$EXTERNALSYM PRAWINPUTDEVICE}
  10107. tagRAWINPUTDEVICE = record
  10108. usUsagePage: USHORT; // Toplevel collection UsagePage
  10109. usUsage: USHORT; // Toplevel collection Usage
  10110. dwFlags: DWORD;
  10111. hwndTarget: HWND; // Target hwnd. NULL = follows keyboard focus
  10112. end;
  10113. {$EXTERNALSYM tagRAWINPUTDEVICE}
  10114. RAWINPUTDEVICE = tagRAWINPUTDEVICE;
  10115. {$EXTERNALSYM RAWINPUTDEVICE}
  10116. TRawInputDevice = RAWINPUTDEVICE;
  10117. const
  10118. RIDEV_REMOVE = $00000001;
  10119. {$EXTERNALSYM RIDEV_REMOVE}
  10120. RIDEV_EXCLUDE = $00000010;
  10121. {$EXTERNALSYM RIDEV_EXCLUDE}
  10122. RIDEV_PAGEONLY = $00000020;
  10123. {$EXTERNALSYM RIDEV_PAGEONLY}
  10124. RIDEV_NOLEGACY = $00000030;
  10125. {$EXTERNALSYM RIDEV_NOLEGACY}
  10126. RIDEV_INPUTSINK = $00000100;
  10127. {$EXTERNALSYM RIDEV_INPUTSINK}
  10128. RIDEV_CAPTUREMOUSE = $00000200; // effective when mouse nolegacy is specified, otherwise it would be an error
  10129. {$EXTERNALSYM RIDEV_CAPTUREMOUSE}
  10130. RIDEV_NOHOTKEYS = $00000200; // effective for keyboard.
  10131. {$EXTERNALSYM RIDEV_NOHOTKEYS}
  10132. RIDEV_APPKEYS = $00000400; // effective for keyboard.
  10133. {$EXTERNALSYM RIDEV_APPKEYS}
  10134. RIDEV_EXMODEMASK = $000000F0;
  10135. {$EXTERNALSYM RIDEV_EXMODEMASK}
  10136. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10137. {$EXTERNALSYM RIDEV_EXMODE}
  10138. function RegisterRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10139. uiNumDevices: UINT; cbSize: UINT): BOOL; stdcall;
  10140. {$EXTERNALSYM RegisterRawInputDevices}
  10141. function GetRegisteredRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10142. var puiNumDevices: UINT; cbSize: UINT): UINT; stdcall;
  10143. {$EXTERNALSYM GetRegisteredRawInputDevices}
  10144. type
  10145. PRAWINPUTDEVICELIST = ^RAWINPUTDEVICELIST;
  10146. {$EXTERNALSYM PRAWINPUTDEVICELIST}
  10147. tagRAWINPUTDEVICELIST = record
  10148. hDevice: HANDLE;
  10149. dwType: DWORD;
  10150. end;
  10151. {$EXTERNALSYM tagRAWINPUTDEVICELIST}
  10152. RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
  10153. {$EXTERNALSYM RAWINPUTDEVICELIST}
  10154. TRawInputDeviceList = RAWINPUTDEVICELIST;
  10155. function GetRawInputDeviceList(pRawInputDeviceList: PRAWINPUTDEVICELIST; var puiNumDevices: UINT;
  10156. cbSize: UINT): UINT; stdcall;
  10157. {$EXTERNALSYM GetRawInputDeviceList}
  10158. function DefRawInputProc(paRawInput: PRAWINPUT; nInput: Integer; cbSizeHeader: UINT): LRESULT; stdcall;
  10159. {$EXTERNALSYM DefRawInputProc}
  10160. implementation
  10161. const
  10162. user32 = 'user32.dll';
  10163. {$IFDEF UNICODE}
  10164. AWSuffix = 'W';
  10165. {$ELSE}
  10166. AWSuffix = 'A';
  10167. {$ENDIF UNICODE}
  10168. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  10169. begin
  10170. Result := (ULONG_PTR(wInteger) shr 16) = 0;
  10171. end;
  10172. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  10173. begin
  10174. Result := SHORT(HIWORD(wParam));
  10175. end;
  10176. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  10177. begin
  10178. Result := LOWORD(wParam);
  10179. end;
  10180. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  10181. begin
  10182. Result := LOWORD(wParam);
  10183. end;
  10184. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  10185. begin
  10186. Result := HIWORD(wParam);
  10187. end;
  10188. {$IFDEF WIN2000_UP}
  10189. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): Shortint;
  10190. begin
  10191. Result := Shortint(HIWORD(lParam) and not FAPPCOMMAND_MASK);
  10192. end;
  10193. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  10194. begin
  10195. Result := WORD(HIWORD(lParam) and FAPPCOMMAND_MASK);
  10196. end;
  10197. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  10198. begin
  10199. Result := GET_DEVICE_LPARAM(lParam);
  10200. end;
  10201. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  10202. begin
  10203. Result := LOWORD(lParam);
  10204. end;
  10205. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  10206. begin
  10207. Result := GET_FLAGS_LPARAM(lParam);
  10208. end;
  10209. {$ENDIF WIN2000_UP}
  10210. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  10211. begin
  10212. Result := WPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10213. end;
  10214. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  10215. begin
  10216. Result := LPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10217. end;
  10218. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  10219. begin
  10220. Result := LRESULT(DWORD(MAKELONG(wLow, wHigh)));
  10221. end;
  10222. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  10223. begin
  10224. Result := ExitWindowsEx(EWX_LOGOFF, $FFFFFFFF);
  10225. end;
  10226. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10227. begin
  10228. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10229. end;
  10230. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10231. begin
  10232. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10233. end;
  10234. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10235. begin
  10236. {$IFDEF UNICODE}
  10237. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10238. {$ELSE}
  10239. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10240. {$ENDIF UNICODE}
  10241. end;
  10242. function CreateWindowA(lpClassName: LPCSTR; lpWindowName: LPCSTR; dwStyle: DWORD;
  10243. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10244. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  10245. begin
  10246. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10247. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10248. end;
  10249. function CreateWindowW(lpClassName: LPCWSTR; lpWindowName: LPCWSTR; dwStyle: DWORD;
  10250. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10251. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  10252. begin
  10253. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10254. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10255. end;
  10256. function CreateWindow(lpClassName: LPCTSTR; lpWindowName: LPCTSTR; dwStyle: DWORD;
  10257. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10258. hInstance: HINSTANCE; lpParam: LPVOID): HWND;
  10259. begin
  10260. {$IFDEF UNICODE}
  10261. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10262. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10263. {$ELSE}
  10264. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10265. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10266. {$ENDIF UNICODE}
  10267. end;
  10268. function CreateDialogA(hInstance: HINSTANCE; lpName: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10269. begin
  10270. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10271. end;
  10272. function CreateDialogW(hInstance: HINSTANCE; lpName: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10273. begin
  10274. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10275. end;
  10276. function CreateDialog(hInstance: HINSTANCE; lpName: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10277. begin
  10278. {$IFDEF UNICODE}
  10279. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10280. {$ELSE}
  10281. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10282. {$ENDIF UNICODE}
  10283. end;
  10284. function CreateDialogIndirectA(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  10285. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10286. begin
  10287. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10288. end;
  10289. function CreateDialogIndirectW(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  10290. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10291. begin
  10292. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10293. end;
  10294. function CreateDialogIndirect(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE;
  10295. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10296. begin
  10297. {$IFDEF UNICODE}
  10298. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10299. {$ELSE}
  10300. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10301. {$ENDIF UNICODE}
  10302. end;
  10303. function DialogBoxA(hInstance: HINSTANCE; lpTemplate: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10304. begin
  10305. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10306. end;
  10307. function DialogBoxW(hInstance: HINSTANCE; lpTemplate: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10308. begin
  10309. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10310. end;
  10311. function DialogBox(hInstance: HINSTANCE; lpTemplate: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10312. begin
  10313. {$IFDEF UNICODE}
  10314. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10315. {$ELSE}
  10316. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10317. {$ENDIF UNICODE}
  10318. end;
  10319. function DialogBoxIndirectA(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10320. begin
  10321. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10322. end;
  10323. function DialogBoxIndirectW(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10324. begin
  10325. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10326. end;
  10327. function DialogBoxIndirect(hInstance: HINSTANCE; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10328. begin
  10329. {$IFDEF UNICODE}
  10330. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10331. {$ELSE}
  10332. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10333. {$ENDIF UNICODE}
  10334. end;
  10335. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10336. begin
  10337. Result := CharToOemA(lpszSrc, lpszDst);
  10338. end;
  10339. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10340. begin
  10341. Result := OemToCharA(lpszSrc, lpszDst);
  10342. end;
  10343. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10344. begin
  10345. Result := CharToOemBuffA(lpszSrc, lpszDst, cchDstLength);
  10346. end;
  10347. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10348. begin
  10349. Result := OemToCharBuffA(lpszSrc, lpszDst, cchDstLength);
  10350. end;
  10351. function AnsiUpper(lpsz: LPSTR): LPSTR;
  10352. begin
  10353. Result := CharUpperA(lpsz);
  10354. end;
  10355. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10356. begin
  10357. Result := CharUpperBuffA(lpsz, cchLength);
  10358. end;
  10359. function AnsiLower(lpsz: LPSTR): LPSTR;
  10360. begin
  10361. Result := CharLowerA(lpsz);
  10362. end;
  10363. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10364. begin
  10365. Result := CharLowerBuffA(lpsz, cchLength);
  10366. end;
  10367. function AnsiNext(lpsz: LPCSTR): LPSTR;
  10368. begin
  10369. Result := CharNextA(lpsz);
  10370. end;
  10371. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  10372. begin
  10373. Result := CharPrevA(lpszStart, lpszCurrent);
  10374. end;
  10375. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10376. begin
  10377. Result := GetWindowLongA(hWnd, nIndex);
  10378. end;
  10379. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10380. begin
  10381. Result := GetWindowLongW(hWnd, nIndex);
  10382. end;
  10383. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10384. begin
  10385. {$IFDEF UNICODE}
  10386. Result := GetWindowLongW(hWnd, nIndex);
  10387. {$ELSE}
  10388. Result := GetWindowLongA(hWnd, nIndex);
  10389. {$ENDIF UNICODE}
  10390. end;
  10391. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10392. begin
  10393. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10394. end;
  10395. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10396. begin
  10397. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10398. end;
  10399. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10400. begin
  10401. {$IFDEF UNICODE}
  10402. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10403. {$ELSE}
  10404. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10405. {$ENDIF UNICODE}
  10406. end;
  10407. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10408. begin
  10409. Result := GetClassLongA(hWnd, nIndex);
  10410. end;
  10411. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10412. begin
  10413. Result := GetClassLongW(hWnd, nIndex);
  10414. end;
  10415. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10416. begin
  10417. {$IFDEF UNICODE}
  10418. Result := GetClassLongW(hWnd, nIndex);
  10419. {$ELSE}
  10420. Result := GetClassLongA(hWnd, nIndex);
  10421. {$ENDIF UNICODE}
  10422. end;
  10423. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10424. begin
  10425. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10426. end;
  10427. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10428. begin
  10429. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10430. end;
  10431. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10432. begin
  10433. {$IFDEF UNICODE}
  10434. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10435. {$ELSE}
  10436. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10437. {$ENDIF UNICODE}
  10438. end;
  10439. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  10440. begin
  10441. Result := EnumThreadWindows(ULONG(hTask), lpfn, lParam);
  10442. end;
  10443. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  10444. begin
  10445. Result := GetWindow(hWnd, wCmd);
  10446. end;
  10447. function GetWindowTask(hWnd: HWND): HANDLE;
  10448. begin
  10449. Result := HANDLE(DWORD_PTR(GetWindowThreadProcessId(hWnd, nil)));
  10450. end;
  10451. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  10452. begin
  10453. Result := CallNextHookEx(HHOOK(phhk^), nCode, wParam, lParam);
  10454. end;
  10455. function CopyCursor(pcur: HCURSOR): HCURSOR;
  10456. begin
  10457. Result := HCURSOR(CopyIcon(HICON(pcur)));
  10458. end;
  10459. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  10460. begin
  10461. Result := wParam and $ff;
  10462. end;
  10463. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  10464. begin
  10465. Result := Pointer((Integer(x) + SizeOf(DWORD) - 1) and not (SizeOf(DWORD) - 1));
  10466. end;
  10467. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10468. begin
  10469. Result := PRAWINPUT(DWORD(RAWINPUT_ALIGN(ptr)) + ptr^.header.dwSize);
  10470. end;
  10471. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10472. begin
  10473. Result := mode and RIDEV_EXMODEMASK;
  10474. end;
  10475. {$IFDEF DYNAMIC_LINK}
  10476. var
  10477. _IsHungAppWindow: Pointer;
  10478. function IsHungAppWindow;
  10479. begin
  10480. GetProcedureAddress(_IsHungAppWindow, user32, 'IsHungAppWindow');
  10481. asm
  10482. MOV ESP, EBP
  10483. POP EBP
  10484. JMP [_IsHungAppWindow]
  10485. end;
  10486. end;
  10487. var
  10488. _DisableProcessWindowsGhosting: Pointer;
  10489. procedure DisableProcessWindowsGhosting;
  10490. begin
  10491. GetProcedureAddress(_DisableProcessWindowsGhosting, user32, 'DisableProcessWindowsGhosting');
  10492. asm
  10493. MOV ESP, EBP
  10494. POP EBP
  10495. JMP [_DisableProcessWindowsGhosting]
  10496. end;
  10497. end;
  10498. var
  10499. _wvsprintfA: Pointer;
  10500. function wvsprintfA;
  10501. begin
  10502. GetProcedureAddress(_wvsprintfA, user32, 'wvsprintfA');
  10503. asm
  10504. MOV ESP, EBP
  10505. POP EBP
  10506. JMP [_wvsprintfA]
  10507. end;
  10508. end;
  10509. var
  10510. _wvsprintfW: Pointer;
  10511. function wvsprintfW;
  10512. begin
  10513. GetProcedureAddress(_wvsprintfW, user32, 'wvsprintfW');
  10514. asm
  10515. MOV ESP, EBP
  10516. POP EBP
  10517. JMP [_wvsprintfW]
  10518. end;
  10519. end;
  10520. var
  10521. _wvsprintf: Pointer;
  10522. function wvsprintf;
  10523. begin
  10524. GetProcedureAddress(_wvsprintf, user32, 'wvsprintf' + AWSuffix);
  10525. asm
  10526. MOV ESP, EBP
  10527. POP EBP
  10528. JMP [_wvsprintf]
  10529. end;
  10530. end;
  10531. var
  10532. _wsprintfA: Pointer;
  10533. function wsprintfA;
  10534. begin
  10535. GetProcedureAddress(_wsprintfA, user32, 'wsprintfA');
  10536. asm
  10537. MOV ESP, EBP
  10538. POP EBP
  10539. JMP [_wsprintfA]
  10540. end;
  10541. end;
  10542. var
  10543. _wsprintfW: Pointer;
  10544. function wsprintfW;
  10545. begin
  10546. GetProcedureAddress(_wsprintfW, user32, 'wsprintfW');
  10547. asm
  10548. MOV ESP, EBP
  10549. POP EBP
  10550. JMP [_wsprintfW]
  10551. end;
  10552. end;
  10553. var
  10554. _wsprintf: Pointer;
  10555. function wsprintf;
  10556. begin
  10557. GetProcedureAddress(_wsprintf, user32, 'wsprintf' + AWSuffix);
  10558. asm
  10559. MOV ESP, EBP
  10560. POP EBP
  10561. JMP [_wsprintf]
  10562. end;
  10563. end;
  10564. var
  10565. _LoadKeyboardLayoutA: Pointer;
  10566. function LoadKeyboardLayoutA;
  10567. begin
  10568. GetProcedureAddress(_LoadKeyboardLayoutA, user32, 'LoadKeyboardLayoutA');
  10569. asm
  10570. MOV ESP, EBP
  10571. POP EBP
  10572. JMP [_LoadKeyboardLayoutA]
  10573. end;
  10574. end;
  10575. var
  10576. _LoadKeyboardLayoutW: Pointer;
  10577. function LoadKeyboardLayoutW;
  10578. begin
  10579. GetProcedureAddress(_LoadKeyboardLayoutW, user32, 'LoadKeyboardLayoutW');
  10580. asm
  10581. MOV ESP, EBP
  10582. POP EBP
  10583. JMP [_LoadKeyboardLayoutW]
  10584. end;
  10585. end;
  10586. var
  10587. _LoadKeyboardLayout: Pointer;
  10588. function LoadKeyboardLayout;
  10589. begin
  10590. GetProcedureAddress(_LoadKeyboardLayout, user32, 'LoadKeyboardLayout' + AWSuffix);
  10591. asm
  10592. MOV ESP, EBP
  10593. POP EBP
  10594. JMP [_LoadKeyboardLayout]
  10595. end;
  10596. end;
  10597. var
  10598. _ActivateKeyboardLayout: Pointer;
  10599. function ActivateKeyboardLayout;
  10600. begin
  10601. GetProcedureAddress(_ActivateKeyboardLayout, user32, 'ActivateKeyboardLayout');
  10602. asm
  10603. MOV ESP, EBP
  10604. POP EBP
  10605. JMP [_ActivateKeyboardLayout]
  10606. end;
  10607. end;
  10608. var
  10609. _ToUnicodeEx: Pointer;
  10610. function ToUnicodeEx;
  10611. begin
  10612. GetProcedureAddress(_ToUnicodeEx, user32, 'ToUnicodeEx');
  10613. asm
  10614. MOV ESP, EBP
  10615. POP EBP
  10616. JMP [_ToUnicodeEx]
  10617. end;
  10618. end;
  10619. var
  10620. _UnloadKeyboardLayout: Pointer;
  10621. function UnloadKeyboardLayout;
  10622. begin
  10623. GetProcedureAddress(_UnloadKeyboardLayout, user32, 'UnloadKeyboardLayout');
  10624. asm
  10625. MOV ESP, EBP
  10626. POP EBP
  10627. JMP [_UnloadKeyboardLayout]
  10628. end;
  10629. end;
  10630. var
  10631. _GetKeyboardLayoutNameA: Pointer;
  10632. function GetKeyboardLayoutNameA;
  10633. begin
  10634. GetProcedureAddress(_GetKeyboardLayoutNameA, user32, 'GetKeyboardLayoutNameA');
  10635. asm
  10636. MOV ESP, EBP
  10637. POP EBP
  10638. JMP [_GetKeyboardLayoutNameA]
  10639. end;
  10640. end;
  10641. var
  10642. _GetKeyboardLayoutNameW: Pointer;
  10643. function GetKeyboardLayoutNameW;
  10644. begin
  10645. GetProcedureAddress(_GetKeyboardLayoutNameW, user32, 'GetKeyboardLayoutNameW');
  10646. asm
  10647. MOV ESP, EBP
  10648. POP EBP
  10649. JMP [_GetKeyboardLayoutNameW]
  10650. end;
  10651. end;
  10652. var
  10653. _GetKeyboardLayoutName: Pointer;
  10654. function GetKeyboardLayoutName;
  10655. begin
  10656. GetProcedureAddress(_GetKeyboardLayoutName, user32, 'GetKeyboardLayoutName' + AWSuffix);
  10657. asm
  10658. MOV ESP, EBP
  10659. POP EBP
  10660. JMP [_GetKeyboardLayoutName]
  10661. end;
  10662. end;
  10663. var
  10664. _GetKeyboardLayoutList: Pointer;
  10665. function GetKeyboardLayoutList;
  10666. begin
  10667. GetProcedureAddress(_GetKeyboardLayoutList, user32, 'GetKeyboardLayoutList');
  10668. asm
  10669. MOV ESP, EBP
  10670. POP EBP
  10671. JMP [_GetKeyboardLayoutList]
  10672. end;
  10673. end;
  10674. var
  10675. _GetKeyboardLayout: Pointer;
  10676. function GetKeyboardLayout;
  10677. begin
  10678. GetProcedureAddress(_GetKeyboardLayout, user32, 'GetKeyboardLayout');
  10679. asm
  10680. MOV ESP, EBP
  10681. POP EBP
  10682. JMP [_GetKeyboardLayout]
  10683. end;
  10684. end;
  10685. var
  10686. _GetMouseMovePointsEx: Pointer;
  10687. function GetMouseMovePointsEx;
  10688. begin
  10689. GetProcedureAddress(_GetMouseMovePointsEx, user32, 'GetMouseMovePointsEx');
  10690. asm
  10691. MOV ESP, EBP
  10692. POP EBP
  10693. JMP [_GetMouseMovePointsEx]
  10694. end;
  10695. end;
  10696. var
  10697. _CreateDesktopA: Pointer;
  10698. function CreateDesktopA;
  10699. begin
  10700. GetProcedureAddress(_CreateDesktopA, user32, 'CreateDesktopA');
  10701. asm
  10702. MOV ESP, EBP
  10703. POP EBP
  10704. JMP [_CreateDesktopA]
  10705. end;
  10706. end;
  10707. var
  10708. _CreateDesktopW: Pointer;
  10709. function CreateDesktopW;
  10710. begin
  10711. GetProcedureAddress(_CreateDesktopW, user32, 'CreateDesktopW');
  10712. asm
  10713. MOV ESP, EBP
  10714. POP EBP
  10715. JMP [_CreateDesktopW]
  10716. end;
  10717. end;
  10718. var
  10719. _CreateDesktop: Pointer;
  10720. function CreateDesktop;
  10721. begin
  10722. GetProcedureAddress(_CreateDesktop, user32, 'CreateDesktop' + AWSuffix);
  10723. asm
  10724. MOV ESP, EBP
  10725. POP EBP
  10726. JMP [_CreateDesktop]
  10727. end;
  10728. end;
  10729. var
  10730. _OpenDesktopA: Pointer;
  10731. function OpenDesktopA;
  10732. begin
  10733. GetProcedureAddress(_OpenDesktopA, user32, 'OpenDesktopA');
  10734. asm
  10735. MOV ESP, EBP
  10736. POP EBP
  10737. JMP [_OpenDesktopA]
  10738. end;
  10739. end;
  10740. var
  10741. _OpenDesktopW: Pointer;
  10742. function OpenDesktopW;
  10743. begin
  10744. GetProcedureAddress(_OpenDesktopW, user32, 'OpenDesktopW');
  10745. asm
  10746. MOV ESP, EBP
  10747. POP EBP
  10748. JMP [_OpenDesktopW]
  10749. end;
  10750. end;
  10751. var
  10752. _OpenDesktop: Pointer;
  10753. function OpenDesktop;
  10754. begin
  10755. GetProcedureAddress(_OpenDesktop, user32, 'OpenDesktop' + AWSuffix);
  10756. asm
  10757. MOV ESP, EBP
  10758. POP EBP
  10759. JMP [_OpenDesktop]
  10760. end;
  10761. end;
  10762. var
  10763. _OpenInputDesktop: Pointer;
  10764. function OpenInputDesktop;
  10765. begin
  10766. GetProcedureAddress(_OpenInputDesktop, user32, 'OpenInputDesktop');
  10767. asm
  10768. MOV ESP, EBP
  10769. POP EBP
  10770. JMP [_OpenInputDesktop]
  10771. end;
  10772. end;
  10773. var
  10774. _EnumDesktopsA: Pointer;
  10775. function EnumDesktopsA;
  10776. begin
  10777. GetProcedureAddress(_EnumDesktopsA, user32, 'EnumDesktopsA');
  10778. asm
  10779. MOV ESP, EBP
  10780. POP EBP
  10781. JMP [_EnumDesktopsA]
  10782. end;
  10783. end;
  10784. var
  10785. _EnumDesktopsW: Pointer;
  10786. function EnumDesktopsW;
  10787. begin
  10788. GetProcedureAddress(_EnumDesktopsW, user32, 'EnumDesktopsW');
  10789. asm
  10790. MOV ESP, EBP
  10791. POP EBP
  10792. JMP [_EnumDesktopsW]
  10793. end;
  10794. end;
  10795. var
  10796. _EnumDesktops: Pointer;
  10797. function EnumDesktops;
  10798. begin
  10799. GetProcedureAddress(_EnumDesktops, user32, 'EnumDesktops' + AWSuffix);
  10800. asm
  10801. MOV ESP, EBP
  10802. POP EBP
  10803. JMP [_EnumDesktops]
  10804. end;
  10805. end;
  10806. var
  10807. _EnumDesktopWindows: Pointer;
  10808. function EnumDesktopWindows;
  10809. begin
  10810. GetProcedureAddress(_EnumDesktopWindows, user32, 'EnumDesktopWindows');
  10811. asm
  10812. MOV ESP, EBP
  10813. POP EBP
  10814. JMP [_EnumDesktopWindows]
  10815. end;
  10816. end;
  10817. var
  10818. _SwitchDesktop: Pointer;
  10819. function SwitchDesktop;
  10820. begin
  10821. GetProcedureAddress(_SwitchDesktop, user32, 'SwitchDesktop');
  10822. asm
  10823. MOV ESP, EBP
  10824. POP EBP
  10825. JMP [_SwitchDesktop]
  10826. end;
  10827. end;
  10828. var
  10829. _SetThreadDesktop: Pointer;
  10830. function SetThreadDesktop;
  10831. begin
  10832. GetProcedureAddress(_SetThreadDesktop, user32, 'SetThreadDesktop');
  10833. asm
  10834. MOV ESP, EBP
  10835. POP EBP
  10836. JMP [_SetThreadDesktop]
  10837. end;
  10838. end;
  10839. var
  10840. _CloseDesktop: Pointer;
  10841. function CloseDesktop;
  10842. begin
  10843. GetProcedureAddress(_CloseDesktop, user32, 'CloseDesktop');
  10844. asm
  10845. MOV ESP, EBP
  10846. POP EBP
  10847. JMP [_CloseDesktop]
  10848. end;
  10849. end;
  10850. var
  10851. _GetThreadDesktop: Pointer;
  10852. function GetThreadDesktop;
  10853. begin
  10854. GetProcedureAddress(_GetThreadDesktop, user32, 'GetThreadDesktop');
  10855. asm
  10856. MOV ESP, EBP
  10857. POP EBP
  10858. JMP [_GetThreadDesktop]
  10859. end;
  10860. end;
  10861. var
  10862. _CreateWindowStationA: Pointer;
  10863. function CreateWindowStationA;
  10864. begin
  10865. GetProcedureAddress(_CreateWindowStationA, user32, 'CreateWindowStationA');
  10866. asm
  10867. MOV ESP, EBP
  10868. POP EBP
  10869. JMP [_CreateWindowStationA]
  10870. end;
  10871. end;
  10872. var
  10873. _CreateWindowStationW: Pointer;
  10874. function CreateWindowStationW;
  10875. begin
  10876. GetProcedureAddress(_CreateWindowStationW, user32, 'CreateWindowStationW');
  10877. asm
  10878. MOV ESP, EBP
  10879. POP EBP
  10880. JMP [_CreateWindowStationW]
  10881. end;
  10882. end;
  10883. var
  10884. _CreateWindowStation: Pointer;
  10885. function CreateWindowStation;
  10886. begin
  10887. GetProcedureAddress(_CreateWindowStation, user32, 'CreateWindowStation' + AWSuffix);
  10888. asm
  10889. MOV ESP, EBP
  10890. POP EBP
  10891. JMP [_CreateWindowStation]
  10892. end;
  10893. end;
  10894. var
  10895. _OpenWindowStationA: Pointer;
  10896. function OpenWindowStationA;
  10897. begin
  10898. GetProcedureAddress(_OpenWindowStationA, user32, 'OpenWindowStationA');
  10899. asm
  10900. MOV ESP, EBP
  10901. POP EBP
  10902. JMP [_OpenWindowStationA]
  10903. end;
  10904. end;
  10905. var
  10906. _OpenWindowStationW: Pointer;
  10907. function OpenWindowStationW;
  10908. begin
  10909. GetProcedureAddress(_OpenWindowStationW, user32, 'OpenWindowStationW');
  10910. asm
  10911. MOV ESP, EBP
  10912. POP EBP
  10913. JMP [_OpenWindowStationW]
  10914. end;
  10915. end;
  10916. var
  10917. _OpenWindowStation: Pointer;
  10918. function OpenWindowStation;
  10919. begin
  10920. GetProcedureAddress(_OpenWindowStation, user32, 'OpenWindowStation' + AWSuffix);
  10921. asm
  10922. MOV ESP, EBP
  10923. POP EBP
  10924. JMP [_OpenWindowStation]
  10925. end;
  10926. end;
  10927. var
  10928. _EnumWindowStationsA: Pointer;
  10929. function EnumWindowStationsA;
  10930. begin
  10931. GetProcedureAddress(_EnumWindowStationsA, user32, 'EnumWindowStationsA');
  10932. asm
  10933. MOV ESP, EBP
  10934. POP EBP
  10935. JMP [_EnumWindowStationsA]
  10936. end;
  10937. end;
  10938. var
  10939. _EnumWindowStationsW: Pointer;
  10940. function EnumWindowStationsW;
  10941. begin
  10942. GetProcedureAddress(_EnumWindowStationsW, user32, 'EnumWindowStationsW');
  10943. asm
  10944. MOV ESP, EBP
  10945. POP EBP
  10946. JMP [_EnumWindowStationsW]
  10947. end;
  10948. end;
  10949. var
  10950. _EnumWindowStations: Pointer;
  10951. function EnumWindowStations;
  10952. begin
  10953. GetProcedureAddress(_EnumWindowStations, user32, 'EnumWindowStations' + AWSuffix);
  10954. asm
  10955. MOV ESP, EBP
  10956. POP EBP
  10957. JMP [_EnumWindowStations]
  10958. end;
  10959. end;
  10960. var
  10961. _CloseWindowStation: Pointer;
  10962. function CloseWindowStation;
  10963. begin
  10964. GetProcedureAddress(_CloseWindowStation, user32, 'CloseWindowStation');
  10965. asm
  10966. MOV ESP, EBP
  10967. POP EBP
  10968. JMP [_CloseWindowStation]
  10969. end;
  10970. end;
  10971. var
  10972. _SetProcessWindowStation: Pointer;
  10973. function SetProcessWindowStation;
  10974. begin
  10975. GetProcedureAddress(_SetProcessWindowStation, user32, 'SetProcessWindowStation');
  10976. asm
  10977. MOV ESP, EBP
  10978. POP EBP
  10979. JMP [_SetProcessWindowStation]
  10980. end;
  10981. end;
  10982. var
  10983. _GetProcessWindowStation: Pointer;
  10984. function GetProcessWindowStation;
  10985. begin
  10986. GetProcedureAddress(_GetProcessWindowStation, user32, 'GetProcessWindowStation');
  10987. asm
  10988. MOV ESP, EBP
  10989. POP EBP
  10990. JMP [_GetProcessWindowStation]
  10991. end;
  10992. end;
  10993. var
  10994. _SetUserObjectSecurity: Pointer;
  10995. function SetUserObjectSecurity;
  10996. begin
  10997. GetProcedureAddress(_SetUserObjectSecurity, user32, 'SetUserObjectSecurity');
  10998. asm
  10999. MOV ESP, EBP
  11000. POP EBP
  11001. JMP [_SetUserObjectSecurity]
  11002. end;
  11003. end;
  11004. var
  11005. _GetUserObjectSecurity: Pointer;
  11006. function GetUserObjectSecurity;
  11007. begin
  11008. GetProcedureAddress(_GetUserObjectSecurity, user32, 'GetUserObjectSecurity');
  11009. asm
  11010. MOV ESP, EBP
  11011. POP EBP
  11012. JMP [_GetUserObjectSecurity]
  11013. end;
  11014. end;
  11015. var
  11016. _GetUserObjectInformationA: Pointer;
  11017. function GetUserObjectInformationA;
  11018. begin
  11019. GetProcedureAddress(_GetUserObjectInformationA, user32, 'GetUserObjectInformationA');
  11020. asm
  11021. MOV ESP, EBP
  11022. POP EBP
  11023. JMP [_GetUserObjectInformationA]
  11024. end;
  11025. end;
  11026. var
  11027. _GetUserObjectInformationW: Pointer;
  11028. function GetUserObjectInformationW;
  11029. begin
  11030. GetProcedureAddress(_GetUserObjectInformationW, user32, 'GetUserObjectInformationW');
  11031. asm
  11032. MOV ESP, EBP
  11033. POP EBP
  11034. JMP [_GetUserObjectInformationW]
  11035. end;
  11036. end;
  11037. var
  11038. _GetUserObjectInformation: Pointer;
  11039. function GetUserObjectInformation;
  11040. begin
  11041. GetProcedureAddress(_GetUserObjectInformation, user32, 'GetUserObjectInformation' + AWSuffix);
  11042. asm
  11043. MOV ESP, EBP
  11044. POP EBP
  11045. JMP [_GetUserObjectInformation]
  11046. end;
  11047. end;
  11048. var
  11049. _SetUserObjectInformationA: Pointer;
  11050. function SetUserObjectInformationA;
  11051. begin
  11052. GetProcedureAddress(_SetUserObjectInformationA, user32, 'SetUserObjectInformationA');
  11053. asm
  11054. MOV ESP, EBP
  11055. POP EBP
  11056. JMP [_SetUserObjectInformationA]
  11057. end;
  11058. end;
  11059. var
  11060. _SetUserObjectInformationW: Pointer;
  11061. function SetUserObjectInformationW;
  11062. begin
  11063. GetProcedureAddress(_SetUserObjectInformationW, user32, 'SetUserObjectInformationW');
  11064. asm
  11065. MOV ESP, EBP
  11066. POP EBP
  11067. JMP [_SetUserObjectInformationW]
  11068. end;
  11069. end;
  11070. var
  11071. _SetUserObjectInformation: Pointer;
  11072. function SetUserObjectInformation;
  11073. begin
  11074. GetProcedureAddress(_SetUserObjectInformation, user32, 'SetUserObjectInformation' + AWSuffix);
  11075. asm
  11076. MOV ESP, EBP
  11077. POP EBP
  11078. JMP [_SetUserObjectInformation]
  11079. end;
  11080. end;
  11081. var
  11082. _RegisterWindowMessageA: Pointer;
  11083. function RegisterWindowMessageA;
  11084. begin
  11085. GetProcedureAddress(_RegisterWindowMessageA, user32, 'RegisterWindowMessageA');
  11086. asm
  11087. MOV ESP, EBP
  11088. POP EBP
  11089. JMP [_RegisterWindowMessageA]
  11090. end;
  11091. end;
  11092. var
  11093. _RegisterWindowMessageW: Pointer;
  11094. function RegisterWindowMessageW;
  11095. begin
  11096. GetProcedureAddress(_RegisterWindowMessageW, user32, 'RegisterWindowMessageW');
  11097. asm
  11098. MOV ESP, EBP
  11099. POP EBP
  11100. JMP [_RegisterWindowMessageW]
  11101. end;
  11102. end;
  11103. var
  11104. _RegisterWindowMessage: Pointer;
  11105. function RegisterWindowMessage;
  11106. begin
  11107. GetProcedureAddress(_RegisterWindowMessage, user32, 'RegisterWindowMessage' + AWSuffix);
  11108. asm
  11109. MOV ESP, EBP
  11110. POP EBP
  11111. JMP [_RegisterWindowMessage]
  11112. end;
  11113. end;
  11114. var
  11115. __TrackMouseEvent: Pointer;
  11116. function TrackMouseEvent;
  11117. begin
  11118. GetProcedureAddress(__TrackMouseEvent, user32, 'TrackMouseEvent');
  11119. asm
  11120. MOV ESP, EBP
  11121. POP EBP
  11122. JMP [__TrackMouseEvent]
  11123. end;
  11124. end;
  11125. var
  11126. _DrawEdge: Pointer;
  11127. function DrawEdge;
  11128. begin
  11129. GetProcedureAddress(_DrawEdge, user32, 'DrawEdge');
  11130. asm
  11131. MOV ESP, EBP
  11132. POP EBP
  11133. JMP [_DrawEdge]
  11134. end;
  11135. end;
  11136. var
  11137. _DrawFrameControl: Pointer;
  11138. function DrawFrameControl;
  11139. begin
  11140. GetProcedureAddress(_DrawFrameControl, user32, 'DrawFrameControl');
  11141. asm
  11142. MOV ESP, EBP
  11143. POP EBP
  11144. JMP [_DrawFrameControl]
  11145. end;
  11146. end;
  11147. var
  11148. _DrawCaption: Pointer;
  11149. function DrawCaption;
  11150. begin
  11151. GetProcedureAddress(_DrawCaption, user32, 'DrawCaption');
  11152. asm
  11153. MOV ESP, EBP
  11154. POP EBP
  11155. JMP [_DrawCaption]
  11156. end;
  11157. end;
  11158. var
  11159. _DrawAnimatedRects: Pointer;
  11160. function DrawAnimatedRects;
  11161. begin
  11162. GetProcedureAddress(_DrawAnimatedRects, user32, 'DrawAnimatedRects');
  11163. asm
  11164. MOV ESP, EBP
  11165. POP EBP
  11166. JMP [_DrawAnimatedRects]
  11167. end;
  11168. end;
  11169. var
  11170. _GetMessageA: Pointer;
  11171. function GetMessageA;
  11172. begin
  11173. GetProcedureAddress(_GetMessageA, user32, 'GetMessageA');
  11174. asm
  11175. MOV ESP, EBP
  11176. POP EBP
  11177. JMP [_GetMessageA]
  11178. end;
  11179. end;
  11180. var
  11181. _GetMessageW: Pointer;
  11182. function GetMessageW;
  11183. begin
  11184. GetProcedureAddress(_GetMessageW, user32, 'GetMessageW');
  11185. asm
  11186. MOV ESP, EBP
  11187. POP EBP
  11188. JMP [_GetMessageW]
  11189. end;
  11190. end;
  11191. var
  11192. _GetMessage: Pointer;
  11193. function GetMessage;
  11194. begin
  11195. GetProcedureAddress(_GetMessage, user32, 'GetMessage' + AWSuffix);
  11196. asm
  11197. MOV ESP, EBP
  11198. POP EBP
  11199. JMP [_GetMessage]
  11200. end;
  11201. end;
  11202. var
  11203. _TranslateMessage: Pointer;
  11204. function TranslateMessage;
  11205. begin
  11206. GetProcedureAddress(_TranslateMessage, user32, 'TranslateMessage');
  11207. asm
  11208. MOV ESP, EBP
  11209. POP EBP
  11210. JMP [_TranslateMessage]
  11211. end;
  11212. end;
  11213. var
  11214. _DispatchMessageA: Pointer;
  11215. function DispatchMessageA;
  11216. begin
  11217. GetProcedureAddress(_DispatchMessageA, user32, 'DispatchMessageA');
  11218. asm
  11219. MOV ESP, EBP
  11220. POP EBP
  11221. JMP [_DispatchMessageA]
  11222. end;
  11223. end;
  11224. var
  11225. _DispatchMessageW: Pointer;
  11226. function DispatchMessageW;
  11227. begin
  11228. GetProcedureAddress(_DispatchMessageW, user32, 'DispatchMessageW');
  11229. asm
  11230. MOV ESP, EBP
  11231. POP EBP
  11232. JMP [_DispatchMessageW]
  11233. end;
  11234. end;
  11235. var
  11236. _DispatchMessage: Pointer;
  11237. function DispatchMessage;
  11238. begin
  11239. GetProcedureAddress(_DispatchMessage, user32, 'DispatchMessage' + AWSuffix);
  11240. asm
  11241. MOV ESP, EBP
  11242. POP EBP
  11243. JMP [_DispatchMessage]
  11244. end;
  11245. end;
  11246. var
  11247. _SetMessageQueue: Pointer;
  11248. function SetMessageQueue;
  11249. begin
  11250. GetProcedureAddress(_SetMessageQueue, user32, 'SetMessageQueue');
  11251. asm
  11252. MOV ESP, EBP
  11253. POP EBP
  11254. JMP [_SetMessageQueue]
  11255. end;
  11256. end;
  11257. var
  11258. _PeekMessageA: Pointer;
  11259. function PeekMessageA;
  11260. begin
  11261. GetProcedureAddress(_PeekMessageA, user32, 'PeekMessageA');
  11262. asm
  11263. MOV ESP, EBP
  11264. POP EBP
  11265. JMP [_PeekMessageA]
  11266. end;
  11267. end;
  11268. var
  11269. _PeekMessageW: Pointer;
  11270. function PeekMessageW;
  11271. begin
  11272. GetProcedureAddress(_PeekMessageW, user32, 'PeekMessageW');
  11273. asm
  11274. MOV ESP, EBP
  11275. POP EBP
  11276. JMP [_PeekMessageW]
  11277. end;
  11278. end;
  11279. var
  11280. _PeekMessage: Pointer;
  11281. function PeekMessage;
  11282. begin
  11283. GetProcedureAddress(_PeekMessage, user32, 'PeekMessage' + AWSuffix);
  11284. asm
  11285. MOV ESP, EBP
  11286. POP EBP
  11287. JMP [_PeekMessage]
  11288. end;
  11289. end;
  11290. var
  11291. _RegisterHotKey: Pointer;
  11292. function RegisterHotKey;
  11293. begin
  11294. GetProcedureAddress(_RegisterHotKey, user32, 'RegisterHotKey');
  11295. asm
  11296. MOV ESP, EBP
  11297. POP EBP
  11298. JMP [_RegisterHotKey]
  11299. end;
  11300. end;
  11301. var
  11302. _UnregisterHotKey: Pointer;
  11303. function UnregisterHotKey;
  11304. begin
  11305. GetProcedureAddress(_UnregisterHotKey, user32, 'UnregisterHotKey');
  11306. asm
  11307. MOV ESP, EBP
  11308. POP EBP
  11309. JMP [_UnregisterHotKey]
  11310. end;
  11311. end;
  11312. var
  11313. _ExitWindowsEx: Pointer;
  11314. function ExitWindowsEx;
  11315. begin
  11316. GetProcedureAddress(_ExitWindowsEx, user32, 'ExitWindowsEx');
  11317. asm
  11318. MOV ESP, EBP
  11319. POP EBP
  11320. JMP [_ExitWindowsEx]
  11321. end;
  11322. end;
  11323. var
  11324. _SwapMouseButton: Pointer;
  11325. function SwapMouseButton;
  11326. begin
  11327. GetProcedureAddress(_SwapMouseButton, user32, 'SwapMouseButton');
  11328. asm
  11329. MOV ESP, EBP
  11330. POP EBP
  11331. JMP [_SwapMouseButton]
  11332. end;
  11333. end;
  11334. var
  11335. _GetMessagePos: Pointer;
  11336. function GetMessagePos;
  11337. begin
  11338. GetProcedureAddress(_GetMessagePos, user32, 'GetMessagePos');
  11339. asm
  11340. MOV ESP, EBP
  11341. POP EBP
  11342. JMP [_GetMessagePos]
  11343. end;
  11344. end;
  11345. var
  11346. _GetMessageTime: Pointer;
  11347. function GetMessageTime;
  11348. begin
  11349. GetProcedureAddress(_GetMessageTime, user32, 'GetMessageTime');
  11350. asm
  11351. MOV ESP, EBP
  11352. POP EBP
  11353. JMP [_GetMessageTime]
  11354. end;
  11355. end;
  11356. var
  11357. _GetMessageExtraInfo: Pointer;
  11358. function GetMessageExtraInfo;
  11359. begin
  11360. GetProcedureAddress(_GetMessageExtraInfo, user32, 'GetMessageExtraInfo');
  11361. asm
  11362. MOV ESP, EBP
  11363. POP EBP
  11364. JMP [_GetMessageExtraInfo]
  11365. end;
  11366. end;
  11367. var
  11368. _SetMessageExtraInfo: Pointer;
  11369. function SetMessageExtraInfo;
  11370. begin
  11371. GetProcedureAddress(_SetMessageExtraInfo, user32, 'SetMessageExtraInfo');
  11372. asm
  11373. MOV ESP, EBP
  11374. POP EBP
  11375. JMP [_SetMessageExtraInfo]
  11376. end;
  11377. end;
  11378. var
  11379. _SendMessageA: Pointer;
  11380. function SendMessageA;
  11381. begin
  11382. GetProcedureAddress(_SendMessageA, user32, 'SendMessageA');
  11383. asm
  11384. MOV ESP, EBP
  11385. POP EBP
  11386. JMP [_SendMessageA]
  11387. end;
  11388. end;
  11389. var
  11390. _SendMessageW: Pointer;
  11391. function SendMessageW;
  11392. begin
  11393. GetProcedureAddress(_SendMessageW, user32, 'SendMessageW');
  11394. asm
  11395. MOV ESP, EBP
  11396. POP EBP
  11397. JMP [_SendMessageW]
  11398. end;
  11399. end;
  11400. var
  11401. _SendMessage: Pointer;
  11402. function SendMessage;
  11403. begin
  11404. GetProcedureAddress(_SendMessage, user32, 'SendMessage' + AWSuffix);
  11405. asm
  11406. MOV ESP, EBP
  11407. POP EBP
  11408. JMP [_SendMessage]
  11409. end;
  11410. end;
  11411. var
  11412. _SendMessageTimeoutA: Pointer;
  11413. function SendMessageTimeoutA;
  11414. begin
  11415. GetProcedureAddress(_SendMessageTimeoutA, user32, 'SendMessageTimeoutA');
  11416. asm
  11417. MOV ESP, EBP
  11418. POP EBP
  11419. JMP [_SendMessageTimeoutA]
  11420. end;
  11421. end;
  11422. var
  11423. _SendMessageTimeoutW: Pointer;
  11424. function SendMessageTimeoutW;
  11425. begin
  11426. GetProcedureAddress(_SendMessageTimeoutW, user32, 'SendMessageTimeoutW');
  11427. asm
  11428. MOV ESP, EBP
  11429. POP EBP
  11430. JMP [_SendMessageTimeoutW]
  11431. end;
  11432. end;
  11433. var
  11434. _SendMessageTimeout: Pointer;
  11435. function SendMessageTimeout;
  11436. begin
  11437. GetProcedureAddress(_SendMessageTimeout, user32, 'SendMessageTimeout' + AWSuffix);
  11438. asm
  11439. MOV ESP, EBP
  11440. POP EBP
  11441. JMP [_SendMessageTimeout]
  11442. end;
  11443. end;
  11444. var
  11445. _SendNotifyMessageA: Pointer;
  11446. function SendNotifyMessageA;
  11447. begin
  11448. GetProcedureAddress(_SendNotifyMessageA, user32, 'SendNotifyMessageA');
  11449. asm
  11450. MOV ESP, EBP
  11451. POP EBP
  11452. JMP [_SendNotifyMessageA]
  11453. end;
  11454. end;
  11455. var
  11456. _SendNotifyMessageW: Pointer;
  11457. function SendNotifyMessageW;
  11458. begin
  11459. GetProcedureAddress(_SendNotifyMessageW, user32, 'SendNotifyMessageW');
  11460. asm
  11461. MOV ESP, EBP
  11462. POP EBP
  11463. JMP [_SendNotifyMessageW]
  11464. end;
  11465. end;
  11466. var
  11467. _SendNotifyMessage: Pointer;
  11468. function SendNotifyMessage;
  11469. begin
  11470. GetProcedureAddress(_SendNotifyMessage, user32, 'SendNotifyMessage' + AWSuffix);
  11471. asm
  11472. MOV ESP, EBP
  11473. POP EBP
  11474. JMP [_SendNotifyMessage]
  11475. end;
  11476. end;
  11477. var
  11478. _SendMessageCallbackA: Pointer;
  11479. function SendMessageCallbackA;
  11480. begin
  11481. GetProcedureAddress(_SendMessageCallbackA, user32, 'SendMessageCallbackA');
  11482. asm
  11483. MOV ESP, EBP
  11484. POP EBP
  11485. JMP [_SendMessageCallbackA]
  11486. end;
  11487. end;
  11488. var
  11489. _SendMessageCallbackW: Pointer;
  11490. function SendMessageCallbackW;
  11491. begin
  11492. GetProcedureAddress(_SendMessageCallbackW, user32, 'SendMessageCallbackW');
  11493. asm
  11494. MOV ESP, EBP
  11495. POP EBP
  11496. JMP [_SendMessageCallbackW]
  11497. end;
  11498. end;
  11499. var
  11500. _SendMessageCallback: Pointer;
  11501. function SendMessageCallback;
  11502. begin
  11503. GetProcedureAddress(_SendMessageCallback, user32, 'SendMessageCallback' + AWSuffix);
  11504. asm
  11505. MOV ESP, EBP
  11506. POP EBP
  11507. JMP [_SendMessageCallback]
  11508. end;
  11509. end;
  11510. var
  11511. _BroadcastSystemMessageExA: Pointer;
  11512. function BroadcastSystemMessageExA;
  11513. begin
  11514. GetProcedureAddress(_BroadcastSystemMessageExA, user32, 'BroadcastSystemMessageExA');
  11515. asm
  11516. MOV ESP, EBP
  11517. POP EBP
  11518. JMP [_BroadcastSystemMessageExA]
  11519. end;
  11520. end;
  11521. var
  11522. _BroadcastSystemMessageExW: Pointer;
  11523. function BroadcastSystemMessageExW;
  11524. begin
  11525. GetProcedureAddress(_BroadcastSystemMessageExW, user32, 'BroadcastSystemMessageExW');
  11526. asm
  11527. MOV ESP, EBP
  11528. POP EBP
  11529. JMP [_BroadcastSystemMessageExW]
  11530. end;
  11531. end;
  11532. var
  11533. _BroadcastSystemMessageEx: Pointer;
  11534. function BroadcastSystemMessageEx;
  11535. begin
  11536. GetProcedureAddress(_BroadcastSystemMessageEx, user32, 'BroadcastSystemMessageEx' + AWSuffix);
  11537. asm
  11538. MOV ESP, EBP
  11539. POP EBP
  11540. JMP [_BroadcastSystemMessageEx]
  11541. end;
  11542. end;
  11543. var
  11544. _BroadcastSystemMessageA: Pointer;
  11545. function BroadcastSystemMessageA;
  11546. begin
  11547. GetProcedureAddress(_BroadcastSystemMessageA, user32, 'BroadcastSystemMessageA');
  11548. asm
  11549. MOV ESP, EBP
  11550. POP EBP
  11551. JMP [_BroadcastSystemMessageA]
  11552. end;
  11553. end;
  11554. var
  11555. _BroadcastSystemMessageW: Pointer;
  11556. function BroadcastSystemMessageW;
  11557. begin
  11558. GetProcedureAddress(_BroadcastSystemMessageW, user32, 'BroadcastSystemMessageW');
  11559. asm
  11560. MOV ESP, EBP
  11561. POP EBP
  11562. JMP [_BroadcastSystemMessageW]
  11563. end;
  11564. end;
  11565. var
  11566. _BroadcastSystemMessage: Pointer;
  11567. function BroadcastSystemMessage;
  11568. begin
  11569. GetProcedureAddress(_BroadcastSystemMessage, user32, 'BroadcastSystemMessage' + AWSuffix);
  11570. asm
  11571. MOV ESP, EBP
  11572. POP EBP
  11573. JMP [_BroadcastSystemMessage]
  11574. end;
  11575. end;
  11576. var
  11577. _RegisterDeviceNotificationA: Pointer;
  11578. function RegisterDeviceNotificationA;
  11579. begin
  11580. GetProcedureAddress(_RegisterDeviceNotificationA, user32, 'RegisterDeviceNotificationA');
  11581. asm
  11582. MOV ESP, EBP
  11583. POP EBP
  11584. JMP [_RegisterDeviceNotificationA]
  11585. end;
  11586. end;
  11587. var
  11588. _RegisterDeviceNotificationW: Pointer;
  11589. function RegisterDeviceNotificationW;
  11590. begin
  11591. GetProcedureAddress(_RegisterDeviceNotificationW, user32, 'RegisterDeviceNotificationW');
  11592. asm
  11593. MOV ESP, EBP
  11594. POP EBP
  11595. JMP [_RegisterDeviceNotificationW]
  11596. end;
  11597. end;
  11598. var
  11599. _RegisterDeviceNotification: Pointer;
  11600. function RegisterDeviceNotification;
  11601. begin
  11602. GetProcedureAddress(_RegisterDeviceNotification, user32, 'RegisterDeviceNotification' + AWSuffix);
  11603. asm
  11604. MOV ESP, EBP
  11605. POP EBP
  11606. JMP [_RegisterDeviceNotification]
  11607. end;
  11608. end;
  11609. var
  11610. _UnregisterDeviceNotification: Pointer;
  11611. function UnregisterDeviceNotification;
  11612. begin
  11613. GetProcedureAddress(_UnregisterDeviceNotification, user32, 'UnregisterDeviceNotification');
  11614. asm
  11615. MOV ESP, EBP
  11616. POP EBP
  11617. JMP [_UnregisterDeviceNotification]
  11618. end;
  11619. end;
  11620. var
  11621. _PostMessageA: Pointer;
  11622. function PostMessageA;
  11623. begin
  11624. GetProcedureAddress(_PostMessageA, user32, 'PostMessageA');
  11625. asm
  11626. MOV ESP, EBP
  11627. POP EBP
  11628. JMP [_PostMessageA]
  11629. end;
  11630. end;
  11631. var
  11632. _PostMessageW: Pointer;
  11633. function PostMessageW;
  11634. begin
  11635. GetProcedureAddress(_PostMessageW, user32, 'PostMessageW');
  11636. asm
  11637. MOV ESP, EBP
  11638. POP EBP
  11639. JMP [_PostMessageW]
  11640. end;
  11641. end;
  11642. var
  11643. _PostMessage: Pointer;
  11644. function PostMessage;
  11645. begin
  11646. GetProcedureAddress(_PostMessage, user32, 'PostMessage' + AWSuffix);
  11647. asm
  11648. MOV ESP, EBP
  11649. POP EBP
  11650. JMP [_PostMessage]
  11651. end;
  11652. end;
  11653. var
  11654. _PostThreadMessageA: Pointer;
  11655. function PostThreadMessageA;
  11656. begin
  11657. GetProcedureAddress(_PostThreadMessageA, user32, 'PostThreadMessageA');
  11658. asm
  11659. MOV ESP, EBP
  11660. POP EBP
  11661. JMP [_PostThreadMessageA]
  11662. end;
  11663. end;
  11664. var
  11665. _PostThreadMessageW: Pointer;
  11666. function PostThreadMessageW;
  11667. begin
  11668. GetProcedureAddress(_PostThreadMessageW, user32, 'PostThreadMessageW');
  11669. asm
  11670. MOV ESP, EBP
  11671. POP EBP
  11672. JMP [_PostThreadMessageW]
  11673. end;
  11674. end;
  11675. var
  11676. _PostThreadMessage: Pointer;
  11677. function PostThreadMessage;
  11678. begin
  11679. GetProcedureAddress(_PostThreadMessage, user32, 'PostThreadMessage' + AWSuffix);
  11680. asm
  11681. MOV ESP, EBP
  11682. POP EBP
  11683. JMP [_PostThreadMessage]
  11684. end;
  11685. end;
  11686. var
  11687. _AttachThreadInput: Pointer;
  11688. function AttachThreadInput;
  11689. begin
  11690. GetProcedureAddress(_AttachThreadInput, user32, 'AttachThreadInput');
  11691. asm
  11692. MOV ESP, EBP
  11693. POP EBP
  11694. JMP [_AttachThreadInput]
  11695. end;
  11696. end;
  11697. var
  11698. _ReplyMessage: Pointer;
  11699. function ReplyMessage;
  11700. begin
  11701. GetProcedureAddress(_ReplyMessage, user32, 'ReplyMessage');
  11702. asm
  11703. MOV ESP, EBP
  11704. POP EBP
  11705. JMP [_ReplyMessage]
  11706. end;
  11707. end;
  11708. var
  11709. _WaitMessage: Pointer;
  11710. function WaitMessage;
  11711. begin
  11712. GetProcedureAddress(_WaitMessage, user32, 'WaitMessage');
  11713. asm
  11714. MOV ESP, EBP
  11715. POP EBP
  11716. JMP [_WaitMessage]
  11717. end;
  11718. end;
  11719. var
  11720. _WaitForInputIdle: Pointer;
  11721. function WaitForInputIdle;
  11722. begin
  11723. GetProcedureAddress(_WaitForInputIdle, user32, 'WaitForInputIdle');
  11724. asm
  11725. MOV ESP, EBP
  11726. POP EBP
  11727. JMP [_WaitForInputIdle]
  11728. end;
  11729. end;
  11730. var
  11731. _DefWindowProcA: Pointer;
  11732. function DefWindowProcA;
  11733. begin
  11734. GetProcedureAddress(_DefWindowProcA, user32, 'DefWindowProcA');
  11735. asm
  11736. MOV ESP, EBP
  11737. POP EBP
  11738. JMP [_DefWindowProcA]
  11739. end;
  11740. end;
  11741. var
  11742. _DefWindowProcW: Pointer;
  11743. function DefWindowProcW;
  11744. begin
  11745. GetProcedureAddress(_DefWindowProcW, user32, 'DefWindowProcW');
  11746. asm
  11747. MOV ESP, EBP
  11748. POP EBP
  11749. JMP [_DefWindowProcW]
  11750. end;
  11751. end;
  11752. var
  11753. _DefWindowProc: Pointer;
  11754. function DefWindowProc;
  11755. begin
  11756. GetProcedureAddress(_DefWindowProc, user32, 'DefWindowProc' + AWSuffix);
  11757. asm
  11758. MOV ESP, EBP
  11759. POP EBP
  11760. JMP [_DefWindowProc]
  11761. end;
  11762. end;
  11763. var
  11764. _PostQuitMessage: Pointer;
  11765. procedure PostQuitMessage;
  11766. begin
  11767. GetProcedureAddress(_PostQuitMessage, user32, 'PostQuitMessage');
  11768. asm
  11769. MOV ESP, EBP
  11770. POP EBP
  11771. JMP [_PostQuitMessage]
  11772. end;
  11773. end;
  11774. var
  11775. _CallWindowProcA: Pointer;
  11776. function CallWindowProcA;
  11777. begin
  11778. GetProcedureAddress(_CallWindowProcA, user32, 'CallWindowProcA');
  11779. asm
  11780. MOV ESP, EBP
  11781. POP EBP
  11782. JMP [_CallWindowProcA]
  11783. end;
  11784. end;
  11785. var
  11786. _CallWindowProcW: Pointer;
  11787. function CallWindowProcW;
  11788. begin
  11789. GetProcedureAddress(_CallWindowProcW, user32, 'CallWindowProcW');
  11790. asm
  11791. MOV ESP, EBP
  11792. POP EBP
  11793. JMP [_CallWindowProcW]
  11794. end;
  11795. end;
  11796. var
  11797. _CallWindowProc: Pointer;
  11798. function CallWindowProc;
  11799. begin
  11800. GetProcedureAddress(_CallWindowProc, user32, 'CallWindowProc' + AWSuffix);
  11801. asm
  11802. MOV ESP, EBP
  11803. POP EBP
  11804. JMP [_CallWindowProc]
  11805. end;
  11806. end;
  11807. var
  11808. _InSendMessage: Pointer;
  11809. function InSendMessage;
  11810. begin
  11811. GetProcedureAddress(_InSendMessage, user32, 'InSendMessage');
  11812. asm
  11813. MOV ESP, EBP
  11814. POP EBP
  11815. JMP [_InSendMessage]
  11816. end;
  11817. end;
  11818. var
  11819. _InSendMessageEx: Pointer;
  11820. function InSendMessageEx;
  11821. begin
  11822. GetProcedureAddress(_InSendMessageEx, user32, 'InSendMessageEx');
  11823. asm
  11824. MOV ESP, EBP
  11825. POP EBP
  11826. JMP [_InSendMessageEx]
  11827. end;
  11828. end;
  11829. var
  11830. _GetDoubleClickTime: Pointer;
  11831. function GetDoubleClickTime;
  11832. begin
  11833. GetProcedureAddress(_GetDoubleClickTime, user32, 'GetDoubleClickTime');
  11834. asm
  11835. MOV ESP, EBP
  11836. POP EBP
  11837. JMP [_GetDoubleClickTime]
  11838. end;
  11839. end;
  11840. var
  11841. _SetDoubleClickTime: Pointer;
  11842. function SetDoubleClickTime;
  11843. begin
  11844. GetProcedureAddress(_SetDoubleClickTime, user32, 'SetDoubleClickTime');
  11845. asm
  11846. MOV ESP, EBP
  11847. POP EBP
  11848. JMP [_SetDoubleClickTime]
  11849. end;
  11850. end;
  11851. var
  11852. _RegisterClassA: Pointer;
  11853. function RegisterClassA;
  11854. begin
  11855. GetProcedureAddress(_RegisterClassA, user32, 'RegisterClassA');
  11856. asm
  11857. MOV ESP, EBP
  11858. POP EBP
  11859. JMP [_RegisterClassA]
  11860. end;
  11861. end;
  11862. var
  11863. _RegisterClassW: Pointer;
  11864. function RegisterClassW;
  11865. begin
  11866. GetProcedureAddress(_RegisterClassW, user32, 'RegisterClassW');
  11867. asm
  11868. MOV ESP, EBP
  11869. POP EBP
  11870. JMP [_RegisterClassW]
  11871. end;
  11872. end;
  11873. var
  11874. _RegisterClass: Pointer;
  11875. function RegisterClass;
  11876. begin
  11877. GetProcedureAddress(_RegisterClass, user32, 'RegisterClass' + AWSuffix);
  11878. asm
  11879. MOV ESP, EBP
  11880. POP EBP
  11881. JMP [_RegisterClass]
  11882. end;
  11883. end;
  11884. var
  11885. _UnregisterClassA: Pointer;
  11886. function UnregisterClassA;
  11887. begin
  11888. GetProcedureAddress(_UnregisterClassA, user32, 'UnregisterClassA');
  11889. asm
  11890. MOV ESP, EBP
  11891. POP EBP
  11892. JMP [_UnregisterClassA]
  11893. end;
  11894. end;
  11895. var
  11896. _UnregisterClassW: Pointer;
  11897. function UnregisterClassW;
  11898. begin
  11899. GetProcedureAddress(_UnregisterClassW, user32, 'UnregisterClassW');
  11900. asm
  11901. MOV ESP, EBP
  11902. POP EBP
  11903. JMP [_UnregisterClassW]
  11904. end;
  11905. end;
  11906. var
  11907. _UnregisterClass: Pointer;
  11908. function UnregisterClass;
  11909. begin
  11910. GetProcedureAddress(_UnregisterClass, user32, 'UnregisterClass' + AWSuffix);
  11911. asm
  11912. MOV ESP, EBP
  11913. POP EBP
  11914. JMP [_UnregisterClass]
  11915. end;
  11916. end;
  11917. var
  11918. _GetClassInfoA: Pointer;
  11919. function GetClassInfoA;
  11920. begin
  11921. GetProcedureAddress(_GetClassInfoA, user32, 'GetClassInfoA');
  11922. asm
  11923. MOV ESP, EBP
  11924. POP EBP
  11925. JMP [_GetClassInfoA]
  11926. end;
  11927. end;
  11928. var
  11929. _GetClassInfoW: Pointer;
  11930. function GetClassInfoW;
  11931. begin
  11932. GetProcedureAddress(_GetClassInfoW, user32, 'GetClassInfoW');
  11933. asm
  11934. MOV ESP, EBP
  11935. POP EBP
  11936. JMP [_GetClassInfoW]
  11937. end;
  11938. end;
  11939. var
  11940. _GetClassInfo: Pointer;
  11941. function GetClassInfo;
  11942. begin
  11943. GetProcedureAddress(_GetClassInfo, user32, 'GetClassInfo' + AWSuffix);
  11944. asm
  11945. MOV ESP, EBP
  11946. POP EBP
  11947. JMP [_GetClassInfo]
  11948. end;
  11949. end;
  11950. var
  11951. _RegisterClassExA: Pointer;
  11952. function RegisterClassExA;
  11953. begin
  11954. GetProcedureAddress(_RegisterClassExA, user32, 'RegisterClassExA');
  11955. asm
  11956. MOV ESP, EBP
  11957. POP EBP
  11958. JMP [_RegisterClassExA]
  11959. end;
  11960. end;
  11961. var
  11962. _RegisterClassExW: Pointer;
  11963. function RegisterClassExW;
  11964. begin
  11965. GetProcedureAddress(_RegisterClassExW, user32, 'RegisterClassExW');
  11966. asm
  11967. MOV ESP, EBP
  11968. POP EBP
  11969. JMP [_RegisterClassExW]
  11970. end;
  11971. end;
  11972. var
  11973. _RegisterClassEx: Pointer;
  11974. function RegisterClassEx;
  11975. begin
  11976. GetProcedureAddress(_RegisterClassEx, user32, 'RegisterClassEx' + AWSuffix);
  11977. asm
  11978. MOV ESP, EBP
  11979. POP EBP
  11980. JMP [_RegisterClassEx]
  11981. end;
  11982. end;
  11983. var
  11984. _GetClassInfoExA: Pointer;
  11985. function GetClassInfoExA;
  11986. begin
  11987. GetProcedureAddress(_GetClassInfoExA, user32, 'GetClassInfoExA');
  11988. asm
  11989. MOV ESP, EBP
  11990. POP EBP
  11991. JMP [_GetClassInfoExA]
  11992. end;
  11993. end;
  11994. var
  11995. _GetClassInfoExW: Pointer;
  11996. function GetClassInfoExW;
  11997. begin
  11998. GetProcedureAddress(_GetClassInfoExW, user32, 'GetClassInfoExW');
  11999. asm
  12000. MOV ESP, EBP
  12001. POP EBP
  12002. JMP [_GetClassInfoExW]
  12003. end;
  12004. end;
  12005. var
  12006. _GetClassInfoEx: Pointer;
  12007. function GetClassInfoEx;
  12008. begin
  12009. GetProcedureAddress(_GetClassInfoEx, user32, 'GetClassInfoEx' + AWSuffix);
  12010. asm
  12011. MOV ESP, EBP
  12012. POP EBP
  12013. JMP [_GetClassInfoEx]
  12014. end;
  12015. end;
  12016. var
  12017. _CreateWindowExA: Pointer;
  12018. function CreateWindowExA;
  12019. begin
  12020. GetProcedureAddress(_CreateWindowExA, user32, 'CreateWindowExA');
  12021. asm
  12022. MOV ESP, EBP
  12023. POP EBP
  12024. JMP [_CreateWindowExA]
  12025. end;
  12026. end;
  12027. var
  12028. _CreateWindowExW: Pointer;
  12029. function CreateWindowExW;
  12030. begin
  12031. GetProcedureAddress(_CreateWindowExW, user32, 'CreateWindowExW');
  12032. asm
  12033. MOV ESP, EBP
  12034. POP EBP
  12035. JMP [_CreateWindowExW]
  12036. end;
  12037. end;
  12038. var
  12039. _CreateWindowEx: Pointer;
  12040. function CreateWindowEx;
  12041. begin
  12042. GetProcedureAddress(_CreateWindowEx, user32, 'CreateWindowEx' + AWSuffix);
  12043. asm
  12044. MOV ESP, EBP
  12045. POP EBP
  12046. JMP [_CreateWindowEx]
  12047. end;
  12048. end;
  12049. var
  12050. _IsWindow: Pointer;
  12051. function IsWindow;
  12052. begin
  12053. GetProcedureAddress(_IsWindow, user32, 'IsWindow');
  12054. asm
  12055. MOV ESP, EBP
  12056. POP EBP
  12057. JMP [_IsWindow]
  12058. end;
  12059. end;
  12060. var
  12061. _IsMenu: Pointer;
  12062. function IsMenu;
  12063. begin
  12064. GetProcedureAddress(_IsMenu, user32, 'IsMenu');
  12065. asm
  12066. MOV ESP, EBP
  12067. POP EBP
  12068. JMP [_IsMenu]
  12069. end;
  12070. end;
  12071. var
  12072. _IsChild: Pointer;
  12073. function IsChild;
  12074. begin
  12075. GetProcedureAddress(_IsChild, user32, 'IsChild');
  12076. asm
  12077. MOV ESP, EBP
  12078. POP EBP
  12079. JMP [_IsChild]
  12080. end;
  12081. end;
  12082. var
  12083. _DestroyWindow: Pointer;
  12084. function DestroyWindow;
  12085. begin
  12086. GetProcedureAddress(_DestroyWindow, user32, 'DestroyWindow');
  12087. asm
  12088. MOV ESP, EBP
  12089. POP EBP
  12090. JMP [_DestroyWindow]
  12091. end;
  12092. end;
  12093. var
  12094. _ShowWindow: Pointer;
  12095. function ShowWindow;
  12096. begin
  12097. GetProcedureAddress(_ShowWindow, user32, 'ShowWindow');
  12098. asm
  12099. MOV ESP, EBP
  12100. POP EBP
  12101. JMP [_ShowWindow]
  12102. end;
  12103. end;
  12104. var
  12105. _AnimateWindow: Pointer;
  12106. function AnimateWindow;
  12107. begin
  12108. GetProcedureAddress(_AnimateWindow, user32, 'AnimateWindow');
  12109. asm
  12110. MOV ESP, EBP
  12111. POP EBP
  12112. JMP [_AnimateWindow]
  12113. end;
  12114. end;
  12115. var
  12116. _UpdateLayeredWindow: Pointer;
  12117. function UpdateLayeredWindow;
  12118. begin
  12119. GetProcedureAddress(_UpdateLayeredWindow, user32, 'UpdateLayeredWindow');
  12120. asm
  12121. MOV ESP, EBP
  12122. POP EBP
  12123. JMP [_UpdateLayeredWindow]
  12124. end;
  12125. end;
  12126. var
  12127. _GetLayeredWindowAttributes: Pointer;
  12128. function GetLayeredWindowAttributes;
  12129. begin
  12130. GetProcedureAddress(_GetLayeredWindowAttributes, user32, 'GetLayeredWindowAttributes');
  12131. asm
  12132. MOV ESP, EBP
  12133. POP EBP
  12134. JMP [_GetLayeredWindowAttributes]
  12135. end;
  12136. end;
  12137. var
  12138. _PrintWindow: Pointer;
  12139. function PrintWindow;
  12140. begin
  12141. GetProcedureAddress(_PrintWindow, user32, 'PrintWindow');
  12142. asm
  12143. MOV ESP, EBP
  12144. POP EBP
  12145. JMP [_PrintWindow]
  12146. end;
  12147. end;
  12148. var
  12149. _SetLayeredWindowAttributes: Pointer;
  12150. function SetLayeredWindowAttributes;
  12151. begin
  12152. GetProcedureAddress(_SetLayeredWindowAttributes, user32, 'SetLayeredWindowAttributes');
  12153. asm
  12154. MOV ESP, EBP
  12155. POP EBP
  12156. JMP [_SetLayeredWindowAttributes]
  12157. end;
  12158. end;
  12159. var
  12160. _ShowWindowAsync: Pointer;
  12161. function ShowWindowAsync;
  12162. begin
  12163. GetProcedureAddress(_ShowWindowAsync, user32, 'ShowWindowAsync');
  12164. asm
  12165. MOV ESP, EBP
  12166. POP EBP
  12167. JMP [_ShowWindowAsync]
  12168. end;
  12169. end;
  12170. var
  12171. _FlashWindow: Pointer;
  12172. function FlashWindow;
  12173. begin
  12174. GetProcedureAddress(_FlashWindow, user32, 'FlashWindow');
  12175. asm
  12176. MOV ESP, EBP
  12177. POP EBP
  12178. JMP [_FlashWindow]
  12179. end;
  12180. end;
  12181. var
  12182. _FlashWindowEx: Pointer;
  12183. function FlashWindowEx;
  12184. begin
  12185. GetProcedureAddress(_FlashWindowEx, user32, 'FlashWindowEx');
  12186. asm
  12187. MOV ESP, EBP
  12188. POP EBP
  12189. JMP [_FlashWindowEx]
  12190. end;
  12191. end;
  12192. var
  12193. _ShowOwnedPopups: Pointer;
  12194. function ShowOwnedPopups;
  12195. begin
  12196. GetProcedureAddress(_ShowOwnedPopups, user32, 'ShowOwnedPopups');
  12197. asm
  12198. MOV ESP, EBP
  12199. POP EBP
  12200. JMP [_ShowOwnedPopups]
  12201. end;
  12202. end;
  12203. var
  12204. _OpenIcon: Pointer;
  12205. function OpenIcon;
  12206. begin
  12207. GetProcedureAddress(_OpenIcon, user32, 'OpenIcon');
  12208. asm
  12209. MOV ESP, EBP
  12210. POP EBP
  12211. JMP [_OpenIcon]
  12212. end;
  12213. end;
  12214. var
  12215. _CloseWindow: Pointer;
  12216. function CloseWindow;
  12217. begin
  12218. GetProcedureAddress(_CloseWindow, user32, 'CloseWindow');
  12219. asm
  12220. MOV ESP, EBP
  12221. POP EBP
  12222. JMP [_CloseWindow]
  12223. end;
  12224. end;
  12225. var
  12226. _MoveWindow: Pointer;
  12227. function MoveWindow;
  12228. begin
  12229. GetProcedureAddress(_MoveWindow, user32, 'MoveWindow');
  12230. asm
  12231. MOV ESP, EBP
  12232. POP EBP
  12233. JMP [_MoveWindow]
  12234. end;
  12235. end;
  12236. var
  12237. _SetWindowPos: Pointer;
  12238. function SetWindowPos;
  12239. begin
  12240. GetProcedureAddress(_SetWindowPos, user32, 'SetWindowPos');
  12241. asm
  12242. MOV ESP, EBP
  12243. POP EBP
  12244. JMP [_SetWindowPos]
  12245. end;
  12246. end;
  12247. var
  12248. _GetWindowPlacement: Pointer;
  12249. function GetWindowPlacement;
  12250. begin
  12251. GetProcedureAddress(_GetWindowPlacement, user32, 'GetWindowPlacement');
  12252. asm
  12253. MOV ESP, EBP
  12254. POP EBP
  12255. JMP [_GetWindowPlacement]
  12256. end;
  12257. end;
  12258. var
  12259. _SetWindowPlacement: Pointer;
  12260. function SetWindowPlacement;
  12261. begin
  12262. GetProcedureAddress(_SetWindowPlacement, user32, 'SetWindowPlacement');
  12263. asm
  12264. MOV ESP, EBP
  12265. POP EBP
  12266. JMP [_SetWindowPlacement]
  12267. end;
  12268. end;
  12269. var
  12270. _BeginDeferWindowPos: Pointer;
  12271. function BeginDeferWindowPos;
  12272. begin
  12273. GetProcedureAddress(_BeginDeferWindowPos, user32, 'BeginDeferWindowPos');
  12274. asm
  12275. MOV ESP, EBP
  12276. POP EBP
  12277. JMP [_BeginDeferWindowPos]
  12278. end;
  12279. end;
  12280. var
  12281. _DeferWindowPos: Pointer;
  12282. function DeferWindowPos;
  12283. begin
  12284. GetProcedureAddress(_DeferWindowPos, user32, 'DeferWindowPos');
  12285. asm
  12286. MOV ESP, EBP
  12287. POP EBP
  12288. JMP [_DeferWindowPos]
  12289. end;
  12290. end;
  12291. var
  12292. _EndDeferWindowPos: Pointer;
  12293. function EndDeferWindowPos;
  12294. begin
  12295. GetProcedureAddress(_EndDeferWindowPos, user32, 'EndDeferWindowPos');
  12296. asm
  12297. MOV ESP, EBP
  12298. POP EBP
  12299. JMP [_EndDeferWindowPos]
  12300. end;
  12301. end;
  12302. var
  12303. _IsWindowVisible: Pointer;
  12304. function IsWindowVisible;
  12305. begin
  12306. GetProcedureAddress(_IsWindowVisible, user32, 'IsWindowVisible');
  12307. asm
  12308. MOV ESP, EBP
  12309. POP EBP
  12310. JMP [_IsWindowVisible]
  12311. end;
  12312. end;
  12313. var
  12314. _IsIconic: Pointer;
  12315. function IsIconic;
  12316. begin
  12317. GetProcedureAddress(_IsIconic, user32, 'IsIconic');
  12318. asm
  12319. MOV ESP, EBP
  12320. POP EBP
  12321. JMP [_IsIconic]
  12322. end;
  12323. end;
  12324. var
  12325. _AnyPopup: Pointer;
  12326. function AnyPopup;
  12327. begin
  12328. GetProcedureAddress(_AnyPopup, user32, 'AnyPopup');
  12329. asm
  12330. MOV ESP, EBP
  12331. POP EBP
  12332. JMP [_AnyPopup]
  12333. end;
  12334. end;
  12335. var
  12336. _BringWindowToTop: Pointer;
  12337. function BringWindowToTop;
  12338. begin
  12339. GetProcedureAddress(_BringWindowToTop, user32, 'BringWindowToTop');
  12340. asm
  12341. MOV ESP, EBP
  12342. POP EBP
  12343. JMP [_BringWindowToTop]
  12344. end;
  12345. end;
  12346. var
  12347. _IsZoomed: Pointer;
  12348. function IsZoomed;
  12349. begin
  12350. GetProcedureAddress(_IsZoomed, user32, 'IsZoomed');
  12351. asm
  12352. MOV ESP, EBP
  12353. POP EBP
  12354. JMP [_IsZoomed]
  12355. end;
  12356. end;
  12357. var
  12358. _CreateDialogParamA: Pointer;
  12359. function CreateDialogParamA;
  12360. begin
  12361. GetProcedureAddress(_CreateDialogParamA, user32, 'CreateDialogParamA');
  12362. asm
  12363. MOV ESP, EBP
  12364. POP EBP
  12365. JMP [_CreateDialogParamA]
  12366. end;
  12367. end;
  12368. var
  12369. _CreateDialogParamW: Pointer;
  12370. function CreateDialogParamW;
  12371. begin
  12372. GetProcedureAddress(_CreateDialogParamW, user32, 'CreateDialogParamW');
  12373. asm
  12374. MOV ESP, EBP
  12375. POP EBP
  12376. JMP [_CreateDialogParamW]
  12377. end;
  12378. end;
  12379. var
  12380. _CreateDialogParam: Pointer;
  12381. function CreateDialogParam;
  12382. begin
  12383. GetProcedureAddress(_CreateDialogParam, user32, 'CreateDialogParam' + AWSuffix);
  12384. asm
  12385. MOV ESP, EBP
  12386. POP EBP
  12387. JMP [_CreateDialogParam]
  12388. end;
  12389. end;
  12390. var
  12391. _CreateDialogIndirectParamA: Pointer;
  12392. function CreateDialogIndirectParamA;
  12393. begin
  12394. GetProcedureAddress(_CreateDialogIndirectParamA, user32, 'CreateDialogIndirectParamA');
  12395. asm
  12396. MOV ESP, EBP
  12397. POP EBP
  12398. JMP [_CreateDialogIndirectParamA]
  12399. end;
  12400. end;
  12401. var
  12402. _CreateDialogIndirectParamW: Pointer;
  12403. function CreateDialogIndirectParamW;
  12404. begin
  12405. GetProcedureAddress(_CreateDialogIndirectParamW, user32, 'CreateDialogIndirectParamW');
  12406. asm
  12407. MOV ESP, EBP
  12408. POP EBP
  12409. JMP [_CreateDialogIndirectParamW]
  12410. end;
  12411. end;
  12412. var
  12413. _CreateDialogIndirectParam: Pointer;
  12414. function CreateDialogIndirectParam;
  12415. begin
  12416. GetProcedureAddress(_CreateDialogIndirectParam, user32, 'CreateDialogIndirectParam' + AWSuffix);
  12417. asm
  12418. MOV ESP, EBP
  12419. POP EBP
  12420. JMP [_CreateDialogIndirectParam]
  12421. end;
  12422. end;
  12423. var
  12424. _DialogBoxParamA: Pointer;
  12425. function DialogBoxParamA;
  12426. begin
  12427. GetProcedureAddress(_DialogBoxParamA, user32, 'DialogBoxParamA');
  12428. asm
  12429. MOV ESP, EBP
  12430. POP EBP
  12431. JMP [_DialogBoxParamA]
  12432. end;
  12433. end;
  12434. var
  12435. _DialogBoxParamW: Pointer;
  12436. function DialogBoxParamW;
  12437. begin
  12438. GetProcedureAddress(_DialogBoxParamW, user32, 'DialogBoxParamW');
  12439. asm
  12440. MOV ESP, EBP
  12441. POP EBP
  12442. JMP [_DialogBoxParamW]
  12443. end;
  12444. end;
  12445. var
  12446. _DialogBoxParam: Pointer;
  12447. function DialogBoxParam;
  12448. begin
  12449. GetProcedureAddress(_DialogBoxParam, user32, 'DialogBoxParam' + AWSuffix);
  12450. asm
  12451. MOV ESP, EBP
  12452. POP EBP
  12453. JMP [_DialogBoxParam]
  12454. end;
  12455. end;
  12456. var
  12457. _DialogBoxIndirectParamA: Pointer;
  12458. function DialogBoxIndirectParamA;
  12459. begin
  12460. GetProcedureAddress(_DialogBoxIndirectParamA, user32, 'DialogBoxIndirectParamA');
  12461. asm
  12462. MOV ESP, EBP
  12463. POP EBP
  12464. JMP [_DialogBoxIndirectParamA]
  12465. end;
  12466. end;
  12467. var
  12468. _DialogBoxIndirectParamW: Pointer;
  12469. function DialogBoxIndirectParamW;
  12470. begin
  12471. GetProcedureAddress(_DialogBoxIndirectParamW, user32, 'DialogBoxIndirectParamW');
  12472. asm
  12473. MOV ESP, EBP
  12474. POP EBP
  12475. JMP [_DialogBoxIndirectParamW]
  12476. end;
  12477. end;
  12478. var
  12479. _DialogBoxIndirectParam: Pointer;
  12480. function DialogBoxIndirectParam;
  12481. begin
  12482. GetProcedureAddress(_DialogBoxIndirectParam, user32, 'DialogBoxIndirectParam' + AWSuffix);
  12483. asm
  12484. MOV ESP, EBP
  12485. POP EBP
  12486. JMP [_DialogBoxIndirectParam]
  12487. end;
  12488. end;
  12489. var
  12490. _EndDialog: Pointer;
  12491. function EndDialog;
  12492. begin
  12493. GetProcedureAddress(_EndDialog, user32, 'EndDialog');
  12494. asm
  12495. MOV ESP, EBP
  12496. POP EBP
  12497. JMP [_EndDialog]
  12498. end;
  12499. end;
  12500. var
  12501. _GetDlgItem: Pointer;
  12502. function GetDlgItem;
  12503. begin
  12504. GetProcedureAddress(_GetDlgItem, user32, 'GetDlgItem');
  12505. asm
  12506. MOV ESP, EBP
  12507. POP EBP
  12508. JMP [_GetDlgItem]
  12509. end;
  12510. end;
  12511. var
  12512. _SetDlgItemInt: Pointer;
  12513. function SetDlgItemInt;
  12514. begin
  12515. GetProcedureAddress(_SetDlgItemInt, user32, 'SetDlgItemInt');
  12516. asm
  12517. MOV ESP, EBP
  12518. POP EBP
  12519. JMP [_SetDlgItemInt]
  12520. end;
  12521. end;
  12522. var
  12523. _GetDlgItemInt: Pointer;
  12524. function GetDlgItemInt;
  12525. begin
  12526. GetProcedureAddress(_GetDlgItemInt, user32, 'GetDlgItemInt');
  12527. asm
  12528. MOV ESP, EBP
  12529. POP EBP
  12530. JMP [_GetDlgItemInt]
  12531. end;
  12532. end;
  12533. var
  12534. _SetDlgItemTextA: Pointer;
  12535. function SetDlgItemTextA;
  12536. begin
  12537. GetProcedureAddress(_SetDlgItemTextA, user32, 'SetDlgItemTextA');
  12538. asm
  12539. MOV ESP, EBP
  12540. POP EBP
  12541. JMP [_SetDlgItemTextA]
  12542. end;
  12543. end;
  12544. var
  12545. _SetDlgItemTextW: Pointer;
  12546. function SetDlgItemTextW;
  12547. begin
  12548. GetProcedureAddress(_SetDlgItemTextW, user32, 'SetDlgItemTextW');
  12549. asm
  12550. MOV ESP, EBP
  12551. POP EBP
  12552. JMP [_SetDlgItemTextW]
  12553. end;
  12554. end;
  12555. var
  12556. _SetDlgItemText: Pointer;
  12557. function SetDlgItemText;
  12558. begin
  12559. GetProcedureAddress(_SetDlgItemText, user32, 'SetDlgItemText' + AWSuffix);
  12560. asm
  12561. MOV ESP, EBP
  12562. POP EBP
  12563. JMP [_SetDlgItemText]
  12564. end;
  12565. end;
  12566. var
  12567. _GetDlgItemTextA: Pointer;
  12568. function GetDlgItemTextA;
  12569. begin
  12570. GetProcedureAddress(_GetDlgItemTextA, user32, 'GetDlgItemTextA');
  12571. asm
  12572. MOV ESP, EBP
  12573. POP EBP
  12574. JMP [_GetDlgItemTextA]
  12575. end;
  12576. end;
  12577. var
  12578. _GetDlgItemTextW: Pointer;
  12579. function GetDlgItemTextW;
  12580. begin
  12581. GetProcedureAddress(_GetDlgItemTextW, user32, 'GetDlgItemTextW');
  12582. asm
  12583. MOV ESP, EBP
  12584. POP EBP
  12585. JMP [_GetDlgItemTextW]
  12586. end;
  12587. end;
  12588. var
  12589. _GetDlgItemText: Pointer;
  12590. function GetDlgItemText;
  12591. begin
  12592. GetProcedureAddress(_GetDlgItemText, user32, 'GetDlgItemText' + AWSuffix);
  12593. asm
  12594. MOV ESP, EBP
  12595. POP EBP
  12596. JMP [_GetDlgItemText]
  12597. end;
  12598. end;
  12599. var
  12600. _CheckDlgButton: Pointer;
  12601. function CheckDlgButton;
  12602. begin
  12603. GetProcedureAddress(_CheckDlgButton, user32, 'CheckDlgButton');
  12604. asm
  12605. MOV ESP, EBP
  12606. POP EBP
  12607. JMP [_CheckDlgButton]
  12608. end;
  12609. end;
  12610. var
  12611. _CheckRadioButton: Pointer;
  12612. function CheckRadioButton;
  12613. begin
  12614. GetProcedureAddress(_CheckRadioButton, user32, 'CheckRadioButton');
  12615. asm
  12616. MOV ESP, EBP
  12617. POP EBP
  12618. JMP [_CheckRadioButton]
  12619. end;
  12620. end;
  12621. var
  12622. _IsDlgButtonChecked: Pointer;
  12623. function IsDlgButtonChecked;
  12624. begin
  12625. GetProcedureAddress(_IsDlgButtonChecked, user32, 'IsDlgButtonChecked');
  12626. asm
  12627. MOV ESP, EBP
  12628. POP EBP
  12629. JMP [_IsDlgButtonChecked]
  12630. end;
  12631. end;
  12632. var
  12633. _SendDlgItemMessageA: Pointer;
  12634. function SendDlgItemMessageA;
  12635. begin
  12636. GetProcedureAddress(_SendDlgItemMessageA, user32, 'SendDlgItemMessageA');
  12637. asm
  12638. MOV ESP, EBP
  12639. POP EBP
  12640. JMP [_SendDlgItemMessageA]
  12641. end;
  12642. end;
  12643. var
  12644. _SendDlgItemMessageW: Pointer;
  12645. function SendDlgItemMessageW;
  12646. begin
  12647. GetProcedureAddress(_SendDlgItemMessageW, user32, 'SendDlgItemMessageW');
  12648. asm
  12649. MOV ESP, EBP
  12650. POP EBP
  12651. JMP [_SendDlgItemMessageW]
  12652. end;
  12653. end;
  12654. var
  12655. _SendDlgItemMessage: Pointer;
  12656. function SendDlgItemMessage;
  12657. begin
  12658. GetProcedureAddress(_SendDlgItemMessage, user32, 'SendDlgItemMessage' + AWSuffix);
  12659. asm
  12660. MOV ESP, EBP
  12661. POP EBP
  12662. JMP [_SendDlgItemMessage]
  12663. end;
  12664. end;
  12665. var
  12666. _GetNextDlgGroupItem: Pointer;
  12667. function GetNextDlgGroupItem;
  12668. begin
  12669. GetProcedureAddress(_GetNextDlgGroupItem, user32, 'GetNextDlgGroupItem');
  12670. asm
  12671. MOV ESP, EBP
  12672. POP EBP
  12673. JMP [_GetNextDlgGroupItem]
  12674. end;
  12675. end;
  12676. var
  12677. _GetNextDlgTabItem: Pointer;
  12678. function GetNextDlgTabItem;
  12679. begin
  12680. GetProcedureAddress(_GetNextDlgTabItem, user32, 'GetNextDlgTabItem');
  12681. asm
  12682. MOV ESP, EBP
  12683. POP EBP
  12684. JMP [_GetNextDlgTabItem]
  12685. end;
  12686. end;
  12687. var
  12688. _GetDlgCtrlID: Pointer;
  12689. function GetDlgCtrlID;
  12690. begin
  12691. GetProcedureAddress(_GetDlgCtrlID, user32, 'GetDlgCtrlID');
  12692. asm
  12693. MOV ESP, EBP
  12694. POP EBP
  12695. JMP [_GetDlgCtrlID]
  12696. end;
  12697. end;
  12698. var
  12699. _GetDialogBaseUnits: Pointer;
  12700. function GetDialogBaseUnits;
  12701. begin
  12702. GetProcedureAddress(_GetDialogBaseUnits, user32, 'GetDialogBaseUnits');
  12703. asm
  12704. MOV ESP, EBP
  12705. POP EBP
  12706. JMP [_GetDialogBaseUnits]
  12707. end;
  12708. end;
  12709. var
  12710. _DefDlgProcA: Pointer;
  12711. function DefDlgProcA;
  12712. begin
  12713. GetProcedureAddress(_DefDlgProcA, user32, 'DefDlgProcA');
  12714. asm
  12715. MOV ESP, EBP
  12716. POP EBP
  12717. JMP [_DefDlgProcA]
  12718. end;
  12719. end;
  12720. var
  12721. _DefDlgProcW: Pointer;
  12722. function DefDlgProcW;
  12723. begin
  12724. GetProcedureAddress(_DefDlgProcW, user32, 'DefDlgProcW');
  12725. asm
  12726. MOV ESP, EBP
  12727. POP EBP
  12728. JMP [_DefDlgProcW]
  12729. end;
  12730. end;
  12731. var
  12732. _DefDlgProc: Pointer;
  12733. function DefDlgProc;
  12734. begin
  12735. GetProcedureAddress(_DefDlgProc, user32, 'DefDlgProc' + AWSuffix);
  12736. asm
  12737. MOV ESP, EBP
  12738. POP EBP
  12739. JMP [_DefDlgProc]
  12740. end;
  12741. end;
  12742. var
  12743. _CallMsgFilterA: Pointer;
  12744. function CallMsgFilterA;
  12745. begin
  12746. GetProcedureAddress(_CallMsgFilterA, user32, 'CallMsgFilterA');
  12747. asm
  12748. MOV ESP, EBP
  12749. POP EBP
  12750. JMP [_CallMsgFilterA]
  12751. end;
  12752. end;
  12753. var
  12754. _CallMsgFilterW: Pointer;
  12755. function CallMsgFilterW;
  12756. begin
  12757. GetProcedureAddress(_CallMsgFilterW, user32, 'CallMsgFilterW');
  12758. asm
  12759. MOV ESP, EBP
  12760. POP EBP
  12761. JMP [_CallMsgFilterW]
  12762. end;
  12763. end;
  12764. var
  12765. _CallMsgFilter: Pointer;
  12766. function CallMsgFilter;
  12767. begin
  12768. GetProcedureAddress(_CallMsgFilter, user32, 'CallMsgFilter' + AWSuffix);
  12769. asm
  12770. MOV ESP, EBP
  12771. POP EBP
  12772. JMP [_CallMsgFilter]
  12773. end;
  12774. end;
  12775. var
  12776. _OpenClipboard: Pointer;
  12777. function OpenClipboard;
  12778. begin
  12779. GetProcedureAddress(_OpenClipboard, user32, 'OpenClipboard');
  12780. asm
  12781. MOV ESP, EBP
  12782. POP EBP
  12783. JMP [_OpenClipboard]
  12784. end;
  12785. end;
  12786. var
  12787. _CloseClipboard: Pointer;
  12788. function CloseClipboard;
  12789. begin
  12790. GetProcedureAddress(_CloseClipboard, user32, 'CloseClipboard');
  12791. asm
  12792. MOV ESP, EBP
  12793. POP EBP
  12794. JMP [_CloseClipboard]
  12795. end;
  12796. end;
  12797. var
  12798. _GetClipboardSequenceNumber: Pointer;
  12799. function GetClipboardSequenceNumber;
  12800. begin
  12801. GetProcedureAddress(_GetClipboardSequenceNumber, user32, 'GetClipboardSequenceNumber');
  12802. asm
  12803. MOV ESP, EBP
  12804. POP EBP
  12805. JMP [_GetClipboardSequenceNumber]
  12806. end;
  12807. end;
  12808. var
  12809. _GetClipboardOwner: Pointer;
  12810. function GetClipboardOwner;
  12811. begin
  12812. GetProcedureAddress(_GetClipboardOwner, user32, 'GetClipboardOwner');
  12813. asm
  12814. MOV ESP, EBP
  12815. POP EBP
  12816. JMP [_GetClipboardOwner]
  12817. end;
  12818. end;
  12819. var
  12820. _SetClipboardViewer: Pointer;
  12821. function SetClipboardViewer;
  12822. begin
  12823. GetProcedureAddress(_SetClipboardViewer, user32, 'SetClipboardViewer');
  12824. asm
  12825. MOV ESP, EBP
  12826. POP EBP
  12827. JMP [_SetClipboardViewer]
  12828. end;
  12829. end;
  12830. var
  12831. _GetClipboardViewer: Pointer;
  12832. function GetClipboardViewer;
  12833. begin
  12834. GetProcedureAddress(_GetClipboardViewer, user32, 'GetClipboardViewer');
  12835. asm
  12836. MOV ESP, EBP
  12837. POP EBP
  12838. JMP [_GetClipboardViewer]
  12839. end;
  12840. end;
  12841. var
  12842. _ChangeClipboardChain: Pointer;
  12843. function ChangeClipboardChain;
  12844. begin
  12845. GetProcedureAddress(_ChangeClipboardChain, user32, 'ChangeClipboardChain');
  12846. asm
  12847. MOV ESP, EBP
  12848. POP EBP
  12849. JMP [_ChangeClipboardChain]
  12850. end;
  12851. end;
  12852. var
  12853. _SetClipboardData: Pointer;
  12854. function SetClipboardData;
  12855. begin
  12856. GetProcedureAddress(_SetClipboardData, user32, 'SetClipboardData');
  12857. asm
  12858. MOV ESP, EBP
  12859. POP EBP
  12860. JMP [_SetClipboardData]
  12861. end;
  12862. end;
  12863. var
  12864. _GetClipboardData: Pointer;
  12865. function GetClipboardData;
  12866. begin
  12867. GetProcedureAddress(_GetClipboardData, user32, 'GetClipboardData');
  12868. asm
  12869. MOV ESP, EBP
  12870. POP EBP
  12871. JMP [_GetClipboardData]
  12872. end;
  12873. end;
  12874. var
  12875. _RegisterClipboardFormatA: Pointer;
  12876. function RegisterClipboardFormatA;
  12877. begin
  12878. GetProcedureAddress(_RegisterClipboardFormatA, user32, 'RegisterClipboardFormatA');
  12879. asm
  12880. MOV ESP, EBP
  12881. POP EBP
  12882. JMP [_RegisterClipboardFormatA]
  12883. end;
  12884. end;
  12885. var
  12886. _RegisterClipboardFormatW: Pointer;
  12887. function RegisterClipboardFormatW;
  12888. begin
  12889. GetProcedureAddress(_RegisterClipboardFormatW, user32, 'RegisterClipboardFormatW');
  12890. asm
  12891. MOV ESP, EBP
  12892. POP EBP
  12893. JMP [_RegisterClipboardFormatW]
  12894. end;
  12895. end;
  12896. var
  12897. _RegisterClipboardFormat: Pointer;
  12898. function RegisterClipboardFormat;
  12899. begin
  12900. GetProcedureAddress(_RegisterClipboardFormat, user32, 'RegisterClipboardFormat' + AWSuffix);
  12901. asm
  12902. MOV ESP, EBP
  12903. POP EBP
  12904. JMP [_RegisterClipboardFormat]
  12905. end;
  12906. end;
  12907. var
  12908. _CountClipboardFormats: Pointer;
  12909. function CountClipboardFormats;
  12910. begin
  12911. GetProcedureAddress(_CountClipboardFormats, user32, 'CountClipboardFormats');
  12912. asm
  12913. MOV ESP, EBP
  12914. POP EBP
  12915. JMP [_CountClipboardFormats]
  12916. end;
  12917. end;
  12918. var
  12919. _EnumClipboardFormats: Pointer;
  12920. function EnumClipboardFormats;
  12921. begin
  12922. GetProcedureAddress(_EnumClipboardFormats, user32, 'EnumClipboardFormats');
  12923. asm
  12924. MOV ESP, EBP
  12925. POP EBP
  12926. JMP [_EnumClipboardFormats]
  12927. end;
  12928. end;
  12929. var
  12930. _GetClipboardFormatNameA: Pointer;
  12931. function GetClipboardFormatNameA;
  12932. begin
  12933. GetProcedureAddress(_GetClipboardFormatNameA, user32, 'GetClipboardFormatNameA');
  12934. asm
  12935. MOV ESP, EBP
  12936. POP EBP
  12937. JMP [_GetClipboardFormatNameA]
  12938. end;
  12939. end;
  12940. var
  12941. _GetClipboardFormatNameW: Pointer;
  12942. function GetClipboardFormatNameW;
  12943. begin
  12944. GetProcedureAddress(_GetClipboardFormatNameW, user32, 'GetClipboardFormatNameW');
  12945. asm
  12946. MOV ESP, EBP
  12947. POP EBP
  12948. JMP [_GetClipboardFormatNameW]
  12949. end;
  12950. end;
  12951. var
  12952. _GetClipboardFormatName: Pointer;
  12953. function GetClipboardFormatName;
  12954. begin
  12955. GetProcedureAddress(_GetClipboardFormatName, user32, 'GetClipboardFormatName' + AWSuffix);
  12956. asm
  12957. MOV ESP, EBP
  12958. POP EBP
  12959. JMP [_GetClipboardFormatName]
  12960. end;
  12961. end;
  12962. var
  12963. _EmptyClipboard: Pointer;
  12964. function EmptyClipboard;
  12965. begin
  12966. GetProcedureAddress(_EmptyClipboard, user32, 'EmptyClipboard');
  12967. asm
  12968. MOV ESP, EBP
  12969. POP EBP
  12970. JMP [_EmptyClipboard]
  12971. end;
  12972. end;
  12973. var
  12974. _IsClipboardFormatAvailable: Pointer;
  12975. function IsClipboardFormatAvailable;
  12976. begin
  12977. GetProcedureAddress(_IsClipboardFormatAvailable, user32, 'IsClipboardFormatAvailable');
  12978. asm
  12979. MOV ESP, EBP
  12980. POP EBP
  12981. JMP [_IsClipboardFormatAvailable]
  12982. end;
  12983. end;
  12984. var
  12985. _GetPriorityClipboardFormat: Pointer;
  12986. function GetPriorityClipboardFormat;
  12987. begin
  12988. GetProcedureAddress(_GetPriorityClipboardFormat, user32, 'GetPriorityClipboardFormat');
  12989. asm
  12990. MOV ESP, EBP
  12991. POP EBP
  12992. JMP [_GetPriorityClipboardFormat]
  12993. end;
  12994. end;
  12995. var
  12996. _GetOpenClipboardWindow: Pointer;
  12997. function GetOpenClipboardWindow;
  12998. begin
  12999. GetProcedureAddress(_GetOpenClipboardWindow, user32, 'GetOpenClipboardWindow');
  13000. asm
  13001. MOV ESP, EBP
  13002. POP EBP
  13003. JMP [_GetOpenClipboardWindow]
  13004. end;
  13005. end;
  13006. var
  13007. _CharToOemA: Pointer;
  13008. function CharToOemA;
  13009. begin
  13010. GetProcedureAddress(_CharToOemA, user32, 'CharToOemA');
  13011. asm
  13012. MOV ESP, EBP
  13013. POP EBP
  13014. JMP [_CharToOemA]
  13015. end;
  13016. end;
  13017. var
  13018. _CharToOemW: Pointer;
  13019. function CharToOemW;
  13020. begin
  13021. GetProcedureAddress(_CharToOemW, user32, 'CharToOemW');
  13022. asm
  13023. MOV ESP, EBP
  13024. POP EBP
  13025. JMP [_CharToOemW]
  13026. end;
  13027. end;
  13028. var
  13029. _CharToOem: Pointer;
  13030. function CharToOem;
  13031. begin
  13032. GetProcedureAddress(_CharToOem, user32, 'CharToOem' + AWSuffix);
  13033. asm
  13034. MOV ESP, EBP
  13035. POP EBP
  13036. JMP [_CharToOem]
  13037. end;
  13038. end;
  13039. var
  13040. _OemToCharA: Pointer;
  13041. function OemToCharA;
  13042. begin
  13043. GetProcedureAddress(_OemToCharA, user32, 'OemToCharA');
  13044. asm
  13045. MOV ESP, EBP
  13046. POP EBP
  13047. JMP [_OemToCharA]
  13048. end;
  13049. end;
  13050. var
  13051. _OemToCharW: Pointer;
  13052. function OemToCharW;
  13053. begin
  13054. GetProcedureAddress(_OemToCharW, user32, 'OemToCharW');
  13055. asm
  13056. MOV ESP, EBP
  13057. POP EBP
  13058. JMP [_OemToCharW]
  13059. end;
  13060. end;
  13061. var
  13062. _OemToChar: Pointer;
  13063. function OemToChar;
  13064. begin
  13065. GetProcedureAddress(_OemToChar, user32, 'OemToChar' + AWSuffix);
  13066. asm
  13067. MOV ESP, EBP
  13068. POP EBP
  13069. JMP [_OemToChar]
  13070. end;
  13071. end;
  13072. var
  13073. _CharToOemBuffA: Pointer;
  13074. function CharToOemBuffA;
  13075. begin
  13076. GetProcedureAddress(_CharToOemBuffA, user32, 'CharToOemBuffA');
  13077. asm
  13078. MOV ESP, EBP
  13079. POP EBP
  13080. JMP [_CharToOemBuffA]
  13081. end;
  13082. end;
  13083. var
  13084. _CharToOemBuffW: Pointer;
  13085. function CharToOemBuffW;
  13086. begin
  13087. GetProcedureAddress(_CharToOemBuffW, user32, 'CharToOemBuffW');
  13088. asm
  13089. MOV ESP, EBP
  13090. POP EBP
  13091. JMP [_CharToOemBuffW]
  13092. end;
  13093. end;
  13094. var
  13095. _CharToOemBuff: Pointer;
  13096. function CharToOemBuff;
  13097. begin
  13098. GetProcedureAddress(_CharToOemBuff, user32, 'CharToOemBuff' + AWSuffix);
  13099. asm
  13100. MOV ESP, EBP
  13101. POP EBP
  13102. JMP [_CharToOemBuff]
  13103. end;
  13104. end;
  13105. var
  13106. _OemToCharBuffA: Pointer;
  13107. function OemToCharBuffA;
  13108. begin
  13109. GetProcedureAddress(_OemToCharBuffA, user32, 'OemToCharBuffA');
  13110. asm
  13111. MOV ESP, EBP
  13112. POP EBP
  13113. JMP [_OemToCharBuffA]
  13114. end;
  13115. end;
  13116. var
  13117. _OemToCharBuffW: Pointer;
  13118. function OemToCharBuffW;
  13119. begin
  13120. GetProcedureAddress(_OemToCharBuffW, user32, 'OemToCharBuffW');
  13121. asm
  13122. MOV ESP, EBP
  13123. POP EBP
  13124. JMP [_OemToCharBuffW]
  13125. end;
  13126. end;
  13127. var
  13128. _OemToCharBuff: Pointer;
  13129. function OemToCharBuff;
  13130. begin
  13131. GetProcedureAddress(_OemToCharBuff, user32, 'OemToCharBuff' + AWSuffix);
  13132. asm
  13133. MOV ESP, EBP
  13134. POP EBP
  13135. JMP [_OemToCharBuff]
  13136. end;
  13137. end;
  13138. var
  13139. _CharUpperA: Pointer;
  13140. function CharUpperA;
  13141. begin
  13142. GetProcedureAddress(_CharUpperA, user32, 'CharUpperA');
  13143. asm
  13144. MOV ESP, EBP
  13145. POP EBP
  13146. JMP [_CharUpperA]
  13147. end;
  13148. end;
  13149. var
  13150. _CharUpperW: Pointer;
  13151. function CharUpperW;
  13152. begin
  13153. GetProcedureAddress(_CharUpperW, user32, 'CharUpperW');
  13154. asm
  13155. MOV ESP, EBP
  13156. POP EBP
  13157. JMP [_CharUpperW]
  13158. end;
  13159. end;
  13160. var
  13161. _CharUpper: Pointer;
  13162. function CharUpper;
  13163. begin
  13164. GetProcedureAddress(_CharUpper, user32, 'CharUpper' + AWSuffix);
  13165. asm
  13166. MOV ESP, EBP
  13167. POP EBP
  13168. JMP [_CharUpper]
  13169. end;
  13170. end;
  13171. var
  13172. _CharUpperBuffA: Pointer;
  13173. function CharUpperBuffA;
  13174. begin
  13175. GetProcedureAddress(_CharUpperBuffA, user32, 'CharUpperBuffA');
  13176. asm
  13177. MOV ESP, EBP
  13178. POP EBP
  13179. JMP [_CharUpperBuffA]
  13180. end;
  13181. end;
  13182. var
  13183. _CharUpperBuffW: Pointer;
  13184. function CharUpperBuffW;
  13185. begin
  13186. GetProcedureAddress(_CharUpperBuffW, user32, 'CharUpperBuffW');
  13187. asm
  13188. MOV ESP, EBP
  13189. POP EBP
  13190. JMP [_CharUpperBuffW]
  13191. end;
  13192. end;
  13193. var
  13194. _CharUpperBuff: Pointer;
  13195. function CharUpperBuff;
  13196. begin
  13197. GetProcedureAddress(_CharUpperBuff, user32, 'CharUpperBuff' + AWSuffix);
  13198. asm
  13199. MOV ESP, EBP
  13200. POP EBP
  13201. JMP [_CharUpperBuff]
  13202. end;
  13203. end;
  13204. var
  13205. _CharLowerA: Pointer;
  13206. function CharLowerA;
  13207. begin
  13208. GetProcedureAddress(_CharLowerA, user32, 'CharLowerA');
  13209. asm
  13210. MOV ESP, EBP
  13211. POP EBP
  13212. JMP [_CharLowerA]
  13213. end;
  13214. end;
  13215. var
  13216. _CharLowerW: Pointer;
  13217. function CharLowerW;
  13218. begin
  13219. GetProcedureAddress(_CharLowerW, user32, 'CharLowerW');
  13220. asm
  13221. MOV ESP, EBP
  13222. POP EBP
  13223. JMP [_CharLowerW]
  13224. end;
  13225. end;
  13226. var
  13227. _CharLower: Pointer;
  13228. function CharLower;
  13229. begin
  13230. GetProcedureAddress(_CharLower, user32, 'CharLower' + AWSuffix);
  13231. asm
  13232. MOV ESP, EBP
  13233. POP EBP
  13234. JMP [_CharLower]
  13235. end;
  13236. end;
  13237. var
  13238. _CharLowerBuffA: Pointer;
  13239. function CharLowerBuffA;
  13240. begin
  13241. GetProcedureAddress(_CharLowerBuffA, user32, 'CharLowerBuffA');
  13242. asm
  13243. MOV ESP, EBP
  13244. POP EBP
  13245. JMP [_CharLowerBuffA]
  13246. end;
  13247. end;
  13248. var
  13249. _CharLowerBuffW: Pointer;
  13250. function CharLowerBuffW;
  13251. begin
  13252. GetProcedureAddress(_CharLowerBuffW, user32, 'CharLowerBuffW');
  13253. asm
  13254. MOV ESP, EBP
  13255. POP EBP
  13256. JMP [_CharLowerBuffW]
  13257. end;
  13258. end;
  13259. var
  13260. _CharLowerBuff: Pointer;
  13261. function CharLowerBuff;
  13262. begin
  13263. GetProcedureAddress(_CharLowerBuff, user32, 'CharLowerBuff' + AWSuffix);
  13264. asm
  13265. MOV ESP, EBP
  13266. POP EBP
  13267. JMP [_CharLowerBuff]
  13268. end;
  13269. end;
  13270. var
  13271. _CharNextA: Pointer;
  13272. function CharNextA;
  13273. begin
  13274. GetProcedureAddress(_CharNextA, user32, 'CharNextA');
  13275. asm
  13276. MOV ESP, EBP
  13277. POP EBP
  13278. JMP [_CharNextA]
  13279. end;
  13280. end;
  13281. var
  13282. _CharNextW: Pointer;
  13283. function CharNextW;
  13284. begin
  13285. GetProcedureAddress(_CharNextW, user32, 'CharNextW');
  13286. asm
  13287. MOV ESP, EBP
  13288. POP EBP
  13289. JMP [_CharNextW]
  13290. end;
  13291. end;
  13292. var
  13293. _CharNext: Pointer;
  13294. function CharNext;
  13295. begin
  13296. GetProcedureAddress(_CharNext, user32, 'CharNext' + AWSuffix);
  13297. asm
  13298. MOV ESP, EBP
  13299. POP EBP
  13300. JMP [_CharNext]
  13301. end;
  13302. end;
  13303. var
  13304. _CharPrevA: Pointer;
  13305. function CharPrevA;
  13306. begin
  13307. GetProcedureAddress(_CharPrevA, user32, 'CharPrevA');
  13308. asm
  13309. MOV ESP, EBP
  13310. POP EBP
  13311. JMP [_CharPrevA]
  13312. end;
  13313. end;
  13314. var
  13315. _CharPrevW: Pointer;
  13316. function CharPrevW;
  13317. begin
  13318. GetProcedureAddress(_CharPrevW, user32, 'CharPrevW');
  13319. asm
  13320. MOV ESP, EBP
  13321. POP EBP
  13322. JMP [_CharPrevW]
  13323. end;
  13324. end;
  13325. var
  13326. _CharPrev: Pointer;
  13327. function CharPrev;
  13328. begin
  13329. GetProcedureAddress(_CharPrev, user32, 'CharPrev' + AWSuffix);
  13330. asm
  13331. MOV ESP, EBP
  13332. POP EBP
  13333. JMP [_CharPrev]
  13334. end;
  13335. end;
  13336. var
  13337. _CharNextExA: Pointer;
  13338. function CharNextExA;
  13339. begin
  13340. GetProcedureAddress(_CharNextExA, user32, 'CharNextExA');
  13341. asm
  13342. MOV ESP, EBP
  13343. POP EBP
  13344. JMP [_CharNextExA]
  13345. end;
  13346. end;
  13347. var
  13348. _CharPrevExA: Pointer;
  13349. function CharPrevExA;
  13350. begin
  13351. GetProcedureAddress(_CharPrevExA, user32, 'CharPrevExA');
  13352. asm
  13353. MOV ESP, EBP
  13354. POP EBP
  13355. JMP [_CharPrevExA]
  13356. end;
  13357. end;
  13358. var
  13359. _IsCharAlphaA: Pointer;
  13360. function IsCharAlphaA;
  13361. begin
  13362. GetProcedureAddress(_IsCharAlphaA, user32, 'IsCharAlphaA');
  13363. asm
  13364. MOV ESP, EBP
  13365. POP EBP
  13366. JMP [_IsCharAlphaA]
  13367. end;
  13368. end;
  13369. var
  13370. _IsCharAlphaW: Pointer;
  13371. function IsCharAlphaW;
  13372. begin
  13373. GetProcedureAddress(_IsCharAlphaW, user32, 'IsCharAlphaW');
  13374. asm
  13375. MOV ESP, EBP
  13376. POP EBP
  13377. JMP [_IsCharAlphaW]
  13378. end;
  13379. end;
  13380. var
  13381. _IsCharAlpha: Pointer;
  13382. function IsCharAlpha;
  13383. begin
  13384. GetProcedureAddress(_IsCharAlpha, user32, 'IsCharAlpha' + AWSuffix);
  13385. asm
  13386. MOV ESP, EBP
  13387. POP EBP
  13388. JMP [_IsCharAlpha]
  13389. end;
  13390. end;
  13391. var
  13392. _IsCharAlphaNumericA: Pointer;
  13393. function IsCharAlphaNumericA;
  13394. begin
  13395. GetProcedureAddress(_IsCharAlphaNumericA, user32, 'IsCharAlphaNumericA');
  13396. asm
  13397. MOV ESP, EBP
  13398. POP EBP
  13399. JMP [_IsCharAlphaNumericA]
  13400. end;
  13401. end;
  13402. var
  13403. _IsCharAlphaNumericW: Pointer;
  13404. function IsCharAlphaNumericW;
  13405. begin
  13406. GetProcedureAddress(_IsCharAlphaNumericW, user32, 'IsCharAlphaNumericW');
  13407. asm
  13408. MOV ESP, EBP
  13409. POP EBP
  13410. JMP [_IsCharAlphaNumericW]
  13411. end;
  13412. end;
  13413. var
  13414. _IsCharAlphaNumeric: Pointer;
  13415. function IsCharAlphaNumeric;
  13416. begin
  13417. GetProcedureAddress(_IsCharAlphaNumeric, user32, 'IsCharAlphaNumeric' + AWSuffix);
  13418. asm
  13419. MOV ESP, EBP
  13420. POP EBP
  13421. JMP [_IsCharAlphaNumeric]
  13422. end;
  13423. end;
  13424. var
  13425. _IsCharUpperA: Pointer;
  13426. function IsCharUpperA;
  13427. begin
  13428. GetProcedureAddress(_IsCharUpperA, user32, 'IsCharUpperA');
  13429. asm
  13430. MOV ESP, EBP
  13431. POP EBP
  13432. JMP [_IsCharUpperA]
  13433. end;
  13434. end;
  13435. var
  13436. _IsCharUpperW: Pointer;
  13437. function IsCharUpperW;
  13438. begin
  13439. GetProcedureAddress(_IsCharUpperW, user32, 'IsCharUpperW');
  13440. asm
  13441. MOV ESP, EBP
  13442. POP EBP
  13443. JMP [_IsCharUpperW]
  13444. end;
  13445. end;
  13446. var
  13447. _IsCharUpper: Pointer;
  13448. function IsCharUpper;
  13449. begin
  13450. GetProcedureAddress(_IsCharUpper, user32, 'IsCharUpper' + AWSuffix);
  13451. asm
  13452. MOV ESP, EBP
  13453. POP EBP
  13454. JMP [_IsCharUpper]
  13455. end;
  13456. end;
  13457. var
  13458. _IsCharLowerA: Pointer;
  13459. function IsCharLowerA;
  13460. begin
  13461. GetProcedureAddress(_IsCharLowerA, user32, 'IsCharLowerA');
  13462. asm
  13463. MOV ESP, EBP
  13464. POP EBP
  13465. JMP [_IsCharLowerA]
  13466. end;
  13467. end;
  13468. var
  13469. _IsCharLowerW: Pointer;
  13470. function IsCharLowerW;
  13471. begin
  13472. GetProcedureAddress(_IsCharLowerW, user32, 'IsCharLowerW');
  13473. asm
  13474. MOV ESP, EBP
  13475. POP EBP
  13476. JMP [_IsCharLowerW]
  13477. end;
  13478. end;
  13479. var
  13480. _IsCharLower: Pointer;
  13481. function IsCharLower;
  13482. begin
  13483. GetProcedureAddress(_IsCharLower, user32, 'IsCharLower' + AWSuffix);
  13484. asm
  13485. MOV ESP, EBP
  13486. POP EBP
  13487. JMP [_IsCharLower]
  13488. end;
  13489. end;
  13490. var
  13491. _SetFocus: Pointer;
  13492. function SetFocus;
  13493. begin
  13494. GetProcedureAddress(_SetFocus, user32, 'SetFocus');
  13495. asm
  13496. MOV ESP, EBP
  13497. POP EBP
  13498. JMP [_SetFocus]
  13499. end;
  13500. end;
  13501. var
  13502. _GetActiveWindow: Pointer;
  13503. function GetActiveWindow;
  13504. begin
  13505. GetProcedureAddress(_GetActiveWindow, user32, 'GetActiveWindow');
  13506. asm
  13507. MOV ESP, EBP
  13508. POP EBP
  13509. JMP [_GetActiveWindow]
  13510. end;
  13511. end;
  13512. var
  13513. _GetFocus: Pointer;
  13514. function GetFocus;
  13515. begin
  13516. GetProcedureAddress(_GetFocus, user32, 'GetFocus');
  13517. asm
  13518. MOV ESP, EBP
  13519. POP EBP
  13520. JMP [_GetFocus]
  13521. end;
  13522. end;
  13523. var
  13524. _GetKBCodePage: Pointer;
  13525. function GetKBCodePage;
  13526. begin
  13527. GetProcedureAddress(_GetKBCodePage, user32, 'GetKBCodePage');
  13528. asm
  13529. MOV ESP, EBP
  13530. POP EBP
  13531. JMP [_GetKBCodePage]
  13532. end;
  13533. end;
  13534. var
  13535. _GetKeyState: Pointer;
  13536. function GetKeyState;
  13537. begin
  13538. GetProcedureAddress(_GetKeyState, user32, 'GetKeyState');
  13539. asm
  13540. MOV ESP, EBP
  13541. POP EBP
  13542. JMP [_GetKeyState]
  13543. end;
  13544. end;
  13545. var
  13546. _GetAsyncKeyState: Pointer;
  13547. function GetAsyncKeyState;
  13548. begin
  13549. GetProcedureAddress(_GetAsyncKeyState, user32, 'GetAsyncKeyState');
  13550. asm
  13551. MOV ESP, EBP
  13552. POP EBP
  13553. JMP [_GetAsyncKeyState]
  13554. end;
  13555. end;
  13556. var
  13557. _GetKeyboardState: Pointer;
  13558. function GetKeyboardState;
  13559. begin
  13560. GetProcedureAddress(_GetKeyboardState, user32, 'GetKeyboardState');
  13561. asm
  13562. MOV ESP, EBP
  13563. POP EBP
  13564. JMP [_GetKeyboardState]
  13565. end;
  13566. end;
  13567. var
  13568. _SetKeyboardState: Pointer;
  13569. function SetKeyboardState;
  13570. begin
  13571. GetProcedureAddress(_SetKeyboardState, user32, 'SetKeyboardState');
  13572. asm
  13573. MOV ESP, EBP
  13574. POP EBP
  13575. JMP [_SetKeyboardState]
  13576. end;
  13577. end;
  13578. var
  13579. _GetKeyNameTextA: Pointer;
  13580. function GetKeyNameTextA;
  13581. begin
  13582. GetProcedureAddress(_GetKeyNameTextA, user32, 'GetKeyNameTextA');
  13583. asm
  13584. MOV ESP, EBP
  13585. POP EBP
  13586. JMP [_GetKeyNameTextA]
  13587. end;
  13588. end;
  13589. var
  13590. _GetKeyNameTextW: Pointer;
  13591. function GetKeyNameTextW;
  13592. begin
  13593. GetProcedureAddress(_GetKeyNameTextW, user32, 'GetKeyNameTextW');
  13594. asm
  13595. MOV ESP, EBP
  13596. POP EBP
  13597. JMP [_GetKeyNameTextW]
  13598. end;
  13599. end;
  13600. var
  13601. _GetKeyNameText: Pointer;
  13602. function GetKeyNameText;
  13603. begin
  13604. GetProcedureAddress(_GetKeyNameText, user32, 'GetKeyNameText' + AWSuffix);
  13605. asm
  13606. MOV ESP, EBP
  13607. POP EBP
  13608. JMP [_GetKeyNameText]
  13609. end;
  13610. end;
  13611. var
  13612. _GetKeyboardType: Pointer;
  13613. function GetKeyboardType;
  13614. begin
  13615. GetProcedureAddress(_GetKeyboardType, user32, 'GetKeyboardType');
  13616. asm
  13617. MOV ESP, EBP
  13618. POP EBP
  13619. JMP [_GetKeyboardType]
  13620. end;
  13621. end;
  13622. var
  13623. _ToAscii: Pointer;
  13624. function ToAscii;
  13625. begin
  13626. GetProcedureAddress(_ToAscii, user32, 'ToAscii');
  13627. asm
  13628. MOV ESP, EBP
  13629. POP EBP
  13630. JMP [_ToAscii]
  13631. end;
  13632. end;
  13633. var
  13634. _ToAsciiEx: Pointer;
  13635. function ToAsciiEx;
  13636. begin
  13637. GetProcedureAddress(_ToAsciiEx, user32, 'ToAsciiEx');
  13638. asm
  13639. MOV ESP, EBP
  13640. POP EBP
  13641. JMP [_ToAsciiEx]
  13642. end;
  13643. end;
  13644. var
  13645. _ToUnicode: Pointer;
  13646. function ToUnicode;
  13647. begin
  13648. GetProcedureAddress(_ToUnicode, user32, 'ToUnicode');
  13649. asm
  13650. MOV ESP, EBP
  13651. POP EBP
  13652. JMP [_ToUnicode]
  13653. end;
  13654. end;
  13655. var
  13656. _OemKeyScan: Pointer;
  13657. function OemKeyScan;
  13658. begin
  13659. GetProcedureAddress(_OemKeyScan, user32, 'OemKeyScan');
  13660. asm
  13661. MOV ESP, EBP
  13662. POP EBP
  13663. JMP [_OemKeyScan]
  13664. end;
  13665. end;
  13666. var
  13667. _VkKeyScanA: Pointer;
  13668. function VkKeyScanA;
  13669. begin
  13670. GetProcedureAddress(_VkKeyScanA, user32, 'VkKeyScanA');
  13671. asm
  13672. MOV ESP, EBP
  13673. POP EBP
  13674. JMP [_VkKeyScanA]
  13675. end;
  13676. end;
  13677. var
  13678. _VkKeyScanW: Pointer;
  13679. function VkKeyScanW;
  13680. begin
  13681. GetProcedureAddress(_VkKeyScanW, user32, 'VkKeyScanW');
  13682. asm
  13683. MOV ESP, EBP
  13684. POP EBP
  13685. JMP [_VkKeyScanW]
  13686. end;
  13687. end;
  13688. var
  13689. _VkKeyScan: Pointer;
  13690. function VkKeyScan;
  13691. begin
  13692. GetProcedureAddress(_VkKeyScan, user32, 'VkKeyScan' + AWSuffix);
  13693. asm
  13694. MOV ESP, EBP
  13695. POP EBP
  13696. JMP [_VkKeyScan]
  13697. end;
  13698. end;
  13699. var
  13700. _VkKeyScanExA: Pointer;
  13701. function VkKeyScanExA;
  13702. begin
  13703. GetProcedureAddress(_VkKeyScanExA, user32, 'VkKeyScanExA');
  13704. asm
  13705. MOV ESP, EBP
  13706. POP EBP
  13707. JMP [_VkKeyScanExA]
  13708. end;
  13709. end;
  13710. var
  13711. _VkKeyScanExW: Pointer;
  13712. function VkKeyScanExW;
  13713. begin
  13714. GetProcedureAddress(_VkKeyScanExW, user32, 'VkKeyScanExW');
  13715. asm
  13716. MOV ESP, EBP
  13717. POP EBP
  13718. JMP [_VkKeyScanExW]
  13719. end;
  13720. end;
  13721. var
  13722. _VkKeyScanEx: Pointer;
  13723. function VkKeyScanEx;
  13724. begin
  13725. GetProcedureAddress(_VkKeyScanEx, user32, 'VkKeyScanEx' + AWSuffix);
  13726. asm
  13727. MOV ESP, EBP
  13728. POP EBP
  13729. JMP [_VkKeyScanEx]
  13730. end;
  13731. end;
  13732. var
  13733. _keybd_event: Pointer;
  13734. procedure keybd_event;
  13735. begin
  13736. GetProcedureAddress(_keybd_event, user32, 'keybd_event');
  13737. asm
  13738. MOV ESP, EBP
  13739. POP EBP
  13740. JMP [_keybd_event]
  13741. end;
  13742. end;
  13743. var
  13744. _mouse_event: Pointer;
  13745. procedure mouse_event;
  13746. begin
  13747. GetProcedureAddress(_mouse_event, user32, 'mouse_event');
  13748. asm
  13749. MOV ESP, EBP
  13750. POP EBP
  13751. JMP [_mouse_event]
  13752. end;
  13753. end;
  13754. var
  13755. _SendInput: Pointer;
  13756. function SendInput;
  13757. begin
  13758. GetProcedureAddress(_SendInput, user32, 'SendInput');
  13759. asm
  13760. MOV ESP, EBP
  13761. POP EBP
  13762. JMP [_SendInput]
  13763. end;
  13764. end;
  13765. var
  13766. _GetLastInputInfo: Pointer;
  13767. function GetLastInputInfo;
  13768. begin
  13769. GetProcedureAddress(_GetLastInputInfo, user32, 'GetLastInputInfo');
  13770. asm
  13771. MOV ESP, EBP
  13772. POP EBP
  13773. JMP [_GetLastInputInfo]
  13774. end;
  13775. end;
  13776. var
  13777. _MapVirtualKeyA: Pointer;
  13778. function MapVirtualKeyA;
  13779. begin
  13780. GetProcedureAddress(_MapVirtualKeyA, user32, 'MapVirtualKeyA');
  13781. asm
  13782. MOV ESP, EBP
  13783. POP EBP
  13784. JMP [_MapVirtualKeyA]
  13785. end;
  13786. end;
  13787. var
  13788. _MapVirtualKeyW: Pointer;
  13789. function MapVirtualKeyW;
  13790. begin
  13791. GetProcedureAddress(_MapVirtualKeyW, user32, 'MapVirtualKeyW');
  13792. asm
  13793. MOV ESP, EBP
  13794. POP EBP
  13795. JMP [_MapVirtualKeyW]
  13796. end;
  13797. end;
  13798. var
  13799. _MapVirtualKey: Pointer;
  13800. function MapVirtualKey;
  13801. begin
  13802. GetProcedureAddress(_MapVirtualKey, user32, 'MapVirtualKey' + AWSuffix);
  13803. asm
  13804. MOV ESP, EBP
  13805. POP EBP
  13806. JMP [_MapVirtualKey]
  13807. end;
  13808. end;
  13809. var
  13810. _MapVirtualKeyExA: Pointer;
  13811. function MapVirtualKeyExA;
  13812. begin
  13813. GetProcedureAddress(_MapVirtualKeyExA, user32, 'MapVirtualKeyExA');
  13814. asm
  13815. MOV ESP, EBP
  13816. POP EBP
  13817. JMP [_MapVirtualKeyExA]
  13818. end;
  13819. end;
  13820. var
  13821. _MapVirtualKeyExW: Pointer;
  13822. function MapVirtualKeyExW;
  13823. begin
  13824. GetProcedureAddress(_MapVirtualKeyExW, user32, 'MapVirtualKeyExW');
  13825. asm
  13826. MOV ESP, EBP
  13827. POP EBP
  13828. JMP [_MapVirtualKeyExW]
  13829. end;
  13830. end;
  13831. var
  13832. _MapVirtualKeyEx: Pointer;
  13833. function MapVirtualKeyEx;
  13834. begin
  13835. GetProcedureAddress(_MapVirtualKeyEx, user32, 'MapVirtualKeyEx' + AWSuffix);
  13836. asm
  13837. MOV ESP, EBP
  13838. POP EBP
  13839. JMP [_MapVirtualKeyEx]
  13840. end;
  13841. end;
  13842. var
  13843. _GetInputState: Pointer;
  13844. function GetInputState;
  13845. begin
  13846. GetProcedureAddress(_GetInputState, user32, 'GetInputState');
  13847. asm
  13848. MOV ESP, EBP
  13849. POP EBP
  13850. JMP [_GetInputState]
  13851. end;
  13852. end;
  13853. var
  13854. _GetQueueStatus: Pointer;
  13855. function GetQueueStatus;
  13856. begin
  13857. GetProcedureAddress(_GetQueueStatus, user32, 'GetQueueStatus');
  13858. asm
  13859. MOV ESP, EBP
  13860. POP EBP
  13861. JMP [_GetQueueStatus]
  13862. end;
  13863. end;
  13864. var
  13865. _GetCapture: Pointer;
  13866. function GetCapture;
  13867. begin
  13868. GetProcedureAddress(_GetCapture, user32, 'GetCapture');
  13869. asm
  13870. MOV ESP, EBP
  13871. POP EBP
  13872. JMP [_GetCapture]
  13873. end;
  13874. end;
  13875. var
  13876. _SetCapture: Pointer;
  13877. function SetCapture;
  13878. begin
  13879. GetProcedureAddress(_SetCapture, user32, 'SetCapture');
  13880. asm
  13881. MOV ESP, EBP
  13882. POP EBP
  13883. JMP [_SetCapture]
  13884. end;
  13885. end;
  13886. var
  13887. _ReleaseCapture: Pointer;
  13888. function ReleaseCapture;
  13889. begin
  13890. GetProcedureAddress(_ReleaseCapture, user32, 'ReleaseCapture');
  13891. asm
  13892. MOV ESP, EBP
  13893. POP EBP
  13894. JMP [_ReleaseCapture]
  13895. end;
  13896. end;
  13897. var
  13898. _MsgWaitForMultipleObjects: Pointer;
  13899. function MsgWaitForMultipleObjects;
  13900. begin
  13901. GetProcedureAddress(_MsgWaitForMultipleObjects, user32, 'MsgWaitForMultipleObjects');
  13902. asm
  13903. MOV ESP, EBP
  13904. POP EBP
  13905. JMP [_MsgWaitForMultipleObjects]
  13906. end;
  13907. end;
  13908. var
  13909. _MsgWaitForMultipleObjectsEx: Pointer;
  13910. function MsgWaitForMultipleObjectsEx;
  13911. begin
  13912. GetProcedureAddress(_MsgWaitForMultipleObjectsEx, user32, 'MsgWaitForMultipleObjectsEx');
  13913. asm
  13914. MOV ESP, EBP
  13915. POP EBP
  13916. JMP [_MsgWaitForMultipleObjectsEx]
  13917. end;
  13918. end;
  13919. var
  13920. _SetTimer: Pointer;
  13921. function SetTimer;
  13922. begin
  13923. GetProcedureAddress(_SetTimer, user32, 'SetTimer');
  13924. asm
  13925. MOV ESP, EBP
  13926. POP EBP
  13927. JMP [_SetTimer]
  13928. end;
  13929. end;
  13930. var
  13931. _KillTimer: Pointer;
  13932. function KillTimer;
  13933. begin
  13934. GetProcedureAddress(_KillTimer, user32, 'KillTimer');
  13935. asm
  13936. MOV ESP, EBP
  13937. POP EBP
  13938. JMP [_KillTimer]
  13939. end;
  13940. end;
  13941. var
  13942. _IsWindowUnicode: Pointer;
  13943. function IsWindowUnicode;
  13944. begin
  13945. GetProcedureAddress(_IsWindowUnicode, user32, 'IsWindowUnicode');
  13946. asm
  13947. MOV ESP, EBP
  13948. POP EBP
  13949. JMP [_IsWindowUnicode]
  13950. end;
  13951. end;
  13952. var
  13953. _EnableWindow: Pointer;
  13954. function EnableWindow;
  13955. begin
  13956. GetProcedureAddress(_EnableWindow, user32, 'EnableWindow');
  13957. asm
  13958. MOV ESP, EBP
  13959. POP EBP
  13960. JMP [_EnableWindow]
  13961. end;
  13962. end;
  13963. var
  13964. _IsWindowEnabled: Pointer;
  13965. function IsWindowEnabled;
  13966. begin
  13967. GetProcedureAddress(_IsWindowEnabled, user32, 'IsWindowEnabled');
  13968. asm
  13969. MOV ESP, EBP
  13970. POP EBP
  13971. JMP [_IsWindowEnabled]
  13972. end;
  13973. end;
  13974. var
  13975. _LoadAcceleratorsA: Pointer;
  13976. function LoadAcceleratorsA;
  13977. begin
  13978. GetProcedureAddress(_LoadAcceleratorsA, user32, 'LoadAcceleratorsA');
  13979. asm
  13980. MOV ESP, EBP
  13981. POP EBP
  13982. JMP [_LoadAcceleratorsA]
  13983. end;
  13984. end;
  13985. var
  13986. _LoadAcceleratorsW: Pointer;
  13987. function LoadAcceleratorsW;
  13988. begin
  13989. GetProcedureAddress(_LoadAcceleratorsW, user32, 'LoadAcceleratorsW');
  13990. asm
  13991. MOV ESP, EBP
  13992. POP EBP
  13993. JMP [_LoadAcceleratorsW]
  13994. end;
  13995. end;
  13996. var
  13997. _LoadAccelerators: Pointer;
  13998. function LoadAccelerators;
  13999. begin
  14000. GetProcedureAddress(_LoadAccelerators, user32, 'LoadAccelerators' + AWSuffix);
  14001. asm
  14002. MOV ESP, EBP
  14003. POP EBP
  14004. JMP [_LoadAccelerators]
  14005. end;
  14006. end;
  14007. var
  14008. _CreateAcceleratorTableA: Pointer;
  14009. function CreateAcceleratorTableA;
  14010. begin
  14011. GetProcedureAddress(_CreateAcceleratorTableA, user32, 'CreateAcceleratorTableA');
  14012. asm
  14013. MOV ESP, EBP
  14014. POP EBP
  14015. JMP [_CreateAcceleratorTableA]
  14016. end;
  14017. end;
  14018. var
  14019. _CreateAcceleratorTableW: Pointer;
  14020. function CreateAcceleratorTableW;
  14021. begin
  14022. GetProcedureAddress(_CreateAcceleratorTableW, user32, 'CreateAcceleratorTableW');
  14023. asm
  14024. MOV ESP, EBP
  14025. POP EBP
  14026. JMP [_CreateAcceleratorTableW]
  14027. end;
  14028. end;
  14029. var
  14030. _CreateAcceleratorTable: Pointer;
  14031. function CreateAcceleratorTable;
  14032. begin
  14033. GetProcedureAddress(_CreateAcceleratorTable, user32, 'CreateAcceleratorTable' + AWSuffix);
  14034. asm
  14035. MOV ESP, EBP
  14036. POP EBP
  14037. JMP [_CreateAcceleratorTable]
  14038. end;
  14039. end;
  14040. var
  14041. _DestroyAcceleratorTable: Pointer;
  14042. function DestroyAcceleratorTable;
  14043. begin
  14044. GetProcedureAddress(_DestroyAcceleratorTable, user32, 'DestroyAcceleratorTable');
  14045. asm
  14046. MOV ESP, EBP
  14047. POP EBP
  14048. JMP [_DestroyAcceleratorTable]
  14049. end;
  14050. end;
  14051. var
  14052. _CopyAcceleratorTableA: Pointer;
  14053. function CopyAcceleratorTableA;
  14054. begin
  14055. GetProcedureAddress(_CopyAcceleratorTableA, user32, 'CopyAcceleratorTableA');
  14056. asm
  14057. MOV ESP, EBP
  14058. POP EBP
  14059. JMP [_CopyAcceleratorTableA]
  14060. end;
  14061. end;
  14062. var
  14063. _CopyAcceleratorTableW: Pointer;
  14064. function CopyAcceleratorTableW;
  14065. begin
  14066. GetProcedureAddress(_CopyAcceleratorTableW, user32, 'CopyAcceleratorTableW');
  14067. asm
  14068. MOV ESP, EBP
  14069. POP EBP
  14070. JMP [_CopyAcceleratorTableW]
  14071. end;
  14072. end;
  14073. var
  14074. _CopyAcceleratorTable: Pointer;
  14075. function CopyAcceleratorTable;
  14076. begin
  14077. GetProcedureAddress(_CopyAcceleratorTable, user32, 'CopyAcceleratorTable' + AWSuffix);
  14078. asm
  14079. MOV ESP, EBP
  14080. POP EBP
  14081. JMP [_CopyAcceleratorTable]
  14082. end;
  14083. end;
  14084. var
  14085. _TranslateAcceleratorA: Pointer;
  14086. function TranslateAcceleratorA;
  14087. begin
  14088. GetProcedureAddress(_TranslateAcceleratorA, user32, 'TranslateAcceleratorA');
  14089. asm
  14090. MOV ESP, EBP
  14091. POP EBP
  14092. JMP [_TranslateAcceleratorA]
  14093. end;
  14094. end;
  14095. var
  14096. _TranslateAcceleratorW: Pointer;
  14097. function TranslateAcceleratorW;
  14098. begin
  14099. GetProcedureAddress(_TranslateAcceleratorW, user32, 'TranslateAcceleratorW');
  14100. asm
  14101. MOV ESP, EBP
  14102. POP EBP
  14103. JMP [_TranslateAcceleratorW]
  14104. end;
  14105. end;
  14106. var
  14107. _TranslateAccelerator: Pointer;
  14108. function TranslateAccelerator;
  14109. begin
  14110. GetProcedureAddress(_TranslateAccelerator, user32, 'TranslateAccelerator' + AWSuffix);
  14111. asm
  14112. MOV ESP, EBP
  14113. POP EBP
  14114. JMP [_TranslateAccelerator]
  14115. end;
  14116. end;
  14117. var
  14118. _GetSystemMetrics: Pointer;
  14119. function GetSystemMetrics;
  14120. begin
  14121. GetProcedureAddress(_GetSystemMetrics, user32, 'GetSystemMetrics');
  14122. asm
  14123. MOV ESP, EBP
  14124. POP EBP
  14125. JMP [_GetSystemMetrics]
  14126. end;
  14127. end;
  14128. var
  14129. _LoadMenuA: Pointer;
  14130. function LoadMenuA;
  14131. begin
  14132. GetProcedureAddress(_LoadMenuA, user32, 'LoadMenuAA');
  14133. asm
  14134. MOV ESP, EBP
  14135. POP EBP
  14136. JMP [_LoadMenuA]
  14137. end;
  14138. end;
  14139. var
  14140. _LoadMenuW: Pointer;
  14141. function LoadMenuW;
  14142. begin
  14143. GetProcedureAddress(_LoadMenuW, user32, 'LoadMenuWA');
  14144. asm
  14145. MOV ESP, EBP
  14146. POP EBP
  14147. JMP [_LoadMenuW]
  14148. end;
  14149. end;
  14150. var
  14151. _LoadMenu: Pointer;
  14152. function LoadMenu;
  14153. begin
  14154. GetProcedureAddress(_LoadMenu, user32, 'LoadMenu' + AWSuffix);
  14155. asm
  14156. MOV ESP, EBP
  14157. POP EBP
  14158. JMP [_LoadMenu]
  14159. end;
  14160. end;
  14161. var
  14162. _LoadMenuIndirectA: Pointer;
  14163. function LoadMenuIndirectA;
  14164. begin
  14165. GetProcedureAddress(_LoadMenuIndirectA, user32, 'LoadMenuIndirectA');
  14166. asm
  14167. MOV ESP, EBP
  14168. POP EBP
  14169. JMP [_LoadMenuIndirectA]
  14170. end;
  14171. end;
  14172. var
  14173. _LoadMenuIndirectW: Pointer;
  14174. function LoadMenuIndirectW;
  14175. begin
  14176. GetProcedureAddress(_LoadMenuIndirectW, user32, 'LoadMenuIndirectW');
  14177. asm
  14178. MOV ESP, EBP
  14179. POP EBP
  14180. JMP [_LoadMenuIndirectW]
  14181. end;
  14182. end;
  14183. var
  14184. _LoadMenuIndirect: Pointer;
  14185. function LoadMenuIndirect;
  14186. begin
  14187. GetProcedureAddress(_LoadMenuIndirect, user32, 'LoadMenuIndirect' + AWSuffix);
  14188. asm
  14189. MOV ESP, EBP
  14190. POP EBP
  14191. JMP [_LoadMenuIndirect]
  14192. end;
  14193. end;
  14194. var
  14195. _GetMenu: Pointer;
  14196. function GetMenu;
  14197. begin
  14198. GetProcedureAddress(_GetMenu, user32, 'GetMenu');
  14199. asm
  14200. MOV ESP, EBP
  14201. POP EBP
  14202. JMP [_GetMenu]
  14203. end;
  14204. end;
  14205. var
  14206. _SetMenu: Pointer;
  14207. function SetMenu;
  14208. begin
  14209. GetProcedureAddress(_SetMenu, user32, 'SetMenu');
  14210. asm
  14211. MOV ESP, EBP
  14212. POP EBP
  14213. JMP [_SetMenu]
  14214. end;
  14215. end;
  14216. var
  14217. _ChangeMenuA: Pointer;
  14218. function ChangeMenuA;
  14219. begin
  14220. GetProcedureAddress(_ChangeMenuA, user32, 'ChangeMenuA');
  14221. asm
  14222. MOV ESP, EBP
  14223. POP EBP
  14224. JMP [_ChangeMenuA]
  14225. end;
  14226. end;
  14227. var
  14228. _ChangeMenuW: Pointer;
  14229. function ChangeMenuW;
  14230. begin
  14231. GetProcedureAddress(_ChangeMenuW, user32, 'ChangeMenuW');
  14232. asm
  14233. MOV ESP, EBP
  14234. POP EBP
  14235. JMP [_ChangeMenuW]
  14236. end;
  14237. end;
  14238. var
  14239. _ChangeMenu: Pointer;
  14240. function ChangeMenu;
  14241. begin
  14242. GetProcedureAddress(_ChangeMenu, user32, 'ChangeMenu' + AWSuffix);
  14243. asm
  14244. MOV ESP, EBP
  14245. POP EBP
  14246. JMP [_ChangeMenu]
  14247. end;
  14248. end;
  14249. var
  14250. _HiliteMenuItem: Pointer;
  14251. function HiliteMenuItem;
  14252. begin
  14253. GetProcedureAddress(_HiliteMenuItem, user32, 'HiliteMenuItem');
  14254. asm
  14255. MOV ESP, EBP
  14256. POP EBP
  14257. JMP [_HiliteMenuItem]
  14258. end;
  14259. end;
  14260. var
  14261. _GetMenuStringA: Pointer;
  14262. function GetMenuStringA;
  14263. begin
  14264. GetProcedureAddress(_GetMenuStringA, user32, 'GetMenuStringA');
  14265. asm
  14266. MOV ESP, EBP
  14267. POP EBP
  14268. JMP [_GetMenuStringA]
  14269. end;
  14270. end;
  14271. var
  14272. _GetMenuStringW: Pointer;
  14273. function GetMenuStringW;
  14274. begin
  14275. GetProcedureAddress(_GetMenuStringW, user32, 'GetMenuStringW');
  14276. asm
  14277. MOV ESP, EBP
  14278. POP EBP
  14279. JMP [_GetMenuStringW]
  14280. end;
  14281. end;
  14282. var
  14283. _GetMenuString: Pointer;
  14284. function GetMenuString;
  14285. begin
  14286. GetProcedureAddress(_GetMenuString, user32, 'GetMenuString' + AWSuffix);
  14287. asm
  14288. MOV ESP, EBP
  14289. POP EBP
  14290. JMP [_GetMenuString]
  14291. end;
  14292. end;
  14293. var
  14294. _GetMenuState: Pointer;
  14295. function GetMenuState;
  14296. begin
  14297. GetProcedureAddress(_GetMenuState, user32, 'GetMenuState');
  14298. asm
  14299. MOV ESP, EBP
  14300. POP EBP
  14301. JMP [_GetMenuState]
  14302. end;
  14303. end;
  14304. var
  14305. _DrawMenuBar: Pointer;
  14306. function DrawMenuBar;
  14307. begin
  14308. GetProcedureAddress(_DrawMenuBar, user32, 'DrawMenuBar');
  14309. asm
  14310. MOV ESP, EBP
  14311. POP EBP
  14312. JMP [_DrawMenuBar]
  14313. end;
  14314. end;
  14315. var
  14316. _GetSystemMenu: Pointer;
  14317. function GetSystemMenu;
  14318. begin
  14319. GetProcedureAddress(_GetSystemMenu, user32, 'GetSystemMenu');
  14320. asm
  14321. MOV ESP, EBP
  14322. POP EBP
  14323. JMP [_GetSystemMenu]
  14324. end;
  14325. end;
  14326. var
  14327. _CreateMenu: Pointer;
  14328. function CreateMenu;
  14329. begin
  14330. GetProcedureAddress(_CreateMenu, user32, 'CreateMenu');
  14331. asm
  14332. MOV ESP, EBP
  14333. POP EBP
  14334. JMP [_CreateMenu]
  14335. end;
  14336. end;
  14337. var
  14338. _CreatePopupMenu: Pointer;
  14339. function CreatePopupMenu;
  14340. begin
  14341. GetProcedureAddress(_CreatePopupMenu, user32, 'CreatePopupMenu');
  14342. asm
  14343. MOV ESP, EBP
  14344. POP EBP
  14345. JMP [_CreatePopupMenu]
  14346. end;
  14347. end;
  14348. var
  14349. _DestroyMenu: Pointer;
  14350. function DestroyMenu;
  14351. begin
  14352. GetProcedureAddress(_DestroyMenu, user32, 'DestroyMenu');
  14353. asm
  14354. MOV ESP, EBP
  14355. POP EBP
  14356. JMP [_DestroyMenu]
  14357. end;
  14358. end;
  14359. var
  14360. _CheckMenuItem: Pointer;
  14361. function CheckMenuItem;
  14362. begin
  14363. GetProcedureAddress(_CheckMenuItem, user32, 'CheckMenuItem');
  14364. asm
  14365. MOV ESP, EBP
  14366. POP EBP
  14367. JMP [_CheckMenuItem]
  14368. end;
  14369. end;
  14370. var
  14371. _EnableMenuItem: Pointer;
  14372. function EnableMenuItem;
  14373. begin
  14374. GetProcedureAddress(_EnableMenuItem, user32, 'EnableMenuItem');
  14375. asm
  14376. MOV ESP, EBP
  14377. POP EBP
  14378. JMP [_EnableMenuItem]
  14379. end;
  14380. end;
  14381. var
  14382. _GetSubMenu: Pointer;
  14383. function GetSubMenu;
  14384. begin
  14385. GetProcedureAddress(_GetSubMenu, user32, 'GetSubMenu');
  14386. asm
  14387. MOV ESP, EBP
  14388. POP EBP
  14389. JMP [_GetSubMenu]
  14390. end;
  14391. end;
  14392. var
  14393. _GetMenuItemID: Pointer;
  14394. function GetMenuItemID;
  14395. begin
  14396. GetProcedureAddress(_GetMenuItemID, user32, 'GetMenuItemID');
  14397. asm
  14398. MOV ESP, EBP
  14399. POP EBP
  14400. JMP [_GetMenuItemID]
  14401. end;
  14402. end;
  14403. var
  14404. _GetMenuItemCount: Pointer;
  14405. function GetMenuItemCount;
  14406. begin
  14407. GetProcedureAddress(_GetMenuItemCount, user32, 'GetMenuItemCount');
  14408. asm
  14409. MOV ESP, EBP
  14410. POP EBP
  14411. JMP [_GetMenuItemCount]
  14412. end;
  14413. end;
  14414. var
  14415. _InsertMenuA: Pointer;
  14416. function InsertMenuA;
  14417. begin
  14418. GetProcedureAddress(_InsertMenuA, user32, 'InsertMenuA');
  14419. asm
  14420. MOV ESP, EBP
  14421. POP EBP
  14422. JMP [_InsertMenuA]
  14423. end;
  14424. end;
  14425. var
  14426. _InsertMenuW: Pointer;
  14427. function InsertMenuW;
  14428. begin
  14429. GetProcedureAddress(_InsertMenuW, user32, 'InsertMenuW');
  14430. asm
  14431. MOV ESP, EBP
  14432. POP EBP
  14433. JMP [_InsertMenuW]
  14434. end;
  14435. end;
  14436. var
  14437. _InsertMenu: Pointer;
  14438. function InsertMenu;
  14439. begin
  14440. GetProcedureAddress(_InsertMenu, user32, 'InsertMenu' + AWSuffix);
  14441. asm
  14442. MOV ESP, EBP
  14443. POP EBP
  14444. JMP [_InsertMenu]
  14445. end;
  14446. end;
  14447. var
  14448. _AppendMenuA: Pointer;
  14449. function AppendMenuA;
  14450. begin
  14451. GetProcedureAddress(_AppendMenuA, user32, 'AppendMenuA');
  14452. asm
  14453. MOV ESP, EBP
  14454. POP EBP
  14455. JMP [_AppendMenuA]
  14456. end;
  14457. end;
  14458. var
  14459. _AppendMenuW: Pointer;
  14460. function AppendMenuW;
  14461. begin
  14462. GetProcedureAddress(_AppendMenuW, user32, 'AppendMenuW');
  14463. asm
  14464. MOV ESP, EBP
  14465. POP EBP
  14466. JMP [_AppendMenuW]
  14467. end;
  14468. end;
  14469. var
  14470. _AppendMenu: Pointer;
  14471. function AppendMenu;
  14472. begin
  14473. GetProcedureAddress(_AppendMenu, user32, 'AppendMenu' + AWSuffix);
  14474. asm
  14475. MOV ESP, EBP
  14476. POP EBP
  14477. JMP [_AppendMenu]
  14478. end;
  14479. end;
  14480. var
  14481. _ModifyMenuA: Pointer;
  14482. function ModifyMenuA;
  14483. begin
  14484. GetProcedureAddress(_ModifyMenuA, user32, 'ModifyMenuA');
  14485. asm
  14486. MOV ESP, EBP
  14487. POP EBP
  14488. JMP [_ModifyMenuA]
  14489. end;
  14490. end;
  14491. var
  14492. _ModifyMenuW: Pointer;
  14493. function ModifyMenuW;
  14494. begin
  14495. GetProcedureAddress(_ModifyMenuW, user32, 'ModifyMenuW');
  14496. asm
  14497. MOV ESP, EBP
  14498. POP EBP
  14499. JMP [_ModifyMenuW]
  14500. end;
  14501. end;
  14502. var
  14503. _ModifyMenu: Pointer;
  14504. function ModifyMenu;
  14505. begin
  14506. GetProcedureAddress(_ModifyMenu, user32, 'ModifyMenu' + AWSuffix);
  14507. asm
  14508. MOV ESP, EBP
  14509. POP EBP
  14510. JMP [_ModifyMenu]
  14511. end;
  14512. end;
  14513. var
  14514. _RemoveMenu: Pointer;
  14515. function RemoveMenu;
  14516. begin
  14517. GetProcedureAddress(_RemoveMenu, user32, 'RemoveMenu');
  14518. asm
  14519. MOV ESP, EBP
  14520. POP EBP
  14521. JMP [_RemoveMenu]
  14522. end;
  14523. end;
  14524. var
  14525. _DeleteMenu: Pointer;
  14526. function DeleteMenu;
  14527. begin
  14528. GetProcedureAddress(_DeleteMenu, user32, 'DeleteMenu');
  14529. asm
  14530. MOV ESP, EBP
  14531. POP EBP
  14532. JMP [_DeleteMenu]
  14533. end;
  14534. end;
  14535. var
  14536. _SetMenuItemBitmaps: Pointer;
  14537. function SetMenuItemBitmaps;
  14538. begin
  14539. GetProcedureAddress(_SetMenuItemBitmaps, user32, 'SetMenuItemBitmaps');
  14540. asm
  14541. MOV ESP, EBP
  14542. POP EBP
  14543. JMP [_SetMenuItemBitmaps]
  14544. end;
  14545. end;
  14546. var
  14547. _GetMenuCheckMarkDimensions: Pointer;
  14548. function GetMenuCheckMarkDimensions;
  14549. begin
  14550. GetProcedureAddress(_GetMenuCheckMarkDimensions, user32, 'GetMenuCheckMarkDimensions');
  14551. asm
  14552. MOV ESP, EBP
  14553. POP EBP
  14554. JMP [_GetMenuCheckMarkDimensions]
  14555. end;
  14556. end;
  14557. var
  14558. _TrackPopupMenu: Pointer;
  14559. function TrackPopupMenu;
  14560. begin
  14561. GetProcedureAddress(_TrackPopupMenu, user32, 'TrackPopupMenu');
  14562. asm
  14563. MOV ESP, EBP
  14564. POP EBP
  14565. JMP [_TrackPopupMenu]
  14566. end;
  14567. end;
  14568. var
  14569. _TrackPopupMenuEx: Pointer;
  14570. function TrackPopupMenuEx;
  14571. begin
  14572. GetProcedureAddress(_TrackPopupMenuEx, user32, 'TrackPopupMenuEx');
  14573. asm
  14574. MOV ESP, EBP
  14575. POP EBP
  14576. JMP [_TrackPopupMenuEx]
  14577. end;
  14578. end;
  14579. var
  14580. _GetMenuInfo: Pointer;
  14581. function GetMenuInfo;
  14582. begin
  14583. GetProcedureAddress(_GetMenuInfo, user32, 'GetMenuInfo');
  14584. asm
  14585. MOV ESP, EBP
  14586. POP EBP
  14587. JMP [_GetMenuInfo]
  14588. end;
  14589. end;
  14590. var
  14591. _SetMenuInfo: Pointer;
  14592. function SetMenuInfo;
  14593. begin
  14594. GetProcedureAddress(_SetMenuInfo, user32, 'SetMenuInfo');
  14595. asm
  14596. MOV ESP, EBP
  14597. POP EBP
  14598. JMP [_SetMenuInfo]
  14599. end;
  14600. end;
  14601. var
  14602. _EndMenu: Pointer;
  14603. function EndMenu;
  14604. begin
  14605. GetProcedureAddress(_EndMenu, user32, 'EndMenu');
  14606. asm
  14607. MOV ESP, EBP
  14608. POP EBP
  14609. JMP [_EndMenu]
  14610. end;
  14611. end;
  14612. var
  14613. _InsertMenuItemA: Pointer;
  14614. function InsertMenuItemA;
  14615. begin
  14616. GetProcedureAddress(_InsertMenuItemA, user32, 'InsertMenuItemA');
  14617. asm
  14618. MOV ESP, EBP
  14619. POP EBP
  14620. JMP [_InsertMenuItemA]
  14621. end;
  14622. end;
  14623. var
  14624. _InsertMenuItemW: Pointer;
  14625. function InsertMenuItemW;
  14626. begin
  14627. GetProcedureAddress(_InsertMenuItemW, user32, 'InsertMenuItemW');
  14628. asm
  14629. MOV ESP, EBP
  14630. POP EBP
  14631. JMP [_InsertMenuItemW]
  14632. end;
  14633. end;
  14634. var
  14635. _InsertMenuItem: Pointer;
  14636. function InsertMenuItem;
  14637. begin
  14638. GetProcedureAddress(_InsertMenuItem, user32, 'InsertMenuItem' + AWSuffix);
  14639. asm
  14640. MOV ESP, EBP
  14641. POP EBP
  14642. JMP [_InsertMenuItem]
  14643. end;
  14644. end;
  14645. var
  14646. _GetMenuItemInfoA: Pointer;
  14647. function GetMenuItemInfoA;
  14648. begin
  14649. GetProcedureAddress(_GetMenuItemInfoA, user32, 'GetMenuItemInfoA');
  14650. asm
  14651. MOV ESP, EBP
  14652. POP EBP
  14653. JMP [_GetMenuItemInfoA]
  14654. end;
  14655. end;
  14656. var
  14657. _GetMenuItemInfoW: Pointer;
  14658. function GetMenuItemInfoW;
  14659. begin
  14660. GetProcedureAddress(_GetMenuItemInfoW, user32, 'GetMenuItemInfoW');
  14661. asm
  14662. MOV ESP, EBP
  14663. POP EBP
  14664. JMP [_GetMenuItemInfoW]
  14665. end;
  14666. end;
  14667. var
  14668. _GetMenuItemInfo: Pointer;
  14669. function GetMenuItemInfo;
  14670. begin
  14671. GetProcedureAddress(_GetMenuItemInfo, user32, 'GetMenuItemInfo' + AWSuffix);
  14672. asm
  14673. MOV ESP, EBP
  14674. POP EBP
  14675. JMP [_GetMenuItemInfo]
  14676. end;
  14677. end;
  14678. var
  14679. _SetMenuItemInfoA: Pointer;
  14680. function SetMenuItemInfoA;
  14681. begin
  14682. GetProcedureAddress(_SetMenuItemInfoA, user32, 'SetMenuItemInfoA');
  14683. asm
  14684. MOV ESP, EBP
  14685. POP EBP
  14686. JMP [_SetMenuItemInfoA]
  14687. end;
  14688. end;
  14689. var
  14690. _SetMenuItemInfoW: Pointer;
  14691. function SetMenuItemInfoW;
  14692. begin
  14693. GetProcedureAddress(_SetMenuItemInfoW, user32, 'SetMenuItemInfoW');
  14694. asm
  14695. MOV ESP, EBP
  14696. POP EBP
  14697. JMP [_SetMenuItemInfoW]
  14698. end;
  14699. end;
  14700. var
  14701. _SetMenuItemInfo: Pointer;
  14702. function SetMenuItemInfo;
  14703. begin
  14704. GetProcedureAddress(_SetMenuItemInfo, user32, 'SetMenuItemInfo' + AWSuffix);
  14705. asm
  14706. MOV ESP, EBP
  14707. POP EBP
  14708. JMP [_SetMenuItemInfo]
  14709. end;
  14710. end;
  14711. var
  14712. _GetMenuDefaultItem: Pointer;
  14713. function GetMenuDefaultItem;
  14714. begin
  14715. GetProcedureAddress(_GetMenuDefaultItem, user32, 'GetMenuDefaultItem');
  14716. asm
  14717. MOV ESP, EBP
  14718. POP EBP
  14719. JMP [_GetMenuDefaultItem]
  14720. end;
  14721. end;
  14722. var
  14723. _SetMenuDefaultItem: Pointer;
  14724. function SetMenuDefaultItem;
  14725. begin
  14726. GetProcedureAddress(_SetMenuDefaultItem, user32, 'SetMenuDefaultItem');
  14727. asm
  14728. MOV ESP, EBP
  14729. POP EBP
  14730. JMP [_SetMenuDefaultItem]
  14731. end;
  14732. end;
  14733. var
  14734. _GetMenuItemRect: Pointer;
  14735. function GetMenuItemRect;
  14736. begin
  14737. GetProcedureAddress(_GetMenuItemRect, user32, 'GetMenuItemRect');
  14738. asm
  14739. MOV ESP, EBP
  14740. POP EBP
  14741. JMP [_GetMenuItemRect]
  14742. end;
  14743. end;
  14744. var
  14745. _MenuItemFromPoint: Pointer;
  14746. function MenuItemFromPoint;
  14747. begin
  14748. GetProcedureAddress(_MenuItemFromPoint, user32, 'MenuItemFromPoint');
  14749. asm
  14750. MOV ESP, EBP
  14751. POP EBP
  14752. JMP [_MenuItemFromPoint]
  14753. end;
  14754. end;
  14755. var
  14756. _DragObject: Pointer;
  14757. function DragObject;
  14758. begin
  14759. GetProcedureAddress(_DragObject, user32, 'DragObject');
  14760. asm
  14761. MOV ESP, EBP
  14762. POP EBP
  14763. JMP [_DragObject]
  14764. end;
  14765. end;
  14766. var
  14767. _DragDetect: Pointer;
  14768. function DragDetect;
  14769. begin
  14770. GetProcedureAddress(_DragDetect, user32, 'DragDetect');
  14771. asm
  14772. MOV ESP, EBP
  14773. POP EBP
  14774. JMP [_DragDetect]
  14775. end;
  14776. end;
  14777. var
  14778. _DrawIcon: Pointer;
  14779. function DrawIcon;
  14780. begin
  14781. GetProcedureAddress(_DrawIcon, user32, 'DrawIcon');
  14782. asm
  14783. MOV ESP, EBP
  14784. POP EBP
  14785. JMP [_DrawIcon]
  14786. end;
  14787. end;
  14788. var
  14789. _DrawTextA: Pointer;
  14790. function DrawTextA;
  14791. begin
  14792. GetProcedureAddress(_DrawTextA, user32, 'DrawTextA');
  14793. asm
  14794. MOV ESP, EBP
  14795. POP EBP
  14796. JMP [_DrawTextA]
  14797. end;
  14798. end;
  14799. var
  14800. _DrawTextW: Pointer;
  14801. function DrawTextW;
  14802. begin
  14803. GetProcedureAddress(_DrawTextW, user32, 'DrawTextW');
  14804. asm
  14805. MOV ESP, EBP
  14806. POP EBP
  14807. JMP [_DrawTextW]
  14808. end;
  14809. end;
  14810. var
  14811. _DrawText: Pointer;
  14812. function DrawText;
  14813. begin
  14814. GetProcedureAddress(_DrawText, user32, 'DrawText' + AWSuffix);
  14815. asm
  14816. MOV ESP, EBP
  14817. POP EBP
  14818. JMP [_DrawText]
  14819. end;
  14820. end;
  14821. var
  14822. _DrawTextExA: Pointer;
  14823. function DrawTextExA;
  14824. begin
  14825. GetProcedureAddress(_DrawTextExA, user32, 'DrawTextExA');
  14826. asm
  14827. MOV ESP, EBP
  14828. POP EBP
  14829. JMP [_DrawTextExA]
  14830. end;
  14831. end;
  14832. var
  14833. _DrawTextExW: Pointer;
  14834. function DrawTextExW;
  14835. begin
  14836. GetProcedureAddress(_DrawTextExW, user32, 'DrawTextExW');
  14837. asm
  14838. MOV ESP, EBP
  14839. POP EBP
  14840. JMP [_DrawTextExW]
  14841. end;
  14842. end;
  14843. var
  14844. _DrawTextEx: Pointer;
  14845. function DrawTextEx;
  14846. begin
  14847. GetProcedureAddress(_DrawTextEx, user32, 'DrawTextEx' + AWSuffix);
  14848. asm
  14849. MOV ESP, EBP
  14850. POP EBP
  14851. JMP [_DrawTextEx]
  14852. end;
  14853. end;
  14854. var
  14855. _GrayStringA: Pointer;
  14856. function GrayStringA;
  14857. begin
  14858. GetProcedureAddress(_GrayStringA, user32, 'GrayStringA');
  14859. asm
  14860. MOV ESP, EBP
  14861. POP EBP
  14862. JMP [_GrayStringA]
  14863. end;
  14864. end;
  14865. var
  14866. _GrayStringW: Pointer;
  14867. function GrayStringW;
  14868. begin
  14869. GetProcedureAddress(_GrayStringW, user32, 'GrayStringW');
  14870. asm
  14871. MOV ESP, EBP
  14872. POP EBP
  14873. JMP [_GrayStringW]
  14874. end;
  14875. end;
  14876. var
  14877. _GrayString: Pointer;
  14878. function GrayString;
  14879. begin
  14880. GetProcedureAddress(_GrayString, user32, 'GrayString' + AWSuffix);
  14881. asm
  14882. MOV ESP, EBP
  14883. POP EBP
  14884. JMP [_GrayString]
  14885. end;
  14886. end;
  14887. var
  14888. _DrawStateA: Pointer;
  14889. function DrawStateA;
  14890. begin
  14891. GetProcedureAddress(_DrawStateA, user32, 'DrawStateA');
  14892. asm
  14893. MOV ESP, EBP
  14894. POP EBP
  14895. JMP [_DrawStateA]
  14896. end;
  14897. end;
  14898. var
  14899. _DrawStateW: Pointer;
  14900. function DrawStateW;
  14901. begin
  14902. GetProcedureAddress(_DrawStateW, user32, 'DrawStateW');
  14903. asm
  14904. MOV ESP, EBP
  14905. POP EBP
  14906. JMP [_DrawStateW]
  14907. end;
  14908. end;
  14909. var
  14910. _DrawState: Pointer;
  14911. function DrawState;
  14912. begin
  14913. GetProcedureAddress(_DrawState, user32, 'DrawState' + AWSuffix);
  14914. asm
  14915. MOV ESP, EBP
  14916. POP EBP
  14917. JMP [_DrawState]
  14918. end;
  14919. end;
  14920. var
  14921. _TabbedTextOutA: Pointer;
  14922. function TabbedTextOutA;
  14923. begin
  14924. GetProcedureAddress(_TabbedTextOutA, user32, 'TabbedTextOutA');
  14925. asm
  14926. MOV ESP, EBP
  14927. POP EBP
  14928. JMP [_TabbedTextOutA]
  14929. end;
  14930. end;
  14931. var
  14932. _TabbedTextOutW: Pointer;
  14933. function TabbedTextOutW;
  14934. begin
  14935. GetProcedureAddress(_TabbedTextOutW, user32, 'TabbedTextOutW');
  14936. asm
  14937. MOV ESP, EBP
  14938. POP EBP
  14939. JMP [_TabbedTextOutW]
  14940. end;
  14941. end;
  14942. var
  14943. _TabbedTextOut: Pointer;
  14944. function TabbedTextOut;
  14945. begin
  14946. GetProcedureAddress(_TabbedTextOut, user32, 'TabbedTextOut' + AWSuffix);
  14947. asm
  14948. MOV ESP, EBP
  14949. POP EBP
  14950. JMP [_TabbedTextOut]
  14951. end;
  14952. end;
  14953. var
  14954. _GetTabbedTextExtentA: Pointer;
  14955. function GetTabbedTextExtentA;
  14956. begin
  14957. GetProcedureAddress(_GetTabbedTextExtentA, user32, 'GetTabbedTextExtentA');
  14958. asm
  14959. MOV ESP, EBP
  14960. POP EBP
  14961. JMP [_GetTabbedTextExtentA]
  14962. end;
  14963. end;
  14964. var
  14965. _GetTabbedTextExtentW: Pointer;
  14966. function GetTabbedTextExtentW;
  14967. begin
  14968. GetProcedureAddress(_GetTabbedTextExtentW, user32, 'GetTabbedTextExtentW');
  14969. asm
  14970. MOV ESP, EBP
  14971. POP EBP
  14972. JMP [_GetTabbedTextExtentW]
  14973. end;
  14974. end;
  14975. var
  14976. _GetTabbedTextExtent: Pointer;
  14977. function GetTabbedTextExtent;
  14978. begin
  14979. GetProcedureAddress(_GetTabbedTextExtent, user32, 'GetTabbedTextExtent' + AWSuffix);
  14980. asm
  14981. MOV ESP, EBP
  14982. POP EBP
  14983. JMP [_GetTabbedTextExtent]
  14984. end;
  14985. end;
  14986. var
  14987. _UpdateWindow: Pointer;
  14988. function UpdateWindow;
  14989. begin
  14990. GetProcedureAddress(_UpdateWindow, user32, 'UpdateWindow');
  14991. asm
  14992. MOV ESP, EBP
  14993. POP EBP
  14994. JMP [_UpdateWindow]
  14995. end;
  14996. end;
  14997. var
  14998. _SetActiveWindow: Pointer;
  14999. function SetActiveWindow;
  15000. begin
  15001. GetProcedureAddress(_SetActiveWindow, user32, 'SetActiveWindow');
  15002. asm
  15003. MOV ESP, EBP
  15004. POP EBP
  15005. JMP [_SetActiveWindow]
  15006. end;
  15007. end;
  15008. var
  15009. _GetForegroundWindow: Pointer;
  15010. function GetForegroundWindow;
  15011. begin
  15012. GetProcedureAddress(_GetForegroundWindow, user32, 'GetForegroundWindow');
  15013. asm
  15014. MOV ESP, EBP
  15015. POP EBP
  15016. JMP [_GetForegroundWindow]
  15017. end;
  15018. end;
  15019. var
  15020. _PaintDesktop: Pointer;
  15021. function PaintDesktop;
  15022. begin
  15023. GetProcedureAddress(_PaintDesktop, user32, 'PaintDesktop');
  15024. asm
  15025. MOV ESP, EBP
  15026. POP EBP
  15027. JMP [_PaintDesktop]
  15028. end;
  15029. end;
  15030. var
  15031. _SwitchToThisWindow: Pointer;
  15032. procedure SwitchToThisWindow;
  15033. begin
  15034. GetProcedureAddress(_SwitchToThisWindow, user32, 'SwitchToThisWindow');
  15035. asm
  15036. MOV ESP, EBP
  15037. POP EBP
  15038. JMP [_SwitchToThisWindow]
  15039. end;
  15040. end;
  15041. var
  15042. _SetForegroundWindow: Pointer;
  15043. function SetForegroundWindow;
  15044. begin
  15045. GetProcedureAddress(_SetForegroundWindow, user32, 'SetForegroundWindow');
  15046. asm
  15047. MOV ESP, EBP
  15048. POP EBP
  15049. JMP [_SetForegroundWindow]
  15050. end;
  15051. end;
  15052. var
  15053. _AllowSetForegroundWindow: Pointer;
  15054. function AllowSetForegroundWindow;
  15055. begin
  15056. GetProcedureAddress(_AllowSetForegroundWindow, user32, 'AllowSetForegroundWindow');
  15057. asm
  15058. MOV ESP, EBP
  15059. POP EBP
  15060. JMP [_AllowSetForegroundWindow]
  15061. end;
  15062. end;
  15063. var
  15064. _LockSetForegroundWindow: Pointer;
  15065. function LockSetForegroundWindow;
  15066. begin
  15067. GetProcedureAddress(_LockSetForegroundWindow, user32, 'LockSetForegroundWindow');
  15068. asm
  15069. MOV ESP, EBP
  15070. POP EBP
  15071. JMP [_LockSetForegroundWindow]
  15072. end;
  15073. end;
  15074. var
  15075. _WindowFromDC: Pointer;
  15076. function WindowFromDC;
  15077. begin
  15078. GetProcedureAddress(_WindowFromDC, user32, 'WindowFromDC');
  15079. asm
  15080. MOV ESP, EBP
  15081. POP EBP
  15082. JMP [_WindowFromDC]
  15083. end;
  15084. end;
  15085. var
  15086. _GetDC: Pointer;
  15087. function GetDC;
  15088. begin
  15089. GetProcedureAddress(_GetDC, user32, 'GetDC');
  15090. asm
  15091. MOV ESP, EBP
  15092. POP EBP
  15093. JMP [_GetDC]
  15094. end;
  15095. end;
  15096. var
  15097. _GetDCEx: Pointer;
  15098. function GetDCEx;
  15099. begin
  15100. GetProcedureAddress(_GetDCEx, user32, 'GetDCEx');
  15101. asm
  15102. MOV ESP, EBP
  15103. POP EBP
  15104. JMP [_GetDCEx]
  15105. end;
  15106. end;
  15107. var
  15108. _GetWindowDC: Pointer;
  15109. function GetWindowDC;
  15110. begin
  15111. GetProcedureAddress(_GetWindowDC, user32, 'GetWindowDC');
  15112. asm
  15113. MOV ESP, EBP
  15114. POP EBP
  15115. JMP [_GetWindowDC]
  15116. end;
  15117. end;
  15118. var
  15119. _ReleaseDC: Pointer;
  15120. function ReleaseDC;
  15121. begin
  15122. GetProcedureAddress(_ReleaseDC, user32, 'ReleaseDC');
  15123. asm
  15124. MOV ESP, EBP
  15125. POP EBP
  15126. JMP [_ReleaseDC]
  15127. end;
  15128. end;
  15129. var
  15130. _BeginPaint: Pointer;
  15131. function BeginPaint;
  15132. begin
  15133. GetProcedureAddress(_BeginPaint, user32, 'BeginPaint');
  15134. asm
  15135. MOV ESP, EBP
  15136. POP EBP
  15137. JMP [_BeginPaint]
  15138. end;
  15139. end;
  15140. var
  15141. _EndPaint: Pointer;
  15142. function EndPaint;
  15143. begin
  15144. GetProcedureAddress(_EndPaint, user32, 'EndPaint');
  15145. asm
  15146. MOV ESP, EBP
  15147. POP EBP
  15148. JMP [_EndPaint]
  15149. end;
  15150. end;
  15151. var
  15152. _GetUpdateRect: Pointer;
  15153. function GetUpdateRect;
  15154. begin
  15155. GetProcedureAddress(_GetUpdateRect, user32, 'GetUpdateRect');
  15156. asm
  15157. MOV ESP, EBP
  15158. POP EBP
  15159. JMP [_GetUpdateRect]
  15160. end;
  15161. end;
  15162. var
  15163. _GetUpdateRgn: Pointer;
  15164. function GetUpdateRgn;
  15165. begin
  15166. GetProcedureAddress(_GetUpdateRgn, user32, 'GetUpdateRgn');
  15167. asm
  15168. MOV ESP, EBP
  15169. POP EBP
  15170. JMP [_GetUpdateRgn]
  15171. end;
  15172. end;
  15173. var
  15174. _SetWindowRgn: Pointer;
  15175. function SetWindowRgn;
  15176. begin
  15177. GetProcedureAddress(_SetWindowRgn, user32, 'SetWindowRgn');
  15178. asm
  15179. MOV ESP, EBP
  15180. POP EBP
  15181. JMP [_SetWindowRgn]
  15182. end;
  15183. end;
  15184. var
  15185. _GetWindowRgn: Pointer;
  15186. function GetWindowRgn;
  15187. begin
  15188. GetProcedureAddress(_GetWindowRgn, user32, 'GetWindowRgn');
  15189. asm
  15190. MOV ESP, EBP
  15191. POP EBP
  15192. JMP [_GetWindowRgn]
  15193. end;
  15194. end;
  15195. var
  15196. _GetWindowRgnBox: Pointer;
  15197. function GetWindowRgnBox;
  15198. begin
  15199. GetProcedureAddress(_GetWindowRgnBox, user32, 'GetWindowRgnBox');
  15200. asm
  15201. MOV ESP, EBP
  15202. POP EBP
  15203. JMP [_GetWindowRgnBox]
  15204. end;
  15205. end;
  15206. var
  15207. _ExcludeUpdateRgn: Pointer;
  15208. function ExcludeUpdateRgn;
  15209. begin
  15210. GetProcedureAddress(_ExcludeUpdateRgn, user32, 'ExcludeUpdateRgn');
  15211. asm
  15212. MOV ESP, EBP
  15213. POP EBP
  15214. JMP [_ExcludeUpdateRgn]
  15215. end;
  15216. end;
  15217. var
  15218. _InvalidateRect: Pointer;
  15219. function InvalidateRect;
  15220. begin
  15221. GetProcedureAddress(_InvalidateRect, user32, 'InvalidateRect');
  15222. asm
  15223. MOV ESP, EBP
  15224. POP EBP
  15225. JMP [_InvalidateRect]
  15226. end;
  15227. end;
  15228. var
  15229. _ValidateRect: Pointer;
  15230. function ValidateRect;
  15231. begin
  15232. GetProcedureAddress(_ValidateRect, user32, 'ValidateRect');
  15233. asm
  15234. MOV ESP, EBP
  15235. POP EBP
  15236. JMP [_ValidateRect]
  15237. end;
  15238. end;
  15239. var
  15240. _InvalidateRgn: Pointer;
  15241. function InvalidateRgn;
  15242. begin
  15243. GetProcedureAddress(_InvalidateRgn, user32, 'InvalidateRgn');
  15244. asm
  15245. MOV ESP, EBP
  15246. POP EBP
  15247. JMP [_InvalidateRgn]
  15248. end;
  15249. end;
  15250. var
  15251. _ValidateRgn: Pointer;
  15252. function ValidateRgn;
  15253. begin
  15254. GetProcedureAddress(_ValidateRgn, user32, 'ValidateRgn');
  15255. asm
  15256. MOV ESP, EBP
  15257. POP EBP
  15258. JMP [_ValidateRgn]
  15259. end;
  15260. end;
  15261. var
  15262. _RedrawWindow: Pointer;
  15263. function RedrawWindow;
  15264. begin
  15265. GetProcedureAddress(_RedrawWindow, user32, 'RedrawWindow');
  15266. asm
  15267. MOV ESP, EBP
  15268. POP EBP
  15269. JMP [_RedrawWindow]
  15270. end;
  15271. end;
  15272. var
  15273. _LockWindowUpdate: Pointer;
  15274. function LockWindowUpdate;
  15275. begin
  15276. GetProcedureAddress(_LockWindowUpdate, user32, 'LockWindowUpdate');
  15277. asm
  15278. MOV ESP, EBP
  15279. POP EBP
  15280. JMP [_LockWindowUpdate]
  15281. end;
  15282. end;
  15283. var
  15284. _ScrollWindow: Pointer;
  15285. function ScrollWindow;
  15286. begin
  15287. GetProcedureAddress(_ScrollWindow, user32, 'ScrollWindow');
  15288. asm
  15289. MOV ESP, EBP
  15290. POP EBP
  15291. JMP [_ScrollWindow]
  15292. end;
  15293. end;
  15294. var
  15295. _ScrollDC: Pointer;
  15296. function ScrollDC;
  15297. begin
  15298. GetProcedureAddress(_ScrollDC, user32, 'ScrollDC');
  15299. asm
  15300. MOV ESP, EBP
  15301. POP EBP
  15302. JMP [_ScrollDC]
  15303. end;
  15304. end;
  15305. var
  15306. _ScrollWindowEx: Pointer;
  15307. function ScrollWindowEx;
  15308. begin
  15309. GetProcedureAddress(_ScrollWindowEx, user32, 'ScrollWindowEx');
  15310. asm
  15311. MOV ESP, EBP
  15312. POP EBP
  15313. JMP [_ScrollWindowEx]
  15314. end;
  15315. end;
  15316. var
  15317. _SetScrollPos: Pointer;
  15318. function SetScrollPos;
  15319. begin
  15320. GetProcedureAddress(_SetScrollPos, user32, 'SetScrollPos');
  15321. asm
  15322. MOV ESP, EBP
  15323. POP EBP
  15324. JMP [_SetScrollPos]
  15325. end;
  15326. end;
  15327. var
  15328. _GetScrollPos: Pointer;
  15329. function GetScrollPos;
  15330. begin
  15331. GetProcedureAddress(_GetScrollPos, user32, 'GetScrollPos');
  15332. asm
  15333. MOV ESP, EBP
  15334. POP EBP
  15335. JMP [_GetScrollPos]
  15336. end;
  15337. end;
  15338. var
  15339. _SetScrollRange: Pointer;
  15340. function SetScrollRange;
  15341. begin
  15342. GetProcedureAddress(_SetScrollRange, user32, 'SetScrollRange');
  15343. asm
  15344. MOV ESP, EBP
  15345. POP EBP
  15346. JMP [_SetScrollRange]
  15347. end;
  15348. end;
  15349. var
  15350. _GetScrollRange: Pointer;
  15351. function GetScrollRange;
  15352. begin
  15353. GetProcedureAddress(_GetScrollRange, user32, 'GetScrollRange');
  15354. asm
  15355. MOV ESP, EBP
  15356. POP EBP
  15357. JMP [_GetScrollRange]
  15358. end;
  15359. end;
  15360. var
  15361. _ShowScrollBar: Pointer;
  15362. function ShowScrollBar;
  15363. begin
  15364. GetProcedureAddress(_ShowScrollBar, user32, 'ShowScrollBar');
  15365. asm
  15366. MOV ESP, EBP
  15367. POP EBP
  15368. JMP [_ShowScrollBar]
  15369. end;
  15370. end;
  15371. var
  15372. _EnableScrollBar: Pointer;
  15373. function EnableScrollBar;
  15374. begin
  15375. GetProcedureAddress(_EnableScrollBar, user32, 'EnableScrollBar');
  15376. asm
  15377. MOV ESP, EBP
  15378. POP EBP
  15379. JMP [_EnableScrollBar]
  15380. end;
  15381. end;
  15382. var
  15383. _SetPropA: Pointer;
  15384. function SetPropA;
  15385. begin
  15386. GetProcedureAddress(_SetPropA, user32, 'SetPropA');
  15387. asm
  15388. MOV ESP, EBP
  15389. POP EBP
  15390. JMP [_SetPropA]
  15391. end;
  15392. end;
  15393. var
  15394. _SetPropW: Pointer;
  15395. function SetPropW;
  15396. begin
  15397. GetProcedureAddress(_SetPropW, user32, 'SetPropW');
  15398. asm
  15399. MOV ESP, EBP
  15400. POP EBP
  15401. JMP [_SetPropW]
  15402. end;
  15403. end;
  15404. var
  15405. _SetProp: Pointer;
  15406. function SetProp;
  15407. begin
  15408. GetProcedureAddress(_SetProp, user32, 'SetProp' + AWSuffix);
  15409. asm
  15410. MOV ESP, EBP
  15411. POP EBP
  15412. JMP [_SetProp]
  15413. end;
  15414. end;
  15415. var
  15416. _GetPropA: Pointer;
  15417. function GetPropA;
  15418. begin
  15419. GetProcedureAddress(_GetPropA, user32, 'GetPropA');
  15420. asm
  15421. MOV ESP, EBP
  15422. POP EBP
  15423. JMP [_GetPropA]
  15424. end;
  15425. end;
  15426. var
  15427. _GetPropW: Pointer;
  15428. function GetPropW;
  15429. begin
  15430. GetProcedureAddress(_GetPropW, user32, 'GetPropW');
  15431. asm
  15432. MOV ESP, EBP
  15433. POP EBP
  15434. JMP [_GetPropW]
  15435. end;
  15436. end;
  15437. var
  15438. _GetProp: Pointer;
  15439. function GetProp;
  15440. begin
  15441. GetProcedureAddress(_GetProp, user32, 'GetProp' + AWSuffix);
  15442. asm
  15443. MOV ESP, EBP
  15444. POP EBP
  15445. JMP [_GetProp]
  15446. end;
  15447. end;
  15448. var
  15449. _RemovePropA: Pointer;
  15450. function RemovePropA;
  15451. begin
  15452. GetProcedureAddress(_RemovePropA, user32, 'RemovePropA');
  15453. asm
  15454. MOV ESP, EBP
  15455. POP EBP
  15456. JMP [_RemovePropA]
  15457. end;
  15458. end;
  15459. var
  15460. _RemovePropW: Pointer;
  15461. function RemovePropW;
  15462. begin
  15463. GetProcedureAddress(_RemovePropW, user32, 'RemovePropW');
  15464. asm
  15465. MOV ESP, EBP
  15466. POP EBP
  15467. JMP [_RemovePropW]
  15468. end;
  15469. end;
  15470. var
  15471. _RemoveProp: Pointer;
  15472. function RemoveProp;
  15473. begin
  15474. GetProcedureAddress(_RemoveProp, user32, 'RemoveProp' + AWSuffix);
  15475. asm
  15476. MOV ESP, EBP
  15477. POP EBP
  15478. JMP [_RemoveProp]
  15479. end;
  15480. end;
  15481. var
  15482. _EnumPropsExA: Pointer;
  15483. function EnumPropsExA;
  15484. begin
  15485. GetProcedureAddress(_EnumPropsExA, user32, 'EnumPropsExA');
  15486. asm
  15487. MOV ESP, EBP
  15488. POP EBP
  15489. JMP [_EnumPropsExA]
  15490. end;
  15491. end;
  15492. var
  15493. _EnumPropsExW: Pointer;
  15494. function EnumPropsExW;
  15495. begin
  15496. GetProcedureAddress(_EnumPropsExW, user32, 'EnumPropsExW');
  15497. asm
  15498. MOV ESP, EBP
  15499. POP EBP
  15500. JMP [_EnumPropsExW]
  15501. end;
  15502. end;
  15503. var
  15504. _EnumPropsEx: Pointer;
  15505. function EnumPropsEx;
  15506. begin
  15507. GetProcedureAddress(_EnumPropsEx, user32, 'EnumPropsEx' + AWSuffix);
  15508. asm
  15509. MOV ESP, EBP
  15510. POP EBP
  15511. JMP [_EnumPropsEx]
  15512. end;
  15513. end;
  15514. var
  15515. _EnumPropsA: Pointer;
  15516. function EnumPropsA;
  15517. begin
  15518. GetProcedureAddress(_EnumPropsA, user32, 'EnumPropsA');
  15519. asm
  15520. MOV ESP, EBP
  15521. POP EBP
  15522. JMP [_EnumPropsA]
  15523. end;
  15524. end;
  15525. var
  15526. _EnumPropsW: Pointer;
  15527. function EnumPropsW;
  15528. begin
  15529. GetProcedureAddress(_EnumPropsW, user32, 'EnumPropsW');
  15530. asm
  15531. MOV ESP, EBP
  15532. POP EBP
  15533. JMP [_EnumPropsW]
  15534. end;
  15535. end;
  15536. var
  15537. _EnumProps: Pointer;
  15538. function EnumProps;
  15539. begin
  15540. GetProcedureAddress(_EnumProps, user32, 'EnumProps' + AWSuffix);
  15541. asm
  15542. MOV ESP, EBP
  15543. POP EBP
  15544. JMP [_EnumProps]
  15545. end;
  15546. end;
  15547. var
  15548. _SetWindowTextA: Pointer;
  15549. function SetWindowTextA;
  15550. begin
  15551. GetProcedureAddress(_SetWindowTextA, user32, 'SetWindowTextA');
  15552. asm
  15553. MOV ESP, EBP
  15554. POP EBP
  15555. JMP [_SetWindowTextA]
  15556. end;
  15557. end;
  15558. var
  15559. _SetWindowTextW: Pointer;
  15560. function SetWindowTextW;
  15561. begin
  15562. GetProcedureAddress(_SetWindowTextW, user32, 'SetWindowTextW');
  15563. asm
  15564. MOV ESP, EBP
  15565. POP EBP
  15566. JMP [_SetWindowTextW]
  15567. end;
  15568. end;
  15569. var
  15570. _SetWindowText: Pointer;
  15571. function SetWindowText;
  15572. begin
  15573. GetProcedureAddress(_SetWindowText, user32, 'SetWindowText' + AWSuffix);
  15574. asm
  15575. MOV ESP, EBP
  15576. POP EBP
  15577. JMP [_SetWindowText]
  15578. end;
  15579. end;
  15580. var
  15581. _GetWindowTextA: Pointer;
  15582. function GetWindowTextA;
  15583. begin
  15584. GetProcedureAddress(_GetWindowTextA, user32, 'GetWindowTextA');
  15585. asm
  15586. MOV ESP, EBP
  15587. POP EBP
  15588. JMP [_GetWindowTextA]
  15589. end;
  15590. end;
  15591. var
  15592. _GetWindowTextW: Pointer;
  15593. function GetWindowTextW;
  15594. begin
  15595. GetProcedureAddress(_GetWindowTextW, user32, 'GetWindowTextW');
  15596. asm
  15597. MOV ESP, EBP
  15598. POP EBP
  15599. JMP [_GetWindowTextW]
  15600. end;
  15601. end;
  15602. var
  15603. _GetWindowText: Pointer;
  15604. function GetWindowText;
  15605. begin
  15606. GetProcedureAddress(_GetWindowText, user32, 'GetWindowText' + AWSuffix);
  15607. asm
  15608. MOV ESP, EBP
  15609. POP EBP
  15610. JMP [_GetWindowText]
  15611. end;
  15612. end;
  15613. var
  15614. _GetWindowTextLengthA: Pointer;
  15615. function GetWindowTextLengthA;
  15616. begin
  15617. GetProcedureAddress(_GetWindowTextLengthA, user32, 'GetWindowTextLengthA');
  15618. asm
  15619. MOV ESP, EBP
  15620. POP EBP
  15621. JMP [_GetWindowTextLengthA]
  15622. end;
  15623. end;
  15624. var
  15625. _GetWindowTextLengthW: Pointer;
  15626. function GetWindowTextLengthW;
  15627. begin
  15628. GetProcedureAddress(_GetWindowTextLengthW, user32, 'GetWindowTextLengthW');
  15629. asm
  15630. MOV ESP, EBP
  15631. POP EBP
  15632. JMP [_GetWindowTextLengthW]
  15633. end;
  15634. end;
  15635. var
  15636. _GetWindowTextLength: Pointer;
  15637. function GetWindowTextLength;
  15638. begin
  15639. GetProcedureAddress(_GetWindowTextLength, user32, 'GetWindowTextLength' + AWSuffix);
  15640. asm
  15641. MOV ESP, EBP
  15642. POP EBP
  15643. JMP [_GetWindowTextLength]
  15644. end;
  15645. end;
  15646. var
  15647. _GetClientRect: Pointer;
  15648. function GetClientRect;
  15649. begin
  15650. GetProcedureAddress(_GetClientRect, user32, 'GetClientRect');
  15651. asm
  15652. MOV ESP, EBP
  15653. POP EBP
  15654. JMP [_GetClientRect]
  15655. end;
  15656. end;
  15657. var
  15658. _GetWindowRect: Pointer;
  15659. function GetWindowRect;
  15660. begin
  15661. GetProcedureAddress(_GetWindowRect, user32, 'GetWindowRect');
  15662. asm
  15663. MOV ESP, EBP
  15664. POP EBP
  15665. JMP [_GetWindowRect]
  15666. end;
  15667. end;
  15668. var
  15669. _AdjustWindowRect: Pointer;
  15670. function AdjustWindowRect;
  15671. begin
  15672. GetProcedureAddress(_AdjustWindowRect, user32, 'AdjustWindowRect');
  15673. asm
  15674. MOV ESP, EBP
  15675. POP EBP
  15676. JMP [_AdjustWindowRect]
  15677. end;
  15678. end;
  15679. var
  15680. _AdjustWindowRectEx: Pointer;
  15681. function AdjustWindowRectEx;
  15682. begin
  15683. GetProcedureAddress(_AdjustWindowRectEx, user32, 'AdjustWindowRectEx');
  15684. asm
  15685. MOV ESP, EBP
  15686. POP EBP
  15687. JMP [_AdjustWindowRectEx]
  15688. end;
  15689. end;
  15690. var
  15691. _SetWindowContextHelpId: Pointer;
  15692. function SetWindowContextHelpId;
  15693. begin
  15694. GetProcedureAddress(_SetWindowContextHelpId, user32, 'SetWindowContextHelpId');
  15695. asm
  15696. MOV ESP, EBP
  15697. POP EBP
  15698. JMP [_SetWindowContextHelpId]
  15699. end;
  15700. end;
  15701. var
  15702. _GetWindowContextHelpId: Pointer;
  15703. function GetWindowContextHelpId;
  15704. begin
  15705. GetProcedureAddress(_GetWindowContextHelpId, user32, 'GetWindowContextHelpId');
  15706. asm
  15707. MOV ESP, EBP
  15708. POP EBP
  15709. JMP [_GetWindowContextHelpId]
  15710. end;
  15711. end;
  15712. var
  15713. _SetMenuContextHelpId: Pointer;
  15714. function SetMenuContextHelpId;
  15715. begin
  15716. GetProcedureAddress(_SetMenuContextHelpId, user32, 'SetMenuContextHelpId');
  15717. asm
  15718. MOV ESP, EBP
  15719. POP EBP
  15720. JMP [_SetMenuContextHelpId]
  15721. end;
  15722. end;
  15723. var
  15724. _GetMenuContextHelpId: Pointer;
  15725. function GetMenuContextHelpId;
  15726. begin
  15727. GetProcedureAddress(_GetMenuContextHelpId, user32, 'GetMenuContextHelpId');
  15728. asm
  15729. MOV ESP, EBP
  15730. POP EBP
  15731. JMP [_GetMenuContextHelpId]
  15732. end;
  15733. end;
  15734. var
  15735. _MessageBoxA: Pointer;
  15736. function MessageBoxA;
  15737. begin
  15738. GetProcedureAddress(_MessageBoxA, user32, 'MessageBoxA');
  15739. asm
  15740. MOV ESP, EBP
  15741. POP EBP
  15742. JMP [_MessageBoxA]
  15743. end;
  15744. end;
  15745. var
  15746. _MessageBoxW: Pointer;
  15747. function MessageBoxW;
  15748. begin
  15749. GetProcedureAddress(_MessageBoxW, user32, 'MessageBoxW');
  15750. asm
  15751. MOV ESP, EBP
  15752. POP EBP
  15753. JMP [_MessageBoxW]
  15754. end;
  15755. end;
  15756. var
  15757. _MessageBox: Pointer;
  15758. function MessageBox;
  15759. begin
  15760. GetProcedureAddress(_MessageBox, user32, 'MessageBox' + AWSuffix);
  15761. asm
  15762. MOV ESP, EBP
  15763. POP EBP
  15764. JMP [_MessageBox]
  15765. end;
  15766. end;
  15767. var
  15768. _MessageBoxExA: Pointer;
  15769. function MessageBoxExA;
  15770. begin
  15771. GetProcedureAddress(_MessageBoxExA, user32, 'MessageBoxExA');
  15772. asm
  15773. MOV ESP, EBP
  15774. POP EBP
  15775. JMP [_MessageBoxExA]
  15776. end;
  15777. end;
  15778. var
  15779. _MessageBoxExW: Pointer;
  15780. function MessageBoxExW;
  15781. begin
  15782. GetProcedureAddress(_MessageBoxExW, user32, 'MessageBoxExW');
  15783. asm
  15784. MOV ESP, EBP
  15785. POP EBP
  15786. JMP [_MessageBoxExW]
  15787. end;
  15788. end;
  15789. var
  15790. _MessageBoxEx: Pointer;
  15791. function MessageBoxEx;
  15792. begin
  15793. GetProcedureAddress(_MessageBoxEx, user32, 'MessageBoxEx' + AWSuffix);
  15794. asm
  15795. MOV ESP, EBP
  15796. POP EBP
  15797. JMP [_MessageBoxEx]
  15798. end;
  15799. end;
  15800. var
  15801. _MessageBoxIndirectA: Pointer;
  15802. function MessageBoxIndirectA;
  15803. begin
  15804. GetProcedureAddress(_MessageBoxIndirectA, user32, 'MessageBoxIndirectA');
  15805. asm
  15806. MOV ESP, EBP
  15807. POP EBP
  15808. JMP [_MessageBoxIndirectA]
  15809. end;
  15810. end;
  15811. var
  15812. _MessageBoxIndirectW: Pointer;
  15813. function MessageBoxIndirectW;
  15814. begin
  15815. GetProcedureAddress(_MessageBoxIndirectW, user32, 'MessageBoxIndirectW');
  15816. asm
  15817. MOV ESP, EBP
  15818. POP EBP
  15819. JMP [_MessageBoxIndirectW]
  15820. end;
  15821. end;
  15822. var
  15823. _MessageBoxIndirect: Pointer;
  15824. function MessageBoxIndirect;
  15825. begin
  15826. GetProcedureAddress(_MessageBoxIndirect, user32, 'MessageBoxIndirect' + AWSuffix);
  15827. asm
  15828. MOV ESP, EBP
  15829. POP EBP
  15830. JMP [_MessageBoxIndirect]
  15831. end;
  15832. end;
  15833. var
  15834. _MessageBeep: Pointer;
  15835. function MessageBeep;
  15836. begin
  15837. GetProcedureAddress(_MessageBeep, user32, 'MessageBeep');
  15838. asm
  15839. MOV ESP, EBP
  15840. POP EBP
  15841. JMP [_MessageBeep]
  15842. end;
  15843. end;
  15844. var
  15845. _ShowCursor: Pointer;
  15846. function ShowCursor;
  15847. begin
  15848. GetProcedureAddress(_ShowCursor, user32, 'ShowCursor');
  15849. asm
  15850. MOV ESP, EBP
  15851. POP EBP
  15852. JMP [_ShowCursor]
  15853. end;
  15854. end;
  15855. var
  15856. _SetCursorPos: Pointer;
  15857. function SetCursorPos;
  15858. begin
  15859. GetProcedureAddress(_SetCursorPos, user32, 'SetCursorPos');
  15860. asm
  15861. MOV ESP, EBP
  15862. POP EBP
  15863. JMP [_SetCursorPos]
  15864. end;
  15865. end;
  15866. var
  15867. _SetCursor: Pointer;
  15868. function SetCursor;
  15869. begin
  15870. GetProcedureAddress(_SetCursor, user32, 'SetCursor');
  15871. asm
  15872. MOV ESP, EBP
  15873. POP EBP
  15874. JMP [_SetCursor]
  15875. end;
  15876. end;
  15877. var
  15878. _GetCursorPos: Pointer;
  15879. function GetCursorPos;
  15880. begin
  15881. GetProcedureAddress(_GetCursorPos, user32, 'GetCursorPos');
  15882. asm
  15883. MOV ESP, EBP
  15884. POP EBP
  15885. JMP [_GetCursorPos]
  15886. end;
  15887. end;
  15888. var
  15889. _ClipCursor: Pointer;
  15890. function ClipCursor;
  15891. begin
  15892. GetProcedureAddress(_ClipCursor, user32, 'ClipCursor');
  15893. asm
  15894. MOV ESP, EBP
  15895. POP EBP
  15896. JMP [_ClipCursor]
  15897. end;
  15898. end;
  15899. var
  15900. _GetClipCursor: Pointer;
  15901. function GetClipCursor;
  15902. begin
  15903. GetProcedureAddress(_GetClipCursor, user32, 'GetClipCursor');
  15904. asm
  15905. MOV ESP, EBP
  15906. POP EBP
  15907. JMP [_GetClipCursor]
  15908. end;
  15909. end;
  15910. var
  15911. _GetCursor: Pointer;
  15912. function GetCursor;
  15913. begin
  15914. GetProcedureAddress(_GetCursor, user32, 'GetCursor');
  15915. asm
  15916. MOV ESP, EBP
  15917. POP EBP
  15918. JMP [_GetCursor]
  15919. end;
  15920. end;
  15921. var
  15922. _CreateCaret: Pointer;
  15923. function CreateCaret;
  15924. begin
  15925. GetProcedureAddress(_CreateCaret, user32, 'CreateCaret');
  15926. asm
  15927. MOV ESP, EBP
  15928. POP EBP
  15929. JMP [_CreateCaret]
  15930. end;
  15931. end;
  15932. var
  15933. _GetCaretBlinkTime: Pointer;
  15934. function GetCaretBlinkTime;
  15935. begin
  15936. GetProcedureAddress(_GetCaretBlinkTime, user32, 'GetCaretBlinkTime');
  15937. asm
  15938. MOV ESP, EBP
  15939. POP EBP
  15940. JMP [_GetCaretBlinkTime]
  15941. end;
  15942. end;
  15943. var
  15944. _SetCaretBlinkTime: Pointer;
  15945. function SetCaretBlinkTime;
  15946. begin
  15947. GetProcedureAddress(_SetCaretBlinkTime, user32, 'SetCaretBlinkTime');
  15948. asm
  15949. MOV ESP, EBP
  15950. POP EBP
  15951. JMP [_SetCaretBlinkTime]
  15952. end;
  15953. end;
  15954. var
  15955. _DestroyCaret: Pointer;
  15956. function DestroyCaret;
  15957. begin
  15958. GetProcedureAddress(_DestroyCaret, user32, 'DestroyCaret');
  15959. asm
  15960. MOV ESP, EBP
  15961. POP EBP
  15962. JMP [_DestroyCaret]
  15963. end;
  15964. end;
  15965. var
  15966. _HideCaret: Pointer;
  15967. function HideCaret;
  15968. begin
  15969. GetProcedureAddress(_HideCaret, user32, 'HideCaret');
  15970. asm
  15971. MOV ESP, EBP
  15972. POP EBP
  15973. JMP [_HideCaret]
  15974. end;
  15975. end;
  15976. var
  15977. _ShowCaret: Pointer;
  15978. function ShowCaret;
  15979. begin
  15980. GetProcedureAddress(_ShowCaret, user32, 'ShowCaret');
  15981. asm
  15982. MOV ESP, EBP
  15983. POP EBP
  15984. JMP [_ShowCaret]
  15985. end;
  15986. end;
  15987. var
  15988. _SetCaretPos: Pointer;
  15989. function SetCaretPos;
  15990. begin
  15991. GetProcedureAddress(_SetCaretPos, user32, 'SetCaretPos');
  15992. asm
  15993. MOV ESP, EBP
  15994. POP EBP
  15995. JMP [_SetCaretPos]
  15996. end;
  15997. end;
  15998. var
  15999. _GetCaretPos: Pointer;
  16000. function GetCaretPos;
  16001. begin
  16002. GetProcedureAddress(_GetCaretPos, user32, 'GetCaretPos');
  16003. asm
  16004. MOV ESP, EBP
  16005. POP EBP
  16006. JMP [_GetCaretPos]
  16007. end;
  16008. end;
  16009. var
  16010. _ClientToScreen: Pointer;
  16011. function ClientToScreen;
  16012. begin
  16013. GetProcedureAddress(_ClientToScreen, user32, 'ClientToScreen');
  16014. asm
  16015. MOV ESP, EBP
  16016. POP EBP
  16017. JMP [_ClientToScreen]
  16018. end;
  16019. end;
  16020. var
  16021. _ScreenToClient: Pointer;
  16022. function ScreenToClient;
  16023. begin
  16024. GetProcedureAddress(_ScreenToClient, user32, 'ScreenToClient');
  16025. asm
  16026. MOV ESP, EBP
  16027. POP EBP
  16028. JMP [_ScreenToClient]
  16029. end;
  16030. end;
  16031. var
  16032. _MapWindowPoints: Pointer;
  16033. function MapWindowPoints;
  16034. begin
  16035. GetProcedureAddress(_MapWindowPoints, user32, 'MapWindowPoints');
  16036. asm
  16037. MOV ESP, EBP
  16038. POP EBP
  16039. JMP [_MapWindowPoints]
  16040. end;
  16041. end;
  16042. var
  16043. _WindowFromPoint: Pointer;
  16044. function WindowFromPoint;
  16045. begin
  16046. GetProcedureAddress(_WindowFromPoint, user32, 'WindowFromPoint');
  16047. asm
  16048. MOV ESP, EBP
  16049. POP EBP
  16050. JMP [_WindowFromPoint]
  16051. end;
  16052. end;
  16053. var
  16054. _ChildWindowFromPoint: Pointer;
  16055. function ChildWindowFromPoint;
  16056. begin
  16057. GetProcedureAddress(_ChildWindowFromPoint, user32, 'ChildWindowFromPoint');
  16058. asm
  16059. MOV ESP, EBP
  16060. POP EBP
  16061. JMP [_ChildWindowFromPoint]
  16062. end;
  16063. end;
  16064. var
  16065. _ChildWindowFromPointEx: Pointer;
  16066. function ChildWindowFromPointEx;
  16067. begin
  16068. GetProcedureAddress(_ChildWindowFromPointEx, user32, 'ChildWindowFromPointEx');
  16069. asm
  16070. MOV ESP, EBP
  16071. POP EBP
  16072. JMP [_ChildWindowFromPointEx]
  16073. end;
  16074. end;
  16075. var
  16076. _GetSysColor: Pointer;
  16077. function GetSysColor;
  16078. begin
  16079. GetProcedureAddress(_GetSysColor, user32, 'GetSysColor');
  16080. asm
  16081. MOV ESP, EBP
  16082. POP EBP
  16083. JMP [_GetSysColor]
  16084. end;
  16085. end;
  16086. var
  16087. _GetSysColorBrush: Pointer;
  16088. function GetSysColorBrush;
  16089. begin
  16090. GetProcedureAddress(_GetSysColorBrush, user32, 'GetSysColorBrush');
  16091. asm
  16092. MOV ESP, EBP
  16093. POP EBP
  16094. JMP [_GetSysColorBrush]
  16095. end;
  16096. end;
  16097. var
  16098. _SetSysColors: Pointer;
  16099. function SetSysColors;
  16100. begin
  16101. GetProcedureAddress(_SetSysColors, user32, 'SetSysColors');
  16102. asm
  16103. MOV ESP, EBP
  16104. POP EBP
  16105. JMP [_SetSysColors]
  16106. end;
  16107. end;
  16108. var
  16109. _DrawFocusRect: Pointer;
  16110. function DrawFocusRect;
  16111. begin
  16112. GetProcedureAddress(_DrawFocusRect, user32, 'DrawFocusRect');
  16113. asm
  16114. MOV ESP, EBP
  16115. POP EBP
  16116. JMP [_DrawFocusRect]
  16117. end;
  16118. end;
  16119. var
  16120. _FillRect: Pointer;
  16121. function FillRect;
  16122. begin
  16123. GetProcedureAddress(_FillRect, user32, 'FillRect');
  16124. asm
  16125. MOV ESP, EBP
  16126. POP EBP
  16127. JMP [_FillRect]
  16128. end;
  16129. end;
  16130. var
  16131. _FrameRect: Pointer;
  16132. function FrameRect;
  16133. begin
  16134. GetProcedureAddress(_FrameRect, user32, 'FrameRect');
  16135. asm
  16136. MOV ESP, EBP
  16137. POP EBP
  16138. JMP [_FrameRect]
  16139. end;
  16140. end;
  16141. var
  16142. _InvertRect: Pointer;
  16143. function InvertRect;
  16144. begin
  16145. GetProcedureAddress(_InvertRect, user32, 'InvertRect');
  16146. asm
  16147. MOV ESP, EBP
  16148. POP EBP
  16149. JMP [_InvertRect]
  16150. end;
  16151. end;
  16152. var
  16153. _SetRect: Pointer;
  16154. function SetRect;
  16155. begin
  16156. GetProcedureAddress(_SetRect, user32, 'SetRect');
  16157. asm
  16158. MOV ESP, EBP
  16159. POP EBP
  16160. JMP [_SetRect]
  16161. end;
  16162. end;
  16163. var
  16164. _SetRectEmpty: Pointer;
  16165. function SetRectEmpty;
  16166. begin
  16167. GetProcedureAddress(_SetRectEmpty, user32, 'SetRectEmpty');
  16168. asm
  16169. MOV ESP, EBP
  16170. POP EBP
  16171. JMP [_SetRectEmpty]
  16172. end;
  16173. end;
  16174. var
  16175. _CopyRect: Pointer;
  16176. function CopyRect;
  16177. begin
  16178. GetProcedureAddress(_CopyRect, user32, 'CopyRect');
  16179. asm
  16180. MOV ESP, EBP
  16181. POP EBP
  16182. JMP [_CopyRect]
  16183. end;
  16184. end;
  16185. var
  16186. _InflateRect: Pointer;
  16187. function InflateRect;
  16188. begin
  16189. GetProcedureAddress(_InflateRect, user32, 'InflateRect');
  16190. asm
  16191. MOV ESP, EBP
  16192. POP EBP
  16193. JMP [_InflateRect]
  16194. end;
  16195. end;
  16196. var
  16197. _IntersectRect: Pointer;
  16198. function IntersectRect;
  16199. begin
  16200. GetProcedureAddress(_IntersectRect, user32, 'IntersectRect');
  16201. asm
  16202. MOV ESP, EBP
  16203. POP EBP
  16204. JMP [_IntersectRect]
  16205. end;
  16206. end;
  16207. var
  16208. _UnionRect: Pointer;
  16209. function UnionRect;
  16210. begin
  16211. GetProcedureAddress(_UnionRect, user32, 'UnionRect');
  16212. asm
  16213. MOV ESP, EBP
  16214. POP EBP
  16215. JMP [_UnionRect]
  16216. end;
  16217. end;
  16218. var
  16219. _SubtractRect: Pointer;
  16220. function SubtractRect;
  16221. begin
  16222. GetProcedureAddress(_SubtractRect, user32, 'SubtractRect');
  16223. asm
  16224. MOV ESP, EBP
  16225. POP EBP
  16226. JMP [_SubtractRect]
  16227. end;
  16228. end;
  16229. var
  16230. _OffsetRect: Pointer;
  16231. function OffsetRect;
  16232. begin
  16233. GetProcedureAddress(_OffsetRect, user32, 'OffsetRect');
  16234. asm
  16235. MOV ESP, EBP
  16236. POP EBP
  16237. JMP [_OffsetRect]
  16238. end;
  16239. end;
  16240. var
  16241. _IsRectEmpty: Pointer;
  16242. function IsRectEmpty;
  16243. begin
  16244. GetProcedureAddress(_IsRectEmpty, user32, 'IsRectEmpty');
  16245. asm
  16246. MOV ESP, EBP
  16247. POP EBP
  16248. JMP [_IsRectEmpty]
  16249. end;
  16250. end;
  16251. var
  16252. _EqualRect: Pointer;
  16253. function EqualRect;
  16254. begin
  16255. GetProcedureAddress(_EqualRect, user32, 'EqualRect');
  16256. asm
  16257. MOV ESP, EBP
  16258. POP EBP
  16259. JMP [_EqualRect]
  16260. end;
  16261. end;
  16262. var
  16263. _PtInRect: Pointer;
  16264. function PtInRect;
  16265. begin
  16266. GetProcedureAddress(_PtInRect, user32, 'PtInRect');
  16267. asm
  16268. MOV ESP, EBP
  16269. POP EBP
  16270. JMP [_PtInRect]
  16271. end;
  16272. end;
  16273. var
  16274. _GetWindowWord: Pointer;
  16275. function GetWindowWord;
  16276. begin
  16277. GetProcedureAddress(_GetWindowWord, user32, 'GetWindowWord');
  16278. asm
  16279. MOV ESP, EBP
  16280. POP EBP
  16281. JMP [_GetWindowWord]
  16282. end;
  16283. end;
  16284. var
  16285. _SetWindowWord: Pointer;
  16286. function SetWindowWord;
  16287. begin
  16288. GetProcedureAddress(_SetWindowWord, user32, 'SetWindowWord');
  16289. asm
  16290. MOV ESP, EBP
  16291. POP EBP
  16292. JMP [_SetWindowWord]
  16293. end;
  16294. end;
  16295. var
  16296. _GetWindowLongA: Pointer;
  16297. function GetWindowLongA;
  16298. begin
  16299. GetProcedureAddress(_GetWindowLongA, user32, 'GetWindowLongA');
  16300. asm
  16301. MOV ESP, EBP
  16302. POP EBP
  16303. JMP [_GetWindowLongA]
  16304. end;
  16305. end;
  16306. var
  16307. _GetWindowLongW: Pointer;
  16308. function GetWindowLongW;
  16309. begin
  16310. GetProcedureAddress(_GetWindowLongW, user32, 'GetWindowLongW');
  16311. asm
  16312. MOV ESP, EBP
  16313. POP EBP
  16314. JMP [_GetWindowLongW]
  16315. end;
  16316. end;
  16317. var
  16318. _GetWindowLong: Pointer;
  16319. function GetWindowLong;
  16320. begin
  16321. GetProcedureAddress(_GetWindowLong, user32, 'GetWindowLong' + AWSuffix);
  16322. asm
  16323. MOV ESP, EBP
  16324. POP EBP
  16325. JMP [_GetWindowLong]
  16326. end;
  16327. end;
  16328. var
  16329. _SetWindowLongA: Pointer;
  16330. function SetWindowLongA;
  16331. begin
  16332. GetProcedureAddress(_SetWindowLongA, user32, 'SetWindowLongA');
  16333. asm
  16334. MOV ESP, EBP
  16335. POP EBP
  16336. JMP [_SetWindowLongA]
  16337. end;
  16338. end;
  16339. var
  16340. _SetWindowLongW: Pointer;
  16341. function SetWindowLongW;
  16342. begin
  16343. GetProcedureAddress(_SetWindowLongW, user32, 'SetWindowLongW');
  16344. asm
  16345. MOV ESP, EBP
  16346. POP EBP
  16347. JMP [_SetWindowLongW]
  16348. end;
  16349. end;
  16350. var
  16351. _SetWindowLong: Pointer;
  16352. function SetWindowLong;
  16353. begin
  16354. GetProcedureAddress(_SetWindowLong, user32, 'SetWindowLong' + AWSuffix);
  16355. asm
  16356. MOV ESP, EBP
  16357. POP EBP
  16358. JMP [_SetWindowLong]
  16359. end;
  16360. end;
  16361. var
  16362. _GetClassWord: Pointer;
  16363. function GetClassWord;
  16364. begin
  16365. GetProcedureAddress(_GetClassWord, user32, 'GetClassWord');
  16366. asm
  16367. MOV ESP, EBP
  16368. POP EBP
  16369. JMP [_GetClassWord]
  16370. end;
  16371. end;
  16372. var
  16373. _SetClassWord: Pointer;
  16374. function SetClassWord;
  16375. begin
  16376. GetProcedureAddress(_SetClassWord, user32, 'SetClassWord');
  16377. asm
  16378. MOV ESP, EBP
  16379. POP EBP
  16380. JMP [_SetClassWord]
  16381. end;
  16382. end;
  16383. var
  16384. _GetClassLongA: Pointer;
  16385. function GetClassLongA;
  16386. begin
  16387. GetProcedureAddress(_GetClassLongA, user32, 'GetClassLongA');
  16388. asm
  16389. MOV ESP, EBP
  16390. POP EBP
  16391. JMP [_GetClassLongA]
  16392. end;
  16393. end;
  16394. var
  16395. _GetClassLongW: Pointer;
  16396. function GetClassLongW;
  16397. begin
  16398. GetProcedureAddress(_GetClassLongW, user32, 'GetClassLongW');
  16399. asm
  16400. MOV ESP, EBP
  16401. POP EBP
  16402. JMP [_GetClassLongW]
  16403. end;
  16404. end;
  16405. var
  16406. _GetClassLong: Pointer;
  16407. function GetClassLong;
  16408. begin
  16409. GetProcedureAddress(_GetClassLong, user32, 'GetClassLong' + AWSuffix);
  16410. asm
  16411. MOV ESP, EBP
  16412. POP EBP
  16413. JMP [_GetClassLong]
  16414. end;
  16415. end;
  16416. var
  16417. _SetClassLongA: Pointer;
  16418. function SetClassLongA;
  16419. begin
  16420. GetProcedureAddress(_SetClassLongA, user32, 'SetClassLongA');
  16421. asm
  16422. MOV ESP, EBP
  16423. POP EBP
  16424. JMP [_SetClassLongA]
  16425. end;
  16426. end;
  16427. var
  16428. _SetClassLongW: Pointer;
  16429. function SetClassLongW;
  16430. begin
  16431. GetProcedureAddress(_SetClassLongW, user32, 'SetClassLongW');
  16432. asm
  16433. MOV ESP, EBP
  16434. POP EBP
  16435. JMP [_SetClassLongW]
  16436. end;
  16437. end;
  16438. var
  16439. _SetClassLong: Pointer;
  16440. function SetClassLong;
  16441. begin
  16442. GetProcedureAddress(_SetClassLong, user32, 'SetClassLong' + AWSuffix);
  16443. asm
  16444. MOV ESP, EBP
  16445. POP EBP
  16446. JMP [_SetClassLong]
  16447. end;
  16448. end;
  16449. var
  16450. _GetProcessDefaultLayout: Pointer;
  16451. function GetProcessDefaultLayout;
  16452. begin
  16453. GetProcedureAddress(_GetProcessDefaultLayout, user32, 'GetProcessDefaultLayout');
  16454. asm
  16455. MOV ESP, EBP
  16456. POP EBP
  16457. JMP [_GetProcessDefaultLayout]
  16458. end;
  16459. end;
  16460. var
  16461. _SetProcessDefaultLayout: Pointer;
  16462. function SetProcessDefaultLayout;
  16463. begin
  16464. GetProcedureAddress(_SetProcessDefaultLayout, user32, 'SetProcessDefaultLayout');
  16465. asm
  16466. MOV ESP, EBP
  16467. POP EBP
  16468. JMP [_SetProcessDefaultLayout]
  16469. end;
  16470. end;
  16471. var
  16472. _GetDesktopWindow: Pointer;
  16473. function GetDesktopWindow;
  16474. begin
  16475. GetProcedureAddress(_GetDesktopWindow, user32, 'GetDesktopWindow');
  16476. asm
  16477. MOV ESP, EBP
  16478. POP EBP
  16479. JMP [_GetDesktopWindow]
  16480. end;
  16481. end;
  16482. var
  16483. _GetParent: Pointer;
  16484. function GetParent;
  16485. begin
  16486. GetProcedureAddress(_GetParent, user32, 'GetParent');
  16487. asm
  16488. MOV ESP, EBP
  16489. POP EBP
  16490. JMP [_GetParent]
  16491. end;
  16492. end;
  16493. var
  16494. _SetParent: Pointer;
  16495. function SetParent;
  16496. begin
  16497. GetProcedureAddress(_SetParent, user32, 'SetParent');
  16498. asm
  16499. MOV ESP, EBP
  16500. POP EBP
  16501. JMP [_SetParent]
  16502. end;
  16503. end;
  16504. var
  16505. _EnumChildWindows: Pointer;
  16506. function EnumChildWindows;
  16507. begin
  16508. GetProcedureAddress(_EnumChildWindows, user32, 'EnumChildWindows');
  16509. asm
  16510. MOV ESP, EBP
  16511. POP EBP
  16512. JMP [_EnumChildWindows]
  16513. end;
  16514. end;
  16515. var
  16516. _FindWindowA: Pointer;
  16517. function FindWindowA;
  16518. begin
  16519. GetProcedureAddress(_FindWindowA, user32, 'FindWindowA');
  16520. asm
  16521. MOV ESP, EBP
  16522. POP EBP
  16523. JMP [_FindWindowA]
  16524. end;
  16525. end;
  16526. var
  16527. _FindWindowW: Pointer;
  16528. function FindWindowW;
  16529. begin
  16530. GetProcedureAddress(_FindWindowW, user32, 'FindWindowW');
  16531. asm
  16532. MOV ESP, EBP
  16533. POP EBP
  16534. JMP [_FindWindowW]
  16535. end;
  16536. end;
  16537. var
  16538. _FindWindow: Pointer;
  16539. function FindWindow;
  16540. begin
  16541. GetProcedureAddress(_FindWindow, user32, 'FindWindow' + AWSuffix);
  16542. asm
  16543. MOV ESP, EBP
  16544. POP EBP
  16545. JMP [_FindWindow]
  16546. end;
  16547. end;
  16548. var
  16549. _FindWindowExA: Pointer;
  16550. function FindWindowExA;
  16551. begin
  16552. GetProcedureAddress(_FindWindowExA, user32, 'FindWindowExA');
  16553. asm
  16554. MOV ESP, EBP
  16555. POP EBP
  16556. JMP [_FindWindowExA]
  16557. end;
  16558. end;
  16559. var
  16560. _FindWindowExW: Pointer;
  16561. function FindWindowExW;
  16562. begin
  16563. GetProcedureAddress(_FindWindowExW, user32, 'FindWindowExW');
  16564. asm
  16565. MOV ESP, EBP
  16566. POP EBP
  16567. JMP [_FindWindowExW]
  16568. end;
  16569. end;
  16570. var
  16571. _FindWindowEx: Pointer;
  16572. function FindWindowEx;
  16573. begin
  16574. GetProcedureAddress(_FindWindowEx, user32, 'FindWindowEx' + AWSuffix);
  16575. asm
  16576. MOV ESP, EBP
  16577. POP EBP
  16578. JMP [_FindWindowEx]
  16579. end;
  16580. end;
  16581. var
  16582. _GetShellWindow: Pointer;
  16583. function GetShellWindow;
  16584. begin
  16585. GetProcedureAddress(_GetShellWindow, user32, 'GetShellWindow');
  16586. asm
  16587. MOV ESP, EBP
  16588. POP EBP
  16589. JMP [_GetShellWindow]
  16590. end;
  16591. end;
  16592. var
  16593. _RegisterShellHookWindow: Pointer;
  16594. function RegisterShellHookWindow;
  16595. begin
  16596. GetProcedureAddress(_RegisterShellHookWindow, user32, 'RegisterShellHookWindow');
  16597. asm
  16598. MOV ESP, EBP
  16599. POP EBP
  16600. JMP [_RegisterShellHookWindow]
  16601. end;
  16602. end;
  16603. var
  16604. _DeregisterShellHookWindow: Pointer;
  16605. function DeregisterShellHookWindow;
  16606. begin
  16607. GetProcedureAddress(_DeregisterShellHookWindow, user32, 'DeregisterShellHookWindow');
  16608. asm
  16609. MOV ESP, EBP
  16610. POP EBP
  16611. JMP [_DeregisterShellHookWindow]
  16612. end;
  16613. end;
  16614. var
  16615. _EnumWindows: Pointer;
  16616. function EnumWindows;
  16617. begin
  16618. GetProcedureAddress(_EnumWindows, user32, 'EnumWindows');
  16619. asm
  16620. MOV ESP, EBP
  16621. POP EBP
  16622. JMP [_EnumWindows]
  16623. end;
  16624. end;
  16625. var
  16626. _EnumThreadWindows: Pointer;
  16627. function EnumThreadWindows;
  16628. begin
  16629. GetProcedureAddress(_EnumThreadWindows, user32, 'EnumThreadWindows');
  16630. asm
  16631. MOV ESP, EBP
  16632. POP EBP
  16633. JMP [_EnumThreadWindows]
  16634. end;
  16635. end;
  16636. var
  16637. _GetClassNameA: Pointer;
  16638. function GetClassNameA;
  16639. begin
  16640. GetProcedureAddress(_GetClassNameA, user32, 'GetClassNameA');
  16641. asm
  16642. MOV ESP, EBP
  16643. POP EBP
  16644. JMP [_GetClassNameA]
  16645. end;
  16646. end;
  16647. var
  16648. _GetClassNameW: Pointer;
  16649. function GetClassNameW;
  16650. begin
  16651. GetProcedureAddress(_GetClassNameW, user32, 'GetClassNameW');
  16652. asm
  16653. MOV ESP, EBP
  16654. POP EBP
  16655. JMP [_GetClassNameW]
  16656. end;
  16657. end;
  16658. var
  16659. _GetClassName: Pointer;
  16660. function GetClassName;
  16661. begin
  16662. GetProcedureAddress(_GetClassName, user32, 'GetClassName' + AWSuffix);
  16663. asm
  16664. MOV ESP, EBP
  16665. POP EBP
  16666. JMP [_GetClassName]
  16667. end;
  16668. end;
  16669. var
  16670. _GetTopWindow: Pointer;
  16671. function GetTopWindow;
  16672. begin
  16673. GetProcedureAddress(_GetTopWindow, user32, 'GetTopWindow');
  16674. asm
  16675. MOV ESP, EBP
  16676. POP EBP
  16677. JMP [_GetTopWindow]
  16678. end;
  16679. end;
  16680. var
  16681. _GetWindowThreadProcessId: Pointer;
  16682. function GetWindowThreadProcessId;
  16683. begin
  16684. GetProcedureAddress(_GetWindowThreadProcessId, user32, 'GetWindowThreadProcessId');
  16685. asm
  16686. MOV ESP, EBP
  16687. POP EBP
  16688. JMP [_GetWindowThreadProcessId]
  16689. end;
  16690. end;
  16691. var
  16692. _IsGUIThread: Pointer;
  16693. function IsGUIThread;
  16694. begin
  16695. GetProcedureAddress(_IsGUIThread, user32, 'IsGUIThread');
  16696. asm
  16697. MOV ESP, EBP
  16698. POP EBP
  16699. JMP [_IsGUIThread]
  16700. end;
  16701. end;
  16702. var
  16703. _GetLastActivePopup: Pointer;
  16704. function GetLastActivePopup;
  16705. begin
  16706. GetProcedureAddress(_GetLastActivePopup, user32, 'GetLastActivePopup');
  16707. asm
  16708. MOV ESP, EBP
  16709. POP EBP
  16710. JMP [_GetLastActivePopup]
  16711. end;
  16712. end;
  16713. var
  16714. _GetWindow: Pointer;
  16715. function GetWindow;
  16716. begin
  16717. GetProcedureAddress(_GetWindow, user32, 'GetWindow');
  16718. asm
  16719. MOV ESP, EBP
  16720. POP EBP
  16721. JMP [_GetWindow]
  16722. end;
  16723. end;
  16724. var
  16725. _SetWindowsHookA: Pointer;
  16726. function SetWindowsHookA;
  16727. begin
  16728. GetProcedureAddress(_SetWindowsHookA, user32, 'SetWindowsHookA');
  16729. asm
  16730. MOV ESP, EBP
  16731. POP EBP
  16732. JMP [_SetWindowsHookA]
  16733. end;
  16734. end;
  16735. var
  16736. _SetWindowsHookW: Pointer;
  16737. function SetWindowsHookW;
  16738. begin
  16739. GetProcedureAddress(_SetWindowsHookW, user32, 'SetWindowsHookW');
  16740. asm
  16741. MOV ESP, EBP
  16742. POP EBP
  16743. JMP [_SetWindowsHookW]
  16744. end;
  16745. end;
  16746. var
  16747. _SetWindowsHook: Pointer;
  16748. function SetWindowsHook;
  16749. begin
  16750. GetProcedureAddress(_SetWindowsHook, user32, 'SetWindowsHook' + AWSuffix);
  16751. asm
  16752. MOV ESP, EBP
  16753. POP EBP
  16754. JMP [_SetWindowsHook]
  16755. end;
  16756. end;
  16757. var
  16758. _UnhookWindowsHook: Pointer;
  16759. function UnhookWindowsHook;
  16760. begin
  16761. GetProcedureAddress(_UnhookWindowsHook, user32, 'UnhookWindowsHook');
  16762. asm
  16763. MOV ESP, EBP
  16764. POP EBP
  16765. JMP [_UnhookWindowsHook]
  16766. end;
  16767. end;
  16768. var
  16769. _SetWindowsHookExA: Pointer;
  16770. function SetWindowsHookExA;
  16771. begin
  16772. GetProcedureAddress(_SetWindowsHookExA, user32, 'SetWindowsHookExA');
  16773. asm
  16774. MOV ESP, EBP
  16775. POP EBP
  16776. JMP [_SetWindowsHookExA]
  16777. end;
  16778. end;
  16779. var
  16780. _SetWindowsHookExW: Pointer;
  16781. function SetWindowsHookExW;
  16782. begin
  16783. GetProcedureAddress(_SetWindowsHookExW, user32, 'SetWindowsHookExW');
  16784. asm
  16785. MOV ESP, EBP
  16786. POP EBP
  16787. JMP [_SetWindowsHookExW]
  16788. end;
  16789. end;
  16790. var
  16791. _SetWindowsHookEx: Pointer;
  16792. function SetWindowsHookEx;
  16793. begin
  16794. GetProcedureAddress(_SetWindowsHookEx, user32, 'SetWindowsHookEx' + AWSuffix);
  16795. asm
  16796. MOV ESP, EBP
  16797. POP EBP
  16798. JMP [_SetWindowsHookEx]
  16799. end;
  16800. end;
  16801. var
  16802. _UnhookWindowsHookEx: Pointer;
  16803. function UnhookWindowsHookEx;
  16804. begin
  16805. GetProcedureAddress(_UnhookWindowsHookEx, user32, 'UnhookWindowsHookEx');
  16806. asm
  16807. MOV ESP, EBP
  16808. POP EBP
  16809. JMP [_UnhookWindowsHookEx]
  16810. end;
  16811. end;
  16812. var
  16813. _CallNextHookEx: Pointer;
  16814. function CallNextHookEx;
  16815. begin
  16816. GetProcedureAddress(_CallNextHookEx, user32, 'CallNextHookEx');
  16817. asm
  16818. MOV ESP, EBP
  16819. POP EBP
  16820. JMP [_CallNextHookEx]
  16821. end;
  16822. end;
  16823. var
  16824. _CheckMenuRadioItem: Pointer;
  16825. function CheckMenuRadioItem;
  16826. begin
  16827. GetProcedureAddress(_CheckMenuRadioItem, user32, 'CheckMenuRadioItem');
  16828. asm
  16829. MOV ESP, EBP
  16830. POP EBP
  16831. JMP [_CheckMenuRadioItem]
  16832. end;
  16833. end;
  16834. var
  16835. _LoadBitmapA: Pointer;
  16836. function LoadBitmapA;
  16837. begin
  16838. GetProcedureAddress(_LoadBitmapA, user32, 'LoadBitmapA');
  16839. asm
  16840. MOV ESP, EBP
  16841. POP EBP
  16842. JMP [_LoadBitmapA]
  16843. end;
  16844. end;
  16845. var
  16846. _LoadBitmapW: Pointer;
  16847. function LoadBitmapW;
  16848. begin
  16849. GetProcedureAddress(_LoadBitmapW, user32, 'LoadBitmapW');
  16850. asm
  16851. MOV ESP, EBP
  16852. POP EBP
  16853. JMP [_LoadBitmapW]
  16854. end;
  16855. end;
  16856. var
  16857. _LoadBitmap: Pointer;
  16858. function LoadBitmap;
  16859. begin
  16860. GetProcedureAddress(_LoadBitmap, user32, 'LoadBitmap' + AWSuffix);
  16861. asm
  16862. MOV ESP, EBP
  16863. POP EBP
  16864. JMP [_LoadBitmap]
  16865. end;
  16866. end;
  16867. var
  16868. _LoadCursorA: Pointer;
  16869. function LoadCursorA;
  16870. begin
  16871. GetProcedureAddress(_LoadCursorA, user32, 'LoadCursorA');
  16872. asm
  16873. MOV ESP, EBP
  16874. POP EBP
  16875. JMP [_LoadCursorA]
  16876. end;
  16877. end;
  16878. var
  16879. _LoadCursorW: Pointer;
  16880. function LoadCursorW;
  16881. begin
  16882. GetProcedureAddress(_LoadCursorW, user32, 'LoadCursorW');
  16883. asm
  16884. MOV ESP, EBP
  16885. POP EBP
  16886. JMP [_LoadCursorW]
  16887. end;
  16888. end;
  16889. var
  16890. _LoadCursor: Pointer;
  16891. function LoadCursor;
  16892. begin
  16893. GetProcedureAddress(_LoadCursor, user32, 'LoadCursor' + AWSuffix);
  16894. asm
  16895. MOV ESP, EBP
  16896. POP EBP
  16897. JMP [_LoadCursor]
  16898. end;
  16899. end;
  16900. var
  16901. _LoadCursorFromFileA: Pointer;
  16902. function LoadCursorFromFileA;
  16903. begin
  16904. GetProcedureAddress(_LoadCursorFromFileA, user32, 'LoadCursorFromFileA');
  16905. asm
  16906. MOV ESP, EBP
  16907. POP EBP
  16908. JMP [_LoadCursorFromFileA]
  16909. end;
  16910. end;
  16911. var
  16912. _LoadCursorFromFileW: Pointer;
  16913. function LoadCursorFromFileW;
  16914. begin
  16915. GetProcedureAddress(_LoadCursorFromFileW, user32, 'LoadCursorFromFileW');
  16916. asm
  16917. MOV ESP, EBP
  16918. POP EBP
  16919. JMP [_LoadCursorFromFileW]
  16920. end;
  16921. end;
  16922. var
  16923. _LoadCursorFromFile: Pointer;
  16924. function LoadCursorFromFile;
  16925. begin
  16926. GetProcedureAddress(_LoadCursorFromFile, user32, 'LoadCursorFromFile' + AWSuffix);
  16927. asm
  16928. MOV ESP, EBP
  16929. POP EBP
  16930. JMP [_LoadCursorFromFile]
  16931. end;
  16932. end;
  16933. var
  16934. _CreateCursor: Pointer;
  16935. function CreateCursor;
  16936. begin
  16937. GetProcedureAddress(_CreateCursor, user32, 'CreateCursor');
  16938. asm
  16939. MOV ESP, EBP
  16940. POP EBP
  16941. JMP [_CreateCursor]
  16942. end;
  16943. end;
  16944. var
  16945. _DestroyCursor: Pointer;
  16946. function DestroyCursor;
  16947. begin
  16948. GetProcedureAddress(_DestroyCursor, user32, 'DestroyCursor');
  16949. asm
  16950. MOV ESP, EBP
  16951. POP EBP
  16952. JMP [_DestroyCursor]
  16953. end;
  16954. end;
  16955. var
  16956. _SetSystemCursor: Pointer;
  16957. function SetSystemCursor;
  16958. begin
  16959. GetProcedureAddress(_SetSystemCursor, user32, 'SetSystemCursor');
  16960. asm
  16961. MOV ESP, EBP
  16962. POP EBP
  16963. JMP [_SetSystemCursor]
  16964. end;
  16965. end;
  16966. var
  16967. _LoadIconA: Pointer;
  16968. function LoadIconA;
  16969. begin
  16970. GetProcedureAddress(_LoadIconA, user32, 'LoadIconA');
  16971. asm
  16972. MOV ESP, EBP
  16973. POP EBP
  16974. JMP [_LoadIconA]
  16975. end;
  16976. end;
  16977. var
  16978. _LoadIconW: Pointer;
  16979. function LoadIconW;
  16980. begin
  16981. GetProcedureAddress(_LoadIconW, user32, 'LoadIconW');
  16982. asm
  16983. MOV ESP, EBP
  16984. POP EBP
  16985. JMP [_LoadIconW]
  16986. end;
  16987. end;
  16988. var
  16989. _LoadIcon: Pointer;
  16990. function LoadIcon;
  16991. begin
  16992. GetProcedureAddress(_LoadIcon, user32, 'LoadIcon' + AWSuffix);
  16993. asm
  16994. MOV ESP, EBP
  16995. POP EBP
  16996. JMP [_LoadIcon]
  16997. end;
  16998. end;
  16999. var
  17000. _PrivateExtractIconsA: Pointer;
  17001. function PrivateExtractIconsA;
  17002. begin
  17003. GetProcedureAddress(_PrivateExtractIconsA, user32, 'PrivateExtractIconsA');
  17004. asm
  17005. MOV ESP, EBP
  17006. POP EBP
  17007. JMP [_PrivateExtractIconsA]
  17008. end;
  17009. end;
  17010. var
  17011. _PrivateExtractIconsW: Pointer;
  17012. function PrivateExtractIconsW;
  17013. begin
  17014. GetProcedureAddress(_PrivateExtractIconsW, user32, 'PrivateExtractIconsW');
  17015. asm
  17016. MOV ESP, EBP
  17017. POP EBP
  17018. JMP [_PrivateExtractIconsW]
  17019. end;
  17020. end;
  17021. var
  17022. _PrivateExtractIcons: Pointer;
  17023. function PrivateExtractIcons;
  17024. begin
  17025. GetProcedureAddress(_PrivateExtractIcons, user32, 'PrivateExtractIcons' + AWSuffix);
  17026. asm
  17027. MOV ESP, EBP
  17028. POP EBP
  17029. JMP [_PrivateExtractIcons]
  17030. end;
  17031. end;
  17032. var
  17033. _CreateIcon: Pointer;
  17034. function CreateIcon;
  17035. begin
  17036. GetProcedureAddress(_CreateIcon, user32, 'CreateIcon');
  17037. asm
  17038. MOV ESP, EBP
  17039. POP EBP
  17040. JMP [_CreateIcon]
  17041. end;
  17042. end;
  17043. var
  17044. _DestroyIcon: Pointer;
  17045. function DestroyIcon;
  17046. begin
  17047. GetProcedureAddress(_DestroyIcon, user32, 'DestroyIcon');
  17048. asm
  17049. MOV ESP, EBP
  17050. POP EBP
  17051. JMP [_DestroyIcon]
  17052. end;
  17053. end;
  17054. var
  17055. _LookupIconIdFromDirectory: Pointer;
  17056. function LookupIconIdFromDirectory;
  17057. begin
  17058. GetProcedureAddress(_LookupIconIdFromDirectory, user32, 'LookupIconIdFromDirectory');
  17059. asm
  17060. MOV ESP, EBP
  17061. POP EBP
  17062. JMP [_LookupIconIdFromDirectory]
  17063. end;
  17064. end;
  17065. var
  17066. _LookupIconIdFromDirectoryEx: Pointer;
  17067. function LookupIconIdFromDirectoryEx;
  17068. begin
  17069. GetProcedureAddress(_LookupIconIdFromDirectoryEx, user32, 'LookupIconIdFromDirectoryEx');
  17070. asm
  17071. MOV ESP, EBP
  17072. POP EBP
  17073. JMP [_LookupIconIdFromDirectoryEx]
  17074. end;
  17075. end;
  17076. var
  17077. _CreateIconFromResource: Pointer;
  17078. function CreateIconFromResource;
  17079. begin
  17080. GetProcedureAddress(_CreateIconFromResource, user32, 'CreateIconFromResource');
  17081. asm
  17082. MOV ESP, EBP
  17083. POP EBP
  17084. JMP [_CreateIconFromResource]
  17085. end;
  17086. end;
  17087. var
  17088. _CreateIconFromResourceEx: Pointer;
  17089. function CreateIconFromResourceEx;
  17090. begin
  17091. GetProcedureAddress(_CreateIconFromResourceEx, user32, 'CreateIconFromResourceEx');
  17092. asm
  17093. MOV ESP, EBP
  17094. POP EBP
  17095. JMP [_CreateIconFromResourceEx]
  17096. end;
  17097. end;
  17098. var
  17099. _LoadImageA: Pointer;
  17100. function LoadImageA;
  17101. begin
  17102. GetProcedureAddress(_LoadImageA, user32, 'LoadImageA');
  17103. asm
  17104. MOV ESP, EBP
  17105. POP EBP
  17106. JMP [_LoadImageA]
  17107. end;
  17108. end;
  17109. var
  17110. _LoadImageW: Pointer;
  17111. function LoadImageW;
  17112. begin
  17113. GetProcedureAddress(_LoadImageW, user32, 'LoadImageW');
  17114. asm
  17115. MOV ESP, EBP
  17116. POP EBP
  17117. JMP [_LoadImageW]
  17118. end;
  17119. end;
  17120. var
  17121. _LoadImage: Pointer;
  17122. function LoadImage;
  17123. begin
  17124. GetProcedureAddress(_LoadImage, user32, 'LoadImage' + AWSuffix);
  17125. asm
  17126. MOV ESP, EBP
  17127. POP EBP
  17128. JMP [_LoadImage]
  17129. end;
  17130. end;
  17131. var
  17132. _CopyImage: Pointer;
  17133. function CopyImage;
  17134. begin
  17135. GetProcedureAddress(_CopyImage, user32, 'CopyImage');
  17136. asm
  17137. MOV ESP, EBP
  17138. POP EBP
  17139. JMP [_CopyImage]
  17140. end;
  17141. end;
  17142. var
  17143. _DrawIconEx: Pointer;
  17144. function DrawIconEx;
  17145. begin
  17146. GetProcedureAddress(_DrawIconEx, user32, 'DrawIconEx');
  17147. asm
  17148. MOV ESP, EBP
  17149. POP EBP
  17150. JMP [_DrawIconEx]
  17151. end;
  17152. end;
  17153. var
  17154. _CreateIconIndirect: Pointer;
  17155. function CreateIconIndirect;
  17156. begin
  17157. GetProcedureAddress(_CreateIconIndirect, user32, 'CreateIconIndirect');
  17158. asm
  17159. MOV ESP, EBP
  17160. POP EBP
  17161. JMP [_CreateIconIndirect]
  17162. end;
  17163. end;
  17164. var
  17165. _CopyIcon: Pointer;
  17166. function CopyIcon;
  17167. begin
  17168. GetProcedureAddress(_CopyIcon, user32, 'CopyIcon');
  17169. asm
  17170. MOV ESP, EBP
  17171. POP EBP
  17172. JMP [_CopyIcon]
  17173. end;
  17174. end;
  17175. var
  17176. _GetIconInfo: Pointer;
  17177. function GetIconInfo;
  17178. begin
  17179. GetProcedureAddress(_GetIconInfo, user32, 'GetIconInfo');
  17180. asm
  17181. MOV ESP, EBP
  17182. POP EBP
  17183. JMP [_GetIconInfo]
  17184. end;
  17185. end;
  17186. var
  17187. _LoadStringA: Pointer;
  17188. function LoadStringA;
  17189. begin
  17190. GetProcedureAddress(_LoadStringA, user32, 'LoadStringA');
  17191. asm
  17192. MOV ESP, EBP
  17193. POP EBP
  17194. JMP [_LoadStringA]
  17195. end;
  17196. end;
  17197. var
  17198. _LoadStringW: Pointer;
  17199. function LoadStringW;
  17200. begin
  17201. GetProcedureAddress(_LoadStringW, user32, 'LoadStringW');
  17202. asm
  17203. MOV ESP, EBP
  17204. POP EBP
  17205. JMP [_LoadStringW]
  17206. end;
  17207. end;
  17208. var
  17209. _LoadString: Pointer;
  17210. function LoadString;
  17211. begin
  17212. GetProcedureAddress(_LoadString, user32, 'LoadString' + AWSuffix);
  17213. asm
  17214. MOV ESP, EBP
  17215. POP EBP
  17216. JMP [_LoadString]
  17217. end;
  17218. end;
  17219. var
  17220. _IsDialogMessageA: Pointer;
  17221. function IsDialogMessageA;
  17222. begin
  17223. GetProcedureAddress(_IsDialogMessageA, user32, 'IsDialogMessageA');
  17224. asm
  17225. MOV ESP, EBP
  17226. POP EBP
  17227. JMP [_IsDialogMessageA]
  17228. end;
  17229. end;
  17230. var
  17231. _IsDialogMessageW: Pointer;
  17232. function IsDialogMessageW;
  17233. begin
  17234. GetProcedureAddress(_IsDialogMessageW, user32, 'IsDialogMessageW');
  17235. asm
  17236. MOV ESP, EBP
  17237. POP EBP
  17238. JMP [_IsDialogMessageW]
  17239. end;
  17240. end;
  17241. var
  17242. _IsDialogMessage: Pointer;
  17243. function IsDialogMessage;
  17244. begin
  17245. GetProcedureAddress(_IsDialogMessage, user32, 'IsDialogMessage' + AWSuffix);
  17246. asm
  17247. MOV ESP, EBP
  17248. POP EBP
  17249. JMP [_IsDialogMessage]
  17250. end;
  17251. end;
  17252. var
  17253. _MapDialogRect: Pointer;
  17254. function MapDialogRect;
  17255. begin
  17256. GetProcedureAddress(_MapDialogRect, user32, 'MapDialogRect');
  17257. asm
  17258. MOV ESP, EBP
  17259. POP EBP
  17260. JMP [_MapDialogRect]
  17261. end;
  17262. end;
  17263. var
  17264. _DlgDirListA: Pointer;
  17265. function DlgDirListA;
  17266. begin
  17267. GetProcedureAddress(_DlgDirListA, user32, 'DlgDirListA');
  17268. asm
  17269. MOV ESP, EBP
  17270. POP EBP
  17271. JMP [_DlgDirListA]
  17272. end;
  17273. end;
  17274. var
  17275. _DlgDirListW: Pointer;
  17276. function DlgDirListW;
  17277. begin
  17278. GetProcedureAddress(_DlgDirListW, user32, 'DlgDirListW');
  17279. asm
  17280. MOV ESP, EBP
  17281. POP EBP
  17282. JMP [_DlgDirListW]
  17283. end;
  17284. end;
  17285. var
  17286. _DlgDirList: Pointer;
  17287. function DlgDirList;
  17288. begin
  17289. GetProcedureAddress(_DlgDirList, user32, 'DlgDirList' + AWSuffix);
  17290. asm
  17291. MOV ESP, EBP
  17292. POP EBP
  17293. JMP [_DlgDirList]
  17294. end;
  17295. end;
  17296. var
  17297. _DlgDirSelectExA: Pointer;
  17298. function DlgDirSelectExA;
  17299. begin
  17300. GetProcedureAddress(_DlgDirSelectExA, user32, 'DlgDirSelectExA');
  17301. asm
  17302. MOV ESP, EBP
  17303. POP EBP
  17304. JMP [_DlgDirSelectExA]
  17305. end;
  17306. end;
  17307. var
  17308. _DlgDirSelectExW: Pointer;
  17309. function DlgDirSelectExW;
  17310. begin
  17311. GetProcedureAddress(_DlgDirSelectExW, user32, 'DlgDirSelectExW');
  17312. asm
  17313. MOV ESP, EBP
  17314. POP EBP
  17315. JMP [_DlgDirSelectExW]
  17316. end;
  17317. end;
  17318. var
  17319. _DlgDirSelectEx: Pointer;
  17320. function DlgDirSelectEx;
  17321. begin
  17322. GetProcedureAddress(_DlgDirSelectEx, user32, 'DlgDirSelectEx' + AWSuffix);
  17323. asm
  17324. MOV ESP, EBP
  17325. POP EBP
  17326. JMP [_DlgDirSelectEx]
  17327. end;
  17328. end;
  17329. var
  17330. _DlgDirListComboBoxA: Pointer;
  17331. function DlgDirListComboBoxA;
  17332. begin
  17333. GetProcedureAddress(_DlgDirListComboBoxA, user32, 'DlgDirListComboBoxA');
  17334. asm
  17335. MOV ESP, EBP
  17336. POP EBP
  17337. JMP [_DlgDirListComboBoxA]
  17338. end;
  17339. end;
  17340. var
  17341. _DlgDirListComboBoxW: Pointer;
  17342. function DlgDirListComboBoxW;
  17343. begin
  17344. GetProcedureAddress(_DlgDirListComboBoxW, user32, 'DlgDirListComboBoxW');
  17345. asm
  17346. MOV ESP, EBP
  17347. POP EBP
  17348. JMP [_DlgDirListComboBoxW]
  17349. end;
  17350. end;
  17351. var
  17352. _DlgDirListComboBox: Pointer;
  17353. function DlgDirListComboBox;
  17354. begin
  17355. GetProcedureAddress(_DlgDirListComboBox, user32, 'DlgDirListComboBox' + AWSuffix);
  17356. asm
  17357. MOV ESP, EBP
  17358. POP EBP
  17359. JMP [_DlgDirListComboBox]
  17360. end;
  17361. end;
  17362. var
  17363. _DlgDirSelectComboBoxExA: Pointer;
  17364. function DlgDirSelectComboBoxExA;
  17365. begin
  17366. GetProcedureAddress(_DlgDirSelectComboBoxExA, user32, 'DlgDirSelectComboBoxExA');
  17367. asm
  17368. MOV ESP, EBP
  17369. POP EBP
  17370. JMP [_DlgDirSelectComboBoxExA]
  17371. end;
  17372. end;
  17373. var
  17374. _DlgDirSelectComboBoxExW: Pointer;
  17375. function DlgDirSelectComboBoxExW;
  17376. begin
  17377. GetProcedureAddress(_DlgDirSelectComboBoxExW, user32, 'DlgDirSelectComboBoxExW');
  17378. asm
  17379. MOV ESP, EBP
  17380. POP EBP
  17381. JMP [_DlgDirSelectComboBoxExW]
  17382. end;
  17383. end;
  17384. var
  17385. _DlgDirSelectComboBoxEx: Pointer;
  17386. function DlgDirSelectComboBoxEx;
  17387. begin
  17388. GetProcedureAddress(_DlgDirSelectComboBoxEx, user32, 'DlgDirSelectComboBoxEx' + AWSuffix);
  17389. asm
  17390. MOV ESP, EBP
  17391. POP EBP
  17392. JMP [_DlgDirSelectComboBoxEx]
  17393. end;
  17394. end;
  17395. var
  17396. _SetScrollInfo: Pointer;
  17397. function SetScrollInfo;
  17398. begin
  17399. GetProcedureAddress(_SetScrollInfo, user32, 'SetScrollInfo');
  17400. asm
  17401. MOV ESP, EBP
  17402. POP EBP
  17403. JMP [_SetScrollInfo]
  17404. end;
  17405. end;
  17406. var
  17407. _GetScrollInfo: Pointer;
  17408. function GetScrollInfo;
  17409. begin
  17410. GetProcedureAddress(_GetScrollInfo, user32, 'GetScrollInfo');
  17411. asm
  17412. MOV ESP, EBP
  17413. POP EBP
  17414. JMP [_GetScrollInfo]
  17415. end;
  17416. end;
  17417. var
  17418. _DefFrameProcA: Pointer;
  17419. function DefFrameProcA;
  17420. begin
  17421. GetProcedureAddress(_DefFrameProcA, user32, 'DefFrameProcA');
  17422. asm
  17423. MOV ESP, EBP
  17424. POP EBP
  17425. JMP [_DefFrameProcA]
  17426. end;
  17427. end;
  17428. var
  17429. _DefFrameProcW: Pointer;
  17430. function DefFrameProcW;
  17431. begin
  17432. GetProcedureAddress(_DefFrameProcW, user32, 'DefFrameProcW');
  17433. asm
  17434. MOV ESP, EBP
  17435. POP EBP
  17436. JMP [_DefFrameProcW]
  17437. end;
  17438. end;
  17439. var
  17440. _DefFrameProc: Pointer;
  17441. function DefFrameProc;
  17442. begin
  17443. GetProcedureAddress(_DefFrameProc, user32, 'DefFrameProc' + AWSuffix);
  17444. asm
  17445. MOV ESP, EBP
  17446. POP EBP
  17447. JMP [_DefFrameProc]
  17448. end;
  17449. end;
  17450. var
  17451. _DefMDIChildProcA: Pointer;
  17452. function DefMDIChildProcA;
  17453. begin
  17454. GetProcedureAddress(_DefMDIChildProcA, user32, 'DefMDIChildProcA');
  17455. asm
  17456. MOV ESP, EBP
  17457. POP EBP
  17458. JMP [_DefMDIChildProcA]
  17459. end;
  17460. end;
  17461. var
  17462. _DefMDIChildProcW: Pointer;
  17463. function DefMDIChildProcW;
  17464. begin
  17465. GetProcedureAddress(_DefMDIChildProcW, user32, 'DefMDIChildProcW');
  17466. asm
  17467. MOV ESP, EBP
  17468. POP EBP
  17469. JMP [_DefMDIChildProcW]
  17470. end;
  17471. end;
  17472. var
  17473. _DefMDIChildProc: Pointer;
  17474. function DefMDIChildProc;
  17475. begin
  17476. GetProcedureAddress(_DefMDIChildProc, user32, 'DefMDIChildProc' + AWSuffix);
  17477. asm
  17478. MOV ESP, EBP
  17479. POP EBP
  17480. JMP [_DefMDIChildProc]
  17481. end;
  17482. end;
  17483. var
  17484. _TranslateMDISysAccel: Pointer;
  17485. function TranslateMDISysAccel;
  17486. begin
  17487. GetProcedureAddress(_TranslateMDISysAccel, user32, 'TranslateMDISysAccel');
  17488. asm
  17489. MOV ESP, EBP
  17490. POP EBP
  17491. JMP [_TranslateMDISysAccel]
  17492. end;
  17493. end;
  17494. var
  17495. _ArrangeIconicWindows: Pointer;
  17496. function ArrangeIconicWindows;
  17497. begin
  17498. GetProcedureAddress(_ArrangeIconicWindows, user32, 'ArrangeIconicWindows');
  17499. asm
  17500. MOV ESP, EBP
  17501. POP EBP
  17502. JMP [_ArrangeIconicWindows]
  17503. end;
  17504. end;
  17505. var
  17506. _CreateMDIWindowA: Pointer;
  17507. function CreateMDIWindowA;
  17508. begin
  17509. GetProcedureAddress(_CreateMDIWindowA, user32, 'CreateMDIWindowA');
  17510. asm
  17511. MOV ESP, EBP
  17512. POP EBP
  17513. JMP [_CreateMDIWindowA]
  17514. end;
  17515. end;
  17516. var
  17517. _CreateMDIWindowW: Pointer;
  17518. function CreateMDIWindowW;
  17519. begin
  17520. GetProcedureAddress(_CreateMDIWindowW, user32, 'CreateMDIWindowW');
  17521. asm
  17522. MOV ESP, EBP
  17523. POP EBP
  17524. JMP [_CreateMDIWindowW]
  17525. end;
  17526. end;
  17527. var
  17528. _CreateMDIWindow: Pointer;
  17529. function CreateMDIWindow;
  17530. begin
  17531. GetProcedureAddress(_CreateMDIWindow, user32, 'CreateMDIWindow' + AWSuffix);
  17532. asm
  17533. MOV ESP, EBP
  17534. POP EBP
  17535. JMP [_CreateMDIWindow]
  17536. end;
  17537. end;
  17538. var
  17539. _TileWindows: Pointer;
  17540. function TileWindows;
  17541. begin
  17542. GetProcedureAddress(_TileWindows, user32, 'TileWindows');
  17543. asm
  17544. MOV ESP, EBP
  17545. POP EBP
  17546. JMP [_TileWindows]
  17547. end;
  17548. end;
  17549. var
  17550. _CascadeWindows: Pointer;
  17551. function CascadeWindows;
  17552. begin
  17553. GetProcedureAddress(_CascadeWindows, user32, 'CascadeWindows');
  17554. asm
  17555. MOV ESP, EBP
  17556. POP EBP
  17557. JMP [_CascadeWindows]
  17558. end;
  17559. end;
  17560. var
  17561. _WinHelpA: Pointer;
  17562. function WinHelpA;
  17563. begin
  17564. GetProcedureAddress(_WinHelpA, user32, 'WinHelpA');
  17565. asm
  17566. MOV ESP, EBP
  17567. POP EBP
  17568. JMP [_WinHelpA]
  17569. end;
  17570. end;
  17571. var
  17572. _WinHelpW: Pointer;
  17573. function WinHelpW;
  17574. begin
  17575. GetProcedureAddress(_WinHelpW, user32, 'WinHelpW');
  17576. asm
  17577. MOV ESP, EBP
  17578. POP EBP
  17579. JMP [_WinHelpW]
  17580. end;
  17581. end;
  17582. var
  17583. _WinHelp: Pointer;
  17584. function WinHelp;
  17585. begin
  17586. GetProcedureAddress(_WinHelp, user32, 'WinHelp' + AWSuffix);
  17587. asm
  17588. MOV ESP, EBP
  17589. POP EBP
  17590. JMP [_WinHelp]
  17591. end;
  17592. end;
  17593. var
  17594. _GetGuiResources: Pointer;
  17595. function GetGuiResources;
  17596. begin
  17597. GetProcedureAddress(_GetGuiResources, user32, 'GetGuiResources');
  17598. asm
  17599. MOV ESP, EBP
  17600. POP EBP
  17601. JMP [_GetGuiResources]
  17602. end;
  17603. end;
  17604. var
  17605. _ChangeDisplaySettingsA: Pointer;
  17606. function ChangeDisplaySettingsA;
  17607. begin
  17608. GetProcedureAddress(_ChangeDisplaySettingsA, user32, 'ChangeDisplaySettingsA');
  17609. asm
  17610. MOV ESP, EBP
  17611. POP EBP
  17612. JMP [_ChangeDisplaySettingsA]
  17613. end;
  17614. end;
  17615. var
  17616. _ChangeDisplaySettingsW: Pointer;
  17617. function ChangeDisplaySettingsW;
  17618. begin
  17619. GetProcedureAddress(_ChangeDisplaySettingsW, user32, 'ChangeDisplaySettingsW');
  17620. asm
  17621. MOV ESP, EBP
  17622. POP EBP
  17623. JMP [_ChangeDisplaySettingsW]
  17624. end;
  17625. end;
  17626. var
  17627. _ChangeDisplaySettings: Pointer;
  17628. function ChangeDisplaySettings;
  17629. begin
  17630. GetProcedureAddress(_ChangeDisplaySettings, user32, 'ChangeDisplaySettings' + AWSuffix);
  17631. asm
  17632. MOV ESP, EBP
  17633. POP EBP
  17634. JMP [_ChangeDisplaySettings]
  17635. end;
  17636. end;
  17637. var
  17638. _ChangeDisplaySettingsExA: Pointer;
  17639. function ChangeDisplaySettingsExA;
  17640. begin
  17641. GetProcedureAddress(_ChangeDisplaySettingsExA, user32, 'ChangeDisplaySettingsExA');
  17642. asm
  17643. MOV ESP, EBP
  17644. POP EBP
  17645. JMP [_ChangeDisplaySettingsExA]
  17646. end;
  17647. end;
  17648. var
  17649. _ChangeDisplaySettingsExW: Pointer;
  17650. function ChangeDisplaySettingsExW;
  17651. begin
  17652. GetProcedureAddress(_ChangeDisplaySettingsExW, user32, 'ChangeDisplaySettingsExW');
  17653. asm
  17654. MOV ESP, EBP
  17655. POP EBP
  17656. JMP [_ChangeDisplaySettingsExW]
  17657. end;
  17658. end;
  17659. var
  17660. _ChangeDisplaySettingsEx: Pointer;
  17661. function ChangeDisplaySettingsEx;
  17662. begin
  17663. GetProcedureAddress(_ChangeDisplaySettingsEx, user32, 'ChangeDisplaySettingsEx' + AWSuffix);
  17664. asm
  17665. MOV ESP, EBP
  17666. POP EBP
  17667. JMP [_ChangeDisplaySettingsEx]
  17668. end;
  17669. end;
  17670. var
  17671. _EnumDisplaySettingsA: Pointer;
  17672. function EnumDisplaySettingsA;
  17673. begin
  17674. GetProcedureAddress(_EnumDisplaySettingsA, user32, 'EnumDisplaySettingsA');
  17675. asm
  17676. MOV ESP, EBP
  17677. POP EBP
  17678. JMP [_EnumDisplaySettingsA]
  17679. end;
  17680. end;
  17681. var
  17682. _EnumDisplaySettingsW: Pointer;
  17683. function EnumDisplaySettingsW;
  17684. begin
  17685. GetProcedureAddress(_EnumDisplaySettingsW, user32, 'EnumDisplaySettingsW');
  17686. asm
  17687. MOV ESP, EBP
  17688. POP EBP
  17689. JMP [_EnumDisplaySettingsW]
  17690. end;
  17691. end;
  17692. var
  17693. _EnumDisplaySettings: Pointer;
  17694. function EnumDisplaySettings;
  17695. begin
  17696. GetProcedureAddress(_EnumDisplaySettings, user32, 'EnumDisplaySettings' + AWSuffix);
  17697. asm
  17698. MOV ESP, EBP
  17699. POP EBP
  17700. JMP [_EnumDisplaySettings]
  17701. end;
  17702. end;
  17703. var
  17704. _EnumDisplaySettingsExA: Pointer;
  17705. function EnumDisplaySettingsExA;
  17706. begin
  17707. GetProcedureAddress(_EnumDisplaySettingsExA, user32, 'EnumDisplaySettingsExA');
  17708. asm
  17709. MOV ESP, EBP
  17710. POP EBP
  17711. JMP [_EnumDisplaySettingsExA]
  17712. end;
  17713. end;
  17714. var
  17715. _EnumDisplaySettingsExW: Pointer;
  17716. function EnumDisplaySettingsExW;
  17717. begin
  17718. GetProcedureAddress(_EnumDisplaySettingsExW, user32, 'EnumDisplaySettingsExW');
  17719. asm
  17720. MOV ESP, EBP
  17721. POP EBP
  17722. JMP [_EnumDisplaySettingsExW]
  17723. end;
  17724. end;
  17725. var
  17726. _EnumDisplaySettingsEx: Pointer;
  17727. function EnumDisplaySettingsEx;
  17728. begin
  17729. GetProcedureAddress(_EnumDisplaySettingsEx, user32, 'EnumDisplaySettingsEx' + AWSuffix);
  17730. asm
  17731. MOV ESP, EBP
  17732. POP EBP
  17733. JMP [_EnumDisplaySettingsEx]
  17734. end;
  17735. end;
  17736. var
  17737. _EnumDisplayDevicesA: Pointer;
  17738. function EnumDisplayDevicesA;
  17739. begin
  17740. GetProcedureAddress(_EnumDisplayDevicesA, user32, 'EnumDisplayDevicesA');
  17741. asm
  17742. MOV ESP, EBP
  17743. POP EBP
  17744. JMP [_EnumDisplayDevicesA]
  17745. end;
  17746. end;
  17747. var
  17748. _EnumDisplayDevicesW: Pointer;
  17749. function EnumDisplayDevicesW;
  17750. begin
  17751. GetProcedureAddress(_EnumDisplayDevicesW, user32, 'EnumDisplayDevicesW');
  17752. asm
  17753. MOV ESP, EBP
  17754. POP EBP
  17755. JMP [_EnumDisplayDevicesW]
  17756. end;
  17757. end;
  17758. var
  17759. _EnumDisplayDevices: Pointer;
  17760. function EnumDisplayDevices;
  17761. begin
  17762. GetProcedureAddress(_EnumDisplayDevices, user32, 'EnumDisplayDevices' + AWSuffix);
  17763. asm
  17764. MOV ESP, EBP
  17765. POP EBP
  17766. JMP [_EnumDisplayDevices]
  17767. end;
  17768. end;
  17769. var
  17770. _SystemParametersInfoA: Pointer;
  17771. function SystemParametersInfoA;
  17772. begin
  17773. GetProcedureAddress(_SystemParametersInfoA, user32, 'SystemParametersInfoA');
  17774. asm
  17775. MOV ESP, EBP
  17776. POP EBP
  17777. JMP [_SystemParametersInfoA]
  17778. end;
  17779. end;
  17780. var
  17781. _SystemParametersInfoW: Pointer;
  17782. function SystemParametersInfoW;
  17783. begin
  17784. GetProcedureAddress(_SystemParametersInfoW, user32, 'SystemParametersInfoW');
  17785. asm
  17786. MOV ESP, EBP
  17787. POP EBP
  17788. JMP [_SystemParametersInfoW]
  17789. end;
  17790. end;
  17791. var
  17792. _SystemParametersInfo: Pointer;
  17793. function SystemParametersInfo;
  17794. begin
  17795. GetProcedureAddress(_SystemParametersInfo, user32, 'SystemParametersInfo' + AWSuffix);
  17796. asm
  17797. MOV ESP, EBP
  17798. POP EBP
  17799. JMP [_SystemParametersInfo]
  17800. end;
  17801. end;
  17802. var
  17803. _SetDebugErrorLevel: Pointer;
  17804. procedure SetDebugErrorLevel;
  17805. begin
  17806. GetProcedureAddress(_SetDebugErrorLevel, user32, 'SetDebugErrorLevel');
  17807. asm
  17808. MOV ESP, EBP
  17809. POP EBP
  17810. JMP [_SetDebugErrorLevel]
  17811. end;
  17812. end;
  17813. var
  17814. _SetLastErrorEx: Pointer;
  17815. procedure SetLastErrorEx;
  17816. begin
  17817. GetProcedureAddress(_SetLastErrorEx, user32, 'SetLastErrorEx');
  17818. asm
  17819. MOV ESP, EBP
  17820. POP EBP
  17821. JMP [_SetLastErrorEx]
  17822. end;
  17823. end;
  17824. var
  17825. _InternalGetWindowText: Pointer;
  17826. function InternalGetWindowText;
  17827. begin
  17828. GetProcedureAddress(_InternalGetWindowText, user32, 'InternalGetWindowText');
  17829. asm
  17830. MOV ESP, EBP
  17831. POP EBP
  17832. JMP [_InternalGetWindowText]
  17833. end;
  17834. end;
  17835. var
  17836. _EndTask: Pointer;
  17837. function EndTask;
  17838. begin
  17839. GetProcedureAddress(_EndTask, user32, 'EndTask');
  17840. asm
  17841. MOV ESP, EBP
  17842. POP EBP
  17843. JMP [_EndTask]
  17844. end;
  17845. end;
  17846. var
  17847. _MonitorFromPoint: Pointer;
  17848. function MonitorFromPoint;
  17849. begin
  17850. GetProcedureAddress(_MonitorFromPoint, user32, 'MonitorFromPoint');
  17851. asm
  17852. MOV ESP, EBP
  17853. POP EBP
  17854. JMP [_MonitorFromPoint]
  17855. end;
  17856. end;
  17857. var
  17858. _MonitorFromRect: Pointer;
  17859. function MonitorFromRect;
  17860. begin
  17861. GetProcedureAddress(_MonitorFromRect, user32, 'MonitorFromRect');
  17862. asm
  17863. MOV ESP, EBP
  17864. POP EBP
  17865. JMP [_MonitorFromRect]
  17866. end;
  17867. end;
  17868. var
  17869. _MonitorFromWindow: Pointer;
  17870. function MonitorFromWindow;
  17871. begin
  17872. GetProcedureAddress(_MonitorFromWindow, user32, 'MonitorFromWindow');
  17873. asm
  17874. MOV ESP, EBP
  17875. POP EBP
  17876. JMP [_MonitorFromWindow]
  17877. end;
  17878. end;
  17879. var
  17880. _GetMonitorInfoA: Pointer;
  17881. function GetMonitorInfoA;
  17882. begin
  17883. GetProcedureAddress(_GetMonitorInfoA, user32, 'GetMonitorInfoA');
  17884. asm
  17885. MOV ESP, EBP
  17886. POP EBP
  17887. JMP [_GetMonitorInfoA]
  17888. end;
  17889. end;
  17890. var
  17891. _GetMonitorInfoW: Pointer;
  17892. function GetMonitorInfoW;
  17893. begin
  17894. GetProcedureAddress(_GetMonitorInfoW, user32, 'GetMonitorInfoW');
  17895. asm
  17896. MOV ESP, EBP
  17897. POP EBP
  17898. JMP [_GetMonitorInfoW]
  17899. end;
  17900. end;
  17901. var
  17902. _GetMonitorInfo: Pointer;
  17903. function GetMonitorInfo;
  17904. begin
  17905. GetProcedureAddress(_GetMonitorInfo, user32, 'GetMonitorInfo' + AWSuffix);
  17906. asm
  17907. MOV ESP, EBP
  17908. POP EBP
  17909. JMP [_GetMonitorInfo]
  17910. end;
  17911. end;
  17912. var
  17913. _EnumDisplayMonitors: Pointer;
  17914. function EnumDisplayMonitors;
  17915. begin
  17916. GetProcedureAddress(_EnumDisplayMonitors, user32, 'EnumDisplayMonitors');
  17917. asm
  17918. MOV ESP, EBP
  17919. POP EBP
  17920. JMP [_EnumDisplayMonitors]
  17921. end;
  17922. end;
  17923. var
  17924. _NotifyWinEvent: Pointer;
  17925. procedure NotifyWinEvent;
  17926. begin
  17927. GetProcedureAddress(_NotifyWinEvent, user32, 'NotifyWinEvent');
  17928. asm
  17929. MOV ESP, EBP
  17930. POP EBP
  17931. JMP [_NotifyWinEvent]
  17932. end;
  17933. end;
  17934. var
  17935. _SetWinEventHook: Pointer;
  17936. function SetWinEventHook;
  17937. begin
  17938. GetProcedureAddress(_SetWinEventHook, user32, 'SetWinEventHook');
  17939. asm
  17940. MOV ESP, EBP
  17941. POP EBP
  17942. JMP [_SetWinEventHook]
  17943. end;
  17944. end;
  17945. var
  17946. _IsWinEventHookInstalled: Pointer;
  17947. function IsWinEventHookInstalled;
  17948. begin
  17949. GetProcedureAddress(_IsWinEventHookInstalled, user32, 'IsWinEventHookInstalled');
  17950. asm
  17951. MOV ESP, EBP
  17952. POP EBP
  17953. JMP [_IsWinEventHookInstalled]
  17954. end;
  17955. end;
  17956. var
  17957. _UnhookWinEvent: Pointer;
  17958. function UnhookWinEvent;
  17959. begin
  17960. GetProcedureAddress(_UnhookWinEvent, user32, 'UnhookWinEvent');
  17961. asm
  17962. MOV ESP, EBP
  17963. POP EBP
  17964. JMP [_UnhookWinEvent]
  17965. end;
  17966. end;
  17967. var
  17968. _GetGUIThreadInfo: Pointer;
  17969. function GetGUIThreadInfo;
  17970. begin
  17971. GetProcedureAddress(_GetGUIThreadInfo, user32, 'GetGUIThreadInfo');
  17972. asm
  17973. MOV ESP, EBP
  17974. POP EBP
  17975. JMP [_GetGUIThreadInfo]
  17976. end;
  17977. end;
  17978. var
  17979. _GetWindowModuleFileNameA: Pointer;
  17980. function GetWindowModuleFileNameA;
  17981. begin
  17982. GetProcedureAddress(_GetWindowModuleFileNameA, user32, 'GetWindowModuleFileNameA');
  17983. asm
  17984. MOV ESP, EBP
  17985. POP EBP
  17986. JMP [_GetWindowModuleFileNameA]
  17987. end;
  17988. end;
  17989. var
  17990. _GetWindowModuleFileNameW: Pointer;
  17991. function GetWindowModuleFileNameW;
  17992. begin
  17993. GetProcedureAddress(_GetWindowModuleFileNameW, user32, 'GetWindowModuleFileNameW');
  17994. asm
  17995. MOV ESP, EBP
  17996. POP EBP
  17997. JMP [_GetWindowModuleFileNameW]
  17998. end;
  17999. end;
  18000. var
  18001. _GetWindowModuleFileName: Pointer;
  18002. function GetWindowModuleFileName;
  18003. begin
  18004. GetProcedureAddress(_GetWindowModuleFileName, user32, 'GetWindowModuleFileName' + AWSuffix);
  18005. asm
  18006. MOV ESP, EBP
  18007. POP EBP
  18008. JMP [_GetWindowModuleFileName]
  18009. end;
  18010. end;
  18011. var
  18012. _GetCursorInfo: Pointer;
  18013. function GetCursorInfo;
  18014. begin
  18015. GetProcedureAddress(_GetCursorInfo, user32, 'GetCursorInfo');
  18016. asm
  18017. MOV ESP, EBP
  18018. POP EBP
  18019. JMP [_GetCursorInfo]
  18020. end;
  18021. end;
  18022. var
  18023. _GetWindowInfo: Pointer;
  18024. function GetWindowInfo;
  18025. begin
  18026. GetProcedureAddress(_GetWindowInfo, user32, 'GetWindowInfo');
  18027. asm
  18028. MOV ESP, EBP
  18029. POP EBP
  18030. JMP [_GetWindowInfo]
  18031. end;
  18032. end;
  18033. var
  18034. _GetTitleBarInfo: Pointer;
  18035. function GetTitleBarInfo;
  18036. begin
  18037. GetProcedureAddress(_GetTitleBarInfo, user32, 'GetTitleBarInfo');
  18038. asm
  18039. MOV ESP, EBP
  18040. POP EBP
  18041. JMP [_GetTitleBarInfo]
  18042. end;
  18043. end;
  18044. var
  18045. _GetMenuBarInfo: Pointer;
  18046. function GetMenuBarInfo;
  18047. begin
  18048. GetProcedureAddress(_GetMenuBarInfo, user32, 'GetMenuBarInfo');
  18049. asm
  18050. MOV ESP, EBP
  18051. POP EBP
  18052. JMP [_GetMenuBarInfo]
  18053. end;
  18054. end;
  18055. var
  18056. _GetScrollBarInfo: Pointer;
  18057. function GetScrollBarInfo;
  18058. begin
  18059. GetProcedureAddress(_GetScrollBarInfo, user32, 'GetScrollBarInfo');
  18060. asm
  18061. MOV ESP, EBP
  18062. POP EBP
  18063. JMP [_GetScrollBarInfo]
  18064. end;
  18065. end;
  18066. var
  18067. _GetComboBoxInfo: Pointer;
  18068. function GetComboBoxInfo;
  18069. begin
  18070. GetProcedureAddress(_GetComboBoxInfo, user32, 'GetComboBoxInfo');
  18071. asm
  18072. MOV ESP, EBP
  18073. POP EBP
  18074. JMP [_GetComboBoxInfo]
  18075. end;
  18076. end;
  18077. var
  18078. _GetAncestor: Pointer;
  18079. function GetAncestor;
  18080. begin
  18081. GetProcedureAddress(_GetAncestor, user32, 'GetAncestor');
  18082. asm
  18083. MOV ESP, EBP
  18084. POP EBP
  18085. JMP [_GetAncestor]
  18086. end;
  18087. end;
  18088. var
  18089. _RealChildWindowFromPoint: Pointer;
  18090. function RealChildWindowFromPoint;
  18091. begin
  18092. GetProcedureAddress(_RealChildWindowFromPoint, user32, 'RealChildWindowFromPoint');
  18093. asm
  18094. MOV ESP, EBP
  18095. POP EBP
  18096. JMP [_RealChildWindowFromPoint]
  18097. end;
  18098. end;
  18099. var
  18100. _RealGetWindowClassA: Pointer;
  18101. function RealGetWindowClassA;
  18102. begin
  18103. GetProcedureAddress(_RealGetWindowClassA, user32, 'RealGetWindowClassA');
  18104. asm
  18105. MOV ESP, EBP
  18106. POP EBP
  18107. JMP [_RealGetWindowClassA]
  18108. end;
  18109. end;
  18110. var
  18111. _RealGetWindowClassW: Pointer;
  18112. function RealGetWindowClassW;
  18113. begin
  18114. GetProcedureAddress(_RealGetWindowClassW, user32, 'RealGetWindowClassW');
  18115. asm
  18116. MOV ESP, EBP
  18117. POP EBP
  18118. JMP [_RealGetWindowClassW]
  18119. end;
  18120. end;
  18121. var
  18122. _RealGetWindowClass: Pointer;
  18123. function RealGetWindowClass;
  18124. begin
  18125. GetProcedureAddress(_RealGetWindowClass, user32, 'RealGetWindowClass' + AWSuffix);
  18126. asm
  18127. MOV ESP, EBP
  18128. POP EBP
  18129. JMP [_RealGetWindowClass]
  18130. end;
  18131. end;
  18132. var
  18133. _GetAltTabInfoA: Pointer;
  18134. function GetAltTabInfoA;
  18135. begin
  18136. GetProcedureAddress(_GetAltTabInfoA, user32, 'GetAltTabInfoA');
  18137. asm
  18138. MOV ESP, EBP
  18139. POP EBP
  18140. JMP [_GetAltTabInfoA]
  18141. end;
  18142. end;
  18143. var
  18144. _GetAltTabInfoW: Pointer;
  18145. function GetAltTabInfoW;
  18146. begin
  18147. GetProcedureAddress(_GetAltTabInfoW, user32, 'GetAltTabInfoW');
  18148. asm
  18149. MOV ESP, EBP
  18150. POP EBP
  18151. JMP [_GetAltTabInfoW]
  18152. end;
  18153. end;
  18154. var
  18155. _GetAltTabInfo: Pointer;
  18156. function GetAltTabInfo;
  18157. begin
  18158. GetProcedureAddress(_GetAltTabInfo, user32, 'GetAltTabInfo' + AWSuffix);
  18159. asm
  18160. MOV ESP, EBP
  18161. POP EBP
  18162. JMP [_GetAltTabInfo]
  18163. end;
  18164. end;
  18165. var
  18166. _GetListBoxInfo: Pointer;
  18167. function GetListBoxInfo;
  18168. begin
  18169. GetProcedureAddress(_GetListBoxInfo, user32, 'GetListBoxInfo');
  18170. asm
  18171. MOV ESP, EBP
  18172. POP EBP
  18173. JMP [_GetListBoxInfo]
  18174. end;
  18175. end;
  18176. var
  18177. _LockWorkStation: Pointer;
  18178. function LockWorkStation;
  18179. begin
  18180. GetProcedureAddress(_LockWorkStation, user32, 'LockWorkStation');
  18181. asm
  18182. MOV ESP, EBP
  18183. POP EBP
  18184. JMP [_LockWorkStation]
  18185. end;
  18186. end;
  18187. var
  18188. _UserHandleGrantAccess: Pointer;
  18189. function UserHandleGrantAccess;
  18190. begin
  18191. GetProcedureAddress(_UserHandleGrantAccess, user32, 'UserHandleGrantAccess');
  18192. asm
  18193. MOV ESP, EBP
  18194. POP EBP
  18195. JMP [_UserHandleGrantAccess]
  18196. end;
  18197. end;
  18198. var
  18199. _GetRawInputData: Pointer;
  18200. function GetRawInputData;
  18201. begin
  18202. GetProcedureAddress(_GetRawInputData, user32, 'GetRawInputData');
  18203. asm
  18204. MOV ESP, EBP
  18205. POP EBP
  18206. JMP [_GetRawInputData]
  18207. end;
  18208. end;
  18209. var
  18210. _GetRawInputDeviceInfoA: Pointer;
  18211. function GetRawInputDeviceInfoA;
  18212. begin
  18213. GetProcedureAddress(_GetRawInputDeviceInfoA, user32, 'GetRawInputDeviceInfoA');
  18214. asm
  18215. MOV ESP, EBP
  18216. POP EBP
  18217. JMP [_GetRawInputDeviceInfoA]
  18218. end;
  18219. end;
  18220. var
  18221. _GetRawInputDeviceInfoW: Pointer;
  18222. function GetRawInputDeviceInfoW;
  18223. begin
  18224. GetProcedureAddress(_GetRawInputDeviceInfoW, user32, 'GetRawInputDeviceInfoW');
  18225. asm
  18226. MOV ESP, EBP
  18227. POP EBP
  18228. JMP [_GetRawInputDeviceInfoW]
  18229. end;
  18230. end;
  18231. var
  18232. _GetRawInputDeviceInfo: Pointer;
  18233. function GetRawInputDeviceInfo;
  18234. begin
  18235. GetProcedureAddress(_GetRawInputDeviceInfo, user32, 'GetRawInputDeviceInfo' + AWSuffix);
  18236. asm
  18237. MOV ESP, EBP
  18238. POP EBP
  18239. JMP [_GetRawInputDeviceInfo]
  18240. end;
  18241. end;
  18242. var
  18243. _GetRawInputBuffer: Pointer;
  18244. function GetRawInputBuffer;
  18245. begin
  18246. GetProcedureAddress(_GetRawInputBuffer, user32, 'GetRawInputBuffer');
  18247. asm
  18248. MOV ESP, EBP
  18249. POP EBP
  18250. JMP [_GetRawInputBuffer]
  18251. end;
  18252. end;
  18253. var
  18254. _RegisterRawInputDevices: Pointer;
  18255. function RegisterRawInputDevices;
  18256. begin
  18257. GetProcedureAddress(_RegisterRawInputDevices, user32, 'RegisterRawInputDevices');
  18258. asm
  18259. MOV ESP, EBP
  18260. POP EBP
  18261. JMP [_RegisterRawInputDevices]
  18262. end;
  18263. end;
  18264. var
  18265. _GetRegisteredRawInputDevices: Pointer;
  18266. function GetRegisteredRawInputDevices;
  18267. begin
  18268. GetProcedureAddress(_GetRegisteredRawInputDevices, user32, 'GetRegisteredRawInputDevices');
  18269. asm
  18270. MOV ESP, EBP
  18271. POP EBP
  18272. JMP [_GetRegisteredRawInputDevices]
  18273. end;
  18274. end;
  18275. var
  18276. _GetRawInputDeviceList: Pointer;
  18277. function GetRawInputDeviceList;
  18278. begin
  18279. GetProcedureAddress(_GetRawInputDeviceList, user32, 'GetRawInputDeviceList');
  18280. asm
  18281. MOV ESP, EBP
  18282. POP EBP
  18283. JMP [_GetRawInputDeviceList]
  18284. end;
  18285. end;
  18286. var
  18287. _DefRawInputProc: Pointer;
  18288. function DefRawInputProc;
  18289. begin
  18290. GetProcedureAddress(_DefRawInputProc, user32, 'DefRawInputProc');
  18291. asm
  18292. MOV ESP, EBP
  18293. POP EBP
  18294. JMP [_DefRawInputProc]
  18295. end;
  18296. end;
  18297. {$ELSE}
  18298. function IsHungAppWindow; external user32 name 'IsHungAppWindow';
  18299. procedure DisableProcessWindowsGhosting; external user32 name 'DisableProcessWindowsGhosting';
  18300. function wvsprintfA; external user32 name 'wvsprintfA';
  18301. function wvsprintfW; external user32 name 'wvsprintfW';
  18302. function wvsprintf; external user32 name 'wvsprintf' + AWSuffix;
  18303. function wsprintfA; external user32 name 'wsprintfA';
  18304. function wsprintfW; external user32 name 'wsprintfW';
  18305. function wsprintf; external user32 name 'wsprintf' + AWSuffix;
  18306. function LoadKeyboardLayoutA; external user32 name 'LoadKeyboardLayoutA';
  18307. function LoadKeyboardLayoutW; external user32 name 'LoadKeyboardLayoutW';
  18308. function LoadKeyboardLayout; external user32 name 'LoadKeyboardLayout' + AWSuffix;
  18309. function ActivateKeyboardLayout; external user32 name 'ActivateKeyboardLayout';
  18310. function ToUnicodeEx; external user32 name 'ToUnicodeEx';
  18311. function UnloadKeyboardLayout; external user32 name 'UnloadKeyboardLayout';
  18312. function GetKeyboardLayoutNameA; external user32 name 'GetKeyboardLayoutNameA';
  18313. function GetKeyboardLayoutNameW; external user32 name 'GetKeyboardLayoutNameW';
  18314. function GetKeyboardLayoutName; external user32 name 'GetKeyboardLayoutName' + AWSuffix;
  18315. function GetKeyboardLayoutList; external user32 name 'GetKeyboardLayoutList';
  18316. function GetKeyboardLayout; external user32 name 'GetKeyboardLayout';
  18317. function GetMouseMovePointsEx; external user32 name 'GetMouseMovePointsEx';
  18318. function CreateDesktopA; external user32 name 'CreateDesktopA';
  18319. function CreateDesktopW; external user32 name 'CreateDesktopW';
  18320. function CreateDesktop; external user32 name 'CreateDesktop' + AWSuffix;
  18321. function OpenDesktopA; external user32 name 'OpenDesktopA';
  18322. function OpenDesktopW; external user32 name 'OpenDesktopW';
  18323. function OpenDesktop; external user32 name 'OpenDesktop' + AWSuffix;
  18324. function OpenInputDesktop; external user32 name 'OpenInputDesktop';
  18325. function EnumDesktopsA; external user32 name 'EnumDesktopsA';
  18326. function EnumDesktopsW; external user32 name 'EnumDesktopsW';
  18327. function EnumDesktops; external user32 name 'EnumDesktops' + AWSuffix;
  18328. function EnumDesktopWindows; external user32 name 'EnumDesktopWindows';
  18329. function SwitchDesktop; external user32 name 'SwitchDesktop';
  18330. function SetThreadDesktop; external user32 name 'SetThreadDesktop';
  18331. function CloseDesktop; external user32 name 'CloseDesktop';
  18332. function GetThreadDesktop; external user32 name 'GetThreadDesktop';
  18333. function CreateWindowStationA; external user32 name 'CreateWindowStationA';
  18334. function CreateWindowStationW; external user32 name 'CreateWindowStationW';
  18335. function CreateWindowStation; external user32 name 'CreateWindowStation' + AWSuffix;
  18336. function OpenWindowStationA; external user32 name 'OpenWindowStationA';
  18337. function OpenWindowStationW; external user32 name 'OpenWindowStationW';
  18338. function OpenWindowStation; external user32 name 'OpenWindowStation' + AWSuffix;
  18339. function EnumWindowStationsA; external user32 name 'EnumWindowStationsA';
  18340. function EnumWindowStationsW; external user32 name 'EnumWindowStationsW';
  18341. function EnumWindowStations; external user32 name 'EnumWindowStations' + AWSuffix;
  18342. function CloseWindowStation; external user32 name 'CloseWindowStation';
  18343. function SetProcessWindowStation; external user32 name 'SetProcessWindowStation';
  18344. function GetProcessWindowStation; external user32 name 'GetProcessWindowStation';
  18345. function SetUserObjectSecurity; external user32 name 'SetUserObjectSecurity';
  18346. function GetUserObjectSecurity; external user32 name 'GetUserObjectSecurity';
  18347. function GetUserObjectInformationA; external user32 name 'GetUserObjectInformationA';
  18348. function GetUserObjectInformationW; external user32 name 'GetUserObjectInformationW';
  18349. function GetUserObjectInformation; external user32 name 'GetUserObjectInformation' + AWSuffix;
  18350. function SetUserObjectInformationA; external user32 name 'SetUserObjectInformationA';
  18351. function SetUserObjectInformationW; external user32 name 'SetUserObjectInformationW';
  18352. function SetUserObjectInformation; external user32 name 'SetUserObjectInformation' + AWSuffix;
  18353. function RegisterWindowMessageA; external user32 name 'RegisterWindowMessageA';
  18354. function RegisterWindowMessageW; external user32 name 'RegisterWindowMessageW';
  18355. function RegisterWindowMessage; external user32 name 'RegisterWindowMessage' + AWSuffix;
  18356. function TrackMouseEvent; external user32 name 'TrackMouseEvent';
  18357. function DrawEdge; external user32 name 'DrawEdge';
  18358. function DrawFrameControl; external user32 name 'DrawFrameControl';
  18359. function DrawCaption; external user32 name 'DrawCaption';
  18360. function DrawAnimatedRects; external user32 name 'DrawAnimatedRects';
  18361. function GetMessageA; external user32 name 'GetMessageA';
  18362. function GetMessageW; external user32 name 'GetMessageW';
  18363. function GetMessage; external user32 name 'GetMessage' + AWSuffix;
  18364. function TranslateMessage; external user32 name 'TranslateMessage';
  18365. function DispatchMessageA; external user32 name 'DispatchMessageA';
  18366. function DispatchMessageW; external user32 name 'DispatchMessageW';
  18367. function DispatchMessage; external user32 name 'DispatchMessage' + AWSuffix;
  18368. function SetMessageQueue; external user32 name 'SetMessageQueue';
  18369. function PeekMessageA; external user32 name 'PeekMessageA';
  18370. function PeekMessageW; external user32 name 'PeekMessageW';
  18371. function PeekMessage; external user32 name 'PeekMessage' + AWSuffix;
  18372. function RegisterHotKey; external user32 name 'RegisterHotKey';
  18373. function UnregisterHotKey; external user32 name 'UnregisterHotKey';
  18374. function ExitWindowsEx; external user32 name 'ExitWindowsEx';
  18375. function SwapMouseButton; external user32 name 'SwapMouseButton';
  18376. function GetMessagePos; external user32 name 'GetMessagePos';
  18377. function GetMessageTime; external user32 name 'GetMessageTime';
  18378. function GetMessageExtraInfo; external user32 name 'GetMessageExtraInfo';
  18379. function SetMessageExtraInfo; external user32 name 'SetMessageExtraInfo';
  18380. function SendMessageA; external user32 name 'SendMessageA';
  18381. function SendMessageW; external user32 name 'SendMessageW';
  18382. function SendMessage; external user32 name 'SendMessage' + AWSuffix;
  18383. function SendMessageTimeoutA; external user32 name 'SendMessageTimeoutA';
  18384. function SendMessageTimeoutW; external user32 name 'SendMessageTimeoutW';
  18385. function SendMessageTimeout; external user32 name 'SendMessageTimeout' + AWSuffix;
  18386. function SendNotifyMessageA; external user32 name 'SendNotifyMessageA';
  18387. function SendNotifyMessageW; external user32 name 'SendNotifyMessageW';
  18388. function SendNotifyMessage; external user32 name 'SendNotifyMessage' + AWSuffix;
  18389. function SendMessageCallbackA; external user32 name 'SendMessageCallbackA';
  18390. function SendMessageCallbackW; external user32 name 'SendMessageCallbackW';
  18391. function SendMessageCallback; external user32 name 'SendMessageCallback' + AWSuffix;
  18392. function BroadcastSystemMessageExA; external user32 name 'BroadcastSystemMessageExA';
  18393. function BroadcastSystemMessageExW; external user32 name 'BroadcastSystemMessageExW';
  18394. function BroadcastSystemMessageEx; external user32 name 'BroadcastSystemMessageEx' + AWSuffix;
  18395. function BroadcastSystemMessageA; external user32 name 'BroadcastSystemMessageA';
  18396. function BroadcastSystemMessageW; external user32 name 'BroadcastSystemMessageW';
  18397. function BroadcastSystemMessage; external user32 name 'BroadcastSystemMessage' + AWSuffix;
  18398. function RegisterDeviceNotificationA; external user32 name 'RegisterDeviceNotificationA';
  18399. function RegisterDeviceNotificationW; external user32 name 'RegisterDeviceNotificationW';
  18400. function RegisterDeviceNotification; external user32 name 'RegisterDeviceNotification' + AWSuffix;
  18401. function UnregisterDeviceNotification; external user32 name 'UnregisterDeviceNotification';
  18402. function PostMessageA; external user32 name 'PostMessageA';
  18403. function PostMessageW; external user32 name 'PostMessageW';
  18404. function PostMessage; external user32 name 'PostMessage' + AWSuffix;
  18405. function PostThreadMessageA; external user32 name 'PostThreadMessageA';
  18406. function PostThreadMessageW; external user32 name 'PostThreadMessageW';
  18407. function PostThreadMessage; external user32 name 'PostThreadMessage' + AWSuffix;
  18408. function AttachThreadInput; external user32 name 'AttachThreadInput';
  18409. function ReplyMessage; external user32 name 'ReplyMessage';
  18410. function WaitMessage; external user32 name 'WaitMessage';
  18411. function WaitForInputIdle; external user32 name 'WaitForInputIdle';
  18412. function DefWindowProcA; external user32 name 'DefWindowProcA';
  18413. function DefWindowProcW; external user32 name 'DefWindowProcW';
  18414. function DefWindowProc; external user32 name 'DefWindowProc' + AWSuffix;
  18415. procedure PostQuitMessage; external user32 name 'PostQuitMessage';
  18416. function CallWindowProcA; external user32 name 'CallWindowProcA';
  18417. function CallWindowProcW; external user32 name 'CallWindowProcW';
  18418. function CallWindowProc; external user32 name 'CallWindowProc' + AWSuffix;
  18419. function InSendMessage; external user32 name 'InSendMessage';
  18420. function InSendMessageEx; external user32 name 'InSendMessageEx';
  18421. function GetDoubleClickTime; external user32 name 'GetDoubleClickTime';
  18422. function SetDoubleClickTime; external user32 name 'SetDoubleClickTime';
  18423. function RegisterClassA; external user32 name 'RegisterClassA';
  18424. function RegisterClassW; external user32 name 'RegisterClassW';
  18425. function RegisterClass; external user32 name 'RegisterClass' + AWSuffix;
  18426. function UnregisterClassA; external user32 name 'UnregisterClassA';
  18427. function UnregisterClassW; external user32 name 'UnregisterClassW';
  18428. function UnregisterClass; external user32 name 'UnregisterClass' + AWSuffix;
  18429. function GetClassInfoA; external user32 name 'GetClassInfoA';
  18430. function GetClassInfoW; external user32 name 'GetClassInfoW';
  18431. function GetClassInfo; external user32 name 'GetClassInfo' + AWSuffix;
  18432. function RegisterClassExA; external user32 name 'RegisterClassExA';
  18433. function RegisterClassExW; external user32 name 'RegisterClassExW';
  18434. function RegisterClassEx; external user32 name 'RegisterClassEx' + AWSuffix;
  18435. function GetClassInfoExA; external user32 name 'GetClassInfoExA';
  18436. function GetClassInfoExW; external user32 name 'GetClassInfoExW';
  18437. function GetClassInfoEx; external user32 name 'GetClassInfoEx' + AWSuffix;
  18438. function CreateWindowExA; external user32 name 'CreateWindowExA';
  18439. function CreateWindowExW; external user32 name 'CreateWindowExW';
  18440. function CreateWindowEx; external user32 name 'CreateWindowEx' + AWSuffix;
  18441. function IsWindow; external user32 name 'IsWindow';
  18442. function IsMenu; external user32 name 'IsMenu';
  18443. function IsChild; external user32 name 'IsChild';
  18444. function DestroyWindow; external user32 name 'DestroyWindow';
  18445. function ShowWindow; external user32 name 'ShowWindow';
  18446. function AnimateWindow; external user32 name 'AnimateWindow';
  18447. function UpdateLayeredWindow; external user32 name 'UpdateLayeredWindow';
  18448. function GetLayeredWindowAttributes; external user32 name 'GetLayeredWindowAttributes';
  18449. function PrintWindow; external user32 name 'PrintWindow';
  18450. function SetLayeredWindowAttributes; external user32 name 'SetLayeredWindowAttributes';
  18451. function ShowWindowAsync; external user32 name 'ShowWindowAsync';
  18452. function FlashWindow; external user32 name 'FlashWindow';
  18453. function FlashWindowEx; external user32 name 'FlashWindowEx';
  18454. function ShowOwnedPopups; external user32 name 'ShowOwnedPopups';
  18455. function OpenIcon; external user32 name 'OpenIcon';
  18456. function CloseWindow; external user32 name 'CloseWindow';
  18457. function MoveWindow; external user32 name 'MoveWindow';
  18458. function SetWindowPos; external user32 name 'SetWindowPos';
  18459. function GetWindowPlacement; external user32 name 'GetWindowPlacement';
  18460. function SetWindowPlacement; external user32 name 'SetWindowPlacement';
  18461. function BeginDeferWindowPos; external user32 name 'BeginDeferWindowPos';
  18462. function DeferWindowPos; external user32 name 'DeferWindowPos';
  18463. function EndDeferWindowPos; external user32 name 'EndDeferWindowPos';
  18464. function IsWindowVisible; external user32 name 'IsWindowVisible';
  18465. function IsIconic; external user32 name 'IsIconic';
  18466. function AnyPopup; external user32 name 'AnyPopup';
  18467. function BringWindowToTop; external user32 name 'BringWindowToTop';
  18468. function IsZoomed; external user32 name 'IsZoomed';
  18469. function CreateDialogParamA; external user32 name 'CreateDialogParamA';
  18470. function CreateDialogParamW; external user32 name 'CreateDialogParamW';
  18471. function CreateDialogParam; external user32 name 'CreateDialogParam' + AWSuffix;
  18472. function CreateDialogIndirectParamA; external user32 name 'CreateDialogIndirectParamA';
  18473. function CreateDialogIndirectParamW; external user32 name 'CreateDialogIndirectParamW';
  18474. function CreateDialogIndirectParam; external user32 name 'CreateDialogIndirectParam' + AWSuffix;
  18475. function DialogBoxParamA; external user32 name 'DialogBoxParamA';
  18476. function DialogBoxParamW; external user32 name 'DialogBoxParamW';
  18477. function DialogBoxParam; external user32 name 'DialogBoxParam' + AWSuffix;
  18478. function DialogBoxIndirectParamA; external user32 name 'DialogBoxIndirectParamA';
  18479. function DialogBoxIndirectParamW; external user32 name 'DialogBoxIndirectParamW';
  18480. function DialogBoxIndirectParam; external user32 name 'DialogBoxIndirectParam' + AWSuffix;
  18481. function EndDialog; external user32 name 'EndDialog';
  18482. function GetDlgItem; external user32 name 'GetDlgItem';
  18483. function SetDlgItemInt; external user32 name 'SetDlgItemInt';
  18484. function GetDlgItemInt; external user32 name 'GetDlgItemInt';
  18485. function SetDlgItemTextA; external user32 name 'SetDlgItemTextA';
  18486. function SetDlgItemTextW; external user32 name 'SetDlgItemTextW';
  18487. function SetDlgItemText; external user32 name 'SetDlgItemText' + AWSuffix;
  18488. function GetDlgItemTextA; external user32 name 'GetDlgItemTextA';
  18489. function GetDlgItemTextW; external user32 name 'GetDlgItemTextW';
  18490. function GetDlgItemText; external user32 name 'GetDlgItemText' + AWSuffix;
  18491. function CheckDlgButton; external user32 name 'CheckDlgButton';
  18492. function CheckRadioButton; external user32 name 'CheckRadioButton';
  18493. function IsDlgButtonChecked; external user32 name 'IsDlgButtonChecked';
  18494. function SendDlgItemMessageA; external user32 name 'SendDlgItemMessageA';
  18495. function SendDlgItemMessageW; external user32 name 'SendDlgItemMessageW';
  18496. function SendDlgItemMessage; external user32 name 'SendDlgItemMessage' + AWSuffix;
  18497. function GetNextDlgGroupItem; external user32 name 'GetNextDlgGroupItem';
  18498. function GetNextDlgTabItem; external user32 name 'GetNextDlgTabItem';
  18499. function GetDlgCtrlID; external user32 name 'GetDlgCtrlID';
  18500. function GetDialogBaseUnits; external user32 name 'GetDialogBaseUnits';
  18501. function DefDlgProcA; external user32 name 'DefDlgProcA';
  18502. function DefDlgProcW; external user32 name 'DefDlgProcW';
  18503. function DefDlgProc; external user32 name 'DefDlgProc' + AWSuffix;
  18504. function CallMsgFilterA; external user32 name 'CallMsgFilterA';
  18505. function CallMsgFilterW; external user32 name 'CallMsgFilterW';
  18506. function CallMsgFilter; external user32 name 'CallMsgFilter' + AWSuffix;
  18507. function OpenClipboard; external user32 name 'OpenClipboard';
  18508. function CloseClipboard; external user32 name 'CloseClipboard';
  18509. function GetClipboardSequenceNumber; external user32 name 'GetClipboardSequenceNumber';
  18510. function GetClipboardOwner; external user32 name 'GetClipboardOwner';
  18511. function SetClipboardViewer; external user32 name 'SetClipboardViewer';
  18512. function GetClipboardViewer; external user32 name 'GetClipboardViewer';
  18513. function ChangeClipboardChain; external user32 name 'ChangeClipboardChain';
  18514. function SetClipboardData; external user32 name 'SetClipboardData';
  18515. function GetClipboardData; external user32 name 'GetClipboardData';
  18516. function RegisterClipboardFormatA; external user32 name 'RegisterClipboardFormatA';
  18517. function RegisterClipboardFormatW; external user32 name 'RegisterClipboardFormatW';
  18518. function RegisterClipboardFormat; external user32 name 'RegisterClipboardFormat' + AWSuffix;
  18519. function CountClipboardFormats; external user32 name 'CountClipboardFormats';
  18520. function EnumClipboardFormats; external user32 name 'EnumClipboardFormats';
  18521. function GetClipboardFormatNameA; external user32 name 'GetClipboardFormatNameA';
  18522. function GetClipboardFormatNameW; external user32 name 'GetClipboardFormatNameW';
  18523. function GetClipboardFormatName; external user32 name 'GetClipboardFormatName' + AWSuffix;
  18524. function EmptyClipboard; external user32 name 'EmptyClipboard';
  18525. function IsClipboardFormatAvailable; external user32 name 'IsClipboardFormatAvailable';
  18526. function GetPriorityClipboardFormat; external user32 name 'GetPriorityClipboardFormat';
  18527. function GetOpenClipboardWindow; external user32 name 'GetOpenClipboardWindow';
  18528. function CharToOemA; external user32 name 'CharToOemA';
  18529. function CharToOemW; external user32 name 'CharToOemW';
  18530. function CharToOem; external user32 name 'CharToOem' + AWSuffix;
  18531. function OemToCharA; external user32 name 'OemToCharA';
  18532. function OemToCharW; external user32 name 'OemToCharW';
  18533. function OemToChar; external user32 name 'OemToChar' + AWSuffix;
  18534. function CharToOemBuffA; external user32 name 'CharToOemBuffA';
  18535. function CharToOemBuffW; external user32 name 'CharToOemBuffW';
  18536. function CharToOemBuff; external user32 name 'CharToOemBuff' + AWSuffix;
  18537. function OemToCharBuffA; external user32 name 'OemToCharBuffA';
  18538. function OemToCharBuffW; external user32 name 'OemToCharBuffW';
  18539. function OemToCharBuff; external user32 name 'OemToCharBuff' + AWSuffix;
  18540. function CharUpperA; external user32 name 'CharUpperA';
  18541. function CharUpperW; external user32 name 'CharUpperW';
  18542. function CharUpper; external user32 name 'CharUpper' + AWSuffix;
  18543. function CharUpperBuffA; external user32 name 'CharUpperBuffA';
  18544. function CharUpperBuffW; external user32 name 'CharUpperBuffW';
  18545. function CharUpperBuff; external user32 name 'CharUpperBuff' + AWSuffix;
  18546. function CharLowerA; external user32 name 'CharLowerA';
  18547. function CharLowerW; external user32 name 'CharLowerW';
  18548. function CharLower; external user32 name 'CharLower' + AWSuffix;
  18549. function CharLowerBuffA; external user32 name 'CharLowerBuffA';
  18550. function CharLowerBuffW; external user32 name 'CharLowerBuffW';
  18551. function CharLowerBuff; external user32 name 'CharLowerBuff' + AWSuffix;
  18552. function CharNextA; external user32 name 'CharNextA';
  18553. function CharNextW; external user32 name 'CharNextW';
  18554. function CharNext; external user32 name 'CharNext' + AWSuffix;
  18555. function CharPrevA; external user32 name 'CharPrevA';
  18556. function CharPrevW; external user32 name 'CharPrevW';
  18557. function CharPrev; external user32 name 'CharPrev' + AWSuffix;
  18558. function CharNextExA; external user32 name 'CharNextExA';
  18559. function CharPrevExA; external user32 name 'CharPrevExA';
  18560. function IsCharAlphaA; external user32 name 'IsCharAlphaA';
  18561. function IsCharAlphaW; external user32 name 'IsCharAlphaW';
  18562. function IsCharAlpha; external user32 name 'IsCharAlpha' + AWSuffix;
  18563. function IsCharAlphaNumericA; external user32 name 'IsCharAlphaNumericA';
  18564. function IsCharAlphaNumericW; external user32 name 'IsCharAlphaNumericW';
  18565. function IsCharAlphaNumeric; external user32 name 'IsCharAlphaNumeric' + AWSuffix;
  18566. function IsCharUpperA; external user32 name 'IsCharUpperA';
  18567. function IsCharUpperW; external user32 name 'IsCharUpperW';
  18568. function IsCharUpper; external user32 name 'IsCharUpper' + AWSuffix;
  18569. function IsCharLowerA; external user32 name 'IsCharLowerA';
  18570. function IsCharLowerW; external user32 name 'IsCharLowerW';
  18571. function IsCharLower; external user32 name 'IsCharLower' + AWSuffix;
  18572. function SetFocus; external user32 name 'SetFocus';
  18573. function GetActiveWindow; external user32 name 'GetActiveWindow';
  18574. function GetFocus; external user32 name 'GetFocus';
  18575. function GetKBCodePage; external user32 name 'GetKBCodePage';
  18576. function GetKeyState; external user32 name 'GetKeyState';
  18577. function GetAsyncKeyState; external user32 name 'GetAsyncKeyState';
  18578. function GetKeyboardState; external user32 name 'GetKeyboardState';
  18579. function SetKeyboardState; external user32 name 'SetKeyboardState';
  18580. function GetKeyNameTextA; external user32 name 'GetKeyNameTextA';
  18581. function GetKeyNameTextW; external user32 name 'GetKeyNameTextW';
  18582. function GetKeyNameText; external user32 name 'GetKeyNameText' + AWSuffix;
  18583. function GetKeyboardType; external user32 name 'GetKeyboardType';
  18584. function ToAscii; external user32 name 'ToAscii';
  18585. function ToAsciiEx; external user32 name 'ToAsciiEx';
  18586. function ToUnicode; external user32 name 'ToUnicode';
  18587. function OemKeyScan; external user32 name 'OemKeyScan';
  18588. function VkKeyScanA; external user32 name 'VkKeyScanA';
  18589. function VkKeyScanW; external user32 name 'VkKeyScanW';
  18590. function VkKeyScan; external user32 name 'VkKeyScan' + AWSuffix;
  18591. function VkKeyScanExA; external user32 name 'VkKeyScanExA';
  18592. function VkKeyScanExW; external user32 name 'VkKeyScanExW';
  18593. function VkKeyScanEx; external user32 name 'VkKeyScanEx' + AWSuffix;
  18594. procedure keybd_event; external user32 name 'keybd_event';
  18595. procedure mouse_event; external user32 name 'mouse_event';
  18596. function SendInput; external user32 name 'SendInput';
  18597. function GetLastInputInfo; external user32 name 'GetLastInputInfo';
  18598. function MapVirtualKeyA; external user32 name 'MapVirtualKeyA';
  18599. function MapVirtualKeyW; external user32 name 'MapVirtualKeyW';
  18600. function MapVirtualKey; external user32 name 'MapVirtualKey' + AWSuffix;
  18601. function MapVirtualKeyExA; external user32 name 'MapVirtualKeyExA';
  18602. function MapVirtualKeyExW; external user32 name 'MapVirtualKeyExW';
  18603. function MapVirtualKeyEx; external user32 name 'MapVirtualKeyEx' + AWSuffix;
  18604. function GetInputState; external user32 name 'GetInputState';
  18605. function GetQueueStatus; external user32 name 'GetQueueStatus';
  18606. function GetCapture; external user32 name 'GetCapture';
  18607. function SetCapture; external user32 name 'SetCapture';
  18608. function ReleaseCapture; external user32 name 'ReleaseCapture';
  18609. function MsgWaitForMultipleObjects; external user32 name 'MsgWaitForMultipleObjects';
  18610. function MsgWaitForMultipleObjectsEx; external user32 name 'MsgWaitForMultipleObjectsEx';
  18611. function SetTimer; external user32 name 'SetTimer';
  18612. function KillTimer; external user32 name 'KillTimer';
  18613. function IsWindowUnicode; external user32 name 'IsWindowUnicode';
  18614. function EnableWindow; external user32 name 'EnableWindow';
  18615. function IsWindowEnabled; external user32 name 'IsWindowEnabled';
  18616. function LoadAcceleratorsA; external user32 name 'LoadAcceleratorsA';
  18617. function LoadAcceleratorsW; external user32 name 'LoadAcceleratorsW';
  18618. function LoadAccelerators; external user32 name 'LoadAccelerators' + AWSuffix;
  18619. function CreateAcceleratorTableA; external user32 name 'CreateAcceleratorTableA';
  18620. function CreateAcceleratorTableW; external user32 name 'CreateAcceleratorTableW';
  18621. function CreateAcceleratorTable; external user32 name 'CreateAcceleratorTable' + AWSuffix;
  18622. function DestroyAcceleratorTable; external user32 name 'DestroyAcceleratorTable';
  18623. function CopyAcceleratorTableA; external user32 name 'CopyAcceleratorTableA';
  18624. function CopyAcceleratorTableW; external user32 name 'CopyAcceleratorTableW';
  18625. function CopyAcceleratorTable; external user32 name 'CopyAcceleratorTable' + AWSuffix;
  18626. function TranslateAcceleratorA; external user32 name 'TranslateAcceleratorA';
  18627. function TranslateAcceleratorW; external user32 name 'TranslateAcceleratorW';
  18628. function TranslateAccelerator; external user32 name 'TranslateAccelerator' + AWSuffix;
  18629. function GetSystemMetrics; external user32 name 'GetSystemMetrics';
  18630. function LoadMenuA; external user32 name 'LoadMenuAA';
  18631. function LoadMenuW; external user32 name 'LoadMenuWA';
  18632. function LoadMenu; external user32 name 'LoadMenu' + AWSuffix;
  18633. function LoadMenuIndirectA; external user32 name 'LoadMenuIndirectA';
  18634. function LoadMenuIndirectW; external user32 name 'LoadMenuIndirectW';
  18635. function LoadMenuIndirect; external user32 name 'LoadMenuIndirect' + AWSuffix;
  18636. function GetMenu; external user32 name 'GetMenu';
  18637. function SetMenu; external user32 name 'SetMenu';
  18638. function ChangeMenuA; external user32 name 'ChangeMenuA';
  18639. function ChangeMenuW; external user32 name 'ChangeMenuW';
  18640. function ChangeMenu; external user32 name 'ChangeMenu' + AWSuffix;
  18641. function HiliteMenuItem; external user32 name 'HiliteMenuItem';
  18642. function GetMenuStringA; external user32 name 'GetMenuStringA';
  18643. function GetMenuStringW; external user32 name 'GetMenuStringW';
  18644. function GetMenuString; external user32 name 'GetMenuString' + AWSuffix;
  18645. function GetMenuState; external user32 name 'GetMenuState';
  18646. function DrawMenuBar; external user32 name 'DrawMenuBar';
  18647. function GetSystemMenu; external user32 name 'GetSystemMenu';
  18648. function CreateMenu; external user32 name 'CreateMenu';
  18649. function CreatePopupMenu; external user32 name 'CreatePopupMenu';
  18650. function DestroyMenu; external user32 name 'DestroyMenu';
  18651. function CheckMenuItem; external user32 name 'CheckMenuItem';
  18652. function EnableMenuItem; external user32 name 'EnableMenuItem';
  18653. function GetSubMenu; external user32 name 'GetSubMenu';
  18654. function GetMenuItemID; external user32 name 'GetMenuItemID';
  18655. function GetMenuItemCount; external user32 name 'GetMenuItemCount';
  18656. function InsertMenuA; external user32 name 'InsertMenuA';
  18657. function InsertMenuW; external user32 name 'InsertMenuW';
  18658. function InsertMenu; external user32 name 'InsertMenu' + AWSuffix;
  18659. function AppendMenuA; external user32 name 'AppendMenuA';
  18660. function AppendMenuW; external user32 name 'AppendMenuW';
  18661. function AppendMenu; external user32 name 'AppendMenu' + AWSuffix;
  18662. function ModifyMenuA; external user32 name 'ModifyMenuA';
  18663. function ModifyMenuW; external user32 name 'ModifyMenuW';
  18664. function ModifyMenu; external user32 name 'ModifyMenu' + AWSuffix;
  18665. function RemoveMenu; external user32 name 'RemoveMenu';
  18666. function DeleteMenu; external user32 name 'DeleteMenu';
  18667. function SetMenuItemBitmaps; external user32 name 'SetMenuItemBitmaps';
  18668. function GetMenuCheckMarkDimensions; external user32 name 'GetMenuCheckMarkDimensions';
  18669. function TrackPopupMenu; external user32 name 'TrackPopupMenu';
  18670. function TrackPopupMenuEx; external user32 name 'TrackPopupMenuEx';
  18671. function GetMenuInfo; external user32 name 'GetMenuInfo';
  18672. function SetMenuInfo; external user32 name 'SetMenuInfo';
  18673. function EndMenu; external user32 name 'EndMenu';
  18674. function InsertMenuItemA; external user32 name 'InsertMenuItemA';
  18675. function InsertMenuItemW; external user32 name 'InsertMenuItemW';
  18676. function InsertMenuItem; external user32 name 'InsertMenuItem' + AWSuffix;
  18677. function GetMenuItemInfoA; external user32 name 'GetMenuItemInfoA';
  18678. function GetMenuItemInfoW; external user32 name 'GetMenuItemInfoW';
  18679. function GetMenuItemInfo; external user32 name 'GetMenuItemInfo' + AWSuffix;
  18680. function SetMenuItemInfoA; external user32 name 'SetMenuItemInfoA';
  18681. function SetMenuItemInfoW; external user32 name 'SetMenuItemInfoW';
  18682. function SetMenuItemInfo; external user32 name 'SetMenuItemInfo' + AWSuffix;
  18683. function GetMenuDefaultItem; external user32 name 'GetMenuDefaultItem';
  18684. function SetMenuDefaultItem; external user32 name 'SetMenuDefaultItem';
  18685. function GetMenuItemRect; external user32 name 'GetMenuItemRect';
  18686. function MenuItemFromPoint; external user32 name 'MenuItemFromPoint';
  18687. function DragObject; external user32 name 'DragObject';
  18688. function DragDetect; external user32 name 'DragDetect';
  18689. function DrawIcon; external user32 name 'DrawIcon';
  18690. function DrawTextA; external user32 name 'DrawTextA';
  18691. function DrawTextW; external user32 name 'DrawTextW';
  18692. function DrawText; external user32 name 'DrawText' + AWSuffix;
  18693. function DrawTextExA; external user32 name 'DrawTextExA';
  18694. function DrawTextExW; external user32 name 'DrawTextExW';
  18695. function DrawTextEx; external user32 name 'DrawTextEx' + AWSuffix;
  18696. function GrayStringA; external user32 name 'GrayStringA';
  18697. function GrayStringW; external user32 name 'GrayStringW';
  18698. function GrayString; external user32 name 'GrayString' + AWSuffix;
  18699. function DrawStateA; external user32 name 'DrawStateA';
  18700. function DrawStateW; external user32 name 'DrawStateW';
  18701. function DrawState; external user32 name 'DrawState' + AWSuffix;
  18702. function TabbedTextOutA; external user32 name 'TabbedTextOutA';
  18703. function TabbedTextOutW; external user32 name 'TabbedTextOutW';
  18704. function TabbedTextOut; external user32 name 'TabbedTextOut' + AWSuffix;
  18705. function GetTabbedTextExtentA; external user32 name 'GetTabbedTextExtentA';
  18706. function GetTabbedTextExtentW; external user32 name 'GetTabbedTextExtentW';
  18707. function GetTabbedTextExtent; external user32 name 'GetTabbedTextExtent' + AWSuffix;
  18708. function UpdateWindow; external user32 name 'UpdateWindow';
  18709. function SetActiveWindow; external user32 name 'SetActiveWindow';
  18710. function GetForegroundWindow; external user32 name 'GetForegroundWindow';
  18711. function PaintDesktop; external user32 name 'PaintDesktop';
  18712. procedure SwitchToThisWindow; external user32 name 'SwitchToThisWindow';
  18713. function SetForegroundWindow; external user32 name 'SetForegroundWindow';
  18714. function AllowSetForegroundWindow; external user32 name 'AllowSetForegroundWindow';
  18715. function LockSetForegroundWindow; external user32 name 'LockSetForegroundWindow';
  18716. function WindowFromDC; external user32 name 'WindowFromDC';
  18717. function GetDC; external user32 name 'GetDC';
  18718. function GetDCEx; external user32 name 'GetDCEx';
  18719. function GetWindowDC; external user32 name 'GetWindowDC';
  18720. function ReleaseDC; external user32 name 'ReleaseDC';
  18721. function BeginPaint; external user32 name 'BeginPaint';
  18722. function EndPaint; external user32 name 'EndPaint';
  18723. function GetUpdateRect; external user32 name 'GetUpdateRect';
  18724. function GetUpdateRgn; external user32 name 'GetUpdateRgn';
  18725. function SetWindowRgn; external user32 name 'SetWindowRgn';
  18726. function GetWindowRgn; external user32 name 'GetWindowRgn';
  18727. function GetWindowRgnBox; external user32 name 'GetWindowRgnBox';
  18728. function ExcludeUpdateRgn; external user32 name 'ExcludeUpdateRgn';
  18729. function InvalidateRect; external user32 name 'InvalidateRect';
  18730. function ValidateRect; external user32 name 'ValidateRect';
  18731. function InvalidateRgn; external user32 name 'InvalidateRgn';
  18732. function ValidateRgn; external user32 name 'ValidateRgn';
  18733. function RedrawWindow; external user32 name 'RedrawWindow';
  18734. function LockWindowUpdate; external user32 name 'LockWindowUpdate';
  18735. function ScrollWindow; external user32 name 'ScrollWindow';
  18736. function ScrollDC; external user32 name 'ScrollDC';
  18737. function ScrollWindowEx; external user32 name 'ScrollWindowEx';
  18738. function SetScrollPos; external user32 name 'SetScrollPos';
  18739. function GetScrollPos; external user32 name 'GetScrollPos';
  18740. function SetScrollRange; external user32 name 'SetScrollRange';
  18741. function GetScrollRange; external user32 name 'GetScrollRange';
  18742. function ShowScrollBar; external user32 name 'ShowScrollBar';
  18743. function EnableScrollBar; external user32 name 'EnableScrollBar';
  18744. function SetPropA; external user32 name 'SetPropA';
  18745. function SetPropW; external user32 name 'SetPropW';
  18746. function SetProp; external user32 name 'SetProp' + AWSuffix;
  18747. function GetPropA; external user32 name 'GetPropA';
  18748. function GetPropW; external user32 name 'GetPropW';
  18749. function GetProp; external user32 name 'GetProp' + AWSuffix;
  18750. function RemovePropA; external user32 name 'RemovePropA';
  18751. function RemovePropW; external user32 name 'RemovePropW';
  18752. function RemoveProp; external user32 name 'RemoveProp' + AWSuffix;
  18753. function EnumPropsExA; external user32 name 'EnumPropsExA';
  18754. function EnumPropsExW; external user32 name 'EnumPropsExW';
  18755. function EnumPropsEx; external user32 name 'EnumPropsEx' + AWSuffix;
  18756. function EnumPropsA; external user32 name 'EnumPropsA';
  18757. function EnumPropsW; external user32 name 'EnumPropsW';
  18758. function EnumProps; external user32 name 'EnumProps' + AWSuffix;
  18759. function SetWindowTextA; external user32 name 'SetWindowTextA';
  18760. function SetWindowTextW; external user32 name 'SetWindowTextW';
  18761. function SetWindowText; external user32 name 'SetWindowText' + AWSuffix;
  18762. function GetWindowTextA; external user32 name 'GetWindowTextA';
  18763. function GetWindowTextW; external user32 name 'GetWindowTextW';
  18764. function GetWindowText; external user32 name 'GetWindowText' + AWSuffix;
  18765. function GetWindowTextLengthA; external user32 name 'GetWindowTextLengthA';
  18766. function GetWindowTextLengthW; external user32 name 'GetWindowTextLengthW';
  18767. function GetWindowTextLength; external user32 name 'GetWindowTextLength' + AWSuffix;
  18768. function GetClientRect; external user32 name 'GetClientRect';
  18769. function GetWindowRect; external user32 name 'GetWindowRect';
  18770. function AdjustWindowRect; external user32 name 'AdjustWindowRect';
  18771. function AdjustWindowRectEx; external user32 name 'AdjustWindowRectEx';
  18772. function SetWindowContextHelpId; external user32 name 'SetWindowContextHelpId';
  18773. function GetWindowContextHelpId; external user32 name 'GetWindowContextHelpId';
  18774. function SetMenuContextHelpId; external user32 name 'SetMenuContextHelpId';
  18775. function GetMenuContextHelpId; external user32 name 'GetMenuContextHelpId';
  18776. function MessageBoxA; external user32 name 'MessageBoxA';
  18777. function MessageBoxW; external user32 name 'MessageBoxW';
  18778. function MessageBox; external user32 name 'MessageBox' + AWSuffix;
  18779. function MessageBoxExA; external user32 name 'MessageBoxExA';
  18780. function MessageBoxExW; external user32 name 'MessageBoxExW';
  18781. function MessageBoxEx; external user32 name 'MessageBoxEx' + AWSuffix;
  18782. function MessageBoxIndirectA; external user32 name 'MessageBoxIndirectA';
  18783. function MessageBoxIndirectW; external user32 name 'MessageBoxIndirectW';
  18784. function MessageBoxIndirect; external user32 name 'MessageBoxIndirect' + AWSuffix;
  18785. function MessageBeep; external user32 name 'MessageBeep';
  18786. function ShowCursor; external user32 name 'ShowCursor';
  18787. function SetCursorPos; external user32 name 'SetCursorPos';
  18788. function SetCursor; external user32 name 'SetCursor';
  18789. function GetCursorPos; external user32 name 'GetCursorPos';
  18790. function ClipCursor; external user32 name 'ClipCursor';
  18791. function GetClipCursor; external user32 name 'GetClipCursor';
  18792. function GetCursor; external user32 name 'GetCursor';
  18793. function CreateCaret; external user32 name 'CreateCaret';
  18794. function GetCaretBlinkTime; external user32 name 'GetCaretBlinkTime';
  18795. function SetCaretBlinkTime; external user32 name 'SetCaretBlinkTime';
  18796. function DestroyCaret; external user32 name 'DestroyCaret';
  18797. function HideCaret; external user32 name 'HideCaret';
  18798. function ShowCaret; external user32 name 'ShowCaret';
  18799. function SetCaretPos; external user32 name 'SetCaretPos';
  18800. function GetCaretPos; external user32 name 'GetCaretPos';
  18801. function ClientToScreen; external user32 name 'ClientToScreen';
  18802. function ScreenToClient; external user32 name 'ScreenToClient';
  18803. function MapWindowPoints; external user32 name 'MapWindowPoints';
  18804. function WindowFromPoint; external user32 name 'WindowFromPoint';
  18805. function ChildWindowFromPoint; external user32 name 'ChildWindowFromPoint';
  18806. function ChildWindowFromPointEx; external user32 name 'ChildWindowFromPointEx';
  18807. function GetSysColor; external user32 name 'GetSysColor';
  18808. function GetSysColorBrush; external user32 name 'GetSysColorBrush';
  18809. function SetSysColors; external user32 name 'SetSysColors';
  18810. function DrawFocusRect; external user32 name 'DrawFocusRect';
  18811. function FillRect; external user32 name 'FillRect';
  18812. function FrameRect; external user32 name 'FrameRect';
  18813. function InvertRect; external user32 name 'InvertRect';
  18814. function SetRect; external user32 name 'SetRect';
  18815. function SetRectEmpty; external user32 name 'SetRectEmpty';
  18816. function CopyRect; external user32 name 'CopyRect';
  18817. function InflateRect; external user32 name 'InflateRect';
  18818. function IntersectRect; external user32 name 'IntersectRect';
  18819. function UnionRect; external user32 name 'UnionRect';
  18820. function SubtractRect; external user32 name 'SubtractRect';
  18821. function OffsetRect; external user32 name 'OffsetRect';
  18822. function IsRectEmpty; external user32 name 'IsRectEmpty';
  18823. function EqualRect; external user32 name 'EqualRect';
  18824. function PtInRect; external user32 name 'PtInRect';
  18825. function GetWindowWord; external user32 name 'GetWindowWord';
  18826. function SetWindowWord; external user32 name 'SetWindowWord';
  18827. function GetWindowLongA; external user32 name 'GetWindowLongA';
  18828. function GetWindowLongW; external user32 name 'GetWindowLongW';
  18829. function GetWindowLong; external user32 name 'GetWindowLong' + AWSuffix;
  18830. function SetWindowLongA; external user32 name 'SetWindowLongA';
  18831. function SetWindowLongW; external user32 name 'SetWindowLongW';
  18832. function SetWindowLong; external user32 name 'SetWindowLong' + AWSuffix;
  18833. function GetClassWord; external user32 name 'GetClassWord';
  18834. function SetClassWord; external user32 name 'SetClassWord';
  18835. function GetClassLongA; external user32 name 'GetClassLongA';
  18836. function GetClassLongW; external user32 name 'GetClassLongW';
  18837. function GetClassLong; external user32 name 'GetClassLong' + AWSuffix;
  18838. function SetClassLongA; external user32 name 'SetClassLongA';
  18839. function SetClassLongW; external user32 name 'SetClassLongW';
  18840. function SetClassLong; external user32 name 'SetClassLong' + AWSuffix;
  18841. function GetProcessDefaultLayout; external user32 name 'GetProcessDefaultLayout';
  18842. function SetProcessDefaultLayout; external user32 name 'SetProcessDefaultLayout';
  18843. function GetDesktopWindow; external user32 name 'GetDesktopWindow';
  18844. function GetParent; external user32 name 'GetParent';
  18845. function SetParent; external user32 name 'SetParent';
  18846. function EnumChildWindows; external user32 name 'EnumChildWindows';
  18847. function FindWindowA; external user32 name 'FindWindowA';
  18848. function FindWindowW; external user32 name 'FindWindowW';
  18849. function FindWindow; external user32 name 'FindWindow' + AWSuffix;
  18850. function FindWindowExA; external user32 name 'FindWindowExA';
  18851. function FindWindowExW; external user32 name 'FindWindowExW';
  18852. function FindWindowEx; external user32 name 'FindWindowEx' + AWSuffix;
  18853. function GetShellWindow; external user32 name 'GetShellWindow';
  18854. function RegisterShellHookWindow; external user32 name 'RegisterShellHookWindow';
  18855. function DeregisterShellHookWindow; external user32 name 'DeregisterShellHookWindow';
  18856. function EnumWindows; external user32 name 'EnumWindows';
  18857. function EnumThreadWindows; external user32 name 'EnumThreadWindows';
  18858. function GetClassNameA; external user32 name 'GetClassNameA';
  18859. function GetClassNameW; external user32 name 'GetClassNameW';
  18860. function GetClassName; external user32 name 'GetClassName' + AWSuffix;
  18861. function GetTopWindow; external user32 name 'GetTopWindow';
  18862. function GetWindowThreadProcessId; external user32 name 'GetWindowThreadProcessId';
  18863. function IsGUIThread; external user32 name 'IsGUIThread';
  18864. function GetLastActivePopup; external user32 name 'GetLastActivePopup';
  18865. function GetWindow; external user32 name 'GetWindow';
  18866. function SetWindowsHookA; external user32 name 'SetWindowsHookA';
  18867. function SetWindowsHookW; external user32 name 'SetWindowsHookW';
  18868. function SetWindowsHook; external user32 name 'SetWindowsHook' + AWSuffix;
  18869. function UnhookWindowsHook; external user32 name 'UnhookWindowsHook';
  18870. function SetWindowsHookExA; external user32 name 'SetWindowsHookExA';
  18871. function SetWindowsHookExW; external user32 name 'SetWindowsHookExW';
  18872. function SetWindowsHookEx; external user32 name 'SetWindowsHookEx' + AWSuffix;
  18873. function UnhookWindowsHookEx; external user32 name 'UnhookWindowsHookEx';
  18874. function CallNextHookEx; external user32 name 'CallNextHookEx';
  18875. function CheckMenuRadioItem; external user32 name 'CheckMenuRadioItem';
  18876. function LoadBitmapA; external user32 name 'LoadBitmapA';
  18877. function LoadBitmapW; external user32 name 'LoadBitmapW';
  18878. function LoadBitmap; external user32 name 'LoadBitmap' + AWSuffix;
  18879. function LoadCursorA; external user32 name 'LoadCursorA';
  18880. function LoadCursorW; external user32 name 'LoadCursorW';
  18881. function LoadCursor; external user32 name 'LoadCursor' + AWSuffix;
  18882. function LoadCursorFromFileA; external user32 name 'LoadCursorFromFileA';
  18883. function LoadCursorFromFileW; external user32 name 'LoadCursorFromFileW';
  18884. function LoadCursorFromFile; external user32 name 'LoadCursorFromFile' + AWSuffix;
  18885. function CreateCursor; external user32 name 'CreateCursor';
  18886. function DestroyCursor; external user32 name 'DestroyCursor';
  18887. function SetSystemCursor; external user32 name 'SetSystemCursor';
  18888. function LoadIconA; external user32 name 'LoadIconA';
  18889. function LoadIconW; external user32 name 'LoadIconW';
  18890. function LoadIcon; external user32 name 'LoadIcon' + AWSuffix;
  18891. function PrivateExtractIconsA; external user32 name 'PrivateExtractIconsA';
  18892. function PrivateExtractIconsW; external user32 name 'PrivateExtractIconsW';
  18893. function PrivateExtractIcons; external user32 name 'PrivateExtractIcons' + AWSuffix;
  18894. function CreateIcon; external user32 name 'CreateIcon';
  18895. function DestroyIcon; external user32 name 'DestroyIcon';
  18896. function LookupIconIdFromDirectory; external user32 name 'LookupIconIdFromDirectory';
  18897. function LookupIconIdFromDirectoryEx; external user32 name 'LookupIconIdFromDirectoryEx';
  18898. function CreateIconFromResource; external user32 name 'CreateIconFromResource';
  18899. function CreateIconFromResourceEx; external user32 name 'CreateIconFromResourceEx';
  18900. function LoadImageA; external user32 name 'LoadImageA';
  18901. function LoadImageW; external user32 name 'LoadImageW';
  18902. function LoadImage; external user32 name 'LoadImage' + AWSuffix;
  18903. function CopyImage; external user32 name 'CopyImage';
  18904. function DrawIconEx; external user32 name 'DrawIconEx';
  18905. function CreateIconIndirect; external user32 name 'CreateIconIndirect';
  18906. function CopyIcon; external user32 name 'CopyIcon';
  18907. function GetIconInfo; external user32 name 'GetIconInfo';
  18908. function LoadStringA; external user32 name 'LoadStringA';
  18909. function LoadStringW; external user32 name 'LoadStringW';
  18910. function LoadString; external user32 name 'LoadString' + AWSuffix;
  18911. function IsDialogMessageA; external user32 name 'IsDialogMessageA';
  18912. function IsDialogMessageW; external user32 name 'IsDialogMessageW';
  18913. function IsDialogMessage; external user32 name 'IsDialogMessage' + AWSuffix;
  18914. function MapDialogRect; external user32 name 'MapDialogRect';
  18915. function DlgDirListA; external user32 name 'DlgDirListA';
  18916. function DlgDirListW; external user32 name 'DlgDirListW';
  18917. function DlgDirList; external user32 name 'DlgDirList' + AWSuffix;
  18918. function DlgDirSelectExA; external user32 name 'DlgDirSelectExA';
  18919. function DlgDirSelectExW; external user32 name 'DlgDirSelectExW';
  18920. function DlgDirSelectEx; external user32 name 'DlgDirSelectEx' + AWSuffix;
  18921. function DlgDirListComboBoxA; external user32 name 'DlgDirListComboBoxA';
  18922. function DlgDirListComboBoxW; external user32 name 'DlgDirListComboBoxW';
  18923. function DlgDirListComboBox; external user32 name 'DlgDirListComboBox' + AWSuffix;
  18924. function DlgDirSelectComboBoxExA; external user32 name 'DlgDirSelectComboBoxExA';
  18925. function DlgDirSelectComboBoxExW; external user32 name 'DlgDirSelectComboBoxExW';
  18926. function DlgDirSelectComboBoxEx; external user32 name 'DlgDirSelectComboBoxEx' + AWSuffix;
  18927. function SetScrollInfo; external user32 name 'SetScrollInfo';
  18928. function GetScrollInfo; external user32 name 'GetScrollInfo';
  18929. function DefFrameProcA; external user32 name 'DefFrameProcA';
  18930. function DefFrameProcW; external user32 name 'DefFrameProcW';
  18931. function DefFrameProc; external user32 name 'DefFrameProc' + AWSuffix;
  18932. function DefMDIChildProcA; external user32 name 'DefMDIChildProcA';
  18933. function DefMDIChildProcW; external user32 name 'DefMDIChildProcW';
  18934. function DefMDIChildProc; external user32 name 'DefMDIChildProc' + AWSuffix;
  18935. function TranslateMDISysAccel; external user32 name 'TranslateMDISysAccel';
  18936. function ArrangeIconicWindows; external user32 name 'ArrangeIconicWindows';
  18937. function CreateMDIWindowA; external user32 name 'CreateMDIWindowA';
  18938. function CreateMDIWindowW; external user32 name 'CreateMDIWindowW';
  18939. function CreateMDIWindow; external user32 name 'CreateMDIWindow' + AWSuffix;
  18940. function TileWindows; external user32 name 'TileWindows';
  18941. function CascadeWindows; external user32 name 'CascadeWindows';
  18942. function WinHelpA; external user32 name 'WinHelpA';
  18943. function WinHelpW; external user32 name 'WinHelpW';
  18944. function WinHelp; external user32 name 'WinHelp' + AWSuffix;
  18945. function GetGuiResources; external user32 name 'GetGuiResources';
  18946. function ChangeDisplaySettingsA; external user32 name 'ChangeDisplaySettingsA';
  18947. function ChangeDisplaySettingsW; external user32 name 'ChangeDisplaySettingsW';
  18948. function ChangeDisplaySettings; external user32 name 'ChangeDisplaySettings' + AWSuffix;
  18949. function ChangeDisplaySettingsExA; external user32 name 'ChangeDisplaySettingsExA';
  18950. function ChangeDisplaySettingsExW; external user32 name 'ChangeDisplaySettingsExW';
  18951. function ChangeDisplaySettingsEx; external user32 name 'ChangeDisplaySettingsEx' + AWSuffix;
  18952. function EnumDisplaySettingsA; external user32 name 'EnumDisplaySettingsA';
  18953. function EnumDisplaySettingsW; external user32 name 'EnumDisplaySettingsW';
  18954. function EnumDisplaySettings; external user32 name 'EnumDisplaySettings' + AWSuffix;
  18955. function EnumDisplaySettingsExA; external user32 name 'EnumDisplaySettingsExA';
  18956. function EnumDisplaySettingsExW; external user32 name 'EnumDisplaySettingsExW';
  18957. function EnumDisplaySettingsEx; external user32 name 'EnumDisplaySettingsEx' + AWSuffix;
  18958. function EnumDisplayDevicesA; external user32 name 'EnumDisplayDevicesA';
  18959. function EnumDisplayDevicesW; external user32 name 'EnumDisplayDevicesW';
  18960. function EnumDisplayDevices; external user32 name 'EnumDisplayDevices' + AWSuffix;
  18961. function SystemParametersInfoA; external user32 name 'SystemParametersInfoA';
  18962. function SystemParametersInfoW; external user32 name 'SystemParametersInfoW';
  18963. function SystemParametersInfo; external user32 name 'SystemParametersInfo' + AWSuffix;
  18964. procedure SetDebugErrorLevel; external user32 name 'SetDebugErrorLevel';
  18965. procedure SetLastErrorEx; external user32 name 'SetLastErrorEx';
  18966. function InternalGetWindowText; external user32 name 'InternalGetWindowText';
  18967. function EndTask; external user32 name 'EndTask';
  18968. function MonitorFromPoint; external user32 name 'MonitorFromPoint';
  18969. function MonitorFromRect; external user32 name 'MonitorFromRect';
  18970. function MonitorFromWindow; external user32 name 'MonitorFromWindow';
  18971. function GetMonitorInfoA; external user32 name 'GetMonitorInfoA';
  18972. function GetMonitorInfoW; external user32 name 'GetMonitorInfoW';
  18973. function GetMonitorInfo; external user32 name 'GetMonitorInfo' + AWSuffix;
  18974. function EnumDisplayMonitors; external user32 name 'EnumDisplayMonitors';
  18975. procedure NotifyWinEvent; external user32 name 'NotifyWinEvent';
  18976. function SetWinEventHook; external user32 name 'SetWinEventHook';
  18977. function IsWinEventHookInstalled; external user32 name 'IsWinEventHookInstalled';
  18978. function UnhookWinEvent; external user32 name 'UnhookWinEvent';
  18979. function GetGUIThreadInfo; external user32 name 'GetGUIThreadInfo';
  18980. function GetWindowModuleFileNameA; external user32 name 'GetWindowModuleFileNameA';
  18981. function GetWindowModuleFileNameW; external user32 name 'GetWindowModuleFileNameW';
  18982. function GetWindowModuleFileName; external user32 name 'GetWindowModuleFileName' + AWSuffix;
  18983. function GetCursorInfo; external user32 name 'GetCursorInfo';
  18984. function GetWindowInfo; external user32 name 'GetWindowInfo';
  18985. function GetTitleBarInfo; external user32 name 'GetTitleBarInfo';
  18986. function GetMenuBarInfo; external user32 name 'GetMenuBarInfo';
  18987. function GetScrollBarInfo; external user32 name 'GetScrollBarInfo';
  18988. function GetComboBoxInfo; external user32 name 'GetComboBoxInfo';
  18989. function GetAncestor; external user32 name 'GetAncestor';
  18990. function RealChildWindowFromPoint; external user32 name 'RealChildWindowFromPoint';
  18991. function RealGetWindowClassA; external user32 name 'RealGetWindowClassA';
  18992. function RealGetWindowClassW; external user32 name 'RealGetWindowClassW';
  18993. function RealGetWindowClass; external user32 name 'RealGetWindowClass' + AWSuffix;
  18994. function GetAltTabInfoA; external user32 name 'GetAltTabInfoA';
  18995. function GetAltTabInfoW; external user32 name 'GetAltTabInfoW';
  18996. function GetAltTabInfo; external user32 name 'GetAltTabInfo' + AWSuffix;
  18997. function GetListBoxInfo; external user32 name 'GetListBoxInfo';
  18998. function LockWorkStation; external user32 name 'LockWorkStation';
  18999. function UserHandleGrantAccess; external user32 name 'UserHandleGrantAccess';
  19000. function GetRawInputData; external user32 name 'GetRawInputData';
  19001. function GetRawInputDeviceInfoA; external user32 name 'GetRawInputDeviceInfoA';
  19002. function GetRawInputDeviceInfoW; external user32 name 'GetRawInputDeviceInfoW';
  19003. function GetRawInputDeviceInfo; external user32 name 'GetRawInputDeviceInfo' + AWSuffix;
  19004. function GetRawInputBuffer; external user32 name 'GetRawInputBuffer';
  19005. function RegisterRawInputDevices; external user32 name 'RegisterRawInputDevices';
  19006. function GetRegisteredRawInputDevices; external user32 name 'GetRegisteredRawInputDevices';
  19007. function GetRawInputDeviceList; external user32 name 'GetRawInputDeviceList';
  19008. function DefRawInputProc; external user32 name 'DefRawInputProc';
  19009. {$ENDIF DYNAMIC_LINK}
  19010. end.