123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838 |
- /****************************************************************************
- * *
- * winuser.h -- USER procedure declarations, constant definitions and macros *
- * *
- * Copyright (c) Microsoft Corporation. All rights reserved. *
- * *
- ****************************************************************************/
- #ifndef _WINUSER_
- #define _WINUSER_
- //
- // Define API decoration for direct importing of DLL references.
- //
- #if !defined(_USER32_)
- #define WINUSERAPI DECLSPEC_IMPORT
- #else
- #define WINUSERAPI
- #endif
- #ifdef _MAC
- #include <macwin32.h>
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- #ifndef WINVER
- #define WINVER 0x0500 /* version 5.0 */
- #endif /* !WINVER */
- #include <stdarg.h>
- #ifndef NOUSER
- typedef HANDLE HDWP;
- typedef VOID MENUTEMPLATEA;
- typedef VOID MENUTEMPLATEW;
- #ifdef UNICODE
- typedef MENUTEMPLATEW MENUTEMPLATE;
- #else
- typedef MENUTEMPLATEA MENUTEMPLATE;
- #endif // UNICODE
- typedef PVOID LPMENUTEMPLATEA;
- typedef PVOID LPMENUTEMPLATEW;
- #ifdef UNICODE
- typedef LPMENUTEMPLATEW LPMENUTEMPLATE;
- #else
- typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
- #endif // UNICODE
- typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
- #ifdef STRICT
- typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
- typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD);
- typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
- typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
- typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
- typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT);
- typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE);
- typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE);
- typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR);
- typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR);
- typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code);
- typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code);
- #if(WINVER >= 0x0400)
- typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
- #endif /* WINVER >= 0x0400 */
- #else /* !STRICT */
- typedef FARPROC DLGPROC;
- typedef FARPROC TIMERPROC;
- typedef FARPROC GRAYSTRINGPROC;
- typedef FARPROC WNDENUMPROC;
- typedef FARPROC HOOKPROC;
- typedef FARPROC SENDASYNCPROC;
- typedef FARPROC EDITWORDBREAKPROCA;
- typedef FARPROC EDITWORDBREAKPROCW;
- typedef FARPROC PROPENUMPROCA;
- typedef FARPROC PROPENUMPROCW;
- typedef FARPROC PROPENUMPROCEXA;
- typedef FARPROC PROPENUMPROCEXW;
- #if(WINVER >= 0x0400)
- typedef FARPROC DRAWSTATEPROC;
- #endif /* WINVER >= 0x0400 */
- #endif /* !STRICT */
- #ifdef UNICODE
- typedef PROPENUMPROCW PROPENUMPROC;
- typedef PROPENUMPROCEXW PROPENUMPROCEX;
- typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC;
- #else /* !UNICODE */
- typedef PROPENUMPROCA PROPENUMPROC;
- typedef PROPENUMPROCEXA PROPENUMPROCEX;
- typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
- #endif /* UNICODE */
- #ifdef STRICT
- typedef BOOL (CALLBACK* NAMEENUMPROCA)(LPSTR, LPARAM);
- typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM);
- typedef NAMEENUMPROCA WINSTAENUMPROCA;
- typedef NAMEENUMPROCA DESKTOPENUMPROCA;
- typedef NAMEENUMPROCW WINSTAENUMPROCW;
- typedef NAMEENUMPROCW DESKTOPENUMPROCW;
- #else /* !STRICT */
- typedef FARPROC NAMEENUMPROCA;
- typedef FARPROC NAMEENUMPROCW;
- typedef FARPROC WINSTAENUMPROCA;
- typedef FARPROC DESKTOPENUMPROCA;
- typedef FARPROC WINSTAENUMPROCW;
- typedef FARPROC DESKTOPENUMPROCW;
- #endif /* !STRICT */
- #ifdef UNICODE
- typedef WINSTAENUMPROCW WINSTAENUMPROC;
- typedef DESKTOPENUMPROCW DESKTOPENUMPROC;
- #else /* !UNICODE */
- typedef WINSTAENUMPROCA WINSTAENUMPROC;
- typedef DESKTOPENUMPROCA DESKTOPENUMPROC;
- #endif /* UNICODE */
- #define IS_INTRESOURCE(_r) (((ULONG_PTR)(_r) >> 16) == 0)
- #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
- #define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
- #ifdef UNICODE
- #define MAKEINTRESOURCE MAKEINTRESOURCEW
- #else
- #define MAKEINTRESOURCE MAKEINTRESOURCEA
- #endif // !UNICODE
- #ifndef NORESOURCE
- /*
- * Predefined Resource Types
- */
- #define RT_CURSOR MAKEINTRESOURCE(1)
- #define RT_BITMAP MAKEINTRESOURCE(2)
- #define RT_ICON MAKEINTRESOURCE(3)
- #define RT_MENU MAKEINTRESOURCE(4)
- #define RT_DIALOG MAKEINTRESOURCE(5)
- #define RT_STRING MAKEINTRESOURCE(6)
- #define RT_FONTDIR MAKEINTRESOURCE(7)
- #define RT_FONT MAKEINTRESOURCE(8)
- #define RT_ACCELERATOR MAKEINTRESOURCE(9)
- #define RT_RCDATA MAKEINTRESOURCE(10)
- #define RT_MESSAGETABLE MAKEINTRESOURCE(11)
- #define DIFFERENCE 11
- #define RT_GROUP_CURSOR MAKEINTRESOURCE((ULONG_PTR)RT_CURSOR + DIFFERENCE)
- #define RT_GROUP_ICON MAKEINTRESOURCE((ULONG_PTR)RT_ICON + DIFFERENCE)
- #define RT_VERSION MAKEINTRESOURCE(16)
- #define RT_DLGINCLUDE MAKEINTRESOURCE(17)
- #if(WINVER >= 0x0400)
- #define RT_PLUGPLAY MAKEINTRESOURCE(19)
- #define RT_VXD MAKEINTRESOURCE(20)
- #define RT_ANICURSOR MAKEINTRESOURCE(21)
- #define RT_ANIICON MAKEINTRESOURCE(22)
- #endif /* WINVER >= 0x0400 */
- #define RT_HTML MAKEINTRESOURCE(23)
- #ifdef RC_INVOKED
- #define RT_MANIFEST 24
- #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
- #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
- #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
- #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1 /* inclusive */
- #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16 /* inclusive */
- #else /* RC_INVOKED */
- #define RT_MANIFEST MAKEINTRESOURCE(24)
- #define CREATEPROCESS_MANIFEST_RESOURCE_ID MAKEINTRESOURCE( 1)
- #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2)
- #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3)
- #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE( 1 /*inclusive*/)
- #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16 /*inclusive*/)
- #endif /* RC_INVOKED */
- #endif /* !NORESOURCE */
- WINUSERAPI
- int
- WINAPI
- wvsprintfA(
- OUT LPSTR,
- IN LPCSTR,
- IN va_list arglist);
- WINUSERAPI
- int
- WINAPI
- wvsprintfW(
- OUT LPWSTR,
- IN LPCWSTR,
- IN va_list arglist);
- #ifdef UNICODE
- #define wvsprintf wvsprintfW
- #else
- #define wvsprintf wvsprintfA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPIV
- wsprintfA(
- OUT LPSTR,
- IN LPCSTR,
- ...);
- WINUSERAPI
- int
- WINAPIV
- wsprintfW(
- OUT LPWSTR,
- IN LPCWSTR,
- ...);
- #ifdef UNICODE
- #define wsprintf wsprintfW
- #else
- #define wsprintf wsprintfA
- #endif // !UNICODE
- /*
- * SPI_SETDESKWALLPAPER defined constants
- */
- #define SETWALLPAPER_DEFAULT ((LPWSTR)-1)
- #ifndef NOSCROLL
- /*
- * Scroll Bar Constants
- */
- #define SB_HORZ 0
- #define SB_VERT 1
- #define SB_CTL 2
- #define SB_BOTH 3
- /*
- * Scroll Bar Commands
- */
- #define SB_LINEUP 0
- #define SB_LINELEFT 0
- #define SB_LINEDOWN 1
- #define SB_LINERIGHT 1
- #define SB_PAGEUP 2
- #define SB_PAGELEFT 2
- #define SB_PAGEDOWN 3
- #define SB_PAGERIGHT 3
- #define SB_THUMBPOSITION 4
- #define SB_THUMBTRACK 5
- #define SB_TOP 6
- #define SB_LEFT 6
- #define SB_BOTTOM 7
- #define SB_RIGHT 7
- #define SB_ENDSCROLL 8
- #endif /* !NOSCROLL */
- #ifndef NOSHOWWINDOW
- /*
- * ShowWindow() Commands
- */
- #define SW_HIDE 0
- #define SW_SHOWNORMAL 1
- #define SW_NORMAL 1
- #define SW_SHOWMINIMIZED 2
- #define SW_SHOWMAXIMIZED 3
- #define SW_MAXIMIZE 3
- #define SW_SHOWNOACTIVATE 4
- #define SW_SHOW 5
- #define SW_MINIMIZE 6
- #define SW_SHOWMINNOACTIVE 7
- #define SW_SHOWNA 8
- #define SW_RESTORE 9
- #define SW_SHOWDEFAULT 10
- #define SW_FORCEMINIMIZE 11
- #define SW_MAX 11
- /*
- * Old ShowWindow() Commands
- */
- #define HIDE_WINDOW 0
- #define SHOW_OPENWINDOW 1
- #define SHOW_ICONWINDOW 2
- #define SHOW_FULLSCREEN 3
- #define SHOW_OPENNOACTIVATE 4
- /*
- * Identifiers for the WM_SHOWWINDOW message
- */
- #define SW_PARENTCLOSING 1
- #define SW_OTHERZOOM 2
- #define SW_PARENTOPENING 3
- #define SW_OTHERUNZOOM 4
- #endif /* !NOSHOWWINDOW */
- #if(WINVER >= 0x0500)
- /*
- * AnimateWindow() Commands
- */
- #define AW_HOR_POSITIVE 0x00000001
- #define AW_HOR_NEGATIVE 0x00000002
- #define AW_VER_POSITIVE 0x00000004
- #define AW_VER_NEGATIVE 0x00000008
- #define AW_CENTER 0x00000010
- #define AW_HIDE 0x00010000
- #define AW_ACTIVATE 0x00020000
- #define AW_SLIDE 0x00040000
- #define AW_BLEND 0x00080000
- #endif /* WINVER >= 0x0500 */
- /*
- * WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
- */
- #define KF_EXTENDED 0x0100
- #define KF_DLGMODE 0x0800
- #define KF_MENUMODE 0x1000
- #define KF_ALTDOWN 0x2000
- #define KF_REPEAT 0x4000
- #define KF_UP 0x8000
- #ifndef NOVIRTUALKEYCODES
- /*
- * Virtual Keys, Standard Set
- */
- #define VK_LBUTTON 0x01
- #define VK_RBUTTON 0x02
- #define VK_CANCEL 0x03
- #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */
- #if(_WIN32_WINNT >= 0x0500)
- #define VK_XBUTTON1 0x05 /* NOT contiguous with L & RBUTTON */
- #define VK_XBUTTON2 0x06 /* NOT contiguous with L & RBUTTON */
- #endif /* _WIN32_WINNT >= 0x0500 */
- /*
- * 0x07 : unassigned
- */
- #define VK_BACK 0x08
- #define VK_TAB 0x09
- /*
- * 0x0A - 0x0B : reserved
- */
- #define VK_CLEAR 0x0C
- #define VK_RETURN 0x0D
- #define VK_SHIFT 0x10
- #define VK_CONTROL 0x11
- #define VK_MENU 0x12
- #define VK_PAUSE 0x13
- #define VK_CAPITAL 0x14
- #define VK_KANA 0x15
- #define VK_HANGEUL 0x15 /* old name - should be here for compatibility */
- #define VK_HANGUL 0x15
- #define VK_JUNJA 0x17
- #define VK_FINAL 0x18
- #define VK_HANJA 0x19
- #define VK_KANJI 0x19
- #define VK_ESCAPE 0x1B
- #define VK_CONVERT 0x1C
- #define VK_NONCONVERT 0x1D
- #define VK_ACCEPT 0x1E
- #define VK_MODECHANGE 0x1F
- #define VK_SPACE 0x20
- #define VK_PRIOR 0x21
- #define VK_NEXT 0x22
- #define VK_END 0x23
- #define VK_HOME 0x24
- #define VK_LEFT 0x25
- #define VK_UP 0x26
- #define VK_RIGHT 0x27
- #define VK_DOWN 0x28
- #define VK_SELECT 0x29
- #define VK_PRINT 0x2A
- #define VK_EXECUTE 0x2B
- #define VK_SNAPSHOT 0x2C
- #define VK_INSERT 0x2D
- #define VK_DELETE 0x2E
- #define VK_HELP 0x2F
- /*
- * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
- * 0x40 : unassigned
- * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
- */
- #define VK_LWIN 0x5B
- #define VK_RWIN 0x5C
- #define VK_APPS 0x5D
- /*
- * 0x5E : reserved
- */
- #define VK_SLEEP 0x5F
- #define VK_NUMPAD0 0x60
- #define VK_NUMPAD1 0x61
- #define VK_NUMPAD2 0x62
- #define VK_NUMPAD3 0x63
- #define VK_NUMPAD4 0x64
- #define VK_NUMPAD5 0x65
- #define VK_NUMPAD6 0x66
- #define VK_NUMPAD7 0x67
- #define VK_NUMPAD8 0x68
- #define VK_NUMPAD9 0x69
- #define VK_MULTIPLY 0x6A
- #define VK_ADD 0x6B
- #define VK_SEPARATOR 0x6C
- #define VK_SUBTRACT 0x6D
- #define VK_DECIMAL 0x6E
- #define VK_DIVIDE 0x6F
- #define VK_F1 0x70
- #define VK_F2 0x71
- #define VK_F3 0x72
- #define VK_F4 0x73
- #define VK_F5 0x74
- #define VK_F6 0x75
- #define VK_F7 0x76
- #define VK_F8 0x77
- #define VK_F9 0x78
- #define VK_F10 0x79
- #define VK_F11 0x7A
- #define VK_F12 0x7B
- #define VK_F13 0x7C
- #define VK_F14 0x7D
- #define VK_F15 0x7E
- #define VK_F16 0x7F
- #define VK_F17 0x80
- #define VK_F18 0x81
- #define VK_F19 0x82
- #define VK_F20 0x83
- #define VK_F21 0x84
- #define VK_F22 0x85
- #define VK_F23 0x86
- #define VK_F24 0x87
- /*
- * 0x88 - 0x8F : unassigned
- */
- #define VK_NUMLOCK 0x90
- #define VK_SCROLL 0x91
- /*
- * NEC PC-9800 kbd definitions
- */
- #define VK_OEM_NEC_EQUAL 0x92 // '=' key on numpad
- /*
- * Fujitsu/OASYS kbd definitions
- */
- #define VK_OEM_FJ_JISHO 0x92 // 'Dictionary' key
- #define VK_OEM_FJ_MASSHOU 0x93 // 'Unregister word' key
- #define VK_OEM_FJ_TOUROKU 0x94 // 'Register word' key
- #define VK_OEM_FJ_LOYA 0x95 // 'Left OYAYUBI' key
- #define VK_OEM_FJ_ROYA 0x96 // 'Right OYAYUBI' key
- /*
- * 0x97 - 0x9F : unassigned
- */
- /*
- * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
- * Used only as parameters to GetAsyncKeyState() and GetKeyState().
- * No other API or message will distinguish left and right keys in this way.
- */
- #define VK_LSHIFT 0xA0
- #define VK_RSHIFT 0xA1
- #define VK_LCONTROL 0xA2
- #define VK_RCONTROL 0xA3
- #define VK_LMENU 0xA4
- #define VK_RMENU 0xA5
- #if(_WIN32_WINNT >= 0x0500)
- #define VK_BROWSER_BACK 0xA6
- #define VK_BROWSER_FORWARD 0xA7
- #define VK_BROWSER_REFRESH 0xA8
- #define VK_BROWSER_STOP 0xA9
- #define VK_BROWSER_SEARCH 0xAA
- #define VK_BROWSER_FAVORITES 0xAB
- #define VK_BROWSER_HOME 0xAC
- #define VK_VOLUME_MUTE 0xAD
- #define VK_VOLUME_DOWN 0xAE
- #define VK_VOLUME_UP 0xAF
- #define VK_MEDIA_NEXT_TRACK 0xB0
- #define VK_MEDIA_PREV_TRACK 0xB1
- #define VK_MEDIA_STOP 0xB2
- #define VK_MEDIA_PLAY_PAUSE 0xB3
- #define VK_LAUNCH_MAIL 0xB4
- #define VK_LAUNCH_MEDIA_SELECT 0xB5
- #define VK_LAUNCH_APP1 0xB6
- #define VK_LAUNCH_APP2 0xB7
- #endif /* _WIN32_WINNT >= 0x0500 */
- /*
- * 0xB8 - 0xB9 : reserved
- */
- #define VK_OEM_1 0xBA // ';:' for US
- #define VK_OEM_PLUS 0xBB // '+' any country
- #define VK_OEM_COMMA 0xBC // ',' any country
- #define VK_OEM_MINUS 0xBD // '-' any country
- #define VK_OEM_PERIOD 0xBE // '.' any country
- #define VK_OEM_2 0xBF // '/?' for US
- #define VK_OEM_3 0xC0 // '`~' for US
- /*
- * 0xC1 - 0xD7 : reserved
- */
- /*
- * 0xD8 - 0xDA : unassigned
- */
- #define VK_OEM_4 0xDB // '[{' for US
- #define VK_OEM_5 0xDC // '\|' for US
- #define VK_OEM_6 0xDD // ']}' for US
- #define VK_OEM_7 0xDE // ''"' for US
- #define VK_OEM_8 0xDF
- /*
- * 0xE0 : reserved
- */
- /*
- * Various extended or enhanced keyboards
- */
- #define VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd
- #define VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd.
- #define VK_ICO_HELP 0xE3 // Help key on ICO
- #define VK_ICO_00 0xE4 // 00 key on ICO
- #if(WINVER >= 0x0400)
- #define VK_PROCESSKEY 0xE5
- #endif /* WINVER >= 0x0400 */
- #define VK_ICO_CLEAR 0xE6
- #if(_WIN32_WINNT >= 0x0500)
- #define VK_PACKET 0xE7
- #endif /* _WIN32_WINNT >= 0x0500 */
- /*
- * 0xE8 : unassigned
- */
- /*
- * Nokia/Ericsson definitions
- */
- #define VK_OEM_RESET 0xE9
- #define VK_OEM_JUMP 0xEA
- #define VK_OEM_PA1 0xEB
- #define VK_OEM_PA2 0xEC
- #define VK_OEM_PA3 0xED
- #define VK_OEM_WSCTRL 0xEE
- #define VK_OEM_CUSEL 0xEF
- #define VK_OEM_ATTN 0xF0
- #define VK_OEM_FINISH 0xF1
- #define VK_OEM_COPY 0xF2
- #define VK_OEM_AUTO 0xF3
- #define VK_OEM_ENLW 0xF4
- #define VK_OEM_BACKTAB 0xF5
- #define VK_ATTN 0xF6
- #define VK_CRSEL 0xF7
- #define VK_EXSEL 0xF8
- #define VK_EREOF 0xF9
- #define VK_PLAY 0xFA
- #define VK_ZOOM 0xFB
- #define VK_NONAME 0xFC
- #define VK_PA1 0xFD
- #define VK_OEM_CLEAR 0xFE
- /*
- * 0xFF : reserved
- */
- #endif /* !NOVIRTUALKEYCODES */
- #ifndef NOWH
- /*
- * SetWindowsHook() codes
- */
- #define WH_MIN (-1)
- #define WH_MSGFILTER (-1)
- #define WH_JOURNALRECORD 0
- #define WH_JOURNALPLAYBACK 1
- #define WH_KEYBOARD 2
- #define WH_GETMESSAGE 3
- #define WH_CALLWNDPROC 4
- #define WH_CBT 5
- #define WH_SYSMSGFILTER 6
- #define WH_MOUSE 7
- #if defined(_WIN32_WINDOWS)
- #define WH_HARDWARE 8
- #endif
- #define WH_DEBUG 9
- #define WH_SHELL 10
- #define WH_FOREGROUNDIDLE 11
- #if(WINVER >= 0x0400)
- #define WH_CALLWNDPROCRET 12
- #endif /* WINVER >= 0x0400 */
- #if (_WIN32_WINNT >= 0x0400)
- #define WH_KEYBOARD_LL 13
- #define WH_MOUSE_LL 14
- #endif // (_WIN32_WINNT >= 0x0400)
- #if(WINVER >= 0x0400)
- #if (_WIN32_WINNT >= 0x0400)
- #define WH_MAX 14
- #else
- #define WH_MAX 12
- #endif // (_WIN32_WINNT >= 0x0400)
- #else
- #define WH_MAX 11
- #endif
- #define WH_MINHOOK WH_MIN
- #define WH_MAXHOOK WH_MAX
- /*
- * Hook Codes
- */
- #define HC_ACTION 0
- #define HC_GETNEXT 1
- #define HC_SKIP 2
- #define HC_NOREMOVE 3
- #define HC_NOREM HC_NOREMOVE
- #define HC_SYSMODALON 4
- #define HC_SYSMODALOFF 5
- /*
- * CBT Hook Codes
- */
- #define HCBT_MOVESIZE 0
- #define HCBT_MINMAX 1
- #define HCBT_QS 2
- #define HCBT_CREATEWND 3
- #define HCBT_DESTROYWND 4
- #define HCBT_ACTIVATE 5
- #define HCBT_CLICKSKIPPED 6
- #define HCBT_KEYSKIPPED 7
- #define HCBT_SYSCOMMAND 8
- #define HCBT_SETFOCUS 9
- /*
- * HCBT_CREATEWND parameters pointed to by lParam
- */
- typedef struct tagCBT_CREATEWNDA
- {
- struct tagCREATESTRUCTA *lpcs;
- HWND hwndInsertAfter;
- } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
- /*
- * HCBT_CREATEWND parameters pointed to by lParam
- */
- typedef struct tagCBT_CREATEWNDW
- {
- struct tagCREATESTRUCTW *lpcs;
- HWND hwndInsertAfter;
- } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
- #ifdef UNICODE
- typedef CBT_CREATEWNDW CBT_CREATEWND;
- typedef LPCBT_CREATEWNDW LPCBT_CREATEWND;
- #else
- typedef CBT_CREATEWNDA CBT_CREATEWND;
- typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
- #endif // UNICODE
- /*
- * HCBT_ACTIVATE structure pointed to by lParam
- */
- typedef struct tagCBTACTIVATESTRUCT
- {
- BOOL fMouse;
- HWND hWndActive;
- } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
- #if(_WIN32_WINNT >= 0x0501)
- /*
- * WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
- */
- typedef struct tagWTSSESSION_NOTIFICATION
- {
- DWORD cbSize;
- DWORD dwSessionId;
- } WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION;
- /*
- * codes passed in WPARAM for WM_WTSSESSION_CHANGE
- */
- #define WTS_CONSOLE_CONNECT 0x1
- #define WTS_CONSOLE_DISCONNECT 0x2
- #define WTS_REMOTE_CONNECT 0x3
- #define WTS_REMOTE_DISCONNECT 0x4
- #define WTS_SESSION_LOGON 0x5
- #define WTS_SESSION_LOGOFF 0x6
- #define WTS_SESSION_LOCK 0x7
- #define WTS_SESSION_UNLOCK 0x8
- #endif /* _WIN32_WINNT >= 0x0501 */
- /*
- * WH_MSGFILTER Filter Proc Codes
- */
- #define MSGF_DIALOGBOX 0
- #define MSGF_MESSAGEBOX 1
- #define MSGF_MENU 2
- #define MSGF_SCROLLBAR 5
- #define MSGF_NEXTWINDOW 6
- #define MSGF_MAX 8 // unused
- #define MSGF_USER 4096
- /*
- * Shell support
- */
- #define HSHELL_WINDOWCREATED 1
- #define HSHELL_WINDOWDESTROYED 2
- #define HSHELL_ACTIVATESHELLWINDOW 3
- #if(WINVER >= 0x0400)
- #define HSHELL_WINDOWACTIVATED 4
- #define HSHELL_GETMINRECT 5
- #define HSHELL_REDRAW 6
- #define HSHELL_TASKMAN 7
- #define HSHELL_LANGUAGE 8
- #define HSHELL_SYSMENU 9
- #define HSHELL_ENDTASK 10
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0500)
- #define HSHELL_ACCESSIBILITYSTATE 11
- #define HSHELL_APPCOMMAND 12
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define HSHELL_WINDOWREPLACED 13
- #define HSHELL_WINDOWREPLACING 14
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define HSHELL_HIGHBIT 0x8000
- #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
- #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
- #if(_WIN32_WINNT >= 0x0500)
- /* wparam for HSHELL_ACCESSIBILITYSTATE */
- #define ACCESS_STICKYKEYS 0x0001
- #define ACCESS_FILTERKEYS 0x0002
- #define ACCESS_MOUSEKEYS 0x0003
- /* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */
- #define APPCOMMAND_BROWSER_BACKWARD 1
- #define APPCOMMAND_BROWSER_FORWARD 2
- #define APPCOMMAND_BROWSER_REFRESH 3
- #define APPCOMMAND_BROWSER_STOP 4
- #define APPCOMMAND_BROWSER_SEARCH 5
- #define APPCOMMAND_BROWSER_FAVORITES 6
- #define APPCOMMAND_BROWSER_HOME 7
- #define APPCOMMAND_VOLUME_MUTE 8
- #define APPCOMMAND_VOLUME_DOWN 9
- #define APPCOMMAND_VOLUME_UP 10
- #define APPCOMMAND_MEDIA_NEXTTRACK 11
- #define APPCOMMAND_MEDIA_PREVIOUSTRACK 12
- #define APPCOMMAND_MEDIA_STOP 13
- #define APPCOMMAND_MEDIA_PLAY_PAUSE 14
- #define APPCOMMAND_LAUNCH_MAIL 15
- #define APPCOMMAND_LAUNCH_MEDIA_SELECT 16
- #define APPCOMMAND_LAUNCH_APP1 17
- #define APPCOMMAND_LAUNCH_APP2 18
- #define APPCOMMAND_BASS_DOWN 19
- #define APPCOMMAND_BASS_BOOST 20
- #define APPCOMMAND_BASS_UP 21
- #define APPCOMMAND_TREBLE_DOWN 22
- #define APPCOMMAND_TREBLE_UP 23
- #if(_WIN32_WINNT >= 0x0501)
- #define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24
- #define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25
- #define APPCOMMAND_MICROPHONE_VOLUME_UP 26
- #define APPCOMMAND_HELP 27
- #define APPCOMMAND_FIND 28
- #define APPCOMMAND_NEW 29
- #define APPCOMMAND_OPEN 30
- #define APPCOMMAND_CLOSE 31
- #define APPCOMMAND_SAVE 32
- #define APPCOMMAND_PRINT 33
- #define APPCOMMAND_UNDO 34
- #define APPCOMMAND_REDO 35
- #define APPCOMMAND_COPY 36
- #define APPCOMMAND_CUT 37
- #define APPCOMMAND_PASTE 38
- #define APPCOMMAND_REPLY_TO_MAIL 39
- #define APPCOMMAND_FORWARD_MAIL 40
- #define APPCOMMAND_SEND_MAIL 41
- #define APPCOMMAND_SPELL_CHECK 42
- #define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43
- #define APPCOMMAND_MIC_ON_OFF_TOGGLE 44
- #define APPCOMMAND_CORRECTION_LIST 45
- #define APPCOMMAND_MEDIA_PLAY 46
- #define APPCOMMAND_MEDIA_PAUSE 47
- #define APPCOMMAND_MEDIA_RECORD 48
- #define APPCOMMAND_MEDIA_FAST_FORWARD 49
- #define APPCOMMAND_MEDIA_REWIND 50
- #define APPCOMMAND_MEDIA_CHANNEL_UP 51
- #define APPCOMMAND_MEDIA_CHANNEL_DOWN 52
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define FAPPCOMMAND_MOUSE 0x8000
- #define FAPPCOMMAND_KEY 0
- #define FAPPCOMMAND_OEM 0x1000
- #define FAPPCOMMAND_MASK 0xF000
- #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
- #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
- #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
- #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
- #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
- #endif /* _WIN32_WINNT >= 0x0500 */
- typedef struct
- {
- HWND hwnd;
- RECT rc;
- } SHELLHOOKINFO, *LPSHELLHOOKINFO;
- /*
- * Message Structure used in Journaling
- */
- typedef struct tagEVENTMSG {
- UINT message;
- UINT paramL;
- UINT paramH;
- DWORD time;
- HWND hwnd;
- } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;
- typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;
- /*
- * Message structure used by WH_CALLWNDPROC
- */
- typedef struct tagCWPSTRUCT {
- LPARAM lParam;
- WPARAM wParam;
- UINT message;
- HWND hwnd;
- } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
- #if(WINVER >= 0x0400)
- /*
- * Message structure used by WH_CALLWNDPROCRET
- */
- typedef struct tagCWPRETSTRUCT {
- LRESULT lResult;
- LPARAM lParam;
- WPARAM wParam;
- UINT message;
- HWND hwnd;
- } CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT;
- #endif /* WINVER >= 0x0400 */
- #if (_WIN32_WINNT >= 0x0400)
- /*
- * Low level hook flags
- */
- #define LLKHF_EXTENDED (KF_EXTENDED >> 8)
- #define LLKHF_INJECTED 0x00000010
- #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8)
- #define LLKHF_UP (KF_UP >> 8)
- #define LLMHF_INJECTED 0x00000001
- /*
- * Structure used by WH_KEYBOARD_LL
- */
- typedef struct tagKBDLLHOOKSTRUCT {
- DWORD vkCode;
- DWORD scanCode;
- DWORD flags;
- DWORD time;
- ULONG_PTR dwExtraInfo;
- } KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
- /*
- * Structure used by WH_MOUSE_LL
- */
- typedef struct tagMSLLHOOKSTRUCT {
- POINT pt;
- DWORD mouseData;
- DWORD flags;
- DWORD time;
- ULONG_PTR dwExtraInfo;
- } MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
- #endif // (_WIN32_WINNT >= 0x0400)
- /*
- * Structure used by WH_DEBUG
- */
- typedef struct tagDEBUGHOOKINFO
- {
- DWORD idThread;
- DWORD idThreadInstaller;
- LPARAM lParam;
- WPARAM wParam;
- int code;
- } DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO;
- /*
- * Structure used by WH_MOUSE
- */
- typedef struct tagMOUSEHOOKSTRUCT {
- POINT pt;
- HWND hwnd;
- UINT wHitTestCode;
- ULONG_PTR dwExtraInfo;
- } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
- #if(_WIN32_WINNT >= 0x0500)
- #ifdef __cplusplus
- typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT
- {
- DWORD mouseData;
- } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
- #else // ndef __cplusplus
- typedef struct tagMOUSEHOOKSTRUCTEX
- {
- MOUSEHOOKSTRUCT;
- DWORD mouseData;
- } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
- #endif
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0400)
- /*
- * Structure used by WH_HARDWARE
- */
- typedef struct tagHARDWAREHOOKSTRUCT {
- HWND hwnd;
- UINT message;
- WPARAM wParam;
- LPARAM lParam;
- } HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOWH */
- /*
- * Keyboard Layout API
- */
- #define HKL_PREV 0
- #define HKL_NEXT 1
- #define KLF_ACTIVATE 0x00000001
- #define KLF_SUBSTITUTE_OK 0x00000002
- #define KLF_REORDER 0x00000008
- #if(WINVER >= 0x0400)
- #define KLF_REPLACELANG 0x00000010
- #define KLF_NOTELLSHELL 0x00000080
- #endif /* WINVER >= 0x0400 */
- #define KLF_SETFORPROCESS 0x00000100
- #if(_WIN32_WINNT >= 0x0500)
- #define KLF_SHIFTLOCK 0x00010000
- #define KLF_RESET 0x40000000
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0500)
- /*
- * Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
- */
- #define INPUTLANGCHANGE_SYSCHARSET 0x0001
- #define INPUTLANGCHANGE_FORWARD 0x0002
- #define INPUTLANGCHANGE_BACKWARD 0x0004
- #endif /* WINVER >= 0x0500 */
- /*
- * Size of KeyboardLayoutName (number of characters), including nul terminator
- */
- #define KL_NAMELENGTH 9
- WINUSERAPI
- HKL
- WINAPI
- LoadKeyboardLayoutA(
- IN LPCSTR pwszKLID,
- IN UINT Flags);
- WINUSERAPI
- HKL
- WINAPI
- LoadKeyboardLayoutW(
- IN LPCWSTR pwszKLID,
- IN UINT Flags);
- #ifdef UNICODE
- #define LoadKeyboardLayout LoadKeyboardLayoutW
- #else
- #define LoadKeyboardLayout LoadKeyboardLayoutA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- HKL
- WINAPI
- ActivateKeyboardLayout(
- IN HKL hkl,
- IN UINT Flags);
- #else
- WINUSERAPI
- BOOL
- WINAPI
- ActivateKeyboardLayout(
- IN HKL hkl,
- IN UINT Flags);
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- WINUSERAPI
- int
- WINAPI
- ToUnicodeEx(
- IN UINT wVirtKey,
- IN UINT wScanCode,
- IN CONST BYTE *lpKeyState,
- OUT LPWSTR pwszBuff,
- IN int cchBuff,
- IN UINT wFlags,
- IN HKL dwhkl);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- UnloadKeyboardLayout(
- IN HKL hkl);
- WINUSERAPI
- BOOL
- WINAPI
- GetKeyboardLayoutNameA(
- OUT LPSTR pwszKLID);
- WINUSERAPI
- BOOL
- WINAPI
- GetKeyboardLayoutNameW(
- OUT LPWSTR pwszKLID);
- #ifdef UNICODE
- #define GetKeyboardLayoutName GetKeyboardLayoutNameW
- #else
- #define GetKeyboardLayoutName GetKeyboardLayoutNameA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- int
- WINAPI
- GetKeyboardLayoutList(
- IN int nBuff,
- OUT HKL FAR *lpList);
- WINUSERAPI
- HKL
- WINAPI
- GetKeyboardLayout(
- IN DWORD idThread
- );
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- typedef struct tagMOUSEMOVEPOINT {
- int x;
- int y;
- DWORD time;
- ULONG_PTR dwExtraInfo;
- } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT;
- /*
- * Values for resolution parameter of GetMouseMovePointsEx
- */
- #define GMMP_USE_DISPLAY_POINTS 1
- #define GMMP_USE_HIGH_RESOLUTION_POINTS 2
- WINUSERAPI
- int
- WINAPI
- GetMouseMovePointsEx(
- IN UINT cbSize,
- IN LPMOUSEMOVEPOINT lppt,
- IN LPMOUSEMOVEPOINT lpptBuf,
- IN int nBufPoints,
- IN DWORD resolution
- );
- #endif /* WINVER >= 0x0500 */
- #ifndef NODESKTOP
- /*
- * Desktop-specific access flags
- */
- #define DESKTOP_READOBJECTS 0x0001L
- #define DESKTOP_CREATEWINDOW 0x0002L
- #define DESKTOP_CREATEMENU 0x0004L
- #define DESKTOP_HOOKCONTROL 0x0008L
- #define DESKTOP_JOURNALRECORD 0x0010L
- #define DESKTOP_JOURNALPLAYBACK 0x0020L
- #define DESKTOP_ENUMERATE 0x0040L
- #define DESKTOP_WRITEOBJECTS 0x0080L
- #define DESKTOP_SWITCHDESKTOP 0x0100L
- /*
- * Desktop-specific control flags
- */
- #define DF_ALLOWOTHERACCOUNTHOOK 0x0001L
- #ifdef _WINGDI_
- #ifndef NOGDI
- WINUSERAPI
- HDESK
- WINAPI
- CreateDesktopA(
- IN LPCSTR lpszDesktop,
- IN LPCSTR lpszDevice,
- IN LPDEVMODEA pDevmode,
- IN DWORD dwFlags,
- IN ACCESS_MASK dwDesiredAccess,
- IN LPSECURITY_ATTRIBUTES lpsa);
- WINUSERAPI
- HDESK
- WINAPI
- CreateDesktopW(
- IN LPCWSTR lpszDesktop,
- IN LPCWSTR lpszDevice,
- IN LPDEVMODEW pDevmode,
- IN DWORD dwFlags,
- IN ACCESS_MASK dwDesiredAccess,
- IN LPSECURITY_ATTRIBUTES lpsa);
- #ifdef UNICODE
- #define CreateDesktop CreateDesktopW
- #else
- #define CreateDesktop CreateDesktopA
- #endif // !UNICODE
- #endif /* NOGDI */
- #endif /* _WINGDI_ */
- WINUSERAPI
- HDESK
- WINAPI
- OpenDesktopA(
- IN LPCSTR lpszDesktop,
- IN DWORD dwFlags,
- IN BOOL fInherit,
- IN ACCESS_MASK dwDesiredAccess);
- WINUSERAPI
- HDESK
- WINAPI
- OpenDesktopW(
- IN LPCWSTR lpszDesktop,
- IN DWORD dwFlags,
- IN BOOL fInherit,
- IN ACCESS_MASK dwDesiredAccess);
- #ifdef UNICODE
- #define OpenDesktop OpenDesktopW
- #else
- #define OpenDesktop OpenDesktopA
- #endif // !UNICODE
- WINUSERAPI
- HDESK
- WINAPI
- OpenInputDesktop(
- IN DWORD dwFlags,
- IN BOOL fInherit,
- IN ACCESS_MASK dwDesiredAccess);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDesktopsA(
- IN HWINSTA hwinsta,
- IN DESKTOPENUMPROCA lpEnumFunc,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDesktopsW(
- IN HWINSTA hwinsta,
- IN DESKTOPENUMPROCW lpEnumFunc,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define EnumDesktops EnumDesktopsW
- #else
- #define EnumDesktops EnumDesktopsA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- EnumDesktopWindows(
- IN HDESK hDesktop,
- IN WNDENUMPROC lpfn,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- SwitchDesktop(
- IN HDESK hDesktop);
- WINUSERAPI
- BOOL
- WINAPI
- SetThreadDesktop(
- IN HDESK hDesktop);
- WINUSERAPI
- BOOL
- WINAPI
- CloseDesktop(
- IN HDESK hDesktop);
- WINUSERAPI
- HDESK
- WINAPI
- GetThreadDesktop(
- IN DWORD dwThreadId);
- #endif /* !NODESKTOP */
- #ifndef NOWINDOWSTATION
- /*
- * Windowstation-specific access flags
- */
- #define WINSTA_ENUMDESKTOPS 0x0001L
- #define WINSTA_READATTRIBUTES 0x0002L
- #define WINSTA_ACCESSCLIPBOARD 0x0004L
- #define WINSTA_CREATEDESKTOP 0x0008L
- #define WINSTA_WRITEATTRIBUTES 0x0010L
- #define WINSTA_ACCESSGLOBALATOMS 0x0020L
- #define WINSTA_EXITWINDOWS 0x0040L
- #define WINSTA_ENUMERATE 0x0100L
- #define WINSTA_READSCREEN 0x0200L
- /*
- * Windowstation creation flags.
- */
- #define CWF_CREATE_ONLY 0x0001L
- /*
- * Windowstation-specific attribute flags
- */
- #define WSF_VISIBLE 0x0001L
- WINUSERAPI
- HWINSTA
- WINAPI
- CreateWindowStationA(
- IN LPCSTR lpwinsta,
- IN DWORD dwFlags,
- IN ACCESS_MASK dwDesiredAccess,
- IN LPSECURITY_ATTRIBUTES lpsa);
- WINUSERAPI
- HWINSTA
- WINAPI
- CreateWindowStationW(
- IN LPCWSTR lpwinsta,
- IN DWORD dwFlags,
- IN ACCESS_MASK dwDesiredAccess,
- IN LPSECURITY_ATTRIBUTES lpsa);
- #ifdef UNICODE
- #define CreateWindowStation CreateWindowStationW
- #else
- #define CreateWindowStation CreateWindowStationA
- #endif // !UNICODE
- WINUSERAPI
- HWINSTA
- WINAPI
- OpenWindowStationA(
- IN LPCSTR lpszWinSta,
- IN BOOL fInherit,
- IN ACCESS_MASK dwDesiredAccess);
- WINUSERAPI
- HWINSTA
- WINAPI
- OpenWindowStationW(
- IN LPCWSTR lpszWinSta,
- IN BOOL fInherit,
- IN ACCESS_MASK dwDesiredAccess);
- #ifdef UNICODE
- #define OpenWindowStation OpenWindowStationW
- #else
- #define OpenWindowStation OpenWindowStationA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- EnumWindowStationsA(
- IN WINSTAENUMPROCA lpEnumFunc,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- EnumWindowStationsW(
- IN WINSTAENUMPROCW lpEnumFunc,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define EnumWindowStations EnumWindowStationsW
- #else
- #define EnumWindowStations EnumWindowStationsA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- CloseWindowStation(
- IN HWINSTA hWinSta);
- WINUSERAPI
- BOOL
- WINAPI
- SetProcessWindowStation(
- IN HWINSTA hWinSta);
- WINUSERAPI
- HWINSTA
- WINAPI
- GetProcessWindowStation(
- VOID);
- #endif /* !NOWINDOWSTATION */
- #ifndef NOSECURITY
- WINUSERAPI
- BOOL
- WINAPI
- SetUserObjectSecurity(
- IN HANDLE hObj,
- IN PSECURITY_INFORMATION pSIRequested,
- IN PSECURITY_DESCRIPTOR pSID);
- WINUSERAPI
- BOOL
- WINAPI
- GetUserObjectSecurity(
- IN HANDLE hObj,
- IN PSECURITY_INFORMATION pSIRequested,
- IN OUT PSECURITY_DESCRIPTOR pSID,
- IN DWORD nLength,
- OUT LPDWORD lpnLengthNeeded);
- #define UOI_FLAGS 1
- #define UOI_NAME 2
- #define UOI_TYPE 3
- #define UOI_USER_SID 4
- typedef struct tagUSEROBJECTFLAGS {
- BOOL fInherit;
- BOOL fReserved;
- DWORD dwFlags;
- } USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
- WINUSERAPI
- BOOL
- WINAPI
- GetUserObjectInformationA(
- IN HANDLE hObj,
- IN int nIndex,
- OUT PVOID pvInfo,
- IN DWORD nLength,
- OUT LPDWORD lpnLengthNeeded);
- WINUSERAPI
- BOOL
- WINAPI
- GetUserObjectInformationW(
- IN HANDLE hObj,
- IN int nIndex,
- OUT PVOID pvInfo,
- IN DWORD nLength,
- OUT LPDWORD lpnLengthNeeded);
- #ifdef UNICODE
- #define GetUserObjectInformation GetUserObjectInformationW
- #else
- #define GetUserObjectInformation GetUserObjectInformationA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SetUserObjectInformationA(
- IN HANDLE hObj,
- IN int nIndex,
- IN PVOID pvInfo,
- IN DWORD nLength);
- WINUSERAPI
- BOOL
- WINAPI
- SetUserObjectInformationW(
- IN HANDLE hObj,
- IN int nIndex,
- IN PVOID pvInfo,
- IN DWORD nLength);
- #ifdef UNICODE
- #define SetUserObjectInformation SetUserObjectInformationW
- #else
- #define SetUserObjectInformation SetUserObjectInformationA
- #endif // !UNICODE
- #endif /* !NOSECURITY */
- #if(WINVER >= 0x0400)
- typedef struct tagWNDCLASSEXA {
- UINT cbSize;
- /* Win 3.x */
- UINT style;
- WNDPROC lpfnWndProc;
- int cbClsExtra;
- int cbWndExtra;
- HINSTANCE hInstance;
- HICON hIcon;
- HCURSOR hCursor;
- HBRUSH hbrBackground;
- LPCSTR lpszMenuName;
- LPCSTR lpszClassName;
- /* Win 4.0 */
- HICON hIconSm;
- } WNDCLASSEXA, *PWNDCLASSEXA, NEAR *NPWNDCLASSEXA, FAR *LPWNDCLASSEXA;
- typedef struct tagWNDCLASSEXW {
- UINT cbSize;
- /* Win 3.x */
- UINT style;
- WNDPROC lpfnWndProc;
- int cbClsExtra;
- int cbWndExtra;
- HINSTANCE hInstance;
- HICON hIcon;
- HCURSOR hCursor;
- HBRUSH hbrBackground;
- LPCWSTR lpszMenuName;
- LPCWSTR lpszClassName;
- /* Win 4.0 */
- HICON hIconSm;
- } WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR *LPWNDCLASSEXW;
- #ifdef UNICODE
- typedef WNDCLASSEXW WNDCLASSEX;
- typedef PWNDCLASSEXW PWNDCLASSEX;
- typedef NPWNDCLASSEXW NPWNDCLASSEX;
- typedef LPWNDCLASSEXW LPWNDCLASSEX;
- #else
- typedef WNDCLASSEXA WNDCLASSEX;
- typedef PWNDCLASSEXA PWNDCLASSEX;
- typedef NPWNDCLASSEXA NPWNDCLASSEX;
- typedef LPWNDCLASSEXA LPWNDCLASSEX;
- #endif // UNICODE
- #endif /* WINVER >= 0x0400 */
- typedef struct tagWNDCLASSA {
- UINT style;
- WNDPROC lpfnWndProc;
- int cbClsExtra;
- int cbWndExtra;
- HINSTANCE hInstance;
- HICON hIcon;
- HCURSOR hCursor;
- HBRUSH hbrBackground;
- LPCSTR lpszMenuName;
- LPCSTR lpszClassName;
- } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
- typedef struct tagWNDCLASSW {
- UINT style;
- WNDPROC lpfnWndProc;
- int cbClsExtra;
- int cbWndExtra;
- HINSTANCE hInstance;
- HICON hIcon;
- HCURSOR hCursor;
- HBRUSH hbrBackground;
- LPCWSTR lpszMenuName;
- LPCWSTR lpszClassName;
- } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
- #ifdef UNICODE
- typedef WNDCLASSW WNDCLASS;
- typedef PWNDCLASSW PWNDCLASS;
- typedef NPWNDCLASSW NPWNDCLASS;
- typedef LPWNDCLASSW LPWNDCLASS;
- #else
- typedef WNDCLASSA WNDCLASS;
- typedef PWNDCLASSA PWNDCLASS;
- typedef NPWNDCLASSA NPWNDCLASS;
- typedef LPWNDCLASSA LPWNDCLASS;
- #endif // UNICODE
- WINUSERAPI
- BOOL
- IsHungAppWindow(
- IN HWND hwnd);
- #if(WINVER >= 0x0501)
- WINUSERAPI
- VOID
- DisableProcessWindowsGhosting(
- VOID);
- #endif /* WINVER >= 0x0501 */
- #ifndef NOMSG
- /*
- * Message structure
- */
- typedef struct tagMSG {
- HWND hwnd;
- UINT message;
- WPARAM wParam;
- LPARAM lParam;
- DWORD time;
- POINT pt;
- #ifdef _MAC
- DWORD lPrivate;
- #endif
- } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
- #define POINTSTOPOINT(pt, pts) \
- { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \
- (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
- #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
- #define MAKEWPARAM(l, h) ((WPARAM)(DWORD)MAKELONG(l, h))
- #define MAKELPARAM(l, h) ((LPARAM)(DWORD)MAKELONG(l, h))
- #define MAKELRESULT(l, h) ((LRESULT)(DWORD)MAKELONG(l, h))
- #endif /* !NOMSG */
- #ifndef NOWINOFFSETS
- /*
- * Window field offsets for GetWindowLong()
- */
- #define GWL_WNDPROC (-4)
- #define GWL_HINSTANCE (-6)
- #define GWL_HWNDPARENT (-8)
- #define GWL_STYLE (-16)
- #define GWL_EXSTYLE (-20)
- #define GWL_USERDATA (-21)
- #define GWL_ID (-12)
- #ifdef _WIN64
- #undef GWL_WNDPROC
- #undef GWL_HINSTANCE
- #undef GWL_HWNDPARENT
- #undef GWL_USERDATA
- #endif /* _WIN64 */
- #define GWLP_WNDPROC (-4)
- #define GWLP_HINSTANCE (-6)
- #define GWLP_HWNDPARENT (-8)
- #define GWLP_USERDATA (-21)
- #define GWLP_ID (-12)
- /*
- * Class field offsets for GetClassLong()
- */
- #define GCL_MENUNAME (-8)
- #define GCL_HBRBACKGROUND (-10)
- #define GCL_HCURSOR (-12)
- #define GCL_HICON (-14)
- #define GCL_HMODULE (-16)
- #define GCL_CBWNDEXTRA (-18)
- #define GCL_CBCLSEXTRA (-20)
- #define GCL_WNDPROC (-24)
- #define GCL_STYLE (-26)
- #define GCW_ATOM (-32)
- #if(WINVER >= 0x0400)
- #define GCL_HICONSM (-34)
- #endif /* WINVER >= 0x0400 */
- #ifdef _WIN64
- #undef GCL_MENUNAME
- #undef GCL_HBRBACKGROUND
- #undef GCL_HCURSOR
- #undef GCL_HICON
- #undef GCL_HMODULE
- #undef GCL_WNDPROC
- #undef GCL_HICONSM
- #endif /* _WIN64 */
- #define GCLP_MENUNAME (-8)
- #define GCLP_HBRBACKGROUND (-10)
- #define GCLP_HCURSOR (-12)
- #define GCLP_HICON (-14)
- #define GCLP_HMODULE (-16)
- #define GCLP_WNDPROC (-24)
- #define GCLP_HICONSM (-34)
- #endif /* !NOWINOFFSETS */
- #ifndef NOWINMESSAGES
- /*
- * Window Messages
- */
- #define WM_NULL 0x0000
- #define WM_CREATE 0x0001
- #define WM_DESTROY 0x0002
- #define WM_MOVE 0x0003
- #define WM_SIZE 0x0005
- #define WM_ACTIVATE 0x0006
- /*
- * WM_ACTIVATE state values
- */
- #define WA_INACTIVE 0
- #define WA_ACTIVE 1
- #define WA_CLICKACTIVE 2
- #define WM_SETFOCUS 0x0007
- #define WM_KILLFOCUS 0x0008
- #define WM_ENABLE 0x000A
- #define WM_SETREDRAW 0x000B
- #define WM_SETTEXT 0x000C
- #define WM_GETTEXT 0x000D
- #define WM_GETTEXTLENGTH 0x000E
- #define WM_PAINT 0x000F
- #define WM_CLOSE 0x0010
- #ifndef _WIN32_WCE
- #define WM_QUERYENDSESSION 0x0011
- #define WM_QUERYOPEN 0x0013
- #define WM_ENDSESSION 0x0016
- #endif
- #define WM_QUIT 0x0012
- #define WM_ERASEBKGND 0x0014
- #define WM_SYSCOLORCHANGE 0x0015
- #define WM_SHOWWINDOW 0x0018
- #define WM_WININICHANGE 0x001A
- #if(WINVER >= 0x0400)
- #define WM_SETTINGCHANGE WM_WININICHANGE
- #endif /* WINVER >= 0x0400 */
- #define WM_DEVMODECHANGE 0x001B
- #define WM_ACTIVATEAPP 0x001C
- #define WM_FONTCHANGE 0x001D
- #define WM_TIMECHANGE 0x001E
- #define WM_CANCELMODE 0x001F
- #define WM_SETCURSOR 0x0020
- #define WM_MOUSEACTIVATE 0x0021
- #define WM_CHILDACTIVATE 0x0022
- #define WM_QUEUESYNC 0x0023
- #define WM_GETMINMAXINFO 0x0024
- /*
- * Struct pointed to by WM_GETMINMAXINFO lParam
- */
- typedef struct tagMINMAXINFO {
- POINT ptReserved;
- POINT ptMaxSize;
- POINT ptMaxPosition;
- POINT ptMinTrackSize;
- POINT ptMaxTrackSize;
- } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
- #define WM_PAINTICON 0x0026
- #define WM_ICONERASEBKGND 0x0027
- #define WM_NEXTDLGCTL 0x0028
- #define WM_SPOOLERSTATUS 0x002A
- #define WM_DRAWITEM 0x002B
- #define WM_MEASUREITEM 0x002C
- #define WM_DELETEITEM 0x002D
- #define WM_VKEYTOITEM 0x002E
- #define WM_CHARTOITEM 0x002F
- #define WM_SETFONT 0x0030
- #define WM_GETFONT 0x0031
- #define WM_SETHOTKEY 0x0032
- #define WM_GETHOTKEY 0x0033
- #define WM_QUERYDRAGICON 0x0037
- #define WM_COMPAREITEM 0x0039
- #if(WINVER >= 0x0500)
- #ifndef _WIN32_WCE
- #define WM_GETOBJECT 0x003D
- #endif
- #endif /* WINVER >= 0x0500 */
- #define WM_COMPACTING 0x0041
- #define WM_COMMNOTIFY 0x0044 /* no longer suported */
- #define WM_WINDOWPOSCHANGING 0x0046
- #define WM_WINDOWPOSCHANGED 0x0047
- #define WM_POWER 0x0048
- /*
- * wParam for WM_POWER window message and DRV_POWER driver notification
- */
- #define PWR_OK 1
- #define PWR_FAIL (-1)
- #define PWR_SUSPENDREQUEST 1
- #define PWR_SUSPENDRESUME 2
- #define PWR_CRITICALRESUME 3
- #define WM_COPYDATA 0x004A
- #define WM_CANCELJOURNAL 0x004B
- /*
- * lParam of WM_COPYDATA message points to...
- */
- typedef struct tagCOPYDATASTRUCT {
- ULONG_PTR dwData;
- DWORD cbData;
- PVOID lpData;
- } COPYDATASTRUCT, *PCOPYDATASTRUCT;
- #if(WINVER >= 0x0400)
- typedef struct tagMDINEXTMENU
- {
- HMENU hmenuIn;
- HMENU hmenuNext;
- HWND hwndNext;
- } MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU;
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- #define WM_NOTIFY 0x004E
- #define WM_INPUTLANGCHANGEREQUEST 0x0050
- #define WM_INPUTLANGCHANGE 0x0051
- #define WM_TCARD 0x0052
- #define WM_HELP 0x0053
- #define WM_USERCHANGED 0x0054
- #define WM_NOTIFYFORMAT 0x0055
- #define NFR_ANSI 1
- #define NFR_UNICODE 2
- #define NF_QUERY 3
- #define NF_REQUERY 4
- #define WM_CONTEXTMENU 0x007B
- #define WM_STYLECHANGING 0x007C
- #define WM_STYLECHANGED 0x007D
- #define WM_DISPLAYCHANGE 0x007E
- #define WM_GETICON 0x007F
- #define WM_SETICON 0x0080
- #endif /* WINVER >= 0x0400 */
- #define WM_NCCREATE 0x0081
- #define WM_NCDESTROY 0x0082
- #define WM_NCCALCSIZE 0x0083
- #define WM_NCHITTEST 0x0084
- #define WM_NCPAINT 0x0085
- #define WM_NCACTIVATE 0x0086
- #define WM_GETDLGCODE 0x0087
- #ifndef _WIN32_WCE
- #define WM_SYNCPAINT 0x0088
- #endif
- #define WM_NCMOUSEMOVE 0x00A0
- #define WM_NCLBUTTONDOWN 0x00A1
- #define WM_NCLBUTTONUP 0x00A2
- #define WM_NCLBUTTONDBLCLK 0x00A3
- #define WM_NCRBUTTONDOWN 0x00A4
- #define WM_NCRBUTTONUP 0x00A5
- #define WM_NCRBUTTONDBLCLK 0x00A6
- #define WM_NCMBUTTONDOWN 0x00A7
- #define WM_NCMBUTTONUP 0x00A8
- #define WM_NCMBUTTONDBLCLK 0x00A9
- #if(_WIN32_WINNT >= 0x0500)
- #define WM_NCXBUTTONDOWN 0x00AB
- #define WM_NCXBUTTONUP 0x00AC
- #define WM_NCXBUTTONDBLCLK 0x00AD
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define WM_INPUT 0x00FF
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define WM_KEYFIRST 0x0100
- #define WM_KEYDOWN 0x0100
- #define WM_KEYUP 0x0101
- #define WM_CHAR 0x0102
- #define WM_DEADCHAR 0x0103
- #define WM_SYSKEYDOWN 0x0104
- #define WM_SYSKEYUP 0x0105
- #define WM_SYSCHAR 0x0106
- #define WM_SYSDEADCHAR 0x0107
- #if(_WIN32_WINNT >= 0x0501)
- #define WM_UNICHAR 0x0109
- #define WM_KEYLAST 0x0109
- #define UNICODE_NOCHAR 0xFFFF
- #else
- #define WM_KEYLAST 0x0108
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(WINVER >= 0x0400)
- #define WM_IME_STARTCOMPOSITION 0x010D
- #define WM_IME_ENDCOMPOSITION 0x010E
- #define WM_IME_COMPOSITION 0x010F
- #define WM_IME_KEYLAST 0x010F
- #endif /* WINVER >= 0x0400 */
- #define WM_INITDIALOG 0x0110
- #define WM_COMMAND 0x0111
- #define WM_SYSCOMMAND 0x0112
- #define WM_TIMER 0x0113
- #define WM_HSCROLL 0x0114
- #define WM_VSCROLL 0x0115
- #define WM_INITMENU 0x0116
- #define WM_INITMENUPOPUP 0x0117
- #define WM_MENUSELECT 0x011F
- #define WM_MENUCHAR 0x0120
- #define WM_ENTERIDLE 0x0121
- #if(WINVER >= 0x0500)
- #ifndef _WIN32_WCE
- #define WM_MENURBUTTONUP 0x0122
- #define WM_MENUDRAG 0x0123
- #define WM_MENUGETOBJECT 0x0124
- #define WM_UNINITMENUPOPUP 0x0125
- #define WM_MENUCOMMAND 0x0126
- #ifndef _WIN32_WCE
- #if(_WIN32_WINNT >= 0x0500)
- #define WM_CHANGEUISTATE 0x0127
- #define WM_UPDATEUISTATE 0x0128
- #define WM_QUERYUISTATE 0x0129
- /*
- * LOWORD(wParam) values in WM_*UISTATE*
- */
- #define UIS_SET 1
- #define UIS_CLEAR 2
- #define UIS_INITIALIZE 3
- /*
- * HIWORD(wParam) values in WM_*UISTATE*
- */
- #define UISF_HIDEFOCUS 0x1
- #define UISF_HIDEACCEL 0x2
- #if(_WIN32_WINNT >= 0x0501)
- #define UISF_ACTIVE 0x4
- #endif /* _WIN32_WINNT >= 0x0501 */
- #endif /* _WIN32_WINNT >= 0x0500 */
- #endif
- #endif
- #endif /* WINVER >= 0x0500 */
- #define WM_CTLCOLORMSGBOX 0x0132
- #define WM_CTLCOLOREDIT 0x0133
- #define WM_CTLCOLORLISTBOX 0x0134
- #define WM_CTLCOLORBTN 0x0135
- #define WM_CTLCOLORDLG 0x0136
- #define WM_CTLCOLORSCROLLBAR 0x0137
- #define WM_CTLCOLORSTATIC 0x0138
- #define MN_GETHMENU 0x01E1
- #define WM_MOUSEFIRST 0x0200
- #define WM_MOUSEMOVE 0x0200
- #define WM_LBUTTONDOWN 0x0201
- #define WM_LBUTTONUP 0x0202
- #define WM_LBUTTONDBLCLK 0x0203
- #define WM_RBUTTONDOWN 0x0204
- #define WM_RBUTTONUP 0x0205
- #define WM_RBUTTONDBLCLK 0x0206
- #define WM_MBUTTONDOWN 0x0207
- #define WM_MBUTTONUP 0x0208
- #define WM_MBUTTONDBLCLK 0x0209
- #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
- #define WM_MOUSEWHEEL 0x020A
- #endif
- #if (_WIN32_WINNT >= 0x0500)
- #define WM_XBUTTONDOWN 0x020B
- #define WM_XBUTTONUP 0x020C
- #define WM_XBUTTONDBLCLK 0x020D
- #endif
- #if (_WIN32_WINNT >= 0x0500)
- #define WM_MOUSELAST 0x020D
- #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
- #define WM_MOUSELAST 0x020A
- #else
- #define WM_MOUSELAST 0x0209
- #endif /* (_WIN32_WINNT >= 0x0500) */
- #if(_WIN32_WINNT >= 0x0400)
- /* Value for rolling one detent */
- #define WHEEL_DELTA 120
- #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
- /* Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES */
- #define WHEEL_PAGESCROLL (UINT_MAX)
- #endif /* _WIN32_WINNT >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0500)
- #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
- #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam))
- #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))
- /* XButton values are WORD flags */
- #define XBUTTON1 0x0001
- #define XBUTTON2 0x0002
- /* Were there to be an XBUTTON3, its value would be 0x0004 */
- #endif /* _WIN32_WINNT >= 0x0500 */
- #define WM_PARENTNOTIFY 0x0210
- #define WM_ENTERMENULOOP 0x0211
- #define WM_EXITMENULOOP 0x0212
- #if(WINVER >= 0x0400)
- #define WM_NEXTMENU 0x0213
- #define WM_SIZING 0x0214
- #define WM_CAPTURECHANGED 0x0215
- #define WM_MOVING 0x0216
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- #define WM_POWERBROADCAST 0x0218
- #ifndef _WIN32_WCE
- #define PBT_APMQUERYSUSPEND 0x0000
- #define PBT_APMQUERYSTANDBY 0x0001
- #define PBT_APMQUERYSUSPENDFAILED 0x0002
- #define PBT_APMQUERYSTANDBYFAILED 0x0003
- #define PBT_APMSUSPEND 0x0004
- #define PBT_APMSTANDBY 0x0005
- #define PBT_APMRESUMECRITICAL 0x0006
- #define PBT_APMRESUMESUSPEND 0x0007
- #define PBT_APMRESUMESTANDBY 0x0008
- #define PBTF_APMRESUMEFROMFAILURE 0x00000001
- #define PBT_APMBATTERYLOW 0x0009
- #define PBT_APMPOWERSTATUSCHANGE 0x000A
- #define PBT_APMOEMEVENT 0x000B
- #define PBT_APMRESUMEAUTOMATIC 0x0012
- #endif
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- #define WM_DEVICECHANGE 0x0219
- #endif /* WINVER >= 0x0400 */
- #define WM_MDICREATE 0x0220
- #define WM_MDIDESTROY 0x0221
- #define WM_MDIACTIVATE 0x0222
- #define WM_MDIRESTORE 0x0223
- #define WM_MDINEXT 0x0224
- #define WM_MDIMAXIMIZE 0x0225
- #define WM_MDITILE 0x0226
- #define WM_MDICASCADE 0x0227
- #define WM_MDIICONARRANGE 0x0228
- #define WM_MDIGETACTIVE 0x0229
- #define WM_MDISETMENU 0x0230
- #define WM_ENTERSIZEMOVE 0x0231
- #define WM_EXITSIZEMOVE 0x0232
- #define WM_DROPFILES 0x0233
- #define WM_MDIREFRESHMENU 0x0234
- #if(WINVER >= 0x0400)
- #define WM_IME_SETCONTEXT 0x0281
- #define WM_IME_NOTIFY 0x0282
- #define WM_IME_CONTROL 0x0283
- #define WM_IME_COMPOSITIONFULL 0x0284
- #define WM_IME_SELECT 0x0285
- #define WM_IME_CHAR 0x0286
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define WM_IME_REQUEST 0x0288
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0400)
- #define WM_IME_KEYDOWN 0x0290
- #define WM_IME_KEYUP 0x0291
- #endif /* WINVER >= 0x0400 */
- #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500))
- #define WM_MOUSEHOVER 0x02A1
- #define WM_MOUSELEAVE 0x02A3
- #endif
- #if(WINVER >= 0x0500)
- #define WM_NCMOUSEHOVER 0x02A0
- #define WM_NCMOUSELEAVE 0x02A2
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define WM_WTSSESSION_CHANGE 0x02B1
- #define WM_TABLET_FIRST 0x02c0
- #define WM_TABLET_LAST 0x02df
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define WM_CUT 0x0300
- #define WM_COPY 0x0301
- #define WM_PASTE 0x0302
- #define WM_CLEAR 0x0303
- #define WM_UNDO 0x0304
- #define WM_RENDERFORMAT 0x0305
- #define WM_RENDERALLFORMATS 0x0306
- #define WM_DESTROYCLIPBOARD 0x0307
- #define WM_DRAWCLIPBOARD 0x0308
- #define WM_PAINTCLIPBOARD 0x0309
- #define WM_VSCROLLCLIPBOARD 0x030A
- #define WM_SIZECLIPBOARD 0x030B
- #define WM_ASKCBFORMATNAME 0x030C
- #define WM_CHANGECBCHAIN 0x030D
- #define WM_HSCROLLCLIPBOARD 0x030E
- #define WM_QUERYNEWPALETTE 0x030F
- #define WM_PALETTEISCHANGING 0x0310
- #define WM_PALETTECHANGED 0x0311
- #define WM_HOTKEY 0x0312
- #if(WINVER >= 0x0400)
- #define WM_PRINT 0x0317
- #define WM_PRINTCLIENT 0x0318
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0500)
- #define WM_APPCOMMAND 0x0319
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define WM_THEMECHANGED 0x031A
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(WINVER >= 0x0400)
- #define WM_HANDHELDFIRST 0x0358
- #define WM_HANDHELDLAST 0x035F
- #define WM_AFXFIRST 0x0360
- #define WM_AFXLAST 0x037F
- #endif /* WINVER >= 0x0400 */
- #define WM_PENWINFIRST 0x0380
- #define WM_PENWINLAST 0x038F
- #if(WINVER >= 0x0400)
- #define WM_APP 0x8000
- #endif /* WINVER >= 0x0400 */
- /*
- * NOTE: All Message Numbers below 0x0400 are RESERVED.
- *
- * Private Window Messages Start Here:
- */
- #define WM_USER 0x0400
- #if(WINVER >= 0x0400)
- /* wParam for WM_SIZING message */
- #define WMSZ_LEFT 1
- #define WMSZ_RIGHT 2
- #define WMSZ_TOP 3
- #define WMSZ_TOPLEFT 4
- #define WMSZ_TOPRIGHT 5
- #define WMSZ_BOTTOM 6
- #define WMSZ_BOTTOMLEFT 7
- #define WMSZ_BOTTOMRIGHT 8
- #endif /* WINVER >= 0x0400 */
- #ifndef NONCMESSAGES
- /*
- * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
- */
- #define HTERROR (-2)
- #define HTTRANSPARENT (-1)
- #define HTNOWHERE 0
- #define HTCLIENT 1
- #define HTCAPTION 2
- #define HTSYSMENU 3
- #define HTGROWBOX 4
- #define HTSIZE HTGROWBOX
- #define HTMENU 5
- #define HTHSCROLL 6
- #define HTVSCROLL 7
- #define HTMINBUTTON 8
- #define HTMAXBUTTON 9
- #define HTLEFT 10
- #define HTRIGHT 11
- #define HTTOP 12
- #define HTTOPLEFT 13
- #define HTTOPRIGHT 14
- #define HTBOTTOM 15
- #define HTBOTTOMLEFT 16
- #define HTBOTTOMRIGHT 17
- #define HTBORDER 18
- #define HTREDUCE HTMINBUTTON
- #define HTZOOM HTMAXBUTTON
- #define HTSIZEFIRST HTLEFT
- #define HTSIZELAST HTBOTTOMRIGHT
- #if(WINVER >= 0x0400)
- #define HTOBJECT 19
- #define HTCLOSE 20
- #define HTHELP 21
- #endif /* WINVER >= 0x0400 */
- /*
- * SendMessageTimeout values
- */
- #define SMTO_NORMAL 0x0000
- #define SMTO_BLOCK 0x0001
- #define SMTO_ABORTIFHUNG 0x0002
- #if(WINVER >= 0x0500)
- #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
- #endif /* WINVER >= 0x0500 */
- #endif /* !NONCMESSAGES */
- /*
- * WM_MOUSEACTIVATE Return Codes
- */
- #define MA_ACTIVATE 1
- #define MA_ACTIVATEANDEAT 2
- #define MA_NOACTIVATE 3
- #define MA_NOACTIVATEANDEAT 4
- /*
- * WM_SETICON / WM_GETICON Type Codes
- */
- #define ICON_SMALL 0
- #define ICON_BIG 1
- #if(_WIN32_WINNT >= 0x0501)
- #define ICON_SMALL2 2
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- UINT
- WINAPI
- RegisterWindowMessageA(
- IN LPCSTR lpString);
- WINUSERAPI
- UINT
- WINAPI
- RegisterWindowMessageW(
- IN LPCWSTR lpString);
- #ifdef UNICODE
- #define RegisterWindowMessage RegisterWindowMessageW
- #else
- #define RegisterWindowMessage RegisterWindowMessageA
- #endif // !UNICODE
- /*
- * WM_SIZE message wParam values
- */
- #define SIZE_RESTORED 0
- #define SIZE_MINIMIZED 1
- #define SIZE_MAXIMIZED 2
- #define SIZE_MAXSHOW 3
- #define SIZE_MAXHIDE 4
- /*
- * Obsolete constant names
- */
- #define SIZENORMAL SIZE_RESTORED
- #define SIZEICONIC SIZE_MINIMIZED
- #define SIZEFULLSCREEN SIZE_MAXIMIZED
- #define SIZEZOOMSHOW SIZE_MAXSHOW
- #define SIZEZOOMHIDE SIZE_MAXHIDE
- /*
- * WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
- */
- typedef struct tagWINDOWPOS {
- HWND hwnd;
- HWND hwndInsertAfter;
- int x;
- int y;
- int cx;
- int cy;
- UINT flags;
- } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
- /*
- * WM_NCCALCSIZE parameter structure
- */
- typedef struct tagNCCALCSIZE_PARAMS {
- RECT rgrc[3];
- PWINDOWPOS lppos;
- } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
- /*
- * WM_NCCALCSIZE "window valid rect" return values
- */
- #define WVR_ALIGNTOP 0x0010
- #define WVR_ALIGNLEFT 0x0020
- #define WVR_ALIGNBOTTOM 0x0040
- #define WVR_ALIGNRIGHT 0x0080
- #define WVR_HREDRAW 0x0100
- #define WVR_VREDRAW 0x0200
- #define WVR_REDRAW (WVR_HREDRAW | \
- WVR_VREDRAW)
- #define WVR_VALIDRECTS 0x0400
- #ifndef NOKEYSTATES
- /*
- * Key State Masks for Mouse Messages
- */
- #define MK_LBUTTON 0x0001
- #define MK_RBUTTON 0x0002
- #define MK_SHIFT 0x0004
- #define MK_CONTROL 0x0008
- #define MK_MBUTTON 0x0010
- #if(_WIN32_WINNT >= 0x0500)
- #define MK_XBUTTON1 0x0020
- #define MK_XBUTTON2 0x0040
- #endif /* _WIN32_WINNT >= 0x0500 */
- #endif /* !NOKEYSTATES */
- #if(_WIN32_WINNT >= 0x0400)
- #ifndef NOTRACKMOUSEEVENT
- #define TME_HOVER 0x00000001
- #define TME_LEAVE 0x00000002
- #if(WINVER >= 0x0500)
- #define TME_NONCLIENT 0x00000010
- #endif /* WINVER >= 0x0500 */
- #define TME_QUERY 0x40000000
- #define TME_CANCEL 0x80000000
- #define HOVER_DEFAULT 0xFFFFFFFF
- #endif /* _WIN32_WINNT >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0400)
- typedef struct tagTRACKMOUSEEVENT {
- DWORD cbSize;
- DWORD dwFlags;
- HWND hwndTrack;
- DWORD dwHoverTime;
- } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
- WINUSERAPI
- BOOL
- WINAPI
- TrackMouseEvent(
- IN OUT LPTRACKMOUSEEVENT lpEventTrack);
- #endif /* _WIN32_WINNT >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0400)
- #endif /* !NOTRACKMOUSEEVENT */
- #endif /* _WIN32_WINNT >= 0x0400 */
- #endif /* !NOWINMESSAGES */
- #ifndef NOWINSTYLES
- /*
- * Window Styles
- */
- #define WS_OVERLAPPED 0x00000000L
- #define WS_POPUP 0x80000000L
- #define WS_CHILD 0x40000000L
- #define WS_MINIMIZE 0x20000000L
- #define WS_VISIBLE 0x10000000L
- #define WS_DISABLED 0x08000000L
- #define WS_CLIPSIBLINGS 0x04000000L
- #define WS_CLIPCHILDREN 0x02000000L
- #define WS_MAXIMIZE 0x01000000L
- #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */
- #define WS_BORDER 0x00800000L
- #define WS_DLGFRAME 0x00400000L
- #define WS_VSCROLL 0x00200000L
- #define WS_HSCROLL 0x00100000L
- #define WS_SYSMENU 0x00080000L
- #define WS_THICKFRAME 0x00040000L
- #define WS_GROUP 0x00020000L
- #define WS_TABSTOP 0x00010000L
- #define WS_MINIMIZEBOX 0x00020000L
- #define WS_MAXIMIZEBOX 0x00010000L
- #define WS_TILED WS_OVERLAPPED
- #define WS_ICONIC WS_MINIMIZE
- #define WS_SIZEBOX WS_THICKFRAME
- #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
- /*
- * Common Window Styles
- */
- #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \
- WS_CAPTION | \
- WS_SYSMENU | \
- WS_THICKFRAME | \
- WS_MINIMIZEBOX | \
- WS_MAXIMIZEBOX)
- #define WS_POPUPWINDOW (WS_POPUP | \
- WS_BORDER | \
- WS_SYSMENU)
- #define WS_CHILDWINDOW (WS_CHILD)
- /*
- * Extended Window Styles
- */
- #define WS_EX_DLGMODALFRAME 0x00000001L
- #define WS_EX_NOPARENTNOTIFY 0x00000004L
- #define WS_EX_TOPMOST 0x00000008L
- #define WS_EX_ACCEPTFILES 0x00000010L
- #define WS_EX_TRANSPARENT 0x00000020L
- #if(WINVER >= 0x0400)
- #define WS_EX_MDICHILD 0x00000040L
- #define WS_EX_TOOLWINDOW 0x00000080L
- #define WS_EX_WINDOWEDGE 0x00000100L
- #define WS_EX_CLIENTEDGE 0x00000200L
- #define WS_EX_CONTEXTHELP 0x00000400L
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- #define WS_EX_RIGHT 0x00001000L
- #define WS_EX_LEFT 0x00000000L
- #define WS_EX_RTLREADING 0x00002000L
- #define WS_EX_LTRREADING 0x00000000L
- #define WS_EX_LEFTSCROLLBAR 0x00004000L
- #define WS_EX_RIGHTSCROLLBAR 0x00000000L
- #define WS_EX_CONTROLPARENT 0x00010000L
- #define WS_EX_STATICEDGE 0x00020000L
- #define WS_EX_APPWINDOW 0x00040000L
- #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
- #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0500)
- #define WS_EX_LAYERED 0x00080000
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0500)
- #define WS_EX_NOINHERITLAYOUT 0x00100000L // Disable inheritence of mirroring by children
- #define WS_EX_LAYOUTRTL 0x00400000L // Right to left mirroring
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define WS_EX_COMPOSITED 0x02000000L
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(_WIN32_WINNT >= 0x0500)
- #define WS_EX_NOACTIVATE 0x08000000L
- #endif /* _WIN32_WINNT >= 0x0500 */
- /*
- * Class styles
- */
- #define CS_VREDRAW 0x0001
- #define CS_HREDRAW 0x0002
- #define CS_DBLCLKS 0x0008
- #define CS_OWNDC 0x0020
- #define CS_CLASSDC 0x0040
- #define CS_PARENTDC 0x0080
- #define CS_NOCLOSE 0x0200
- #define CS_SAVEBITS 0x0800
- #define CS_BYTEALIGNCLIENT 0x1000
- #define CS_BYTEALIGNWINDOW 0x2000
- #define CS_GLOBALCLASS 0x4000
- #define CS_IME 0x00010000
- #if(_WIN32_WINNT >= 0x0501)
- #define CS_DROPSHADOW 0x00020000
- #endif /* _WIN32_WINNT >= 0x0501 */
- #endif /* !NOWINSTYLES */
- #if(WINVER >= 0x0400)
- /* WM_PRINT flags */
- #define PRF_CHECKVISIBLE 0x00000001L
- #define PRF_NONCLIENT 0x00000002L
- #define PRF_CLIENT 0x00000004L
- #define PRF_ERASEBKGND 0x00000008L
- #define PRF_CHILDREN 0x00000010L
- #define PRF_OWNED 0x00000020L
- /* 3D border styles */
- #define BDR_RAISEDOUTER 0x0001
- #define BDR_SUNKENOUTER 0x0002
- #define BDR_RAISEDINNER 0x0004
- #define BDR_SUNKENINNER 0x0008
- #define BDR_OUTER (BDR_RAISEDOUTER | BDR_SUNKENOUTER)
- #define BDR_INNER (BDR_RAISEDINNER | BDR_SUNKENINNER)
- #define BDR_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
- #define BDR_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
- #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
- #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
- #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
- #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)
- /* Border flags */
- #define BF_LEFT 0x0001
- #define BF_TOP 0x0002
- #define BF_RIGHT 0x0004
- #define BF_BOTTOM 0x0008
- #define BF_TOPLEFT (BF_TOP | BF_LEFT)
- #define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
- #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
- #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
- #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
- #define BF_DIAGONAL 0x0010
- // For diagonal lines, the BF_RECT flags specify the end point of the
- // vector bounded by the rectangle parameter.
- #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
- #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
- #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
- #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
- #define BF_MIDDLE 0x0800 /* Fill in the middle */
- #define BF_SOFT 0x1000 /* For softer buttons */
- #define BF_ADJUST 0x2000 /* Calculate the space left over */
- #define BF_FLAT 0x4000 /* For flat rather than 3D borders */
- #define BF_MONO 0x8000 /* For monochrome borders */
- WINUSERAPI
- BOOL
- WINAPI
- DrawEdge(
- IN HDC hdc,
- IN OUT LPRECT qrc,
- IN UINT edge,
- IN UINT grfFlags);
- /* flags for DrawFrameControl */
- #define DFC_CAPTION 1
- #define DFC_MENU 2
- #define DFC_SCROLL 3
- #define DFC_BUTTON 4
- #if(WINVER >= 0x0500)
- #define DFC_POPUPMENU 5
- #endif /* WINVER >= 0x0500 */
- #define DFCS_CAPTIONCLOSE 0x0000
- #define DFCS_CAPTIONMIN 0x0001
- #define DFCS_CAPTIONMAX 0x0002
- #define DFCS_CAPTIONRESTORE 0x0003
- #define DFCS_CAPTIONHELP 0x0004
- #define DFCS_MENUARROW 0x0000
- #define DFCS_MENUCHECK 0x0001
- #define DFCS_MENUBULLET 0x0002
- #define DFCS_MENUARROWRIGHT 0x0004
- #define DFCS_SCROLLUP 0x0000
- #define DFCS_SCROLLDOWN 0x0001
- #define DFCS_SCROLLLEFT 0x0002
- #define DFCS_SCROLLRIGHT 0x0003
- #define DFCS_SCROLLCOMBOBOX 0x0005
- #define DFCS_SCROLLSIZEGRIP 0x0008
- #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
- #define DFCS_BUTTONCHECK 0x0000
- #define DFCS_BUTTONRADIOIMAGE 0x0001
- #define DFCS_BUTTONRADIOMASK 0x0002
- #define DFCS_BUTTONRADIO 0x0004
- #define DFCS_BUTTON3STATE 0x0008
- #define DFCS_BUTTONPUSH 0x0010
- #define DFCS_INACTIVE 0x0100
- #define DFCS_PUSHED 0x0200
- #define DFCS_CHECKED 0x0400
- #if(WINVER >= 0x0500)
- #define DFCS_TRANSPARENT 0x0800
- #define DFCS_HOT 0x1000
- #endif /* WINVER >= 0x0500 */
- #define DFCS_ADJUSTRECT 0x2000
- #define DFCS_FLAT 0x4000
- #define DFCS_MONO 0x8000
- WINUSERAPI
- BOOL
- WINAPI
- DrawFrameControl(
- IN HDC,
- IN OUT LPRECT,
- IN UINT,
- IN UINT);
- /* flags for DrawCaption */
- #define DC_ACTIVE 0x0001
- #define DC_SMALLCAP 0x0002
- #define DC_ICON 0x0004
- #define DC_TEXT 0x0008
- #define DC_INBUTTON 0x0010
- #if(WINVER >= 0x0500)
- #define DC_GRADIENT 0x0020
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define DC_BUTTONS 0x1000
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- BOOL
- WINAPI
- DrawCaption(IN HWND, IN HDC, IN CONST RECT *, IN UINT);
- #define IDANI_OPEN 1
- #define IDANI_CAPTION 3
- WINUSERAPI
- BOOL
- WINAPI
- DrawAnimatedRects(
- IN HWND hwnd,
- IN int idAni,
- IN CONST RECT * lprcFrom,
- IN CONST RECT * lprcTo);
- #endif /* WINVER >= 0x0400 */
- #ifndef NOCLIPBOARD
- /*
- * Predefined Clipboard Formats
- */
- #define CF_TEXT 1
- #define CF_BITMAP 2
- #define CF_METAFILEPICT 3
- #define CF_SYLK 4
- #define CF_DIF 5
- #define CF_TIFF 6
- #define CF_OEMTEXT 7
- #define CF_DIB 8
- #define CF_PALETTE 9
- #define CF_PENDATA 10
- #define CF_RIFF 11
- #define CF_WAVE 12
- #define CF_UNICODETEXT 13
- #define CF_ENHMETAFILE 14
- #if(WINVER >= 0x0400)
- #define CF_HDROP 15
- #define CF_LOCALE 16
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define CF_DIBV5 17
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0500)
- #define CF_MAX 18
- #elif(WINVER >= 0x0400)
- #define CF_MAX 17
- #else
- #define CF_MAX 15
- #endif
- #define CF_OWNERDISPLAY 0x0080
- #define CF_DSPTEXT 0x0081
- #define CF_DSPBITMAP 0x0082
- #define CF_DSPMETAFILEPICT 0x0083
- #define CF_DSPENHMETAFILE 0x008E
- /*
- * "Private" formats don't get GlobalFree()'d
- */
- #define CF_PRIVATEFIRST 0x0200
- #define CF_PRIVATELAST 0x02FF
- /*
- * "GDIOBJ" formats do get DeleteObject()'d
- */
- #define CF_GDIOBJFIRST 0x0300
- #define CF_GDIOBJLAST 0x03FF
- #endif /* !NOCLIPBOARD */
- /*
- * Defines for the fVirt field of the Accelerator table structure.
- */
- #define FVIRTKEY TRUE /* Assumed to be == TRUE */
- #define FNOINVERT 0x02
- #define FSHIFT 0x04
- #define FCONTROL 0x08
- #define FALT 0x10
- typedef struct tagACCEL {
- #ifndef _MAC
- BYTE fVirt; /* Also called the flags field */
- WORD key;
- WORD cmd;
- #else
- WORD fVirt; /* Also called the flags field */
- WORD key;
- DWORD cmd;
- #endif
- } ACCEL, *LPACCEL;
- typedef struct tagPAINTSTRUCT {
- HDC hdc;
- BOOL fErase;
- RECT rcPaint;
- BOOL fRestore;
- BOOL fIncUpdate;
- BYTE rgbReserved[32];
- } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
- typedef struct tagCREATESTRUCTA {
- LPVOID lpCreateParams;
- HINSTANCE hInstance;
- HMENU hMenu;
- HWND hwndParent;
- int cy;
- int cx;
- int y;
- int x;
- LONG style;
- LPCSTR lpszName;
- LPCSTR lpszClass;
- DWORD dwExStyle;
- } CREATESTRUCTA, *LPCREATESTRUCTA;
- typedef struct tagCREATESTRUCTW {
- LPVOID lpCreateParams;
- HINSTANCE hInstance;
- HMENU hMenu;
- HWND hwndParent;
- int cy;
- int cx;
- int y;
- int x;
- LONG style;
- LPCWSTR lpszName;
- LPCWSTR lpszClass;
- DWORD dwExStyle;
- } CREATESTRUCTW, *LPCREATESTRUCTW;
- #ifdef UNICODE
- typedef CREATESTRUCTW CREATESTRUCT;
- typedef LPCREATESTRUCTW LPCREATESTRUCT;
- #else
- typedef CREATESTRUCTA CREATESTRUCT;
- typedef LPCREATESTRUCTA LPCREATESTRUCT;
- #endif // UNICODE
- typedef struct tagWINDOWPLACEMENT {
- UINT length;
- UINT flags;
- UINT showCmd;
- POINT ptMinPosition;
- POINT ptMaxPosition;
- RECT rcNormalPosition;
- #ifdef _MAC
- RECT rcDevice;
- #endif
- } WINDOWPLACEMENT;
- typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;
- #define WPF_SETMINPOSITION 0x0001
- #define WPF_RESTORETOMAXIMIZED 0x0002
- #if(_WIN32_WINNT >= 0x0500)
- #define WPF_ASYNCWINDOWPLACEMENT 0x0004
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0400)
- typedef struct tagNMHDR
- {
- HWND hwndFrom;
- UINT_PTR idFrom;
- UINT code; // NM_ code
- } NMHDR;
- typedef NMHDR FAR * LPNMHDR;
- typedef struct tagSTYLESTRUCT
- {
- DWORD styleOld;
- DWORD styleNew;
- } STYLESTRUCT, * LPSTYLESTRUCT;
- #endif /* WINVER >= 0x0400 */
- /*
- * Owner draw control types
- */
- #define ODT_MENU 1
- #define ODT_LISTBOX 2
- #define ODT_COMBOBOX 3
- #define ODT_BUTTON 4
- #if(WINVER >= 0x0400)
- #define ODT_STATIC 5
- #endif /* WINVER >= 0x0400 */
- /*
- * Owner draw actions
- */
- #define ODA_DRAWENTIRE 0x0001
- #define ODA_SELECT 0x0002
- #define ODA_FOCUS 0x0004
- /*
- * Owner draw state
- */
- #define ODS_SELECTED 0x0001
- #define ODS_GRAYED 0x0002
- #define ODS_DISABLED 0x0004
- #define ODS_CHECKED 0x0008
- #define ODS_FOCUS 0x0010
- #if(WINVER >= 0x0400)
- #define ODS_DEFAULT 0x0020
- #define ODS_COMBOBOXEDIT 0x1000
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define ODS_HOTLIGHT 0x0040
- #define ODS_INACTIVE 0x0080
- #if(_WIN32_WINNT >= 0x0500)
- #define ODS_NOACCEL 0x0100
- #define ODS_NOFOCUSRECT 0x0200
- #endif /* _WIN32_WINNT >= 0x0500 */
- #endif /* WINVER >= 0x0500 */
- /*
- * MEASUREITEMSTRUCT for ownerdraw
- */
- typedef struct tagMEASUREITEMSTRUCT {
- UINT CtlType;
- UINT CtlID;
- UINT itemID;
- UINT itemWidth;
- UINT itemHeight;
- ULONG_PTR itemData;
- } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;
- /*
- * DRAWITEMSTRUCT for ownerdraw
- */
- typedef struct tagDRAWITEMSTRUCT {
- UINT CtlType;
- UINT CtlID;
- UINT itemID;
- UINT itemAction;
- UINT itemState;
- HWND hwndItem;
- HDC hDC;
- RECT rcItem;
- ULONG_PTR itemData;
- } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;
- /*
- * DELETEITEMSTRUCT for ownerdraw
- */
- typedef struct tagDELETEITEMSTRUCT {
- UINT CtlType;
- UINT CtlID;
- UINT itemID;
- HWND hwndItem;
- ULONG_PTR itemData;
- } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT;
- /*
- * COMPAREITEMSTUCT for ownerdraw sorting
- */
- typedef struct tagCOMPAREITEMSTRUCT {
- UINT CtlType;
- UINT CtlID;
- HWND hwndItem;
- UINT itemID1;
- ULONG_PTR itemData1;
- UINT itemID2;
- ULONG_PTR itemData2;
- DWORD dwLocaleId;
- } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;
- #ifndef NOMSG
- /*
- * Message Function Templates
- */
- WINUSERAPI
- BOOL
- WINAPI
- GetMessageA(
- OUT LPMSG lpMsg,
- IN HWND hWnd,
- IN UINT wMsgFilterMin,
- IN UINT wMsgFilterMax);
- WINUSERAPI
- BOOL
- WINAPI
- GetMessageW(
- OUT LPMSG lpMsg,
- IN HWND hWnd,
- IN UINT wMsgFilterMin,
- IN UINT wMsgFilterMax);
- #ifdef UNICODE
- #define GetMessage GetMessageW
- #else
- #define GetMessage GetMessageA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- TranslateMessage(
- IN CONST MSG *lpMsg);
- WINUSERAPI
- LRESULT
- WINAPI
- DispatchMessageA(
- IN CONST MSG *lpMsg);
- WINUSERAPI
- LRESULT
- WINAPI
- DispatchMessageW(
- IN CONST MSG *lpMsg);
- #ifdef UNICODE
- #define DispatchMessage DispatchMessageW
- #else
- #define DispatchMessage DispatchMessageA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SetMessageQueue(
- IN int cMessagesMax);
- WINUSERAPI
- BOOL
- WINAPI
- PeekMessageA(
- OUT LPMSG lpMsg,
- IN HWND hWnd,
- IN UINT wMsgFilterMin,
- IN UINT wMsgFilterMax,
- IN UINT wRemoveMsg);
- WINUSERAPI
- BOOL
- WINAPI
- PeekMessageW(
- OUT LPMSG lpMsg,
- IN HWND hWnd,
- IN UINT wMsgFilterMin,
- IN UINT wMsgFilterMax,
- IN UINT wRemoveMsg);
- #ifdef UNICODE
- #define PeekMessage PeekMessageW
- #else
- #define PeekMessage PeekMessageA
- #endif // !UNICODE
- /*
- * PeekMessage() Options
- */
- #define PM_NOREMOVE 0x0000
- #define PM_REMOVE 0x0001
- #define PM_NOYIELD 0x0002
- #if(WINVER >= 0x0500)
- #define PM_QS_INPUT (QS_INPUT << 16)
- #define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
- #define PM_QS_PAINT (QS_PAINT << 16)
- #define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
- #endif /* WINVER >= 0x0500 */
- #endif /* !NOMSG */
- WINUSERAPI
- BOOL
- WINAPI
- RegisterHotKey(
- IN HWND hWnd,
- IN int id,
- IN UINT fsModifiers,
- IN UINT vk);
- WINUSERAPI
- BOOL
- WINAPI
- UnregisterHotKey(
- IN HWND hWnd,
- IN int id);
- #define MOD_ALT 0x0001
- #define MOD_CONTROL 0x0002
- #define MOD_SHIFT 0x0004
- #define MOD_WIN 0x0008
- #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
- #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */
- #ifdef WIN_INTERNAL
- #ifndef LSTRING
- #define NOLSTRING
- #endif /* LSTRING */
- #ifndef LFILEIO
- #define NOLFILEIO
- #endif /* LFILEIO */
- #endif /* WIN_INTERNAL */
- #if(WINVER >= 0x0400)
- #define ENDSESSION_LOGOFF 0x80000000
- #endif /* WINVER >= 0x0400 */
- #define EWX_LOGOFF 0
- #define EWX_SHUTDOWN 0x00000001
- #define EWX_REBOOT 0x00000002
- #define EWX_FORCE 0x00000004
- #define EWX_POWEROFF 0x00000008
- #if(_WIN32_WINNT >= 0x0500)
- #define EWX_FORCEIFHUNG 0x00000010
- #endif /* _WIN32_WINNT >= 0x0500 */
- #define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF)
- WINUSERAPI
- BOOL
- WINAPI
- ExitWindowsEx(
- IN UINT uFlags,
- IN DWORD dwReserved);
- WINUSERAPI
- BOOL
- WINAPI
- SwapMouseButton(
- IN BOOL fSwap);
- WINUSERAPI
- DWORD
- WINAPI
- GetMessagePos(
- VOID);
- WINUSERAPI
- LONG
- WINAPI
- GetMessageTime(
- VOID);
- WINUSERAPI
- LPARAM
- WINAPI
- GetMessageExtraInfo(
- VOID);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- LPARAM
- WINAPI
- SetMessageExtraInfo(
- IN LPARAM lParam);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- LRESULT
- WINAPI
- SendMessageA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- LRESULT
- WINAPI
- SendMessageW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define SendMessage SendMessageW
- #else
- #define SendMessage SendMessageA
- #endif // !UNICODE
- WINUSERAPI
- LRESULT
- WINAPI
- SendMessageTimeoutA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam,
- IN UINT fuFlags,
- IN UINT uTimeout,
- OUT PDWORD_PTR lpdwResult);
- WINUSERAPI
- LRESULT
- WINAPI
- SendMessageTimeoutW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam,
- IN UINT fuFlags,
- IN UINT uTimeout,
- OUT PDWORD_PTR lpdwResult);
- #ifdef UNICODE
- #define SendMessageTimeout SendMessageTimeoutW
- #else
- #define SendMessageTimeout SendMessageTimeoutA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SendNotifyMessageA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- SendNotifyMessageW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define SendNotifyMessage SendNotifyMessageW
- #else
- #define SendNotifyMessage SendNotifyMessageA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SendMessageCallbackA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam,
- IN SENDASYNCPROC lpResultCallBack,
- IN ULONG_PTR dwData);
- WINUSERAPI
- BOOL
- WINAPI
- SendMessageCallbackW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam,
- IN SENDASYNCPROC lpResultCallBack,
- IN ULONG_PTR dwData);
- #ifdef UNICODE
- #define SendMessageCallback SendMessageCallbackW
- #else
- #define SendMessageCallback SendMessageCallbackA
- #endif // !UNICODE
- #if(_WIN32_WINNT >= 0x0501)
- typedef struct {
- UINT cbSize;
- HDESK hdesk;
- HWND hwnd;
- LUID luid;
- } BSMINFO, *PBSMINFO;
- WINUSERAPI
- long
- WINAPI
- BroadcastSystemMessageExA(
- IN DWORD,
- IN LPDWORD,
- IN UINT,
- IN WPARAM,
- IN LPARAM,
- OUT PBSMINFO);
- WINUSERAPI
- long
- WINAPI
- BroadcastSystemMessageExW(
- IN DWORD,
- IN LPDWORD,
- IN UINT,
- IN WPARAM,
- IN LPARAM,
- OUT PBSMINFO);
- #ifdef UNICODE
- #define BroadcastSystemMessageEx BroadcastSystemMessageExW
- #else
- #define BroadcastSystemMessageEx BroadcastSystemMessageExA
- #endif // !UNICODE
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(WINVER >= 0x0400)
- #if defined(_WIN32_WINNT)
- WINUSERAPI
- long
- WINAPI
- BroadcastSystemMessageA(
- IN DWORD,
- IN LPDWORD,
- IN UINT,
- IN WPARAM,
- IN LPARAM);
- WINUSERAPI
- long
- WINAPI
- BroadcastSystemMessageW(
- IN DWORD,
- IN LPDWORD,
- IN UINT,
- IN WPARAM,
- IN LPARAM);
- #ifdef UNICODE
- #define BroadcastSystemMessage BroadcastSystemMessageW
- #else
- #define BroadcastSystemMessage BroadcastSystemMessageA
- #endif // !UNICODE
- #elif defined(_WIN32_WINDOWS)
- // The Win95 version isn't A/W decorated
- WINUSERAPI
- long
- WINAPI
- BroadcastSystemMessage(
- IN DWORD,
- IN LPDWORD,
- IN UINT,
- IN WPARAM,
- IN LPARAM);
- #endif
- //Broadcast Special Message Recipient list
- #define BSM_ALLCOMPONENTS 0x00000000
- #define BSM_VXDS 0x00000001
- #define BSM_NETDRIVER 0x00000002
- #define BSM_INSTALLABLEDRIVERS 0x00000004
- #define BSM_APPLICATIONS 0x00000008
- #define BSM_ALLDESKTOPS 0x00000010
- //Broadcast Special Message Flags
- #define BSF_QUERY 0x00000001
- #define BSF_IGNORECURRENTTASK 0x00000002
- #define BSF_FLUSHDISK 0x00000004
- #define BSF_NOHANG 0x00000008
- #define BSF_POSTMESSAGE 0x00000010
- #define BSF_FORCEIFHUNG 0x00000020
- #define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
- #if(_WIN32_WINNT >= 0x0500)
- #define BSF_ALLOWSFW 0x00000080
- #define BSF_SENDNOTIFYMESSAGE 0x00000100
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define BSF_RETURNHDESK 0x00000200
- #define BSF_LUID 0x00000400
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define BROADCAST_QUERY_DENY 0x424D5144 // Return this value to deny a query.
- #endif /* WINVER >= 0x0400 */
- // RegisterDeviceNotification
- #if(WINVER >= 0x0500)
- typedef PVOID HDEVNOTIFY;
- typedef HDEVNOTIFY *PHDEVNOTIFY;
- #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
- #define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001
- #if(_WIN32_WINNT >= 0x0501)
- #define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- HDEVNOTIFY
- WINAPI
- RegisterDeviceNotificationA(
- IN HANDLE hRecipient,
- IN LPVOID NotificationFilter,
- IN DWORD Flags
- );
- WINUSERAPI
- HDEVNOTIFY
- WINAPI
- RegisterDeviceNotificationW(
- IN HANDLE hRecipient,
- IN LPVOID NotificationFilter,
- IN DWORD Flags
- );
- #ifdef UNICODE
- #define RegisterDeviceNotification RegisterDeviceNotificationW
- #else
- #define RegisterDeviceNotification RegisterDeviceNotificationA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- UnregisterDeviceNotification(
- IN HDEVNOTIFY Handle
- );
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- BOOL
- WINAPI
- PostMessageA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- PostMessageW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define PostMessage PostMessageW
- #else
- #define PostMessage PostMessageA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- PostThreadMessageA(
- IN DWORD idThread,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- PostThreadMessageW(
- IN DWORD idThread,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define PostThreadMessage PostThreadMessageW
- #else
- #define PostThreadMessage PostThreadMessageA
- #endif // !UNICODE
- #define PostAppMessageA(idThread, wMsg, wParam, lParam)\
- PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam)
- #define PostAppMessageW(idThread, wMsg, wParam, lParam)\
- PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam)
- #ifdef UNICODE
- #define PostAppMessage PostAppMessageW
- #else
- #define PostAppMessage PostAppMessageA
- #endif // !UNICODE
- /*
- * Special HWND value for use with PostMessage() and SendMessage()
- */
- #define HWND_BROADCAST ((HWND)0xffff)
- #if(WINVER >= 0x0500)
- #define HWND_MESSAGE ((HWND)-3)
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- BOOL
- WINAPI
- AttachThreadInput(
- IN DWORD idAttach,
- IN DWORD idAttachTo,
- IN BOOL fAttach);
- WINUSERAPI
- BOOL
- WINAPI
- ReplyMessage(
- IN LRESULT lResult);
- WINUSERAPI
- BOOL
- WINAPI
- WaitMessage(
- VOID);
- WINUSERAPI
- DWORD
- WINAPI
- WaitForInputIdle(
- IN HANDLE hProcess,
- IN DWORD dwMilliseconds);
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefWindowProcA(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefWindowProcW(
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define DefWindowProc DefWindowProcW
- #else
- #define DefWindowProc DefWindowProcA
- #endif // !UNICODE
- WINUSERAPI
- VOID
- WINAPI
- PostQuitMessage(
- IN int nExitCode);
- #ifdef STRICT
- WINUSERAPI
- LRESULT
- WINAPI
- CallWindowProcA(
- IN WNDPROC lpPrevWndFunc,
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- LRESULT
- WINAPI
- CallWindowProcW(
- IN WNDPROC lpPrevWndFunc,
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define CallWindowProc CallWindowProcW
- #else
- #define CallWindowProc CallWindowProcA
- #endif // !UNICODE
- #else /* !STRICT */
- WINUSERAPI
- LRESULT
- WINAPI
- CallWindowProcA(
- IN FARPROC lpPrevWndFunc,
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- LRESULT
- WINAPI
- CallWindowProcW(
- IN FARPROC lpPrevWndFunc,
- IN HWND hWnd,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define CallWindowProc CallWindowProcW
- #else
- #define CallWindowProc CallWindowProcA
- #endif // !UNICODE
- #endif /* !STRICT */
- WINUSERAPI
- BOOL
- WINAPI
- InSendMessage(
- VOID);
- #if(WINVER >= 0x0500)
- WINUSERAPI
- DWORD
- WINAPI
- InSendMessageEx(
- IN LPVOID lpReserved);
- /*
- * InSendMessageEx return value
- */
- #define ISMEX_NOSEND 0x00000000
- #define ISMEX_SEND 0x00000001
- #define ISMEX_NOTIFY 0x00000002
- #define ISMEX_CALLBACK 0x00000004
- #define ISMEX_REPLIED 0x00000008
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- UINT
- WINAPI
- GetDoubleClickTime(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- SetDoubleClickTime(
- IN UINT);
- WINUSERAPI
- ATOM
- WINAPI
- RegisterClassA(
- IN CONST WNDCLASSA *lpWndClass);
- WINUSERAPI
- ATOM
- WINAPI
- RegisterClassW(
- IN CONST WNDCLASSW *lpWndClass);
- #ifdef UNICODE
- #define RegisterClass RegisterClassW
- #else
- #define RegisterClass RegisterClassA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- UnregisterClassA(
- IN LPCSTR lpClassName,
- IN HINSTANCE hInstance);
- WINUSERAPI
- BOOL
- WINAPI
- UnregisterClassW(
- IN LPCWSTR lpClassName,
- IN HINSTANCE hInstance);
- #ifdef UNICODE
- #define UnregisterClass UnregisterClassW
- #else
- #define UnregisterClass UnregisterClassA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- GetClassInfoA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpClassName,
- OUT LPWNDCLASSA lpWndClass);
- WINUSERAPI
- BOOL
- WINAPI
- GetClassInfoW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpClassName,
- OUT LPWNDCLASSW lpWndClass);
- #ifdef UNICODE
- #define GetClassInfo GetClassInfoW
- #else
- #define GetClassInfo GetClassInfoA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- ATOM
- WINAPI
- RegisterClassExA(
- IN CONST WNDCLASSEXA *);
- WINUSERAPI
- ATOM
- WINAPI
- RegisterClassExW(
- IN CONST WNDCLASSEXW *);
- #ifdef UNICODE
- #define RegisterClassEx RegisterClassExW
- #else
- #define RegisterClassEx RegisterClassExA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- GetClassInfoExA(
- IN HINSTANCE,
- IN LPCSTR,
- OUT LPWNDCLASSEXA);
- WINUSERAPI
- BOOL
- WINAPI
- GetClassInfoExW(
- IN HINSTANCE,
- IN LPCWSTR,
- OUT LPWNDCLASSEXW);
- #ifdef UNICODE
- #define GetClassInfoEx GetClassInfoExW
- #else
- #define GetClassInfoEx GetClassInfoExA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- #define CW_USEDEFAULT ((int)0x80000000)
- /*
- * Special value for CreateWindow, et al.
- */
- #define HWND_DESKTOP ((HWND)0)
- #if(_WIN32_WINNT >= 0x0501)
- typedef BOOLEAN (WINAPI * PREGISTERCLASSNAMEW)(LPCWSTR);
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- HWND
- WINAPI
- CreateWindowExA(
- IN DWORD dwExStyle,
- IN LPCSTR lpClassName,
- IN LPCSTR lpWindowName,
- IN DWORD dwStyle,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight,
- IN HWND hWndParent,
- IN HMENU hMenu,
- IN HINSTANCE hInstance,
- IN LPVOID lpParam);
- WINUSERAPI
- HWND
- WINAPI
- CreateWindowExW(
- IN DWORD dwExStyle,
- IN LPCWSTR lpClassName,
- IN LPCWSTR lpWindowName,
- IN DWORD dwStyle,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight,
- IN HWND hWndParent,
- IN HMENU hMenu,
- IN HINSTANCE hInstance,
- IN LPVOID lpParam);
- #ifdef UNICODE
- #define CreateWindowEx CreateWindowExW
- #else
- #define CreateWindowEx CreateWindowExA
- #endif // !UNICODE
- #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
- nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
- CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
- nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
- #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
- nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
- CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
- nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
- #ifdef UNICODE
- #define CreateWindow CreateWindowW
- #else
- #define CreateWindow CreateWindowA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- IsWindow(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- IsMenu(
- IN HMENU hMenu);
- WINUSERAPI
- BOOL
- WINAPI
- IsChild(
- IN HWND hWndParent,
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- DestroyWindow(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- ShowWindow(
- IN HWND hWnd,
- IN int nCmdShow);
- #if(WINVER >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- AnimateWindow(
- IN HWND hWnd,
- IN DWORD dwTime,
- IN DWORD dwFlags);
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0500)
- #if defined(_WINGDI_) && !defined (NOGDI)
- WINUSERAPI
- BOOL
- WINAPI
- UpdateLayeredWindow(
- HWND hWnd,
- HDC hdcDst,
- POINT *pptDst,
- SIZE *psize,
- HDC hdcSrc,
- POINT *pptSrc,
- COLORREF crKey,
- BLENDFUNCTION *pblend,
- DWORD dwFlags);
- #endif
- #if(_WIN32_WINNT >= 0x0501)
- WINUSERAPI
- BOOL
- WINAPI
- GetLayeredWindowAttributes(
- HWND hwnd,
- COLORREF *pcrKey,
- BYTE *pbAlpha,
- DWORD *pdwFlags);
- #define PW_CLIENTONLY 0x00000001
- WINUSERAPI
- BOOL
- WINAPI
- PrintWindow(
- IN HWND hwnd,
- IN HDC hdcBlt,
- IN UINT nFlags);
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- BOOL
- WINAPI
- SetLayeredWindowAttributes(
- HWND hwnd,
- COLORREF crKey,
- BYTE bAlpha,
- DWORD dwFlags);
- #define LWA_COLORKEY 0x00000001
- #define LWA_ALPHA 0x00000002
- #define ULW_COLORKEY 0x00000001
- #define ULW_ALPHA 0x00000002
- #define ULW_OPAQUE 0x00000004
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0400)
- WINUSERAPI
- BOOL
- WINAPI
- ShowWindowAsync(
- IN HWND hWnd,
- IN int nCmdShow);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- FlashWindow(
- IN HWND hWnd,
- IN BOOL bInvert);
- #if(WINVER >= 0x0500)
- typedef struct {
- UINT cbSize;
- HWND hwnd;
- DWORD dwFlags;
- UINT uCount;
- DWORD dwTimeout;
- } FLASHWINFO, *PFLASHWINFO;
- WINUSERAPI
- BOOL
- WINAPI
- FlashWindowEx(
- PFLASHWINFO pfwi);
- #define FLASHW_STOP 0
- #define FLASHW_CAPTION 0x00000001
- #define FLASHW_TRAY 0x00000002
- #define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY)
- #define FLASHW_TIMER 0x00000004
- #define FLASHW_TIMERNOFG 0x0000000C
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- BOOL
- WINAPI
- ShowOwnedPopups(
- IN HWND hWnd,
- IN BOOL fShow);
- WINUSERAPI
- BOOL
- WINAPI
- OpenIcon(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- CloseWindow(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- MoveWindow(
- IN HWND hWnd,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight,
- IN BOOL bRepaint);
- WINUSERAPI
- BOOL
- WINAPI
- SetWindowPos(
- IN HWND hWnd,
- IN HWND hWndInsertAfter,
- IN int X,
- IN int Y,
- IN int cx,
- IN int cy,
- IN UINT uFlags);
- WINUSERAPI
- BOOL
- WINAPI
- GetWindowPlacement(
- IN HWND hWnd,
- OUT WINDOWPLACEMENT *lpwndpl);
- WINUSERAPI
- BOOL
- WINAPI
- SetWindowPlacement(
- IN HWND hWnd,
- IN CONST WINDOWPLACEMENT *lpwndpl);
- #ifndef NODEFERWINDOWPOS
- WINUSERAPI
- HDWP
- WINAPI
- BeginDeferWindowPos(
- IN int nNumWindows);
- WINUSERAPI
- HDWP
- WINAPI
- DeferWindowPos(
- IN HDWP hWinPosInfo,
- IN HWND hWnd,
- IN HWND hWndInsertAfter,
- IN int x,
- IN int y,
- IN int cx,
- IN int cy,
- IN UINT uFlags);
- WINUSERAPI
- BOOL
- WINAPI
- EndDeferWindowPos(
- IN HDWP hWinPosInfo);
- #endif /* !NODEFERWINDOWPOS */
- WINUSERAPI
- BOOL
- WINAPI
- IsWindowVisible(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- IsIconic(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- AnyPopup(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- BringWindowToTop(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- IsZoomed(
- IN HWND hWnd);
- /*
- * SetWindowPos Flags
- */
- #define SWP_NOSIZE 0x0001
- #define SWP_NOMOVE 0x0002
- #define SWP_NOZORDER 0x0004
- #define SWP_NOREDRAW 0x0008
- #define SWP_NOACTIVATE 0x0010
- #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
- #define SWP_SHOWWINDOW 0x0040
- #define SWP_HIDEWINDOW 0x0080
- #define SWP_NOCOPYBITS 0x0100
- #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
- #define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */
- #define SWP_DRAWFRAME SWP_FRAMECHANGED
- #define SWP_NOREPOSITION SWP_NOOWNERZORDER
- #if(WINVER >= 0x0400)
- #define SWP_DEFERERASE 0x2000
- #define SWP_ASYNCWINDOWPOS 0x4000
- #endif /* WINVER >= 0x0400 */
- #define HWND_TOP ((HWND)0)
- #define HWND_BOTTOM ((HWND)1)
- #define HWND_TOPMOST ((HWND)-1)
- #define HWND_NOTOPMOST ((HWND)-2)
- #ifndef NOCTLMGR
- /*
- * WARNING:
- * The following structures must NOT be DWORD padded because they are
- * followed by strings, etc that do not have to be DWORD aligned.
- */
- #include <pshpack2.h>
- /*
- * original NT 32 bit dialog template:
- */
- typedef struct {
- DWORD style;
- DWORD dwExtendedStyle;
- WORD cdit;
- short x;
- short y;
- short cx;
- short cy;
- } DLGTEMPLATE;
- typedef DLGTEMPLATE *LPDLGTEMPLATEA;
- typedef DLGTEMPLATE *LPDLGTEMPLATEW;
- #ifdef UNICODE
- typedef LPDLGTEMPLATEW LPDLGTEMPLATE;
- #else
- typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
- #endif // UNICODE
- typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
- typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
- #ifdef UNICODE
- typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
- #else
- typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
- #endif // UNICODE
- /*
- * 32 bit Dialog item template.
- */
- typedef struct {
- DWORD style;
- DWORD dwExtendedStyle;
- short x;
- short y;
- short cx;
- short cy;
- WORD id;
- } DLGITEMTEMPLATE;
- typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
- typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
- #ifdef UNICODE
- typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
- #else
- typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
- #endif // UNICODE
- typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
- typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
- #ifdef UNICODE
- typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
- #else
- typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
- #endif // UNICODE
- #include <poppack.h> /* Resume normal packing */
- WINUSERAPI
- HWND
- WINAPI
- CreateDialogParamA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpTemplateName,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- WINUSERAPI
- HWND
- WINAPI
- CreateDialogParamW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpTemplateName,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- #ifdef UNICODE
- #define CreateDialogParam CreateDialogParamW
- #else
- #define CreateDialogParam CreateDialogParamA
- #endif // !UNICODE
- WINUSERAPI
- HWND
- WINAPI
- CreateDialogIndirectParamA(
- IN HINSTANCE hInstance,
- IN LPCDLGTEMPLATEA lpTemplate,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- WINUSERAPI
- HWND
- WINAPI
- CreateDialogIndirectParamW(
- IN HINSTANCE hInstance,
- IN LPCDLGTEMPLATEW lpTemplate,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- #ifdef UNICODE
- #define CreateDialogIndirectParam CreateDialogIndirectParamW
- #else
- #define CreateDialogIndirectParam CreateDialogIndirectParamA
- #endif // !UNICODE
- #define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) \
- CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
- #define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) \
- CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
- #ifdef UNICODE
- #define CreateDialog CreateDialogW
- #else
- #define CreateDialog CreateDialogA
- #endif // !UNICODE
- #define CreateDialogIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #define CreateDialogIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #ifdef UNICODE
- #define CreateDialogIndirect CreateDialogIndirectW
- #else
- #define CreateDialogIndirect CreateDialogIndirectA
- #endif // !UNICODE
- WINUSERAPI
- INT_PTR
- WINAPI
- DialogBoxParamA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpTemplateName,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- WINUSERAPI
- INT_PTR
- WINAPI
- DialogBoxParamW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpTemplateName,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- #ifdef UNICODE
- #define DialogBoxParam DialogBoxParamW
- #else
- #define DialogBoxParam DialogBoxParamA
- #endif // !UNICODE
- WINUSERAPI
- INT_PTR
- WINAPI
- DialogBoxIndirectParamA(
- IN HINSTANCE hInstance,
- IN LPCDLGTEMPLATEA hDialogTemplate,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- WINUSERAPI
- INT_PTR
- WINAPI
- DialogBoxIndirectParamW(
- IN HINSTANCE hInstance,
- IN LPCDLGTEMPLATEW hDialogTemplate,
- IN HWND hWndParent,
- IN DLGPROC lpDialogFunc,
- IN LPARAM dwInitParam);
- #ifdef UNICODE
- #define DialogBoxIndirectParam DialogBoxIndirectParamW
- #else
- #define DialogBoxIndirectParam DialogBoxIndirectParamA
- #endif // !UNICODE
- #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #ifdef UNICODE
- #define DialogBox DialogBoxW
- #else
- #define DialogBox DialogBoxA
- #endif // !UNICODE
- #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
- DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
- #ifdef UNICODE
- #define DialogBoxIndirect DialogBoxIndirectW
- #else
- #define DialogBoxIndirect DialogBoxIndirectA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- EndDialog(
- IN HWND hDlg,
- IN INT_PTR nResult);
- WINUSERAPI
- HWND
- WINAPI
- GetDlgItem(
- IN HWND hDlg,
- IN int nIDDlgItem);
- WINUSERAPI
- BOOL
- WINAPI
- SetDlgItemInt(
- IN HWND hDlg,
- IN int nIDDlgItem,
- IN UINT uValue,
- IN BOOL bSigned);
- WINUSERAPI
- UINT
- WINAPI
- GetDlgItemInt(
- IN HWND hDlg,
- IN int nIDDlgItem,
- OUT BOOL *lpTranslated,
- IN BOOL bSigned);
- WINUSERAPI
- BOOL
- WINAPI
- SetDlgItemTextA(
- IN HWND hDlg,
- IN int nIDDlgItem,
- IN LPCSTR lpString);
- WINUSERAPI
- BOOL
- WINAPI
- SetDlgItemTextW(
- IN HWND hDlg,
- IN int nIDDlgItem,
- IN LPCWSTR lpString);
- #ifdef UNICODE
- #define SetDlgItemText SetDlgItemTextW
- #else
- #define SetDlgItemText SetDlgItemTextA
- #endif // !UNICODE
- WINUSERAPI
- UINT
- WINAPI
- GetDlgItemTextA(
- IN HWND hDlg,
- IN int nIDDlgItem,
- OUT LPSTR lpString,
- IN int nMaxCount);
- WINUSERAPI
- UINT
- WINAPI
- GetDlgItemTextW(
- IN HWND hDlg,
- IN int nIDDlgItem,
- OUT LPWSTR lpString,
- IN int nMaxCount);
- #ifdef UNICODE
- #define GetDlgItemText GetDlgItemTextW
- #else
- #define GetDlgItemText GetDlgItemTextA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- CheckDlgButton(
- IN HWND hDlg,
- IN int nIDButton,
- IN UINT uCheck);
- WINUSERAPI
- BOOL
- WINAPI
- CheckRadioButton(
- IN HWND hDlg,
- IN int nIDFirstButton,
- IN int nIDLastButton,
- IN int nIDCheckButton);
- WINUSERAPI
- UINT
- WINAPI
- IsDlgButtonChecked(
- IN HWND hDlg,
- IN int nIDButton);
- WINUSERAPI
- LRESULT
- WINAPI
- SendDlgItemMessageA(
- IN HWND hDlg,
- IN int nIDDlgItem,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- LRESULT
- WINAPI
- SendDlgItemMessageW(
- IN HWND hDlg,
- IN int nIDDlgItem,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define SendDlgItemMessage SendDlgItemMessageW
- #else
- #define SendDlgItemMessage SendDlgItemMessageA
- #endif // !UNICODE
- WINUSERAPI
- HWND
- WINAPI
- GetNextDlgGroupItem(
- IN HWND hDlg,
- IN HWND hCtl,
- IN BOOL bPrevious);
- WINUSERAPI
- HWND
- WINAPI
- GetNextDlgTabItem(
- IN HWND hDlg,
- IN HWND hCtl,
- IN BOOL bPrevious);
- WINUSERAPI
- int
- WINAPI
- GetDlgCtrlID(
- IN HWND hWnd);
- WINUSERAPI
- long
- WINAPI
- GetDialogBaseUnits(VOID);
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefDlgProcA(
- IN HWND hDlg,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefDlgProcW(
- IN HWND hDlg,
- IN UINT Msg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define DefDlgProc DefDlgProcW
- #else
- #define DefDlgProc DefDlgProcA
- #endif // !UNICODE
- /*
- * Window extra byted needed for private dialog classes.
- */
- #ifndef _MAC
- #define DLGWINDOWEXTRA 30
- #else
- #define DLGWINDOWEXTRA 48
- #endif
- #endif /* !NOCTLMGR */
- #ifndef NOMSG
- WINUSERAPI
- BOOL
- WINAPI
- CallMsgFilterA(
- IN LPMSG lpMsg,
- IN int nCode);
- WINUSERAPI
- BOOL
- WINAPI
- CallMsgFilterW(
- IN LPMSG lpMsg,
- IN int nCode);
- #ifdef UNICODE
- #define CallMsgFilter CallMsgFilterW
- #else
- #define CallMsgFilter CallMsgFilterA
- #endif // !UNICODE
- #endif /* !NOMSG */
- #ifndef NOCLIPBOARD
- /*
- * Clipboard Manager Functions
- */
- WINUSERAPI
- BOOL
- WINAPI
- OpenClipboard(
- IN HWND hWndNewOwner);
- WINUSERAPI
- BOOL
- WINAPI
- CloseClipboard(
- VOID);
- #if(WINVER >= 0x0500)
- WINUSERAPI
- DWORD
- WINAPI
- GetClipboardSequenceNumber(
- VOID);
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- HWND
- WINAPI
- GetClipboardOwner(
- VOID);
- WINUSERAPI
- HWND
- WINAPI
- SetClipboardViewer(
- IN HWND hWndNewViewer);
- WINUSERAPI
- HWND
- WINAPI
- GetClipboardViewer(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- ChangeClipboardChain(
- IN HWND hWndRemove,
- IN HWND hWndNewNext);
- WINUSERAPI
- HANDLE
- WINAPI
- SetClipboardData(
- IN UINT uFormat,
- IN HANDLE hMem);
- WINUSERAPI
- HANDLE
- WINAPI
- GetClipboardData(
- IN UINT uFormat);
- WINUSERAPI
- UINT
- WINAPI
- RegisterClipboardFormatA(
- IN LPCSTR lpszFormat);
- WINUSERAPI
- UINT
- WINAPI
- RegisterClipboardFormatW(
- IN LPCWSTR lpszFormat);
- #ifdef UNICODE
- #define RegisterClipboardFormat RegisterClipboardFormatW
- #else
- #define RegisterClipboardFormat RegisterClipboardFormatA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- CountClipboardFormats(
- VOID);
- WINUSERAPI
- UINT
- WINAPI
- EnumClipboardFormats(
- IN UINT format);
- WINUSERAPI
- int
- WINAPI
- GetClipboardFormatNameA(
- IN UINT format,
- OUT LPSTR lpszFormatName,
- IN int cchMaxCount);
- WINUSERAPI
- int
- WINAPI
- GetClipboardFormatNameW(
- IN UINT format,
- OUT LPWSTR lpszFormatName,
- IN int cchMaxCount);
- #ifdef UNICODE
- #define GetClipboardFormatName GetClipboardFormatNameW
- #else
- #define GetClipboardFormatName GetClipboardFormatNameA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- EmptyClipboard(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- IsClipboardFormatAvailable(
- IN UINT format);
- WINUSERAPI
- int
- WINAPI
- GetPriorityClipboardFormat(
- OUT UINT *paFormatPriorityList,
- IN int cFormats);
- WINUSERAPI
- HWND
- WINAPI
- GetOpenClipboardWindow(
- VOID);
- #endif /* !NOCLIPBOARD */
- /*
- * Character Translation Routines
- */
- WINUSERAPI
- BOOL
- WINAPI
- CharToOemA(
- IN LPCSTR lpszSrc,
- OUT LPSTR lpszDst);
- WINUSERAPI
- BOOL
- WINAPI
- CharToOemW(
- IN LPCWSTR lpszSrc,
- OUT LPSTR lpszDst);
- #ifdef UNICODE
- #define CharToOem CharToOemW
- #else
- #define CharToOem CharToOemA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- OemToCharA(
- IN LPCSTR lpszSrc,
- OUT LPSTR lpszDst);
- WINUSERAPI
- BOOL
- WINAPI
- OemToCharW(
- IN LPCSTR lpszSrc,
- OUT LPWSTR lpszDst);
- #ifdef UNICODE
- #define OemToChar OemToCharW
- #else
- #define OemToChar OemToCharA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- CharToOemBuffA(
- IN LPCSTR lpszSrc,
- OUT LPSTR lpszDst,
- IN DWORD cchDstLength);
- WINUSERAPI
- BOOL
- WINAPI
- CharToOemBuffW(
- IN LPCWSTR lpszSrc,
- OUT LPSTR lpszDst,
- IN DWORD cchDstLength);
- #ifdef UNICODE
- #define CharToOemBuff CharToOemBuffW
- #else
- #define CharToOemBuff CharToOemBuffA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- OemToCharBuffA(
- IN LPCSTR lpszSrc,
- OUT LPSTR lpszDst,
- IN DWORD cchDstLength);
- WINUSERAPI
- BOOL
- WINAPI
- OemToCharBuffW(
- IN LPCSTR lpszSrc,
- OUT LPWSTR lpszDst,
- IN DWORD cchDstLength);
- #ifdef UNICODE
- #define OemToCharBuff OemToCharBuffW
- #else
- #define OemToCharBuff OemToCharBuffA
- #endif // !UNICODE
- WINUSERAPI
- LPSTR
- WINAPI
- CharUpperA(
- IN OUT LPSTR lpsz);
- WINUSERAPI
- LPWSTR
- WINAPI
- CharUpperW(
- IN OUT LPWSTR lpsz);
- #ifdef UNICODE
- #define CharUpper CharUpperW
- #else
- #define CharUpper CharUpperA
- #endif // !UNICODE
- WINUSERAPI
- DWORD
- WINAPI
- CharUpperBuffA(
- IN OUT LPSTR lpsz,
- IN DWORD cchLength);
- WINUSERAPI
- DWORD
- WINAPI
- CharUpperBuffW(
- IN OUT LPWSTR lpsz,
- IN DWORD cchLength);
- #ifdef UNICODE
- #define CharUpperBuff CharUpperBuffW
- #else
- #define CharUpperBuff CharUpperBuffA
- #endif // !UNICODE
- WINUSERAPI
- LPSTR
- WINAPI
- CharLowerA(
- IN OUT LPSTR lpsz);
- WINUSERAPI
- LPWSTR
- WINAPI
- CharLowerW(
- IN OUT LPWSTR lpsz);
- #ifdef UNICODE
- #define CharLower CharLowerW
- #else
- #define CharLower CharLowerA
- #endif // !UNICODE
- WINUSERAPI
- DWORD
- WINAPI
- CharLowerBuffA(
- IN OUT LPSTR lpsz,
- IN DWORD cchLength);
- WINUSERAPI
- DWORD
- WINAPI
- CharLowerBuffW(
- IN OUT LPWSTR lpsz,
- IN DWORD cchLength);
- #ifdef UNICODE
- #define CharLowerBuff CharLowerBuffW
- #else
- #define CharLowerBuff CharLowerBuffA
- #endif // !UNICODE
- WINUSERAPI
- LPSTR
- WINAPI
- CharNextA(
- IN LPCSTR lpsz);
- WINUSERAPI
- LPWSTR
- WINAPI
- CharNextW(
- IN LPCWSTR lpsz);
- #ifdef UNICODE
- #define CharNext CharNextW
- #else
- #define CharNext CharNextA
- #endif // !UNICODE
- WINUSERAPI
- LPSTR
- WINAPI
- CharPrevA(
- IN LPCSTR lpszStart,
- IN LPCSTR lpszCurrent);
- WINUSERAPI
- LPWSTR
- WINAPI
- CharPrevW(
- IN LPCWSTR lpszStart,
- IN LPCWSTR lpszCurrent);
- #ifdef UNICODE
- #define CharPrev CharPrevW
- #else
- #define CharPrev CharPrevA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- LPSTR
- WINAPI
- CharNextExA(
- IN WORD CodePage,
- IN LPCSTR lpCurrentChar,
- IN DWORD dwFlags);
- WINUSERAPI
- LPSTR
- WINAPI
- CharPrevExA(
- IN WORD CodePage,
- IN LPCSTR lpStart,
- IN LPCSTR lpCurrentChar,
- IN DWORD dwFlags);
- #endif /* WINVER >= 0x0400 */
- /*
- * Compatibility defines for character translation routines
- */
- #define AnsiToOem CharToOemA
- #define OemToAnsi OemToCharA
- #define AnsiToOemBuff CharToOemBuffA
- #define OemToAnsiBuff OemToCharBuffA
- #define AnsiUpper CharUpperA
- #define AnsiUpperBuff CharUpperBuffA
- #define AnsiLower CharLowerA
- #define AnsiLowerBuff CharLowerBuffA
- #define AnsiNext CharNextA
- #define AnsiPrev CharPrevA
- #ifndef NOLANGUAGE
- /*
- * Language dependent Routines
- */
- WINUSERAPI
- BOOL
- WINAPI
- IsCharAlphaA(
- IN CHAR ch);
- WINUSERAPI
- BOOL
- WINAPI
- IsCharAlphaW(
- IN WCHAR ch);
- #ifdef UNICODE
- #define IsCharAlpha IsCharAlphaW
- #else
- #define IsCharAlpha IsCharAlphaA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- IsCharAlphaNumericA(
- IN CHAR ch);
- WINUSERAPI
- BOOL
- WINAPI
- IsCharAlphaNumericW(
- IN WCHAR ch);
- #ifdef UNICODE
- #define IsCharAlphaNumeric IsCharAlphaNumericW
- #else
- #define IsCharAlphaNumeric IsCharAlphaNumericA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- IsCharUpperA(
- IN CHAR ch);
- WINUSERAPI
- BOOL
- WINAPI
- IsCharUpperW(
- IN WCHAR ch);
- #ifdef UNICODE
- #define IsCharUpper IsCharUpperW
- #else
- #define IsCharUpper IsCharUpperA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- IsCharLowerA(
- IN CHAR ch);
- WINUSERAPI
- BOOL
- WINAPI
- IsCharLowerW(
- IN WCHAR ch);
- #ifdef UNICODE
- #define IsCharLower IsCharLowerW
- #else
- #define IsCharLower IsCharLowerA
- #endif // !UNICODE
- #endif /* !NOLANGUAGE */
- WINUSERAPI
- HWND
- WINAPI
- SetFocus(
- IN HWND hWnd);
- WINUSERAPI
- HWND
- WINAPI
- GetActiveWindow(
- VOID);
- WINUSERAPI
- HWND
- WINAPI
- GetFocus(
- VOID);
- WINUSERAPI
- UINT
- WINAPI
- GetKBCodePage(
- VOID);
- WINUSERAPI
- SHORT
- WINAPI
- GetKeyState(
- IN int nVirtKey);
- WINUSERAPI
- SHORT
- WINAPI
- GetAsyncKeyState(
- IN int vKey);
- WINUSERAPI
- BOOL
- WINAPI
- GetKeyboardState(
- OUT PBYTE lpKeyState);
- WINUSERAPI
- BOOL
- WINAPI
- SetKeyboardState(
- IN LPBYTE lpKeyState);
- WINUSERAPI
- int
- WINAPI
- GetKeyNameTextA(
- IN LONG lParam,
- OUT LPSTR lpString,
- IN int nSize
- );
- WINUSERAPI
- int
- WINAPI
- GetKeyNameTextW(
- IN LONG lParam,
- OUT LPWSTR lpString,
- IN int nSize
- );
- #ifdef UNICODE
- #define GetKeyNameText GetKeyNameTextW
- #else
- #define GetKeyNameText GetKeyNameTextA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- GetKeyboardType(
- IN int nTypeFlag);
- WINUSERAPI
- int
- WINAPI
- ToAscii(
- IN UINT uVirtKey,
- IN UINT uScanCode,
- IN CONST BYTE *lpKeyState,
- OUT LPWORD lpChar,
- IN UINT uFlags);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- int
- WINAPI
- ToAsciiEx(
- IN UINT uVirtKey,
- IN UINT uScanCode,
- IN CONST BYTE *lpKeyState,
- OUT LPWORD lpChar,
- IN UINT uFlags,
- IN HKL dwhkl);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- int
- WINAPI
- ToUnicode(
- IN UINT wVirtKey,
- IN UINT wScanCode,
- IN CONST BYTE *lpKeyState,
- OUT LPWSTR pwszBuff,
- IN int cchBuff,
- IN UINT wFlags);
- WINUSERAPI
- DWORD
- WINAPI
- OemKeyScan(
- IN WORD wOemChar);
- WINUSERAPI
- SHORT
- WINAPI
- VkKeyScanA(
- IN CHAR ch);
- WINUSERAPI
- SHORT
- WINAPI
- VkKeyScanW(
- IN WCHAR ch);
- #ifdef UNICODE
- #define VkKeyScan VkKeyScanW
- #else
- #define VkKeyScan VkKeyScanA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- SHORT
- WINAPI
- VkKeyScanExA(
- IN CHAR ch,
- IN HKL dwhkl);
- WINUSERAPI
- SHORT
- WINAPI
- VkKeyScanExW(
- IN WCHAR ch,
- IN HKL dwhkl);
- #ifdef UNICODE
- #define VkKeyScanEx VkKeyScanExW
- #else
- #define VkKeyScanEx VkKeyScanExA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- #define KEYEVENTF_EXTENDEDKEY 0x0001
- #define KEYEVENTF_KEYUP 0x0002
- #if(_WIN32_WINNT >= 0x0500)
- #define KEYEVENTF_UNICODE 0x0004
- #define KEYEVENTF_SCANCODE 0x0008
- #endif /* _WIN32_WINNT >= 0x0500 */
- WINUSERAPI
- VOID
- WINAPI
- keybd_event(
- IN BYTE bVk,
- IN BYTE bScan,
- IN DWORD dwFlags,
- IN ULONG_PTR dwExtraInfo);
- #define MOUSEEVENTF_MOVE 0x0001 /* mouse move */
- #define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */
- #define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */
- #define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */
- #define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */
- #define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */
- #define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */
- #define MOUSEEVENTF_XDOWN 0x0080 /* x button down */
- #define MOUSEEVENTF_XUP 0x0100 /* x button down */
- #define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */
- #define MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */
- #define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */
- WINUSERAPI
- VOID
- WINAPI
- mouse_event(
- IN DWORD dwFlags,
- IN DWORD dx,
- IN DWORD dy,
- IN DWORD dwData,
- IN ULONG_PTR dwExtraInfo);
- #if (_WIN32_WINNT > 0x0400)
- typedef struct tagMOUSEINPUT {
- LONG dx;
- LONG dy;
- DWORD mouseData;
- DWORD dwFlags;
- DWORD time;
- ULONG_PTR dwExtraInfo;
- } MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT;
- typedef struct tagKEYBDINPUT {
- WORD wVk;
- WORD wScan;
- DWORD dwFlags;
- DWORD time;
- ULONG_PTR dwExtraInfo;
- } KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;
- typedef struct tagHARDWAREINPUT {
- DWORD uMsg;
- WORD wParamL;
- WORD wParamH;
- } HARDWAREINPUT, *PHARDWAREINPUT, FAR* LPHARDWAREINPUT;
- #define INPUT_MOUSE 0
- #define INPUT_KEYBOARD 1
- #define INPUT_HARDWARE 2
- typedef struct tagINPUT {
- DWORD type;
- union
- {
- MOUSEINPUT mi;
- KEYBDINPUT ki;
- HARDWAREINPUT hi;
- };
- } INPUT, *PINPUT, FAR* LPINPUT;
- WINUSERAPI
- UINT
- WINAPI
- SendInput(
- IN UINT cInputs, // number of input in the array
- IN LPINPUT pInputs, // array of inputs
- IN int cbSize); // sizeof(INPUT)
- #endif // (_WIN32_WINNT > 0x0400)
- #if(_WIN32_WINNT >= 0x0500)
- typedef struct tagLASTINPUTINFO {
- UINT cbSize;
- DWORD dwTime;
- } LASTINPUTINFO, * PLASTINPUTINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetLastInputInfo(
- OUT PLASTINPUTINFO plii);
- #endif /* _WIN32_WINNT >= 0x0500 */
- WINUSERAPI
- UINT
- WINAPI
- MapVirtualKeyA(
- IN UINT uCode,
- IN UINT uMapType);
- WINUSERAPI
- UINT
- WINAPI
- MapVirtualKeyW(
- IN UINT uCode,
- IN UINT uMapType);
- #ifdef UNICODE
- #define MapVirtualKey MapVirtualKeyW
- #else
- #define MapVirtualKey MapVirtualKeyA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- UINT
- WINAPI
- MapVirtualKeyExA(
- IN UINT uCode,
- IN UINT uMapType,
- IN HKL dwhkl);
- WINUSERAPI
- UINT
- WINAPI
- MapVirtualKeyExW(
- IN UINT uCode,
- IN UINT uMapType,
- IN HKL dwhkl);
- #ifdef UNICODE
- #define MapVirtualKeyEx MapVirtualKeyExW
- #else
- #define MapVirtualKeyEx MapVirtualKeyExA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- GetInputState(
- VOID);
- WINUSERAPI
- DWORD
- WINAPI
- GetQueueStatus(
- IN UINT flags);
- WINUSERAPI
- HWND
- WINAPI
- GetCapture(
- VOID);
- WINUSERAPI
- HWND
- WINAPI
- SetCapture(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- ReleaseCapture(
- VOID);
- WINUSERAPI
- DWORD
- WINAPI
- MsgWaitForMultipleObjects(
- IN DWORD nCount,
- IN CONST HANDLE *pHandles,
- IN BOOL fWaitAll,
- IN DWORD dwMilliseconds,
- IN DWORD dwWakeMask);
- WINUSERAPI
- DWORD
- WINAPI
- MsgWaitForMultipleObjectsEx(
- IN DWORD nCount,
- IN CONST HANDLE *pHandles,
- IN DWORD dwMilliseconds,
- IN DWORD dwWakeMask,
- IN DWORD dwFlags);
- #define MWMO_WAITALL 0x0001
- #define MWMO_ALERTABLE 0x0002
- #define MWMO_INPUTAVAILABLE 0x0004
- /*
- * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
- */
- #define QS_KEY 0x0001
- #define QS_MOUSEMOVE 0x0002
- #define QS_MOUSEBUTTON 0x0004
- #define QS_POSTMESSAGE 0x0008
- #define QS_TIMER 0x0010
- #define QS_PAINT 0x0020
- #define QS_SENDMESSAGE 0x0040
- #define QS_HOTKEY 0x0080
- #define QS_ALLPOSTMESSAGE 0x0100
- #if(_WIN32_WINNT >= 0x0501)
- #define QS_RAWINPUT 0x0400
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define QS_MOUSE (QS_MOUSEMOVE | \
- QS_MOUSEBUTTON)
- #if (_WIN32_WINNT >= 0x0501)
- #define QS_INPUT (QS_MOUSE | \
- QS_KEY | \
- QS_RAWINPUT)
- #else
- #define QS_INPUT (QS_MOUSE | \
- QS_KEY)
- #endif // (_WIN32_WINNT >= 0x0501)
- #define QS_ALLEVENTS (QS_INPUT | \
- QS_POSTMESSAGE | \
- QS_TIMER | \
- QS_PAINT | \
- QS_HOTKEY)
- #define QS_ALLINPUT (QS_INPUT | \
- QS_POSTMESSAGE | \
- QS_TIMER | \
- QS_PAINT | \
- QS_HOTKEY | \
- QS_SENDMESSAGE)
- #define USER_TIMER_MAXIMUM 0x7FFFFFFF
- #define USER_TIMER_MINIMUM 0x0000000A
- /*
- * Windows Functions
- */
- WINUSERAPI
- UINT_PTR
- WINAPI
- SetTimer(
- IN HWND hWnd,
- IN UINT_PTR nIDEvent,
- IN UINT uElapse,
- IN TIMERPROC lpTimerFunc);
- WINUSERAPI
- BOOL
- WINAPI
- KillTimer(
- IN HWND hWnd,
- IN UINT_PTR uIDEvent);
- WINUSERAPI
- BOOL
- WINAPI
- IsWindowUnicode(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- EnableWindow(
- IN HWND hWnd,
- IN BOOL bEnable);
- WINUSERAPI
- BOOL
- WINAPI
- IsWindowEnabled(
- IN HWND hWnd);
- WINUSERAPI
- HACCEL
- WINAPI
- LoadAcceleratorsA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpTableName);
- WINUSERAPI
- HACCEL
- WINAPI
- LoadAcceleratorsW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpTableName);
- #ifdef UNICODE
- #define LoadAccelerators LoadAcceleratorsW
- #else
- #define LoadAccelerators LoadAcceleratorsA
- #endif // !UNICODE
- WINUSERAPI
- HACCEL
- WINAPI
- CreateAcceleratorTableA(
- IN LPACCEL, IN int);
- WINUSERAPI
- HACCEL
- WINAPI
- CreateAcceleratorTableW(
- IN LPACCEL, IN int);
- #ifdef UNICODE
- #define CreateAcceleratorTable CreateAcceleratorTableW
- #else
- #define CreateAcceleratorTable CreateAcceleratorTableA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- DestroyAcceleratorTable(
- IN HACCEL hAccel);
- WINUSERAPI
- int
- WINAPI
- CopyAcceleratorTableA(
- IN HACCEL hAccelSrc,
- OUT LPACCEL lpAccelDst,
- IN int cAccelEntries);
- WINUSERAPI
- int
- WINAPI
- CopyAcceleratorTableW(
- IN HACCEL hAccelSrc,
- OUT LPACCEL lpAccelDst,
- IN int cAccelEntries);
- #ifdef UNICODE
- #define CopyAcceleratorTable CopyAcceleratorTableW
- #else
- #define CopyAcceleratorTable CopyAcceleratorTableA
- #endif // !UNICODE
- #ifndef NOMSG
- WINUSERAPI
- int
- WINAPI
- TranslateAcceleratorA(
- IN HWND hWnd,
- IN HACCEL hAccTable,
- IN LPMSG lpMsg);
- WINUSERAPI
- int
- WINAPI
- TranslateAcceleratorW(
- IN HWND hWnd,
- IN HACCEL hAccTable,
- IN LPMSG lpMsg);
- #ifdef UNICODE
- #define TranslateAccelerator TranslateAcceleratorW
- #else
- #define TranslateAccelerator TranslateAcceleratorA
- #endif // !UNICODE
- #endif /* !NOMSG */
- #ifndef NOSYSMETRICS
- /*
- * GetSystemMetrics() codes
- */
- #define SM_CXSCREEN 0
- #define SM_CYSCREEN 1
- #define SM_CXVSCROLL 2
- #define SM_CYHSCROLL 3
- #define SM_CYCAPTION 4
- #define SM_CXBORDER 5
- #define SM_CYBORDER 6
- #define SM_CXDLGFRAME 7
- #define SM_CYDLGFRAME 8
- #define SM_CYVTHUMB 9
- #define SM_CXHTHUMB 10
- #define SM_CXICON 11
- #define SM_CYICON 12
- #define SM_CXCURSOR 13
- #define SM_CYCURSOR 14
- #define SM_CYMENU 15
- #define SM_CXFULLSCREEN 16
- #define SM_CYFULLSCREEN 17
- #define SM_CYKANJIWINDOW 18
- #define SM_MOUSEPRESENT 19
- #define SM_CYVSCROLL 20
- #define SM_CXHSCROLL 21
- #define SM_DEBUG 22
- #define SM_SWAPBUTTON 23
- #define SM_RESERVED1 24
- #define SM_RESERVED2 25
- #define SM_RESERVED3 26
- #define SM_RESERVED4 27
- #define SM_CXMIN 28
- #define SM_CYMIN 29
- #define SM_CXSIZE 30
- #define SM_CYSIZE 31
- #define SM_CXFRAME 32
- #define SM_CYFRAME 33
- #define SM_CXMINTRACK 34
- #define SM_CYMINTRACK 35
- #define SM_CXDOUBLECLK 36
- #define SM_CYDOUBLECLK 37
- #define SM_CXICONSPACING 38
- #define SM_CYICONSPACING 39
- #define SM_MENUDROPALIGNMENT 40
- #define SM_PENWINDOWS 41
- #define SM_DBCSENABLED 42
- #define SM_CMOUSEBUTTONS 43
- #if(WINVER >= 0x0400)
- #define SM_CXFIXEDFRAME SM_CXDLGFRAME /* ;win40 name change */
- #define SM_CYFIXEDFRAME SM_CYDLGFRAME /* ;win40 name change */
- #define SM_CXSIZEFRAME SM_CXFRAME /* ;win40 name change */
- #define SM_CYSIZEFRAME SM_CYFRAME /* ;win40 name change */
- #define SM_SECURE 44
- #define SM_CXEDGE 45
- #define SM_CYEDGE 46
- #define SM_CXMINSPACING 47
- #define SM_CYMINSPACING 48
- #define SM_CXSMICON 49
- #define SM_CYSMICON 50
- #define SM_CYSMCAPTION 51
- #define SM_CXSMSIZE 52
- #define SM_CYSMSIZE 53
- #define SM_CXMENUSIZE 54
- #define SM_CYMENUSIZE 55
- #define SM_ARRANGE 56
- #define SM_CXMINIMIZED 57
- #define SM_CYMINIMIZED 58
- #define SM_CXMAXTRACK 59
- #define SM_CYMAXTRACK 60
- #define SM_CXMAXIMIZED 61
- #define SM_CYMAXIMIZED 62
- #define SM_NETWORK 63
- #define SM_CLEANBOOT 67
- #define SM_CXDRAG 68
- #define SM_CYDRAG 69
- #endif /* WINVER >= 0x0400 */
- #define SM_SHOWSOUNDS 70
- #if(WINVER >= 0x0400)
- #define SM_CXMENUCHECK 71 /* Use instead of GetMenuCheckMarkDimensions()! */
- #define SM_CYMENUCHECK 72
- #define SM_SLOWMACHINE 73
- #define SM_MIDEASTENABLED 74
- #endif /* WINVER >= 0x0400 */
- #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
- #define SM_MOUSEWHEELPRESENT 75
- #endif
- #if(WINVER >= 0x0500)
- #define SM_XVIRTUALSCREEN 76
- #define SM_YVIRTUALSCREEN 77
- #define SM_CXVIRTUALSCREEN 78
- #define SM_CYVIRTUALSCREEN 79
- #define SM_CMONITORS 80
- #define SM_SAMEDISPLAYFORMAT 81
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0500)
- #define SM_IMMENABLED 82
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define SM_CXFOCUSBORDER 83
- #define SM_CYFOCUSBORDER 84
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(_WIN32_WINNT >= 0x0501)
- #define SM_TABLETPC 86
- #define SM_MEDIACENTER 87
- #define SM_STARTER 88
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400))
- #define SM_CMETRICS 76
- #elif WINVER == 0x500
- #define SM_CMETRICS 83
- #else
- #define SM_CMETRICS 89
- #endif
- #if(WINVER >= 0x0500)
- #define SM_REMOTESESSION 0x1000
- #if(_WIN32_WINNT >= 0x0501)
- #define SM_SHUTTINGDOWN 0x2000
- #endif /* _WIN32_WINNT >= 0x0501 */
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- int
- WINAPI
- GetSystemMetrics(
- IN int nIndex);
- #endif /* !NOSYSMETRICS */
- #ifndef NOMENUS
- WINUSERAPI
- HMENU
- WINAPI
- LoadMenuA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpMenuName);
- WINUSERAPI
- HMENU
- WINAPI
- LoadMenuW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpMenuName);
- #ifdef UNICODE
- #define LoadMenu LoadMenuW
- #else
- #define LoadMenu LoadMenuA
- #endif // !UNICODE
- WINUSERAPI
- HMENU
- WINAPI
- LoadMenuIndirectA(
- IN CONST MENUTEMPLATEA *lpMenuTemplate);
- WINUSERAPI
- HMENU
- WINAPI
- LoadMenuIndirectW(
- IN CONST MENUTEMPLATEW *lpMenuTemplate);
- #ifdef UNICODE
- #define LoadMenuIndirect LoadMenuIndirectW
- #else
- #define LoadMenuIndirect LoadMenuIndirectA
- #endif // !UNICODE
- WINUSERAPI
- HMENU
- WINAPI
- GetMenu(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- SetMenu(
- IN HWND hWnd,
- IN HMENU hMenu);
- WINUSERAPI
- BOOL
- WINAPI
- ChangeMenuA(
- IN HMENU hMenu,
- IN UINT cmd,
- IN LPCSTR lpszNewItem,
- IN UINT cmdInsert,
- IN UINT flags);
- WINUSERAPI
- BOOL
- WINAPI
- ChangeMenuW(
- IN HMENU hMenu,
- IN UINT cmd,
- IN LPCWSTR lpszNewItem,
- IN UINT cmdInsert,
- IN UINT flags);
- #ifdef UNICODE
- #define ChangeMenu ChangeMenuW
- #else
- #define ChangeMenu ChangeMenuA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- HiliteMenuItem(
- IN HWND hWnd,
- IN HMENU hMenu,
- IN UINT uIDHiliteItem,
- IN UINT uHilite);
- WINUSERAPI
- int
- WINAPI
- GetMenuStringA(
- IN HMENU hMenu,
- IN UINT uIDItem,
- OUT LPSTR lpString,
- IN int nMaxCount,
- IN UINT uFlag);
- WINUSERAPI
- int
- WINAPI
- GetMenuStringW(
- IN HMENU hMenu,
- IN UINT uIDItem,
- OUT LPWSTR lpString,
- IN int nMaxCount,
- IN UINT uFlag);
- #ifdef UNICODE
- #define GetMenuString GetMenuStringW
- #else
- #define GetMenuString GetMenuStringA
- #endif // !UNICODE
- WINUSERAPI
- UINT
- WINAPI
- GetMenuState(
- IN HMENU hMenu,
- IN UINT uId,
- IN UINT uFlags);
- WINUSERAPI
- BOOL
- WINAPI
- DrawMenuBar(
- IN HWND hWnd);
- #if(_WIN32_WINNT >= 0x0501)
- #define PMB_ACTIVE 0x00000001
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- HMENU
- WINAPI
- GetSystemMenu(
- IN HWND hWnd,
- IN BOOL bRevert);
- WINUSERAPI
- HMENU
- WINAPI
- CreateMenu(
- VOID);
- WINUSERAPI
- HMENU
- WINAPI
- CreatePopupMenu(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- DestroyMenu(
- IN HMENU hMenu);
- WINUSERAPI
- DWORD
- WINAPI
- CheckMenuItem(
- IN HMENU hMenu,
- IN UINT uIDCheckItem,
- IN UINT uCheck);
- WINUSERAPI
- BOOL
- WINAPI
- EnableMenuItem(
- IN HMENU hMenu,
- IN UINT uIDEnableItem,
- IN UINT uEnable);
- WINUSERAPI
- HMENU
- WINAPI
- GetSubMenu(
- IN HMENU hMenu,
- IN int nPos);
- WINUSERAPI
- UINT
- WINAPI
- GetMenuItemID(
- IN HMENU hMenu,
- IN int nPos);
- WINUSERAPI
- int
- WINAPI
- GetMenuItemCount(
- IN HMENU hMenu);
- WINUSERAPI
- BOOL
- WINAPI
- InsertMenuA(
- IN HMENU hMenu,
- IN UINT uPosition,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCSTR lpNewItem
- );
- WINUSERAPI
- BOOL
- WINAPI
- InsertMenuW(
- IN HMENU hMenu,
- IN UINT uPosition,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCWSTR lpNewItem
- );
- #ifdef UNICODE
- #define InsertMenu InsertMenuW
- #else
- #define InsertMenu InsertMenuA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- AppendMenuA(
- IN HMENU hMenu,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCSTR lpNewItem
- );
- WINUSERAPI
- BOOL
- WINAPI
- AppendMenuW(
- IN HMENU hMenu,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCWSTR lpNewItem
- );
- #ifdef UNICODE
- #define AppendMenu AppendMenuW
- #else
- #define AppendMenu AppendMenuA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- ModifyMenuA(
- IN HMENU hMnu,
- IN UINT uPosition,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCSTR lpNewItem
- );
- WINUSERAPI
- BOOL
- WINAPI
- ModifyMenuW(
- IN HMENU hMnu,
- IN UINT uPosition,
- IN UINT uFlags,
- IN UINT_PTR uIDNewItem,
- IN LPCWSTR lpNewItem
- );
- #ifdef UNICODE
- #define ModifyMenu ModifyMenuW
- #else
- #define ModifyMenu ModifyMenuA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI RemoveMenu(
- IN HMENU hMenu,
- IN UINT uPosition,
- IN UINT uFlags);
- WINUSERAPI
- BOOL
- WINAPI
- DeleteMenu(
- IN HMENU hMenu,
- IN UINT uPosition,
- IN UINT uFlags);
- WINUSERAPI
- BOOL
- WINAPI
- SetMenuItemBitmaps(
- IN HMENU hMenu,
- IN UINT uPosition,
- IN UINT uFlags,
- IN HBITMAP hBitmapUnchecked,
- IN HBITMAP hBitmapChecked);
- WINUSERAPI
- LONG
- WINAPI
- GetMenuCheckMarkDimensions(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- TrackPopupMenu(
- IN HMENU hMenu,
- IN UINT uFlags,
- IN int x,
- IN int y,
- IN int nReserved,
- IN HWND hWnd,
- IN CONST RECT *prcRect);
- #if(WINVER >= 0x0400)
- /* return codes for WM_MENUCHAR */
- #define MNC_IGNORE 0
- #define MNC_CLOSE 1
- #define MNC_EXECUTE 2
- #define MNC_SELECT 3
- typedef struct tagTPMPARAMS
- {
- UINT cbSize; /* Size of structure */
- RECT rcExclude; /* Screen coordinates of rectangle to exclude when positioning */
- } TPMPARAMS;
- typedef TPMPARAMS FAR *LPTPMPARAMS;
- WINUSERAPI
- BOOL
- WINAPI
- TrackPopupMenuEx(
- IN HMENU,
- IN UINT,
- IN int,
- IN int,
- IN HWND,
- IN LPTPMPARAMS);
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define MNS_NOCHECK 0x80000000
- #define MNS_MODELESS 0x40000000
- #define MNS_DRAGDROP 0x20000000
- #define MNS_AUTODISMISS 0x10000000
- #define MNS_NOTIFYBYPOS 0x08000000
- #define MNS_CHECKORBMP 0x04000000
- #define MIM_MAXHEIGHT 0x00000001
- #define MIM_BACKGROUND 0x00000002
- #define MIM_HELPID 0x00000004
- #define MIM_MENUDATA 0x00000008
- #define MIM_STYLE 0x00000010
- #define MIM_APPLYTOSUBMENUS 0x80000000
- typedef struct tagMENUINFO
- {
- DWORD cbSize;
- DWORD fMask;
- DWORD dwStyle;
- UINT cyMax;
- HBRUSH hbrBack;
- DWORD dwContextHelpID;
- ULONG_PTR dwMenuData;
- } MENUINFO, FAR *LPMENUINFO;
- typedef MENUINFO CONST FAR *LPCMENUINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetMenuInfo(
- IN HMENU,
- OUT LPMENUINFO);
- WINUSERAPI
- BOOL
- WINAPI
- SetMenuInfo(
- IN HMENU,
- IN LPCMENUINFO);
- WINUSERAPI
- BOOL
- WINAPI
- EndMenu(
- VOID);
- /*
- * WM_MENUDRAG return values.
- */
- #define MND_CONTINUE 0
- #define MND_ENDMENU 1
- typedef struct tagMENUGETOBJECTINFO
- {
- DWORD dwFlags;
- UINT uPos;
- HMENU hmenu;
- PVOID riid;
- PVOID pvObj;
- } MENUGETOBJECTINFO, * PMENUGETOBJECTINFO;
- /*
- * MENUGETOBJECTINFO dwFlags values
- */
- #define MNGOF_TOPGAP 0x00000001
- #define MNGOF_BOTTOMGAP 0x00000002
- /*
- * WM_MENUGETOBJECT return values
- */
- #define MNGO_NOINTERFACE 0x00000000
- #define MNGO_NOERROR 0x00000001
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0400)
- #define MIIM_STATE 0x00000001
- #define MIIM_ID 0x00000002
- #define MIIM_SUBMENU 0x00000004
- #define MIIM_CHECKMARKS 0x00000008
- #define MIIM_TYPE 0x00000010
- #define MIIM_DATA 0x00000020
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define MIIM_STRING 0x00000040
- #define MIIM_BITMAP 0x00000080
- #define MIIM_FTYPE 0x00000100
- #define HBMMENU_CALLBACK ((HBITMAP) -1)
- #define HBMMENU_SYSTEM ((HBITMAP) 1)
- #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
- #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
- #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
- #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
- #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
- #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
- #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
- #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
- #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0400)
- typedef struct tagMENUITEMINFOA
- {
- UINT cbSize;
- UINT fMask;
- UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
- UINT fState; // used if MIIM_STATE
- UINT wID; // used if MIIM_ID
- HMENU hSubMenu; // used if MIIM_SUBMENU
- HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
- HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
- ULONG_PTR dwItemData; // used if MIIM_DATA
- LPSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
- UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
- #if(WINVER >= 0x0500)
- HBITMAP hbmpItem; // used if MIIM_BITMAP
- #endif /* WINVER >= 0x0500 */
- } MENUITEMINFOA, FAR *LPMENUITEMINFOA;
- typedef struct tagMENUITEMINFOW
- {
- UINT cbSize;
- UINT fMask;
- UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
- UINT fState; // used if MIIM_STATE
- UINT wID; // used if MIIM_ID
- HMENU hSubMenu; // used if MIIM_SUBMENU
- HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
- HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
- ULONG_PTR dwItemData; // used if MIIM_DATA
- LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
- UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
- #if(WINVER >= 0x0500)
- HBITMAP hbmpItem; // used if MIIM_BITMAP
- #endif /* WINVER >= 0x0500 */
- } MENUITEMINFOW, FAR *LPMENUITEMINFOW;
- #ifdef UNICODE
- typedef MENUITEMINFOW MENUITEMINFO;
- typedef LPMENUITEMINFOW LPMENUITEMINFO;
- #else
- typedef MENUITEMINFOA MENUITEMINFO;
- typedef LPMENUITEMINFOA LPMENUITEMINFO;
- #endif // UNICODE
- typedef MENUITEMINFOA CONST FAR *LPCMENUITEMINFOA;
- typedef MENUITEMINFOW CONST FAR *LPCMENUITEMINFOW;
- #ifdef UNICODE
- typedef LPCMENUITEMINFOW LPCMENUITEMINFO;
- #else
- typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
- #endif // UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- InsertMenuItemA(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN LPCMENUITEMINFOA
- );
- WINUSERAPI
- BOOL
- WINAPI
- InsertMenuItemW(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN LPCMENUITEMINFOW
- );
- #ifdef UNICODE
- #define InsertMenuItem InsertMenuItemW
- #else
- #define InsertMenuItem InsertMenuItemA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- GetMenuItemInfoA(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN OUT LPMENUITEMINFOA
- );
- WINUSERAPI
- BOOL
- WINAPI
- GetMenuItemInfoW(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN OUT LPMENUITEMINFOW
- );
- #ifdef UNICODE
- #define GetMenuItemInfo GetMenuItemInfoW
- #else
- #define GetMenuItemInfo GetMenuItemInfoA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SetMenuItemInfoA(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN LPCMENUITEMINFOA
- );
- WINUSERAPI
- BOOL
- WINAPI
- SetMenuItemInfoW(
- IN HMENU,
- IN UINT,
- IN BOOL,
- IN LPCMENUITEMINFOW
- );
- #ifdef UNICODE
- #define SetMenuItemInfo SetMenuItemInfoW
- #else
- #define SetMenuItemInfo SetMenuItemInfoA
- #endif // !UNICODE
- #define GMDI_USEDISABLED 0x0001L
- #define GMDI_GOINTOPOPUPS 0x0002L
- WINUSERAPI UINT WINAPI GetMenuDefaultItem( IN HMENU hMenu, IN UINT fByPos, IN UINT gmdiFlags);
- WINUSERAPI BOOL WINAPI SetMenuDefaultItem( IN HMENU hMenu, IN UINT uItem, IN UINT fByPos);
- WINUSERAPI BOOL WINAPI GetMenuItemRect( IN HWND hWnd, IN HMENU hMenu, IN UINT uItem, OUT LPRECT lprcItem);
- WINUSERAPI int WINAPI MenuItemFromPoint( IN HWND hWnd, IN HMENU hMenu, IN POINT ptScreen);
- #endif /* WINVER >= 0x0400 */
- /*
- * Flags for TrackPopupMenu
- */
- #define TPM_LEFTBUTTON 0x0000L
- #define TPM_RIGHTBUTTON 0x0002L
- #define TPM_LEFTALIGN 0x0000L
- #define TPM_CENTERALIGN 0x0004L
- #define TPM_RIGHTALIGN 0x0008L
- #if(WINVER >= 0x0400)
- #define TPM_TOPALIGN 0x0000L
- #define TPM_VCENTERALIGN 0x0010L
- #define TPM_BOTTOMALIGN 0x0020L
- #define TPM_HORIZONTAL 0x0000L /* Horz alignment matters more */
- #define TPM_VERTICAL 0x0040L /* Vert alignment matters more */
- #define TPM_NONOTIFY 0x0080L /* Don't send any notification msgs */
- #define TPM_RETURNCMD 0x0100L
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define TPM_RECURSE 0x0001L
- #define TPM_HORPOSANIMATION 0x0400L
- #define TPM_HORNEGANIMATION 0x0800L
- #define TPM_VERPOSANIMATION 0x1000L
- #define TPM_VERNEGANIMATION 0x2000L
- #if(_WIN32_WINNT >= 0x0500)
- #define TPM_NOANIMATION 0x4000L
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- #define TPM_LAYOUTRTL 0x8000L
- #endif /* _WIN32_WINNT >= 0x0501 */
- #endif /* WINVER >= 0x0500 */
- #endif /* !NOMENUS */
- #if(WINVER >= 0x0400)
- //
- // Drag-and-drop support
- // Obsolete - use OLE instead
- //
- typedef struct tagDROPSTRUCT
- {
- HWND hwndSource;
- HWND hwndSink;
- DWORD wFmt;
- ULONG_PTR dwData;
- POINT ptDrop;
- DWORD dwControlData;
- } DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;
- #define DOF_EXECUTABLE 0x8001 // wFmt flags
- #define DOF_DOCUMENT 0x8002
- #define DOF_DIRECTORY 0x8003
- #define DOF_MULTIPLE 0x8004
- #define DOF_PROGMAN 0x0001
- #define DOF_SHELLDATA 0x0002
- #define DO_DROPFILE 0x454C4946L
- #define DO_PRINTFILE 0x544E5250L
- WINUSERAPI
- DWORD
- WINAPI
- DragObject(
- IN HWND,
- IN HWND,
- IN UINT,
- IN ULONG_PTR,
- IN HCURSOR);
- WINUSERAPI
- BOOL
- WINAPI
- DragDetect(
- IN HWND,
- IN POINT);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- DrawIcon(
- IN HDC hDC,
- IN int X,
- IN int Y,
- IN HICON hIcon);
- #ifndef NODRAWTEXT
- /*
- * DrawText() Format Flags
- */
- #define DT_TOP 0x00000000
- #define DT_LEFT 0x00000000
- #define DT_CENTER 0x00000001
- #define DT_RIGHT 0x00000002
- #define DT_VCENTER 0x00000004
- #define DT_BOTTOM 0x00000008
- #define DT_WORDBREAK 0x00000010
- #define DT_SINGLELINE 0x00000020
- #define DT_EXPANDTABS 0x00000040
- #define DT_TABSTOP 0x00000080
- #define DT_NOCLIP 0x00000100
- #define DT_EXTERNALLEADING 0x00000200
- #define DT_CALCRECT 0x00000400
- #define DT_NOPREFIX 0x00000800
- #define DT_INTERNAL 0x00001000
- #if(WINVER >= 0x0400)
- #define DT_EDITCONTROL 0x00002000
- #define DT_PATH_ELLIPSIS 0x00004000
- #define DT_END_ELLIPSIS 0x00008000
- #define DT_MODIFYSTRING 0x00010000
- #define DT_RTLREADING 0x00020000
- #define DT_WORD_ELLIPSIS 0x00040000
- #if(WINVER >= 0x0500)
- #define DT_NOFULLWIDTHCHARBREAK 0x00080000
- #if(_WIN32_WINNT >= 0x0500)
- #define DT_HIDEPREFIX 0x00100000
- #define DT_PREFIXONLY 0x00200000
- #endif /* _WIN32_WINNT >= 0x0500 */
- #endif /* WINVER >= 0x0500 */
- typedef struct tagDRAWTEXTPARAMS
- {
- UINT cbSize;
- int iTabLength;
- int iLeftMargin;
- int iRightMargin;
- UINT uiLengthDrawn;
- } DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- int
- WINAPI
- DrawTextA(
- IN HDC hDC,
- IN LPCSTR lpString,
- IN int nCount,
- IN OUT LPRECT lpRect,
- IN UINT uFormat);
- WINUSERAPI
- int
- WINAPI
- DrawTextW(
- IN HDC hDC,
- IN LPCWSTR lpString,
- IN int nCount,
- IN OUT LPRECT lpRect,
- IN UINT uFormat);
- #ifdef UNICODE
- #define DrawText DrawTextW
- #else
- #define DrawText DrawTextA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI
- int
- WINAPI
- DrawTextExA(
- IN HDC,
- IN OUT LPSTR,
- IN int,
- IN OUT LPRECT,
- IN UINT,
- IN LPDRAWTEXTPARAMS);
- WINUSERAPI
- int
- WINAPI
- DrawTextExW(
- IN HDC,
- IN OUT LPWSTR,
- IN int,
- IN OUT LPRECT,
- IN UINT,
- IN LPDRAWTEXTPARAMS);
- #ifdef UNICODE
- #define DrawTextEx DrawTextExW
- #else
- #define DrawTextEx DrawTextExA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- #endif /* !NODRAWTEXT */
- WINUSERAPI
- BOOL
- WINAPI
- GrayStringA(
- IN HDC hDC,
- IN HBRUSH hBrush,
- IN GRAYSTRINGPROC lpOutputFunc,
- IN LPARAM lpData,
- IN int nCount,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight);
- WINUSERAPI
- BOOL
- WINAPI
- GrayStringW(
- IN HDC hDC,
- IN HBRUSH hBrush,
- IN GRAYSTRINGPROC lpOutputFunc,
- IN LPARAM lpData,
- IN int nCount,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight);
- #ifdef UNICODE
- #define GrayString GrayStringW
- #else
- #define GrayString GrayStringA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- /* Monolithic state-drawing routine */
- /* Image type */
- #define DST_COMPLEX 0x0000
- #define DST_TEXT 0x0001
- #define DST_PREFIXTEXT 0x0002
- #define DST_ICON 0x0003
- #define DST_BITMAP 0x0004
- /* State type */
- #define DSS_NORMAL 0x0000
- #define DSS_UNION 0x0010 /* Gray string appearance */
- #define DSS_DISABLED 0x0020
- #define DSS_MONO 0x0080
- #if(_WIN32_WINNT >= 0x0500)
- #define DSS_HIDEPREFIX 0x0200
- #define DSS_PREFIXONLY 0x0400
- #endif /* _WIN32_WINNT >= 0x0500 */
- #define DSS_RIGHT 0x8000
- WINUSERAPI
- BOOL
- WINAPI
- DrawStateA(
- IN HDC,
- IN HBRUSH,
- IN DRAWSTATEPROC,
- IN LPARAM,
- IN WPARAM,
- IN int,
- IN int,
- IN int,
- IN int,
- IN UINT);
- WINUSERAPI
- BOOL
- WINAPI
- DrawStateW(
- IN HDC,
- IN HBRUSH,
- IN DRAWSTATEPROC,
- IN LPARAM,
- IN WPARAM,
- IN int,
- IN int,
- IN int,
- IN int,
- IN UINT);
- #ifdef UNICODE
- #define DrawState DrawStateW
- #else
- #define DrawState DrawStateA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- LONG
- WINAPI
- TabbedTextOutA(
- IN HDC hDC,
- IN int X,
- IN int Y,
- IN LPCSTR lpString,
- IN int nCount,
- IN int nTabPositions,
- IN CONST INT *lpnTabStopPositions,
- IN int nTabOrigin);
- WINUSERAPI
- LONG
- WINAPI
- TabbedTextOutW(
- IN HDC hDC,
- IN int X,
- IN int Y,
- IN LPCWSTR lpString,
- IN int nCount,
- IN int nTabPositions,
- IN CONST INT *lpnTabStopPositions,
- IN int nTabOrigin);
- #ifdef UNICODE
- #define TabbedTextOut TabbedTextOutW
- #else
- #define TabbedTextOut TabbedTextOutA
- #endif // !UNICODE
- WINUSERAPI
- DWORD
- WINAPI
- GetTabbedTextExtentA(
- IN HDC hDC,
- IN LPCSTR lpString,
- IN int nCount,
- IN int nTabPositions,
- IN CONST INT *lpnTabStopPositions);
- WINUSERAPI
- DWORD
- WINAPI
- GetTabbedTextExtentW(
- IN HDC hDC,
- IN LPCWSTR lpString,
- IN int nCount,
- IN int nTabPositions,
- IN CONST INT *lpnTabStopPositions);
- #ifdef UNICODE
- #define GetTabbedTextExtent GetTabbedTextExtentW
- #else
- #define GetTabbedTextExtent GetTabbedTextExtentA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- UpdateWindow(
- IN HWND hWnd);
- WINUSERAPI
- HWND
- WINAPI
- SetActiveWindow(
- IN HWND hWnd);
- WINUSERAPI
- HWND
- WINAPI
- GetForegroundWindow(
- VOID);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- BOOL
- WINAPI
- PaintDesktop(
- IN HDC hdc);
- WINUSERAPI
- VOID
- WINAPI
- SwitchToThisWindow(
- IN HWND hwnd,
- IN BOOL fUnknown);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- SetForegroundWindow(
- IN HWND hWnd);
- #if(_WIN32_WINNT >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- AllowSetForegroundWindow(
- DWORD dwProcessId);
- #define ASFW_ANY ((DWORD)-1)
- WINUSERAPI
- BOOL
- WINAPI
- LockSetForegroundWindow(
- UINT uLockCode);
- #define LSFW_LOCK 1
- #define LSFW_UNLOCK 2
- #endif /* _WIN32_WINNT >= 0x0500 */
- WINUSERAPI
- HWND
- WINAPI
- WindowFromDC(
- IN HDC hDC);
- WINUSERAPI
- HDC
- WINAPI
- GetDC(
- IN HWND hWnd);
- WINUSERAPI
- HDC
- WINAPI
- GetDCEx(
- IN HWND hWnd,
- IN HRGN hrgnClip,
- IN DWORD flags);
- /*
- * GetDCEx() flags
- */
- #define DCX_WINDOW 0x00000001L
- #define DCX_CACHE 0x00000002L
- #define DCX_NORESETATTRS 0x00000004L
- #define DCX_CLIPCHILDREN 0x00000008L
- #define DCX_CLIPSIBLINGS 0x00000010L
- #define DCX_PARENTCLIP 0x00000020L
- #define DCX_EXCLUDERGN 0x00000040L
- #define DCX_INTERSECTRGN 0x00000080L
- #define DCX_EXCLUDEUPDATE 0x00000100L
- #define DCX_INTERSECTUPDATE 0x00000200L
- #define DCX_LOCKWINDOWUPDATE 0x00000400L
- #define DCX_VALIDATE 0x00200000L
- WINUSERAPI
- HDC
- WINAPI
- GetWindowDC(
- IN HWND hWnd);
- WINUSERAPI
- int
- WINAPI
- ReleaseDC(
- IN HWND hWnd,
- IN HDC hDC);
- WINUSERAPI
- HDC
- WINAPI
- BeginPaint(
- IN HWND hWnd,
- OUT LPPAINTSTRUCT lpPaint);
- WINUSERAPI
- BOOL
- WINAPI
- EndPaint(
- IN HWND hWnd,
- IN CONST PAINTSTRUCT *lpPaint);
- WINUSERAPI
- BOOL
- WINAPI
- GetUpdateRect(
- IN HWND hWnd,
- OUT LPRECT lpRect,
- IN BOOL bErase);
- WINUSERAPI
- int
- WINAPI
- GetUpdateRgn(
- IN HWND hWnd,
- IN HRGN hRgn,
- IN BOOL bErase);
- WINUSERAPI
- int
- WINAPI
- SetWindowRgn(
- IN HWND hWnd,
- IN HRGN hRgn,
- IN BOOL bRedraw);
- WINUSERAPI
- int
- WINAPI
- GetWindowRgn(
- IN HWND hWnd,
- IN HRGN hRgn);
- #if(_WIN32_WINNT >= 0x0501)
- WINUSERAPI
- int
- WINAPI
- GetWindowRgnBox(
- IN HWND hWnd,
- OUT LPRECT lprc);
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- int
- WINAPI
- ExcludeUpdateRgn(
- IN HDC hDC,
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- InvalidateRect(
- IN HWND hWnd,
- IN CONST RECT *lpRect,
- IN BOOL bErase);
- WINUSERAPI
- BOOL
- WINAPI
- ValidateRect(
- IN HWND hWnd,
- IN CONST RECT *lpRect);
- WINUSERAPI
- BOOL
- WINAPI
- InvalidateRgn(
- IN HWND hWnd,
- IN HRGN hRgn,
- IN BOOL bErase);
- WINUSERAPI
- BOOL
- WINAPI
- ValidateRgn(
- IN HWND hWnd,
- IN HRGN hRgn);
- WINUSERAPI
- BOOL
- WINAPI
- RedrawWindow(
- IN HWND hWnd,
- IN CONST RECT *lprcUpdate,
- IN HRGN hrgnUpdate,
- IN UINT flags);
- /*
- * RedrawWindow() flags
- */
- #define RDW_INVALIDATE 0x0001
- #define RDW_INTERNALPAINT 0x0002
- #define RDW_ERASE 0x0004
- #define RDW_VALIDATE 0x0008
- #define RDW_NOINTERNALPAINT 0x0010
- #define RDW_NOERASE 0x0020
- #define RDW_NOCHILDREN 0x0040
- #define RDW_ALLCHILDREN 0x0080
- #define RDW_UPDATENOW 0x0100
- #define RDW_ERASENOW 0x0200
- #define RDW_FRAME 0x0400
- #define RDW_NOFRAME 0x0800
- /*
- * LockWindowUpdate API
- */
- WINUSERAPI
- BOOL
- WINAPI
- LockWindowUpdate(
- IN HWND hWndLock);
- WINUSERAPI
- BOOL
- WINAPI
- ScrollWindow(
- IN HWND hWnd,
- IN int XAmount,
- IN int YAmount,
- IN CONST RECT *lpRect,
- IN CONST RECT *lpClipRect);
- WINUSERAPI
- BOOL
- WINAPI
- ScrollDC(
- IN HDC hDC,
- IN int dx,
- IN int dy,
- IN CONST RECT *lprcScroll,
- IN CONST RECT *lprcClip,
- IN HRGN hrgnUpdate,
- OUT LPRECT lprcUpdate);
- WINUSERAPI
- int
- WINAPI
- ScrollWindowEx(
- IN HWND hWnd,
- IN int dx,
- IN int dy,
- IN CONST RECT *prcScroll,
- IN CONST RECT *prcClip,
- IN HRGN hrgnUpdate,
- OUT LPRECT prcUpdate,
- IN UINT flags);
- #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */
- #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */
- #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
- #if(WINVER >= 0x0500)
- #define SW_SMOOTHSCROLL 0x0010 /* Use smooth scrolling */
- #endif /* WINVER >= 0x0500 */
- #ifndef NOSCROLL
- WINUSERAPI
- int
- WINAPI
- SetScrollPos(
- IN HWND hWnd,
- IN int nBar,
- IN int nPos,
- IN BOOL bRedraw);
- WINUSERAPI
- int
- WINAPI
- GetScrollPos(
- IN HWND hWnd,
- IN int nBar);
- WINUSERAPI
- BOOL
- WINAPI
- SetScrollRange(
- IN HWND hWnd,
- IN int nBar,
- IN int nMinPos,
- IN int nMaxPos,
- IN BOOL bRedraw);
- WINUSERAPI
- BOOL
- WINAPI
- GetScrollRange(
- IN HWND hWnd,
- IN int nBar,
- OUT LPINT lpMinPos,
- OUT LPINT lpMaxPos);
- WINUSERAPI
- BOOL
- WINAPI
- ShowScrollBar(
- IN HWND hWnd,
- IN int wBar,
- IN BOOL bShow);
- WINUSERAPI
- BOOL
- WINAPI
- EnableScrollBar(
- IN HWND hWnd,
- IN UINT wSBflags,
- IN UINT wArrows);
- /*
- * EnableScrollBar() flags
- */
- #define ESB_ENABLE_BOTH 0x0000
- #define ESB_DISABLE_BOTH 0x0003
- #define ESB_DISABLE_LEFT 0x0001
- #define ESB_DISABLE_RIGHT 0x0002
- #define ESB_DISABLE_UP 0x0001
- #define ESB_DISABLE_DOWN 0x0002
- #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
- #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
- #endif /* !NOSCROLL */
- WINUSERAPI
- BOOL
- WINAPI
- SetPropA(
- IN HWND hWnd,
- IN LPCSTR lpString,
- IN HANDLE hData);
- WINUSERAPI
- BOOL
- WINAPI
- SetPropW(
- IN HWND hWnd,
- IN LPCWSTR lpString,
- IN HANDLE hData);
- #ifdef UNICODE
- #define SetProp SetPropW
- #else
- #define SetProp SetPropA
- #endif // !UNICODE
- WINUSERAPI
- HANDLE
- WINAPI
- GetPropA(
- IN HWND hWnd,
- IN LPCSTR lpString);
- WINUSERAPI
- HANDLE
- WINAPI
- GetPropW(
- IN HWND hWnd,
- IN LPCWSTR lpString);
- #ifdef UNICODE
- #define GetProp GetPropW
- #else
- #define GetProp GetPropA
- #endif // !UNICODE
- WINUSERAPI
- HANDLE
- WINAPI
- RemovePropA(
- IN HWND hWnd,
- IN LPCSTR lpString);
- WINUSERAPI
- HANDLE
- WINAPI
- RemovePropW(
- IN HWND hWnd,
- IN LPCWSTR lpString);
- #ifdef UNICODE
- #define RemoveProp RemovePropW
- #else
- #define RemoveProp RemovePropA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- EnumPropsExA(
- IN HWND hWnd,
- IN PROPENUMPROCEXA lpEnumFunc,
- IN LPARAM lParam);
- WINUSERAPI
- int
- WINAPI
- EnumPropsExW(
- IN HWND hWnd,
- IN PROPENUMPROCEXW lpEnumFunc,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define EnumPropsEx EnumPropsExW
- #else
- #define EnumPropsEx EnumPropsExA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- EnumPropsA(
- IN HWND hWnd,
- IN PROPENUMPROCA lpEnumFunc);
- WINUSERAPI
- int
- WINAPI
- EnumPropsW(
- IN HWND hWnd,
- IN PROPENUMPROCW lpEnumFunc);
- #ifdef UNICODE
- #define EnumProps EnumPropsW
- #else
- #define EnumProps EnumPropsA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- SetWindowTextA(
- IN HWND hWnd,
- IN LPCSTR lpString);
- WINUSERAPI
- BOOL
- WINAPI
- SetWindowTextW(
- IN HWND hWnd,
- IN LPCWSTR lpString);
- #ifdef UNICODE
- #define SetWindowText SetWindowTextW
- #else
- #define SetWindowText SetWindowTextA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- GetWindowTextA(
- IN HWND hWnd,
- OUT LPSTR lpString,
- IN int nMaxCount);
- WINUSERAPI
- int
- WINAPI
- GetWindowTextW(
- IN HWND hWnd,
- OUT LPWSTR lpString,
- IN int nMaxCount);
- #ifdef UNICODE
- #define GetWindowText GetWindowTextW
- #else
- #define GetWindowText GetWindowTextA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- GetWindowTextLengthA(
- IN HWND hWnd);
- WINUSERAPI
- int
- WINAPI
- GetWindowTextLengthW(
- IN HWND hWnd);
- #ifdef UNICODE
- #define GetWindowTextLength GetWindowTextLengthW
- #else
- #define GetWindowTextLength GetWindowTextLengthA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- GetClientRect(
- IN HWND hWnd,
- OUT LPRECT lpRect);
- WINUSERAPI
- BOOL
- WINAPI
- GetWindowRect(
- IN HWND hWnd,
- OUT LPRECT lpRect);
- WINUSERAPI
- BOOL
- WINAPI
- AdjustWindowRect(
- IN OUT LPRECT lpRect,
- IN DWORD dwStyle,
- IN BOOL bMenu);
- WINUSERAPI
- BOOL
- WINAPI
- AdjustWindowRectEx(
- IN OUT LPRECT lpRect,
- IN DWORD dwStyle,
- IN BOOL bMenu,
- IN DWORD dwExStyle);
- #if(WINVER >= 0x0400)
- #define HELPINFO_WINDOW 0x0001
- #define HELPINFO_MENUITEM 0x0002
- typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */
- {
- UINT cbSize; /* Size in bytes of this struct */
- int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
- int iCtrlId; /* Control Id or a Menu item Id. */
- HANDLE hItemHandle; /* hWnd of control or hMenu. */
- DWORD_PTR dwContextId; /* Context Id associated with this item */
- POINT MousePos; /* Mouse Position in screen co-ordinates */
- } HELPINFO, FAR *LPHELPINFO;
- WINUSERAPI
- BOOL
- WINAPI
- SetWindowContextHelpId(
- IN HWND,
- IN DWORD);
- WINUSERAPI
- DWORD
- WINAPI
- GetWindowContextHelpId(
- IN HWND);
- WINUSERAPI
- BOOL
- WINAPI
- SetMenuContextHelpId(
- IN HMENU,
- IN DWORD);
- WINUSERAPI
- DWORD
- WINAPI
- GetMenuContextHelpId(
- IN HMENU);
- #endif /* WINVER >= 0x0400 */
- #ifndef NOMB
- /*
- * MessageBox() Flags
- */
- #define MB_OK 0x00000000L
- #define MB_OKCANCEL 0x00000001L
- #define MB_ABORTRETRYIGNORE 0x00000002L
- #define MB_YESNOCANCEL 0x00000003L
- #define MB_YESNO 0x00000004L
- #define MB_RETRYCANCEL 0x00000005L
- #if(WINVER >= 0x0500)
- #define MB_CANCELTRYCONTINUE 0x00000006L
- #endif /* WINVER >= 0x0500 */
- #define MB_ICONHAND 0x00000010L
- #define MB_ICONQUESTION 0x00000020L
- #define MB_ICONEXCLAMATION 0x00000030L
- #define MB_ICONASTERISK 0x00000040L
- #if(WINVER >= 0x0400)
- #define MB_USERICON 0x00000080L
- #define MB_ICONWARNING MB_ICONEXCLAMATION
- #define MB_ICONERROR MB_ICONHAND
- #endif /* WINVER >= 0x0400 */
- #define MB_ICONINFORMATION MB_ICONASTERISK
- #define MB_ICONSTOP MB_ICONHAND
- #define MB_DEFBUTTON1 0x00000000L
- #define MB_DEFBUTTON2 0x00000100L
- #define MB_DEFBUTTON3 0x00000200L
- #if(WINVER >= 0x0400)
- #define MB_DEFBUTTON4 0x00000300L
- #endif /* WINVER >= 0x0400 */
- #define MB_APPLMODAL 0x00000000L
- #define MB_SYSTEMMODAL 0x00001000L
- #define MB_TASKMODAL 0x00002000L
- #if(WINVER >= 0x0400)
- #define MB_HELP 0x00004000L // Help Button
- #endif /* WINVER >= 0x0400 */
- #define MB_NOFOCUS 0x00008000L
- #define MB_SETFOREGROUND 0x00010000L
- #define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
- #if(WINVER >= 0x0400)
- #define MB_TOPMOST 0x00040000L
- #define MB_RIGHT 0x00080000L
- #define MB_RTLREADING 0x00100000L
- #endif /* WINVER >= 0x0400 */
- #ifdef _WIN32_WINNT
- #if (_WIN32_WINNT >= 0x0400)
- #define MB_SERVICE_NOTIFICATION 0x00200000L
- #else
- #define MB_SERVICE_NOTIFICATION 0x00040000L
- #endif
- #define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
- #endif
- #define MB_TYPEMASK 0x0000000FL
- #define MB_ICONMASK 0x000000F0L
- #define MB_DEFMASK 0x00000F00L
- #define MB_MODEMASK 0x00003000L
- #define MB_MISCMASK 0x0000C000L
- WINUSERAPI
- int
- WINAPI
- MessageBoxA(
- IN HWND hWnd,
- IN LPCSTR lpText,
- IN LPCSTR lpCaption,
- IN UINT uType);
- WINUSERAPI
- int
- WINAPI
- MessageBoxW(
- IN HWND hWnd,
- IN LPCWSTR lpText,
- IN LPCWSTR lpCaption,
- IN UINT uType);
- #ifdef UNICODE
- #define MessageBox MessageBoxW
- #else
- #define MessageBox MessageBoxA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- MessageBoxExA(
- IN HWND hWnd,
- IN LPCSTR lpText,
- IN LPCSTR lpCaption,
- IN UINT uType,
- IN WORD wLanguageId);
- WINUSERAPI
- int
- WINAPI
- MessageBoxExW(
- IN HWND hWnd,
- IN LPCWSTR lpText,
- IN LPCWSTR lpCaption,
- IN UINT uType,
- IN WORD wLanguageId);
- #ifdef UNICODE
- #define MessageBoxEx MessageBoxExW
- #else
- #define MessageBoxEx MessageBoxExA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
- typedef struct tagMSGBOXPARAMSA
- {
- UINT cbSize;
- HWND hwndOwner;
- HINSTANCE hInstance;
- LPCSTR lpszText;
- LPCSTR lpszCaption;
- DWORD dwStyle;
- LPCSTR lpszIcon;
- DWORD_PTR dwContextHelpId;
- MSGBOXCALLBACK lpfnMsgBoxCallback;
- DWORD dwLanguageId;
- } MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
- typedef struct tagMSGBOXPARAMSW
- {
- UINT cbSize;
- HWND hwndOwner;
- HINSTANCE hInstance;
- LPCWSTR lpszText;
- LPCWSTR lpszCaption;
- DWORD dwStyle;
- LPCWSTR lpszIcon;
- DWORD_PTR dwContextHelpId;
- MSGBOXCALLBACK lpfnMsgBoxCallback;
- DWORD dwLanguageId;
- } MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
- #ifdef UNICODE
- typedef MSGBOXPARAMSW MSGBOXPARAMS;
- typedef PMSGBOXPARAMSW PMSGBOXPARAMS;
- typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS;
- #else
- typedef MSGBOXPARAMSA MSGBOXPARAMS;
- typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
- typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
- #endif // UNICODE
- WINUSERAPI
- int
- WINAPI
- MessageBoxIndirectA(
- IN CONST MSGBOXPARAMSA *);
- WINUSERAPI
- int
- WINAPI
- MessageBoxIndirectW(
- IN CONST MSGBOXPARAMSW *);
- #ifdef UNICODE
- #define MessageBoxIndirect MessageBoxIndirectW
- #else
- #define MessageBoxIndirect MessageBoxIndirectA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- MessageBeep(
- IN UINT uType);
- #endif /* !NOMB */
- WINUSERAPI
- int
- WINAPI
- ShowCursor(
- IN BOOL bShow);
- WINUSERAPI
- BOOL
- WINAPI
- SetCursorPos(
- IN int X,
- IN int Y);
- WINUSERAPI
- HCURSOR
- WINAPI
- SetCursor(
- IN HCURSOR hCursor);
- WINUSERAPI
- BOOL
- WINAPI
- GetCursorPos(
- OUT LPPOINT lpPoint);
- WINUSERAPI
- BOOL
- WINAPI
- ClipCursor(
- IN CONST RECT *lpRect);
- WINUSERAPI
- BOOL
- WINAPI
- GetClipCursor(
- OUT LPRECT lpRect);
- WINUSERAPI
- HCURSOR
- WINAPI
- GetCursor(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- CreateCaret(
- IN HWND hWnd,
- IN HBITMAP hBitmap,
- IN int nWidth,
- IN int nHeight);
- WINUSERAPI
- UINT
- WINAPI
- GetCaretBlinkTime(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- SetCaretBlinkTime(
- IN UINT uMSeconds);
- WINUSERAPI
- BOOL
- WINAPI
- DestroyCaret(
- VOID);
- WINUSERAPI
- BOOL
- WINAPI
- HideCaret(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- ShowCaret(
- IN HWND hWnd);
- WINUSERAPI
- BOOL
- WINAPI
- SetCaretPos(
- IN int X,
- IN int Y);
- WINUSERAPI
- BOOL
- WINAPI
- GetCaretPos(
- OUT LPPOINT lpPoint);
- WINUSERAPI
- BOOL
- WINAPI
- ClientToScreen(
- IN HWND hWnd,
- IN OUT LPPOINT lpPoint);
- WINUSERAPI
- BOOL
- WINAPI
- ScreenToClient(
- IN HWND hWnd,
- IN OUT LPPOINT lpPoint);
- WINUSERAPI
- int
- WINAPI
- MapWindowPoints(
- IN HWND hWndFrom,
- IN HWND hWndTo,
- IN OUT LPPOINT lpPoints,
- IN UINT cPoints);
- WINUSERAPI
- HWND
- WINAPI
- WindowFromPoint(
- IN POINT Point);
- WINUSERAPI
- HWND
- WINAPI
- ChildWindowFromPoint(
- IN HWND hWndParent,
- IN POINT Point);
- #if(WINVER >= 0x0400)
- #define CWP_ALL 0x0000
- #define CWP_SKIPINVISIBLE 0x0001
- #define CWP_SKIPDISABLED 0x0002
- #define CWP_SKIPTRANSPARENT 0x0004
- WINUSERAPI HWND WINAPI ChildWindowFromPointEx( IN HWND, IN POINT, IN UINT);
- #endif /* WINVER >= 0x0400 */
- #ifndef NOCOLOR
- /*
- * Color Types
- */
- #define CTLCOLOR_MSGBOX 0
- #define CTLCOLOR_EDIT 1
- #define CTLCOLOR_LISTBOX 2
- #define CTLCOLOR_BTN 3
- #define CTLCOLOR_DLG 4
- #define CTLCOLOR_SCROLLBAR 5
- #define CTLCOLOR_STATIC 6
- #define CTLCOLOR_MAX 7
- #define COLOR_SCROLLBAR 0
- #define COLOR_BACKGROUND 1
- #define COLOR_ACTIVECAPTION 2
- #define COLOR_INACTIVECAPTION 3
- #define COLOR_MENU 4
- #define COLOR_WINDOW 5
- #define COLOR_WINDOWFRAME 6
- #define COLOR_MENUTEXT 7
- #define COLOR_WINDOWTEXT 8
- #define COLOR_CAPTIONTEXT 9
- #define COLOR_ACTIVEBORDER 10
- #define COLOR_INACTIVEBORDER 11
- #define COLOR_APPWORKSPACE 12
- #define COLOR_HIGHLIGHT 13
- #define COLOR_HIGHLIGHTTEXT 14
- #define COLOR_BTNFACE 15
- #define COLOR_BTNSHADOW 16
- #define COLOR_GRAYTEXT 17
- #define COLOR_BTNTEXT 18
- #define COLOR_INACTIVECAPTIONTEXT 19
- #define COLOR_BTNHIGHLIGHT 20
- #if(WINVER >= 0x0400)
- #define COLOR_3DDKSHADOW 21
- #define COLOR_3DLIGHT 22
- #define COLOR_INFOTEXT 23
- #define COLOR_INFOBK 24
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define COLOR_HOTLIGHT 26
- #define COLOR_GRADIENTACTIVECAPTION 27
- #define COLOR_GRADIENTINACTIVECAPTION 28
- #if(WINVER >= 0x0501)
- #define COLOR_MENUHILIGHT 29
- #define COLOR_MENUBAR 30
- #endif /* WINVER >= 0x0501 */
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0400)
- #define COLOR_DESKTOP COLOR_BACKGROUND
- #define COLOR_3DFACE COLOR_BTNFACE
- #define COLOR_3DSHADOW COLOR_BTNSHADOW
- #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
- #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
- #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- DWORD
- WINAPI
- GetSysColor(
- IN int nIndex);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- HBRUSH
- WINAPI
- GetSysColorBrush(
- IN int nIndex);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- SetSysColors(
- IN int cElements,
- IN CONST INT * lpaElements,
- IN CONST COLORREF * lpaRgbValues);
- #endif /* !NOCOLOR */
- WINUSERAPI
- BOOL
- WINAPI
- DrawFocusRect(
- IN HDC hDC,
- IN CONST RECT * lprc);
- WINUSERAPI
- int
- WINAPI
- FillRect(
- IN HDC hDC,
- IN CONST RECT *lprc,
- IN HBRUSH hbr);
- WINUSERAPI
- int
- WINAPI
- FrameRect(
- IN HDC hDC,
- IN CONST RECT *lprc,
- IN HBRUSH hbr);
- WINUSERAPI
- BOOL
- WINAPI
- InvertRect(
- IN HDC hDC,
- IN CONST RECT *lprc);
- WINUSERAPI
- BOOL
- WINAPI
- SetRect(
- OUT LPRECT lprc,
- IN int xLeft,
- IN int yTop,
- IN int xRight,
- IN int yBottom);
- WINUSERAPI
- BOOL
- WINAPI
- SetRectEmpty(
- OUT LPRECT lprc);
- WINUSERAPI
- BOOL
- WINAPI
- CopyRect(
- OUT LPRECT lprcDst,
- IN CONST RECT *lprcSrc);
- WINUSERAPI
- BOOL
- WINAPI
- InflateRect(
- IN OUT LPRECT lprc,
- IN int dx,
- IN int dy);
- WINUSERAPI
- BOOL
- WINAPI
- IntersectRect(
- OUT LPRECT lprcDst,
- IN CONST RECT *lprcSrc1,
- IN CONST RECT *lprcSrc2);
- WINUSERAPI
- BOOL
- WINAPI
- UnionRect(
- OUT LPRECT lprcDst,
- IN CONST RECT *lprcSrc1,
- IN CONST RECT *lprcSrc2);
- WINUSERAPI
- BOOL
- WINAPI
- SubtractRect(
- OUT LPRECT lprcDst,
- IN CONST RECT *lprcSrc1,
- IN CONST RECT *lprcSrc2);
- WINUSERAPI
- BOOL
- WINAPI
- OffsetRect(
- IN OUT LPRECT lprc,
- IN int dx,
- IN int dy);
- WINUSERAPI
- BOOL
- WINAPI
- IsRectEmpty(
- IN CONST RECT *lprc);
- WINUSERAPI
- BOOL
- WINAPI
- EqualRect(
- IN CONST RECT *lprc1,
- IN CONST RECT *lprc2);
- WINUSERAPI
- BOOL
- WINAPI
- PtInRect(
- IN CONST RECT *lprc,
- IN POINT pt);
- #ifndef NOWINOFFSETS
- WINUSERAPI
- WORD
- WINAPI
- GetWindowWord(
- IN HWND hWnd,
- IN int nIndex);
- WINUSERAPI
- WORD
- WINAPI
- SetWindowWord(
- IN HWND hWnd,
- IN int nIndex,
- IN WORD wNewWord);
- WINUSERAPI
- LONG
- WINAPI
- GetWindowLongA(
- IN HWND hWnd,
- IN int nIndex);
- WINUSERAPI
- LONG
- WINAPI
- GetWindowLongW(
- IN HWND hWnd,
- IN int nIndex);
- #ifdef UNICODE
- #define GetWindowLong GetWindowLongW
- #else
- #define GetWindowLong GetWindowLongA
- #endif // !UNICODE
- WINUSERAPI
- LONG
- WINAPI
- SetWindowLongA(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG dwNewLong);
- WINUSERAPI
- LONG
- WINAPI
- SetWindowLongW(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG dwNewLong);
- #ifdef UNICODE
- #define SetWindowLong SetWindowLongW
- #else
- #define SetWindowLong SetWindowLongA
- #endif // !UNICODE
- #ifdef _WIN64
- WINUSERAPI
- LONG_PTR
- WINAPI
- GetWindowLongPtrA(
- HWND hWnd,
- int nIndex);
- WINUSERAPI
- LONG_PTR
- WINAPI
- GetWindowLongPtrW(
- HWND hWnd,
- int nIndex);
- #ifdef UNICODE
- #define GetWindowLongPtr GetWindowLongPtrW
- #else
- #define GetWindowLongPtr GetWindowLongPtrA
- #endif // !UNICODE
- WINUSERAPI
- LONG_PTR
- WINAPI
- SetWindowLongPtrA(
- HWND hWnd,
- int nIndex,
- LONG_PTR dwNewLong);
- WINUSERAPI
- LONG_PTR
- WINAPI
- SetWindowLongPtrW(
- HWND hWnd,
- int nIndex,
- LONG_PTR dwNewLong);
- #ifdef UNICODE
- #define SetWindowLongPtr SetWindowLongPtrW
- #else
- #define SetWindowLongPtr SetWindowLongPtrA
- #endif // !UNICODE
- #else /* _WIN64 */
- #define GetWindowLongPtrA GetWindowLongA
- #define GetWindowLongPtrW GetWindowLongW
- #ifdef UNICODE
- #define GetWindowLongPtr GetWindowLongPtrW
- #else
- #define GetWindowLongPtr GetWindowLongPtrA
- #endif // !UNICODE
- #define SetWindowLongPtrA SetWindowLongA
- #define SetWindowLongPtrW SetWindowLongW
- #ifdef UNICODE
- #define SetWindowLongPtr SetWindowLongPtrW
- #else
- #define SetWindowLongPtr SetWindowLongPtrA
- #endif // !UNICODE
- #endif /* _WIN64 */
- WINUSERAPI
- WORD
- WINAPI
- GetClassWord(
- IN HWND hWnd,
- IN int nIndex);
- WINUSERAPI
- WORD
- WINAPI
- SetClassWord(
- IN HWND hWnd,
- IN int nIndex,
- IN WORD wNewWord);
- WINUSERAPI
- DWORD
- WINAPI
- GetClassLongA(
- IN HWND hWnd,
- IN int nIndex);
- WINUSERAPI
- DWORD
- WINAPI
- GetClassLongW(
- IN HWND hWnd,
- IN int nIndex);
- #ifdef UNICODE
- #define GetClassLong GetClassLongW
- #else
- #define GetClassLong GetClassLongA
- #endif // !UNICODE
- WINUSERAPI
- DWORD
- WINAPI
- SetClassLongA(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG dwNewLong);
- WINUSERAPI
- DWORD
- WINAPI
- SetClassLongW(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG dwNewLong);
- #ifdef UNICODE
- #define SetClassLong SetClassLongW
- #else
- #define SetClassLong SetClassLongA
- #endif // !UNICODE
- #ifdef _WIN64
- WINUSERAPI
- ULONG_PTR
- WINAPI
- GetClassLongPtrA(
- IN HWND hWnd,
- IN int nIndex);
- WINUSERAPI
- ULONG_PTR
- WINAPI
- GetClassLongPtrW(
- IN HWND hWnd,
- IN int nIndex);
- #ifdef UNICODE
- #define GetClassLongPtr GetClassLongPtrW
- #else
- #define GetClassLongPtr GetClassLongPtrA
- #endif // !UNICODE
- WINUSERAPI
- ULONG_PTR
- WINAPI
- SetClassLongPtrA(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG_PTR dwNewLong);
- WINUSERAPI
- ULONG_PTR
- WINAPI
- SetClassLongPtrW(
- IN HWND hWnd,
- IN int nIndex,
- IN LONG_PTR dwNewLong);
- #ifdef UNICODE
- #define SetClassLongPtr SetClassLongPtrW
- #else
- #define SetClassLongPtr SetClassLongPtrA
- #endif // !UNICODE
- #else /* _WIN64 */
- #define GetClassLongPtrA GetClassLongA
- #define GetClassLongPtrW GetClassLongW
- #ifdef UNICODE
- #define GetClassLongPtr GetClassLongPtrW
- #else
- #define GetClassLongPtr GetClassLongPtrA
- #endif // !UNICODE
- #define SetClassLongPtrA SetClassLongA
- #define SetClassLongPtrW SetClassLongW
- #ifdef UNICODE
- #define SetClassLongPtr SetClassLongPtrW
- #else
- #define SetClassLongPtr SetClassLongPtrA
- #endif // !UNICODE
- #endif /* _WIN64 */
- #endif /* !NOWINOFFSETS */
- #if(WINVER >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- GetProcessDefaultLayout(
- OUT DWORD *pdwDefaultLayout);
- WINUSERAPI
- BOOL
- WINAPI
- SetProcessDefaultLayout(
- IN DWORD dwDefaultLayout);
- #endif /* WINVER >= 0x0500 */
- WINUSERAPI
- HWND
- WINAPI
- GetDesktopWindow(
- VOID);
- WINUSERAPI
- HWND
- WINAPI
- GetParent(
- IN HWND hWnd);
- WINUSERAPI
- HWND
- WINAPI
- SetParent(
- IN HWND hWndChild,
- IN HWND hWndNewParent);
- WINUSERAPI
- BOOL
- WINAPI
- EnumChildWindows(
- IN HWND hWndParent,
- IN WNDENUMPROC lpEnumFunc,
- IN LPARAM lParam);
- WINUSERAPI
- HWND
- WINAPI
- FindWindowA(
- IN LPCSTR lpClassName,
- IN LPCSTR lpWindowName);
- WINUSERAPI
- HWND
- WINAPI
- FindWindowW(
- IN LPCWSTR lpClassName,
- IN LPCWSTR lpWindowName);
- #ifdef UNICODE
- #define FindWindow FindWindowW
- #else
- #define FindWindow FindWindowA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI HWND WINAPI FindWindowExA( IN HWND, IN HWND, IN LPCSTR, IN LPCSTR);
- WINUSERAPI HWND WINAPI FindWindowExW( IN HWND, IN HWND, IN LPCWSTR, IN LPCWSTR);
- #ifdef UNICODE
- #define FindWindowEx FindWindowExW
- #else
- #define FindWindowEx FindWindowExA
- #endif // !UNICODE
- WINUSERAPI HWND WINAPI GetShellWindow(void);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI BOOL WINAPI RegisterShellHookWindow( IN HWND);
- WINUSERAPI BOOL WINAPI DeregisterShellHookWindow( IN HWND);
- WINUSERAPI
- BOOL
- WINAPI
- EnumWindows(
- IN WNDENUMPROC lpEnumFunc,
- IN LPARAM lParam);
- WINUSERAPI
- BOOL
- WINAPI
- EnumThreadWindows(
- IN DWORD dwThreadId,
- IN WNDENUMPROC lpfn,
- IN LPARAM lParam);
- #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam)
- WINUSERAPI
- int
- WINAPI
- GetClassNameA(
- IN HWND hWnd,
- OUT LPSTR lpClassName,
- IN int nMaxCount);
- WINUSERAPI
- int
- WINAPI
- GetClassNameW(
- IN HWND hWnd,
- OUT LPWSTR lpClassName,
- IN int nMaxCount);
- #ifdef UNICODE
- #define GetClassName GetClassNameW
- #else
- #define GetClassName GetClassNameA
- #endif // !UNICODE
- WINUSERAPI
- HWND
- WINAPI
- GetTopWindow(
- IN HWND hWnd);
- #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
- #define GetSysModalWindow() (NULL)
- #define SetSysModalWindow(hWnd) (NULL)
- WINUSERAPI
- DWORD
- WINAPI
- GetWindowThreadProcessId(
- IN HWND hWnd,
- OUT LPDWORD lpdwProcessId);
- #if(_WIN32_WINNT >= 0x0501)
- WINUSERAPI
- BOOL
- WINAPI
- IsGUIThread(
- BOOL bConvert);
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define GetWindowTask(hWnd) \
- ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL))
- WINUSERAPI
- HWND
- WINAPI
- GetLastActivePopup(
- IN HWND hWnd);
- /*
- * GetWindow() Constants
- */
- #define GW_HWNDFIRST 0
- #define GW_HWNDLAST 1
- #define GW_HWNDNEXT 2
- #define GW_HWNDPREV 3
- #define GW_OWNER 4
- #define GW_CHILD 5
- #if(WINVER <= 0x0400)
- #define GW_MAX 5
- #else
- #define GW_ENABLEDPOPUP 6
- #define GW_MAX 6
- #endif
- WINUSERAPI
- HWND
- WINAPI
- GetWindow(
- IN HWND hWnd,
- IN UINT uCmd);
- #ifndef NOWH
- #ifdef STRICT
- WINUSERAPI
- HHOOK
- WINAPI
- SetWindowsHookA(
- IN int nFilterType,
- IN HOOKPROC pfnFilterProc);
- WINUSERAPI
- HHOOK
- WINAPI
- SetWindowsHookW(
- IN int nFilterType,
- IN HOOKPROC pfnFilterProc);
- #ifdef UNICODE
- #define SetWindowsHook SetWindowsHookW
- #else
- #define SetWindowsHook SetWindowsHookA
- #endif // !UNICODE
- #else /* !STRICT */
- WINUSERAPI
- HOOKPROC
- WINAPI
- SetWindowsHookA(
- IN int nFilterType,
- IN HOOKPROC pfnFilterProc);
- WINUSERAPI
- HOOKPROC
- WINAPI
- SetWindowsHookW(
- IN int nFilterType,
- IN HOOKPROC pfnFilterProc);
- #ifdef UNICODE
- #define SetWindowsHook SetWindowsHookW
- #else
- #define SetWindowsHook SetWindowsHookA
- #endif // !UNICODE
- #endif /* !STRICT */
- WINUSERAPI
- BOOL
- WINAPI
- UnhookWindowsHook(
- IN int nCode,
- IN HOOKPROC pfnFilterProc);
- WINUSERAPI
- HHOOK
- WINAPI
- SetWindowsHookExA(
- IN int idHook,
- IN HOOKPROC lpfn,
- IN HINSTANCE hmod,
- IN DWORD dwThreadId);
- WINUSERAPI
- HHOOK
- WINAPI
- SetWindowsHookExW(
- IN int idHook,
- IN HOOKPROC lpfn,
- IN HINSTANCE hmod,
- IN DWORD dwThreadId);
- #ifdef UNICODE
- #define SetWindowsHookEx SetWindowsHookExW
- #else
- #define SetWindowsHookEx SetWindowsHookExA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- UnhookWindowsHookEx(
- IN HHOOK hhk);
- WINUSERAPI
- LRESULT
- WINAPI
- CallNextHookEx(
- IN HHOOK hhk,
- IN int nCode,
- IN WPARAM wParam,
- IN LPARAM lParam);
- /*
- * Macros for source-level compatibility with old functions.
- */
- #ifdef STRICT
- #define DefHookProc(nCode, wParam, lParam, phhk)\
- CallNextHookEx(*phhk, nCode, wParam, lParam)
- #else
- #define DefHookProc(nCode, wParam, lParam, phhk)\
- CallNextHookEx((HHOOK)*phhk, nCode, wParam, lParam)
- #endif /* STRICT */
- #endif /* !NOWH */
- #ifndef NOMENUS
- /* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */
- /*
- * Menu flags for Add/Check/EnableMenuItem()
- */
- #define MF_INSERT 0x00000000L
- #define MF_CHANGE 0x00000080L
- #define MF_APPEND 0x00000100L
- #define MF_DELETE 0x00000200L
- #define MF_REMOVE 0x00001000L
- #define MF_BYCOMMAND 0x00000000L
- #define MF_BYPOSITION 0x00000400L
- #define MF_SEPARATOR 0x00000800L
- #define MF_ENABLED 0x00000000L
- #define MF_GRAYED 0x00000001L
- #define MF_DISABLED 0x00000002L
- #define MF_UNCHECKED 0x00000000L
- #define MF_CHECKED 0x00000008L
- #define MF_USECHECKBITMAPS 0x00000200L
- #define MF_STRING 0x00000000L
- #define MF_BITMAP 0x00000004L
- #define MF_OWNERDRAW 0x00000100L
- #define MF_POPUP 0x00000010L
- #define MF_MENUBARBREAK 0x00000020L
- #define MF_MENUBREAK 0x00000040L
- #define MF_UNHILITE 0x00000000L
- #define MF_HILITE 0x00000080L
- #if(WINVER >= 0x0400)
- #define MF_DEFAULT 0x00001000L
- #endif /* WINVER >= 0x0400 */
- #define MF_SYSMENU 0x00002000L
- #define MF_HELP 0x00004000L
- #if(WINVER >= 0x0400)
- #define MF_RIGHTJUSTIFY 0x00004000L
- #endif /* WINVER >= 0x0400 */
- #define MF_MOUSESELECT 0x00008000L
- #if(WINVER >= 0x0400)
- #define MF_END 0x00000080L /* Obsolete -- only used by old RES files */
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- #define MFT_STRING MF_STRING
- #define MFT_BITMAP MF_BITMAP
- #define MFT_MENUBARBREAK MF_MENUBARBREAK
- #define MFT_MENUBREAK MF_MENUBREAK
- #define MFT_OWNERDRAW MF_OWNERDRAW
- #define MFT_RADIOCHECK 0x00000200L
- #define MFT_SEPARATOR MF_SEPARATOR
- #define MFT_RIGHTORDER 0x00002000L
- #define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY
- /* Menu flags for Add/Check/EnableMenuItem() */
- #define MFS_GRAYED 0x00000003L
- #define MFS_DISABLED MFS_GRAYED
- #define MFS_CHECKED MF_CHECKED
- #define MFS_HILITE MF_HILITE
- #define MFS_ENABLED MF_ENABLED
- #define MFS_UNCHECKED MF_UNCHECKED
- #define MFS_UNHILITE MF_UNHILITE
- #define MFS_DEFAULT MF_DEFAULT
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0400)
- WINUSERAPI
- BOOL
- WINAPI
- CheckMenuRadioItem(
- IN HMENU,
- IN UINT,
- IN UINT,
- IN UINT,
- IN UINT);
- #endif /* WINVER >= 0x0400 */
- /*
- * Menu item resource format
- */
- typedef struct {
- WORD versionNumber;
- WORD offset;
- } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
- typedef struct { // version 0
- WORD mtOption;
- WORD mtID;
- WCHAR mtString[1];
- } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
- #define MF_END 0x00000080L
- #endif /* !NOMENUS */
- #ifndef NOSYSCOMMANDS
- /*
- * System Menu Command Values
- */
- #define SC_SIZE 0xF000
- #define SC_MOVE 0xF010
- #define SC_MINIMIZE 0xF020
- #define SC_MAXIMIZE 0xF030
- #define SC_NEXTWINDOW 0xF040
- #define SC_PREVWINDOW 0xF050
- #define SC_CLOSE 0xF060
- #define SC_VSCROLL 0xF070
- #define SC_HSCROLL 0xF080
- #define SC_MOUSEMENU 0xF090
- #define SC_KEYMENU 0xF100
- #define SC_ARRANGE 0xF110
- #define SC_RESTORE 0xF120
- #define SC_TASKLIST 0xF130
- #define SC_SCREENSAVE 0xF140
- #define SC_HOTKEY 0xF150
- #if(WINVER >= 0x0400)
- #define SC_DEFAULT 0xF160
- #define SC_MONITORPOWER 0xF170
- #define SC_CONTEXTHELP 0xF180
- #define SC_SEPARATOR 0xF00F
- #endif /* WINVER >= 0x0400 */
- /*
- * Obsolete names
- */
- #define SC_ICON SC_MINIMIZE
- #define SC_ZOOM SC_MAXIMIZE
- #endif /* !NOSYSCOMMANDS */
- /*
- * Resource Loading Routines
- */
- WINUSERAPI
- HBITMAP
- WINAPI
- LoadBitmapA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpBitmapName);
- WINUSERAPI
- HBITMAP
- WINAPI
- LoadBitmapW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpBitmapName);
- #ifdef UNICODE
- #define LoadBitmap LoadBitmapW
- #else
- #define LoadBitmap LoadBitmapA
- #endif // !UNICODE
- WINUSERAPI
- HCURSOR
- WINAPI
- LoadCursorA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpCursorName);
- WINUSERAPI
- HCURSOR
- WINAPI
- LoadCursorW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpCursorName);
- #ifdef UNICODE
- #define LoadCursor LoadCursorW
- #else
- #define LoadCursor LoadCursorA
- #endif // !UNICODE
- WINUSERAPI
- HCURSOR
- WINAPI
- LoadCursorFromFileA(
- IN LPCSTR lpFileName);
- WINUSERAPI
- HCURSOR
- WINAPI
- LoadCursorFromFileW(
- IN LPCWSTR lpFileName);
- #ifdef UNICODE
- #define LoadCursorFromFile LoadCursorFromFileW
- #else
- #define LoadCursorFromFile LoadCursorFromFileA
- #endif // !UNICODE
- WINUSERAPI
- HCURSOR
- WINAPI
- CreateCursor(
- IN HINSTANCE hInst,
- IN int xHotSpot,
- IN int yHotSpot,
- IN int nWidth,
- IN int nHeight,
- IN CONST VOID *pvANDPlane,
- IN CONST VOID *pvXORPlane);
- WINUSERAPI
- BOOL
- WINAPI
- DestroyCursor(
- IN HCURSOR hCursor);
- #ifndef _MAC
- #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
- #else
- WINUSERAPI
- HCURSOR
- WINAPI
- CopyCursor(
- IN HCURSOR hCursor);
- #endif
- /*
- * Standard Cursor IDs
- */
- #define IDC_ARROW MAKEINTRESOURCE(32512)
- #define IDC_IBEAM MAKEINTRESOURCE(32513)
- #define IDC_WAIT MAKEINTRESOURCE(32514)
- #define IDC_CROSS MAKEINTRESOURCE(32515)
- #define IDC_UPARROW MAKEINTRESOURCE(32516)
- #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */
- #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */
- #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
- #define IDC_SIZENESW MAKEINTRESOURCE(32643)
- #define IDC_SIZEWE MAKEINTRESOURCE(32644)
- #define IDC_SIZENS MAKEINTRESOURCE(32645)
- #define IDC_SIZEALL MAKEINTRESOURCE(32646)
- #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */
- #if(WINVER >= 0x0500)
- #define IDC_HAND MAKEINTRESOURCE(32649)
- #endif /* WINVER >= 0x0500 */
- #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */
- #if(WINVER >= 0x0400)
- #define IDC_HELP MAKEINTRESOURCE(32651)
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- SetSystemCursor(
- IN HCURSOR hcur,
- IN DWORD id);
- typedef struct _ICONINFO {
- BOOL fIcon;
- DWORD xHotspot;
- DWORD yHotspot;
- HBITMAP hbmMask;
- HBITMAP hbmColor;
- } ICONINFO;
- typedef ICONINFO *PICONINFO;
- WINUSERAPI
- HICON
- WINAPI
- LoadIconA(
- IN HINSTANCE hInstance,
- IN LPCSTR lpIconName);
- WINUSERAPI
- HICON
- WINAPI
- LoadIconW(
- IN HINSTANCE hInstance,
- IN LPCWSTR lpIconName);
- #ifdef UNICODE
- #define LoadIcon LoadIconW
- #else
- #define LoadIcon LoadIconA
- #endif // !UNICODE
- WINUSERAPI UINT PrivateExtractIconsA(
- IN LPCSTR szFileName,
- IN int nIconIndex,
- IN int cxIcon,
- IN int cyIcon,
- OUT HICON *phicon,
- OUT UINT *piconid,
- IN UINT nIcons,
- IN UINT flags);
- WINUSERAPI UINT PrivateExtractIconsW(
- IN LPCWSTR szFileName,
- IN int nIconIndex,
- IN int cxIcon,
- IN int cyIcon,
- OUT HICON *phicon,
- OUT UINT *piconid,
- IN UINT nIcons,
- IN UINT flags);
- #ifdef UNICODE
- #define PrivateExtractIcons PrivateExtractIconsW
- #else
- #define PrivateExtractIcons PrivateExtractIconsA
- #endif // !UNICODE
- WINUSERAPI
- HICON
- WINAPI
- CreateIcon(
- IN HINSTANCE hInstance,
- IN int nWidth,
- IN int nHeight,
- IN BYTE cPlanes,
- IN BYTE cBitsPixel,
- IN CONST BYTE *lpbANDbits,
- IN CONST BYTE *lpbXORbits);
- WINUSERAPI
- BOOL
- WINAPI
- DestroyIcon(
- IN HICON hIcon);
- WINUSERAPI
- int
- WINAPI
- LookupIconIdFromDirectory(
- IN PBYTE presbits,
- IN BOOL fIcon);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- int
- WINAPI
- LookupIconIdFromDirectoryEx(
- IN PBYTE presbits,
- IN BOOL fIcon,
- IN int cxDesired,
- IN int cyDesired,
- IN UINT Flags);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- HICON
- WINAPI
- CreateIconFromResource(
- IN PBYTE presbits,
- IN DWORD dwResSize,
- IN BOOL fIcon,
- IN DWORD dwVer);
- #if(WINVER >= 0x0400)
- WINUSERAPI
- HICON
- WINAPI
- CreateIconFromResourceEx(
- IN PBYTE presbits,
- IN DWORD dwResSize,
- IN BOOL fIcon,
- IN DWORD dwVer,
- IN int cxDesired,
- IN int cyDesired,
- IN UINT Flags);
- /* Icon/Cursor header */
- typedef struct tagCURSORSHAPE
- {
- int xHotSpot;
- int yHotSpot;
- int cx;
- int cy;
- int cbWidth;
- BYTE Planes;
- BYTE BitsPixel;
- } CURSORSHAPE, FAR *LPCURSORSHAPE;
- #endif /* WINVER >= 0x0400 */
- #define IMAGE_BITMAP 0
- #define IMAGE_ICON 1
- #define IMAGE_CURSOR 2
- #if(WINVER >= 0x0400)
- #define IMAGE_ENHMETAFILE 3
- #define LR_DEFAULTCOLOR 0x0000
- #define LR_MONOCHROME 0x0001
- #define LR_COLOR 0x0002
- #define LR_COPYRETURNORG 0x0004
- #define LR_COPYDELETEORG 0x0008
- #define LR_LOADFROMFILE 0x0010
- #define LR_LOADTRANSPARENT 0x0020
- #define LR_DEFAULTSIZE 0x0040
- #define LR_VGACOLOR 0x0080
- #define LR_LOADMAP3DCOLORS 0x1000
- #define LR_CREATEDIBSECTION 0x2000
- #define LR_COPYFROMRESOURCE 0x4000
- #define LR_SHARED 0x8000
- WINUSERAPI
- HANDLE
- WINAPI
- LoadImageA(
- IN HINSTANCE,
- IN LPCSTR,
- IN UINT,
- IN int,
- IN int,
- IN UINT);
- WINUSERAPI
- HANDLE
- WINAPI
- LoadImageW(
- IN HINSTANCE,
- IN LPCWSTR,
- IN UINT,
- IN int,
- IN int,
- IN UINT);
- #ifdef UNICODE
- #define LoadImage LoadImageW
- #else
- #define LoadImage LoadImageA
- #endif // !UNICODE
- WINUSERAPI
- HANDLE
- WINAPI
- CopyImage(
- IN HANDLE,
- IN UINT,
- IN int,
- IN int,
- IN UINT);
- #define DI_MASK 0x0001
- #define DI_IMAGE 0x0002
- #define DI_NORMAL 0x0003
- #define DI_COMPAT 0x0004
- #define DI_DEFAULTSIZE 0x0008
- #if(_WIN32_WINNT >= 0x0501)
- #define DI_NOMIRROR 0x0010
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI BOOL WINAPI DrawIconEx( IN HDC hdc, IN int xLeft, IN int yTop,
- IN HICON hIcon, IN int cxWidth, IN int cyWidth,
- IN UINT istepIfAniCur, IN HBRUSH hbrFlickerFreeDraw, IN UINT diFlags);
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- HICON
- WINAPI
- CreateIconIndirect(
- IN PICONINFO piconinfo);
- WINUSERAPI
- HICON
- WINAPI
- CopyIcon(
- IN HICON hIcon);
- WINUSERAPI
- BOOL
- WINAPI
- GetIconInfo(
- IN HICON hIcon,
- OUT PICONINFO piconinfo);
- #if(WINVER >= 0x0400)
- #define RES_ICON 1
- #define RES_CURSOR 2
- #endif /* WINVER >= 0x0400 */
- #ifdef OEMRESOURCE
- /*
- * OEM Resource Ordinal Numbers
- */
- #define OBM_CLOSE 32754
- #define OBM_UPARROW 32753
- #define OBM_DNARROW 32752
- #define OBM_RGARROW 32751
- #define OBM_LFARROW 32750
- #define OBM_REDUCE 32749
- #define OBM_ZOOM 32748
- #define OBM_RESTORE 32747
- #define OBM_REDUCED 32746
- #define OBM_ZOOMD 32745
- #define OBM_RESTORED 32744
- #define OBM_UPARROWD 32743
- #define OBM_DNARROWD 32742
- #define OBM_RGARROWD 32741
- #define OBM_LFARROWD 32740
- #define OBM_MNARROW 32739
- #define OBM_COMBO 32738
- #define OBM_UPARROWI 32737
- #define OBM_DNARROWI 32736
- #define OBM_RGARROWI 32735
- #define OBM_LFARROWI 32734
- #define OBM_OLD_CLOSE 32767
- #define OBM_SIZE 32766
- #define OBM_OLD_UPARROW 32765
- #define OBM_OLD_DNARROW 32764
- #define OBM_OLD_RGARROW 32763
- #define OBM_OLD_LFARROW 32762
- #define OBM_BTSIZE 32761
- #define OBM_CHECK 32760
- #define OBM_CHECKBOXES 32759
- #define OBM_BTNCORNERS 32758
- #define OBM_OLD_REDUCE 32757
- #define OBM_OLD_ZOOM 32756
- #define OBM_OLD_RESTORE 32755
- #define OCR_NORMAL 32512
- #define OCR_IBEAM 32513
- #define OCR_WAIT 32514
- #define OCR_CROSS 32515
- #define OCR_UP 32516
- #define OCR_SIZE 32640 /* OBSOLETE: use OCR_SIZEALL */
- #define OCR_ICON 32641 /* OBSOLETE: use OCR_NORMAL */
- #define OCR_SIZENWSE 32642
- #define OCR_SIZENESW 32643
- #define OCR_SIZEWE 32644
- #define OCR_SIZENS 32645
- #define OCR_SIZEALL 32646
- #define OCR_ICOCUR 32647 /* OBSOLETE: use OIC_WINLOGO */
- #define OCR_NO 32648
- #if(WINVER >= 0x0500)
- #define OCR_HAND 32649
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0400)
- #define OCR_APPSTARTING 32650
- #endif /* WINVER >= 0x0400 */
- #define OIC_SAMPLE 32512
- #define OIC_HAND 32513
- #define OIC_QUES 32514
- #define OIC_BANG 32515
- #define OIC_NOTE 32516
- #if(WINVER >= 0x0400)
- #define OIC_WINLOGO 32517
- #define OIC_WARNING OIC_BANG
- #define OIC_ERROR OIC_HAND
- #define OIC_INFORMATION OIC_NOTE
- #endif /* WINVER >= 0x0400 */
- #endif /* OEMRESOURCE */
- #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of
- ** language drivers.
- */
- #ifndef NOICONS
- /*
- * Standard Icon IDs
- */
- #ifdef RC_INVOKED
- #define IDI_APPLICATION 32512
- #define IDI_HAND 32513
- #define IDI_QUESTION 32514
- #define IDI_EXCLAMATION 32515
- #define IDI_ASTERISK 32516
- #if(WINVER >= 0x0400)
- #define IDI_WINLOGO 32517
- #endif /* WINVER >= 0x0400 */
- #else
- #define IDI_APPLICATION MAKEINTRESOURCE(32512)
- #define IDI_HAND MAKEINTRESOURCE(32513)
- #define IDI_QUESTION MAKEINTRESOURCE(32514)
- #define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
- #define IDI_ASTERISK MAKEINTRESOURCE(32516)
- #if(WINVER >= 0x0400)
- #define IDI_WINLOGO MAKEINTRESOURCE(32517)
- #endif /* WINVER >= 0x0400 */
- #endif /* RC_INVOKED */
- #if(WINVER >= 0x0400)
- #define IDI_WARNING IDI_EXCLAMATION
- #define IDI_ERROR IDI_HAND
- #define IDI_INFORMATION IDI_ASTERISK
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOICONS */
- WINUSERAPI
- int
- WINAPI
- LoadStringA(
- IN HINSTANCE hInstance,
- IN UINT uID,
- OUT LPSTR lpBuffer,
- IN int nBufferMax);
- WINUSERAPI
- int
- WINAPI
- LoadStringW(
- IN HINSTANCE hInstance,
- IN UINT uID,
- OUT LPWSTR lpBuffer,
- IN int nBufferMax);
- #ifdef UNICODE
- #define LoadString LoadStringW
- #else
- #define LoadString LoadStringA
- #endif // !UNICODE
- /*
- * Dialog Box Command IDs
- */
- #define IDOK 1
- #define IDCANCEL 2
- #define IDABORT 3
- #define IDRETRY 4
- #define IDIGNORE 5
- #define IDYES 6
- #define IDNO 7
- #if(WINVER >= 0x0400)
- #define IDCLOSE 8
- #define IDHELP 9
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define IDTRYAGAIN 10
- #define IDCONTINUE 11
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0501)
- #ifndef IDTIMEOUT
- #define IDTIMEOUT 32000
- #endif
- #endif /* WINVER >= 0x0501 */
- #ifndef NOCTLMGR
- /*
- * Control Manager Structures and Definitions
- */
- #ifndef NOWINSTYLES
- /*
- * Edit Control Styles
- */
- #define ES_LEFT 0x0000L
- #define ES_CENTER 0x0001L
- #define ES_RIGHT 0x0002L
- #define ES_MULTILINE 0x0004L
- #define ES_UPPERCASE 0x0008L
- #define ES_LOWERCASE 0x0010L
- #define ES_PASSWORD 0x0020L
- #define ES_AUTOVSCROLL 0x0040L
- #define ES_AUTOHSCROLL 0x0080L
- #define ES_NOHIDESEL 0x0100L
- #define ES_OEMCONVERT 0x0400L
- #define ES_READONLY 0x0800L
- #define ES_WANTRETURN 0x1000L
- #if(WINVER >= 0x0400)
- #define ES_NUMBER 0x2000L
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOWINSTYLES */
- /*
- * Edit Control Notification Codes
- */
- #define EN_SETFOCUS 0x0100
- #define EN_KILLFOCUS 0x0200
- #define EN_CHANGE 0x0300
- #define EN_UPDATE 0x0400
- #define EN_ERRSPACE 0x0500
- #define EN_MAXTEXT 0x0501
- #define EN_HSCROLL 0x0601
- #define EN_VSCROLL 0x0602
- #if(_WIN32_WINNT >= 0x0500)
- #define EN_ALIGN_LTR_EC 0x0700
- #define EN_ALIGN_RTL_EC 0x0701
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(WINVER >= 0x0400)
- /* Edit control EM_SETMARGIN parameters */
- #define EC_LEFTMARGIN 0x0001
- #define EC_RIGHTMARGIN 0x0002
- #define EC_USEFONTINFO 0xffff
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- /* wParam of EM_GET/SETIMESTATUS */
- #define EMSIS_COMPOSITIONSTRING 0x0001
- /* lParam for EMSIS_COMPOSITIONSTRING */
- #define EIMES_GETCOMPSTRATONCE 0x0001
- #define EIMES_CANCELCOMPSTRINFOCUS 0x0002
- #define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
- #endif /* WINVER >= 0x0500 */
- #ifndef NOWINMESSAGES
- /*
- * Edit Control Messages
- */
- #define EM_GETSEL 0x00B0
- #define EM_SETSEL 0x00B1
- #define EM_GETRECT 0x00B2
- #define EM_SETRECT 0x00B3
- #define EM_SETRECTNP 0x00B4
- #define EM_SCROLL 0x00B5
- #define EM_LINESCROLL 0x00B6
- #define EM_SCROLLCARET 0x00B7
- #define EM_GETMODIFY 0x00B8
- #define EM_SETMODIFY 0x00B9
- #define EM_GETLINECOUNT 0x00BA
- #define EM_LINEINDEX 0x00BB
- #define EM_SETHANDLE 0x00BC
- #define EM_GETHANDLE 0x00BD
- #define EM_GETTHUMB 0x00BE
- #define EM_LINELENGTH 0x00C1
- #define EM_REPLACESEL 0x00C2
- #define EM_GETLINE 0x00C4
- #define EM_LIMITTEXT 0x00C5
- #define EM_CANUNDO 0x00C6
- #define EM_UNDO 0x00C7
- #define EM_FMTLINES 0x00C8
- #define EM_LINEFROMCHAR 0x00C9
- #define EM_SETTABSTOPS 0x00CB
- #define EM_SETPASSWORDCHAR 0x00CC
- #define EM_EMPTYUNDOBUFFER 0x00CD
- #define EM_GETFIRSTVISIBLELINE 0x00CE
- #define EM_SETREADONLY 0x00CF
- #define EM_SETWORDBREAKPROC 0x00D0
- #define EM_GETWORDBREAKPROC 0x00D1
- #define EM_GETPASSWORDCHAR 0x00D2
- #if(WINVER >= 0x0400)
- #define EM_SETMARGINS 0x00D3
- #define EM_GETMARGINS 0x00D4
- #define EM_SETLIMITTEXT EM_LIMITTEXT /* ;win40 Name change */
- #define EM_GETLIMITTEXT 0x00D5
- #define EM_POSFROMCHAR 0x00D6
- #define EM_CHARFROMPOS 0x00D7
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define EM_SETIMESTATUS 0x00D8
- #define EM_GETIMESTATUS 0x00D9
- #endif /* WINVER >= 0x0500 */
- #endif /* !NOWINMESSAGES */
- /*
- * EDITWORDBREAKPROC code values
- */
- #define WB_LEFT 0
- #define WB_RIGHT 1
- #define WB_ISDELIMITER 2
- /*
- * Button Control Styles
- */
- #define BS_PUSHBUTTON 0x00000000L
- #define BS_DEFPUSHBUTTON 0x00000001L
- #define BS_CHECKBOX 0x00000002L
- #define BS_AUTOCHECKBOX 0x00000003L
- #define BS_RADIOBUTTON 0x00000004L
- #define BS_3STATE 0x00000005L
- #define BS_AUTO3STATE 0x00000006L
- #define BS_GROUPBOX 0x00000007L
- #define BS_USERBUTTON 0x00000008L
- #define BS_AUTORADIOBUTTON 0x00000009L
- #define BS_PUSHBOX 0x0000000AL
- #define BS_OWNERDRAW 0x0000000BL
- #define BS_TYPEMASK 0x0000000FL
- #define BS_LEFTTEXT 0x00000020L
- #if(WINVER >= 0x0400)
- #define BS_TEXT 0x00000000L
- #define BS_ICON 0x00000040L
- #define BS_BITMAP 0x00000080L
- #define BS_LEFT 0x00000100L
- #define BS_RIGHT 0x00000200L
- #define BS_CENTER 0x00000300L
- #define BS_TOP 0x00000400L
- #define BS_BOTTOM 0x00000800L
- #define BS_VCENTER 0x00000C00L
- #define BS_PUSHLIKE 0x00001000L
- #define BS_MULTILINE 0x00002000L
- #define BS_NOTIFY 0x00004000L
- #define BS_FLAT 0x00008000L
- #define BS_RIGHTBUTTON BS_LEFTTEXT
- #endif /* WINVER >= 0x0400 */
- /*
- * User Button Notification Codes
- */
- #define BN_CLICKED 0
- #define BN_PAINT 1
- #define BN_HILITE 2
- #define BN_UNHILITE 3
- #define BN_DISABLE 4
- #define BN_DOUBLECLICKED 5
- #if(WINVER >= 0x0400)
- #define BN_PUSHED BN_HILITE
- #define BN_UNPUSHED BN_UNHILITE
- #define BN_DBLCLK BN_DOUBLECLICKED
- #define BN_SETFOCUS 6
- #define BN_KILLFOCUS 7
- #endif /* WINVER >= 0x0400 */
- /*
- * Button Control Messages
- */
- #define BM_GETCHECK 0x00F0
- #define BM_SETCHECK 0x00F1
- #define BM_GETSTATE 0x00F2
- #define BM_SETSTATE 0x00F3
- #define BM_SETSTYLE 0x00F4
- #if(WINVER >= 0x0400)
- #define BM_CLICK 0x00F5
- #define BM_GETIMAGE 0x00F6
- #define BM_SETIMAGE 0x00F7
- #define BST_UNCHECKED 0x0000
- #define BST_CHECKED 0x0001
- #define BST_INDETERMINATE 0x0002
- #define BST_PUSHED 0x0004
- #define BST_FOCUS 0x0008
- #endif /* WINVER >= 0x0400 */
- /*
- * Static Control Constants
- */
- #define SS_LEFT 0x00000000L
- #define SS_CENTER 0x00000001L
- #define SS_RIGHT 0x00000002L
- #define SS_ICON 0x00000003L
- #define SS_BLACKRECT 0x00000004L
- #define SS_GRAYRECT 0x00000005L
- #define SS_WHITERECT 0x00000006L
- #define SS_BLACKFRAME 0x00000007L
- #define SS_GRAYFRAME 0x00000008L
- #define SS_WHITEFRAME 0x00000009L
- #define SS_USERITEM 0x0000000AL
- #define SS_SIMPLE 0x0000000BL
- #define SS_LEFTNOWORDWRAP 0x0000000CL
- #if(WINVER >= 0x0400)
- #define SS_OWNERDRAW 0x0000000DL
- #define SS_BITMAP 0x0000000EL
- #define SS_ENHMETAFILE 0x0000000FL
- #define SS_ETCHEDHORZ 0x00000010L
- #define SS_ETCHEDVERT 0x00000011L
- #define SS_ETCHEDFRAME 0x00000012L
- #define SS_TYPEMASK 0x0000001FL
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0501)
- #define SS_REALSIZECONTROL 0x00000040L
- #endif /* WINVER >= 0x0501 */
- #define SS_NOPREFIX 0x00000080L /* Don't do "&" character translation */
- #if(WINVER >= 0x0400)
- #define SS_NOTIFY 0x00000100L
- #define SS_CENTERIMAGE 0x00000200L
- #define SS_RIGHTJUST 0x00000400L
- #define SS_REALSIZEIMAGE 0x00000800L
- #define SS_SUNKEN 0x00001000L
- #define SS_EDITCONTROL 0x00002000L
- #define SS_ENDELLIPSIS 0x00004000L
- #define SS_PATHELLIPSIS 0x00008000L
- #define SS_WORDELLIPSIS 0x0000C000L
- #define SS_ELLIPSISMASK 0x0000C000L
- #endif /* WINVER >= 0x0400 */
- #ifndef NOWINMESSAGES
- /*
- * Static Control Mesages
- */
- #define STM_SETICON 0x0170
- #define STM_GETICON 0x0171
- #if(WINVER >= 0x0400)
- #define STM_SETIMAGE 0x0172
- #define STM_GETIMAGE 0x0173
- #define STN_CLICKED 0
- #define STN_DBLCLK 1
- #define STN_ENABLE 2
- #define STN_DISABLE 3
- #endif /* WINVER >= 0x0400 */
- #define STM_MSGMAX 0x0174
- #endif /* !NOWINMESSAGES */
- /*
- * Dialog window class
- */
- #define WC_DIALOG (MAKEINTATOM(0x8002))
- /*
- * Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
- */
- #define DWL_MSGRESULT 0
- #define DWL_DLGPROC 4
- #define DWL_USER 8
- #ifdef _WIN64
- #undef DWL_MSGRESULT
- #undef DWL_DLGPROC
- #undef DWL_USER
- #endif /* _WIN64 */
- #define DWLP_MSGRESULT 0
- #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
- #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
- /*
- * Dialog Manager Routines
- */
- #ifndef NOMSG
- WINUSERAPI
- BOOL
- WINAPI
- IsDialogMessageA(
- IN HWND hDlg,
- IN LPMSG lpMsg);
- WINUSERAPI
- BOOL
- WINAPI
- IsDialogMessageW(
- IN HWND hDlg,
- IN LPMSG lpMsg);
- #ifdef UNICODE
- #define IsDialogMessage IsDialogMessageW
- #else
- #define IsDialogMessage IsDialogMessageA
- #endif // !UNICODE
- #endif /* !NOMSG */
- WINUSERAPI
- BOOL
- WINAPI
- MapDialogRect(
- IN HWND hDlg,
- IN OUT LPRECT lpRect);
- WINUSERAPI
- int
- WINAPI
- DlgDirListA(
- IN HWND hDlg,
- IN OUT LPSTR lpPathSpec,
- IN int nIDListBox,
- IN int nIDStaticPath,
- IN UINT uFileType);
- WINUSERAPI
- int
- WINAPI
- DlgDirListW(
- IN HWND hDlg,
- IN OUT LPWSTR lpPathSpec,
- IN int nIDListBox,
- IN int nIDStaticPath,
- IN UINT uFileType);
- #ifdef UNICODE
- #define DlgDirList DlgDirListW
- #else
- #define DlgDirList DlgDirListA
- #endif // !UNICODE
- /*
- * DlgDirList, DlgDirListComboBox flags values
- */
- #define DDL_READWRITE 0x0000
- #define DDL_READONLY 0x0001
- #define DDL_HIDDEN 0x0002
- #define DDL_SYSTEM 0x0004
- #define DDL_DIRECTORY 0x0010
- #define DDL_ARCHIVE 0x0020
- #define DDL_POSTMSGS 0x2000
- #define DDL_DRIVES 0x4000
- #define DDL_EXCLUSIVE 0x8000
- WINUSERAPI
- BOOL
- WINAPI
- DlgDirSelectExA(
- IN HWND hDlg,
- OUT LPSTR lpString,
- IN int nCount,
- IN int nIDListBox);
- WINUSERAPI
- BOOL
- WINAPI
- DlgDirSelectExW(
- IN HWND hDlg,
- OUT LPWSTR lpString,
- IN int nCount,
- IN int nIDListBox);
- #ifdef UNICODE
- #define DlgDirSelectEx DlgDirSelectExW
- #else
- #define DlgDirSelectEx DlgDirSelectExA
- #endif // !UNICODE
- WINUSERAPI
- int
- WINAPI
- DlgDirListComboBoxA(
- IN HWND hDlg,
- IN OUT LPSTR lpPathSpec,
- IN int nIDComboBox,
- IN int nIDStaticPath,
- IN UINT uFiletype);
- WINUSERAPI
- int
- WINAPI
- DlgDirListComboBoxW(
- IN HWND hDlg,
- IN OUT LPWSTR lpPathSpec,
- IN int nIDComboBox,
- IN int nIDStaticPath,
- IN UINT uFiletype);
- #ifdef UNICODE
- #define DlgDirListComboBox DlgDirListComboBoxW
- #else
- #define DlgDirListComboBox DlgDirListComboBoxA
- #endif // !UNICODE
- WINUSERAPI
- BOOL
- WINAPI
- DlgDirSelectComboBoxExA(
- IN HWND hDlg,
- OUT LPSTR lpString,
- IN int nCount,
- IN int nIDComboBox);
- WINUSERAPI
- BOOL
- WINAPI
- DlgDirSelectComboBoxExW(
- IN HWND hDlg,
- OUT LPWSTR lpString,
- IN int nCount,
- IN int nIDComboBox);
- #ifdef UNICODE
- #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
- #else
- #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
- #endif // !UNICODE
- /*
- * Dialog Styles
- */
- #define DS_ABSALIGN 0x01L
- #define DS_SYSMODAL 0x02L
- #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */
- #define DS_SETFONT 0x40L /* User specified font for Dlg controls */
- #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */
- #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */
- #define DS_SETFOREGROUND 0x200L /* not in win3.1 */
- #if(WINVER >= 0x0400)
- #define DS_3DLOOK 0x0004L
- #define DS_FIXEDSYS 0x0008L
- #define DS_NOFAILCREATE 0x0010L
- #define DS_CONTROL 0x0400L
- #define DS_CENTER 0x0800L
- #define DS_CENTERMOUSE 0x1000L
- #define DS_CONTEXTHELP 0x2000L
- #define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
- #endif /* WINVER >= 0x0400 */
- #define DM_GETDEFID (WM_USER+0)
- #define DM_SETDEFID (WM_USER+1)
- #if(WINVER >= 0x0400)
- #define DM_REPOSITION (WM_USER+2)
- #endif /* WINVER >= 0x0400 */
- /*
- * Returned in HIWORD() of DM_GETDEFID result if msg is supported
- */
- #define DC_HASDEFID 0x534B
- /*
- * Dialog Codes
- */
- #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */
- #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */
- #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */
- #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */
- #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */
- #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */
- #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */
- #define DLGC_RADIOBUTTON 0x0040 /* Radio button */
- #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */
- #define DLGC_STATIC 0x0100 /* Static item: don't include */
- #define DLGC_BUTTON 0x2000 /* Button item: can be checked */
- #define LB_CTLCODE 0L
- /*
- * Listbox Return Values
- */
- #define LB_OKAY 0
- #define LB_ERR (-1)
- #define LB_ERRSPACE (-2)
- /*
- ** The idStaticPath parameter to DlgDirList can have the following values
- ** ORed if the list box should show other details of the files along with
- ** the name of the files;
- */
- /* all other details also will be returned */
- /*
- * Listbox Notification Codes
- */
- #define LBN_ERRSPACE (-2)
- #define LBN_SELCHANGE 1
- #define LBN_DBLCLK 2
- #define LBN_SELCANCEL 3
- #define LBN_SETFOCUS 4
- #define LBN_KILLFOCUS 5
- #ifndef NOWINMESSAGES
- /*
- * Listbox messages
- */
- #define LB_ADDSTRING 0x0180
- #define LB_INSERTSTRING 0x0181
- #define LB_DELETESTRING 0x0182
- #define LB_SELITEMRANGEEX 0x0183
- #define LB_RESETCONTENT 0x0184
- #define LB_SETSEL 0x0185
- #define LB_SETCURSEL 0x0186
- #define LB_GETSEL 0x0187
- #define LB_GETCURSEL 0x0188
- #define LB_GETTEXT 0x0189
- #define LB_GETTEXTLEN 0x018A
- #define LB_GETCOUNT 0x018B
- #define LB_SELECTSTRING 0x018C
- #define LB_DIR 0x018D
- #define LB_GETTOPINDEX 0x018E
- #define LB_FINDSTRING 0x018F
- #define LB_GETSELCOUNT 0x0190
- #define LB_GETSELITEMS 0x0191
- #define LB_SETTABSTOPS 0x0192
- #define LB_GETHORIZONTALEXTENT 0x0193
- #define LB_SETHORIZONTALEXTENT 0x0194
- #define LB_SETCOLUMNWIDTH 0x0195
- #define LB_ADDFILE 0x0196
- #define LB_SETTOPINDEX 0x0197
- #define LB_GETITEMRECT 0x0198
- #define LB_GETITEMDATA 0x0199
- #define LB_SETITEMDATA 0x019A
- #define LB_SELITEMRANGE 0x019B
- #define LB_SETANCHORINDEX 0x019C
- #define LB_GETANCHORINDEX 0x019D
- #define LB_SETCARETINDEX 0x019E
- #define LB_GETCARETINDEX 0x019F
- #define LB_SETITEMHEIGHT 0x01A0
- #define LB_GETITEMHEIGHT 0x01A1
- #define LB_FINDSTRINGEXACT 0x01A2
- #define LB_SETLOCALE 0x01A5
- #define LB_GETLOCALE 0x01A6
- #define LB_SETCOUNT 0x01A7
- #if(WINVER >= 0x0400)
- #define LB_INITSTORAGE 0x01A8
- #define LB_ITEMFROMPOINT 0x01A9
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WCE >= 0x0400)
- #define LB_MULTIPLEADDSTRING 0x01B1
- #endif
- #if(_WIN32_WINNT >= 0x0501)
- #define LB_GETLISTBOXINFO 0x01B2
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(_WIN32_WINNT >= 0x0501)
- #define LB_MSGMAX 0x01B3
- #elif(_WIN32_WCE >= 0x0400)
- #define LB_MSGMAX 0x01B1
- #elif(WINVER >= 0x0400)
- #define LB_MSGMAX 0x01B0
- #else
- #define LB_MSGMAX 0x01A8
- #endif
- #endif /* !NOWINMESSAGES */
- #ifndef NOWINSTYLES
- /*
- * Listbox Styles
- */
- #define LBS_NOTIFY 0x0001L
- #define LBS_SORT 0x0002L
- #define LBS_NOREDRAW 0x0004L
- #define LBS_MULTIPLESEL 0x0008L
- #define LBS_OWNERDRAWFIXED 0x0010L
- #define LBS_OWNERDRAWVARIABLE 0x0020L
- #define LBS_HASSTRINGS 0x0040L
- #define LBS_USETABSTOPS 0x0080L
- #define LBS_NOINTEGRALHEIGHT 0x0100L
- #define LBS_MULTICOLUMN 0x0200L
- #define LBS_WANTKEYBOARDINPUT 0x0400L
- #define LBS_EXTENDEDSEL 0x0800L
- #define LBS_DISABLENOSCROLL 0x1000L
- #define LBS_NODATA 0x2000L
- #if(WINVER >= 0x0400)
- #define LBS_NOSEL 0x4000L
- #endif /* WINVER >= 0x0400 */
- #define LBS_COMBOBOX 0x8000L // Listbox is part of a Combobox - read-only
- #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
- #endif /* !NOWINSTYLES */
- /*
- * Combo Box return Values
- */
- #define CB_OKAY 0
- #define CB_ERR (-1)
- #define CB_ERRSPACE (-2)
- /*
- * Combo Box Notification Codes
- */
- #define CBN_ERRSPACE (-1)
- #define CBN_SELCHANGE 1
- #define CBN_DBLCLK 2
- #define CBN_SETFOCUS 3
- #define CBN_KILLFOCUS 4
- #define CBN_EDITCHANGE 5
- #define CBN_EDITUPDATE 6
- #define CBN_DROPDOWN 7
- #define CBN_CLOSEUP 8
- #define CBN_SELENDOK 9
- #define CBN_SELENDCANCEL 10
- #ifndef NOWINSTYLES
- /*
- * Combo Box styles
- */
- #define CBS_SIMPLE 0x0001L
- #define CBS_DROPDOWN 0x0002L
- #define CBS_DROPDOWNLIST 0x0003L
- #define CBS_OWNERDRAWFIXED 0x0010L
- #define CBS_OWNERDRAWVARIABLE 0x0020L
- #define CBS_AUTOHSCROLL 0x0040L
- #define CBS_OEMCONVERT 0x0080L
- #define CBS_SORT 0x0100L
- #define CBS_HASSTRINGS 0x0200L
- #define CBS_NOINTEGRALHEIGHT 0x0400L
- #define CBS_DISABLENOSCROLL 0x0800L
- #if(WINVER >= 0x0400)
- #define CBS_UPPERCASE 0x2000L
- #define CBS_LOWERCASE 0x4000L
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOWINSTYLES */
- /*
- * Combo Box messages
- */
- #ifndef NOWINMESSAGES
- #define CB_GETEDITSEL 0x0140
- #define CB_LIMITTEXT 0x0141
- #define CB_SETEDITSEL 0x0142
- #define CB_ADDSTRING 0x0143
- #define CB_DELETESTRING 0x0144
- #define CB_DIR 0x0145
- #define CB_GETCOUNT 0x0146
- #define CB_GETCURSEL 0x0147
- #define CB_GETLBTEXT 0x0148
- #define CB_GETLBTEXTLEN 0x0149
- #define CB_INSERTSTRING 0x014A
- #define CB_RESETCONTENT 0x014B
- #define CB_FINDSTRING 0x014C
- #define CB_SELECTSTRING 0x014D
- #define CB_SETCURSEL 0x014E
- #define CB_SHOWDROPDOWN 0x014F
- #define CB_GETITEMDATA 0x0150
- #define CB_SETITEMDATA 0x0151
- #define CB_GETDROPPEDCONTROLRECT 0x0152
- #define CB_SETITEMHEIGHT 0x0153
- #define CB_GETITEMHEIGHT 0x0154
- #define CB_SETEXTENDEDUI 0x0155
- #define CB_GETEXTENDEDUI 0x0156
- #define CB_GETDROPPEDSTATE 0x0157
- #define CB_FINDSTRINGEXACT 0x0158
- #define CB_SETLOCALE 0x0159
- #define CB_GETLOCALE 0x015A
- #if(WINVER >= 0x0400)
- #define CB_GETTOPINDEX 0x015b
- #define CB_SETTOPINDEX 0x015c
- #define CB_GETHORIZONTALEXTENT 0x015d
- #define CB_SETHORIZONTALEXTENT 0x015e
- #define CB_GETDROPPEDWIDTH 0x015f
- #define CB_SETDROPPEDWIDTH 0x0160
- #define CB_INITSTORAGE 0x0161
- #if(_WIN32_WCE >= 0x0400)
- #define CB_MULTIPLEADDSTRING 0x0163
- #endif
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0501)
- #define CB_GETCOMBOBOXINFO 0x0164
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(_WIN32_WINNT >= 0x0501)
- #define CB_MSGMAX 0x0165
- #elif(_WIN32_WCE >= 0x0400)
- #define CB_MSGMAX 0x0163
- #elif(WINVER >= 0x0400)
- #define CB_MSGMAX 0x0162
- #else
- #define CB_MSGMAX 0x015B
- #endif
- #endif /* !NOWINMESSAGES */
- #ifndef NOWINSTYLES
- /*
- * Scroll Bar Styles
- */
- #define SBS_HORZ 0x0000L
- #define SBS_VERT 0x0001L
- #define SBS_TOPALIGN 0x0002L
- #define SBS_LEFTALIGN 0x0002L
- #define SBS_BOTTOMALIGN 0x0004L
- #define SBS_RIGHTALIGN 0x0004L
- #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
- #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
- #define SBS_SIZEBOX 0x0008L
- #if(WINVER >= 0x0400)
- #define SBS_SIZEGRIP 0x0010L
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOWINSTYLES */
- /*
- * Scroll bar messages
- */
- #ifndef NOWINMESSAGES
- #define SBM_SETPOS 0x00E0 /*not in win3.1 */
- #define SBM_GETPOS 0x00E1 /*not in win3.1 */
- #define SBM_SETRANGE 0x00E2 /*not in win3.1 */
- #define SBM_SETRANGEREDRAW 0x00E6 /*not in win3.1 */
- #define SBM_GETRANGE 0x00E3 /*not in win3.1 */
- #define SBM_ENABLE_ARROWS 0x00E4 /*not in win3.1 */
- #if(WINVER >= 0x0400)
- #define SBM_SETSCROLLINFO 0x00E9
- #define SBM_GETSCROLLINFO 0x00EA
- #endif /* WINVER >= 0x0400 */
- #if(_WIN32_WINNT >= 0x0501)
- #define SBM_GETSCROLLBARINFO 0x00EB
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if(WINVER >= 0x0400)
- #define SIF_RANGE 0x0001
- #define SIF_PAGE 0x0002
- #define SIF_POS 0x0004
- #define SIF_DISABLENOSCROLL 0x0008
- #define SIF_TRACKPOS 0x0010
- #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
- typedef struct tagSCROLLINFO
- {
- UINT cbSize;
- UINT fMask;
- int nMin;
- int nMax;
- UINT nPage;
- int nPos;
- int nTrackPos;
- } SCROLLINFO, FAR *LPSCROLLINFO;
- typedef SCROLLINFO CONST FAR *LPCSCROLLINFO;
- WINUSERAPI int WINAPI SetScrollInfo(IN HWND, IN int, IN LPCSCROLLINFO, IN BOOL);
- WINUSERAPI BOOL WINAPI GetScrollInfo(IN HWND, IN int, IN OUT LPSCROLLINFO);
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOWINMESSAGES */
- #endif /* !NOCTLMGR */
- #ifndef NOMDI
- /*
- * MDI client style bits
- */
- #define MDIS_ALLCHILDSTYLES 0x0001
- /*
- * wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
- */
- #define MDITILE_VERTICAL 0x0000 /*not in win3.1 */
- #define MDITILE_HORIZONTAL 0x0001 /*not in win3.1 */
- #define MDITILE_SKIPDISABLED 0x0002 /*not in win3.1 */
- #if(_WIN32_WINNT >= 0x0500)
- #define MDITILE_ZORDER 0x0004
- #endif /* _WIN32_WINNT >= 0x0500 */
- typedef struct tagMDICREATESTRUCTA {
- LPCSTR szClass;
- LPCSTR szTitle;
- HANDLE hOwner;
- int x;
- int y;
- int cx;
- int cy;
- DWORD style;
- LPARAM lParam; /* app-defined stuff */
- } MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
- typedef struct tagMDICREATESTRUCTW {
- LPCWSTR szClass;
- LPCWSTR szTitle;
- HANDLE hOwner;
- int x;
- int y;
- int cx;
- int cy;
- DWORD style;
- LPARAM lParam; /* app-defined stuff */
- } MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
- #ifdef UNICODE
- typedef MDICREATESTRUCTW MDICREATESTRUCT;
- typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT;
- #else
- typedef MDICREATESTRUCTA MDICREATESTRUCT;
- typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT;
- #endif // UNICODE
- typedef struct tagCLIENTCREATESTRUCT {
- HANDLE hWindowMenu;
- UINT idFirstChild;
- } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
- WINUSERAPI
- LRESULT
- WINAPI
- DefFrameProcA(
- IN HWND hWnd,
- IN HWND hWndMDIClient,
- IN UINT uMsg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- LRESULT
- WINAPI
- DefFrameProcW(
- IN HWND hWnd,
- IN HWND hWndMDIClient,
- IN UINT uMsg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define DefFrameProc DefFrameProcW
- #else
- #define DefFrameProc DefFrameProcA
- #endif // !UNICODE
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefMDIChildProcA(
- IN HWND hWnd,
- IN UINT uMsg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- WINUSERAPI
- #ifndef _MAC
- LRESULT
- WINAPI
- #else
- LRESULT
- CALLBACK
- #endif
- DefMDIChildProcW(
- IN HWND hWnd,
- IN UINT uMsg,
- IN WPARAM wParam,
- IN LPARAM lParam);
- #ifdef UNICODE
- #define DefMDIChildProc DefMDIChildProcW
- #else
- #define DefMDIChildProc DefMDIChildProcA
- #endif // !UNICODE
- #ifndef NOMSG
- WINUSERAPI
- BOOL
- WINAPI
- TranslateMDISysAccel(
- IN HWND hWndClient,
- IN LPMSG lpMsg);
- #endif /* !NOMSG */
- WINUSERAPI
- UINT
- WINAPI
- ArrangeIconicWindows(
- IN HWND hWnd);
- WINUSERAPI
- HWND
- WINAPI
- CreateMDIWindowA(
- IN LPCSTR lpClassName,
- IN LPCSTR lpWindowName,
- IN DWORD dwStyle,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight,
- IN HWND hWndParent,
- IN HINSTANCE hInstance,
- IN LPARAM lParam
- );
- WINUSERAPI
- HWND
- WINAPI
- CreateMDIWindowW(
- IN LPCWSTR lpClassName,
- IN LPCWSTR lpWindowName,
- IN DWORD dwStyle,
- IN int X,
- IN int Y,
- IN int nWidth,
- IN int nHeight,
- IN HWND hWndParent,
- IN HINSTANCE hInstance,
- IN LPARAM lParam
- );
- #ifdef UNICODE
- #define CreateMDIWindow CreateMDIWindowW
- #else
- #define CreateMDIWindow CreateMDIWindowA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINUSERAPI WORD WINAPI TileWindows( IN HWND hwndParent, IN UINT wHow, IN CONST RECT * lpRect, IN UINT cKids, IN const HWND FAR * lpKids);
- WINUSERAPI WORD WINAPI CascadeWindows( IN HWND hwndParent, IN UINT wHow, IN CONST RECT * lpRect, IN UINT cKids, IN const HWND FAR * lpKids);
- #endif /* WINVER >= 0x0400 */
- #endif /* !NOMDI */
- #endif /* !NOUSER */
- /****** Help support ********************************************************/
- #ifndef NOHELP
- typedef DWORD HELPPOLY;
- typedef struct tagMULTIKEYHELPA {
- #ifndef _MAC
- DWORD mkSize;
- #else
- WORD mkSize;
- #endif
- CHAR mkKeylist;
- CHAR szKeyphrase[1];
- } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
- typedef struct tagMULTIKEYHELPW {
- #ifndef _MAC
- DWORD mkSize;
- #else
- WORD mkSize;
- #endif
- WCHAR mkKeylist;
- WCHAR szKeyphrase[1];
- } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
- #ifdef UNICODE
- typedef MULTIKEYHELPW MULTIKEYHELP;
- typedef PMULTIKEYHELPW PMULTIKEYHELP;
- typedef LPMULTIKEYHELPW LPMULTIKEYHELP;
- #else
- typedef MULTIKEYHELPA MULTIKEYHELP;
- typedef PMULTIKEYHELPA PMULTIKEYHELP;
- typedef LPMULTIKEYHELPA LPMULTIKEYHELP;
- #endif // UNICODE
- typedef struct tagHELPWININFOA {
- int wStructSize;
- int x;
- int y;
- int dx;
- int dy;
- int wMax;
- CHAR rgchMember[2];
- } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
- typedef struct tagHELPWININFOW {
- int wStructSize;
- int x;
- int y;
- int dx;
- int dy;
- int wMax;
- WCHAR rgchMember[2];
- } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
- #ifdef UNICODE
- typedef HELPWININFOW HELPWININFO;
- typedef PHELPWININFOW PHELPWININFO;
- typedef LPHELPWININFOW LPHELPWININFO;
- #else
- typedef HELPWININFOA HELPWININFO;
- typedef PHELPWININFOA PHELPWININFO;
- typedef LPHELPWININFOA LPHELPWININFO;
- #endif // UNICODE
- /*
- * Commands to pass to WinHelp()
- */
- #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */
- #define HELP_QUIT 0x0002L /* Terminate help */
- #define HELP_INDEX 0x0003L /* Display index */
- #define HELP_CONTENTS 0x0003L
- #define HELP_HELPONHELP 0x0004L /* Display help on using help */
- #define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */
- #define HELP_SETCONTENTS 0x0005L
- #define HELP_CONTEXTPOPUP 0x0008L
- #define HELP_FORCEFILE 0x0009L
- #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */
- #define HELP_COMMAND 0x0102L
- #define HELP_PARTIALKEY 0x0105L
- #define HELP_MULTIKEY 0x0201L
- #define HELP_SETWINPOS 0x0203L
- #if(WINVER >= 0x0400)
- #define HELP_CONTEXTMENU 0x000a
- #define HELP_FINDER 0x000b
- #define HELP_WM_HELP 0x000c
- #define HELP_SETPOPUP_POS 0x000d
- #define HELP_TCARD 0x8000
- #define HELP_TCARD_DATA 0x0010
- #define HELP_TCARD_OTHER_CALLER 0x0011
- // These are in winhelp.h in Win95.
- #define IDH_NO_HELP 28440
- #define IDH_MISSING_CONTEXT 28441 // Control doesn't have matching help context
- #define IDH_GENERIC_HELP_BUTTON 28442 // Property sheet help button
- #define IDH_OK 28443
- #define IDH_CANCEL 28444
- #define IDH_HELP 28445
- #endif /* WINVER >= 0x0400 */
- WINUSERAPI
- BOOL
- WINAPI
- WinHelpA(
- IN HWND hWndMain,
- IN LPCSTR lpszHelp,
- IN UINT uCommand,
- IN ULONG_PTR dwData
- );
- WINUSERAPI
- BOOL
- WINAPI
- WinHelpW(
- IN HWND hWndMain,
- IN LPCWSTR lpszHelp,
- IN UINT uCommand,
- IN ULONG_PTR dwData
- );
- #ifdef UNICODE
- #define WinHelp WinHelpW
- #else
- #define WinHelp WinHelpA
- #endif // !UNICODE
- #endif /* !NOHELP */
- #if(WINVER >= 0x0500)
- #define GR_GDIOBJECTS 0 /* Count of GDI objects */
- #define GR_USEROBJECTS 1 /* Count of USER objects */
- WINUSERAPI
- DWORD
- WINAPI
- GetGuiResources(
- IN HANDLE hProcess,
- IN DWORD uiFlags);
- #endif /* WINVER >= 0x0500 */
- #ifndef NOSYSPARAMSINFO
- /*
- * Parameter for SystemParametersInfo()
- */
- #define SPI_GETBEEP 0x0001
- #define SPI_SETBEEP 0x0002
- #define SPI_GETMOUSE 0x0003
- #define SPI_SETMOUSE 0x0004
- #define SPI_GETBORDER 0x0005
- #define SPI_SETBORDER 0x0006
- #define SPI_GETKEYBOARDSPEED 0x000A
- #define SPI_SETKEYBOARDSPEED 0x000B
- #define SPI_LANGDRIVER 0x000C
- #define SPI_ICONHORIZONTALSPACING 0x000D
- #define SPI_GETSCREENSAVETIMEOUT 0x000E
- #define SPI_SETSCREENSAVETIMEOUT 0x000F
- #define SPI_GETSCREENSAVEACTIVE 0x0010
- #define SPI_SETSCREENSAVEACTIVE 0x0011
- #define SPI_GETGRIDGRANULARITY 0x0012
- #define SPI_SETGRIDGRANULARITY 0x0013
- #define SPI_SETDESKWALLPAPER 0x0014
- #define SPI_SETDESKPATTERN 0x0015
- #define SPI_GETKEYBOARDDELAY 0x0016
- #define SPI_SETKEYBOARDDELAY 0x0017
- #define SPI_ICONVERTICALSPACING 0x0018
- #define SPI_GETICONTITLEWRAP 0x0019
- #define SPI_SETICONTITLEWRAP 0x001A
- #define SPI_GETMENUDROPALIGNMENT 0x001B
- #define SPI_SETMENUDROPALIGNMENT 0x001C
- #define SPI_SETDOUBLECLKWIDTH 0x001D
- #define SPI_SETDOUBLECLKHEIGHT 0x001E
- #define SPI_GETICONTITLELOGFONT 0x001F
- #define SPI_SETDOUBLECLICKTIME 0x0020
- #define SPI_SETMOUSEBUTTONSWAP 0x0021
- #define SPI_SETICONTITLELOGFONT 0x0022
- #define SPI_GETFASTTASKSWITCH 0x0023
- #define SPI_SETFASTTASKSWITCH 0x0024
- #if(WINVER >= 0x0400)
- #define SPI_SETDRAGFULLWINDOWS 0x0025
- #define SPI_GETDRAGFULLWINDOWS 0x0026
- #define SPI_GETNONCLIENTMETRICS 0x0029
- #define SPI_SETNONCLIENTMETRICS 0x002A
- #define SPI_GETMINIMIZEDMETRICS 0x002B
- #define SPI_SETMINIMIZEDMETRICS 0x002C
- #define SPI_GETICONMETRICS 0x002D
- #define SPI_SETICONMETRICS 0x002E
- #define SPI_SETWORKAREA 0x002F
- #define SPI_GETWORKAREA 0x0030
- #define SPI_SETPENWINDOWS 0x0031
- #define SPI_GETHIGHCONTRAST 0x0042
- #define SPI_SETHIGHCONTRAST 0x0043
- #define SPI_GETKEYBOARDPREF 0x0044
- #define SPI_SETKEYBOARDPREF 0x0045
- #define SPI_GETSCREENREADER 0x0046
- #define SPI_SETSCREENREADER 0x0047
- #define SPI_GETANIMATION 0x0048
- #define SPI_SETANIMATION 0x0049
- #define SPI_GETFONTSMOOTHING 0x004A
- #define SPI_SETFONTSMOOTHING 0x004B
- #define SPI_SETDRAGWIDTH 0x004C
- #define SPI_SETDRAGHEIGHT 0x004D
- #define SPI_SETHANDHELD 0x004E
- #define SPI_GETLOWPOWERTIMEOUT 0x004F
- #define SPI_GETPOWEROFFTIMEOUT 0x0050
- #define SPI_SETLOWPOWERTIMEOUT 0x0051
- #define SPI_SETPOWEROFFTIMEOUT 0x0052
- #define SPI_GETLOWPOWERACTIVE 0x0053
- #define SPI_GETPOWEROFFACTIVE 0x0054
- #define SPI_SETLOWPOWERACTIVE 0x0055
- #define SPI_SETPOWEROFFACTIVE 0x0056
- #define SPI_SETCURSORS 0x0057
- #define SPI_SETICONS 0x0058
- #define SPI_GETDEFAULTINPUTLANG 0x0059
- #define SPI_SETDEFAULTINPUTLANG 0x005A
- #define SPI_SETLANGTOGGLE 0x005B
- #define SPI_GETWINDOWSEXTENSION 0x005C
- #define SPI_SETMOUSETRAILS 0x005D
- #define SPI_GETMOUSETRAILS 0x005E
- #define SPI_SETSCREENSAVERRUNNING 0x0061
- #define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
- #endif /* WINVER >= 0x0400 */
- #define SPI_GETFILTERKEYS 0x0032
- #define SPI_SETFILTERKEYS 0x0033
- #define SPI_GETTOGGLEKEYS 0x0034
- #define SPI_SETTOGGLEKEYS 0x0035
- #define SPI_GETMOUSEKEYS 0x0036
- #define SPI_SETMOUSEKEYS 0x0037
- #define SPI_GETSHOWSOUNDS 0x0038
- #define SPI_SETSHOWSOUNDS 0x0039
- #define SPI_GETSTICKYKEYS 0x003A
- #define SPI_SETSTICKYKEYS 0x003B
- #define SPI_GETACCESSTIMEOUT 0x003C
- #define SPI_SETACCESSTIMEOUT 0x003D
- #if(WINVER >= 0x0400)
- #define SPI_GETSERIALKEYS 0x003E
- #define SPI_SETSERIALKEYS 0x003F
- #endif /* WINVER >= 0x0400 */
- #define SPI_GETSOUNDSENTRY 0x0040
- #define SPI_SETSOUNDSENTRY 0x0041
- #if(_WIN32_WINNT >= 0x0400)
- #define SPI_GETSNAPTODEFBUTTON 0x005F
- #define SPI_SETSNAPTODEFBUTTON 0x0060
- #endif /* _WIN32_WINNT >= 0x0400 */
- #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
- #define SPI_GETMOUSEHOVERWIDTH 0x0062
- #define SPI_SETMOUSEHOVERWIDTH 0x0063
- #define SPI_GETMOUSEHOVERHEIGHT 0x0064
- #define SPI_SETMOUSEHOVERHEIGHT 0x0065
- #define SPI_GETMOUSEHOVERTIME 0x0066
- #define SPI_SETMOUSEHOVERTIME 0x0067
- #define SPI_GETWHEELSCROLLLINES 0x0068
- #define SPI_SETWHEELSCROLLLINES 0x0069
- #define SPI_GETMENUSHOWDELAY 0x006A
- #define SPI_SETMENUSHOWDELAY 0x006B
- #define SPI_GETSHOWIMEUI 0x006E
- #define SPI_SETSHOWIMEUI 0x006F
- #endif
- #if(WINVER >= 0x0500)
- #define SPI_GETMOUSESPEED 0x0070
- #define SPI_SETMOUSESPEED 0x0071
- #define SPI_GETSCREENSAVERRUNNING 0x0072
- #define SPI_GETDESKWALLPAPER 0x0073
- #endif /* WINVER >= 0x0500 */
- #if(WINVER >= 0x0500)
- #define SPI_GETACTIVEWINDOWTRACKING 0x1000
- #define SPI_SETACTIVEWINDOWTRACKING 0x1001
- #define SPI_GETMENUANIMATION 0x1002
- #define SPI_SETMENUANIMATION 0x1003
- #define SPI_GETCOMBOBOXANIMATION 0x1004
- #define SPI_SETCOMBOBOXANIMATION 0x1005
- #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
- #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
- #define SPI_GETGRADIENTCAPTIONS 0x1008
- #define SPI_SETGRADIENTCAPTIONS 0x1009
- #define SPI_GETKEYBOARDCUES 0x100A
- #define SPI_SETKEYBOARDCUES 0x100B
- #define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES
- #define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES
- #define SPI_GETACTIVEWNDTRKZORDER 0x100C
- #define SPI_SETACTIVEWNDTRKZORDER 0x100D
- #define SPI_GETHOTTRACKING 0x100E
- #define SPI_SETHOTTRACKING 0x100F
- #define SPI_GETMENUFADE 0x1012
- #define SPI_SETMENUFADE 0x1013
- #define SPI_GETSELECTIONFADE 0x1014
- #define SPI_SETSELECTIONFADE 0x1015
- #define SPI_GETTOOLTIPANIMATION 0x1016
- #define SPI_SETTOOLTIPANIMATION 0x1017
- #define SPI_GETTOOLTIPFADE 0x1018
- #define SPI_SETTOOLTIPFADE 0x1019
- #define SPI_GETCURSORSHADOW 0x101A
- #define SPI_SETCURSORSHADOW 0x101B
- #if(_WIN32_WINNT >= 0x0501)
- #define SPI_GETMOUSESONAR 0x101C
- #define SPI_SETMOUSESONAR 0x101D
- #define SPI_GETMOUSECLICKLOCK 0x101E
- #define SPI_SETMOUSECLICKLOCK 0x101F
- #define SPI_GETMOUSEVANISH 0x1020
- #define SPI_SETMOUSEVANISH 0x1021
- #define SPI_GETFLATMENU 0x1022
- #define SPI_SETFLATMENU 0x1023
- #define SPI_GETDROPSHADOW 0x1024
- #define SPI_SETDROPSHADOW 0x1025
- #define SPI_GETBLOCKSENDINPUTRESETS 0x1026
- #define SPI_SETBLOCKSENDINPUTRESETS 0x1027
- #endif /* _WIN32_WINNT >= 0x0501 */
- #define SPI_GETUIEFFECTS 0x103E
- #define SPI_SETUIEFFECTS 0x103F
- #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
- #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
- #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
- #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
- #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
- #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
- #define SPI_GETCARETWIDTH 0x2006
- #define SPI_SETCARETWIDTH 0x2007
- #if(_WIN32_WINNT >= 0x0501)
- #define SPI_GETMOUSECLICKLOCKTIME 0x2008
- #define SPI_SETMOUSECLICKLOCKTIME 0x2009
- #define SPI_GETFONTSMOOTHINGTYPE 0x200A
- #define SPI_SETFONTSMOOTHINGTYPE 0x200B
- /* constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: */
- #define FE_FONTSMOOTHINGSTANDARD 0x0001
- #define FE_FONTSMOOTHINGCLEARTYPE 0x0002
- #define FE_FONTSMOOTHINGDOCKING 0x8000
- #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
- #define SPI_SETFONTSMOOTHINGCONTRAST 0x200D
- #define SPI_GETFOCUSBORDERWIDTH 0x200E
- #define SPI_SETFOCUSBORDERWIDTH 0x200F
- #define SPI_GETFOCUSBORDERHEIGHT 0x2010
- #define SPI_SETFOCUSBORDERHEIGHT 0x2011
- #define SPI_GETFONTSMOOTHINGORIENTATION 0x2012
- #define SPI_SETFONTSMOOTHINGORIENTATION 0x2013
- /* constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION: */
- #define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000
- #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
- #endif /* _WIN32_WINNT >= 0x0501 */
- #endif /* WINVER >= 0x0500 */
- /*
- * Flags
- */
- #define SPIF_UPDATEINIFILE 0x0001
- #define SPIF_SENDWININICHANGE 0x0002
- #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
- #define METRICS_USEDEFAULT -1
- #ifdef _WINGDI_
- #ifndef NOGDI
- typedef struct tagNONCLIENTMETRICSA
- {
- UINT cbSize;
- int iBorderWidth;
- int iScrollWidth;
- int iScrollHeight;
- int iCaptionWidth;
- int iCaptionHeight;
- LOGFONTA lfCaptionFont;
- int iSmCaptionWidth;
- int iSmCaptionHeight;
- LOGFONTA lfSmCaptionFont;
- int iMenuWidth;
- int iMenuHeight;
- LOGFONTA lfMenuFont;
- LOGFONTA lfStatusFont;
- LOGFONTA lfMessageFont;
- } NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, FAR* LPNONCLIENTMETRICSA;
- typedef struct tagNONCLIENTMETRICSW
- {
- UINT cbSize;
- int iBorderWidth;
- int iScrollWidth;
- int iScrollHeight;
- int iCaptionWidth;
- int iCaptionHeight;
- LOGFONTW lfCaptionFont;
- int iSmCaptionWidth;
- int iSmCaptionHeight;
- LOGFONTW lfSmCaptionFont;
- int iMenuWidth;
- int iMenuHeight;
- LOGFONTW lfMenuFont;
- LOGFONTW lfStatusFont;
- LOGFONTW lfMessageFont;
- } NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW;
- #ifdef UNICODE
- typedef NONCLIENTMETRICSW NONCLIENTMETRICS;
- typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS;
- typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS;
- #else
- typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
- typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
- typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
- #endif // UNICODE
- #endif /* NOGDI */
- #endif /* _WINGDI_ */
- #define ARW_BOTTOMLEFT 0x0000L
- #define ARW_BOTTOMRIGHT 0x0001L
- #define ARW_TOPLEFT 0x0002L
- #define ARW_TOPRIGHT 0x0003L
- #define ARW_STARTMASK 0x0003L
- #define ARW_STARTRIGHT 0x0001L
- #define ARW_STARTTOP 0x0002L
- #define ARW_LEFT 0x0000L
- #define ARW_RIGHT 0x0000L
- #define ARW_UP 0x0004L
- #define ARW_DOWN 0x0004L
- #define ARW_HIDE 0x0008L
- typedef struct tagMINIMIZEDMETRICS
- {
- UINT cbSize;
- int iWidth;
- int iHorzGap;
- int iVertGap;
- int iArrange;
- } MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
- #ifdef _WINGDI_
- #ifndef NOGDI
- typedef struct tagICONMETRICSA
- {
- UINT cbSize;
- int iHorzSpacing;
- int iVertSpacing;
- int iTitleWrap;
- LOGFONTA lfFont;
- } ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
- typedef struct tagICONMETRICSW
- {
- UINT cbSize;
- int iHorzSpacing;
- int iVertSpacing;
- int iTitleWrap;
- LOGFONTW lfFont;
- } ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
- #ifdef UNICODE
- typedef ICONMETRICSW ICONMETRICS;
- typedef PICONMETRICSW PICONMETRICS;
- typedef LPICONMETRICSW LPICONMETRICS;
- #else
- typedef ICONMETRICSA ICONMETRICS;
- typedef PICONMETRICSA PICONMETRICS;
- typedef LPICONMETRICSA LPICONMETRICS;
- #endif // UNICODE
- #endif /* NOGDI */
- #endif /* _WINGDI_ */
- typedef struct tagANIMATIONINFO
- {
- UINT cbSize;
- int iMinAnimate;
- } ANIMATIONINFO, *LPANIMATIONINFO;
- typedef struct tagSERIALKEYSA
- {
- UINT cbSize;
- DWORD dwFlags;
- LPSTR lpszActivePort;
- LPSTR lpszPort;
- UINT iBaudRate;
- UINT iPortState;
- UINT iActive;
- } SERIALKEYSA, *LPSERIALKEYSA;
- typedef struct tagSERIALKEYSW
- {
- UINT cbSize;
- DWORD dwFlags;
- LPWSTR lpszActivePort;
- LPWSTR lpszPort;
- UINT iBaudRate;
- UINT iPortState;
- UINT iActive;
- } SERIALKEYSW, *LPSERIALKEYSW;
- #ifdef UNICODE
- typedef SERIALKEYSW SERIALKEYS;
- typedef LPSERIALKEYSW LPSERIALKEYS;
- #else
- typedef SERIALKEYSA SERIALKEYS;
- typedef LPSERIALKEYSA LPSERIALKEYS;
- #endif // UNICODE
- /* flags for SERIALKEYS dwFlags field */
- #define SERKF_SERIALKEYSON 0x00000001
- #define SERKF_AVAILABLE 0x00000002
- #define SERKF_INDICATOR 0x00000004
- typedef struct tagHIGHCONTRASTA
- {
- UINT cbSize;
- DWORD dwFlags;
- LPSTR lpszDefaultScheme;
- } HIGHCONTRASTA, *LPHIGHCONTRASTA;
- typedef struct tagHIGHCONTRASTW
- {
- UINT cbSize;
- DWORD dwFlags;
- LPWSTR lpszDefaultScheme;
- } HIGHCONTRASTW, *LPHIGHCONTRASTW;
- #ifdef UNICODE
- typedef HIGHCONTRASTW HIGHCONTRAST;
- typedef LPHIGHCONTRASTW LPHIGHCONTRAST;
- #else
- typedef HIGHCONTRASTA HIGHCONTRAST;
- typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
- #endif // UNICODE
- /* flags for HIGHCONTRAST dwFlags field */
- #define HCF_HIGHCONTRASTON 0x00000001
- #define HCF_AVAILABLE 0x00000002
- #define HCF_HOTKEYACTIVE 0x00000004
- #define HCF_CONFIRMHOTKEY 0x00000008
- #define HCF_HOTKEYSOUND 0x00000010
- #define HCF_INDICATOR 0x00000020
- #define HCF_HOTKEYAVAILABLE 0x00000040
- /* Flags for ChangeDisplaySettings */
- #define CDS_UPDATEREGISTRY 0x00000001
- #define CDS_TEST 0x00000002
- #define CDS_FULLSCREEN 0x00000004
- #define CDS_GLOBAL 0x00000008
- #define CDS_SET_PRIMARY 0x00000010
- #define CDS_VIDEOPARAMETERS 0x00000020
- #define CDS_RESET 0x40000000
- #define CDS_NORESET 0x10000000
- #include <tvout.h>
- /* Return values for ChangeDisplaySettings */
- #define DISP_CHANGE_SUCCESSFUL 0
- #define DISP_CHANGE_RESTART 1
- #define DISP_CHANGE_FAILED -1
- #define DISP_CHANGE_BADMODE -2
- #define DISP_CHANGE_NOTUPDATED -3
- #define DISP_CHANGE_BADFLAGS -4
- #define DISP_CHANGE_BADPARAM -5
- #if(_WIN32_WINNT >= 0x0501)
- #define DISP_CHANGE_BADDUALVIEW -6
- #endif /* _WIN32_WINNT >= 0x0501 */
- #ifdef _WINGDI_
- #ifndef NOGDI
- WINUSERAPI
- LONG
- WINAPI
- ChangeDisplaySettingsA(
- IN LPDEVMODEA lpDevMode,
- IN DWORD dwFlags);
- WINUSERAPI
- LONG
- WINAPI
- ChangeDisplaySettingsW(
- IN LPDEVMODEW lpDevMode,
- IN DWORD dwFlags);
- #ifdef UNICODE
- #define ChangeDisplaySettings ChangeDisplaySettingsW
- #else
- #define ChangeDisplaySettings ChangeDisplaySettingsA
- #endif // !UNICODE
- WINUSERAPI
- LONG
- WINAPI
- ChangeDisplaySettingsExA(
- IN LPCSTR lpszDeviceName,
- IN LPDEVMODEA lpDevMode,
- IN HWND hwnd,
- IN DWORD dwflags,
- IN LPVOID lParam);
- WINUSERAPI
- LONG
- WINAPI
- ChangeDisplaySettingsExW(
- IN LPCWSTR lpszDeviceName,
- IN LPDEVMODEW lpDevMode,
- IN HWND hwnd,
- IN DWORD dwflags,
- IN LPVOID lParam);
- #ifdef UNICODE
- #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
- #else
- #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
- #endif // !UNICODE
- #define ENUM_CURRENT_SETTINGS ((DWORD)-1)
- #define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplaySettingsA(
- IN LPCSTR lpszDeviceName,
- IN DWORD iModeNum,
- OUT LPDEVMODEA lpDevMode);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplaySettingsW(
- IN LPCWSTR lpszDeviceName,
- IN DWORD iModeNum,
- OUT LPDEVMODEW lpDevMode);
- #ifdef UNICODE
- #define EnumDisplaySettings EnumDisplaySettingsW
- #else
- #define EnumDisplaySettings EnumDisplaySettingsA
- #endif // !UNICODE
- #if(WINVER >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplaySettingsExA(
- IN LPCSTR lpszDeviceName,
- IN DWORD iModeNum,
- OUT LPDEVMODEA lpDevMode,
- IN DWORD dwFlags);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplaySettingsExW(
- IN LPCWSTR lpszDeviceName,
- IN DWORD iModeNum,
- OUT LPDEVMODEW lpDevMode,
- IN DWORD dwFlags);
- #ifdef UNICODE
- #define EnumDisplaySettingsEx EnumDisplaySettingsExW
- #else
- #define EnumDisplaySettingsEx EnumDisplaySettingsExA
- #endif // !UNICODE
- /* Flags for EnumDisplaySettingsEx */
- #define EDS_RAWMODE 0x00000002
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplayDevicesA(
- IN LPCSTR lpDevice,
- IN DWORD iDevNum,
- OUT PDISPLAY_DEVICEA lpDisplayDevice,
- IN DWORD dwFlags);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplayDevicesW(
- IN LPCWSTR lpDevice,
- IN DWORD iDevNum,
- OUT PDISPLAY_DEVICEW lpDisplayDevice,
- IN DWORD dwFlags);
- #ifdef UNICODE
- #define EnumDisplayDevices EnumDisplayDevicesW
- #else
- #define EnumDisplayDevices EnumDisplayDevicesA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0500 */
- #endif /* NOGDI */
- #endif /* _WINGDI_ */
- WINUSERAPI
- BOOL
- WINAPI
- SystemParametersInfoA(
- IN UINT uiAction,
- IN UINT uiParam,
- IN OUT PVOID pvParam,
- IN UINT fWinIni);
- WINUSERAPI
- BOOL
- WINAPI
- SystemParametersInfoW(
- IN UINT uiAction,
- IN UINT uiParam,
- IN OUT PVOID pvParam,
- IN UINT fWinIni);
- #ifdef UNICODE
- #define SystemParametersInfo SystemParametersInfoW
- #else
- #define SystemParametersInfo SystemParametersInfoA
- #endif // !UNICODE
- #endif /* !NOSYSPARAMSINFO */
- /*
- * Accessibility support
- */
- typedef struct tagFILTERKEYS
- {
- UINT cbSize;
- DWORD dwFlags;
- DWORD iWaitMSec; // Acceptance Delay
- DWORD iDelayMSec; // Delay Until Repeat
- DWORD iRepeatMSec; // Repeat Rate
- DWORD iBounceMSec; // Debounce Time
- } FILTERKEYS, *LPFILTERKEYS;
- /*
- * FILTERKEYS dwFlags field
- */
- #define FKF_FILTERKEYSON 0x00000001
- #define FKF_AVAILABLE 0x00000002
- #define FKF_HOTKEYACTIVE 0x00000004
- #define FKF_CONFIRMHOTKEY 0x00000008
- #define FKF_HOTKEYSOUND 0x00000010
- #define FKF_INDICATOR 0x00000020
- #define FKF_CLICKON 0x00000040
- typedef struct tagSTICKYKEYS
- {
- UINT cbSize;
- DWORD dwFlags;
- } STICKYKEYS, *LPSTICKYKEYS;
- /*
- * STICKYKEYS dwFlags field
- */
- #define SKF_STICKYKEYSON 0x00000001
- #define SKF_AVAILABLE 0x00000002
- #define SKF_HOTKEYACTIVE 0x00000004
- #define SKF_CONFIRMHOTKEY 0x00000008
- #define SKF_HOTKEYSOUND 0x00000010
- #define SKF_INDICATOR 0x00000020
- #define SKF_AUDIBLEFEEDBACK 0x00000040
- #define SKF_TRISTATE 0x00000080
- #define SKF_TWOKEYSOFF 0x00000100
- #if(_WIN32_WINNT >= 0x0500)
- #define SKF_LALTLATCHED 0x10000000
- #define SKF_LCTLLATCHED 0x04000000
- #define SKF_LSHIFTLATCHED 0x01000000
- #define SKF_RALTLATCHED 0x20000000
- #define SKF_RCTLLATCHED 0x08000000
- #define SKF_RSHIFTLATCHED 0x02000000
- #define SKF_LWINLATCHED 0x40000000
- #define SKF_RWINLATCHED 0x80000000
- #define SKF_LALTLOCKED 0x00100000
- #define SKF_LCTLLOCKED 0x00040000
- #define SKF_LSHIFTLOCKED 0x00010000
- #define SKF_RALTLOCKED 0x00200000
- #define SKF_RCTLLOCKED 0x00080000
- #define SKF_RSHIFTLOCKED 0x00020000
- #define SKF_LWINLOCKED 0x00400000
- #define SKF_RWINLOCKED 0x00800000
- #endif /* _WIN32_WINNT >= 0x0500 */
- typedef struct tagMOUSEKEYS
- {
- UINT cbSize;
- DWORD dwFlags;
- DWORD iMaxSpeed;
- DWORD iTimeToMaxSpeed;
- DWORD iCtrlSpeed;
- DWORD dwReserved1;
- DWORD dwReserved2;
- } MOUSEKEYS, *LPMOUSEKEYS;
- /*
- * MOUSEKEYS dwFlags field
- */
- #define MKF_MOUSEKEYSON 0x00000001
- #define MKF_AVAILABLE 0x00000002
- #define MKF_HOTKEYACTIVE 0x00000004
- #define MKF_CONFIRMHOTKEY 0x00000008
- #define MKF_HOTKEYSOUND 0x00000010
- #define MKF_INDICATOR 0x00000020
- #define MKF_MODIFIERS 0x00000040
- #define MKF_REPLACENUMBERS 0x00000080
- #if(_WIN32_WINNT >= 0x0500)
- #define MKF_LEFTBUTTONSEL 0x10000000
- #define MKF_RIGHTBUTTONSEL 0x20000000
- #define MKF_LEFTBUTTONDOWN 0x01000000
- #define MKF_RIGHTBUTTONDOWN 0x02000000
- #define MKF_MOUSEMODE 0x80000000
- #endif /* _WIN32_WINNT >= 0x0500 */
- typedef struct tagACCESSTIMEOUT
- {
- UINT cbSize;
- DWORD dwFlags;
- DWORD iTimeOutMSec;
- } ACCESSTIMEOUT, *LPACCESSTIMEOUT;
- /*
- * ACCESSTIMEOUT dwFlags field
- */
- #define ATF_TIMEOUTON 0x00000001
- #define ATF_ONOFFFEEDBACK 0x00000002
- /* values for SOUNDSENTRY iFSGrafEffect field */
- #define SSGF_NONE 0
- #define SSGF_DISPLAY 3
- /* values for SOUNDSENTRY iFSTextEffect field */
- #define SSTF_NONE 0
- #define SSTF_CHARS 1
- #define SSTF_BORDER 2
- #define SSTF_DISPLAY 3
- /* values for SOUNDSENTRY iWindowsEffect field */
- #define SSWF_NONE 0
- #define SSWF_TITLE 1
- #define SSWF_WINDOW 2
- #define SSWF_DISPLAY 3
- #define SSWF_CUSTOM 4
- typedef struct tagSOUNDSENTRYA
- {
- UINT cbSize;
- DWORD dwFlags;
- DWORD iFSTextEffect;
- DWORD iFSTextEffectMSec;
- DWORD iFSTextEffectColorBits;
- DWORD iFSGrafEffect;
- DWORD iFSGrafEffectMSec;
- DWORD iFSGrafEffectColor;
- DWORD iWindowsEffect;
- DWORD iWindowsEffectMSec;
- LPSTR lpszWindowsEffectDLL;
- DWORD iWindowsEffectOrdinal;
- } SOUNDSENTRYA, *LPSOUNDSENTRYA;
- typedef struct tagSOUNDSENTRYW
- {
- UINT cbSize;
- DWORD dwFlags;
- DWORD iFSTextEffect;
- DWORD iFSTextEffectMSec;
- DWORD iFSTextEffectColorBits;
- DWORD iFSGrafEffect;
- DWORD iFSGrafEffectMSec;
- DWORD iFSGrafEffectColor;
- DWORD iWindowsEffect;
- DWORD iWindowsEffectMSec;
- LPWSTR lpszWindowsEffectDLL;
- DWORD iWindowsEffectOrdinal;
- } SOUNDSENTRYW, *LPSOUNDSENTRYW;
- #ifdef UNICODE
- typedef SOUNDSENTRYW SOUNDSENTRY;
- typedef LPSOUNDSENTRYW LPSOUNDSENTRY;
- #else
- typedef SOUNDSENTRYA SOUNDSENTRY;
- typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
- #endif // UNICODE
- /*
- * SOUNDSENTRY dwFlags field
- */
- #define SSF_SOUNDSENTRYON 0x00000001
- #define SSF_AVAILABLE 0x00000002
- #define SSF_INDICATOR 0x00000004
- typedef struct tagTOGGLEKEYS
- {
- UINT cbSize;
- DWORD dwFlags;
- } TOGGLEKEYS, *LPTOGGLEKEYS;
- /*
- * TOGGLEKEYS dwFlags field
- */
- #define TKF_TOGGLEKEYSON 0x00000001
- #define TKF_AVAILABLE 0x00000002
- #define TKF_HOTKEYACTIVE 0x00000004
- #define TKF_CONFIRMHOTKEY 0x00000008
- #define TKF_HOTKEYSOUND 0x00000010
- #define TKF_INDICATOR 0x00000020
- /*
- * Set debug level
- */
- WINUSERAPI
- VOID
- WINAPI
- SetDebugErrorLevel(
- IN DWORD dwLevel
- );
- /*
- * SetLastErrorEx() types.
- */
- #define SLE_ERROR 0x00000001
- #define SLE_MINORERROR 0x00000002
- #define SLE_WARNING 0x00000003
- WINUSERAPI
- VOID
- WINAPI
- SetLastErrorEx(
- IN DWORD dwErrCode,
- IN DWORD dwType
- );
- WINUSERAPI
- int
- WINAPI
- InternalGetWindowText(
- IN HWND hWnd,
- OUT LPWSTR lpString,
- IN int nMaxCount);
- #if defined(WINNT)
- WINUSERAPI
- BOOL
- WINAPI
- EndTask(
- IN HWND hWnd,
- IN BOOL fShutDown,
- IN BOOL fForce);
- #endif
- #if(WINVER >= 0x0500)
- /*
- * Multimonitor API.
- */
- #define MONITOR_DEFAULTTONULL 0x00000000
- #define MONITOR_DEFAULTTOPRIMARY 0x00000001
- #define MONITOR_DEFAULTTONEAREST 0x00000002
- WINUSERAPI
- HMONITOR
- WINAPI
- MonitorFromPoint(
- IN POINT pt,
- IN DWORD dwFlags);
- WINUSERAPI
- HMONITOR
- WINAPI
- MonitorFromRect(
- IN LPCRECT lprc,
- IN DWORD dwFlags);
- WINUSERAPI
- HMONITOR
- WINAPI
- MonitorFromWindow( IN HWND hwnd, IN DWORD dwFlags);
- #define MONITORINFOF_PRIMARY 0x00000001
- #ifndef CCHDEVICENAME
- #define CCHDEVICENAME 32
- #endif
- typedef struct tagMONITORINFO
- {
- DWORD cbSize;
- RECT rcMonitor;
- RECT rcWork;
- DWORD dwFlags;
- } MONITORINFO, *LPMONITORINFO;
- #ifdef __cplusplus
- typedef struct tagMONITORINFOEXA : public tagMONITORINFO
- {
- CHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEXA, *LPMONITORINFOEXA;
- typedef struct tagMONITORINFOEXW : public tagMONITORINFO
- {
- WCHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEXW, *LPMONITORINFOEXW;
- #ifdef UNICODE
- typedef MONITORINFOEXW MONITORINFOEX;
- typedef LPMONITORINFOEXW LPMONITORINFOEX;
- #else
- typedef MONITORINFOEXA MONITORINFOEX;
- typedef LPMONITORINFOEXA LPMONITORINFOEX;
- #endif // UNICODE
- #else // ndef __cplusplus
- typedef struct tagMONITORINFOEXA
- {
- MONITORINFO;
- CHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEXA, *LPMONITORINFOEXA;
- typedef struct tagMONITORINFOEXW
- {
- MONITORINFO;
- WCHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEXW, *LPMONITORINFOEXW;
- #ifdef UNICODE
- typedef MONITORINFOEXW MONITORINFOEX;
- typedef LPMONITORINFOEXW LPMONITORINFOEX;
- #else
- typedef MONITORINFOEXA MONITORINFOEX;
- typedef LPMONITORINFOEXA LPMONITORINFOEX;
- #endif // UNICODE
- #endif
- WINUSERAPI BOOL WINAPI GetMonitorInfoA( IN HMONITOR hMonitor, OUT LPMONITORINFO lpmi);
- WINUSERAPI BOOL WINAPI GetMonitorInfoW( IN HMONITOR hMonitor, OUT LPMONITORINFO lpmi);
- #ifdef UNICODE
- #define GetMonitorInfo GetMonitorInfoW
- #else
- #define GetMonitorInfo GetMonitorInfoA
- #endif // !UNICODE
- typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
- WINUSERAPI
- BOOL
- WINAPI
- EnumDisplayMonitors(
- IN HDC hdc,
- IN LPCRECT lprcClip,
- IN MONITORENUMPROC lpfnEnum,
- IN LPARAM dwData);
- #ifndef NOWINABLE
- /*
- * WinEvents - Active Accessibility hooks
- */
- WINUSERAPI
- VOID
- WINAPI
- NotifyWinEvent(
- IN DWORD event,
- IN HWND hwnd,
- IN LONG idObject,
- IN LONG idChild);
- typedef VOID (CALLBACK* WINEVENTPROC)(
- HWINEVENTHOOK hWinEventHook,
- DWORD event,
- HWND hwnd,
- LONG idObject,
- LONG idChild,
- DWORD idEventThread,
- DWORD dwmsEventTime);
- WINUSERAPI
- HWINEVENTHOOK
- WINAPI
- SetWinEventHook(
- IN DWORD eventMin,
- IN DWORD eventMax,
- IN HMODULE hmodWinEventProc,
- IN WINEVENTPROC pfnWinEventProc,
- IN DWORD idProcess,
- IN DWORD idThread,
- IN DWORD dwFlags);
- #if(_WIN32_WINNT >= 0x0501)
- WINUSERAPI
- BOOL
- WINAPI
- IsWinEventHookInstalled(
- IN DWORD event);
- #endif /* _WIN32_WINNT >= 0x0501 */
- /*
- * dwFlags for SetWinEventHook
- */
- #define WINEVENT_OUTOFCONTEXT 0x0000 // Events are ASYNC
- #define WINEVENT_SKIPOWNTHREAD 0x0001 // Don't call back for events on installer's thread
- #define WINEVENT_SKIPOWNPROCESS 0x0002 // Don't call back for events on installer's process
- #define WINEVENT_INCONTEXT 0x0004 // Events are SYNC, this causes your dll to be injected into every process
- WINUSERAPI
- BOOL
- WINAPI
- UnhookWinEvent(
- IN HWINEVENTHOOK hWinEventHook);
- /*
- * idObject values for WinEventProc and NotifyWinEvent
- */
- /*
- * hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
- * to get an interface pointer to the container. indexChild is the item
- * within the container in question. Setup a VARIANT with vt VT_I4 and
- * lVal the indexChild and pass that in to all methods. Then you
- * are raring to go.
- */
- /*
- * Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
- * thing in question). Positive IDs are reserved for apps (app specific),
- * negative IDs are system things and are global, 0 means "just little old
- * me".
- */
- #define CHILDID_SELF 0
- #define INDEXID_OBJECT 0
- #define INDEXID_CONTAINER 0
- /*
- * Reserved IDs for system objects
- */
- #define OBJID_WINDOW ((LONG)0x00000000)
- #define OBJID_SYSMENU ((LONG)0xFFFFFFFF)
- #define OBJID_TITLEBAR ((LONG)0xFFFFFFFE)
- #define OBJID_MENU ((LONG)0xFFFFFFFD)
- #define OBJID_CLIENT ((LONG)0xFFFFFFFC)
- #define OBJID_VSCROLL ((LONG)0xFFFFFFFB)
- #define OBJID_HSCROLL ((LONG)0xFFFFFFFA)
- #define OBJID_SIZEGRIP ((LONG)0xFFFFFFF9)
- #define OBJID_CARET ((LONG)0xFFFFFFF8)
- #define OBJID_CURSOR ((LONG)0xFFFFFFF7)
- #define OBJID_ALERT ((LONG)0xFFFFFFF6)
- #define OBJID_SOUND ((LONG)0xFFFFFFF5)
- #define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4)
- #define OBJID_NATIVEOM ((LONG)0xFFFFFFF0)
- /*
- * EVENT DEFINITION
- */
- #define EVENT_MIN 0x00000001
- #define EVENT_MAX 0x7FFFFFFF
- /*
- * EVENT_SYSTEM_SOUND
- * Sent when a sound is played. Currently nothing is generating this, we
- * this event when a system sound (for menus, etc) is played. Apps
- * generate this, if accessible, when a private sound is played. For
- * example, if Mail plays a "New Mail" sound.
- *
- * System Sounds:
- * (Generated by PlaySoundEvent in USER itself)
- * hwnd is NULL
- * idObject is OBJID_SOUND
- * idChild is sound child ID if one
- * App Sounds:
- * (PlaySoundEvent won't generate notification; up to app)
- * hwnd + idObject gets interface pointer to Sound object
- * idChild identifies the sound in question
- * are going to be cleaning up the SOUNDSENTRY feature in the control panel
- * and will use this at that time. Applications implementing WinEvents
- * are perfectly welcome to use it. Clients of IAccessible* will simply
- * turn around and get back a non-visual object that describes the sound.
- */
- #define EVENT_SYSTEM_SOUND 0x0001
- /*
- * EVENT_SYSTEM_ALERT
- * System Alerts:
- * (Generated by MessageBox() calls for example)
- * hwnd is hwndMessageBox
- * idObject is OBJID_ALERT
- * App Alerts:
- * (Generated whenever)
- * hwnd+idObject gets interface pointer to Alert
- */
- #define EVENT_SYSTEM_ALERT 0x0002
- /*
- * EVENT_SYSTEM_FOREGROUND
- * Sent when the foreground (active) window changes, even if it is changing
- * to another window in the same thread as the previous one.
- * hwnd is hwndNewForeground
- * idObject is OBJID_WINDOW
- * idChild is INDEXID_OBJECT
- */
- #define EVENT_SYSTEM_FOREGROUND 0x0003
- /*
- * Menu
- * hwnd is window (top level window or popup menu window)
- * idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
- * idChild is CHILDID_SELF
- *
- * EVENT_SYSTEM_MENUSTART
- * EVENT_SYSTEM_MENUEND
- * For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
- * or the control bringing up the context menu.
- *
- * Sent when entering into and leaving from menu mode (system, app bar, and
- * track popups).
- */
- #define EVENT_SYSTEM_MENUSTART 0x0004
- #define EVENT_SYSTEM_MENUEND 0x0005
- /*
- * EVENT_SYSTEM_MENUPOPUPSTART
- * EVENT_SYSTEM_MENUPOPUPEND
- * Sent when a menu popup comes up and just before it is taken down. Note
- * that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
- * followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
- * being shown.
- *
- * For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
- * parent item which is hierarchical. You can get the parent menu/popup by
- * asking for the accParent object.
- */
- #define EVENT_SYSTEM_MENUPOPUPSTART 0x0006
- #define EVENT_SYSTEM_MENUPOPUPEND 0x0007
- /*
- * EVENT_SYSTEM_CAPTURESTART
- * EVENT_SYSTEM_CAPTUREEND
- * Sent when a window takes the capture and releases the capture.
- */
- #define EVENT_SYSTEM_CAPTURESTART 0x0008
- #define EVENT_SYSTEM_CAPTUREEND 0x0009
- /*
- * Move Size
- * EVENT_SYSTEM_MOVESIZESTART
- * EVENT_SYSTEM_MOVESIZEEND
- * Sent when a window enters and leaves move-size dragging mode.
- */
- #define EVENT_SYSTEM_MOVESIZESTART 0x000A
- #define EVENT_SYSTEM_MOVESIZEEND 0x000B
- /*
- * Context Help
- * EVENT_SYSTEM_CONTEXTHELPSTART
- * EVENT_SYSTEM_CONTEXTHELPEND
- * Sent when a window enters and leaves context sensitive help mode.
- */
- #define EVENT_SYSTEM_CONTEXTHELPSTART 0x000C
- #define EVENT_SYSTEM_CONTEXTHELPEND 0x000D
- /*
- * Drag & Drop
- * EVENT_SYSTEM_DRAGDROPSTART
- * EVENT_SYSTEM_DRAGDROPEND
- * Send the START notification just before going into drag&drop loop. Send
- * the END notification just after canceling out.
- * Note that it is up to apps and OLE to generate this, since the system
- * doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this
- * is prevalent.
- */
- #define EVENT_SYSTEM_DRAGDROPSTART 0x000E
- #define EVENT_SYSTEM_DRAGDROPEND 0x000F
- /*
- * Dialog
- * Send the START notification right after the dialog is completely
- * initialized and visible. Send the END right before the dialog
- * is hidden and goes away.
- * EVENT_SYSTEM_DIALOGSTART
- * EVENT_SYSTEM_DIALOGEND
- */
- #define EVENT_SYSTEM_DIALOGSTART 0x0010
- #define EVENT_SYSTEM_DIALOGEND 0x0011
- /*
- * EVENT_SYSTEM_SCROLLING
- * EVENT_SYSTEM_SCROLLINGSTART
- * EVENT_SYSTEM_SCROLLINGEND
- * Sent when beginning and ending the tracking of a scrollbar in a window,
- * and also for scrollbar controls.
- */
- #define EVENT_SYSTEM_SCROLLINGSTART 0x0012
- #define EVENT_SYSTEM_SCROLLINGEND 0x0013
- /*
- * Alt-Tab Window
- * Send the START notification right after the switch window is initialized
- * and visible. Send the END right before it is hidden and goes away.
- * EVENT_SYSTEM_SWITCHSTART
- * EVENT_SYSTEM_SWITCHEND
- */
- #define EVENT_SYSTEM_SWITCHSTART 0x0014
- #define EVENT_SYSTEM_SWITCHEND 0x0015
- /*
- * EVENT_SYSTEM_MINIMIZESTART
- * EVENT_SYSTEM_MINIMIZEEND
- * Sent when a window minimizes and just before it restores.
- */
- #define EVENT_SYSTEM_MINIMIZESTART 0x0016
- #define EVENT_SYSTEM_MINIMIZEEND 0x0017
- #if(_WIN32_WINNT >= 0x0501)
- #define EVENT_CONSOLE_CARET 0x4001
- #define EVENT_CONSOLE_UPDATE_REGION 0x4002
- #define EVENT_CONSOLE_UPDATE_SIMPLE 0x4003
- #define EVENT_CONSOLE_UPDATE_SCROLL 0x4004
- #define EVENT_CONSOLE_LAYOUT 0x4005
- #define EVENT_CONSOLE_START_APPLICATION 0x4006
- #define EVENT_CONSOLE_END_APPLICATION 0x4007
- /*
- * Flags for EVENT_CONSOLE_START/END_APPLICATION.
- */
- #define CONSOLE_APPLICATION_16BIT 0x0001
- /*
- * Flags for EVENT_CONSOLE_CARET
- */
- #define CONSOLE_CARET_SELECTION 0x0001
- #define CONSOLE_CARET_VISIBLE 0x0002
- #endif /* _WIN32_WINNT >= 0x0501 */
- /*
- * Object events
- *
- * The system AND apps generate these. The system generates these for
- * real windows. Apps generate these for objects within their window which
- * act like a separate control, e.g. an item in a list view.
- *
- * When the system generate them, dwParam2 is always WMOBJID_SELF. When
- * apps generate them, apps put the has-meaning-to-the-app-only ID value
- * in dwParam2.
- * For all events, if you want detailed accessibility information, callers
- * should
- * * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
- * of the event, and IID_IAccessible as the REFIID, to get back an
- * IAccessible* to talk to
- * * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
- * parameter of the event.
- * * If idChild isn't zero, call get_accChild() in the container to see
- * if the child is an object in its own right. If so, you will get
- * back an IDispatch* object for the child. You should release the
- * parent, and call QueryInterface() on the child object to get its
- * IAccessible*. Then you talk directly to the child. Otherwise,
- * if get_accChild() returns you nothing, you should continue to
- * use the child VARIANT. You will ask the container for the properties
- * of the child identified by the VARIANT. In other words, the
- * child in this case is accessible but not a full-blown object.
- * Like a button on a titlebar which is 'small' and has no children.
- */
- /*
- * For all EVENT_OBJECT events,
- * hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL,
- * see above for system things)
- * idObject is the ID of the object that can resolve any queries a
- * client might have. It's a way to deal with windowless controls,
- * controls that are just drawn on the screen in some larger parent
- * window (like SDM), or standard frame elements of a window.
- * idChild is the piece inside of the object that is affected. This
- * allows clients to access things that are too small to have full
- * blown objects in their own right. Like the thumb of a scrollbar.
- * The hwnd/idObject pair gets you to the container, the dude you
- * probably want to talk to most of the time anyway. The idChild
- * can then be passed into the acc properties to get the name/value
- * of it as needed.
- *
- * Example #1:
- * System propagating a listbox selection change
- * EVENT_OBJECT_SELECTION
- * hwnd == listbox hwnd
- * idObject == OBJID_WINDOW
- * idChild == new selected item, or CHILDID_SELF if
- * nothing now selected within container.
- * Word '97 propagating a listbox selection change
- * hwnd == SDM window
- * idObject == SDM ID to get at listbox 'control'
- * idChild == new selected item, or CHILDID_SELF if
- * nothing
- *
- * Example #2:
- * System propagating a menu item selection on the menu bar
- * EVENT_OBJECT_SELECTION
- * hwnd == top level window
- * idObject == OBJID_MENU
- * idChild == ID of child menu bar item selected
- *
- * Example #3:
- * System propagating a dropdown coming off of said menu bar item
- * EVENT_OBJECT_CREATE
- * hwnd == popup item
- * idObject == OBJID_WINDOW
- * idChild == CHILDID_SELF
- *
- * Example #4:
- *
- * For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the
- * PARENT container in which the zorder is occurring. This is because if
- * one child is zordering, all of them are changing their relative zorder.
- */
- #define EVENT_OBJECT_CREATE 0x8000 // hwnd + ID + idChild is created item
- #define EVENT_OBJECT_DESTROY 0x8001 // hwnd + ID + idChild is destroyed item
- #define EVENT_OBJECT_SHOW 0x8002 // hwnd + ID + idChild is shown item
- #define EVENT_OBJECT_HIDE 0x8003 // hwnd + ID + idChild is hidden item
- #define EVENT_OBJECT_REORDER 0x8004 // hwnd + ID + idChild is parent of zordering children
- /*
- * NOTE:
- * Minimize the number of notifications!
- *
- * When you are hiding a parent object, obviously all child objects are no
- * longer visible on screen. They still have the same "visible" status,
- * but are not truly visible. Hence do not send HIDE notifications for the
- * children also. One implies all. The same goes for SHOW.
- */
- #define EVENT_OBJECT_FOCUS 0x8005 // hwnd + ID + idChild is focused item
- #define EVENT_OBJECT_SELECTION 0x8006 // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
- #define EVENT_OBJECT_SELECTIONADD 0x8007 // hwnd + ID + idChild is item added
- #define EVENT_OBJECT_SELECTIONREMOVE 0x8008 // hwnd + ID + idChild is item removed
- #define EVENT_OBJECT_SELECTIONWITHIN 0x8009 // hwnd + ID + idChild is parent of changed selected items
- /*
- * NOTES:
- * There is only one "focused" child item in a parent. This is the place
- * keystrokes are going at a given moment. Hence only send a notification
- * about where the NEW focus is going. A NEW item getting the focus already
- * implies that the OLD item is losing it.
- *
- * SELECTION however can be multiple. Hence the different SELECTION
- * notifications. Here's when to use each:
- *
- * (1) Send a SELECTION notification in the simple single selection
- * case (like the focus) when the item with the selection is
- * merely moving to a different item within a container. hwnd + ID
- * is the container control, idChildItem is the new child with the
- * selection.
- *
- * (2) Send a SELECTIONADD notification when a new item has simply been added
- * to the selection within a container. This is appropriate when the
- * number of newly selected items is very small. hwnd + ID is the
- * container control, idChildItem is the new child added to the selection.
- *
- * (3) Send a SELECTIONREMOVE notification when a new item has simply been
- * removed from the selection within a container. This is appropriate
- * when the number of newly selected items is very small, just like
- * SELECTIONADD. hwnd + ID is the container control, idChildItem is the
- * new child removed from the selection.
- *
- * (4) Send a SELECTIONWITHIN notification when the selected items within a
- * control have changed substantially. Rather than propagate a large
- * number of changes to reflect removal for some items, addition of
- * others, just tell somebody who cares that a lot happened. It will
- * be faster an easier for somebody watching to just turn around and
- * query the container control what the new bunch of selected items
- * are.
- */
- #define EVENT_OBJECT_STATECHANGE 0x800A // hwnd + ID + idChild is item w/ state change
- /*
- * Examples of when to send an EVENT_OBJECT_STATECHANGE include
- * * It is being enabled/disabled (USER does for windows)
- * * It is being pressed/released (USER does for buttons)
- * * It is being checked/unchecked (USER does for radio/check buttons)
- */
- #define EVENT_OBJECT_LOCATIONCHANGE 0x800B // hwnd + ID + idChild is moved/sized item
- /*
- * Note:
- * A LOCATIONCHANGE is not sent for every child object when the parent
- * changes shape/moves. Send one notification for the topmost object
- * that is changing. For example, if the user resizes a top level window,
- * USER will generate a LOCATIONCHANGE for it, but not for the menu bar,
- * title bar, scrollbars, etc. that are also changing shape/moving.
- *
- * In other words, it only generates LOCATIONCHANGE notifications for
- * real windows that are moving/sizing. It will not generate a LOCATIONCHANGE
- * for every non-floating child window when the parent moves (the children are
- * logically moving also on screen, but not relative to the parent).
- *
- * Now, if the app itself resizes child windows as a result of being
- * sized, USER will generate LOCATIONCHANGEs for those dudes also because
- * it doesn't know better.
- *
- * Note also that USER will generate LOCATIONCHANGE notifications for two
- * non-window sys objects:
- * (1) System caret
- * (2) Cursor
- */
- #define EVENT_OBJECT_NAMECHANGE 0x800C // hwnd + ID + idChild is item w/ name change
- #define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D // hwnd + ID + idChild is item w/ desc change
- #define EVENT_OBJECT_VALUECHANGE 0x800E // hwnd + ID + idChild is item w/ value change
- #define EVENT_OBJECT_PARENTCHANGE 0x800F // hwnd + ID + idChild is item w/ new parent
- #define EVENT_OBJECT_HELPCHANGE 0x8010 // hwnd + ID + idChild is item w/ help change
- #define EVENT_OBJECT_DEFACTIONCHANGE 0x8011 // hwnd + ID + idChild is item w/ def action change
- #define EVENT_OBJECT_ACCELERATORCHANGE 0x8012 // hwnd + ID + idChild is item w/ keybd accel change
- /*
- * Child IDs
- */
- /*
- * System Sounds (idChild of system SOUND notification)
- */
- #define SOUND_SYSTEM_STARTUP 1
- #define SOUND_SYSTEM_SHUTDOWN 2
- #define SOUND_SYSTEM_BEEP 3
- #define SOUND_SYSTEM_ERROR 4
- #define SOUND_SYSTEM_QUESTION 5
- #define SOUND_SYSTEM_WARNING 6
- #define SOUND_SYSTEM_INFORMATION 7
- #define SOUND_SYSTEM_MAXIMIZE 8
- #define SOUND_SYSTEM_MINIMIZE 9
- #define SOUND_SYSTEM_RESTOREUP 10
- #define SOUND_SYSTEM_RESTOREDOWN 11
- #define SOUND_SYSTEM_APPSTART 12
- #define SOUND_SYSTEM_FAULT 13
- #define SOUND_SYSTEM_APPEND 14
- #define SOUND_SYSTEM_MENUCOMMAND 15
- #define SOUND_SYSTEM_MENUPOPUP 16
- #define CSOUND_SYSTEM 16
- /*
- * System Alerts (indexChild of system ALERT notification)
- */
- #define ALERT_SYSTEM_INFORMATIONAL 1 // MB_INFORMATION
- #define ALERT_SYSTEM_WARNING 2 // MB_WARNING
- #define ALERT_SYSTEM_ERROR 3 // MB_ERROR
- #define ALERT_SYSTEM_QUERY 4 // MB_QUESTION
- #define ALERT_SYSTEM_CRITICAL 5 // HardSysErrBox
- #define CALERT_SYSTEM 6
- typedef struct tagGUITHREADINFO
- {
- DWORD cbSize;
- DWORD flags;
- HWND hwndActive;
- HWND hwndFocus;
- HWND hwndCapture;
- HWND hwndMenuOwner;
- HWND hwndMoveSize;
- HWND hwndCaret;
- RECT rcCaret;
- } GUITHREADINFO, *PGUITHREADINFO, FAR * LPGUITHREADINFO;
- #define GUI_CARETBLINKING 0x00000001
- #define GUI_INMOVESIZE 0x00000002
- #define GUI_INMENUMODE 0x00000004
- #define GUI_SYSTEMMENUMODE 0x00000008
- #define GUI_POPUPMENUMODE 0x00000010
- #if(_WIN32_WINNT >= 0x0501)
- #define GUI_16BITTASK 0x00000020
- #endif /* _WIN32_WINNT >= 0x0501 */
- WINUSERAPI
- BOOL
- WINAPI
- GetGUIThreadInfo(
- IN DWORD idThread,
- OUT PGUITHREADINFO pgui);
- WINUSERAPI
- UINT
- WINAPI
- GetWindowModuleFileNameA(
- IN HWND hwnd,
- OUT LPSTR pszFileName,
- IN UINT cchFileNameMax);
- WINUSERAPI
- UINT
- WINAPI
- GetWindowModuleFileNameW(
- IN HWND hwnd,
- OUT LPWSTR pszFileName,
- IN UINT cchFileNameMax);
- #ifdef UNICODE
- #define GetWindowModuleFileName GetWindowModuleFileNameW
- #else
- #define GetWindowModuleFileName GetWindowModuleFileNameA
- #endif // !UNICODE
- #ifndef NO_STATE_FLAGS
- #define STATE_SYSTEM_UNAVAILABLE 0x00000001 // Disabled
- #define STATE_SYSTEM_SELECTED 0x00000002
- #define STATE_SYSTEM_FOCUSED 0x00000004
- #define STATE_SYSTEM_PRESSED 0x00000008
- #define STATE_SYSTEM_CHECKED 0x00000010
- #define STATE_SYSTEM_MIXED 0x00000020 // 3-state checkbox or toolbar button
- #define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
- #define STATE_SYSTEM_READONLY 0x00000040
- #define STATE_SYSTEM_HOTTRACKED 0x00000080
- #define STATE_SYSTEM_DEFAULT 0x00000100
- #define STATE_SYSTEM_EXPANDED 0x00000200
- #define STATE_SYSTEM_COLLAPSED 0x00000400
- #define STATE_SYSTEM_BUSY 0x00000800
- #define STATE_SYSTEM_FLOATING 0x00001000 // Children "owned" not "contained" by parent
- #define STATE_SYSTEM_MARQUEED 0x00002000
- #define STATE_SYSTEM_ANIMATED 0x00004000
- #define STATE_SYSTEM_INVISIBLE 0x00008000
- #define STATE_SYSTEM_OFFSCREEN 0x00010000
- #define STATE_SYSTEM_SIZEABLE 0x00020000
- #define STATE_SYSTEM_MOVEABLE 0x00040000
- #define STATE_SYSTEM_SELFVOICING 0x00080000
- #define STATE_SYSTEM_FOCUSABLE 0x00100000
- #define STATE_SYSTEM_SELECTABLE 0x00200000
- #define STATE_SYSTEM_LINKED 0x00400000
- #define STATE_SYSTEM_TRAVERSED 0x00800000
- #define STATE_SYSTEM_MULTISELECTABLE 0x01000000 // Supports multiple selection
- #define STATE_SYSTEM_EXTSELECTABLE 0x02000000 // Supports extended selection
- #define STATE_SYSTEM_ALERT_LOW 0x04000000 // This information is of low priority
- #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000 // This information is of medium priority
- #define STATE_SYSTEM_ALERT_HIGH 0x10000000 // This information is of high priority
- #define STATE_SYSTEM_PROTECTED 0x20000000 // access to this is restricted
- #define STATE_SYSTEM_VALID 0x3FFFFFFF
- #endif
- #define CCHILDREN_TITLEBAR 5
- #define CCHILDREN_SCROLLBAR 5
- /*
- * Information about the global cursor.
- */
- typedef struct tagCURSORINFO
- {
- DWORD cbSize;
- DWORD flags;
- HCURSOR hCursor;
- POINT ptScreenPos;
- } CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
- #define CURSOR_SHOWING 0x00000001
- WINUSERAPI
- BOOL
- WINAPI
- GetCursorInfo(
- OUT PCURSORINFO pci
- );
- /*
- * Window information snapshot
- */
- typedef struct tagWINDOWINFO
- {
- DWORD cbSize;
- RECT rcWindow;
- RECT rcClient;
- DWORD dwStyle;
- DWORD dwExStyle;
- DWORD dwWindowStatus;
- UINT cxWindowBorders;
- UINT cyWindowBorders;
- ATOM atomWindowType;
- WORD wCreatorVersion;
- } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
- #define WS_ACTIVECAPTION 0x0001
- WINUSERAPI
- BOOL
- WINAPI
- GetWindowInfo(
- IN HWND hwnd,
- OUT PWINDOWINFO pwi
- );
- /*
- * Titlebar information.
- */
- typedef struct tagTITLEBARINFO
- {
- DWORD cbSize;
- RECT rcTitleBar;
- DWORD rgstate[CCHILDREN_TITLEBAR+1];
- } TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetTitleBarInfo(
- IN HWND hwnd,
- OUT PTITLEBARINFO pti
- );
- /*
- * Menubar information
- */
- typedef struct tagMENUBARINFO
- {
- DWORD cbSize;
- RECT rcBar; // rect of bar, popup, item
- HMENU hMenu; // real menu handle of bar, popup
- HWND hwndMenu; // hwnd of item submenu if one
- BOOL fBarFocused:1; // bar, popup has the focus
- BOOL fFocused:1; // item has the focus
- } MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetMenuBarInfo(
- IN HWND hwnd,
- IN LONG idObject,
- IN LONG idItem,
- OUT PMENUBARINFO pmbi
- );
- /*
- * Scrollbar information
- */
- typedef struct tagSCROLLBARINFO
- {
- DWORD cbSize;
- RECT rcScrollBar;
- int dxyLineButton;
- int xyThumbTop;
- int xyThumbBottom;
- int reserved;
- DWORD rgstate[CCHILDREN_SCROLLBAR+1];
- } SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetScrollBarInfo(
- IN HWND hwnd,
- IN LONG idObject,
- OUT PSCROLLBARINFO psbi
- );
- /*
- * Combobox information
- */
- typedef struct tagCOMBOBOXINFO
- {
- DWORD cbSize;
- RECT rcItem;
- RECT rcButton;
- DWORD stateButton;
- HWND hwndCombo;
- HWND hwndItem;
- HWND hwndList;
- } COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetComboBoxInfo(
- IN HWND hwndCombo,
- OUT PCOMBOBOXINFO pcbi
- );
- /*
- * The "real" ancestor window
- */
- #define GA_PARENT 1
- #define GA_ROOT 2
- #define GA_ROOTOWNER 3
- WINUSERAPI
- HWND
- WINAPI
- GetAncestor(
- IN HWND hwnd,
- IN UINT gaFlags
- );
- /*
- * This gets the REAL child window at the point. If it is in the dead
- * space of a group box, it will try a sibling behind it. But static
- * fields will get returned. In other words, it is kind of a cross between
- * ChildWindowFromPointEx and WindowFromPoint.
- */
- WINUSERAPI
- HWND
- WINAPI
- RealChildWindowFromPoint(
- IN HWND hwndParent,
- IN POINT ptParentClientCoords
- );
- /*
- * This gets the name of the window TYPE, not class. This allows us to
- * recognize ThunderButton32 et al.
- */
- WINUSERAPI
- UINT
- WINAPI
- RealGetWindowClassA(
- IN HWND hwnd,
- OUT LPSTR pszType,
- IN UINT cchType
- );
- /*
- * This gets the name of the window TYPE, not class. This allows us to
- * recognize ThunderButton32 et al.
- */
- WINUSERAPI
- UINT
- WINAPI
- RealGetWindowClassW(
- IN HWND hwnd,
- OUT LPWSTR pszType,
- IN UINT cchType
- );
- #ifdef UNICODE
- #define RealGetWindowClass RealGetWindowClassW
- #else
- #define RealGetWindowClass RealGetWindowClassA
- #endif // !UNICODE
- /*
- * Alt-Tab Switch window information.
- */
- typedef struct tagALTTABINFO
- {
- DWORD cbSize;
- int cItems;
- int cColumns;
- int cRows;
- int iColFocus;
- int iRowFocus;
- int cxItem;
- int cyItem;
- POINT ptStart;
- } ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
- WINUSERAPI
- BOOL
- WINAPI
- GetAltTabInfoA(
- IN HWND hwnd,
- IN int iItem,
- OUT PALTTABINFO pati,
- OUT LPSTR pszItemText,
- IN UINT cchItemText
- );
- WINUSERAPI
- BOOL
- WINAPI
- GetAltTabInfoW(
- IN HWND hwnd,
- IN int iItem,
- OUT PALTTABINFO pati,
- OUT LPWSTR pszItemText,
- IN UINT cchItemText
- );
- #ifdef UNICODE
- #define GetAltTabInfo GetAltTabInfoW
- #else
- #define GetAltTabInfo GetAltTabInfoA
- #endif // !UNICODE
- /*
- * Listbox information.
- * Returns the number of items per row.
- */
- WINUSERAPI
- DWORD
- WINAPI
- GetListBoxInfo(
- IN HWND hwnd
- );
- #endif /* NOWINABLE */
- #endif /* WINVER >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- LockWorkStation(
- VOID);
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0500)
- WINUSERAPI
- BOOL
- WINAPI
- UserHandleGrantAccess(
- HANDLE hUserHandle,
- HANDLE hJob,
- BOOL bGrant);
- #endif /* _WIN32_WINNT >= 0x0500 */
- #if(_WIN32_WINNT >= 0x0501)
- /*
- * Raw Input Messages.
- */
- DECLARE_HANDLE(HRAWINPUT);
- /*
- * WM_INPUT wParam
- */
- /*
- * Use this macro to get the input code from wParam.
- */
- #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
- /*
- * The input is in the regular message flow,
- * the app is required to call DefWindowProc
- * so that the system can perform clean ups.
- */
- #define RIM_INPUT 0
- /*
- * The input is sink only. The app is expected
- * to behave nicely.
- */
- #define RIM_INPUTSINK 1
- /*
- * Raw Input data header
- */
- typedef struct tagRAWINPUTHEADER {
- DWORD dwType;
- DWORD dwSize;
- HANDLE hDevice;
- WPARAM wParam;
- } RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER;
- /*
- * Type of the raw input
- */
- #define RIM_TYPEMOUSE 0
- #define RIM_TYPEKEYBOARD 1
- #define RIM_TYPEHID 2
- /*
- * Raw format of the mouse input
- */
- typedef struct tagRAWMOUSE {
- /*
- * Indicator flags.
- */
- USHORT usFlags;
- /*
- * The transition state of the mouse buttons.
- */
- union {
- ULONG ulButtons;
- struct {
- USHORT usButtonFlags;
- USHORT usButtonData;
- };
- };
- /*
- * The raw state of the mouse buttons.
- */
- ULONG ulRawButtons;
- /*
- * The signed relative or absolute motion in the X direction.
- */
- LONG lLastX;
- /*
- * The signed relative or absolute motion in the Y direction.
- */
- LONG lLastY;
- /*
- * Device-specific additional information for the event.
- */
- ULONG ulExtraInformation;
- } RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
- /*
- * Define the mouse button state indicators.
- */
- #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001 // Left Button changed to down.
- #define RI_MOUSE_LEFT_BUTTON_UP 0x0002 // Left Button changed to up.
- #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004 // Right Button changed to down.
- #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 // Right Button changed to up.
- #define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010 // Middle Button changed to down.
- #define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020 // Middle Button changed to up.
- #define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN
- #define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP
- #define RI_MOUSE_BUTTON_2_DOWN RI_MOUSE_RIGHT_BUTTON_DOWN
- #define RI_MOUSE_BUTTON_2_UP RI_MOUSE_RIGHT_BUTTON_UP
- #define RI_MOUSE_BUTTON_3_DOWN RI_MOUSE_MIDDLE_BUTTON_DOWN
- #define RI_MOUSE_BUTTON_3_UP RI_MOUSE_MIDDLE_BUTTON_UP
- #define RI_MOUSE_BUTTON_4_DOWN 0x0040
- #define RI_MOUSE_BUTTON_4_UP 0x0080
- #define RI_MOUSE_BUTTON_5_DOWN 0x0100
- #define RI_MOUSE_BUTTON_5_UP 0x0200
- /*
- * If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
- * Take it as a signed value.
- */
- #define RI_MOUSE_WHEEL 0x0400
- /*
- * Define the mouse indicator flags.
- */
- #define MOUSE_MOVE_RELATIVE 0
- #define MOUSE_MOVE_ABSOLUTE 1
- #define MOUSE_VIRTUAL_DESKTOP 0x02 // the coordinates are mapped to the virtual desktop
- #define MOUSE_ATTRIBUTES_CHANGED 0x04 // requery for mouse attributes
- /*
- * Raw format of the keyboard input
- */
- typedef struct tagRAWKEYBOARD {
- /*
- * The "make" scan code (key depression).
- */
- USHORT MakeCode;
- /*
- * The flags field indicates a "break" (key release) and other
- * miscellaneous scan code information defined in ntddkbd.h.
- */
- USHORT Flags;
- USHORT Reserved;
- /*
- * Windows message compatible information
- */
- USHORT VKey;
- UINT Message;
- /*
- * Device-specific additional information for the event.
- */
- ULONG ExtraInformation;
- } RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD;
- /*
- * Define the keyboard overrun MakeCode.
- */
- #define KEYBOARD_OVERRUN_MAKE_CODE 0xFF
- /*
- * Define the keyboard input data Flags.
- */
- #define RI_KEY_MAKE 0
- #define RI_KEY_BREAK 1
- #define RI_KEY_E0 2
- #define RI_KEY_E1 4
- #define RI_KEY_TERMSRV_SET_LED 8
- #define RI_KEY_TERMSRV_SHADOW 0x10
- /*
- * Raw format of the input from Human Input Devices
- */
- typedef struct tagRAWHID {
- DWORD dwSizeHid; // byte size of each report
- DWORD dwCount; // number of input packed
- BYTE bRawData[1];
- } RAWHID, *PRAWHID, *LPRAWHID;
- /*
- * RAWINPUT data structure.
- */
- typedef struct tagRAWINPUT {
- RAWINPUTHEADER header;
- union {
- RAWMOUSE mouse;
- RAWKEYBOARD keyboard;
- RAWHID hid;
- } data;
- } RAWINPUT, *PRAWINPUT, *LPRAWINPUT;
- #ifdef _WIN64
- #define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1))
- #else // _WIN64
- #define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1))
- #endif // _WIN64
- #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
- /*
- * Flags for GetRawInputData
- */
- #define RID_INPUT 0x10000003
- #define RID_HEADER 0x10000005
- WINUSERAPI
- UINT
- WINAPI
- GetRawInputData(
- IN HRAWINPUT hRawInput,
- IN UINT uiCommand,
- OUT LPVOID pData,
- IN OUT PUINT pcbSize,
- IN UINT cbSizeHeader);
- /*
- * Raw Input Device Information
- */
- #define RIDI_PREPARSEDDATA 0x20000005
- #define RIDI_DEVICENAME 0x20000007 // the return valus is the character length, not the byte size
- #define RIDI_DEVICEINFO 0x2000000b
- typedef struct tagRID_DEVICE_INFO_MOUSE {
- DWORD dwId;
- DWORD dwNumberOfButtons;
- DWORD dwSampleRate;
- } RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE;
- typedef struct tagRID_DEVICE_INFO_KEYBOARD {
- DWORD dwType;
- DWORD dwSubType;
- DWORD dwKeyboardMode;
- DWORD dwNumberOfFunctionKeys;
- DWORD dwNumberOfIndicators;
- DWORD dwNumberOfKeysTotal;
- } RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD;
- typedef struct tagRID_DEVICE_INFO_HID {
- DWORD dwVendorId;
- DWORD dwProductId;
- DWORD dwVersionNumber;
- /*
- * Top level collection UsagePage and Usage
- */
- USHORT usUsagePage;
- USHORT usUsage;
- } RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID;
- typedef struct tagRID_DEVICE_INFO {
- DWORD cbSize;
- DWORD dwType;
- union {
- RID_DEVICE_INFO_MOUSE mouse;
- RID_DEVICE_INFO_KEYBOARD keyboard;
- RID_DEVICE_INFO_HID hid;
- };
- } RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO;
- WINUSERAPI
- UINT
- WINAPI
- GetRawInputDeviceInfoA(
- IN HANDLE hDevice,
- IN UINT uiCommand,
- OUT LPVOID pData,
- IN OUT PUINT pcbSize);
- WINUSERAPI
- UINT
- WINAPI
- GetRawInputDeviceInfoW(
- IN HANDLE hDevice,
- IN UINT uiCommand,
- OUT LPVOID pData,
- IN OUT PUINT pcbSize);
- #ifdef UNICODE
- #define GetRawInputDeviceInfo GetRawInputDeviceInfoW
- #else
- #define GetRawInputDeviceInfo GetRawInputDeviceInfoA
- #endif // !UNICODE
- /*
- * Raw Input Bulk Read: GetRawInputBuffer
- */
- WINUSERAPI
- UINT
- WINAPI
- GetRawInputBuffer(
- OUT PRAWINPUT pData,
- IN OUT PUINT pcbSize,
- IN UINT cbSizeHeader);
- /*
- * Raw Input request APIs
- */
- typedef struct tagRAWINPUTDEVICE {
- USHORT usUsagePage; // Toplevel collection UsagePage
- USHORT usUsage; // Toplevel collection Usage
- DWORD dwFlags;
- HWND hwndTarget; // Target hwnd. NULL = follows keyboard focus
- } RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE;
- typedef CONST RAWINPUTDEVICE* PCRAWINPUTDEVICE;
- #define RIDEV_REMOVE 0x00000001
- #define RIDEV_EXCLUDE 0x00000010
- #define RIDEV_PAGEONLY 0x00000020
- #define RIDEV_NOLEGACY 0x00000030
- #define RIDEV_INPUTSINK 0x00000100
- #define RIDEV_CAPTUREMOUSE 0x00000200 // effective when mouse nolegacy is specified, otherwise it would be an error
- #define RIDEV_NOHOTKEYS 0x00000200 // effective for keyboard.
- #define RIDEV_APPKEYS 0x00000400 // effective for keyboard.
- #define RIDEV_EXMODEMASK 0x000000F0
- #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK)
- WINUSERAPI
- BOOL
- WINAPI
- RegisterRawInputDevices(
- IN PCRAWINPUTDEVICE pRawInputDevices,
- IN UINT uiNumDevices,
- IN UINT cbSize);
- WINUSERAPI
- UINT
- WINAPI
- GetRegisteredRawInputDevices(
- OUT PRAWINPUTDEVICE pRawInputDevices,
- IN OUT PUINT puiNumDevices,
- IN UINT cbSize);
- typedef struct tagRAWINPUTDEVICELIST {
- HANDLE hDevice;
- DWORD dwType;
- } RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST;
- WINUSERAPI
- UINT
- WINAPI
- GetRawInputDeviceList(
- OUT PRAWINPUTDEVICELIST pRawInputDeviceList,
- IN OUT PUINT puiNumDevices,
- IN UINT cbSize);
- WINUSERAPI
- LRESULT
- WINAPI
- DefRawInputProc(
- IN PRAWINPUT* paRawInput,
- IN INT nInput,
- IN UINT cbSizeHeader);
- #endif /* _WIN32_WINNT >= 0x0501 */
- #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
- #if ISOLATION_AWARE_ENABLED
- #include "winuser.inl"
- #endif /* ISOLATION_AWARE_ENABLED */
- #endif /* RC */
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* !_WINUSER_ */
|