winuser.h 225 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. #include <winapifamily.h>
  6. #ifndef _WINUSER_
  7. #define _WINUSER_
  8. #include <_mingw_unicode.h>
  9. #include <apisetcconv.h>
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #ifndef WINVER
  14. #define WINVER 0x0502
  15. #endif
  16. #include <_mingw.h>
  17. #include <stdarg.h>
  18. #include <guiddef.h>
  19. #ifndef NOAPISET
  20. #include <libloaderapi.h>
  21. #endif
  22. #ifndef NOUSER
  23. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  24. typedef HANDLE HDWP;
  25. typedef VOID MENUTEMPLATEA;
  26. typedef VOID MENUTEMPLATEW;
  27. typedef PVOID LPMENUTEMPLATEA;
  28. typedef PVOID LPMENUTEMPLATEW;
  29. __MINGW_TYPEDEF_AW(MENUTEMPLATE)
  30. __MINGW_TYPEDEF_AW(LPMENUTEMPLATE)
  31. typedef LRESULT (CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
  32. #endif
  33. #ifdef STRICT
  34. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  35. typedef INT_PTR (CALLBACK *DLGPROC) (HWND, UINT, WPARAM, LPARAM);
  36. #endif
  37. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  38. typedef VOID (CALLBACK *TIMERPROC) (HWND, UINT, UINT_PTR, DWORD);
  39. typedef WINBOOL (CALLBACK *GRAYSTRINGPROC) (HDC, LPARAM, int);
  40. typedef WINBOOL (CALLBACK *WNDENUMPROC) (HWND, LPARAM);
  41. typedef LRESULT (CALLBACK *HOOKPROC) (int code, WPARAM wParam, LPARAM lParam);
  42. typedef VOID (CALLBACK *SENDASYNCPROC) (HWND, UINT, ULONG_PTR, LRESULT);
  43. typedef WINBOOL (CALLBACK *PROPENUMPROCA) (HWND, LPCSTR, HANDLE);
  44. typedef WINBOOL (CALLBACK *PROPENUMPROCW) (HWND, LPCWSTR, HANDLE);
  45. typedef WINBOOL (CALLBACK *PROPENUMPROCEXA) (HWND, LPSTR, HANDLE, ULONG_PTR);
  46. typedef WINBOOL (CALLBACK *PROPENUMPROCEXW) (HWND, LPWSTR, HANDLE, ULONG_PTR);
  47. typedef int (CALLBACK *EDITWORDBREAKPROCA) (LPSTR lpch, int ichCurrent, int cch, int code);
  48. typedef int (CALLBACK *EDITWORDBREAKPROCW) (LPWSTR lpch, int ichCurrent, int cch, int code);
  49. typedef WINBOOL (CALLBACK *DRAWSTATEPROC) (HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
  50. #endif
  51. #else
  52. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  53. typedef FARPROC DLGPROC;
  54. #endif
  55. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  56. typedef FARPROC TIMERPROC;
  57. typedef FARPROC GRAYSTRINGPROC;
  58. typedef FARPROC WNDENUMPROC;
  59. typedef FARPROC HOOKPROC;
  60. typedef FARPROC SENDASYNCPROC;
  61. typedef FARPROC EDITWORDBREAKPROCA;
  62. typedef FARPROC EDITWORDBREAKPROCW;
  63. typedef FARPROC PROPENUMPROCA;
  64. typedef FARPROC PROPENUMPROCW;
  65. typedef FARPROC PROPENUMPROCEXA;
  66. typedef FARPROC PROPENUMPROCEXW;
  67. typedef FARPROC DRAWSTATEPROC;
  68. #endif
  69. #endif
  70. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  71. __MINGW_TYPEDEF_AW(PROPENUMPROC)
  72. __MINGW_TYPEDEF_AW(PROPENUMPROCEX)
  73. __MINGW_TYPEDEF_AW(EDITWORDBREAKPROC)
  74. #ifdef STRICT
  75. typedef WINBOOL (CALLBACK *NAMEENUMPROCA) (LPSTR, LPARAM);
  76. typedef WINBOOL (CALLBACK *NAMEENUMPROCW) (LPWSTR, LPARAM);
  77. typedef NAMEENUMPROCA WINSTAENUMPROCA;
  78. typedef NAMEENUMPROCW WINSTAENUMPROCW;
  79. typedef NAMEENUMPROCA DESKTOPENUMPROCA;
  80. typedef NAMEENUMPROCW DESKTOPENUMPROCW;
  81. #else
  82. typedef FARPROC NAMEENUMPROCA;
  83. typedef FARPROC NAMEENUMPROCW;
  84. typedef FARPROC WINSTAENUMPROCA;
  85. typedef FARPROC WINSTAENUMPROCW;
  86. typedef FARPROC DESKTOPENUMPROCA;
  87. typedef FARPROC DESKTOPENUMPROCW;
  88. #endif
  89. __MINGW_TYPEDEF_AW(WINSTAENUMPROC)
  90. __MINGW_TYPEDEF_AW(DESKTOPENUMPROC)
  91. #endif
  92. #define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16)==0)
  93. #define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
  94. #define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))
  95. #define MAKEINTRESOURCE __MINGW_NAME_AW(MAKEINTRESOURCE)
  96. #ifndef NORESOURCE
  97. #define RT_CURSOR MAKEINTRESOURCE(1)
  98. #define RT_BITMAP MAKEINTRESOURCE(2)
  99. #define RT_ICON MAKEINTRESOURCE(3)
  100. #define RT_MENU MAKEINTRESOURCE(4)
  101. #define RT_DIALOG MAKEINTRESOURCE(5)
  102. #define RT_STRING MAKEINTRESOURCE(6)
  103. #define RT_FONTDIR MAKEINTRESOURCE(7)
  104. #define RT_FONT MAKEINTRESOURCE(8)
  105. #define RT_ACCELERATOR MAKEINTRESOURCE(9)
  106. #define RT_RCDATA MAKEINTRESOURCE(10)
  107. #define RT_MESSAGETABLE MAKEINTRESOURCE(11)
  108. #define DIFFERENCE 11
  109. #define RT_GROUP_CURSOR MAKEINTRESOURCE ((ULONG_PTR) (RT_CURSOR) + DIFFERENCE)
  110. #define RT_GROUP_ICON MAKEINTRESOURCE ((ULONG_PTR) (RT_ICON) + DIFFERENCE)
  111. #define RT_VERSION MAKEINTRESOURCE(16)
  112. #define RT_DLGINCLUDE MAKEINTRESOURCE(17)
  113. #define RT_PLUGPLAY MAKEINTRESOURCE(19)
  114. #define RT_VXD MAKEINTRESOURCE(20)
  115. #define RT_ANICURSOR MAKEINTRESOURCE(21)
  116. #define RT_ANIICON MAKEINTRESOURCE(22)
  117. #define RT_HTML MAKEINTRESOURCE(23)
  118. #ifdef RC_INVOKED
  119. #define RT_MANIFEST 24
  120. #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
  121. #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
  122. #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
  123. #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1
  124. #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16
  125. #else
  126. #define RT_MANIFEST MAKEINTRESOURCE(24)
  127. #define CREATEPROCESS_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
  128. #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2)
  129. #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3)
  130. #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
  131. #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16)
  132. #endif
  133. #endif
  134. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  135. #define wvsprintf __MINGW_NAME_AW(wvsprintf)
  136. #define wsprintf __MINGW_NAME_AW(wsprintf)
  137. WINUSERAPI int WINAPI wvsprintfA(LPSTR,LPCSTR,va_list arglist);
  138. WINUSERAPI int WINAPI wvsprintfW(LPWSTR,LPCWSTR,va_list arglist);
  139. WINUSERAPI int WINAPIV wsprintfA(LPSTR,LPCSTR,...);
  140. WINUSERAPI int WINAPIV wsprintfW(LPWSTR,LPCWSTR,...);
  141. #endif
  142. #define SETWALLPAPER_DEFAULT ((LPWSTR)-1)
  143. #ifndef NOSCROLL
  144. #define SB_HORZ 0
  145. #define SB_VERT 1
  146. #define SB_CTL 2
  147. #define SB_BOTH 3
  148. #define SB_LINEUP 0
  149. #define SB_LINELEFT 0
  150. #define SB_LINEDOWN 1
  151. #define SB_LINERIGHT 1
  152. #define SB_PAGEUP 2
  153. #define SB_PAGELEFT 2
  154. #define SB_PAGEDOWN 3
  155. #define SB_PAGERIGHT 3
  156. #define SB_THUMBPOSITION 4
  157. #define SB_THUMBTRACK 5
  158. #define SB_TOP 6
  159. #define SB_LEFT 6
  160. #define SB_BOTTOM 7
  161. #define SB_RIGHT 7
  162. #define SB_ENDSCROLL 8
  163. #endif
  164. #ifndef NOSHOWWINDOW
  165. #define SW_HIDE 0
  166. #define SW_SHOWNORMAL 1
  167. #define SW_NORMAL 1
  168. #define SW_SHOWMINIMIZED 2
  169. #define SW_SHOWMAXIMIZED 3
  170. #define SW_MAXIMIZE 3
  171. #define SW_SHOWNOACTIVATE 4
  172. #define SW_SHOW 5
  173. #define SW_MINIMIZE 6
  174. #define SW_SHOWMINNOACTIVE 7
  175. #define SW_SHOWNA 8
  176. #define SW_RESTORE 9
  177. #define SW_SHOWDEFAULT 10
  178. #define SW_FORCEMINIMIZE 11
  179. #define SW_MAX 11
  180. #define HIDE_WINDOW 0
  181. #define SHOW_OPENWINDOW 1
  182. #define SHOW_ICONWINDOW 2
  183. #define SHOW_FULLSCREEN 3
  184. #define SHOW_OPENNOACTIVATE 4
  185. #define SW_PARENTCLOSING 1
  186. #define SW_OTHERZOOM 2
  187. #define SW_PARENTOPENING 3
  188. #define SW_OTHERUNZOOM 4
  189. #endif
  190. #define AW_HOR_POSITIVE 0x00000001
  191. #define AW_HOR_NEGATIVE 0x00000002
  192. #define AW_VER_POSITIVE 0x00000004
  193. #define AW_VER_NEGATIVE 0x00000008
  194. #define AW_CENTER 0x00000010
  195. #define AW_HIDE 0x00010000
  196. #define AW_ACTIVATE 0x00020000
  197. #define AW_SLIDE 0x00040000
  198. #define AW_BLEND 0x00080000
  199. #define KF_EXTENDED 0x0100
  200. #define KF_DLGMODE 0x0800
  201. #define KF_MENUMODE 0x1000
  202. #define KF_ALTDOWN 0x2000
  203. #define KF_REPEAT 0x4000
  204. #define KF_UP 0x8000
  205. #ifndef NOVIRTUALKEYCODES
  206. #define VK_LBUTTON 0x01
  207. #define VK_RBUTTON 0x02
  208. #define VK_CANCEL 0x03
  209. #define VK_MBUTTON 0x04
  210. #define VK_XBUTTON1 0x05
  211. #define VK_XBUTTON2 0x06
  212. #define VK_BACK 0x08
  213. #define VK_TAB 0x09
  214. #define VK_CLEAR 0x0C
  215. #define VK_RETURN 0x0D
  216. #define VK_SHIFT 0x10
  217. #define VK_CONTROL 0x11
  218. #define VK_MENU 0x12
  219. #define VK_PAUSE 0x13
  220. #define VK_CAPITAL 0x14
  221. #define VK_KANA 0x15
  222. #define VK_HANGEUL 0x15
  223. #define VK_HANGUL 0x15
  224. #define VK_IME_ON 0x16
  225. #define VK_JUNJA 0x17
  226. #define VK_FINAL 0x18
  227. #define VK_HANJA 0x19
  228. #define VK_KANJI 0x19
  229. #define VK_IME_OFF 0x1A
  230. #define VK_ESCAPE 0x1B
  231. #define VK_CONVERT 0x1C
  232. #define VK_NONCONVERT 0x1D
  233. #define VK_ACCEPT 0x1E
  234. #define VK_MODECHANGE 0x1F
  235. #define VK_SPACE 0x20
  236. #define VK_PRIOR 0x21
  237. #define VK_NEXT 0x22
  238. #define VK_END 0x23
  239. #define VK_HOME 0x24
  240. #define VK_LEFT 0x25
  241. #define VK_UP 0x26
  242. #define VK_RIGHT 0x27
  243. #define VK_DOWN 0x28
  244. #define VK_SELECT 0x29
  245. #define VK_PRINT 0x2A
  246. #define VK_EXECUTE 0x2B
  247. #define VK_SNAPSHOT 0x2C
  248. #define VK_INSERT 0x2D
  249. #define VK_DELETE 0x2E
  250. #define VK_HELP 0x2F
  251. #define VK_LWIN 0x5B
  252. #define VK_RWIN 0x5C
  253. #define VK_APPS 0x5D
  254. #define VK_SLEEP 0x5F
  255. #define VK_NUMPAD0 0x60
  256. #define VK_NUMPAD1 0x61
  257. #define VK_NUMPAD2 0x62
  258. #define VK_NUMPAD3 0x63
  259. #define VK_NUMPAD4 0x64
  260. #define VK_NUMPAD5 0x65
  261. #define VK_NUMPAD6 0x66
  262. #define VK_NUMPAD7 0x67
  263. #define VK_NUMPAD8 0x68
  264. #define VK_NUMPAD9 0x69
  265. #define VK_MULTIPLY 0x6A
  266. #define VK_ADD 0x6B
  267. #define VK_SEPARATOR 0x6C
  268. #define VK_SUBTRACT 0x6D
  269. #define VK_DECIMAL 0x6E
  270. #define VK_DIVIDE 0x6F
  271. #define VK_F1 0x70
  272. #define VK_F2 0x71
  273. #define VK_F3 0x72
  274. #define VK_F4 0x73
  275. #define VK_F5 0x74
  276. #define VK_F6 0x75
  277. #define VK_F7 0x76
  278. #define VK_F8 0x77
  279. #define VK_F9 0x78
  280. #define VK_F10 0x79
  281. #define VK_F11 0x7A
  282. #define VK_F12 0x7B
  283. #define VK_F13 0x7C
  284. #define VK_F14 0x7D
  285. #define VK_F15 0x7E
  286. #define VK_F16 0x7F
  287. #define VK_F17 0x80
  288. #define VK_F18 0x81
  289. #define VK_F19 0x82
  290. #define VK_F20 0x83
  291. #define VK_F21 0x84
  292. #define VK_F22 0x85
  293. #define VK_F23 0x86
  294. #define VK_F24 0x87
  295. #if _WIN32_WINNT >= 0x0604
  296. #define VK_NAVIGATION_VIEW 0x88
  297. #define VK_NAVIGATION_MENU 0x89
  298. #define VK_NAVIGATION_UP 0x8A
  299. #define VK_NAVIGATION_DOWN 0x8B
  300. #define VK_NAVIGATION_LEFT 0x8C
  301. #define VK_NAVIGATION_RIGHT 0x8D
  302. #define VK_NAVIGATION_ACCEPT 0x8E
  303. #define VK_NAVIGATION_CANCEL 0x8F
  304. #endif /* _WIN32_WINNT >= 0x0604 */
  305. #define VK_NUMLOCK 0x90
  306. #define VK_SCROLL 0x91
  307. #define VK_OEM_NEC_EQUAL 0x92
  308. #define VK_OEM_FJ_JISHO 0x92
  309. #define VK_OEM_FJ_MASSHOU 0x93
  310. #define VK_OEM_FJ_TOUROKU 0x94
  311. #define VK_OEM_FJ_LOYA 0x95
  312. #define VK_OEM_FJ_ROYA 0x96
  313. #define VK_LSHIFT 0xA0
  314. #define VK_RSHIFT 0xA1
  315. #define VK_LCONTROL 0xA2
  316. #define VK_RCONTROL 0xA3
  317. #define VK_LMENU 0xA4
  318. #define VK_RMENU 0xA5
  319. #define VK_BROWSER_BACK 0xA6
  320. #define VK_BROWSER_FORWARD 0xA7
  321. #define VK_BROWSER_REFRESH 0xA8
  322. #define VK_BROWSER_STOP 0xA9
  323. #define VK_BROWSER_SEARCH 0xAA
  324. #define VK_BROWSER_FAVORITES 0xAB
  325. #define VK_BROWSER_HOME 0xAC
  326. #define VK_VOLUME_MUTE 0xAD
  327. #define VK_VOLUME_DOWN 0xAE
  328. #define VK_VOLUME_UP 0xAF
  329. #define VK_MEDIA_NEXT_TRACK 0xB0
  330. #define VK_MEDIA_PREV_TRACK 0xB1
  331. #define VK_MEDIA_STOP 0xB2
  332. #define VK_MEDIA_PLAY_PAUSE 0xB3
  333. #define VK_LAUNCH_MAIL 0xB4
  334. #define VK_LAUNCH_MEDIA_SELECT 0xB5
  335. #define VK_LAUNCH_APP1 0xB6
  336. #define VK_LAUNCH_APP2 0xB7
  337. #define VK_OEM_1 0xBA
  338. #define VK_OEM_PLUS 0xBB
  339. #define VK_OEM_COMMA 0xBC
  340. #define VK_OEM_MINUS 0xBD
  341. #define VK_OEM_PERIOD 0xBE
  342. #define VK_OEM_2 0xBF
  343. #define VK_OEM_3 0xC0
  344. #if _WIN32_WINNT >= 0x0604
  345. #define VK_GAMEPAD_A 0xC3
  346. #define VK_GAMEPAD_B 0xC4
  347. #define VK_GAMEPAD_X 0xC5
  348. #define VK_GAMEPAD_Y 0xC6
  349. #define VK_GAMEPAD_RIGHT_SHOULDER 0xC7
  350. #define VK_GAMEPAD_LEFT_SHOULDER 0xC8
  351. #define VK_GAMEPAD_LEFT_TRIGGER 0xC9
  352. #define VK_GAMEPAD_RIGHT_TRIGGER 0xCA
  353. #define VK_GAMEPAD_DPAD_UP 0xCB
  354. #define VK_GAMEPAD_DPAD_DOWN 0xCC
  355. #define VK_GAMEPAD_DPAD_LEFT 0xCD
  356. #define VK_GAMEPAD_DPAD_RIGHT 0xCE
  357. #define VK_GAMEPAD_MENU 0xCF
  358. #define VK_GAMEPAD_VIEW 0xD0
  359. #define VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON 0xD1
  360. #define VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON 0xD2
  361. #define VK_GAMEPAD_LEFT_THUMBSTICK_UP 0xD3
  362. #define VK_GAMEPAD_LEFT_THUMBSTICK_DOWN 0xD4
  363. #define VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT 0xD5
  364. #define VK_GAMEPAD_LEFT_THUMBSTICK_LEFT 0xD6
  365. #define VK_GAMEPAD_RIGHT_THUMBSTICK_UP 0xD7
  366. #define VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN 0xD8
  367. #define VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT 0xD9
  368. #define VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT 0xDA
  369. #endif /* _WIN32_WINNT >= 0x0604 */
  370. #define VK_OEM_4 0xDB
  371. #define VK_OEM_5 0xDC
  372. #define VK_OEM_6 0xDD
  373. #define VK_OEM_7 0xDE
  374. #define VK_OEM_8 0xDF
  375. #define VK_OEM_AX 0xE1
  376. #define VK_OEM_102 0xE2
  377. #define VK_ICO_HELP 0xE3
  378. #define VK_ICO_00 0xE4
  379. #define VK_PROCESSKEY 0xE5
  380. #define VK_ICO_CLEAR 0xE6
  381. #define VK_PACKET 0xE7
  382. #define VK_OEM_RESET 0xE9
  383. #define VK_OEM_JUMP 0xEA
  384. #define VK_OEM_PA1 0xEB
  385. #define VK_OEM_PA2 0xEC
  386. #define VK_OEM_PA3 0xED
  387. #define VK_OEM_WSCTRL 0xEE
  388. #define VK_OEM_CUSEL 0xEF
  389. #define VK_OEM_ATTN 0xF0
  390. #define VK_OEM_FINISH 0xF1
  391. #define VK_OEM_COPY 0xF2
  392. #define VK_OEM_AUTO 0xF3
  393. #define VK_OEM_ENLW 0xF4
  394. #define VK_OEM_BACKTAB 0xF5
  395. #define VK_ATTN 0xF6
  396. #define VK_CRSEL 0xF7
  397. #define VK_EXSEL 0xF8
  398. #define VK_EREOF 0xF9
  399. #define VK_PLAY 0xFA
  400. #define VK_ZOOM 0xFB
  401. #define VK_NONAME 0xFC
  402. #define VK_PA1 0xFD
  403. #define VK_OEM_CLEAR 0xFE
  404. #endif
  405. #ifndef NOWH
  406. #define WH_MIN (-1)
  407. #define WH_MSGFILTER (-1)
  408. #define WH_JOURNALRECORD 0
  409. #define WH_JOURNALPLAYBACK 1
  410. #define WH_KEYBOARD 2
  411. #define WH_GETMESSAGE 3
  412. #define WH_CALLWNDPROC 4
  413. #define WH_CBT 5
  414. #define WH_SYSMSGFILTER 6
  415. #define WH_MOUSE 7
  416. #define WH_HARDWARE 8
  417. #define WH_DEBUG 9
  418. #define WH_SHELL 10
  419. #define WH_FOREGROUNDIDLE 11
  420. #define WH_CALLWNDPROCRET 12
  421. #define WH_KEYBOARD_LL 13
  422. #define WH_MOUSE_LL 14
  423. #define WH_MAX 14
  424. #define WH_MINHOOK WH_MIN
  425. #define WH_MAXHOOK WH_MAX
  426. #define HC_ACTION 0
  427. #define HC_GETNEXT 1
  428. #define HC_SKIP 2
  429. #define HC_NOREMOVE 3
  430. #define HC_NOREM HC_NOREMOVE
  431. #define HC_SYSMODALON 4
  432. #define HC_SYSMODALOFF 5
  433. #define HCBT_MOVESIZE 0
  434. #define HCBT_MINMAX 1
  435. #define HCBT_QS 2
  436. #define HCBT_CREATEWND 3
  437. #define HCBT_DESTROYWND 4
  438. #define HCBT_ACTIVATE 5
  439. #define HCBT_CLICKSKIPPED 6
  440. #define HCBT_KEYSKIPPED 7
  441. #define HCBT_SYSCOMMAND 8
  442. #define HCBT_SETFOCUS 9
  443. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  444. typedef struct tagCBT_CREATEWNDA {
  445. struct tagCREATESTRUCTA *lpcs;
  446. HWND hwndInsertAfter;
  447. } CBT_CREATEWNDA,*LPCBT_CREATEWNDA;
  448. typedef struct tagCBT_CREATEWNDW {
  449. struct tagCREATESTRUCTW *lpcs;
  450. HWND hwndInsertAfter;
  451. } CBT_CREATEWNDW,*LPCBT_CREATEWNDW;
  452. __MINGW_TYPEDEF_AW(CBT_CREATEWND)
  453. __MINGW_TYPEDEF_AW(LPCBT_CREATEWND)
  454. typedef struct tagCBTACTIVATESTRUCT {
  455. WINBOOL fMouse;
  456. HWND hWndActive;
  457. } CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT;
  458. #endif
  459. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  460. typedef struct tagWTSSESSION_NOTIFICATION {
  461. DWORD cbSize;
  462. DWORD dwSessionId;
  463. } WTSSESSION_NOTIFICATION,*PWTSSESSION_NOTIFICATION;
  464. #endif
  465. #define WTS_CONSOLE_CONNECT 0x1
  466. #define WTS_CONSOLE_DISCONNECT 0x2
  467. #define WTS_REMOTE_CONNECT 0x3
  468. #define WTS_REMOTE_DISCONNECT 0x4
  469. #define WTS_SESSION_LOGON 0x5
  470. #define WTS_SESSION_LOGOFF 0x6
  471. #define WTS_SESSION_LOCK 0x7
  472. #define WTS_SESSION_UNLOCK 0x8
  473. #define WTS_SESSION_REMOTE_CONTROL 0x9
  474. #define WTS_SESSION_CREATE 0xa
  475. #define WTS_SESSION_TERMINATE 0xb
  476. #define MSGF_DIALOGBOX 0
  477. #define MSGF_MESSAGEBOX 1
  478. #define MSGF_MENU 2
  479. #define MSGF_SCROLLBAR 5
  480. #define MSGF_NEXTWINDOW 6
  481. #define MSGF_MAX 8
  482. #define MSGF_USER 4096
  483. #define HSHELL_WINDOWCREATED 1
  484. #define HSHELL_WINDOWDESTROYED 2
  485. #define HSHELL_ACTIVATESHELLWINDOW 3
  486. #define HSHELL_WINDOWACTIVATED 4
  487. #define HSHELL_GETMINRECT 5
  488. #define HSHELL_REDRAW 6
  489. #define HSHELL_TASKMAN 7
  490. #define HSHELL_LANGUAGE 8
  491. #define HSHELL_SYSMENU 9
  492. #define HSHELL_ENDTASK 10
  493. #define HSHELL_ACCESSIBILITYSTATE 11
  494. #define HSHELL_APPCOMMAND 12
  495. #define HSHELL_WINDOWREPLACED 13
  496. #define HSHELL_WINDOWREPLACING 14
  497. #if _WIN32_WINNT >= 0x0602
  498. #define HSHELL_MONITORCHANGED 16
  499. #endif
  500. #define HSHELL_HIGHBIT 0x8000
  501. #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
  502. #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
  503. #define ACCESS_STICKYKEYS 0x0001
  504. #define ACCESS_FILTERKEYS 0x0002
  505. #define ACCESS_MOUSEKEYS 0x0003
  506. #define APPCOMMAND_BROWSER_BACKWARD 1
  507. #define APPCOMMAND_BROWSER_FORWARD 2
  508. #define APPCOMMAND_BROWSER_REFRESH 3
  509. #define APPCOMMAND_BROWSER_STOP 4
  510. #define APPCOMMAND_BROWSER_SEARCH 5
  511. #define APPCOMMAND_BROWSER_FAVORITES 6
  512. #define APPCOMMAND_BROWSER_HOME 7
  513. #define APPCOMMAND_VOLUME_MUTE 8
  514. #define APPCOMMAND_VOLUME_DOWN 9
  515. #define APPCOMMAND_VOLUME_UP 10
  516. #define APPCOMMAND_MEDIA_NEXTTRACK 11
  517. #define APPCOMMAND_MEDIA_PREVIOUSTRACK 12
  518. #define APPCOMMAND_MEDIA_STOP 13
  519. #define APPCOMMAND_MEDIA_PLAY_PAUSE 14
  520. #define APPCOMMAND_LAUNCH_MAIL 15
  521. #define APPCOMMAND_LAUNCH_MEDIA_SELECT 16
  522. #define APPCOMMAND_LAUNCH_APP1 17
  523. #define APPCOMMAND_LAUNCH_APP2 18
  524. #define APPCOMMAND_BASS_DOWN 19
  525. #define APPCOMMAND_BASS_BOOST 20
  526. #define APPCOMMAND_BASS_UP 21
  527. #define APPCOMMAND_TREBLE_DOWN 22
  528. #define APPCOMMAND_TREBLE_UP 23
  529. #define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24
  530. #define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25
  531. #define APPCOMMAND_MICROPHONE_VOLUME_UP 26
  532. #define APPCOMMAND_HELP 27
  533. #define APPCOMMAND_FIND 28
  534. #define APPCOMMAND_NEW 29
  535. #define APPCOMMAND_OPEN 30
  536. #define APPCOMMAND_CLOSE 31
  537. #define APPCOMMAND_SAVE 32
  538. #define APPCOMMAND_PRINT 33
  539. #define APPCOMMAND_UNDO 34
  540. #define APPCOMMAND_REDO 35
  541. #define APPCOMMAND_COPY 36
  542. #define APPCOMMAND_CUT 37
  543. #define APPCOMMAND_PASTE 38
  544. #define APPCOMMAND_REPLY_TO_MAIL 39
  545. #define APPCOMMAND_FORWARD_MAIL 40
  546. #define APPCOMMAND_SEND_MAIL 41
  547. #define APPCOMMAND_SPELL_CHECK 42
  548. #define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43
  549. #define APPCOMMAND_MIC_ON_OFF_TOGGLE 44
  550. #define APPCOMMAND_CORRECTION_LIST 45
  551. #define APPCOMMAND_MEDIA_PLAY 46
  552. #define APPCOMMAND_MEDIA_PAUSE 47
  553. #define APPCOMMAND_MEDIA_RECORD 48
  554. #define APPCOMMAND_MEDIA_FAST_FORWARD 49
  555. #define APPCOMMAND_MEDIA_REWIND 50
  556. #define APPCOMMAND_MEDIA_CHANNEL_UP 51
  557. #define APPCOMMAND_MEDIA_CHANNEL_DOWN 52
  558. #if _WIN32_WINNT >= 0x0600
  559. #define APPCOMMAND_DELETE 53
  560. #define APPCOMMAND_DWM_FLIP3D 54
  561. #endif
  562. #define FAPPCOMMAND_MOUSE 0x8000
  563. #define FAPPCOMMAND_KEY 0
  564. #define FAPPCOMMAND_OEM 0x1000
  565. #define FAPPCOMMAND_MASK 0xF000
  566. #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
  567. #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
  568. #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
  569. #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
  570. #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
  571. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  572. typedef struct {
  573. HWND hwnd;
  574. RECT rc;
  575. } SHELLHOOKINFO,*LPSHELLHOOKINFO;
  576. typedef struct tagEVENTMSG {
  577. UINT message;
  578. UINT paramL;
  579. UINT paramH;
  580. DWORD time;
  581. HWND hwnd;
  582. } EVENTMSG,*PEVENTMSGMSG,*NPEVENTMSGMSG,*LPEVENTMSGMSG;
  583. typedef struct tagEVENTMSG *PEVENTMSG,*NPEVENTMSG,*LPEVENTMSG;
  584. typedef struct tagCWPSTRUCT {
  585. LPARAM lParam;
  586. WPARAM wParam;
  587. UINT message;
  588. HWND hwnd;
  589. } CWPSTRUCT,*PCWPSTRUCT,*NPCWPSTRUCT,*LPCWPSTRUCT;
  590. typedef struct tagCWPRETSTRUCT {
  591. LRESULT lResult;
  592. LPARAM lParam;
  593. WPARAM wParam;
  594. UINT message;
  595. HWND hwnd;
  596. } CWPRETSTRUCT,*PCWPRETSTRUCT,*NPCWPRETSTRUCT,*LPCWPRETSTRUCT;
  597. #endif
  598. #define LLKHF_EXTENDED (KF_EXTENDED >> 8)
  599. #define LLKHF_INJECTED 0x00000010
  600. #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8)
  601. #define LLKHF_UP (KF_UP >> 8)
  602. #define LLKHF_LOWER_IL_INJECTED 0x00000002
  603. #define LLMHF_INJECTED 0x00000001
  604. #define LLMHF_LOWER_IL_INJECTED 0x00000002
  605. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  606. typedef struct tagKBDLLHOOKSTRUCT {
  607. DWORD vkCode;
  608. DWORD scanCode;
  609. DWORD flags;
  610. DWORD time;
  611. ULONG_PTR dwExtraInfo;
  612. } KBDLLHOOKSTRUCT,*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT;
  613. typedef struct tagMSLLHOOKSTRUCT {
  614. POINT pt;
  615. DWORD mouseData;
  616. DWORD flags;
  617. DWORD time;
  618. ULONG_PTR dwExtraInfo;
  619. } MSLLHOOKSTRUCT,*LPMSLLHOOKSTRUCT,*PMSLLHOOKSTRUCT;
  620. typedef struct tagDEBUGHOOKINFO {
  621. DWORD idThread;
  622. DWORD idThreadInstaller;
  623. LPARAM lParam;
  624. WPARAM wParam;
  625. int code;
  626. } DEBUGHOOKINFO,*PDEBUGHOOKINFO,*NPDEBUGHOOKINFO,*LPDEBUGHOOKINFO;
  627. typedef struct tagMOUSEHOOKSTRUCT {
  628. POINT pt;
  629. HWND hwnd;
  630. UINT wHitTestCode;
  631. ULONG_PTR dwExtraInfo;
  632. } MOUSEHOOKSTRUCT,*LPMOUSEHOOKSTRUCT,*PMOUSEHOOKSTRUCT;
  633. #ifdef __cplusplus
  634. typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT {
  635. DWORD mouseData;
  636. } MOUSEHOOKSTRUCTEX,*LPMOUSEHOOKSTRUCTEX,*PMOUSEHOOKSTRUCTEX;
  637. #else
  638. typedef struct tagMOUSEHOOKSTRUCTEX {
  639. MOUSEHOOKSTRUCT __unnamed;
  640. DWORD mouseData;
  641. } MOUSEHOOKSTRUCTEX,*LPMOUSEHOOKSTRUCTEX,*PMOUSEHOOKSTRUCTEX;
  642. #endif
  643. typedef struct tagHARDWAREHOOKSTRUCT {
  644. HWND hwnd;
  645. UINT message;
  646. WPARAM wParam;
  647. LPARAM lParam;
  648. } HARDWAREHOOKSTRUCT,*LPHARDWAREHOOKSTRUCT,*PHARDWAREHOOKSTRUCT;
  649. #endif
  650. #endif
  651. #define HKL_PREV 0
  652. #define HKL_NEXT 1
  653. #define KLF_ACTIVATE 0x00000001
  654. #define KLF_SUBSTITUTE_OK 0x00000002
  655. #define KLF_REORDER 0x00000008
  656. #define KLF_REPLACELANG 0x00000010
  657. #define KLF_NOTELLSHELL 0x00000080
  658. #define KLF_SETFORPROCESS 0x00000100
  659. #define KLF_SHIFTLOCK 0x00010000
  660. #define KLF_RESET 0x40000000
  661. #define INPUTLANGCHANGE_SYSCHARSET 0x0001
  662. #define INPUTLANGCHANGE_FORWARD 0x0002
  663. #define INPUTLANGCHANGE_BACKWARD 0x0004
  664. #define KL_NAMELENGTH 9
  665. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  666. #define LoadKeyboardLayout __MINGW_NAME_AW(LoadKeyboardLayout)
  667. #define GetKeyboardLayoutName __MINGW_NAME_AW(GetKeyboardLayoutName)
  668. WINUSERAPI HKL WINAPI LoadKeyboardLayoutA(LPCSTR pwszKLID,UINT Flags);
  669. WINUSERAPI HKL WINAPI LoadKeyboardLayoutW(LPCWSTR pwszKLID,UINT Flags);
  670. WINUSERAPI HKL WINAPI ActivateKeyboardLayout(HKL hkl,UINT Flags);
  671. WINUSERAPI int WINAPI ToUnicodeEx(UINT wVirtKey,UINT wScanCode,CONST BYTE *lpKeyState,LPWSTR pwszBuff,int cchBuff,UINT wFlags,HKL dwhkl);
  672. WINUSERAPI WINBOOL WINAPI UnloadKeyboardLayout(HKL hkl);
  673. WINUSERAPI WINBOOL WINAPI GetKeyboardLayoutNameA(LPSTR pwszKLID);
  674. WINUSERAPI WINBOOL WINAPI GetKeyboardLayoutNameW(LPWSTR pwszKLID);
  675. WINUSERAPI int WINAPI GetKeyboardLayoutList(int nBuff,HKL *lpList);
  676. WINUSERAPI HKL WINAPI GetKeyboardLayout(DWORD idThread);
  677. typedef struct tagMOUSEMOVEPOINT {
  678. int x;
  679. int y;
  680. DWORD time;
  681. ULONG_PTR dwExtraInfo;
  682. } MOUSEMOVEPOINT,*PMOUSEMOVEPOINT,*LPMOUSEMOVEPOINT;
  683. WINUSERAPI int WINAPI GetMouseMovePointsEx(UINT cbSize,LPMOUSEMOVEPOINT lppt,LPMOUSEMOVEPOINT lpptBuf,int nBufPoints,DWORD resolution);
  684. #endif
  685. #define GMMP_USE_DISPLAY_POINTS 1
  686. #define GMMP_USE_HIGH_RESOLUTION_POINTS 2
  687. #ifndef NODESKTOP
  688. #define DESKTOP_READOBJECTS __MSABI_LONG(0x0001)
  689. #define DESKTOP_CREATEWINDOW __MSABI_LONG(0x0002)
  690. #define DESKTOP_CREATEMENU __MSABI_LONG(0x0004)
  691. #define DESKTOP_HOOKCONTROL __MSABI_LONG(0x0008)
  692. #define DESKTOP_JOURNALRECORD __MSABI_LONG(0x0010)
  693. #define DESKTOP_JOURNALPLAYBACK __MSABI_LONG(0x0020)
  694. #define DESKTOP_ENUMERATE __MSABI_LONG(0x0040)
  695. #define DESKTOP_WRITEOBJECTS __MSABI_LONG(0x0080)
  696. #define DESKTOP_SWITCHDESKTOP __MSABI_LONG(0x0100)
  697. #define DF_ALLOWOTHERACCOUNTHOOK __MSABI_LONG(0x0001)
  698. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  699. #ifdef _WINGDI_
  700. #ifndef NOGDI
  701. #define CreateDesktop __MINGW_NAME_AW(CreateDesktop)
  702. #define CreateDesktopEx __MINGW_NAME_AW(CreateDesktopEx)
  703. WINUSERAPI HDESK WINAPI CreateDesktopA(LPCSTR lpszDesktop,LPCSTR lpszDevice,LPDEVMODEA pDevmode,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
  704. WINUSERAPI HDESK WINAPI CreateDesktopW(LPCWSTR lpszDesktop,LPCWSTR lpszDevice,LPDEVMODEW pDevmode,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
  705. WINUSERAPI HDESK WINAPI CreateDesktopExA (LPCSTR lpszDesktop, LPCSTR lpszDevice, DEVMODEA *pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa, ULONG ulHeapSize, PVOID pvoid);
  706. WINUSERAPI HDESK WINAPI CreateDesktopExW (LPCWSTR lpszDesktop, LPCWSTR lpszDevice, DEVMODEW *pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa, ULONG ulHeapSize, PVOID pvoid);
  707. #endif
  708. #endif
  709. #define OpenDesktop __MINGW_NAME_AW(OpenDesktop)
  710. #define EnumDesktops __MINGW_NAME_AW(EnumDesktops)
  711. WINUSERAPI HDESK WINAPI OpenDesktopA(LPCSTR lpszDesktop,DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
  712. WINUSERAPI HDESK WINAPI OpenDesktopW(LPCWSTR lpszDesktop,DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
  713. WINUSERAPI HDESK WINAPI OpenInputDesktop(DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
  714. WINUSERAPI WINBOOL WINAPI EnumDesktopsA(HWINSTA hwinsta,DESKTOPENUMPROCA lpEnumFunc,LPARAM lParam);
  715. WINUSERAPI WINBOOL WINAPI EnumDesktopsW(HWINSTA hwinsta,DESKTOPENUMPROCW lpEnumFunc,LPARAM lParam);
  716. WINUSERAPI WINBOOL WINAPI EnumDesktopWindows(HDESK hDesktop,WNDENUMPROC lpfn,LPARAM lParam);
  717. WINUSERAPI WINBOOL WINAPI SwitchDesktop(HDESK hDesktop);
  718. WINUSERAPI WINBOOL WINAPI SetThreadDesktop(HDESK hDesktop);
  719. WINUSERAPI WINBOOL WINAPI CloseDesktop(HDESK hDesktop);
  720. WINUSERAPI HDESK WINAPI GetThreadDesktop(DWORD dwThreadId);
  721. #endif
  722. #endif
  723. #ifndef NOWINDOWSTATION
  724. #define WINSTA_ENUMDESKTOPS __MSABI_LONG(0x0001)
  725. #define WINSTA_READATTRIBUTES __MSABI_LONG(0x0002)
  726. #define WINSTA_ACCESSCLIPBOARD __MSABI_LONG(0x0004)
  727. #define WINSTA_CREATEDESKTOP __MSABI_LONG(0x0008)
  728. #define WINSTA_WRITEATTRIBUTES __MSABI_LONG(0x0010)
  729. #define WINSTA_ACCESSGLOBALATOMS __MSABI_LONG(0x0020)
  730. #define WINSTA_EXITWINDOWS __MSABI_LONG(0x0040)
  731. #define WINSTA_ENUMERATE __MSABI_LONG(0x0100)
  732. #define WINSTA_READSCREEN __MSABI_LONG(0x0200)
  733. #define WINSTA_ALL_ACCESS (WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | WINSTA_ACCESSCLIPBOARD | WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES | WINSTA_ACCESSGLOBALATOMS | WINSTA_EXITWINDOWS | WINSTA_ENUMERATE | WINSTA_READSCREEN)
  734. #define CWF_CREATE_ONLY 0x00000001
  735. #define WSF_VISIBLE __MSABI_LONG(0x0001)
  736. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  737. #define CreateWindowStation __MINGW_NAME_AW(CreateWindowStation)
  738. #define OpenWindowStation __MINGW_NAME_AW(OpenWindowStation)
  739. #define EnumWindowStations __MINGW_NAME_AW(EnumWindowStations)
  740. WINUSERAPI HWINSTA WINAPI CreateWindowStationA(LPCSTR lpwinsta,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
  741. WINUSERAPI HWINSTA WINAPI CreateWindowStationW(LPCWSTR lpwinsta,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
  742. WINUSERAPI HWINSTA WINAPI OpenWindowStationA(LPCSTR lpszWinSta,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
  743. WINUSERAPI HWINSTA WINAPI OpenWindowStationW(LPCWSTR lpszWinSta,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
  744. WINUSERAPI WINBOOL WINAPI EnumWindowStationsA(WINSTAENUMPROCA lpEnumFunc,LPARAM lParam);
  745. WINUSERAPI WINBOOL WINAPI EnumWindowStationsW(WINSTAENUMPROCW lpEnumFunc,LPARAM lParam);
  746. WINUSERAPI WINBOOL WINAPI CloseWindowStation(HWINSTA hWinSta);
  747. WINUSERAPI WINBOOL WINAPI SetProcessWindowStation(HWINSTA hWinSta);
  748. WINUSERAPI HWINSTA WINAPI GetProcessWindowStation(VOID);
  749. #endif
  750. #endif
  751. #ifndef NOSECURITY
  752. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  753. WINUSERAPI WINBOOL WINAPI SetUserObjectSecurity(HANDLE hObj,PSECURITY_INFORMATION pSIRequested,PSECURITY_DESCRIPTOR pSID);
  754. WINUSERAPI WINBOOL WINAPI GetUserObjectSecurity(HANDLE hObj,PSECURITY_INFORMATION pSIRequested,PSECURITY_DESCRIPTOR pSID,DWORD nLength,LPDWORD lpnLengthNeeded);
  755. #endif
  756. #define UOI_FLAGS 1
  757. #define UOI_NAME 2
  758. #define UOI_TYPE 3
  759. #define UOI_USER_SID 4
  760. #if WINVER >= 0x0600
  761. #define UOI_HEAPSIZE 5
  762. #define UOI_IO 6
  763. #endif
  764. #define UOI_TIMERPROC_EXCEPTION_SUPPRESSION 7
  765. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  766. typedef struct tagUSEROBJECTFLAGS {
  767. WINBOOL fInherit;
  768. WINBOOL fReserved;
  769. DWORD dwFlags;
  770. } USEROBJECTFLAGS,*PUSEROBJECTFLAGS;
  771. #define GetUserObjectInformation __MINGW_NAME_AW(GetUserObjectInformation)
  772. #define SetUserObjectInformation __MINGW_NAME_AW(SetUserObjectInformation)
  773. WINUSERAPI WINBOOL WINAPI GetUserObjectInformationA(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength,LPDWORD lpnLengthNeeded);
  774. WINUSERAPI WINBOOL WINAPI GetUserObjectInformationW(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength,LPDWORD lpnLengthNeeded);
  775. WINUSERAPI WINBOOL WINAPI SetUserObjectInformationA(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength);
  776. WINUSERAPI WINBOOL WINAPI SetUserObjectInformationW(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength);
  777. #endif
  778. #endif
  779. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  780. typedef struct tagWNDCLASSEXA {
  781. UINT cbSize;
  782. UINT style;
  783. WNDPROC lpfnWndProc;
  784. int cbClsExtra;
  785. int cbWndExtra;
  786. HINSTANCE hInstance;
  787. HICON hIcon;
  788. HCURSOR hCursor;
  789. HBRUSH hbrBackground;
  790. LPCSTR lpszMenuName;
  791. LPCSTR lpszClassName;
  792. HICON hIconSm;
  793. } WNDCLASSEXA,*PWNDCLASSEXA,*NPWNDCLASSEXA,*LPWNDCLASSEXA;
  794. typedef struct tagWNDCLASSEXW {
  795. UINT cbSize;
  796. UINT style;
  797. WNDPROC lpfnWndProc;
  798. int cbClsExtra;
  799. int cbWndExtra;
  800. HINSTANCE hInstance;
  801. HICON hIcon;
  802. HCURSOR hCursor;
  803. HBRUSH hbrBackground;
  804. LPCWSTR lpszMenuName;
  805. LPCWSTR lpszClassName;
  806. HICON hIconSm;
  807. } WNDCLASSEXW,*PWNDCLASSEXW,*NPWNDCLASSEXW,*LPWNDCLASSEXW;
  808. __MINGW_TYPEDEF_AW(WNDCLASSEX)
  809. __MINGW_TYPEDEF_AW(PWNDCLASSEX)
  810. __MINGW_TYPEDEF_AW(NPWNDCLASSEX)
  811. __MINGW_TYPEDEF_AW(LPWNDCLASSEX)
  812. typedef struct tagWNDCLASSA {
  813. UINT style;
  814. WNDPROC lpfnWndProc;
  815. int cbClsExtra;
  816. int cbWndExtra;
  817. HINSTANCE hInstance;
  818. HICON hIcon;
  819. HCURSOR hCursor;
  820. HBRUSH hbrBackground;
  821. LPCSTR lpszMenuName;
  822. LPCSTR lpszClassName;
  823. } WNDCLASSA,*PWNDCLASSA,*NPWNDCLASSA,*LPWNDCLASSA;
  824. typedef struct tagWNDCLASSW {
  825. UINT style;
  826. WNDPROC lpfnWndProc;
  827. int cbClsExtra;
  828. int cbWndExtra;
  829. HINSTANCE hInstance;
  830. HICON hIcon;
  831. HCURSOR hCursor;
  832. HBRUSH hbrBackground;
  833. LPCWSTR lpszMenuName;
  834. LPCWSTR lpszClassName;
  835. } WNDCLASSW,*PWNDCLASSW,*NPWNDCLASSW,*LPWNDCLASSW;
  836. __MINGW_TYPEDEF_AW(WNDCLASS)
  837. __MINGW_TYPEDEF_AW(PWNDCLASS)
  838. __MINGW_TYPEDEF_AW(NPWNDCLASS)
  839. __MINGW_TYPEDEF_AW(LPWNDCLASS)
  840. WINUSERAPI WINBOOL WINAPI IsHungAppWindow(HWND hwnd);
  841. WINUSERAPI VOID WINAPI DisableProcessWindowsGhosting(VOID);
  842. #endif
  843. #ifndef NOMSG
  844. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  845. typedef struct tagMSG {
  846. HWND hwnd;
  847. UINT message;
  848. WPARAM wParam;
  849. LPARAM lParam;
  850. DWORD time;
  851. POINT pt;
  852. } MSG,*PMSG,*NPMSG,*LPMSG;
  853. #endif
  854. #define POINTSTOPOINT(pt,pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
  855. #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x),(short)((pt).y)))
  856. #define MAKEWPARAM(l,h) ((WPARAM)(DWORD)MAKELONG(l,h))
  857. #define MAKELPARAM(l,h) ((LPARAM)(DWORD)MAKELONG(l,h))
  858. #define MAKELRESULT(l,h) ((LRESULT)(DWORD)MAKELONG(l,h))
  859. #endif
  860. #ifndef NOWINOFFSETS
  861. #define GWL_WNDPROC (-4)
  862. #define GWL_HINSTANCE (-6)
  863. #define GWL_HWNDPARENT (-8)
  864. #define GWL_STYLE (-16)
  865. #define GWL_EXSTYLE (-20)
  866. #define GWL_USERDATA (-21)
  867. #define GWL_ID (-12)
  868. #ifdef _WIN64
  869. #undef GWL_WNDPROC
  870. #undef GWL_HINSTANCE
  871. #undef GWL_HWNDPARENT
  872. #undef GWL_USERDATA
  873. #endif
  874. #define GWLP_WNDPROC (-4)
  875. #define GWLP_HINSTANCE (-6)
  876. #define GWLP_HWNDPARENT (-8)
  877. #define GWLP_USERDATA (-21)
  878. #define GWLP_ID (-12)
  879. #define GCL_MENUNAME (-8)
  880. #define GCL_HBRBACKGROUND (-10)
  881. #define GCL_HCURSOR (-12)
  882. #define GCL_HICON (-14)
  883. #define GCL_HMODULE (-16)
  884. #define GCL_CBWNDEXTRA (-18)
  885. #define GCL_CBCLSEXTRA (-20)
  886. #define GCL_WNDPROC (-24)
  887. #define GCL_STYLE (-26)
  888. #define GCW_ATOM (-32)
  889. #define GCL_HICONSM (-34)
  890. #ifdef _WIN64
  891. #undef GCL_MENUNAME
  892. #undef GCL_HBRBACKGROUND
  893. #undef GCL_HCURSOR
  894. #undef GCL_HICON
  895. #undef GCL_HMODULE
  896. #undef GCL_WNDPROC
  897. #undef GCL_HICONSM
  898. #endif
  899. #define GCLP_MENUNAME (-8)
  900. #define GCLP_HBRBACKGROUND (-10)
  901. #define GCLP_HCURSOR (-12)
  902. #define GCLP_HICON (-14)
  903. #define GCLP_HMODULE (-16)
  904. #define GCLP_WNDPROC (-24)
  905. #define GCLP_HICONSM (-34)
  906. #endif
  907. #ifndef NOWINMESSAGES
  908. #define WM_NULL 0x0000
  909. #define WM_CREATE 0x0001
  910. #define WM_DESTROY 0x0002
  911. #define WM_MOVE 0x0003
  912. #define WM_SIZE 0x0005
  913. #define WM_ACTIVATE 0x0006
  914. #define WA_INACTIVE 0
  915. #define WA_ACTIVE 1
  916. #define WA_CLICKACTIVE 2
  917. #define WM_SETFOCUS 0x0007
  918. #define WM_KILLFOCUS 0x0008
  919. #define WM_ENABLE 0x000A
  920. #define WM_SETREDRAW 0x000B
  921. #define WM_SETTEXT 0x000C
  922. #define WM_GETTEXT 0x000D
  923. #define WM_GETTEXTLENGTH 0x000E
  924. #define WM_PAINT 0x000F
  925. #define WM_CLOSE 0x0010
  926. #ifndef _WIN32_WCE
  927. #define WM_QUERYENDSESSION 0x0011
  928. #define WM_QUERYOPEN 0x0013
  929. #define WM_ENDSESSION 0x0016
  930. #endif
  931. #define WM_QUIT 0x0012
  932. #define WM_ERASEBKGND 0x0014
  933. #define WM_SYSCOLORCHANGE 0x0015
  934. #define WM_SHOWWINDOW 0x0018
  935. #define WM_WININICHANGE 0x001A
  936. #define WM_SETTINGCHANGE WM_WININICHANGE
  937. #define WM_DEVMODECHANGE 0x001B
  938. #define WM_ACTIVATEAPP 0x001C
  939. #define WM_FONTCHANGE 0x001D
  940. #define WM_TIMECHANGE 0x001E
  941. #define WM_CANCELMODE 0x001F
  942. #define WM_SETCURSOR 0x0020
  943. #define WM_MOUSEACTIVATE 0x0021
  944. #define WM_CHILDACTIVATE 0x0022
  945. #define WM_QUEUESYNC 0x0023
  946. #define WM_GETMINMAXINFO 0x0024
  947. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  948. typedef struct tagMINMAXINFO {
  949. POINT ptReserved;
  950. POINT ptMaxSize;
  951. POINT ptMaxPosition;
  952. POINT ptMinTrackSize;
  953. POINT ptMaxTrackSize;
  954. } MINMAXINFO,*PMINMAXINFO,*LPMINMAXINFO;
  955. #endif
  956. #define WM_PAINTICON 0x0026
  957. #define WM_ICONERASEBKGND 0x0027
  958. #define WM_NEXTDLGCTL 0x0028
  959. #define WM_SPOOLERSTATUS 0x002A
  960. #define WM_DRAWITEM 0x002B
  961. #define WM_MEASUREITEM 0x002C
  962. #define WM_DELETEITEM 0x002D
  963. #define WM_VKEYTOITEM 0x002E
  964. #define WM_CHARTOITEM 0x002F
  965. #define WM_SETFONT 0x0030
  966. #define WM_GETFONT 0x0031
  967. #define WM_SETHOTKEY 0x0032
  968. #define WM_GETHOTKEY 0x0033
  969. #define WM_QUERYDRAGICON 0x0037
  970. #define WM_COMPAREITEM 0x0039
  971. #ifndef _WIN32_WCE
  972. #define WM_GETOBJECT 0x003D
  973. #endif
  974. #define WM_COMPACTING 0x0041
  975. #define WM_COMMNOTIFY 0x0044
  976. #define WM_WINDOWPOSCHANGING 0x0046
  977. #define WM_WINDOWPOSCHANGED 0x0047
  978. #define WM_POWER 0x0048
  979. #define PWR_OK 1
  980. #define PWR_FAIL (-1)
  981. #define PWR_SUSPENDREQUEST 1
  982. #define PWR_SUSPENDRESUME 2
  983. #define PWR_CRITICALRESUME 3
  984. #define WM_COPYDATA 0x004A
  985. #define WM_CANCELJOURNAL 0x004B
  986. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  987. typedef struct tagCOPYDATASTRUCT {
  988. ULONG_PTR dwData;
  989. DWORD cbData;
  990. PVOID lpData;
  991. } COPYDATASTRUCT,*PCOPYDATASTRUCT;
  992. typedef struct tagMDINEXTMENU {
  993. HMENU hmenuIn;
  994. HMENU hmenuNext;
  995. HWND hwndNext;
  996. } MDINEXTMENU,*PMDINEXTMENU,*LPMDINEXTMENU;
  997. #endif
  998. #define WM_NOTIFY 0x004E
  999. #define WM_INPUTLANGCHANGEREQUEST 0x0050
  1000. #define WM_INPUTLANGCHANGE 0x0051
  1001. #define WM_TCARD 0x0052
  1002. #define WM_HELP 0x0053
  1003. #define WM_USERCHANGED 0x0054
  1004. #define WM_NOTIFYFORMAT 0x0055
  1005. #define NFR_ANSI 1
  1006. #define NFR_UNICODE 2
  1007. #define NF_QUERY 3
  1008. #define NF_REQUERY 4
  1009. #define WM_CONTEXTMENU 0x007B
  1010. #define WM_STYLECHANGING 0x007C
  1011. #define WM_STYLECHANGED 0x007D
  1012. #define WM_DISPLAYCHANGE 0x007E
  1013. #define WM_GETICON 0x007F
  1014. #define WM_SETICON 0x0080
  1015. #define WM_NCCREATE 0x0081
  1016. #define WM_NCDESTROY 0x0082
  1017. #define WM_NCCALCSIZE 0x0083
  1018. #define WM_NCHITTEST 0x0084
  1019. #define WM_NCPAINT 0x0085
  1020. #define WM_NCACTIVATE 0x0086
  1021. #define WM_GETDLGCODE 0x0087
  1022. #ifndef _WIN32_WCE
  1023. #define WM_SYNCPAINT 0x0088
  1024. #endif
  1025. #define WM_NCMOUSEMOVE 0x00A0
  1026. #define WM_NCLBUTTONDOWN 0x00A1
  1027. #define WM_NCLBUTTONUP 0x00A2
  1028. #define WM_NCLBUTTONDBLCLK 0x00A3
  1029. #define WM_NCRBUTTONDOWN 0x00A4
  1030. #define WM_NCRBUTTONUP 0x00A5
  1031. #define WM_NCRBUTTONDBLCLK 0x00A6
  1032. #define WM_NCMBUTTONDOWN 0x00A7
  1033. #define WM_NCMBUTTONUP 0x00A8
  1034. #define WM_NCMBUTTONDBLCLK 0x00A9
  1035. #define WM_NCXBUTTONDOWN 0x00AB
  1036. #define WM_NCXBUTTONUP 0x00AC
  1037. #define WM_NCXBUTTONDBLCLK 0x00AD
  1038. #define WM_INPUT_DEVICE_CHANGE 0x00fe
  1039. #define WM_INPUT 0x00FF
  1040. #define WM_KEYFIRST 0x0100
  1041. #define WM_KEYDOWN 0x0100
  1042. #define WM_KEYUP 0x0101
  1043. #define WM_CHAR 0x0102
  1044. #define WM_DEADCHAR 0x0103
  1045. #define WM_SYSKEYDOWN 0x0104
  1046. #define WM_SYSKEYUP 0x0105
  1047. #define WM_SYSCHAR 0x0106
  1048. #define WM_SYSDEADCHAR 0x0107
  1049. #if _WIN32_WINNT >= 0x0501
  1050. #define WM_UNICHAR 0x0109
  1051. #define WM_KEYLAST 0x0109
  1052. #define UNICODE_NOCHAR 0xFFFF
  1053. #else
  1054. #define WM_KEYLAST 0x0108
  1055. #endif
  1056. #define WM_IME_STARTCOMPOSITION 0x010D
  1057. #define WM_IME_ENDCOMPOSITION 0x010E
  1058. #define WM_IME_COMPOSITION 0x010F
  1059. #define WM_IME_KEYLAST 0x010F
  1060. #define WM_INITDIALOG 0x0110
  1061. #define WM_COMMAND 0x0111
  1062. #define WM_SYSCOMMAND 0x0112
  1063. #define WM_TIMER 0x0113
  1064. #define WM_HSCROLL 0x0114
  1065. #define WM_VSCROLL 0x0115
  1066. #define WM_INITMENU 0x0116
  1067. #define WM_INITMENUPOPUP 0x0117
  1068. #define WM_MENUSELECT 0x011F
  1069. #if _WIN32_WINNT >= 0x0601
  1070. #define WM_GESTURE 0x0119
  1071. #define WM_GESTURENOTIFY 0x011A
  1072. #endif /* _WIN32_WINNT >= 0x0601 */
  1073. #define WM_MENUCHAR 0x0120
  1074. #define WM_ENTERIDLE 0x0121
  1075. #ifndef _WIN32_WCE
  1076. #define WM_MENURBUTTONUP 0x0122
  1077. #define WM_MENUDRAG 0x0123
  1078. #define WM_MENUGETOBJECT 0x0124
  1079. #define WM_UNINITMENUPOPUP 0x0125
  1080. #define WM_MENUCOMMAND 0x0126
  1081. #define WM_CHANGEUISTATE 0x0127
  1082. #define WM_UPDATEUISTATE 0x0128
  1083. #define WM_QUERYUISTATE 0x0129
  1084. #define UIS_SET 1
  1085. #define UIS_CLEAR 2
  1086. #define UIS_INITIALIZE 3
  1087. #define UISF_HIDEFOCUS 0x1
  1088. #define UISF_HIDEACCEL 0x2
  1089. #define UISF_ACTIVE 0x4
  1090. #endif
  1091. #define WM_CTLCOLORMSGBOX 0x0132
  1092. #define WM_CTLCOLOREDIT 0x0133
  1093. #define WM_CTLCOLORLISTBOX 0x0134
  1094. #define WM_CTLCOLORBTN 0x0135
  1095. #define WM_CTLCOLORDLG 0x0136
  1096. #define WM_CTLCOLORSCROLLBAR 0x0137
  1097. #define WM_CTLCOLORSTATIC 0x0138
  1098. #define MN_GETHMENU 0x01E1
  1099. #define WM_MOUSEFIRST 0x0200
  1100. #define WM_MOUSEMOVE 0x0200
  1101. #define WM_LBUTTONDOWN 0x0201
  1102. #define WM_LBUTTONUP 0x0202
  1103. #define WM_LBUTTONDBLCLK 0x0203
  1104. #define WM_RBUTTONDOWN 0x0204
  1105. #define WM_RBUTTONUP 0x0205
  1106. #define WM_RBUTTONDBLCLK 0x0206
  1107. #define WM_MBUTTONDOWN 0x0207
  1108. #define WM_MBUTTONUP 0x0208
  1109. #define WM_MBUTTONDBLCLK 0x0209
  1110. #define WM_MOUSEWHEEL 0x020A
  1111. #define WM_XBUTTONDOWN 0x020B
  1112. #define WM_XBUTTONUP 0x020C
  1113. #define WM_XBUTTONDBLCLK 0x020D
  1114. #if _WIN32_WINNT >= 0x0600
  1115. #define WM_MOUSEHWHEEL 0x020e
  1116. #endif
  1117. #if _WIN32_WINNT >= 0x0600
  1118. #define WM_MOUSELAST 0x020e
  1119. #elif _WIN32_WINNT >= 0x0500
  1120. #define WM_MOUSELAST 0x020d
  1121. #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  1122. #define WM_MOUSELAST 0x020a
  1123. #else
  1124. #define WM_MOUSELAST 0x0209
  1125. #endif
  1126. #define WHEEL_DELTA 120
  1127. #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
  1128. #define WHEEL_PAGESCROLL (UINT_MAX)
  1129. #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
  1130. #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam))
  1131. #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))
  1132. #define XBUTTON1 0x0001
  1133. #define XBUTTON2 0x0002
  1134. #define WM_PARENTNOTIFY 0x0210
  1135. #define WM_ENTERMENULOOP 0x0211
  1136. #define WM_EXITMENULOOP 0x0212
  1137. #define WM_NEXTMENU 0x0213
  1138. #define WM_SIZING 0x0214
  1139. #define WM_CAPTURECHANGED 0x0215
  1140. #define WM_MOVING 0x0216
  1141. #define WM_POWERBROADCAST 0x0218
  1142. #ifndef _WIN32_WCE
  1143. #define PBT_APMQUERYSUSPEND 0x0000
  1144. #define PBT_APMQUERYSTANDBY 0x0001
  1145. #define PBT_APMQUERYSUSPENDFAILED 0x0002
  1146. #define PBT_APMQUERYSTANDBYFAILED 0x0003
  1147. #define PBT_APMSUSPEND 0x0004
  1148. #define PBT_APMSTANDBY 0x0005
  1149. #define PBT_APMRESUMECRITICAL 0x0006
  1150. #define PBT_APMRESUMESUSPEND 0x0007
  1151. #define PBT_APMRESUMESTANDBY 0x0008
  1152. #define PBTF_APMRESUMEFROMFAILURE 0x00000001
  1153. #define PBT_APMBATTERYLOW 0x0009
  1154. #define PBT_APMPOWERSTATUSCHANGE 0x000A
  1155. #define PBT_APMOEMEVENT 0x000B
  1156. #define PBT_APMRESUMEAUTOMATIC 0x0012
  1157. #if _WIN32_WINNT >= 0x0502
  1158. #ifndef PBT_POWERSETTINGCHANGE
  1159. #define PBT_POWERSETTINGCHANGE 32787
  1160. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1161. typedef struct {
  1162. GUID PowerSetting;
  1163. DWORD DataLength;
  1164. UCHAR Data[1];
  1165. } POWERBROADCAST_SETTING,*PPOWERBROADCAST_SETTING;
  1166. #endif
  1167. #endif
  1168. #endif
  1169. #endif
  1170. #define WM_DEVICECHANGE 0x0219
  1171. #define WM_MDICREATE 0x0220
  1172. #define WM_MDIDESTROY 0x0221
  1173. #define WM_MDIACTIVATE 0x0222
  1174. #define WM_MDIRESTORE 0x0223
  1175. #define WM_MDINEXT 0x0224
  1176. #define WM_MDIMAXIMIZE 0x0225
  1177. #define WM_MDITILE 0x0226
  1178. #define WM_MDICASCADE 0x0227
  1179. #define WM_MDIICONARRANGE 0x0228
  1180. #define WM_MDIGETACTIVE 0x0229
  1181. #define WM_MDISETMENU 0x0230
  1182. #define WM_ENTERSIZEMOVE 0x0231
  1183. #define WM_EXITSIZEMOVE 0x0232
  1184. #define WM_DROPFILES 0x0233
  1185. #define WM_MDIREFRESHMENU 0x0234
  1186. #if WINVER >= 0x0602
  1187. #define WM_POINTERDEVICECHANGE 0x238
  1188. #define WM_POINTERDEVICEINRANGE 0x239
  1189. #define WM_POINTERDEVICEOUTOFRANGE 0x23a
  1190. #endif
  1191. #if WINVER >= 0x0601
  1192. #define WM_TOUCH 0x0240
  1193. #endif
  1194. #if WINVER >= 0x0602
  1195. #define WM_NCPOINTERUPDATE 0x0241
  1196. #define WM_NCPOINTERDOWN 0x0242
  1197. #define WM_NCPOINTERUP 0x0243
  1198. #define WM_POINTERUPDATE 0x0245
  1199. #define WM_POINTERDOWN 0x0246
  1200. #define WM_POINTERUP 0x0247
  1201. #define WM_POINTERENTER 0x0249
  1202. #define WM_POINTERLEAVE 0x024a
  1203. #define WM_POINTERACTIVATE 0x024b
  1204. #define WM_POINTERCAPTURECHANGED 0x024c
  1205. #define WM_TOUCHHITTESTING 0x024d
  1206. #define WM_POINTERWHEEL 0x024e
  1207. #define WM_POINTERHWHEEL 0x024f
  1208. #define DM_POINTERHITTEST 0x0250
  1209. #define WM_POINTERROUTEDTO 0x0251
  1210. #define WM_POINTERROUTEDAWAY 0x0252
  1211. #define WM_POINTERROUTEDRELEASED 0x0253
  1212. #endif
  1213. #define WM_IME_SETCONTEXT 0x0281
  1214. #define WM_IME_NOTIFY 0x0282
  1215. #define WM_IME_CONTROL 0x0283
  1216. #define WM_IME_COMPOSITIONFULL 0x0284
  1217. #define WM_IME_SELECT 0x0285
  1218. #define WM_IME_CHAR 0x0286
  1219. #define WM_IME_REQUEST 0x0288
  1220. #define WM_IME_KEYDOWN 0x0290
  1221. #define WM_IME_KEYUP 0x0291
  1222. #define WM_MOUSEHOVER 0x02A1
  1223. #define WM_MOUSELEAVE 0x02A3
  1224. #define WM_NCMOUSEHOVER 0x02A0
  1225. #define WM_NCMOUSELEAVE 0x02A2
  1226. #define WM_WTSSESSION_CHANGE 0x02B1
  1227. #define WM_TABLET_FIRST 0x02c0
  1228. #define WM_TABLET_LAST 0x02df
  1229. #if WINVER >= 0x0601
  1230. #define WM_DPICHANGED 0x02e0
  1231. #endif
  1232. #if WINVER >= 0x0605
  1233. #define WM_DPICHANGED_BEFOREPARENT 0x02e2
  1234. #define WM_DPICHANGED_AFTERPARENT 0x02e3
  1235. #define WM_GETDPISCALEDSIZE 0x02e4
  1236. #endif
  1237. #define WM_CUT 0x0300
  1238. #define WM_COPY 0x0301
  1239. #define WM_PASTE 0x0302
  1240. #define WM_CLEAR 0x0303
  1241. #define WM_UNDO 0x0304
  1242. #define WM_RENDERFORMAT 0x0305
  1243. #define WM_RENDERALLFORMATS 0x0306
  1244. #define WM_DESTROYCLIPBOARD 0x0307
  1245. #define WM_DRAWCLIPBOARD 0x0308
  1246. #define WM_PAINTCLIPBOARD 0x0309
  1247. #define WM_VSCROLLCLIPBOARD 0x030A
  1248. #define WM_SIZECLIPBOARD 0x030B
  1249. #define WM_ASKCBFORMATNAME 0x030C
  1250. #define WM_CHANGECBCHAIN 0x030D
  1251. #define WM_HSCROLLCLIPBOARD 0x030E
  1252. #define WM_QUERYNEWPALETTE 0x030F
  1253. #define WM_PALETTEISCHANGING 0x0310
  1254. #define WM_PALETTECHANGED 0x0311
  1255. #define WM_HOTKEY 0x0312
  1256. #define WM_PRINT 0x0317
  1257. #define WM_PRINTCLIENT 0x0318
  1258. #define WM_APPCOMMAND 0x0319
  1259. #define WM_THEMECHANGED 0x031A
  1260. #define WM_CLIPBOARDUPDATE 0x031d
  1261. #if _WIN32_WINNT >= 0x0600
  1262. #define WM_DWMCOMPOSITIONCHANGED 0x031e
  1263. #define WM_DWMNCRENDERINGCHANGED 0x031f
  1264. #define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
  1265. #define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
  1266. #endif
  1267. #if _WIN32_WINNT >= 0x0601
  1268. #define WM_DWMSENDICONICTHUMBNAIL 0x0323
  1269. #define WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x0326
  1270. #endif
  1271. #if WINVER >= 0x0600
  1272. #define WM_GETTITLEBARINFOEX 0x033f
  1273. #endif
  1274. #define WM_HANDHELDFIRST 0x0358
  1275. #define WM_HANDHELDLAST 0x035F
  1276. #define WM_AFXFIRST 0x0360
  1277. #define WM_AFXLAST 0x037F
  1278. #define WM_PENWINFIRST 0x0380
  1279. #define WM_PENWINLAST 0x038F
  1280. #define WM_APP 0x8000
  1281. #define WM_USER 0x0400
  1282. #define WMSZ_LEFT 1
  1283. #define WMSZ_RIGHT 2
  1284. #define WMSZ_TOP 3
  1285. #define WMSZ_TOPLEFT 4
  1286. #define WMSZ_TOPRIGHT 5
  1287. #define WMSZ_BOTTOM 6
  1288. #define WMSZ_BOTTOMLEFT 7
  1289. #define WMSZ_BOTTOMRIGHT 8
  1290. #ifndef NONCMESSAGES
  1291. #define HTERROR (-2)
  1292. #define HTTRANSPARENT (-1)
  1293. #define HTNOWHERE 0
  1294. #define HTCLIENT 1
  1295. #define HTCAPTION 2
  1296. #define HTSYSMENU 3
  1297. #define HTGROWBOX 4
  1298. #define HTSIZE HTGROWBOX
  1299. #define HTMENU 5
  1300. #define HTHSCROLL 6
  1301. #define HTVSCROLL 7
  1302. #define HTMINBUTTON 8
  1303. #define HTMAXBUTTON 9
  1304. #define HTLEFT 10
  1305. #define HTRIGHT 11
  1306. #define HTTOP 12
  1307. #define HTTOPLEFT 13
  1308. #define HTTOPRIGHT 14
  1309. #define HTBOTTOM 15
  1310. #define HTBOTTOMLEFT 16
  1311. #define HTBOTTOMRIGHT 17
  1312. #define HTBORDER 18
  1313. #define HTREDUCE HTMINBUTTON
  1314. #define HTZOOM HTMAXBUTTON
  1315. #define HTSIZEFIRST HTLEFT
  1316. #define HTSIZELAST HTBOTTOMRIGHT
  1317. #define HTOBJECT 19
  1318. #define HTCLOSE 20
  1319. #define HTHELP 21
  1320. #define SMTO_NORMAL 0x0000
  1321. #define SMTO_BLOCK 0x0001
  1322. #define SMTO_ABORTIFHUNG 0x0002
  1323. #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
  1324. #if WINVER >= 0x0600
  1325. #define SMTO_ERRORONEXIT 0x0020
  1326. #endif
  1327. #endif
  1328. #define MA_ACTIVATE 1
  1329. #define MA_ACTIVATEANDEAT 2
  1330. #define MA_NOACTIVATE 3
  1331. #define MA_NOACTIVATEANDEAT 4
  1332. #define ICON_SMALL 0
  1333. #define ICON_BIG 1
  1334. #define ICON_SMALL2 2
  1335. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1336. #define RegisterWindowMessage __MINGW_NAME_AW(RegisterWindowMessage)
  1337. WINUSERAPI UINT WINAPI RegisterWindowMessageA(LPCSTR lpString);
  1338. WINUSERAPI UINT WINAPI RegisterWindowMessageW(LPCWSTR lpString);
  1339. #endif
  1340. #define SIZE_RESTORED 0
  1341. #define SIZE_MINIMIZED 1
  1342. #define SIZE_MAXIMIZED 2
  1343. #define SIZE_MAXSHOW 3
  1344. #define SIZE_MAXHIDE 4
  1345. #define SIZENORMAL SIZE_RESTORED
  1346. #define SIZEICONIC SIZE_MINIMIZED
  1347. #define SIZEFULLSCREEN SIZE_MAXIMIZED
  1348. #define SIZEZOOMSHOW SIZE_MAXSHOW
  1349. #define SIZEZOOMHIDE SIZE_MAXHIDE
  1350. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1351. typedef struct tagWINDOWPOS {
  1352. HWND hwnd;
  1353. HWND hwndInsertAfter;
  1354. int x;
  1355. int y;
  1356. int cx;
  1357. int cy;
  1358. UINT flags;
  1359. } WINDOWPOS,*LPWINDOWPOS,*PWINDOWPOS;
  1360. typedef struct tagNCCALCSIZE_PARAMS {
  1361. RECT rgrc[3];
  1362. PWINDOWPOS lppos;
  1363. } NCCALCSIZE_PARAMS,*LPNCCALCSIZE_PARAMS;
  1364. #endif
  1365. #define WVR_ALIGNTOP 0x0010
  1366. #define WVR_ALIGNLEFT 0x0020
  1367. #define WVR_ALIGNBOTTOM 0x0040
  1368. #define WVR_ALIGNRIGHT 0x0080
  1369. #define WVR_HREDRAW 0x0100
  1370. #define WVR_VREDRAW 0x0200
  1371. #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW)
  1372. #define WVR_VALIDRECTS 0x0400
  1373. #ifndef NOKEYSTATES
  1374. #define MK_LBUTTON 0x0001
  1375. #define MK_RBUTTON 0x0002
  1376. #define MK_SHIFT 0x0004
  1377. #define MK_CONTROL 0x0008
  1378. #define MK_MBUTTON 0x0010
  1379. #define MK_XBUTTON1 0x0020
  1380. #define MK_XBUTTON2 0x0040
  1381. #endif
  1382. #ifndef NOTRACKMOUSEEVENT
  1383. #define TME_HOVER 0x00000001
  1384. #define TME_LEAVE 0x00000002
  1385. #define TME_NONCLIENT 0x00000010
  1386. #define TME_QUERY 0x40000000
  1387. #define TME_CANCEL 0x80000000
  1388. #define HOVER_DEFAULT 0xFFFFFFFF
  1389. #endif
  1390. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1391. typedef struct tagTRACKMOUSEEVENT {
  1392. DWORD cbSize;
  1393. DWORD dwFlags;
  1394. HWND hwndTrack;
  1395. DWORD dwHoverTime;
  1396. } TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT;
  1397. WINUSERAPI WINBOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
  1398. #endif
  1399. #endif
  1400. #ifndef NOWINSTYLES
  1401. #define WS_OVERLAPPED __MSABI_LONG(0x00000000)
  1402. #define WS_POPUP __MSABI_LONG(0x80000000)
  1403. #define WS_CHILD __MSABI_LONG(0x40000000)
  1404. #define WS_MINIMIZE __MSABI_LONG(0x20000000)
  1405. #define WS_VISIBLE __MSABI_LONG(0x10000000)
  1406. #define WS_DISABLED __MSABI_LONG(0x08000000)
  1407. #define WS_CLIPSIBLINGS __MSABI_LONG(0x04000000)
  1408. #define WS_CLIPCHILDREN __MSABI_LONG(0x02000000)
  1409. #define WS_MAXIMIZE __MSABI_LONG(0x01000000)
  1410. #define WS_CAPTION __MSABI_LONG(0x00C00000)
  1411. #define WS_BORDER __MSABI_LONG(0x00800000)
  1412. #define WS_DLGFRAME __MSABI_LONG(0x00400000)
  1413. #define WS_VSCROLL __MSABI_LONG(0x00200000)
  1414. #define WS_HSCROLL __MSABI_LONG(0x00100000)
  1415. #define WS_SYSMENU __MSABI_LONG(0x00080000)
  1416. #define WS_THICKFRAME __MSABI_LONG(0x00040000)
  1417. #define WS_GROUP __MSABI_LONG(0x00020000)
  1418. #define WS_TABSTOP __MSABI_LONG(0x00010000)
  1419. #define WS_MINIMIZEBOX __MSABI_LONG(0x00020000)
  1420. #define WS_MAXIMIZEBOX __MSABI_LONG(0x00010000)
  1421. #define WS_TILED WS_OVERLAPPED
  1422. #define WS_ICONIC WS_MINIMIZE
  1423. #define WS_SIZEBOX WS_THICKFRAME
  1424. #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
  1425. #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
  1426. #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
  1427. #define WS_CHILDWINDOW (WS_CHILD)
  1428. #define WS_EX_DLGMODALFRAME __MSABI_LONG(0x00000001)
  1429. #define WS_EX_NOPARENTNOTIFY __MSABI_LONG(0x00000004)
  1430. #define WS_EX_TOPMOST __MSABI_LONG(0x00000008)
  1431. #define WS_EX_ACCEPTFILES __MSABI_LONG(0x00000010)
  1432. #define WS_EX_TRANSPARENT __MSABI_LONG(0x00000020)
  1433. #define WS_EX_MDICHILD __MSABI_LONG(0x00000040)
  1434. #define WS_EX_TOOLWINDOW __MSABI_LONG(0x00000080)
  1435. #define WS_EX_WINDOWEDGE __MSABI_LONG(0x00000100)
  1436. #define WS_EX_CLIENTEDGE __MSABI_LONG(0x00000200)
  1437. #define WS_EX_CONTEXTHELP __MSABI_LONG(0x00000400)
  1438. #define WS_EX_RIGHT __MSABI_LONG(0x00001000)
  1439. #define WS_EX_LEFT __MSABI_LONG(0x00000000)
  1440. #define WS_EX_RTLREADING __MSABI_LONG(0x00002000)
  1441. #define WS_EX_LTRREADING __MSABI_LONG(0x00000000)
  1442. #define WS_EX_LEFTSCROLLBAR __MSABI_LONG(0x00004000)
  1443. #define WS_EX_RIGHTSCROLLBAR __MSABI_LONG(0x00000000)
  1444. #define WS_EX_CONTROLPARENT __MSABI_LONG(0x00010000)
  1445. #define WS_EX_STATICEDGE __MSABI_LONG(0x00020000)
  1446. #define WS_EX_APPWINDOW __MSABI_LONG(0x00040000)
  1447. #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
  1448. #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
  1449. #define WS_EX_LAYERED 0x00080000
  1450. #define WS_EX_NOINHERITLAYOUT __MSABI_LONG(0x00100000)
  1451. #if WINVER >= 0x0602
  1452. #define WS_EX_NOREDIRECTIONBITMAP __MSABI_LONG(0x00200000)
  1453. #endif
  1454. #define WS_EX_LAYOUTRTL __MSABI_LONG(0x00400000)
  1455. #define WS_EX_COMPOSITED __MSABI_LONG(0x02000000)
  1456. #define WS_EX_NOACTIVATE __MSABI_LONG(0x08000000)
  1457. #define CS_VREDRAW 0x0001
  1458. #define CS_HREDRAW 0x0002
  1459. #define CS_DBLCLKS 0x0008
  1460. #define CS_OWNDC 0x0020
  1461. #define CS_CLASSDC 0x0040
  1462. #define CS_PARENTDC 0x0080
  1463. #define CS_NOCLOSE 0x0200
  1464. #define CS_SAVEBITS 0x0800
  1465. #define CS_BYTEALIGNCLIENT 0x1000
  1466. #define CS_BYTEALIGNWINDOW 0x2000
  1467. #define CS_GLOBALCLASS 0x4000
  1468. #define CS_IME 0x00010000
  1469. #define CS_DROPSHADOW 0x00020000
  1470. #endif
  1471. #define PRF_CHECKVISIBLE __MSABI_LONG(0x00000001)
  1472. #define PRF_NONCLIENT __MSABI_LONG(0x00000002)
  1473. #define PRF_CLIENT __MSABI_LONG(0x00000004)
  1474. #define PRF_ERASEBKGND __MSABI_LONG(0x00000008)
  1475. #define PRF_CHILDREN __MSABI_LONG(0x00000010)
  1476. #define PRF_OWNED __MSABI_LONG(0x00000020)
  1477. #define BDR_RAISEDOUTER 0x0001
  1478. #define BDR_SUNKENOUTER 0x0002
  1479. #define BDR_RAISEDINNER 0x0004
  1480. #define BDR_SUNKENINNER 0x0008
  1481. #define BDR_OUTER (BDR_RAISEDOUTER | BDR_SUNKENOUTER)
  1482. #define BDR_INNER (BDR_RAISEDINNER | BDR_SUNKENINNER)
  1483. #define BDR_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
  1484. #define BDR_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
  1485. #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
  1486. #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
  1487. #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
  1488. #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)
  1489. #define BF_LEFT 0x0001
  1490. #define BF_TOP 0x0002
  1491. #define BF_RIGHT 0x0004
  1492. #define BF_BOTTOM 0x0008
  1493. #define BF_TOPLEFT (BF_TOP | BF_LEFT)
  1494. #define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
  1495. #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
  1496. #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
  1497. #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
  1498. #define BF_DIAGONAL 0x0010
  1499. #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
  1500. #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
  1501. #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
  1502. #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
  1503. #define BF_MIDDLE 0x0800
  1504. #define BF_SOFT 0x1000
  1505. #define BF_ADJUST 0x2000
  1506. #define BF_FLAT 0x4000
  1507. #define BF_MONO 0x8000
  1508. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1509. WINUSERAPI WINBOOL WINAPI DrawEdge(HDC hdc,LPRECT qrc,UINT edge,UINT grfFlags);
  1510. #endif
  1511. #define DFC_CAPTION 1
  1512. #define DFC_MENU 2
  1513. #define DFC_SCROLL 3
  1514. #define DFC_BUTTON 4
  1515. #define DFC_POPUPMENU 5
  1516. #define DFCS_CAPTIONCLOSE 0x0000
  1517. #define DFCS_CAPTIONMIN 0x0001
  1518. #define DFCS_CAPTIONMAX 0x0002
  1519. #define DFCS_CAPTIONRESTORE 0x0003
  1520. #define DFCS_CAPTIONHELP 0x0004
  1521. #define DFCS_MENUARROW 0x0000
  1522. #define DFCS_MENUCHECK 0x0001
  1523. #define DFCS_MENUBULLET 0x0002
  1524. #define DFCS_MENUARROWRIGHT 0x0004
  1525. #define DFCS_SCROLLUP 0x0000
  1526. #define DFCS_SCROLLDOWN 0x0001
  1527. #define DFCS_SCROLLLEFT 0x0002
  1528. #define DFCS_SCROLLRIGHT 0x0003
  1529. #define DFCS_SCROLLCOMBOBOX 0x0005
  1530. #define DFCS_SCROLLSIZEGRIP 0x0008
  1531. #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
  1532. #define DFCS_BUTTONCHECK 0x0000
  1533. #define DFCS_BUTTONRADIOIMAGE 0x0001
  1534. #define DFCS_BUTTONRADIOMASK 0x0002
  1535. #define DFCS_BUTTONRADIO 0x0004
  1536. #define DFCS_BUTTON3STATE 0x0008
  1537. #define DFCS_BUTTONPUSH 0x0010
  1538. #define DFCS_INACTIVE 0x0100
  1539. #define DFCS_PUSHED 0x0200
  1540. #define DFCS_CHECKED 0x0400
  1541. #define DFCS_TRANSPARENT 0x0800
  1542. #define DFCS_HOT 0x1000
  1543. #define DFCS_ADJUSTRECT 0x2000
  1544. #define DFCS_FLAT 0x4000
  1545. #define DFCS_MONO 0x8000
  1546. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1547. WINUSERAPI WINBOOL WINAPI DrawFrameControl(HDC,LPRECT,UINT,UINT);
  1548. #endif
  1549. #define DC_ACTIVE 0x0001
  1550. #define DC_SMALLCAP 0x0002
  1551. #define DC_ICON 0x0004
  1552. #define DC_TEXT 0x0008
  1553. #define DC_INBUTTON 0x0010
  1554. #define DC_GRADIENT 0x0020
  1555. #define DC_BUTTONS 0x1000
  1556. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1557. WINUSERAPI WINBOOL WINAPI DrawCaption(HWND hwnd,HDC hdc,CONST RECT *lprect,UINT flags);
  1558. #endif
  1559. #define IDANI_OPEN 1
  1560. #define IDANI_CAPTION 3
  1561. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1562. WINUSERAPI WINBOOL WINAPI DrawAnimatedRects(HWND hwnd,int idAni,CONST RECT *lprcFrom,CONST RECT *lprcTo);
  1563. #endif
  1564. #ifndef NOCLIPBOARD
  1565. #define CF_TEXT 1
  1566. #define CF_BITMAP 2
  1567. #define CF_METAFILEPICT 3
  1568. #define CF_SYLK 4
  1569. #define CF_DIF 5
  1570. #define CF_TIFF 6
  1571. #define CF_OEMTEXT 7
  1572. #define CF_DIB 8
  1573. #define CF_PALETTE 9
  1574. #define CF_PENDATA 10
  1575. #define CF_RIFF 11
  1576. #define CF_WAVE 12
  1577. #define CF_UNICODETEXT 13
  1578. #define CF_ENHMETAFILE 14
  1579. #define CF_HDROP 15
  1580. #define CF_LOCALE 16
  1581. #define CF_DIBV5 17
  1582. #if WINVER >= 0x0500
  1583. #define CF_MAX 18
  1584. #elif WINVER >= 0x0400
  1585. #define CF_MAX 17
  1586. #else
  1587. #define CF_MAX 15
  1588. #endif
  1589. #define CF_OWNERDISPLAY 0x0080
  1590. #define CF_DSPTEXT 0x0081
  1591. #define CF_DSPBITMAP 0x0082
  1592. #define CF_DSPMETAFILEPICT 0x0083
  1593. #define CF_DSPENHMETAFILE 0x008E
  1594. #define CF_PRIVATEFIRST 0x0200
  1595. #define CF_PRIVATELAST 0x02FF
  1596. #define CF_GDIOBJFIRST 0x0300
  1597. #define CF_GDIOBJLAST 0x03FF
  1598. #endif
  1599. #define FVIRTKEY TRUE
  1600. #define FNOINVERT 0x02
  1601. #define FSHIFT 0x04
  1602. #define FCONTROL 0x08
  1603. #define FALT 0x10
  1604. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1605. typedef struct tagACCEL {
  1606. BYTE fVirt;
  1607. WORD key;
  1608. WORD cmd;
  1609. } ACCEL,*LPACCEL;
  1610. typedef struct tagPAINTSTRUCT {
  1611. HDC hdc;
  1612. WINBOOL fErase;
  1613. RECT rcPaint;
  1614. WINBOOL fRestore;
  1615. WINBOOL fIncUpdate;
  1616. BYTE rgbReserved[32];
  1617. } PAINTSTRUCT,*PPAINTSTRUCT,*NPPAINTSTRUCT,*LPPAINTSTRUCT;
  1618. typedef struct tagCREATESTRUCTA {
  1619. LPVOID lpCreateParams;
  1620. HINSTANCE hInstance;
  1621. HMENU hMenu;
  1622. HWND hwndParent;
  1623. int cy;
  1624. int cx;
  1625. int y;
  1626. int x;
  1627. LONG style;
  1628. LPCSTR lpszName;
  1629. LPCSTR lpszClass;
  1630. DWORD dwExStyle;
  1631. } CREATESTRUCTA,*LPCREATESTRUCTA;
  1632. typedef struct tagCREATESTRUCTW {
  1633. LPVOID lpCreateParams;
  1634. HINSTANCE hInstance;
  1635. HMENU hMenu;
  1636. HWND hwndParent;
  1637. int cy;
  1638. int cx;
  1639. int y;
  1640. int x;
  1641. LONG style;
  1642. LPCWSTR lpszName;
  1643. LPCWSTR lpszClass;
  1644. DWORD dwExStyle;
  1645. } CREATESTRUCTW,*LPCREATESTRUCTW;
  1646. __MINGW_TYPEDEF_AW(CREATESTRUCT)
  1647. __MINGW_TYPEDEF_AW(LPCREATESTRUCT)
  1648. typedef struct tagWINDOWPLACEMENT {
  1649. UINT length;
  1650. UINT flags;
  1651. UINT showCmd;
  1652. POINT ptMinPosition;
  1653. POINT ptMaxPosition;
  1654. RECT rcNormalPosition;
  1655. } WINDOWPLACEMENT;
  1656. typedef WINDOWPLACEMENT *PWINDOWPLACEMENT,*LPWINDOWPLACEMENT;
  1657. #endif
  1658. #define WPF_SETMINPOSITION 0x0001
  1659. #define WPF_RESTORETOMAXIMIZED 0x0002
  1660. #define WPF_ASYNCWINDOWPLACEMENT 0x0004
  1661. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  1662. typedef struct tagNMHDR {
  1663. HWND hwndFrom;
  1664. UINT_PTR idFrom;
  1665. UINT code;
  1666. } NMHDR;
  1667. #endif
  1668. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1669. typedef NMHDR *LPNMHDR;
  1670. typedef struct tagSTYLESTRUCT {
  1671. DWORD styleOld;
  1672. DWORD styleNew;
  1673. } STYLESTRUCT,*LPSTYLESTRUCT;
  1674. #endif
  1675. #define ODT_MENU 1
  1676. #define ODT_LISTBOX 2
  1677. #define ODT_COMBOBOX 3
  1678. #define ODT_BUTTON 4
  1679. #define ODT_STATIC 5
  1680. #define ODA_DRAWENTIRE 0x0001
  1681. #define ODA_SELECT 0x0002
  1682. #define ODA_FOCUS 0x0004
  1683. #define ODS_SELECTED 0x0001
  1684. #define ODS_GRAYED 0x0002
  1685. #define ODS_DISABLED 0x0004
  1686. #define ODS_CHECKED 0x0008
  1687. #define ODS_FOCUS 0x0010
  1688. #define ODS_DEFAULT 0x0020
  1689. #define ODS_COMBOBOXEDIT 0x1000
  1690. #define ODS_HOTLIGHT 0x0040
  1691. #define ODS_INACTIVE 0x0080
  1692. #define ODS_NOACCEL 0x0100
  1693. #define ODS_NOFOCUSRECT 0x0200
  1694. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1695. typedef struct tagMEASUREITEMSTRUCT {
  1696. UINT CtlType;
  1697. UINT CtlID;
  1698. UINT itemID;
  1699. UINT itemWidth;
  1700. UINT itemHeight;
  1701. ULONG_PTR itemData;
  1702. } MEASUREITEMSTRUCT,*PMEASUREITEMSTRUCT,*LPMEASUREITEMSTRUCT;
  1703. typedef struct tagDRAWITEMSTRUCT {
  1704. UINT CtlType;
  1705. UINT CtlID;
  1706. UINT itemID;
  1707. UINT itemAction;
  1708. UINT itemState;
  1709. HWND hwndItem;
  1710. HDC hDC;
  1711. RECT rcItem;
  1712. ULONG_PTR itemData;
  1713. } DRAWITEMSTRUCT,*PDRAWITEMSTRUCT,*LPDRAWITEMSTRUCT;
  1714. typedef struct tagDELETEITEMSTRUCT {
  1715. UINT CtlType;
  1716. UINT CtlID;
  1717. UINT itemID;
  1718. HWND hwndItem;
  1719. ULONG_PTR itemData;
  1720. } DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT;
  1721. typedef struct tagCOMPAREITEMSTRUCT {
  1722. UINT CtlType;
  1723. UINT CtlID;
  1724. HWND hwndItem;
  1725. UINT itemID1;
  1726. ULONG_PTR itemData1;
  1727. UINT itemID2;
  1728. ULONG_PTR itemData2;
  1729. DWORD dwLocaleId;
  1730. } COMPAREITEMSTRUCT,*PCOMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT;
  1731. #endif
  1732. #ifndef NOMSG
  1733. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1734. #define GetMessage __MINGW_NAME_AW(GetMessage)
  1735. #define DispatchMessage __MINGW_NAME_AW(DispatchMessage)
  1736. #define PeekMessage __MINGW_NAME_AW(PeekMessage)
  1737. WINUSERAPI WINBOOL WINAPI GetMessageA(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);
  1738. WINUSERAPI WINBOOL WINAPI GetMessageW(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);
  1739. WINUSERAPI WINBOOL WINAPI TranslateMessage(CONST MSG *lpMsg);
  1740. WINUSERAPI LRESULT WINAPI DispatchMessageA(CONST MSG *lpMsg);
  1741. WINUSERAPI LRESULT WINAPI DispatchMessageW(CONST MSG *lpMsg);
  1742. WINUSERAPI WINBOOL WINAPI SetMessageQueue(int cMessagesMax);
  1743. WINUSERAPI WINBOOL WINAPI PeekMessageA(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);
  1744. WINUSERAPI WINBOOL WINAPI PeekMessageW(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);
  1745. #endif
  1746. #define PM_NOREMOVE 0x0000
  1747. #define PM_REMOVE 0x0001
  1748. #define PM_NOYIELD 0x0002
  1749. #define PM_QS_INPUT (QS_INPUT << 16)
  1750. #define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
  1751. #define PM_QS_PAINT (QS_PAINT << 16)
  1752. #define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
  1753. #endif
  1754. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1755. WINUSERAPI WINBOOL WINAPI RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);
  1756. WINUSERAPI WINBOOL WINAPI UnregisterHotKey(HWND hWnd,int id);
  1757. #endif
  1758. #define MOD_ALT 0x0001
  1759. #define MOD_CONTROL 0x0002
  1760. #define MOD_SHIFT 0x0004
  1761. #define MOD_WIN 0x0008
  1762. #if WINVER >= 0x0601
  1763. #define MOD_NOREPEAT 0x4000
  1764. #endif
  1765. #define IDHOT_SNAPWINDOW (-1)
  1766. #define IDHOT_SNAPDESKTOP (-2)
  1767. #ifdef WIN_INTERNAL
  1768. #ifndef LSTRING
  1769. #define NOLSTRING
  1770. #endif
  1771. #ifndef LFILEIO
  1772. #define NOLFILEIO
  1773. #endif
  1774. #endif
  1775. #define ENDSESSION_CLOSEAPP 0x00000001
  1776. #define ENDSESSION_CRITICAL 0x40000000
  1777. #define ENDSESSION_LOGOFF 0x80000000
  1778. #define EWX_LOGOFF 0x00000000
  1779. #define EWX_SHUTDOWN 0x00000001
  1780. #define EWX_REBOOT 0x00000002
  1781. #define EWX_FORCE 0x00000004
  1782. #define EWX_POWEROFF 0x00000008
  1783. #define EWX_FORCEIFHUNG 0x00000010
  1784. #define EWX_QUICKRESOLVE 0x00000020
  1785. #if _WIN32_WINNT >= 0x0600
  1786. #define EWX_RESTARTAPPS 0x00000040
  1787. #endif
  1788. #define EWX_HYBRID_SHUTDOWN 0x00400000
  1789. #define EWX_BOOTOPTIONS 0x01000000
  1790. #define EWX_ARSO 0x04000000
  1791. #define EWX_CHECK_SAFE_FOR_SERVER 0x08000000
  1792. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1793. #define ExitWindows(dwReserved,Code) ExitWindowsEx(EWX_LOGOFF,0xFFFFFFFF)
  1794. #define SendMessage __MINGW_NAME_AW(SendMessage)
  1795. #define SendMessageTimeout __MINGW_NAME_AW(SendMessageTimeout)
  1796. #define SendNotifyMessage __MINGW_NAME_AW(SendNotifyMessage)
  1797. #define SendMessageCallback __MINGW_NAME_AW(SendMessageCallback)
  1798. WINUSERAPI WINBOOL WINAPI ExitWindowsEx(UINT uFlags,DWORD dwReason);
  1799. WINUSERAPI WINBOOL WINAPI SwapMouseButton(WINBOOL fSwap);
  1800. WINUSERAPI DWORD WINAPI GetMessagePos(VOID);
  1801. WINUSERAPI LONG WINAPI GetMessageTime(VOID);
  1802. WINUSERAPI LPARAM WINAPI GetMessageExtraInfo(VOID);
  1803. #if _WIN32_WINNT >= 0x0602
  1804. WINUSERAPI DWORD WINAPI GetUnpredictedMessagePos (VOID);
  1805. #endif
  1806. WINUSERAPI WINBOOL WINAPI IsWow64Message(VOID);
  1807. WINUSERAPI LPARAM WINAPI SetMessageExtraInfo(LPARAM lParam);
  1808. WINUSERAPI LRESULT WINAPI SendMessageA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
  1809. WINUSERAPI LRESULT WINAPI SendMessageW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
  1810. WINUSERAPI LRESULT WINAPI SendMessageTimeoutA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,UINT fuFlags,UINT uTimeout,PDWORD_PTR lpdwResult);
  1811. WINUSERAPI LRESULT WINAPI SendMessageTimeoutW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,UINT fuFlags,UINT uTimeout,PDWORD_PTR lpdwResult);
  1812. WINUSERAPI WINBOOL WINAPI SendNotifyMessageA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
  1813. WINUSERAPI WINBOOL WINAPI SendNotifyMessageW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
  1814. WINUSERAPI WINBOOL WINAPI SendMessageCallbackA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,SENDASYNCPROC lpResultCallBack,ULONG_PTR dwData);
  1815. WINUSERAPI WINBOOL WINAPI SendMessageCallbackW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,SENDASYNCPROC lpResultCallBack,ULONG_PTR dwData);
  1816. typedef struct {
  1817. UINT cbSize;
  1818. HDESK hdesk;
  1819. HWND hwnd;
  1820. LUID luid;
  1821. } BSMINFO,*PBSMINFO;
  1822. #define BroadcastSystemMessageEx __MINGW_NAME_AW(BroadcastSystemMessageEx)
  1823. #define BroadcastSystemMessage __MINGW_NAME_AW(BroadcastSystemMessage)
  1824. WINUSERAPI __LONG32 WINAPI BroadcastSystemMessageExA(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam,PBSMINFO pbsmInfo);
  1825. WINUSERAPI __LONG32 WINAPI BroadcastSystemMessageExW(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam,PBSMINFO pbsmInfo);
  1826. WINUSERAPI __LONG32 WINAPI BroadcastSystemMessageA(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam);
  1827. WINUSERAPI __LONG32 WINAPI BroadcastSystemMessageW(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam);
  1828. #endif
  1829. #define BSM_ALLCOMPONENTS 0x00000000
  1830. #define BSM_VXDS 0x00000001
  1831. #define BSM_NETDRIVER 0x00000002
  1832. #define BSM_INSTALLABLEDRIVERS 0x00000004
  1833. #define BSM_APPLICATIONS 0x00000008
  1834. #define BSM_ALLDESKTOPS 0x00000010
  1835. #define BSF_QUERY 0x00000001
  1836. #define BSF_IGNORECURRENTTASK 0x00000002
  1837. #define BSF_FLUSHDISK 0x00000004
  1838. #define BSF_NOHANG 0x00000008
  1839. #define BSF_POSTMESSAGE 0x00000010
  1840. #define BSF_FORCEIFHUNG 0x00000020
  1841. #define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
  1842. #define BSF_ALLOWSFW 0x00000080
  1843. #define BSF_SENDNOTIFYMESSAGE 0x00000100
  1844. #define BSF_RETURNHDESK 0x00000200
  1845. #define BSF_LUID 0x00000400
  1846. #define BROADCAST_QUERY_DENY 0x424D5144
  1847. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1848. typedef PVOID HDEVNOTIFY;
  1849. typedef HDEVNOTIFY *PHDEVNOTIFY;
  1850. #endif
  1851. #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
  1852. #define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001
  1853. #define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004
  1854. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1855. #define RegisterDeviceNotification __MINGW_NAME_AW(RegisterDeviceNotification)
  1856. #define PostMessage __MINGW_NAME_AW(PostMessage)
  1857. #define PostThreadMessage __MINGW_NAME_AW(PostThreadMessage)
  1858. #define PostAppMessage __MINGW_NAME_AW(PostAppMessage)
  1859. #define DefWindowProc __MINGW_NAME_AW(DefWindowProc)
  1860. #define CallWindowProc __MINGW_NAME_AW(CallWindowProc)
  1861. #define RegisterClass __MINGW_NAME_AW(RegisterClass)
  1862. #define UnregisterClass __MINGW_NAME_AW(UnregisterClass)
  1863. #define GetClassInfo __MINGW_NAME_AW(GetClassInfo)
  1864. #define RegisterClassEx __MINGW_NAME_AW(RegisterClassEx)
  1865. #define GetClassInfoEx __MINGW_NAME_AW(GetClassInfoEx)
  1866. #if _WIN32_WINNT >= 0x0502
  1867. #ifndef _HPOWERNOTIFY_DEF_
  1868. #define _HPOWERNOTIFY_DEF_
  1869. typedef HANDLE HPOWERNOTIFY;
  1870. typedef HPOWERNOTIFY *PHPOWERNOTIFY;
  1871. #endif
  1872. WINUSERAPI HPOWERNOTIFY WINAPI RegisterPowerSettingNotification (HANDLE hRecipient, LPCGUID PowerSettingGuid, DWORD Flags);
  1873. WINUSERAPI WINBOOL WINAPI UnregisterPowerSettingNotification (HPOWERNOTIFY Handle);
  1874. WINUSERAPI HPOWERNOTIFY WINAPI RegisterSuspendResumeNotification (HANDLE hRecipient, DWORD Flags);
  1875. WINUSERAPI WINBOOL WINAPI UnregisterSuspendResumeNotification (HPOWERNOTIFY Handle);
  1876. #endif
  1877. WINUSERAPI WINBOOL WINAPI PostMessageA (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1878. WINUSERAPI WINBOOL WINAPI PostMessageW (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1879. WINUSERAPI WINBOOL WINAPI PostThreadMessageA (DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);
  1880. WINUSERAPI WINBOOL WINAPI PostThreadMessageW (DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);
  1881. #define PostAppMessageA(idThread, wMsg, wParam, lParam) PostThreadMessageA ((DWORD)idThread, wMsg, wParam, lParam)
  1882. #define PostAppMessageW(idThread, wMsg, wParam, lParam) PostThreadMessageW ((DWORD)idThread, wMsg, wParam, lParam)
  1883. WINUSERAPI WINBOOL WINAPI AttachThreadInput (DWORD idAttach, DWORD idAttachTo, WINBOOL fAttach);
  1884. WINUSERAPI WINBOOL WINAPI ReplyMessage (LRESULT lResult);
  1885. WINUSERAPI WINBOOL WINAPI WaitMessage (VOID);
  1886. WINUSERAPI DWORD WINAPI WaitForInputIdle (HANDLE hProcess, DWORD dwMilliseconds);
  1887. WINUSERAPI LRESULT WINAPI DefWindowProcA (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1888. WINUSERAPI LRESULT WINAPI DefWindowProcW (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1889. WINUSERAPI VOID WINAPI PostQuitMessage (int nExitCode);
  1890. WINUSERAPI WINBOOL WINAPI InSendMessage (VOID);
  1891. WINUSERAPI DWORD WINAPI InSendMessageEx (LPVOID lpReserved);
  1892. WINUSERAPI UINT WINAPI GetDoubleClickTime (VOID);
  1893. WINUSERAPI WINBOOL WINAPI SetDoubleClickTime (UINT);
  1894. WINUSERAPI ATOM WINAPI RegisterClassA (CONST WNDCLASSA *lpWndClass);
  1895. WINUSERAPI ATOM WINAPI RegisterClassW (CONST WNDCLASSW *lpWndClass);
  1896. WINUSERAPI WINBOOL WINAPI UnregisterClassA (LPCSTR lpClassName, HINSTANCE hInstance);
  1897. WINUSERAPI WINBOOL WINAPI UnregisterClassW (LPCWSTR lpClassName, HINSTANCE hInstance);
  1898. WINUSERAPI WINBOOL WINAPI GetClassInfoA (HINSTANCE hInstance, LPCSTR lpClassName, LPWNDCLASSA lpWndClass);
  1899. WINUSERAPI WINBOOL WINAPI GetClassInfoW (HINSTANCE hInstance, LPCWSTR lpClassName, LPWNDCLASSW lpWndClass);
  1900. WINUSERAPI ATOM WINAPI RegisterClassExA (CONST WNDCLASSEXA *);
  1901. WINUSERAPI ATOM WINAPI RegisterClassExW (CONST WNDCLASSEXW *);
  1902. WINUSERAPI WINBOOL WINAPI GetClassInfoExA (HINSTANCE hInstance, LPCSTR lpszClass, LPWNDCLASSEXA lpwcx);
  1903. WINUSERAPI WINBOOL WINAPI GetClassInfoExW (HINSTANCE hInstance, LPCWSTR lpszClass, LPWNDCLASSEXW lpwcx);
  1904. #ifdef STRICT
  1905. WINUSERAPI LRESULT WINAPI CallWindowProcA (WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1906. WINUSERAPI LRESULT WINAPI CallWindowProcW (WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1907. #else
  1908. WINUSERAPI LRESULT WINAPI CallWindowProcA (FARPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1909. WINUSERAPI LRESULT WINAPI CallWindowProcW (FARPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  1910. #endif
  1911. #endif
  1912. #define CW_USEDEFAULT ((int)0x80000000)
  1913. #define HWND_BROADCAST ((HWND)0xffff)
  1914. #define HWND_MESSAGE ((HWND)-3)
  1915. #define HWND_DESKTOP ((HWND)0)
  1916. #define ISMEX_NOSEND 0x00000000
  1917. #define ISMEX_SEND 0x00000001
  1918. #define ISMEX_NOTIFY 0x00000002
  1919. #define ISMEX_CALLBACK 0x00000004
  1920. #define ISMEX_REPLIED 0x00000008
  1921. #if (_WIN32_WINNT >= 0x0502)
  1922. extern const GUID GUID_POWERSCHEME_PERSONALITY;
  1923. extern const GUID GUID_MIN_POWER_SAVINGS;
  1924. extern const GUID GUID_MAX_POWER_SAVINGS;
  1925. extern const GUID GUID_TYPICAL_POWER_SAVINGS;
  1926. extern const GUID GUID_ACDC_POWER_SOURCE;
  1927. extern const GUID GUID_BATTERY_PERCENTAGE_REMAINING;
  1928. extern const GUID GUID_IDLE_BACKGROUND_TASK;
  1929. extern const GUID GUID_SYSTEM_AWAYMODE;
  1930. extern const GUID GUID_MONITOR_POWER_ON;
  1931. #endif
  1932. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1933. WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
  1934. WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
  1935. WINUSERAPI WINBOOL WINAPI UnregisterDeviceNotification(HDEVNOTIFY Handle);
  1936. typedef BOOLEAN (WINAPI *PREGISTERCLASSNAMEW)(LPCWSTR);
  1937. #define CreateWindowEx __MINGW_NAME_AW(CreateWindowEx)
  1938. #define CreateWindow __MINGW_NAME_AW(CreateWindow)
  1939. WINUSERAPI HWND WINAPI CreateWindowExA(DWORD dwExStyle,LPCSTR lpClassName,LPCSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam);
  1940. WINUSERAPI HWND WINAPI CreateWindowExW(DWORD dwExStyle,LPCWSTR lpClassName,LPCWSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam);
  1941. #define CreateWindowA(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam) CreateWindowExA((DWORD)0,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam)
  1942. #define CreateWindowW(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam) CreateWindowExW((DWORD)0,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam)
  1943. WINUSERAPI WINBOOL WINAPI IsWindow(HWND hWnd);
  1944. WINUSERAPI WINBOOL WINAPI IsMenu(HMENU hMenu);
  1945. WINUSERAPI WINBOOL WINAPI IsChild(HWND hWndParent,HWND hWnd);
  1946. WINUSERAPI WINBOOL WINAPI DestroyWindow(HWND hWnd);
  1947. WINUSERAPI WINBOOL WINAPI ShowWindow(HWND hWnd,int nCmdShow);
  1948. WINUSERAPI WINBOOL WINAPI AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);
  1949. #endif
  1950. #if defined (_WINGDI_) && !defined (NOGDI)
  1951. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1952. WINUSERAPI WINBOOL WINAPI UpdateLayeredWindow (HWND hWnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags);
  1953. typedef struct tagUPDATELAYEREDWINDOWINFO {
  1954. DWORD cbSize;
  1955. HDC hdcDst;
  1956. const POINT *pptDst;
  1957. const SIZE *psize;
  1958. HDC hdcSrc;
  1959. const POINT *pptSrc;
  1960. COLORREF crKey;
  1961. const BLENDFUNCTION *pblend;
  1962. DWORD dwFlags;
  1963. const RECT *prcDirty;
  1964. } UPDATELAYEREDWINDOWINFO,*PUPDATELAYEREDWINDOWINFO;
  1965. #if _WIN32_WINNT < 0x0502
  1966. typedef
  1967. #endif
  1968. WINUSERAPI WINBOOL WINAPI UpdateLayeredWindowIndirect (HWND hWnd, const UPDATELAYEREDWINDOWINFO *pULWInfo);
  1969. #endif
  1970. #endif
  1971. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1972. WINUSERAPI WINBOOL WINAPI GetLayeredWindowAttributes (HWND hwnd, COLORREF *pcrKey, BYTE *pbAlpha, DWORD *pdwFlags);
  1973. #define PW_CLIENTONLY 0x00000001
  1974. #if _WIN32_WINNT >= 0x0603
  1975. #define PW_RENDERFULLCONTENT 0x00000002
  1976. #endif
  1977. WINUSERAPI WINBOOL WINAPI PrintWindow (HWND hwnd, HDC hdcBlt, UINT nFlags);
  1978. WINUSERAPI WINBOOL WINAPI SetLayeredWindowAttributes (HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
  1979. #endif
  1980. #define LWA_COLORKEY 0x00000001
  1981. #define LWA_ALPHA 0x00000002
  1982. #define ULW_COLORKEY 0x00000001
  1983. #define ULW_ALPHA 0x00000002
  1984. #define ULW_OPAQUE 0x00000004
  1985. #define ULW_EX_NORESIZE 0x00000008
  1986. #define FLASHW_STOP 0
  1987. #define FLASHW_CAPTION 0x00000001
  1988. #define FLASHW_TRAY 0x00000002
  1989. #define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY)
  1990. #define FLASHW_TIMER 0x00000004
  1991. #define FLASHW_TIMERNOFG 0x0000000c
  1992. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  1993. typedef struct {
  1994. UINT cbSize;
  1995. HWND hwnd;
  1996. DWORD dwFlags;
  1997. UINT uCount;
  1998. DWORD dwTimeout;
  1999. } FLASHWINFO,*PFLASHWINFO;
  2000. WINUSERAPI WINBOOL WINAPI ShowWindowAsync (HWND hWnd, int nCmdShow);
  2001. WINUSERAPI WINBOOL WINAPI FlashWindow (HWND hWnd, WINBOOL bInvert);
  2002. WINUSERAPI WINBOOL WINAPI FlashWindowEx (PFLASHWINFO pfwi);
  2003. WINUSERAPI WINBOOL WINAPI ShowOwnedPopups (HWND hWnd, WINBOOL fShow);
  2004. WINUSERAPI WINBOOL WINAPI OpenIcon (HWND hWnd);
  2005. WINUSERAPI WINBOOL WINAPI CloseWindow (HWND hWnd);
  2006. WINUSERAPI WINBOOL WINAPI MoveWindow (HWND hWnd, int X, int Y, int nWidth, int nHeight, WINBOOL bRepaint);
  2007. WINUSERAPI WINBOOL WINAPI SetWindowPos (HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
  2008. WINUSERAPI WINBOOL WINAPI GetWindowPlacement (HWND hWnd, WINDOWPLACEMENT *lpwndpl);
  2009. WINUSERAPI WINBOOL WINAPI SetWindowPlacement (HWND hWnd, CONST WINDOWPLACEMENT *lpwndpl);
  2010. #if _WIN32_WINNT >= 0x0601
  2011. #define WDA_NONE 0x00000000
  2012. #define WDA_MONITOR 0x00000001
  2013. #define WDA_EXCLUDEFROMCAPTURE 0x00000011
  2014. WINUSERAPI WINBOOL WINAPI GetWindowDisplayAffinity (HWND hWnd, DWORD *pdwAffinity);
  2015. WINUSERAPI WINBOOL WINAPI SetWindowDisplayAffinity (HWND hWnd, DWORD dwAffinity);
  2016. #endif
  2017. #endif
  2018. #ifndef NODEFERWINDOWPOS
  2019. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2020. WINUSERAPI HDWP WINAPI BeginDeferWindowPos (int nNumWindows);
  2021. WINUSERAPI HDWP WINAPI DeferWindowPos (HDWP hWinPosInfo, HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags);
  2022. WINUSERAPI WINBOOL WINAPI EndDeferWindowPos (HDWP hWinPosInfo);
  2023. #endif
  2024. #endif
  2025. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2026. WINUSERAPI WINBOOL WINAPI IsWindowVisible (HWND hWnd);
  2027. WINUSERAPI WINBOOL WINAPI IsIconic (HWND hWnd);
  2028. WINUSERAPI WINBOOL WINAPI AnyPopup (VOID);
  2029. WINUSERAPI WINBOOL WINAPI BringWindowToTop (HWND hWnd);
  2030. WINUSERAPI WINBOOL WINAPI IsZoomed (HWND hWnd);
  2031. #endif
  2032. #define SWP_NOSIZE 0x0001
  2033. #define SWP_NOMOVE 0x0002
  2034. #define SWP_NOZORDER 0x0004
  2035. #define SWP_NOREDRAW 0x0008
  2036. #define SWP_NOACTIVATE 0x0010
  2037. #define SWP_FRAMECHANGED 0x0020
  2038. #define SWP_SHOWWINDOW 0x0040
  2039. #define SWP_HIDEWINDOW 0x0080
  2040. #define SWP_NOCOPYBITS 0x0100
  2041. #define SWP_NOOWNERZORDER 0x0200
  2042. #define SWP_NOSENDCHANGING 0x0400
  2043. #define SWP_DRAWFRAME SWP_FRAMECHANGED
  2044. #define SWP_NOREPOSITION SWP_NOOWNERZORDER
  2045. #define SWP_DEFERERASE 0x2000
  2046. #define SWP_ASYNCWINDOWPOS 0x4000
  2047. #define HWND_TOP ((HWND)0)
  2048. #define HWND_BOTTOM ((HWND)1)
  2049. #define HWND_TOPMOST ((HWND)-1)
  2050. #define HWND_NOTOPMOST ((HWND)-2)
  2051. #ifndef NOCTLMGR
  2052. #include <pshpack2.h>
  2053. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  2054. typedef struct {
  2055. DWORD style;
  2056. DWORD dwExtendedStyle;
  2057. WORD cdit;
  2058. short x;
  2059. short y;
  2060. short cx;
  2061. short cy;
  2062. } DLGTEMPLATE;
  2063. #endif
  2064. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2065. typedef DLGTEMPLATE *LPDLGTEMPLATEA;
  2066. typedef DLGTEMPLATE *LPDLGTEMPLATEW;
  2067. __MINGW_TYPEDEF_AW(LPDLGTEMPLATE)
  2068. #endif
  2069. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  2070. typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
  2071. typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
  2072. __MINGW_TYPEDEF_AW(LPCDLGTEMPLATE)
  2073. #endif
  2074. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2075. typedef struct {
  2076. DWORD style;
  2077. DWORD dwExtendedStyle;
  2078. short x;
  2079. short y;
  2080. short cx;
  2081. short cy;
  2082. WORD id;
  2083. } DLGITEMTEMPLATE;
  2084. typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
  2085. typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
  2086. __MINGW_TYPEDEF_AW(PDLGITEMTEMPLATE)
  2087. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
  2088. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
  2089. __MINGW_TYPEDEF_AW(LPDLGITEMTEMPLATE)
  2090. #endif
  2091. #include <poppack.h>
  2092. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2093. #define CreateDialogParam __MINGW_NAME_AW(CreateDialogParam)
  2094. #define CreateDialogIndirectParam __MINGW_NAME_AW(CreateDialogIndirectParam)
  2095. #define CreateDialog __MINGW_NAME_AW(CreateDialog)
  2096. #define CreateDialogIndirect __MINGW_NAME_AW(CreateDialogIndirect)
  2097. #define DialogBoxParam __MINGW_NAME_AW(DialogBoxParam)
  2098. #define DialogBoxIndirectParam __MINGW_NAME_AW(DialogBoxIndirectParam)
  2099. #define DialogBox __MINGW_NAME_AW(DialogBox)
  2100. #define DialogBoxIndirect __MINGW_NAME_AW(DialogBoxIndirect)
  2101. #define SetDlgItemText __MINGW_NAME_AW(SetDlgItemText)
  2102. #define GetDlgItemText __MINGW_NAME_AW(GetDlgItemText)
  2103. #define SendDlgItemMessage __MINGW_NAME_AW(SendDlgItemMessage)
  2104. #define DefDlgProc __MINGW_NAME_AW(DefDlgProc)
  2105. WINUSERAPI HWND WINAPI CreateDialogParamA(HINSTANCE hInstance,LPCSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2106. WINUSERAPI HWND WINAPI CreateDialogParamW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2107. WINUSERAPI HWND WINAPI CreateDialogIndirectParamA(HINSTANCE hInstance,LPCDLGTEMPLATEA lpTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2108. WINUSERAPI HWND WINAPI CreateDialogIndirectParamW(HINSTANCE hInstance,LPCDLGTEMPLATEW lpTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2109. #define CreateDialogA(hInstance,lpName,hWndParent,lpDialogFunc) CreateDialogParamA(hInstance,lpName,hWndParent,lpDialogFunc,(LPARAM)0)
  2110. #define CreateDialogW(hInstance,lpName,hWndParent,lpDialogFunc) CreateDialogParamW(hInstance,lpName,hWndParent,lpDialogFunc,(LPARAM)0)
  2111. #define CreateDialogIndirectA(hInstance,lpTemplate,hWndParent,lpDialogFunc) CreateDialogIndirectParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2112. #define CreateDialogIndirectW(hInstance,lpTemplate,hWndParent,lpDialogFunc) CreateDialogIndirectParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2113. WINUSERAPI INT_PTR WINAPI DialogBoxParamA(HINSTANCE hInstance,LPCSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2114. WINUSERAPI INT_PTR WINAPI DialogBoxParamW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2115. WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamA(HINSTANCE hInstance,LPCDLGTEMPLATEA hDialogTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2116. WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamW(HINSTANCE hInstance,LPCDLGTEMPLATEW hDialogTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
  2117. #define DialogBoxA(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2118. #define DialogBoxW(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2119. #define DialogBoxIndirectA(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxIndirectParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2120. #define DialogBoxIndirectW(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxIndirectParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,(LPARAM)0)
  2121. WINUSERAPI WINBOOL WINAPI EndDialog(HWND hDlg,INT_PTR nResult);
  2122. WINUSERAPI HWND WINAPI GetDlgItem(HWND hDlg,int nIDDlgItem);
  2123. WINUSERAPI WINBOOL WINAPI SetDlgItemInt(HWND hDlg,int nIDDlgItem,UINT uValue,WINBOOL bSigned);
  2124. WINUSERAPI UINT WINAPI GetDlgItemInt(HWND hDlg,int nIDDlgItem,WINBOOL *lpTranslated,WINBOOL bSigned);
  2125. WINUSERAPI WINBOOL WINAPI SetDlgItemTextA(HWND hDlg,int nIDDlgItem,LPCSTR lpString);
  2126. WINUSERAPI WINBOOL WINAPI SetDlgItemTextW(HWND hDlg,int nIDDlgItem,LPCWSTR lpString);
  2127. WINUSERAPI UINT WINAPI GetDlgItemTextA(HWND hDlg,int nIDDlgItem,LPSTR lpString,int cchMax);
  2128. WINUSERAPI UINT WINAPI GetDlgItemTextW(HWND hDlg,int nIDDlgItem,LPWSTR lpString,int cchMax);
  2129. WINUSERAPI WINBOOL WINAPI CheckDlgButton(HWND hDlg,int nIDButton,UINT uCheck);
  2130. WINUSERAPI WINBOOL WINAPI CheckRadioButton(HWND hDlg,int nIDFirstButton,int nIDLastButton,int nIDCheckButton);
  2131. WINUSERAPI UINT WINAPI IsDlgButtonChecked(HWND hDlg,int nIDButton);
  2132. WINUSERAPI LRESULT WINAPI SendDlgItemMessageA(HWND hDlg,int nIDDlgItem,UINT Msg,WPARAM wParam,LPARAM lParam);
  2133. WINUSERAPI LRESULT WINAPI SendDlgItemMessageW(HWND hDlg,int nIDDlgItem,UINT Msg,WPARAM wParam,LPARAM lParam);
  2134. WINUSERAPI HWND WINAPI GetNextDlgGroupItem(HWND hDlg,HWND hCtl,WINBOOL bPrevious);
  2135. WINUSERAPI HWND WINAPI GetNextDlgTabItem(HWND hDlg,HWND hCtl,WINBOOL bPrevious);
  2136. WINUSERAPI int WINAPI GetDlgCtrlID(HWND hWnd);
  2137. WINUSERAPI __LONG32 WINAPI GetDialogBaseUnits(VOID);
  2138. WINUSERAPI LRESULT WINAPI DefDlgProcA(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam);
  2139. WINUSERAPI LRESULT WINAPI DefDlgProcW(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam);
  2140. #endif
  2141. typedef enum DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS {
  2142. DCDC_DEFAULT = 0x0000,
  2143. DCDC_DISABLE_FONT_UPDATE = 0x0001,
  2144. DCDC_DISABLE_RELAYOUT = 0x0002
  2145. } DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS;
  2146. WINBOOL WINAPI SetDialogControlDpiChangeBehavior(HWND hWnd, DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS mask, DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS values);
  2147. DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS WINAPI GetDialogControlDpiChangeBehavior(HWND hWnd);
  2148. typedef enum DIALOG_DPI_CHANGE_BEHAVIORS {
  2149. DDC_DEFAULT = 0x0000,
  2150. DDC_DISABLE_ALL = 0x0001,
  2151. DDC_DISABLE_RESIZE = 0x0002,
  2152. DDC_DISABLE_CONTROL_RELAYOUT = 0x0004
  2153. } DIALOG_DPI_CHANGE_BEHAVIORS;
  2154. WINBOOL WINAPI SetDialogDpiChangeBehavior(HWND hDlg, DIALOG_DPI_CHANGE_BEHAVIORS mask, DIALOG_DPI_CHANGE_BEHAVIORS values);
  2155. DIALOG_DPI_CHANGE_BEHAVIORS WINAPI GetDialogDpiChangeBehavior(HWND hDlg);
  2156. #define DLGWINDOWEXTRA 30
  2157. #endif /* !NOCTLMGR */
  2158. #ifndef NOMSG
  2159. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2160. #define CallMsgFilter __MINGW_NAME_AW(CallMsgFilter)
  2161. WINUSERAPI WINBOOL WINAPI CallMsgFilterA(LPMSG lpMsg,int nCode);
  2162. WINUSERAPI WINBOOL WINAPI CallMsgFilterW(LPMSG lpMsg,int nCode);
  2163. #endif
  2164. #endif
  2165. #ifndef NOCLIPBOARD
  2166. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2167. #define RegisterClipboardFormat __MINGW_NAME_AW(RegisterClipboardFormat)
  2168. #define GetClipboardFormatName __MINGW_NAME_AW(GetClipboardFormatName)
  2169. WINUSERAPI WINBOOL WINAPI OpenClipboard(HWND hWndNewOwner);
  2170. WINUSERAPI WINBOOL WINAPI CloseClipboard(VOID);
  2171. WINUSERAPI DWORD WINAPI GetClipboardSequenceNumber(VOID);
  2172. WINUSERAPI HWND WINAPI GetClipboardOwner(VOID);
  2173. WINUSERAPI HWND WINAPI SetClipboardViewer(HWND hWndNewViewer);
  2174. WINUSERAPI HWND WINAPI GetClipboardViewer(VOID);
  2175. WINUSERAPI WINBOOL WINAPI ChangeClipboardChain(HWND hWndRemove, HWND hWndNewNext);
  2176. WINUSERAPI HANDLE WINAPI SetClipboardData(UINT uFormat, HANDLE hMem);
  2177. WINUSERAPI HANDLE WINAPI GetClipboardData(UINT uFormat);
  2178. WINUSERAPI UINT WINAPI RegisterClipboardFormatA(LPCSTR lpszFormat);
  2179. WINUSERAPI UINT WINAPI RegisterClipboardFormatW(LPCWSTR lpszFormat);
  2180. WINUSERAPI int WINAPI CountClipboardFormats(VOID);
  2181. WINUSERAPI UINT WINAPI EnumClipboardFormats(UINT format);
  2182. WINUSERAPI int WINAPI GetClipboardFormatNameA(UINT format, LPSTR lpszFormatName, int cchMaxCount);
  2183. WINUSERAPI int WINAPI GetClipboardFormatNameW(UINT format, LPWSTR lpszFormatName, int cchMaxCount);
  2184. WINUSERAPI WINBOOL WINAPI EmptyClipboard(VOID);
  2185. WINUSERAPI WINBOOL WINAPI IsClipboardFormatAvailable(UINT format);
  2186. WINUSERAPI int WINAPI GetPriorityClipboardFormat(UINT *paFormatPriorityList, int cFormats);
  2187. WINUSERAPI HWND WINAPI GetOpenClipboardWindow(VOID);
  2188. #if WINVER >= 0x0600
  2189. WINUSERAPI WINBOOL WINAPI AddClipboardFormatListener (HWND hwnd);
  2190. WINUSERAPI WINBOOL WINAPI RemoveClipboardFormatListener (HWND hwnd);
  2191. WINUSERAPI WINBOOL WINAPI GetUpdatedClipboardFormats (PUINT lpuiFormats, UINT cFormats, PUINT pcFormatsOut);
  2192. #endif
  2193. #endif
  2194. #endif
  2195. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2196. #define CharToOem __MINGW_NAME_AW(CharToOem)
  2197. #define OemToChar __MINGW_NAME_AW(OemToChar)
  2198. #define CharToOemBuff __MINGW_NAME_AW(CharToOemBuff)
  2199. #define OemToCharBuff __MINGW_NAME_AW(OemToCharBuff)
  2200. #define CharUpper __MINGW_NAME_AW(CharUpper)
  2201. #define CharUpperBuff __MINGW_NAME_AW(CharUpperBuff)
  2202. #define CharLower __MINGW_NAME_AW(CharLower)
  2203. #define CharLowerBuff __MINGW_NAME_AW(CharLowerBuff)
  2204. #define CharNext __MINGW_NAME_AW(CharNext)
  2205. #define CharPrev __MINGW_NAME_AW(CharPrev)
  2206. WINUSERAPI WINBOOL WINAPI CharToOemA(LPCSTR lpszSrc,LPSTR lpszDst);
  2207. WINUSERAPI WINBOOL WINAPI CharToOemW(LPCWSTR lpszSrc,LPSTR lpszDst);
  2208. WINUSERAPI WINBOOL WINAPI OemToCharA(LPCSTR lpszSrc,LPSTR lpszDst);
  2209. WINUSERAPI WINBOOL WINAPI OemToCharW(LPCSTR lpszSrc,LPWSTR lpszDst);
  2210. WINUSERAPI WINBOOL WINAPI CharToOemBuffA(LPCSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
  2211. WINUSERAPI WINBOOL WINAPI CharToOemBuffW(LPCWSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
  2212. WINUSERAPI WINBOOL WINAPI OemToCharBuffA(LPCSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
  2213. WINUSERAPI WINBOOL WINAPI OemToCharBuffW(LPCSTR lpszSrc,LPWSTR lpszDst,DWORD cchDstLength);
  2214. WINUSERAPI LPSTR WINAPI CharUpperA(LPSTR lpsz);
  2215. WINUSERAPI LPWSTR WINAPI CharUpperW(LPWSTR lpsz);
  2216. WINUSERAPI DWORD WINAPI CharUpperBuffA(LPSTR lpsz,DWORD cchLength);
  2217. WINUSERAPI DWORD WINAPI CharUpperBuffW(LPWSTR lpsz,DWORD cchLength);
  2218. WINUSERAPI LPSTR WINAPI CharLowerA(LPSTR lpsz);
  2219. WINUSERAPI LPWSTR WINAPI CharLowerW(LPWSTR lpsz);
  2220. WINUSERAPI DWORD WINAPI CharLowerBuffA(LPSTR lpsz,DWORD cchLength);
  2221. WINUSERAPI DWORD WINAPI CharLowerBuffW(LPWSTR lpsz,DWORD cchLength);
  2222. WINUSERAPI LPSTR WINAPI CharNextA(LPCSTR lpsz);
  2223. WINUSERAPI LPWSTR WINAPI CharNextW(LPCWSTR lpsz);
  2224. WINUSERAPI LPSTR WINAPI CharPrevA(LPCSTR lpszStart,LPCSTR lpszCurrent);
  2225. WINUSERAPI LPWSTR WINAPI CharPrevW(LPCWSTR lpszStart,LPCWSTR lpszCurrent);
  2226. WINUSERAPI LPSTR WINAPI CharNextExA(WORD CodePage,LPCSTR lpCurrentChar,DWORD dwFlags);
  2227. WINUSERAPI LPSTR WINAPI CharPrevExA(WORD CodePage,LPCSTR lpStart,LPCSTR lpCurrentChar,DWORD dwFlags);
  2228. #endif
  2229. #define AnsiToOem CharToOemA
  2230. #define OemToAnsi OemToCharA
  2231. #define AnsiToOemBuff CharToOemBuffA
  2232. #define OemToAnsiBuff OemToCharBuffA
  2233. #define AnsiUpper CharUpperA
  2234. #define AnsiUpperBuff CharUpperBuffA
  2235. #define AnsiLower CharLowerA
  2236. #define AnsiLowerBuff CharLowerBuffA
  2237. #define AnsiNext CharNextA
  2238. #define AnsiPrev CharPrevA
  2239. #ifndef NOLANGUAGE
  2240. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2241. #define IsCharAlpha __MINGW_NAME_AW(IsCharAlpha)
  2242. #define IsCharAlphaNumeric __MINGW_NAME_AW(IsCharAlphaNumeric)
  2243. #define IsCharUpper __MINGW_NAME_AW(IsCharUpper)
  2244. #define IsCharLower __MINGW_NAME_AW(IsCharLower)
  2245. WINUSERAPI WINBOOL WINAPI IsCharAlphaA(CHAR ch);
  2246. WINUSERAPI WINBOOL WINAPI IsCharAlphaW(WCHAR ch);
  2247. WINUSERAPI WINBOOL WINAPI IsCharAlphaNumericA(CHAR ch);
  2248. WINUSERAPI WINBOOL WINAPI IsCharAlphaNumericW(WCHAR ch);
  2249. WINUSERAPI WINBOOL WINAPI IsCharUpperA(CHAR ch);
  2250. WINUSERAPI WINBOOL WINAPI IsCharUpperW(WCHAR ch);
  2251. WINUSERAPI WINBOOL WINAPI IsCharLowerA(CHAR ch);
  2252. WINUSERAPI WINBOOL WINAPI IsCharLowerW(WCHAR ch);
  2253. #endif
  2254. #endif
  2255. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2256. #define GetKeyNameText __MINGW_NAME_AW(GetKeyNameText)
  2257. #define VkKeyScan __MINGW_NAME_AW(VkKeyScan)
  2258. #define VkKeyScanEx __MINGW_NAME_AW(VkKeyScanEx)
  2259. WINUSERAPI HWND WINAPI SetFocus(HWND hWnd);
  2260. WINUSERAPI HWND WINAPI GetActiveWindow(VOID);
  2261. WINUSERAPI HWND WINAPI GetFocus(VOID);
  2262. WINUSERAPI UINT WINAPI GetKBCodePage(VOID);
  2263. WINUSERAPI SHORT WINAPI GetKeyState(int nVirtKey);
  2264. WINUSERAPI SHORT WINAPI GetAsyncKeyState(int vKey);
  2265. WINUSERAPI WINBOOL WINAPI GetKeyboardState(PBYTE lpKeyState);
  2266. WINUSERAPI WINBOOL WINAPI SetKeyboardState(LPBYTE lpKeyState);
  2267. WINUSERAPI int WINAPI GetKeyNameTextA(LONG lParam,LPSTR lpString,int cchSize);
  2268. WINUSERAPI int WINAPI GetKeyNameTextW(LONG lParam,LPWSTR lpString,int cchSize);
  2269. WINUSERAPI int WINAPI GetKeyboardType(int nTypeFlag);
  2270. WINUSERAPI int WINAPI ToAscii(UINT uVirtKey,UINT uScanCode,CONST BYTE *lpKeyState,LPWORD lpChar,UINT uFlags);
  2271. WINUSERAPI int WINAPI ToAsciiEx(UINT uVirtKey,UINT uScanCode,CONST BYTE *lpKeyState,LPWORD lpChar,UINT uFlags,HKL dwhkl);
  2272. WINUSERAPI int WINAPI ToUnicode(UINT wVirtKey,UINT wScanCode,CONST BYTE *lpKeyState,LPWSTR pwszBuff,int cchBuff,UINT wFlags);
  2273. WINUSERAPI DWORD WINAPI OemKeyScan(WORD wOemChar);
  2274. WINUSERAPI SHORT WINAPI VkKeyScanA(CHAR ch);
  2275. WINUSERAPI SHORT WINAPI VkKeyScanW(WCHAR ch);
  2276. WINUSERAPI SHORT WINAPI VkKeyScanExA(CHAR ch,HKL dwhkl);
  2277. WINUSERAPI SHORT WINAPI VkKeyScanExW(WCHAR ch,HKL dwhkl);
  2278. WINUSERAPI VOID WINAPI keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,ULONG_PTR dwExtraInfo);
  2279. #endif
  2280. #define KEYEVENTF_EXTENDEDKEY 0x0001
  2281. #define KEYEVENTF_KEYUP 0x0002
  2282. #define KEYEVENTF_UNICODE 0x0004
  2283. #define KEYEVENTF_SCANCODE 0x0008
  2284. #define MOUSEEVENTF_MOVE 0x0001
  2285. #define MOUSEEVENTF_LEFTDOWN 0x0002
  2286. #define MOUSEEVENTF_LEFTUP 0x0004
  2287. #define MOUSEEVENTF_RIGHTDOWN 0x0008
  2288. #define MOUSEEVENTF_RIGHTUP 0x0010
  2289. #define MOUSEEVENTF_MIDDLEDOWN 0x0020
  2290. #define MOUSEEVENTF_MIDDLEUP 0x0040
  2291. #define MOUSEEVENTF_XDOWN 0x0080
  2292. #define MOUSEEVENTF_XUP 0x0100
  2293. #define MOUSEEVENTF_WHEEL 0x0800
  2294. #if _WIN32_WINNT >= 0x0600
  2295. #define MOUSEEVENTF_HWHEEL 0x01000
  2296. #endif
  2297. #if WINVER >= 0x0600
  2298. #define MOUSEEVENTF_MOVE_NOCOALESCE 0x2000
  2299. #endif
  2300. #define MOUSEEVENTF_VIRTUALDESK 0x4000
  2301. #define MOUSEEVENTF_ABSOLUTE 0x8000
  2302. #define INPUT_MOUSE 0
  2303. #define INPUT_KEYBOARD 1
  2304. #define INPUT_HARDWARE 2
  2305. #if WINVER >= 0x0601
  2306. #define TOUCH_COORD_TO_PIXEL(l) ((l) / 100)
  2307. #define TOUCHEVENTF_MOVE 0x0001
  2308. #define TOUCHEVENTF_DOWN 0x0002
  2309. #define TOUCHEVENTF_UP 0x0004
  2310. #define TOUCHEVENTF_INRANGE 0x0008
  2311. #define TOUCHEVENTF_PRIMARY 0x0010
  2312. #define TOUCHEVENTF_NOCOALESCE 0x0020
  2313. #define TOUCHEVENTF_PEN 0x0040
  2314. #define TOUCHEVENTF_PALM 0x0080
  2315. #define TOUCHINPUTMASKF_TIMEFROMSYSTEM 0x0001
  2316. #define TOUCHINPUTMASKF_EXTRAINFO 0x0002
  2317. #define TOUCHINPUTMASKF_CONTACTAREA 0x0004
  2318. #define TWF_FINETOUCH (0x00000001)
  2319. #define TWF_WANTPALM (0x00000002)
  2320. #endif
  2321. #if WINVER >= 0x0602
  2322. #define POINTER_FLAG_NONE 0x00000000
  2323. #define POINTER_FLAG_NEW 0x00000001
  2324. #define POINTER_FLAG_INRANGE 0x00000002
  2325. #define POINTER_FLAG_INCONTACT 0x00000004
  2326. #define POINTER_FLAG_FIRSTBUTTON 0x00000010
  2327. #define POINTER_FLAG_SECONDBUTTON 0x00000020
  2328. #define POINTER_FLAG_THIRDBUTTON 0x00000040
  2329. #define POINTER_FLAG_FOURTHBUTTON 0x00000080
  2330. #define POINTER_FLAG_FIFTHBUTTON 0x00000100
  2331. #define POINTER_FLAG_PRIMARY 0x00002000
  2332. #define POINTER_FLAG_CONFIDENCE 0x00004000
  2333. #define POINTER_FLAG_CANCELED 0x00008000
  2334. #define POINTER_FLAG_DOWN 0x00010000
  2335. #define POINTER_FLAG_UPDATE 0x00020000
  2336. #define POINTER_FLAG_UP 0x00040000
  2337. #define POINTER_FLAG_WHEEL 0x00080000
  2338. #define POINTER_FLAG_HWHEEL 0x00100000
  2339. #define POINTER_FLAG_CAPTURECHANGED 0x00200000
  2340. #define POINTER_FLAG_HASTRANSFORM 0x00400000
  2341. #define POINTER_MOD_SHIFT (0x0004)
  2342. #define POINTER_MOD_CTRL (0x0008)
  2343. #define TOUCH_FLAG_NONE 0x00000000
  2344. #define TOUCH_MASK_NONE 0x00000000
  2345. #define TOUCH_MASK_CONTACTAREA 0x00000001
  2346. #define TOUCH_MASK_ORIENTATION 0x00000002
  2347. #define TOUCH_MASK_PRESSURE 0x00000004
  2348. #define PEN_FLAG_NONE 0x00000000
  2349. #define PEN_FLAG_BARREL 0x00000001
  2350. #define PEN_FLAG_INVERTED 0x00000002
  2351. #define PEN_FLAG_ERASER 0x00000004
  2352. #define PEN_MASK_NONE 0x00000000
  2353. #define PEN_MASK_PRESSURE 0x00000001
  2354. #define PEN_MASK_ROTATION 0x00000002
  2355. #define PEN_MASK_TILT_X 0x00000004
  2356. #define PEN_MASK_TILT_Y 0x00000008
  2357. #define POINTER_MESSAGE_FLAG_NEW 0x00000001
  2358. #define POINTER_MESSAGE_FLAG_INRANGE 0x00000002
  2359. #define POINTER_MESSAGE_FLAG_INCONTACT 0x00000004
  2360. #define POINTER_MESSAGE_FLAG_FIRSTBUTTON 0x00000010
  2361. #define POINTER_MESSAGE_FLAG_SECONDBUTTON 0x00000020
  2362. #define POINTER_MESSAGE_FLAG_THIRDBUTTON 0x00000040
  2363. #define POINTER_MESSAGE_FLAG_FOURTHBUTTON 0x00000080
  2364. #define POINTER_MESSAGE_FLAG_FIFTHBUTTON 0x00000100
  2365. #define POINTER_MESSAGE_FLAG_PRIMARY 0x00002000
  2366. #define POINTER_MESSAGE_FLAG_CONFIDENCE 0x00004000
  2367. #define POINTER_MESSAGE_FLAG_CANCELED 0x00008000
  2368. #define GET_POINTERID_WPARAM(wParam) (LOWORD (wParam))
  2369. #define IS_POINTER_FLAG_SET_WPARAM(wParam, flag) (((DWORD)HIWORD (wParam) &(flag)) == (flag))
  2370. #define IS_POINTER_NEW_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_NEW)
  2371. #define IS_POINTER_INRANGE_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_INRANGE)
  2372. #define IS_POINTER_INCONTACT_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_INCONTACT)
  2373. #define IS_POINTER_FIRSTBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_FIRSTBUTTON)
  2374. #define IS_POINTER_SECONDBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_SECONDBUTTON)
  2375. #define IS_POINTER_THIRDBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_THIRDBUTTON)
  2376. #define IS_POINTER_FOURTHBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_FOURTHBUTTON)
  2377. #define IS_POINTER_FIFTHBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_FIFTHBUTTON)
  2378. #define IS_POINTER_PRIMARY_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_PRIMARY)
  2379. #define HAS_POINTER_CONFIDENCE_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_CONFIDENCE)
  2380. #define IS_POINTER_CANCELED_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM (wParam, POINTER_MESSAGE_FLAG_CANCELED)
  2381. #define PA_ACTIVATE MA_ACTIVATE
  2382. #define PA_NOACTIVATE MA_NOACTIVATE
  2383. #define MAX_TOUCH_COUNT 256
  2384. #define TOUCH_FEEDBACK_DEFAULT 0x1
  2385. #define TOUCH_FEEDBACK_INDIRECT 0x2
  2386. #define TOUCH_FEEDBACK_NONE 0x3
  2387. #define TOUCH_HIT_TESTING_DEFAULT 0x0
  2388. #define TOUCH_HIT_TESTING_CLIENT 0x1
  2389. #define TOUCH_HIT_TESTING_NONE 0x2
  2390. #define TOUCH_HIT_TESTING_PROXIMITY_CLOSEST 0x0
  2391. #define TOUCH_HIT_TESTING_PROXIMITY_FARTHEST 0xfff
  2392. #define GWFS_INCLUDE_ANCESTORS 0x00000001
  2393. #endif
  2394. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2395. WINUSERAPI VOID WINAPI mouse_event(DWORD dwFlags,DWORD dx,DWORD dy,DWORD dwData,ULONG_PTR dwExtraInfo);
  2396. typedef struct tagMOUSEINPUT {
  2397. LONG dx;
  2398. LONG dy;
  2399. DWORD mouseData;
  2400. DWORD dwFlags;
  2401. DWORD time;
  2402. ULONG_PTR dwExtraInfo;
  2403. } MOUSEINPUT,*PMOUSEINPUT,*LPMOUSEINPUT;
  2404. typedef struct tagKEYBDINPUT {
  2405. WORD wVk;
  2406. WORD wScan;
  2407. DWORD dwFlags;
  2408. DWORD time;
  2409. ULONG_PTR dwExtraInfo;
  2410. } KEYBDINPUT,*PKEYBDINPUT,*LPKEYBDINPUT;
  2411. typedef struct tagHARDWAREINPUT {
  2412. DWORD uMsg;
  2413. WORD wParamL;
  2414. WORD wParamH;
  2415. } HARDWAREINPUT,*PHARDWAREINPUT,*LPHARDWAREINPUT;
  2416. typedef struct tagINPUT {
  2417. DWORD type;
  2418. __C89_NAMELESS union {
  2419. MOUSEINPUT mi;
  2420. KEYBDINPUT ki;
  2421. HARDWAREINPUT hi;
  2422. } DUMMYUNIONNAME;
  2423. } INPUT,*PINPUT,*LPINPUT;
  2424. WINUSERAPI UINT WINAPI SendInput(UINT cInputs,LPINPUT pInputs,int cbSize);
  2425. #if WINVER >= 0x0601
  2426. DECLARE_HANDLE (HTOUCHINPUT);
  2427. typedef struct tagTOUCHINPUT {
  2428. LONG x;
  2429. LONG y;
  2430. HANDLE hSource;
  2431. DWORD dwID;
  2432. DWORD dwFlags;
  2433. DWORD dwMask;
  2434. DWORD dwTime;
  2435. ULONG_PTR dwExtraInfo;
  2436. DWORD cxContact;
  2437. DWORD cyContact;
  2438. } TOUCHINPUT,*PTOUCHINPUT;
  2439. typedef const TOUCHINPUT *PCTOUCHINPUT;
  2440. WINUSERAPI WINBOOL WINAPI GetTouchInputInfo (HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize);
  2441. WINUSERAPI WINBOOL WINAPI CloseTouchInputHandle (HTOUCHINPUT hTouchInput);
  2442. WINUSERAPI WINBOOL WINAPI RegisterTouchWindow (HWND hwnd, ULONG ulFlags);
  2443. WINUSERAPI WINBOOL WINAPI UnregisterTouchWindow (HWND hwnd);
  2444. WINUSERAPI WINBOOL WINAPI IsTouchWindow (HWND hwnd, PULONG pulFlags);
  2445. #endif
  2446. #if WINVER >= 0x0602
  2447. typedef DWORD POINTER_INPUT_TYPE;
  2448. typedef UINT32 POINTER_FLAGS;
  2449. typedef UINT32 TOUCH_FLAGS;
  2450. typedef UINT32 TOUCH_MASK;
  2451. typedef UINT32 PEN_FLAGS;
  2452. typedef UINT32 PEN_MASK;
  2453. enum tagPOINTER_INPUT_TYPE {
  2454. PT_POINTER = 0x00000001,
  2455. PT_TOUCH = 0x00000002,
  2456. PT_PEN = 0x00000003,
  2457. PT_MOUSE = 0x00000004
  2458. #if WINVER >= 0x0603
  2459. ,PT_TOUCHPAD = 0x00000005
  2460. #endif
  2461. };
  2462. typedef enum tagFEEDBACK_TYPE {
  2463. FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1,
  2464. FEEDBACK_PEN_BARRELVISUALIZATION = 2,
  2465. FEEDBACK_PEN_TAP = 3,
  2466. FEEDBACK_PEN_DOUBLETAP = 4,
  2467. FEEDBACK_PEN_PRESSANDHOLD = 5,
  2468. FEEDBACK_PEN_RIGHTTAP = 6,
  2469. FEEDBACK_TOUCH_TAP = 7,
  2470. FEEDBACK_TOUCH_DOUBLETAP = 8,
  2471. FEEDBACK_TOUCH_PRESSANDHOLD = 9,
  2472. FEEDBACK_TOUCH_RIGHTTAP = 10,
  2473. FEEDBACK_GESTURE_PRESSANDTAP = 11,
  2474. FEEDBACK_MAX = 0xffffffff
  2475. } FEEDBACK_TYPE;
  2476. typedef enum tagPOINTER_BUTTON_CHANGE_TYPE {
  2477. POINTER_CHANGE_NONE,
  2478. POINTER_CHANGE_FIRSTBUTTON_DOWN,
  2479. POINTER_CHANGE_FIRSTBUTTON_UP,
  2480. POINTER_CHANGE_SECONDBUTTON_DOWN,
  2481. POINTER_CHANGE_SECONDBUTTON_UP,
  2482. POINTER_CHANGE_THIRDBUTTON_DOWN,
  2483. POINTER_CHANGE_THIRDBUTTON_UP,
  2484. POINTER_CHANGE_FOURTHBUTTON_DOWN,
  2485. POINTER_CHANGE_FOURTHBUTTON_UP,
  2486. POINTER_CHANGE_FIFTHBUTTON_DOWN,
  2487. POINTER_CHANGE_FIFTHBUTTON_UP,
  2488. } POINTER_BUTTON_CHANGE_TYPE;
  2489. typedef struct tagPOINTER_INFO {
  2490. POINTER_INPUT_TYPE pointerType;
  2491. UINT32 pointerId;
  2492. UINT32 frameId;
  2493. POINTER_FLAGS pointerFlags;
  2494. HANDLE sourceDevice;
  2495. HWND hwndTarget;
  2496. POINT ptPixelLocation;
  2497. POINT ptHimetricLocation;
  2498. POINT ptPixelLocationRaw;
  2499. POINT ptHimetricLocationRaw;
  2500. DWORD dwTime;
  2501. UINT32 historyCount;
  2502. INT32 InputData;
  2503. DWORD dwKeyStates;
  2504. UINT64 PerformanceCount;
  2505. POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
  2506. } POINTER_INFO;
  2507. typedef struct tagPOINTER_TOUCH_INFO {
  2508. POINTER_INFO pointerInfo;
  2509. TOUCH_FLAGS touchFlags;
  2510. TOUCH_MASK touchMask;
  2511. RECT rcContact;
  2512. RECT rcContactRaw;
  2513. UINT32 orientation;
  2514. UINT32 pressure;
  2515. } POINTER_TOUCH_INFO;
  2516. typedef struct tagPOINTER_PEN_INFO {
  2517. POINTER_INFO pointerInfo;
  2518. PEN_FLAGS penFlags;
  2519. PEN_MASK penMask;
  2520. UINT32 pressure;
  2521. UINT32 rotation;
  2522. INT32 tiltX;
  2523. INT32 tiltY;
  2524. } POINTER_PEN_INFO;
  2525. typedef enum {
  2526. POINTER_FEEDBACK_DEFAULT = 1,
  2527. POINTER_FEEDBACK_INDIRECT = 2,
  2528. POINTER_FEEDBACK_NONE = 3
  2529. } POINTER_FEEDBACK_MODE;
  2530. typedef struct tagUSAGE_PROPERTIES {
  2531. USHORT level;
  2532. USHORT page;
  2533. USHORT usage;
  2534. INT32 logicalMinimum;
  2535. INT32 logicalMaximum;
  2536. USHORT unit;
  2537. USHORT exponent;
  2538. BYTE count;
  2539. INT32 physicalMinimum;
  2540. INT32 physicalMaximum;
  2541. } USAGE_PROPERTIES, *PUSAGE_PROPERTIES;
  2542. typedef struct tagPOINTER_TYPE_INFO {
  2543. POINTER_INPUT_TYPE type;
  2544. __C89_NAMELESS union {
  2545. POINTER_TOUCH_INFO touchInfo;
  2546. POINTER_PEN_INFO penInfo;
  2547. };
  2548. } POINTER_TYPE_INFO, *PPOINTER_TYPE_INFO;
  2549. typedef struct tagINPUT_INJECTION_VALUE {
  2550. USHORT page;
  2551. USHORT usage;
  2552. INT32 value;
  2553. USHORT index;
  2554. } INPUT_INJECTION_VALUE, *PINPUT_INJECTION_VALUE;
  2555. typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION {
  2556. UINT16 score;
  2557. POINT adjustedPoint;
  2558. } TOUCH_HIT_TESTING_PROXIMITY_EVALUATION,*PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
  2559. typedef struct tagTOUCH_HIT_TESTING_INPUT {
  2560. UINT32 pointerId;
  2561. POINT point;
  2562. RECT boundingBox;
  2563. RECT nonOccludedBoundingBox;
  2564. UINT32 orientation;
  2565. } TOUCH_HIT_TESTING_INPUT,*PTOUCH_HIT_TESTING_INPUT;
  2566. WINUSERAPI WINBOOL WINAPI InitializeTouchInjection (UINT32 maxCount, DWORD dwMode);
  2567. WINUSERAPI WINBOOL WINAPI InjectTouchInput (UINT32 count, CONST POINTER_TOUCH_INFO *contacts);
  2568. WINUSERAPI WINBOOL WINAPI GetPointerType (UINT32 pointerId, POINTER_INPUT_TYPE *pointerType);
  2569. WINUSERAPI WINBOOL WINAPI GetPointerCursorId (UINT32 pointerId, UINT32 *cursorId);
  2570. WINUSERAPI WINBOOL WINAPI GetPointerInfo (UINT32 pointerId, POINTER_INFO *pointerInfo);
  2571. WINUSERAPI WINBOOL WINAPI GetPointerInfoHistory (UINT32 pointerId, UINT32 *entriesCount, POINTER_INFO *pointerInfo);
  2572. WINUSERAPI WINBOOL WINAPI GetPointerFrameInfo (UINT32 pointerId, UINT32 *pointerCount, POINTER_INFO *pointerInfo);
  2573. WINUSERAPI WINBOOL WINAPI GetPointerFrameInfoHistory (UINT32 pointerId, UINT32 *entriesCount, UINT32 *pointerCount, POINTER_INFO *pointerInfo);
  2574. WINUSERAPI WINBOOL WINAPI GetPointerTouchInfo (UINT32 pointerId, POINTER_TOUCH_INFO *touchInfo);
  2575. WINUSERAPI WINBOOL WINAPI GetPointerTouchInfoHistory (UINT32 pointerId, UINT32 *entriesCount, POINTER_TOUCH_INFO *touchInfo);
  2576. WINUSERAPI WINBOOL WINAPI GetPointerFrameTouchInfo (UINT32 pointerId, UINT32 *pointerCount, POINTER_TOUCH_INFO *touchInfo);
  2577. WINUSERAPI WINBOOL WINAPI GetPointerFrameTouchInfoHistory (UINT32 pointerId, UINT32 *entriesCount, UINT32 *pointerCount, POINTER_TOUCH_INFO *touchInfo);
  2578. WINUSERAPI WINBOOL WINAPI GetPointerPenInfo (UINT32 pointerId, POINTER_PEN_INFO *penInfo);
  2579. WINUSERAPI WINBOOL WINAPI GetPointerPenInfoHistory (UINT32 pointerId, UINT32 *entriesCount, POINTER_PEN_INFO *penInfo);
  2580. WINUSERAPI WINBOOL WINAPI GetPointerFramePenInfo (UINT32 pointerId, UINT32 *pointerCount, POINTER_PEN_INFO *penInfo);
  2581. WINUSERAPI WINBOOL WINAPI GetPointerFramePenInfoHistory (UINT32 pointerId, UINT32 *entriesCount, UINT32 *pointerCount, POINTER_PEN_INFO *penInfo);
  2582. WINUSERAPI WINBOOL WINAPI SkipPointerFrameMessages (UINT32 pointerId);
  2583. WINUSERAPI WINBOOL WINAPI RegisterPointerInputTarget (HWND hwnd, POINTER_INPUT_TYPE pointerType);
  2584. WINUSERAPI WINBOOL WINAPI RegisterPointerInputTargetEx(HWND hwnd, POINTER_INPUT_TYPE pointerType, WINBOOL fObserve);
  2585. WINUSERAPI WINBOOL WINAPI UnregisterPointerInputTarget (HWND hwnd, POINTER_INPUT_TYPE pointerType);
  2586. WINUSERAPI WINBOOL WINAPI UnregisterPointerInputTargetEx(HWND hwnd, POINTER_INPUT_TYPE pointerType);
  2587. WINUSERAPI WINBOOL WINAPI EnableMouseInPointer (WINBOOL fEnable);
  2588. WINUSERAPI WINBOOL WINAPI IsMouseInPointerEnabled (VOID);
  2589. WINUSERAPI WINBOOL WINAPI RegisterTouchHitTestingWindow (HWND hwnd, ULONG value);
  2590. WINUSERAPI WINBOOL WINAPI EvaluateProximityToRect (const RECT *controlBoundingBox, const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
  2591. WINUSERAPI WINBOOL WINAPI EvaluateProximityToPolygon (UINT32 numVertices, const POINT *controlPolygon, const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
  2592. WINUSERAPI LRESULT WINAPI PackTouchHitTestingProximityEvaluation (const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
  2593. WINUSERAPI WINBOOL WINAPI GetWindowFeedbackSetting (HWND hwnd, FEEDBACK_TYPE feedback, DWORD dwFlags, UINT32 *pSize, VOID *config);
  2594. WINUSERAPI WINBOOL WINAPI SetWindowFeedbackSetting (HWND hwnd, FEEDBACK_TYPE feedback, DWORD dwFlags, UINT32 size, CONST VOID *configuration);
  2595. #endif
  2596. #if WDK_NTDDI_VERSION >= NTDDI_WIN10_RS3
  2597. WINUSERAPI WINBOOL WINAPI EnableMouseInPointerForThread(VOID);
  2598. #endif
  2599. #if NTDDI_VERSION >= NTDDI_WIN10_RS5
  2600. DECLARE_HANDLE(HSYNTHETICPOINTERDEVICE);
  2601. WINUSERAPI HSYNTHETICPOINTERDEVICE WINAPI CreateSyntheticPointerDevice(POINTER_INPUT_TYPE pointerType, ULONG maxCount, POINTER_FEEDBACK_MODE mode);
  2602. WINUSERAPI WINBOOL WINAPI InjectSyntheticPointerInput(HSYNTHETICPOINTERDEVICE device, CONST POINTER_TYPE_INFO* pointerInfo, UINT32 count);
  2603. WINUSERAPI VOID WINAPI DestroySyntheticPointerDevice(HSYNTHETICPOINTERDEVICE device);
  2604. #endif /* NTDDI_VERSION >= NTDDI_WIN10_RS5 */
  2605. typedef struct tagLASTINPUTINFO {
  2606. UINT cbSize;
  2607. DWORD dwTime;
  2608. } LASTINPUTINFO,*PLASTINPUTINFO;
  2609. #define MapVirtualKey __MINGW_NAME_AW(MapVirtualKey)
  2610. #define MapVirtualKeyEx __MINGW_NAME_AW(MapVirtualKeyEx)
  2611. WINUSERAPI WINBOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii);
  2612. WINUSERAPI UINT WINAPI MapVirtualKeyA(UINT uCode,UINT uMapType);
  2613. WINUSERAPI UINT WINAPI MapVirtualKeyW(UINT uCode,UINT uMapType);
  2614. WINUSERAPI UINT WINAPI MapVirtualKeyExA(UINT uCode,UINT uMapType,HKL dwhkl);
  2615. WINUSERAPI UINT WINAPI MapVirtualKeyExW(UINT uCode,UINT uMapType,HKL dwhkl);
  2616. WINUSERAPI WINBOOL WINAPI GetInputState(VOID);
  2617. WINUSERAPI DWORD WINAPI GetQueueStatus(UINT flags);
  2618. WINUSERAPI HWND WINAPI GetCapture(VOID);
  2619. WINUSERAPI HWND WINAPI SetCapture(HWND hWnd);
  2620. WINUSERAPI WINBOOL WINAPI ReleaseCapture(VOID);
  2621. WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjects(DWORD nCount,CONST HANDLE *pHandles,WINBOOL fWaitAll,DWORD dwMilliseconds,DWORD dwWakeMask);
  2622. WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjectsEx(DWORD nCount,CONST HANDLE *pHandles,DWORD dwMilliseconds,DWORD dwWakeMask,DWORD dwFlags);
  2623. #endif
  2624. #define MAPVK_VK_TO_VSC (0)
  2625. #define MAPVK_VSC_TO_VK (1)
  2626. #define MAPVK_VK_TO_CHAR (2)
  2627. #define MAPVK_VSC_TO_VK_EX (3)
  2628. #if WINVER >= 0x0600
  2629. #define MAPVK_VK_TO_VSC_EX (4)
  2630. #endif
  2631. #define MWMO_WAITALL 0x0001
  2632. #define MWMO_ALERTABLE 0x0002
  2633. #define MWMO_INPUTAVAILABLE 0x0004
  2634. #define QS_KEY 0x0001
  2635. #define QS_MOUSEMOVE 0x0002
  2636. #define QS_MOUSEBUTTON 0x0004
  2637. #define QS_POSTMESSAGE 0x0008
  2638. #define QS_TIMER 0x0010
  2639. #define QS_PAINT 0x0020
  2640. #define QS_SENDMESSAGE 0x0040
  2641. #define QS_HOTKEY 0x0080
  2642. #define QS_ALLPOSTMESSAGE 0x0100
  2643. #define QS_RAWINPUT 0x0400
  2644. #if _WIN32_WINNT >= 0x0602
  2645. #define QS_TOUCH 0x0800
  2646. #define QS_POINTER 0x1000
  2647. #endif
  2648. #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
  2649. #if _WIN32_WINNT >= 0x602
  2650. #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT | QS_TOUCH | QS_POINTER)
  2651. #else
  2652. #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT)
  2653. #endif
  2654. #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
  2655. #define QS_ALLINPUT (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE)
  2656. #define USER_TIMER_MAXIMUM 0x7FFFFFFF
  2657. #define USER_TIMER_MINIMUM 0x0000000A
  2658. #if WINVER >= 0x0601
  2659. #define TIMERV_DEFAULT_COALESCING (0)
  2660. #define TIMERV_NO_COALESCING (0xffffffff)
  2661. #define TIMERV_COALESCING_MIN (1)
  2662. #define TIMERV_COALESCING_MAX (0x7ffffff5)
  2663. #endif
  2664. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2665. #define LoadAccelerators __MINGW_NAME_AW(LoadAccelerators)
  2666. #define CreateAcceleratorTable __MINGW_NAME_AW(CreateAcceleratorTable)
  2667. #define CopyAcceleratorTable __MINGW_NAME_AW(CopyAcceleratorTable)
  2668. WINUSERAPI UINT_PTR WINAPI SetTimer(HWND hWnd,UINT_PTR nIDEvent,UINT uElapse,TIMERPROC lpTimerFunc);
  2669. WINUSERAPI WINBOOL WINAPI KillTimer(HWND hWnd,UINT_PTR uIDEvent);
  2670. WINUSERAPI WINBOOL WINAPI IsWindowUnicode(HWND hWnd);
  2671. WINUSERAPI WINBOOL WINAPI EnableWindow(HWND hWnd,WINBOOL bEnable);
  2672. WINUSERAPI WINBOOL WINAPI IsWindowEnabled(HWND hWnd);
  2673. WINUSERAPI HACCEL WINAPI LoadAcceleratorsA(HINSTANCE hInstance,LPCSTR lpTableName);
  2674. WINUSERAPI HACCEL WINAPI LoadAcceleratorsW(HINSTANCE hInstance,LPCWSTR lpTableName);
  2675. WINUSERAPI HACCEL WINAPI CreateAcceleratorTableA(LPACCEL paccel,int cAccel);
  2676. WINUSERAPI HACCEL WINAPI CreateAcceleratorTableW(LPACCEL paccel,int cAccel);
  2677. WINUSERAPI WINBOOL WINAPI DestroyAcceleratorTable(HACCEL hAccel);
  2678. WINUSERAPI int WINAPI CopyAcceleratorTableA(HACCEL hAccelSrc,LPACCEL lpAccelDst,int cAccelEntries);
  2679. WINUSERAPI int WINAPI CopyAcceleratorTableW(HACCEL hAccelSrc,LPACCEL lpAccelDst,int cAccelEntries);
  2680. #ifndef NOMSG
  2681. #define TranslateAccelerator __MINGW_NAME_AW(TranslateAccelerator)
  2682. WINUSERAPI int WINAPI TranslateAcceleratorA(HWND hWnd,HACCEL hAccTable,LPMSG lpMsg);
  2683. WINUSERAPI int WINAPI TranslateAcceleratorW(HWND hWnd,HACCEL hAccTable,LPMSG lpMsg);
  2684. #endif
  2685. #if WINVER >= 0x0601
  2686. WINUSERAPI UINT_PTR WINAPI SetCoalescableTimer (HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc, ULONG uToleranceDelay);
  2687. #endif
  2688. #endif
  2689. #ifndef NOSYSMETRICS
  2690. #define SM_CXSCREEN 0
  2691. #define SM_CYSCREEN 1
  2692. #define SM_CXVSCROLL 2
  2693. #define SM_CYHSCROLL 3
  2694. #define SM_CYCAPTION 4
  2695. #define SM_CXBORDER 5
  2696. #define SM_CYBORDER 6
  2697. #define SM_CXDLGFRAME 7
  2698. #define SM_CYDLGFRAME 8
  2699. #define SM_CYVTHUMB 9
  2700. #define SM_CXHTHUMB 10
  2701. #define SM_CXICON 11
  2702. #define SM_CYICON 12
  2703. #define SM_CXCURSOR 13
  2704. #define SM_CYCURSOR 14
  2705. #define SM_CYMENU 15
  2706. #define SM_CXFULLSCREEN 16
  2707. #define SM_CYFULLSCREEN 17
  2708. #define SM_CYKANJIWINDOW 18
  2709. #define SM_MOUSEPRESENT 19
  2710. #define SM_CYVSCROLL 20
  2711. #define SM_CXHSCROLL 21
  2712. #define SM_DEBUG 22
  2713. #define SM_SWAPBUTTON 23
  2714. #define SM_RESERVED1 24
  2715. #define SM_RESERVED2 25
  2716. #define SM_RESERVED3 26
  2717. #define SM_RESERVED4 27
  2718. #define SM_CXMIN 28
  2719. #define SM_CYMIN 29
  2720. #define SM_CXSIZE 30
  2721. #define SM_CYSIZE 31
  2722. #define SM_CXFRAME 32
  2723. #define SM_CYFRAME 33
  2724. #define SM_CXMINTRACK 34
  2725. #define SM_CYMINTRACK 35
  2726. #define SM_CXDOUBLECLK 36
  2727. #define SM_CYDOUBLECLK 37
  2728. #define SM_CXICONSPACING 38
  2729. #define SM_CYICONSPACING 39
  2730. #define SM_MENUDROPALIGNMENT 40
  2731. #define SM_PENWINDOWS 41
  2732. #define SM_DBCSENABLED 42
  2733. #define SM_CMOUSEBUTTONS 43
  2734. #define SM_CXFIXEDFRAME SM_CXDLGFRAME
  2735. #define SM_CYFIXEDFRAME SM_CYDLGFRAME
  2736. #define SM_CXSIZEFRAME SM_CXFRAME
  2737. #define SM_CYSIZEFRAME SM_CYFRAME
  2738. #define SM_SECURE 44
  2739. #define SM_CXEDGE 45
  2740. #define SM_CYEDGE 46
  2741. #define SM_CXMINSPACING 47
  2742. #define SM_CYMINSPACING 48
  2743. #define SM_CXSMICON 49
  2744. #define SM_CYSMICON 50
  2745. #define SM_CYSMCAPTION 51
  2746. #define SM_CXSMSIZE 52
  2747. #define SM_CYSMSIZE 53
  2748. #define SM_CXMENUSIZE 54
  2749. #define SM_CYMENUSIZE 55
  2750. #define SM_ARRANGE 56
  2751. #define SM_CXMINIMIZED 57
  2752. #define SM_CYMINIMIZED 58
  2753. #define SM_CXMAXTRACK 59
  2754. #define SM_CYMAXTRACK 60
  2755. #define SM_CXMAXIMIZED 61
  2756. #define SM_CYMAXIMIZED 62
  2757. #define SM_NETWORK 63
  2758. #define SM_CLEANBOOT 67
  2759. #define SM_CXDRAG 68
  2760. #define SM_CYDRAG 69
  2761. #define SM_SHOWSOUNDS 70
  2762. #define SM_CXMENUCHECK 71
  2763. #define SM_CYMENUCHECK 72
  2764. #define SM_SLOWMACHINE 73
  2765. #define SM_MIDEASTENABLED 74
  2766. #define SM_MOUSEWHEELPRESENT 75
  2767. #define SM_XVIRTUALSCREEN 76
  2768. #define SM_YVIRTUALSCREEN 77
  2769. #define SM_CXVIRTUALSCREEN 78
  2770. #define SM_CYVIRTUALSCREEN 79
  2771. #define SM_CMONITORS 80
  2772. #define SM_SAMEDISPLAYFORMAT 81
  2773. #define SM_IMMENABLED 82
  2774. #define SM_CXFOCUSBORDER 83
  2775. #define SM_CYFOCUSBORDER 84
  2776. #define SM_TABLETPC 86
  2777. #define SM_MEDIACENTER 87
  2778. #define SM_STARTER 88
  2779. #define SM_SERVERR2 89
  2780. #if _WIN32_WINNT >= 0x0600
  2781. #define SM_MOUSEHORIZONTALWHEELPRESENT 91
  2782. #define SM_CXPADDEDBORDER 92
  2783. #endif
  2784. #if WINVER >= 0x0601
  2785. #define SM_DIGITIZER 94
  2786. #define SM_MAXIMUMTOUCHES 95
  2787. #endif
  2788. #if WINVER <= 0x501
  2789. #define SM_CMETRICS 91
  2790. #elif WINVER == 0x600
  2791. #define SM_CMETRICS 93
  2792. #else
  2793. #define SM_CMETRICS 97
  2794. #endif
  2795. #define SM_REMOTESESSION 0x1000
  2796. #define SM_SHUTTINGDOWN 0x2000
  2797. #define SM_REMOTECONTROL 0x2001
  2798. #define SM_CARETBLINKINGENABLED 0x2002
  2799. #if WINVER >= 0x0602
  2800. #define SM_CONVERTIBLESLATEMODE 0x2003
  2801. #define SM_SYSTEMDOCKED 0x2004
  2802. #endif
  2803. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2804. WINUSERAPI int WINAPI GetSystemMetrics(int nIndex);
  2805. #endif
  2806. #if WINVER >= 0x0605
  2807. WINUSERAPI int WINAPI GetSystemMetricsForDpi(int nIndex, UINT dpi);
  2808. #endif
  2809. #endif /* !NOSYSMETRICS */
  2810. #ifndef NOMENUS
  2811. #define PMB_ACTIVE 0x00000001
  2812. #define MNC_IGNORE 0
  2813. #define MNC_CLOSE 1
  2814. #define MNC_EXECUTE 2
  2815. #define MNC_SELECT 3
  2816. #define MNS_NOCHECK 0x80000000
  2817. #define MNS_MODELESS 0x40000000
  2818. #define MNS_DRAGDROP 0x20000000
  2819. #define MNS_AUTODISMISS 0x10000000
  2820. #define MNS_NOTIFYBYPOS 0x08000000
  2821. #define MNS_CHECKORBMP 0x04000000
  2822. #define MIM_MAXHEIGHT 0x00000001
  2823. #define MIM_BACKGROUND 0x00000002
  2824. #define MIM_HELPID 0x00000004
  2825. #define MIM_MENUDATA 0x00000008
  2826. #define MIM_STYLE 0x00000010
  2827. #define MIM_APPLYTOSUBMENUS 0x80000000
  2828. #define MND_CONTINUE 0
  2829. #define MND_ENDMENU 1
  2830. #define MNGOF_TOPGAP 0x00000001
  2831. #define MNGOF_BOTTOMGAP 0x00000002
  2832. #define MNGO_NOINTERFACE 0x00000000
  2833. #define MNGO_NOERROR 0x00000001
  2834. #define MIIM_STATE 0x00000001
  2835. #define MIIM_ID 0x00000002
  2836. #define MIIM_SUBMENU 0x00000004
  2837. #define MIIM_CHECKMARKS 0x00000008
  2838. #define MIIM_TYPE 0x00000010
  2839. #define MIIM_DATA 0x00000020
  2840. #define MIIM_STRING 0x00000040
  2841. #define MIIM_BITMAP 0x00000080
  2842. #define MIIM_FTYPE 0x00000100
  2843. #define HBMMENU_CALLBACK ((HBITMAP) -1)
  2844. #define HBMMENU_SYSTEM ((HBITMAP) 1)
  2845. #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
  2846. #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
  2847. #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
  2848. #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
  2849. #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
  2850. #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
  2851. #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
  2852. #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
  2853. #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
  2854. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2855. #define LoadMenu __MINGW_NAME_AW(LoadMenu)
  2856. #define LoadMenuIndirect __MINGW_NAME_AW(LoadMenuIndirect)
  2857. #define ChangeMenu __MINGW_NAME_AW(ChangeMenu)
  2858. #define GetMenuString __MINGW_NAME_AW(GetMenuString)
  2859. #define InsertMenu __MINGW_NAME_AW(InsertMenu)
  2860. #define AppendMenu __MINGW_NAME_AW(AppendMenu)
  2861. #define ModifyMenu __MINGW_NAME_AW(ModifyMenu)
  2862. WINUSERAPI HMENU WINAPI LoadMenuA(HINSTANCE hInstance,LPCSTR lpMenuName);
  2863. WINUSERAPI HMENU WINAPI LoadMenuW(HINSTANCE hInstance,LPCWSTR lpMenuName);
  2864. WINUSERAPI HMENU WINAPI LoadMenuIndirectA(CONST MENUTEMPLATEA *lpMenuTemplate);
  2865. WINUSERAPI HMENU WINAPI LoadMenuIndirectW(CONST MENUTEMPLATEW *lpMenuTemplate);
  2866. WINUSERAPI HMENU WINAPI GetMenu(HWND hWnd);
  2867. WINUSERAPI WINBOOL WINAPI SetMenu(HWND hWnd,HMENU hMenu);
  2868. WINUSERAPI WINBOOL WINAPI ChangeMenuA(HMENU hMenu,UINT cmd,LPCSTR lpszNewItem,UINT cmdInsert,UINT flags);
  2869. WINUSERAPI WINBOOL WINAPI ChangeMenuW(HMENU hMenu,UINT cmd,LPCWSTR lpszNewItem,UINT cmdInsert,UINT flags);
  2870. WINUSERAPI WINBOOL WINAPI HiliteMenuItem(HWND hWnd,HMENU hMenu,UINT uIDHiliteItem,UINT uHilite);
  2871. WINUSERAPI int WINAPI GetMenuStringA(HMENU hMenu,UINT uIDItem,LPSTR lpString,int cchMax,UINT flags);
  2872. WINUSERAPI int WINAPI GetMenuStringW(HMENU hMenu,UINT uIDItem,LPWSTR lpString,int cchMax,UINT flags);
  2873. WINUSERAPI UINT WINAPI GetMenuState(HMENU hMenu,UINT uId,UINT uFlags);
  2874. WINUSERAPI WINBOOL WINAPI DrawMenuBar(HWND hWnd);
  2875. WINUSERAPI HMENU WINAPI GetSystemMenu(HWND hWnd,WINBOOL bRevert);
  2876. WINUSERAPI HMENU WINAPI CreateMenu(VOID);
  2877. WINUSERAPI HMENU WINAPI CreatePopupMenu(VOID);
  2878. WINUSERAPI WINBOOL WINAPI DestroyMenu(HMENU hMenu);
  2879. WINUSERAPI DWORD WINAPI CheckMenuItem(HMENU hMenu,UINT uIDCheckItem,UINT uCheck);
  2880. WINUSERAPI WINBOOL WINAPI EnableMenuItem(HMENU hMenu,UINT uIDEnableItem,UINT uEnable);
  2881. WINUSERAPI HMENU WINAPI GetSubMenu(HMENU hMenu,int nPos);
  2882. WINUSERAPI UINT WINAPI GetMenuItemID(HMENU hMenu,int nPos);
  2883. WINUSERAPI int WINAPI GetMenuItemCount(HMENU hMenu);
  2884. WINUSERAPI WINBOOL WINAPI InsertMenuA(HMENU hMenu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
  2885. WINUSERAPI WINBOOL WINAPI InsertMenuW(HMENU hMenu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
  2886. WINUSERAPI WINBOOL WINAPI AppendMenuA(HMENU hMenu,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
  2887. WINUSERAPI WINBOOL WINAPI AppendMenuW(HMENU hMenu,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
  2888. WINUSERAPI WINBOOL WINAPI ModifyMenuA(HMENU hMnu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
  2889. WINUSERAPI WINBOOL WINAPI ModifyMenuW(HMENU hMnu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
  2890. WINUSERAPI WINBOOL WINAPI RemoveMenu(HMENU hMenu,UINT uPosition,UINT uFlags);
  2891. WINUSERAPI WINBOOL WINAPI DeleteMenu(HMENU hMenu,UINT uPosition,UINT uFlags);
  2892. WINUSERAPI WINBOOL WINAPI SetMenuItemBitmaps(HMENU hMenu,UINT uPosition,UINT uFlags,HBITMAP hBitmapUnchecked,HBITMAP hBitmapChecked);
  2893. WINUSERAPI LONG WINAPI GetMenuCheckMarkDimensions(VOID);
  2894. WINUSERAPI WINBOOL WINAPI TrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,int nReserved,HWND hWnd,CONST RECT *prcRect);
  2895. typedef struct tagTPMPARAMS {
  2896. UINT cbSize;
  2897. RECT rcExclude;
  2898. } TPMPARAMS;
  2899. typedef struct tagMENUINFO {
  2900. DWORD cbSize;
  2901. DWORD fMask;
  2902. DWORD dwStyle;
  2903. UINT cyMax;
  2904. HBRUSH hbrBack;
  2905. DWORD dwContextHelpID;
  2906. ULONG_PTR dwMenuData;
  2907. } MENUINFO,*LPMENUINFO;
  2908. typedef TPMPARAMS *LPTPMPARAMS;
  2909. typedef MENUINFO CONST *LPCMENUINFO;
  2910. WINUSERAPI WINBOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS);
  2911. WINUSERAPI WINBOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO);
  2912. WINUSERAPI WINBOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO);
  2913. WINUSERAPI WINBOOL WINAPI EndMenu(VOID);
  2914. #if _WIN32_WINNT >= 0x0601
  2915. WINUSERAPI WINBOOL WINAPI CalculatePopupWindowPosition (const POINT *anchorPoint, const SIZE *windowSize, UINT flags, RECT *excludeRect, RECT *popupWindowPosition);
  2916. #endif
  2917. typedef struct tagMENUGETOBJECTINFO {
  2918. DWORD dwFlags;
  2919. UINT uPos;
  2920. HMENU hmenu;
  2921. PVOID riid;
  2922. PVOID pvObj;
  2923. } MENUGETOBJECTINFO,*PMENUGETOBJECTINFO;
  2924. typedef struct tagMENUITEMINFOA {
  2925. UINT cbSize;
  2926. UINT fMask;
  2927. UINT fType;
  2928. UINT fState;
  2929. UINT wID;
  2930. HMENU hSubMenu;
  2931. HBITMAP hbmpChecked;
  2932. HBITMAP hbmpUnchecked;
  2933. ULONG_PTR dwItemData;
  2934. LPSTR dwTypeData;
  2935. UINT cch;
  2936. HBITMAP hbmpItem;
  2937. } MENUITEMINFOA,*LPMENUITEMINFOA;
  2938. typedef struct tagMENUITEMINFOW {
  2939. UINT cbSize;
  2940. UINT fMask;
  2941. UINT fType;
  2942. UINT fState;
  2943. UINT wID;
  2944. HMENU hSubMenu;
  2945. HBITMAP hbmpChecked;
  2946. HBITMAP hbmpUnchecked;
  2947. ULONG_PTR dwItemData;
  2948. LPWSTR dwTypeData;
  2949. UINT cch;
  2950. HBITMAP hbmpItem;
  2951. } MENUITEMINFOW,*LPMENUITEMINFOW;
  2952. __MINGW_TYPEDEF_AW(MENUITEMINFO)
  2953. __MINGW_TYPEDEF_AW(LPMENUITEMINFO)
  2954. typedef MENUITEMINFOA CONST *LPCMENUITEMINFOA;
  2955. typedef MENUITEMINFOW CONST *LPCMENUITEMINFOW;
  2956. __MINGW_TYPEDEF_AW(LPCMENUITEMINFO)
  2957. #define InsertMenuItem __MINGW_NAME_AW(InsertMenuItem)
  2958. #define GetMenuItemInfo __MINGW_NAME_AW(GetMenuItemInfo)
  2959. #define SetMenuItemInfo __MINGW_NAME_AW(SetMenuItemInfo)
  2960. WINUSERAPI WINBOOL WINAPI InsertMenuItemA(HMENU hmenu,UINT item,WINBOOL fByPosition,LPCMENUITEMINFOA lpmi);
  2961. WINUSERAPI WINBOOL WINAPI InsertMenuItemW(HMENU hmenu,UINT item,WINBOOL fByPosition,LPCMENUITEMINFOW lpmi);
  2962. WINUSERAPI WINBOOL WINAPI GetMenuItemInfoA(HMENU hmenu,UINT item,WINBOOL fByPosition,LPMENUITEMINFOA lpmii);
  2963. WINUSERAPI WINBOOL WINAPI GetMenuItemInfoW(HMENU hmenu,UINT item,WINBOOL fByPosition,LPMENUITEMINFOW lpmii);
  2964. WINUSERAPI WINBOOL WINAPI SetMenuItemInfoA(HMENU hmenu,UINT item,WINBOOL fByPositon,LPCMENUITEMINFOA lpmii);
  2965. WINUSERAPI WINBOOL WINAPI SetMenuItemInfoW(HMENU hmenu,UINT item,WINBOOL fByPositon,LPCMENUITEMINFOW lpmii);
  2966. #define GMDI_USEDISABLED __MSABI_LONG(0x0001)
  2967. #define GMDI_GOINTOPOPUPS __MSABI_LONG(0x0002)
  2968. WINUSERAPI UINT WINAPI GetMenuDefaultItem(HMENU hMenu,UINT fByPos,UINT gmdiFlags);
  2969. WINUSERAPI WINBOOL WINAPI SetMenuDefaultItem(HMENU hMenu,UINT uItem,UINT fByPos);
  2970. WINUSERAPI WINBOOL WINAPI GetMenuItemRect(HWND hWnd,HMENU hMenu,UINT uItem,LPRECT lprcItem);
  2971. WINUSERAPI int WINAPI MenuItemFromPoint(HWND hWnd,HMENU hMenu,POINT ptScreen);
  2972. #define TPM_LEFTBUTTON __MSABI_LONG(0x0000)
  2973. #define TPM_RIGHTBUTTON __MSABI_LONG(0x0002)
  2974. #define TPM_LEFTALIGN __MSABI_LONG(0x0000)
  2975. #define TPM_CENTERALIGN __MSABI_LONG(0x0004)
  2976. #define TPM_RIGHTALIGN __MSABI_LONG(0x0008)
  2977. #define TPM_TOPALIGN __MSABI_LONG(0x0000)
  2978. #define TPM_VCENTERALIGN __MSABI_LONG(0x0010)
  2979. #define TPM_BOTTOMALIGN __MSABI_LONG(0x0020)
  2980. #define TPM_HORIZONTAL __MSABI_LONG(0x0000)
  2981. #define TPM_VERTICAL __MSABI_LONG(0x0040)
  2982. #define TPM_NONOTIFY __MSABI_LONG(0x0080)
  2983. #define TPM_RETURNCMD __MSABI_LONG(0x0100)
  2984. #define TPM_RECURSE __MSABI_LONG(0x0001)
  2985. #define TPM_HORPOSANIMATION __MSABI_LONG(0x0400)
  2986. #define TPM_HORNEGANIMATION __MSABI_LONG(0x0800)
  2987. #define TPM_VERPOSANIMATION __MSABI_LONG(0x1000)
  2988. #define TPM_VERNEGANIMATION __MSABI_LONG(0x2000)
  2989. #define TPM_NOANIMATION __MSABI_LONG(0x4000)
  2990. #define TPM_LAYOUTRTL __MSABI_LONG(0x8000)
  2991. #if _WIN32_WINNT >= 0x0601
  2992. #define TPM_WORKAREA __MSABI_LONG(0x10000)
  2993. #endif
  2994. #endif
  2995. #endif
  2996. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  2997. typedef struct tagDROPSTRUCT {
  2998. HWND hwndSource;
  2999. HWND hwndSink;
  3000. DWORD wFmt;
  3001. ULONG_PTR dwData;
  3002. POINT ptDrop;
  3003. DWORD dwControlData;
  3004. } DROPSTRUCT,*PDROPSTRUCT,*LPDROPSTRUCT;
  3005. #endif
  3006. #define DOF_EXECUTABLE 0x8001
  3007. #define DOF_DOCUMENT 0x8002
  3008. #define DOF_DIRECTORY 0x8003
  3009. #define DOF_MULTIPLE 0x8004
  3010. #define DOF_PROGMAN 0x0001
  3011. #define DOF_SHELLDATA 0x0002
  3012. #define DO_DROPFILE __MSABI_LONG(0x454C4946)
  3013. #define DO_PRINTFILE __MSABI_LONG(0x544E5250)
  3014. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3015. WINUSERAPI DWORD WINAPI DragObject(HWND hwndParent,HWND hwndFrom,UINT fmt,ULONG_PTR data,HCURSOR hcur);
  3016. WINUSERAPI WINBOOL WINAPI DragDetect(HWND hwnd,POINT pt);
  3017. WINUSERAPI WINBOOL WINAPI DrawIcon(HDC hDC,int X,int Y,HICON hIcon);
  3018. #endif
  3019. #ifndef NODRAWTEXT
  3020. #define DT_TOP 0x00000000
  3021. #define DT_LEFT 0x00000000
  3022. #define DT_CENTER 0x00000001
  3023. #define DT_RIGHT 0x00000002
  3024. #define DT_VCENTER 0x00000004
  3025. #define DT_BOTTOM 0x00000008
  3026. #define DT_WORDBREAK 0x00000010
  3027. #define DT_SINGLELINE 0x00000020
  3028. #define DT_EXPANDTABS 0x00000040
  3029. #define DT_TABSTOP 0x00000080
  3030. #define DT_NOCLIP 0x00000100
  3031. #define DT_EXTERNALLEADING 0x00000200
  3032. #define DT_CALCRECT 0x00000400
  3033. #define DT_NOPREFIX 0x00000800
  3034. #define DT_INTERNAL 0x00001000
  3035. #define DT_EDITCONTROL 0x00002000
  3036. #define DT_PATH_ELLIPSIS 0x00004000
  3037. #define DT_END_ELLIPSIS 0x00008000
  3038. #define DT_MODIFYSTRING 0x00010000
  3039. #define DT_RTLREADING 0x00020000
  3040. #define DT_WORD_ELLIPSIS 0x00040000
  3041. #define DT_NOFULLWIDTHCHARBREAK 0x00080000
  3042. #define DT_HIDEPREFIX 0x00100000
  3043. #define DT_PREFIXONLY 0x00200000
  3044. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3045. typedef struct tagDRAWTEXTPARAMS {
  3046. UINT cbSize;
  3047. int iTabLength;
  3048. int iLeftMargin;
  3049. int iRightMargin;
  3050. UINT uiLengthDrawn;
  3051. } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
  3052. #define DrawText __MINGW_NAME_AW(DrawText)
  3053. #define DrawTextEx __MINGW_NAME_AW(DrawTextEx)
  3054. WINUSERAPI int WINAPI DrawTextA(HDC hdc,LPCSTR lpchText,int cchText,LPRECT lprc,UINT format);
  3055. WINUSERAPI int WINAPI DrawTextW(HDC hdc,LPCWSTR lpchText,int cchText,LPRECT lprc,UINT format);
  3056. WINUSERAPI int WINAPI DrawTextExA(HDC hdc,LPSTR lpchText,int cchText,LPRECT lprc,UINT format,LPDRAWTEXTPARAMS lpdtp);
  3057. WINUSERAPI int WINAPI DrawTextExW(HDC hdc,LPWSTR lpchText,int cchText,LPRECT lprc,UINT format,LPDRAWTEXTPARAMS lpdtp);
  3058. #endif
  3059. #endif
  3060. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3061. #define GrayString __MINGW_NAME_AW(GrayString)
  3062. #define DrawState __MINGW_NAME_AW(DrawState)
  3063. #define TabbedTextOut __MINGW_NAME_AW(TabbedTextOut)
  3064. #define GetTabbedTextExtent __MINGW_NAME_AW(GetTabbedTextExtent)
  3065. WINUSERAPI WINBOOL WINAPI GrayStringA(HDC hDC,HBRUSH hBrush,GRAYSTRINGPROC lpOutputFunc,LPARAM lpData,int nCount,int X,int Y,int nWidth,int nHeight);
  3066. WINUSERAPI WINBOOL WINAPI GrayStringW(HDC hDC,HBRUSH hBrush,GRAYSTRINGPROC lpOutputFunc,LPARAM lpData,int nCount,int X,int Y,int nWidth,int nHeight);
  3067. WINUSERAPI WINBOOL WINAPI DrawStateA(HDC hdc,HBRUSH hbrFore,DRAWSTATEPROC qfnCallBack,LPARAM lData,WPARAM wData,int x,int y,int cx,int cy,UINT uFlags);
  3068. WINUSERAPI WINBOOL WINAPI DrawStateW(HDC hdc,HBRUSH hbrFore,DRAWSTATEPROC qfnCallBack,LPARAM lData,WPARAM wData,int x,int y,int cx,int cy,UINT uFlags);
  3069. WINUSERAPI LONG WINAPI TabbedTextOutA(HDC hdc,int x,int y,LPCSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions,int nTabOrigin);
  3070. WINUSERAPI LONG WINAPI TabbedTextOutW(HDC hdc,int x,int y,LPCWSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions,int nTabOrigin);
  3071. WINUSERAPI DWORD WINAPI GetTabbedTextExtentA(HDC hdc,LPCSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions);
  3072. WINUSERAPI DWORD WINAPI GetTabbedTextExtentW(HDC hdc,LPCWSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions);
  3073. WINUSERAPI WINBOOL WINAPI UpdateWindow(HWND hWnd);
  3074. WINUSERAPI HWND WINAPI SetActiveWindow(HWND hWnd);
  3075. WINUSERAPI HWND WINAPI GetForegroundWindow(VOID);
  3076. WINUSERAPI WINBOOL WINAPI PaintDesktop(HDC hdc);
  3077. WINUSERAPI VOID WINAPI SwitchToThisWindow(HWND hwnd,WINBOOL fUnknown);
  3078. WINUSERAPI WINBOOL WINAPI SetForegroundWindow(HWND hWnd);
  3079. WINUSERAPI WINBOOL WINAPI AllowSetForegroundWindow(DWORD dwProcessId);
  3080. WINUSERAPI WINBOOL WINAPI LockSetForegroundWindow(UINT uLockCode);
  3081. WINUSERAPI HWND WINAPI WindowFromDC(HDC hDC);
  3082. WINUSERAPI HDC WINAPI GetDC(HWND hWnd);
  3083. WINUSERAPI HDC WINAPI GetDCEx(HWND hWnd,HRGN hrgnClip,DWORD flags);
  3084. #endif
  3085. #define DST_COMPLEX 0x0000
  3086. #define DST_TEXT 0x0001
  3087. #define DST_PREFIXTEXT 0x0002
  3088. #define DST_ICON 0x0003
  3089. #define DST_BITMAP 0x0004
  3090. #define DSS_NORMAL 0x0000
  3091. #define DSS_UNION 0x0010
  3092. #define DSS_DISABLED 0x0020
  3093. #define DSS_MONO 0x0080
  3094. #define DSS_HIDEPREFIX 0x0200
  3095. #define DSS_PREFIXONLY 0x0400
  3096. #define DSS_RIGHT 0x8000
  3097. #define ASFW_ANY ((DWORD)-1)
  3098. #define LSFW_LOCK 1
  3099. #define LSFW_UNLOCK 2
  3100. #define DCX_WINDOW __MSABI_LONG(0x00000001)
  3101. #define DCX_CACHE __MSABI_LONG(0x00000002)
  3102. #define DCX_NORESETATTRS __MSABI_LONG(0x00000004)
  3103. #define DCX_CLIPCHILDREN __MSABI_LONG(0x00000008)
  3104. #define DCX_CLIPSIBLINGS __MSABI_LONG(0x00000010)
  3105. #define DCX_PARENTCLIP __MSABI_LONG(0x00000020)
  3106. #define DCX_EXCLUDERGN __MSABI_LONG(0x00000040)
  3107. #define DCX_INTERSECTRGN __MSABI_LONG(0x00000080)
  3108. #define DCX_EXCLUDEUPDATE __MSABI_LONG(0x00000100)
  3109. #define DCX_INTERSECTUPDATE __MSABI_LONG(0x00000200)
  3110. #define DCX_LOCKWINDOWUPDATE __MSABI_LONG(0x00000400)
  3111. #define DCX_VALIDATE __MSABI_LONG(0x00200000)
  3112. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3113. WINUSERAPI HDC WINAPI GetWindowDC(HWND hWnd);
  3114. WINUSERAPI int WINAPI ReleaseDC(HWND hWnd,HDC hDC);
  3115. WINUSERAPI HDC WINAPI BeginPaint(HWND hWnd,LPPAINTSTRUCT lpPaint);
  3116. WINUSERAPI WINBOOL WINAPI EndPaint(HWND hWnd,CONST PAINTSTRUCT *lpPaint);
  3117. WINUSERAPI WINBOOL WINAPI GetUpdateRect(HWND hWnd,LPRECT lpRect,WINBOOL bErase);
  3118. WINUSERAPI int WINAPI GetUpdateRgn(HWND hWnd,HRGN hRgn,WINBOOL bErase);
  3119. WINUSERAPI int WINAPI SetWindowRgn(HWND hWnd,HRGN hRgn,WINBOOL bRedraw);
  3120. WINUSERAPI int WINAPI GetWindowRgn(HWND hWnd,HRGN hRgn);
  3121. WINUSERAPI int WINAPI GetWindowRgnBox(HWND hWnd,LPRECT lprc);
  3122. WINUSERAPI int WINAPI ExcludeUpdateRgn(HDC hDC,HWND hWnd);
  3123. WINUSERAPI WINBOOL WINAPI InvalidateRect(HWND hWnd,CONST RECT *lpRect,WINBOOL bErase);
  3124. WINUSERAPI WINBOOL WINAPI ValidateRect(HWND hWnd,CONST RECT *lpRect);
  3125. WINUSERAPI WINBOOL WINAPI InvalidateRgn(HWND hWnd,HRGN hRgn,WINBOOL bErase);
  3126. WINUSERAPI WINBOOL WINAPI ValidateRgn(HWND hWnd,HRGN hRgn);
  3127. WINUSERAPI WINBOOL WINAPI RedrawWindow(HWND hWnd,CONST RECT *lprcUpdate,HRGN hrgnUpdate,UINT flags);
  3128. #endif
  3129. #define RDW_INVALIDATE 0x0001
  3130. #define RDW_INTERNALPAINT 0x0002
  3131. #define RDW_ERASE 0x0004
  3132. #define RDW_VALIDATE 0x0008
  3133. #define RDW_NOINTERNALPAINT 0x0010
  3134. #define RDW_NOERASE 0x0020
  3135. #define RDW_NOCHILDREN 0x0040
  3136. #define RDW_ALLCHILDREN 0x0080
  3137. #define RDW_UPDATENOW 0x0100
  3138. #define RDW_ERASENOW 0x0200
  3139. #define RDW_FRAME 0x0400
  3140. #define RDW_NOFRAME 0x0800
  3141. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3142. WINUSERAPI WINBOOL WINAPI LockWindowUpdate(HWND hWndLock);
  3143. WINUSERAPI WINBOOL WINAPI ScrollWindow(HWND hWnd,int XAmount,int YAmount,CONST RECT *lpRect,CONST RECT *lpClipRect);
  3144. WINUSERAPI WINBOOL WINAPI ScrollDC(HDC hDC,int dx,int dy,CONST RECT *lprcScroll,CONST RECT *lprcClip,HRGN hrgnUpdate,LPRECT lprcUpdate);
  3145. WINUSERAPI int WINAPI ScrollWindowEx(HWND hWnd,int dx,int dy,CONST RECT *prcScroll,CONST RECT *prcClip,HRGN hrgnUpdate,LPRECT prcUpdate,UINT flags);
  3146. #endif
  3147. #define SW_SCROLLCHILDREN 0x0001
  3148. #define SW_INVALIDATE 0x0002
  3149. #define SW_ERASE 0x0004
  3150. #define SW_SMOOTHSCROLL 0x0010
  3151. #ifndef NOSCROLL
  3152. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3153. WINUSERAPI int WINAPI SetScrollPos(HWND hWnd,int nBar,int nPos,WINBOOL bRedraw);
  3154. WINUSERAPI int WINAPI GetScrollPos(HWND hWnd,int nBar);
  3155. WINUSERAPI WINBOOL WINAPI SetScrollRange(HWND hWnd,int nBar,int nMinPos,int nMaxPos,WINBOOL bRedraw);
  3156. WINUSERAPI WINBOOL WINAPI GetScrollRange(HWND hWnd,int nBar,LPINT lpMinPos,LPINT lpMaxPos);
  3157. WINUSERAPI WINBOOL WINAPI ShowScrollBar(HWND hWnd,int wBar,WINBOOL bShow);
  3158. WINUSERAPI WINBOOL WINAPI EnableScrollBar(HWND hWnd,UINT wSBflags,UINT wArrows);
  3159. #endif
  3160. #define ESB_ENABLE_BOTH 0x0000
  3161. #define ESB_DISABLE_BOTH 0x0003
  3162. #define ESB_DISABLE_LEFT 0x0001
  3163. #define ESB_DISABLE_RIGHT 0x0002
  3164. #define ESB_DISABLE_UP 0x0001
  3165. #define ESB_DISABLE_DOWN 0x0002
  3166. #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
  3167. #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
  3168. #endif
  3169. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3170. #define SetProp __MINGW_NAME_AW(SetProp)
  3171. #define GetProp __MINGW_NAME_AW(GetProp)
  3172. #define RemoveProp __MINGW_NAME_AW(RemoveProp)
  3173. #define EnumPropsEx __MINGW_NAME_AW(EnumPropsEx)
  3174. #define EnumProps __MINGW_NAME_AW(EnumProps)
  3175. #define SetWindowText __MINGW_NAME_AW(SetWindowText)
  3176. #define GetWindowText __MINGW_NAME_AW(GetWindowText)
  3177. #define GetWindowTextLength __MINGW_NAME_AW(GetWindowTextLength)
  3178. WINUSERAPI WINBOOL WINAPI SetPropA(HWND hWnd,LPCSTR lpString,HANDLE hData);
  3179. WINUSERAPI WINBOOL WINAPI SetPropW(HWND hWnd,LPCWSTR lpString,HANDLE hData);
  3180. WINUSERAPI HANDLE WINAPI GetPropA(HWND hWnd,LPCSTR lpString);
  3181. WINUSERAPI HANDLE WINAPI GetPropW(HWND hWnd,LPCWSTR lpString);
  3182. WINUSERAPI HANDLE WINAPI RemovePropA(HWND hWnd,LPCSTR lpString);
  3183. WINUSERAPI HANDLE WINAPI RemovePropW(HWND hWnd,LPCWSTR lpString);
  3184. WINUSERAPI int WINAPI EnumPropsExA(HWND hWnd,PROPENUMPROCEXA lpEnumFunc,LPARAM lParam);
  3185. WINUSERAPI int WINAPI EnumPropsExW(HWND hWnd,PROPENUMPROCEXW lpEnumFunc,LPARAM lParam);
  3186. WINUSERAPI int WINAPI EnumPropsA(HWND hWnd,PROPENUMPROCA lpEnumFunc);
  3187. WINUSERAPI int WINAPI EnumPropsW(HWND hWnd,PROPENUMPROCW lpEnumFunc);
  3188. WINUSERAPI WINBOOL WINAPI SetWindowTextA(HWND hWnd,LPCSTR lpString);
  3189. WINUSERAPI WINBOOL WINAPI SetWindowTextW(HWND hWnd,LPCWSTR lpString);
  3190. WINUSERAPI int WINAPI GetWindowTextA(HWND hWnd,LPSTR lpString,int nMaxCount);
  3191. WINUSERAPI int WINAPI GetWindowTextW(HWND hWnd,LPWSTR lpString,int nMaxCount);
  3192. WINUSERAPI int WINAPI GetWindowTextLengthA(HWND hWnd);
  3193. WINUSERAPI int WINAPI GetWindowTextLengthW(HWND hWnd);
  3194. WINUSERAPI WINBOOL WINAPI GetClientRect(HWND hWnd,LPRECT lpRect);
  3195. WINUSERAPI WINBOOL WINAPI GetWindowRect(HWND hWnd,LPRECT lpRect);
  3196. WINUSERAPI WINBOOL WINAPI AdjustWindowRect(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu);
  3197. WINUSERAPI WINBOOL WINAPI AdjustWindowRectEx(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu,DWORD dwExStyle);
  3198. #if WINVER >= 0x0605
  3199. WINUSERAPI WINBOOL WINAPI AdjustWindowRectExForDpi(LPRECT lpRect, DWORD dwStyle, WINBOOL bMenu, DWORD dwExStyle, UINT dpi);
  3200. #endif
  3201. #endif
  3202. #define HELPINFO_WINDOW 0x0001
  3203. #define HELPINFO_MENUITEM 0x0002
  3204. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3205. typedef struct tagHELPINFO {
  3206. UINT cbSize;
  3207. int iContextType;
  3208. int iCtrlId;
  3209. HANDLE hItemHandle;
  3210. DWORD_PTR dwContextId;
  3211. POINT MousePos;
  3212. } HELPINFO,*LPHELPINFO;
  3213. WINUSERAPI WINBOOL WINAPI SetWindowContextHelpId(HWND,DWORD);
  3214. WINUSERAPI DWORD WINAPI GetWindowContextHelpId(HWND);
  3215. WINUSERAPI WINBOOL WINAPI SetMenuContextHelpId(HMENU,DWORD);
  3216. WINUSERAPI DWORD WINAPI GetMenuContextHelpId(HMENU);
  3217. #endif
  3218. #ifndef NOMB
  3219. #define MB_OK __MSABI_LONG(0x00000000)
  3220. #define MB_OKCANCEL __MSABI_LONG(0x00000001)
  3221. #define MB_ABORTRETRYIGNORE __MSABI_LONG(0x00000002)
  3222. #define MB_YESNOCANCEL __MSABI_LONG(0x00000003)
  3223. #define MB_YESNO __MSABI_LONG(0x00000004)
  3224. #define MB_RETRYCANCEL __MSABI_LONG(0x00000005)
  3225. #define MB_CANCELTRYCONTINUE __MSABI_LONG(0x00000006)
  3226. #define MB_ICONHAND __MSABI_LONG(0x00000010)
  3227. #define MB_ICONQUESTION __MSABI_LONG(0x00000020)
  3228. #define MB_ICONEXCLAMATION __MSABI_LONG(0x00000030)
  3229. #define MB_ICONASTERISK __MSABI_LONG(0x00000040)
  3230. #define MB_USERICON __MSABI_LONG(0x00000080)
  3231. #define MB_ICONWARNING MB_ICONEXCLAMATION
  3232. #define MB_ICONERROR MB_ICONHAND
  3233. #define MB_ICONINFORMATION MB_ICONASTERISK
  3234. #define MB_ICONSTOP MB_ICONHAND
  3235. #define MB_DEFBUTTON1 __MSABI_LONG(0x00000000)
  3236. #define MB_DEFBUTTON2 __MSABI_LONG(0x00000100)
  3237. #define MB_DEFBUTTON3 __MSABI_LONG(0x00000200)
  3238. #define MB_DEFBUTTON4 __MSABI_LONG(0x00000300)
  3239. #define MB_APPLMODAL __MSABI_LONG(0x00000000)
  3240. #define MB_SYSTEMMODAL __MSABI_LONG(0x00001000)
  3241. #define MB_TASKMODAL __MSABI_LONG(0x00002000)
  3242. #define MB_HELP __MSABI_LONG(0x00004000)
  3243. #define MB_NOFOCUS __MSABI_LONG(0x00008000)
  3244. #define MB_SETFOREGROUND __MSABI_LONG(0x00010000)
  3245. #define MB_DEFAULT_DESKTOP_ONLY __MSABI_LONG(0x00020000)
  3246. #define MB_TOPMOST __MSABI_LONG(0x00040000)
  3247. #define MB_RIGHT __MSABI_LONG(0x00080000)
  3248. #define MB_RTLREADING __MSABI_LONG(0x00100000)
  3249. #define MB_SERVICE_NOTIFICATION __MSABI_LONG(0x00200000)
  3250. #define MB_SERVICE_NOTIFICATION_NT3X __MSABI_LONG(0x00040000)
  3251. #define MB_TYPEMASK __MSABI_LONG(0x0000000F)
  3252. #define MB_ICONMASK __MSABI_LONG(0x000000F0)
  3253. #define MB_DEFMASK __MSABI_LONG(0x00000F00)
  3254. #define MB_MODEMASK __MSABI_LONG(0x00003000)
  3255. #define MB_MISCMASK __MSABI_LONG(0x0000C000)
  3256. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3257. #define MessageBox __MINGW_NAME_AW(MessageBox)
  3258. #define MessageBoxEx __MINGW_NAME_AW(MessageBoxEx)
  3259. WINUSERAPI int WINAPI MessageBoxA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType);
  3260. WINUSERAPI int WINAPI MessageBoxW(HWND hWnd,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType);
  3261. WINUSERAPI int WINAPI MessageBoxExA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType,WORD wLanguageId);
  3262. WINUSERAPI int WINAPI MessageBoxExW(HWND hWnd,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType,WORD wLanguageId);
  3263. typedef VOID (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
  3264. typedef struct tagMSGBOXPARAMSA {
  3265. UINT cbSize;
  3266. HWND hwndOwner;
  3267. HINSTANCE hInstance;
  3268. LPCSTR lpszText;
  3269. LPCSTR lpszCaption;
  3270. DWORD dwStyle;
  3271. LPCSTR lpszIcon;
  3272. DWORD_PTR dwContextHelpId;
  3273. MSGBOXCALLBACK lpfnMsgBoxCallback;
  3274. DWORD dwLanguageId;
  3275. } MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA;
  3276. typedef struct tagMSGBOXPARAMSW {
  3277. UINT cbSize;
  3278. HWND hwndOwner;
  3279. HINSTANCE hInstance;
  3280. LPCWSTR lpszText;
  3281. LPCWSTR lpszCaption;
  3282. DWORD dwStyle;
  3283. LPCWSTR lpszIcon;
  3284. DWORD_PTR dwContextHelpId;
  3285. MSGBOXCALLBACK lpfnMsgBoxCallback;
  3286. DWORD dwLanguageId;
  3287. } MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW;
  3288. __MINGW_TYPEDEF_AW(MSGBOXPARAMS)
  3289. __MINGW_TYPEDEF_AW(PMSGBOXPARAMS)
  3290. __MINGW_TYPEDEF_AW(LPMSGBOXPARAMS)
  3291. #define MessageBoxIndirect __MINGW_NAME_AW(MessageBoxIndirect)
  3292. WINUSERAPI int WINAPI MessageBoxIndirectA(CONST MSGBOXPARAMSA *lpmbp);
  3293. WINUSERAPI int WINAPI MessageBoxIndirectW(CONST MSGBOXPARAMSW *lpmbp);
  3294. WINUSERAPI WINBOOL WINAPI MessageBeep(UINT uType);
  3295. #endif
  3296. #endif
  3297. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3298. WINUSERAPI int WINAPI ShowCursor(WINBOOL bShow);
  3299. WINUSERAPI WINBOOL WINAPI SetCursorPos(int X,int Y);
  3300. WINUSERAPI HCURSOR WINAPI SetCursor(HCURSOR hCursor);
  3301. WINUSERAPI WINBOOL WINAPI GetCursorPos(LPPOINT lpPoint);
  3302. WINUSERAPI WINBOOL WINAPI ClipCursor(CONST RECT *lpRect);
  3303. WINUSERAPI WINBOOL WINAPI GetClipCursor(LPRECT lpRect);
  3304. WINUSERAPI HCURSOR WINAPI GetCursor(VOID);
  3305. WINUSERAPI WINBOOL WINAPI CreateCaret(HWND hWnd,HBITMAP hBitmap,int nWidth,int nHeight);
  3306. WINUSERAPI UINT WINAPI GetCaretBlinkTime(VOID);
  3307. WINUSERAPI WINBOOL WINAPI SetCaretBlinkTime(UINT uMSeconds);
  3308. WINUSERAPI WINBOOL WINAPI DestroyCaret(VOID);
  3309. WINUSERAPI WINBOOL WINAPI HideCaret(HWND hWnd);
  3310. WINUSERAPI WINBOOL WINAPI ShowCaret(HWND hWnd);
  3311. WINUSERAPI WINBOOL WINAPI SetCaretPos(int X,int Y);
  3312. WINUSERAPI WINBOOL WINAPI GetCaretPos(LPPOINT lpPoint);
  3313. WINUSERAPI WINBOOL WINAPI ClientToScreen(HWND hWnd,LPPOINT lpPoint);
  3314. WINUSERAPI WINBOOL WINAPI ScreenToClient(HWND hWnd,LPPOINT lpPoint);
  3315. WINUSERAPI int WINAPI MapWindowPoints(HWND hWndFrom,HWND hWndTo,LPPOINT lpPoints,UINT cPoints);
  3316. WINUSERAPI HWND WINAPI WindowFromPoint(POINT Point);
  3317. WINUSERAPI HWND WINAPI ChildWindowFromPoint(HWND hWndParent,POINT Point);
  3318. WINUSERAPI HWND WINAPI ChildWindowFromPointEx(HWND hwnd,POINT pt,UINT flags);
  3319. #if WINVER >= 0x0600
  3320. WINUSERAPI WINBOOL WINAPI SetPhysicalCursorPos (int X, int Y);
  3321. WINUSERAPI WINBOOL WINAPI GetPhysicalCursorPos (LPPOINT lpPoint);
  3322. WINUSERAPI WINBOOL WINAPI LogicalToPhysicalPoint (HWND hWnd, LPPOINT lpPoint);
  3323. WINUSERAPI WINBOOL WINAPI PhysicalToLogicalPoint (HWND hWnd, LPPOINT lpPoint);
  3324. WINUSERAPI HWND WINAPI WindowFromPhysicalPoint (POINT Point);
  3325. #endif
  3326. #if WINVER >= 0x0603
  3327. WINUSERAPI WINBOOL WINAPI LogicalToPhysicalPointForPerMonitorDPI (HWND hwnd, LPPOINT lpPoint);
  3328. WINUSERAPI WINBOOL WINAPI PhysicalToLogicalPointForPerMonitorDPI (HWND hwnd, LPPOINT lpPoint);
  3329. #endif
  3330. #endif
  3331. #define CWP_ALL 0x0000
  3332. #define CWP_SKIPINVISIBLE 0x0001
  3333. #define CWP_SKIPDISABLED 0x0002
  3334. #define CWP_SKIPTRANSPARENT 0x0004
  3335. #ifndef NOCOLOR
  3336. #define CTLCOLOR_MSGBOX 0
  3337. #define CTLCOLOR_EDIT 1
  3338. #define CTLCOLOR_LISTBOX 2
  3339. #define CTLCOLOR_BTN 3
  3340. #define CTLCOLOR_DLG 4
  3341. #define CTLCOLOR_SCROLLBAR 5
  3342. #define CTLCOLOR_STATIC 6
  3343. #define CTLCOLOR_MAX 7
  3344. #define COLOR_SCROLLBAR 0
  3345. #define COLOR_BACKGROUND 1
  3346. #define COLOR_ACTIVECAPTION 2
  3347. #define COLOR_INACTIVECAPTION 3
  3348. #define COLOR_MENU 4
  3349. #define COLOR_WINDOW 5
  3350. #define COLOR_WINDOWFRAME 6
  3351. #define COLOR_MENUTEXT 7
  3352. #define COLOR_WINDOWTEXT 8
  3353. #define COLOR_CAPTIONTEXT 9
  3354. #define COLOR_ACTIVEBORDER 10
  3355. #define COLOR_INACTIVEBORDER 11
  3356. #define COLOR_APPWORKSPACE 12
  3357. #define COLOR_HIGHLIGHT 13
  3358. #define COLOR_HIGHLIGHTTEXT 14
  3359. #define COLOR_BTNFACE 15
  3360. #define COLOR_BTNSHADOW 16
  3361. #define COLOR_GRAYTEXT 17
  3362. #define COLOR_BTNTEXT 18
  3363. #define COLOR_INACTIVECAPTIONTEXT 19
  3364. #define COLOR_BTNHIGHLIGHT 20
  3365. #define COLOR_3DDKSHADOW 21
  3366. #define COLOR_3DLIGHT 22
  3367. #define COLOR_INFOTEXT 23
  3368. #define COLOR_INFOBK 24
  3369. #define COLOR_HOTLIGHT 26
  3370. #define COLOR_GRADIENTACTIVECAPTION 27
  3371. #define COLOR_GRADIENTINACTIVECAPTION 28
  3372. #define COLOR_MENUHILIGHT 29
  3373. #define COLOR_MENUBAR 30
  3374. #define COLOR_DESKTOP COLOR_BACKGROUND
  3375. #define COLOR_3DFACE COLOR_BTNFACE
  3376. #define COLOR_3DSHADOW COLOR_BTNSHADOW
  3377. #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
  3378. #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
  3379. #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
  3380. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3381. WINUSERAPI DWORD WINAPI GetSysColor(int nIndex);
  3382. WINUSERAPI HBRUSH WINAPI GetSysColorBrush(int nIndex);
  3383. WINUSERAPI WINBOOL WINAPI SetSysColors(int cElements,CONST INT *lpaElements,CONST COLORREF *lpaRgbValues);
  3384. #endif
  3385. #endif
  3386. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3387. WINUSERAPI WINBOOL WINAPI DrawFocusRect(HDC hDC,CONST RECT *lprc);
  3388. WINUSERAPI int WINAPI FillRect(HDC hDC,CONST RECT *lprc,HBRUSH hbr);
  3389. WINUSERAPI int WINAPI FrameRect(HDC hDC,CONST RECT *lprc,HBRUSH hbr);
  3390. WINUSERAPI WINBOOL WINAPI InvertRect(HDC hDC,CONST RECT *lprc);
  3391. WINUSERAPI WINBOOL WINAPI SetRect(LPRECT lprc,int xLeft,int yTop,int xRight,int yBottom);
  3392. WINUSERAPI WINBOOL WINAPI SetRectEmpty(LPRECT lprc);
  3393. WINUSERAPI WINBOOL WINAPI CopyRect(LPRECT lprcDst,CONST RECT *lprcSrc);
  3394. WINUSERAPI WINBOOL WINAPI InflateRect(LPRECT lprc,int dx,int dy);
  3395. WINUSERAPI WINBOOL WINAPI IntersectRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
  3396. WINUSERAPI WINBOOL WINAPI UnionRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
  3397. WINUSERAPI WINBOOL WINAPI SubtractRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
  3398. WINUSERAPI WINBOOL WINAPI OffsetRect(LPRECT lprc,int dx,int dy);
  3399. WINUSERAPI WINBOOL WINAPI IsRectEmpty(CONST RECT *lprc);
  3400. WINUSERAPI WINBOOL WINAPI EqualRect(CONST RECT *lprc1,CONST RECT *lprc2);
  3401. WINUSERAPI WINBOOL WINAPI PtInRect(CONST RECT *lprc,POINT pt);
  3402. #ifndef NOWINOFFSETS
  3403. #define GetWindowLong __MINGW_NAME_AW(GetWindowLong)
  3404. #define SetWindowLong __MINGW_NAME_AW(SetWindowLong)
  3405. #define GetClassLong __MINGW_NAME_AW(GetClassLong)
  3406. #define SetClassLong __MINGW_NAME_AW(SetClassLong)
  3407. WINUSERAPI WORD WINAPI GetWindowWord(HWND hWnd,int nIndex);
  3408. WINUSERAPI WORD WINAPI SetWindowWord(HWND hWnd,int nIndex,WORD wNewWord);
  3409. WINUSERAPI LONG WINAPI GetWindowLongA(HWND hWnd,int nIndex);
  3410. WINUSERAPI LONG WINAPI GetWindowLongW(HWND hWnd,int nIndex);
  3411. WINUSERAPI LONG WINAPI SetWindowLongA(HWND hWnd,int nIndex,LONG dwNewLong);
  3412. WINUSERAPI LONG WINAPI SetWindowLongW(HWND hWnd,int nIndex,LONG dwNewLong);
  3413. #ifdef _WIN64
  3414. #define GetWindowLongPtr __MINGW_NAME_AW(GetWindowLongPtr)
  3415. #define SetWindowLongPtr __MINGW_NAME_AW(SetWindowLongPtr)
  3416. WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrA(HWND hWnd,int nIndex);
  3417. WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrW(HWND hWnd,int nIndex);
  3418. WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrA(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
  3419. WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrW(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
  3420. #else
  3421. #define GetWindowLongPtr __MINGW_NAME_AW(GetWindowLongPtr)
  3422. #define SetWindowLongPtr __MINGW_NAME_AW(SetWindowLongPtr)
  3423. #define GetWindowLongPtrA GetWindowLongA
  3424. #define GetWindowLongPtrW GetWindowLongW
  3425. #define SetWindowLongPtrA SetWindowLongA
  3426. #define SetWindowLongPtrW SetWindowLongW
  3427. #endif
  3428. WINUSERAPI WORD WINAPI GetClassWord(HWND hWnd,int nIndex);
  3429. WINUSERAPI WORD WINAPI SetClassWord(HWND hWnd,int nIndex,WORD wNewWord);
  3430. WINUSERAPI DWORD WINAPI GetClassLongA(HWND hWnd,int nIndex);
  3431. WINUSERAPI DWORD WINAPI GetClassLongW(HWND hWnd,int nIndex);
  3432. WINUSERAPI DWORD WINAPI SetClassLongA(HWND hWnd,int nIndex,LONG dwNewLong);
  3433. WINUSERAPI DWORD WINAPI SetClassLongW(HWND hWnd,int nIndex,LONG dwNewLong);
  3434. #ifdef _WIN64
  3435. #define GetClassLongPtr __MINGW_NAME_AW(GetClassLongPtr)
  3436. #define SetClassLongPtr __MINGW_NAME_AW(SetClassLongPtr)
  3437. WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrA(HWND hWnd,int nIndex);
  3438. WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrW(HWND hWnd,int nIndex);
  3439. WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrA(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
  3440. WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrW(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
  3441. #else
  3442. #define GetClassLongPtr __MINGW_NAME_AW(GetClassLongPtr)
  3443. #define SetClassLongPtr __MINGW_NAME_AW(SetClassLongPtr)
  3444. #define GetClassLongPtrA GetClassLongA
  3445. #define GetClassLongPtrW GetClassLongW
  3446. #define SetClassLongPtrA SetClassLongA
  3447. #define SetClassLongPtrW SetClassLongW
  3448. #endif
  3449. #endif
  3450. #define FindWindow __MINGW_NAME_AW(FindWindow)
  3451. #define FindWindowEx __MINGW_NAME_AW(FindWindowEx)
  3452. #define GetClassName __MINGW_NAME_AW(GetClassName)
  3453. WINUSERAPI WINBOOL WINAPI GetProcessDefaultLayout(DWORD *pdwDefaultLayout);
  3454. WINUSERAPI WINBOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout);
  3455. WINUSERAPI HWND WINAPI GetDesktopWindow(VOID);
  3456. WINUSERAPI HWND WINAPI GetParent(HWND hWnd);
  3457. WINUSERAPI HWND WINAPI SetParent(HWND hWndChild,HWND hWndNewParent);
  3458. WINUSERAPI WINBOOL WINAPI EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc,LPARAM lParam);
  3459. WINUSERAPI HWND WINAPI FindWindowA(LPCSTR lpClassName,LPCSTR lpWindowName);
  3460. WINUSERAPI HWND WINAPI FindWindowW(LPCWSTR lpClassName,LPCWSTR lpWindowName);
  3461. WINUSERAPI HWND WINAPI FindWindowExA(HWND hWndParent,HWND hWndChildAfter,LPCSTR lpszClass,LPCSTR lpszWindow);
  3462. WINUSERAPI HWND WINAPI FindWindowExW(HWND hWndParent,HWND hWndChildAfter,LPCWSTR lpszClass,LPCWSTR lpszWindow);
  3463. WINUSERAPI HWND WINAPI GetShellWindow(VOID);
  3464. WINUSERAPI WINBOOL WINAPI RegisterShellHookWindow(HWND hwnd);
  3465. WINUSERAPI WINBOOL WINAPI DeregisterShellHookWindow(HWND hwnd);
  3466. WINUSERAPI WINBOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
  3467. WINUSERAPI WINBOOL WINAPI EnumThreadWindows(DWORD dwThreadId,WNDENUMPROC lpfn,LPARAM lParam);
  3468. #define EnumTaskWindows(hTask,lpfn,lParam) EnumThreadWindows(HandleToUlong(hTask),lpfn,lParam)
  3469. WINUSERAPI int WINAPI GetClassNameA(HWND hWnd,LPSTR lpClassName,int nMaxCount);
  3470. WINUSERAPI int WINAPI GetClassNameW(HWND hWnd,LPWSTR lpClassName,int nMaxCount);
  3471. WINUSERAPI HWND WINAPI GetTopWindow(HWND hWnd);
  3472. #define GetNextWindow(hWnd,wCmd) GetWindow(hWnd,wCmd)
  3473. #define GetSysModalWindow() (NULL)
  3474. #define SetSysModalWindow(hWnd) (NULL)
  3475. WINUSERAPI DWORD WINAPI GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId);
  3476. WINUSERAPI WINBOOL WINAPI IsGUIThread(WINBOOL bConvert);
  3477. #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd,NULL))
  3478. WINUSERAPI HWND WINAPI GetLastActivePopup(HWND hWnd);
  3479. #define GW_HWNDFIRST 0
  3480. #define GW_HWNDLAST 1
  3481. #define GW_HWNDNEXT 2
  3482. #define GW_HWNDPREV 3
  3483. #define GW_OWNER 4
  3484. #define GW_CHILD 5
  3485. #if WINVER <= 0x0400
  3486. #define GW_MAX 5
  3487. #else
  3488. #define GW_ENABLEDPOPUP 6
  3489. #define GW_MAX 6
  3490. #endif
  3491. WINUSERAPI HWND WINAPI GetWindow(HWND hWnd,UINT uCmd);
  3492. #ifndef NOWH
  3493. #define SetWindowsHook __MINGW_NAME_AW(SetWindowsHook)
  3494. #define SetWindowsHookEx __MINGW_NAME_AW(SetWindowsHookEx)
  3495. #ifdef STRICT
  3496. WINUSERAPI HHOOK WINAPI SetWindowsHookA (int nFilterType, HOOKPROC pfnFilterProc);
  3497. WINUSERAPI HHOOK WINAPI SetWindowsHookW (int nFilterType, HOOKPROC pfnFilterProc);
  3498. #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx (*phhk, nCode, wParam, lParam)
  3499. #else
  3500. WINUSERAPI HOOKPROC WINAPI SetWindowsHookA (int nFilterType, HOOKPROC pfnFilterProc);
  3501. WINUSERAPI HOOKPROC WINAPI SetWindowsHookW (int nFilterType, HOOKPROC pfnFilterProc);
  3502. #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx ((HHOOK) *phhk, nCode, wParam, lParam)
  3503. #endif
  3504. WINUSERAPI WINBOOL WINAPI UnhookWindowsHook (int nCode, HOOKPROC pfnFilterProc);
  3505. WINUSERAPI HHOOK WINAPI SetWindowsHookExA (int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId);
  3506. WINUSERAPI HHOOK WINAPI SetWindowsHookExW (int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId);
  3507. WINUSERAPI WINBOOL WINAPI UnhookWindowsHookEx (HHOOK hhk);
  3508. WINUSERAPI LRESULT WINAPI CallNextHookEx (HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam);
  3509. #endif
  3510. #endif
  3511. #ifndef NOMENUS
  3512. #define MF_INSERT __MSABI_LONG(0x00000000)
  3513. #define MF_CHANGE __MSABI_LONG(0x00000080)
  3514. #define MF_APPEND __MSABI_LONG(0x00000100)
  3515. #define MF_DELETE __MSABI_LONG(0x00000200)
  3516. #define MF_REMOVE __MSABI_LONG(0x00001000)
  3517. #define MF_BYCOMMAND __MSABI_LONG(0x00000000)
  3518. #define MF_BYPOSITION __MSABI_LONG(0x00000400)
  3519. #define MF_SEPARATOR __MSABI_LONG(0x00000800)
  3520. #define MF_ENABLED __MSABI_LONG(0x00000000)
  3521. #define MF_GRAYED __MSABI_LONG(0x00000001)
  3522. #define MF_DISABLED __MSABI_LONG(0x00000002)
  3523. #define MF_UNCHECKED __MSABI_LONG(0x00000000)
  3524. #define MF_CHECKED __MSABI_LONG(0x00000008)
  3525. #define MF_USECHECKBITMAPS __MSABI_LONG(0x00000200)
  3526. #define MF_STRING __MSABI_LONG(0x00000000)
  3527. #define MF_BITMAP __MSABI_LONG(0x00000004)
  3528. #define MF_OWNERDRAW __MSABI_LONG(0x00000100)
  3529. #define MF_POPUP __MSABI_LONG(0x00000010)
  3530. #define MF_MENUBARBREAK __MSABI_LONG(0x00000020)
  3531. #define MF_MENUBREAK __MSABI_LONG(0x00000040)
  3532. #define MF_UNHILITE __MSABI_LONG(0x00000000)
  3533. #define MF_HILITE __MSABI_LONG(0x00000080)
  3534. #define MF_DEFAULT __MSABI_LONG(0x00001000)
  3535. #define MF_SYSMENU __MSABI_LONG(0x00002000)
  3536. #define MF_HELP __MSABI_LONG(0x00004000)
  3537. #define MF_RIGHTJUSTIFY __MSABI_LONG(0x00004000)
  3538. #define MF_MOUSESELECT __MSABI_LONG(0x00008000)
  3539. #define MF_END __MSABI_LONG(0x00000080)
  3540. #define MFT_STRING MF_STRING
  3541. #define MFT_BITMAP MF_BITMAP
  3542. #define MFT_MENUBARBREAK MF_MENUBARBREAK
  3543. #define MFT_MENUBREAK MF_MENUBREAK
  3544. #define MFT_OWNERDRAW MF_OWNERDRAW
  3545. #define MFT_RADIOCHECK __MSABI_LONG(0x00000200)
  3546. #define MFT_SEPARATOR MF_SEPARATOR
  3547. #define MFT_RIGHTORDER __MSABI_LONG(0x00002000)
  3548. #define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY
  3549. #define MFS_GRAYED __MSABI_LONG(0x00000003)
  3550. #define MFS_DISABLED MFS_GRAYED
  3551. #define MFS_CHECKED MF_CHECKED
  3552. #define MFS_HILITE MF_HILITE
  3553. #define MFS_ENABLED MF_ENABLED
  3554. #define MFS_UNCHECKED MF_UNCHECKED
  3555. #define MFS_UNHILITE MF_UNHILITE
  3556. #define MFS_DEFAULT MF_DEFAULT
  3557. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3558. WINUSERAPI WINBOOL WINAPI CheckMenuRadioItem(HMENU hmenu,UINT first,UINT last,UINT check,UINT flags);
  3559. typedef struct {
  3560. WORD versionNumber;
  3561. WORD offset;
  3562. } MENUITEMTEMPLATEHEADER,*PMENUITEMTEMPLATEHEADER;
  3563. typedef struct {
  3564. WORD mtOption;
  3565. WORD mtID;
  3566. WCHAR mtString[1];
  3567. } MENUITEMTEMPLATE,*PMENUITEMTEMPLATE;
  3568. #define MF_END __MSABI_LONG(0x00000080)
  3569. #endif
  3570. #endif
  3571. #ifndef NOSYSCOMMANDS
  3572. #define SC_SIZE 0xF000
  3573. #define SC_MOVE 0xF010
  3574. #define SC_MINIMIZE 0xF020
  3575. #define SC_MAXIMIZE 0xF030
  3576. #define SC_NEXTWINDOW 0xF040
  3577. #define SC_PREVWINDOW 0xF050
  3578. #define SC_CLOSE 0xF060
  3579. #define SC_VSCROLL 0xF070
  3580. #define SC_HSCROLL 0xF080
  3581. #define SC_MOUSEMENU 0xF090
  3582. #define SC_KEYMENU 0xF100
  3583. #define SC_ARRANGE 0xF110
  3584. #define SC_RESTORE 0xF120
  3585. #define SC_TASKLIST 0xF130
  3586. #define SC_SCREENSAVE 0xF140
  3587. #define SC_HOTKEY 0xF150
  3588. #define SC_DEFAULT 0xF160
  3589. #define SC_MONITORPOWER 0xF170
  3590. #define SC_CONTEXTHELP 0xF180
  3591. #define SC_SEPARATOR 0xF00F
  3592. #if WINVER >= 0x0600
  3593. #define SCF_ISSECURE 0x00000001
  3594. #endif
  3595. #define GET_SC_WPARAM(wParam) ((int)wParam &0xfff0)
  3596. #define SC_ICON SC_MINIMIZE
  3597. #define SC_ZOOM SC_MAXIMIZE
  3598. #endif
  3599. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3600. #define LoadBitmap __MINGW_NAME_AW(LoadBitmap)
  3601. #define LoadCursor __MINGW_NAME_AW(LoadCursor)
  3602. #define LoadCursorFromFile __MINGW_NAME_AW(LoadCursorFromFile)
  3603. WINUSERAPI HBITMAP WINAPI LoadBitmapA(HINSTANCE hInstance,LPCSTR lpBitmapName);
  3604. WINUSERAPI HBITMAP WINAPI LoadBitmapW(HINSTANCE hInstance,LPCWSTR lpBitmapName);
  3605. WINUSERAPI HCURSOR WINAPI LoadCursorA(HINSTANCE hInstance,LPCSTR lpCursorName);
  3606. WINUSERAPI HCURSOR WINAPI LoadCursorW(HINSTANCE hInstance,LPCWSTR lpCursorName);
  3607. WINUSERAPI HCURSOR WINAPI LoadCursorFromFileA(LPCSTR lpFileName);
  3608. WINUSERAPI HCURSOR WINAPI LoadCursorFromFileW(LPCWSTR lpFileName);
  3609. WINUSERAPI HCURSOR WINAPI CreateCursor(HINSTANCE hInst,int xHotSpot,int yHotSpot,int nWidth,int nHeight,CONST VOID *pvANDPlane,CONST VOID *pvXORPlane);
  3610. WINUSERAPI WINBOOL WINAPI DestroyCursor(HCURSOR hCursor);
  3611. #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
  3612. #endif
  3613. #define IDC_ARROW MAKEINTRESOURCE(32512)
  3614. #define IDC_IBEAM MAKEINTRESOURCE(32513)
  3615. #define IDC_WAIT MAKEINTRESOURCE(32514)
  3616. #define IDC_CROSS MAKEINTRESOURCE(32515)
  3617. #define IDC_UPARROW MAKEINTRESOURCE(32516)
  3618. #define IDC_SIZE MAKEINTRESOURCE(32640)
  3619. #define IDC_ICON MAKEINTRESOURCE(32641)
  3620. #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
  3621. #define IDC_SIZENESW MAKEINTRESOURCE(32643)
  3622. #define IDC_SIZEWE MAKEINTRESOURCE(32644)
  3623. #define IDC_SIZENS MAKEINTRESOURCE(32645)
  3624. #define IDC_SIZEALL MAKEINTRESOURCE(32646)
  3625. #define IDC_NO MAKEINTRESOURCE(32648)
  3626. #define IDC_HAND MAKEINTRESOURCE(32649)
  3627. #define IDC_APPSTARTING MAKEINTRESOURCE(32650)
  3628. #define IDC_HELP MAKEINTRESOURCE(32651)
  3629. #if WINVER >= 0x0606
  3630. #define IDC_PIN MAKEINTRESOURCE(32671)
  3631. #define IDC_PERSON MAKEINTRESOURCE(32672)
  3632. #endif
  3633. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3634. typedef struct _ICONINFO {
  3635. WINBOOL fIcon;
  3636. DWORD xHotspot;
  3637. DWORD yHotspot;
  3638. HBITMAP hbmMask;
  3639. HBITMAP hbmColor;
  3640. } ICONINFO;
  3641. typedef ICONINFO *PICONINFO;
  3642. #define LoadIcon __MINGW_NAME_AW(LoadIcon)
  3643. #define PrivateExtractIcons __MINGW_NAME_AW(PrivateExtractIcons)
  3644. WINUSERAPI WINBOOL WINAPI SetSystemCursor(HCURSOR hcur,DWORD id);
  3645. WINUSERAPI HICON WINAPI LoadIconA(HINSTANCE hInstance,LPCSTR lpIconName);
  3646. WINUSERAPI HICON WINAPI LoadIconW(HINSTANCE hInstance,LPCWSTR lpIconName);
  3647. WINUSERAPI UINT WINAPI PrivateExtractIconsA(LPCSTR szFileName,int nIconIndex,int cxIcon,int cyIcon,HICON *phicon,UINT *piconid,UINT nIcons,UINT flags);
  3648. WINUSERAPI UINT WINAPI PrivateExtractIconsW(LPCWSTR szFileName,int nIconIndex,int cxIcon,int cyIcon,HICON *phicon,UINT *piconid,UINT nIcons,UINT flags);
  3649. WINUSERAPI HICON WINAPI CreateIcon(HINSTANCE hInstance,int nWidth,int nHeight,BYTE cPlanes,BYTE cBitsPixel,CONST BYTE *lpbANDbits,CONST BYTE *lpbXORbits);
  3650. WINUSERAPI WINBOOL WINAPI DestroyIcon(HICON hIcon);
  3651. WINUSERAPI int WINAPI LookupIconIdFromDirectory(PBYTE presbits,WINBOOL fIcon);
  3652. WINUSERAPI int WINAPI LookupIconIdFromDirectoryEx(PBYTE presbits,WINBOOL fIcon,int cxDesired,int cyDesired,UINT Flags);
  3653. WINUSERAPI HICON WINAPI CreateIconFromResource(PBYTE presbits,DWORD dwResSize,WINBOOL fIcon,DWORD dwVer);
  3654. WINUSERAPI HICON WINAPI CreateIconFromResourceEx(PBYTE presbits,DWORD dwResSize,WINBOOL fIcon,DWORD dwVer,int cxDesired,int cyDesired,UINT Flags);
  3655. typedef struct tagCURSORSHAPE {
  3656. int xHotSpot;
  3657. int yHotSpot;
  3658. int cx;
  3659. int cy;
  3660. int cbWidth;
  3661. BYTE Planes;
  3662. BYTE BitsPixel;
  3663. } CURSORSHAPE,*LPCURSORSHAPE;
  3664. #endif
  3665. #define IMAGE_BITMAP 0
  3666. #define IMAGE_ICON 1
  3667. #define IMAGE_CURSOR 2
  3668. #define IMAGE_ENHMETAFILE 3
  3669. #define LR_DEFAULTCOLOR 0x0000
  3670. #define LR_MONOCHROME 0x0001
  3671. #define LR_COLOR 0x0002
  3672. #define LR_COPYRETURNORG 0x0004
  3673. #define LR_COPYDELETEORG 0x0008
  3674. #define LR_LOADFROMFILE 0x0010
  3675. #define LR_LOADTRANSPARENT 0x0020
  3676. #define LR_DEFAULTSIZE 0x0040
  3677. #define LR_VGACOLOR 0x0080
  3678. #define LR_LOADMAP3DCOLORS 0x1000
  3679. #define LR_CREATEDIBSECTION 0x2000
  3680. #define LR_COPYFROMRESOURCE 0x4000
  3681. #define LR_SHARED 0x8000
  3682. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3683. #define LoadImage __MINGW_NAME_AW(LoadImage)
  3684. WINUSERAPI HANDLE WINAPI LoadImageA(HINSTANCE hInst,LPCSTR name,UINT type,int cx,int cy,UINT fuLoad);
  3685. WINUSERAPI HANDLE WINAPI LoadImageW(HINSTANCE hInst,LPCWSTR name,UINT type,int cx,int cy,UINT fuLoad);
  3686. WINUSERAPI HANDLE WINAPI CopyImage(HANDLE h,UINT type,int cx,int cy,UINT flags);
  3687. WINUSERAPI WINBOOL WINAPI DrawIconEx(HDC hdc,int xLeft,int yTop,HICON hIcon,int cxWidth,int cyWidth,UINT istepIfAniCur,HBRUSH hbrFlickerFreeDraw,UINT diFlags);
  3688. WINUSERAPI HICON WINAPI CreateIconIndirect(PICONINFO piconinfo);
  3689. WINUSERAPI HICON WINAPI CopyIcon(HICON hIcon);
  3690. WINUSERAPI WINBOOL WINAPI GetIconInfo(HICON hIcon,PICONINFO piconinfo);
  3691. #if _WIN32_WINNT >= 0x0600
  3692. typedef struct _ICONINFOEXA {
  3693. DWORD cbSize;
  3694. WINBOOL fIcon;
  3695. DWORD xHotspot;
  3696. DWORD yHotspot;
  3697. HBITMAP hbmMask;
  3698. HBITMAP hbmColor;
  3699. WORD wResID;
  3700. CHAR szModName[MAX_PATH];
  3701. CHAR szResName[MAX_PATH];
  3702. } ICONINFOEXA,*PICONINFOEXA;
  3703. typedef struct _ICONINFOEXW {
  3704. DWORD cbSize;
  3705. WINBOOL fIcon;
  3706. DWORD xHotspot;
  3707. DWORD yHotspot;
  3708. HBITMAP hbmMask;
  3709. HBITMAP hbmColor;
  3710. WORD wResID;
  3711. WCHAR szModName[MAX_PATH];
  3712. WCHAR szResName[MAX_PATH];
  3713. } ICONINFOEXW,*PICONINFOEXW;
  3714. __MINGW_TYPEDEF_AW (ICONINFOEX);
  3715. __MINGW_TYPEDEF_AW (PICONINFOEX);
  3716. #define GetIconInfoEx __MINGW_NAME_AW(GetIconInfoEx)
  3717. WINUSERAPI WINBOOL WINAPI GetIconInfoExA (HICON hicon, PICONINFOEXA piconinfo);
  3718. WINUSERAPI WINBOOL WINAPI GetIconInfoExW (HICON hicon, PICONINFOEXW piconinfo);
  3719. #endif
  3720. #endif
  3721. #define DI_MASK 0x0001
  3722. #define DI_IMAGE 0x0002
  3723. #define DI_NORMAL 0x0003
  3724. #define DI_COMPAT 0x0004
  3725. #define DI_DEFAULTSIZE 0x0008
  3726. #define DI_NOMIRROR 0x0010
  3727. #define RES_ICON 1
  3728. #define RES_CURSOR 2
  3729. #ifdef OEMRESOURCE
  3730. #define OBM_CLOSE 32754
  3731. #define OBM_UPARROW 32753
  3732. #define OBM_DNARROW 32752
  3733. #define OBM_RGARROW 32751
  3734. #define OBM_LFARROW 32750
  3735. #define OBM_REDUCE 32749
  3736. #define OBM_ZOOM 32748
  3737. #define OBM_RESTORE 32747
  3738. #define OBM_REDUCED 32746
  3739. #define OBM_ZOOMD 32745
  3740. #define OBM_RESTORED 32744
  3741. #define OBM_UPARROWD 32743
  3742. #define OBM_DNARROWD 32742
  3743. #define OBM_RGARROWD 32741
  3744. #define OBM_LFARROWD 32740
  3745. #define OBM_MNARROW 32739
  3746. #define OBM_COMBO 32738
  3747. #define OBM_UPARROWI 32737
  3748. #define OBM_DNARROWI 32736
  3749. #define OBM_RGARROWI 32735
  3750. #define OBM_LFARROWI 32734
  3751. #define OBM_OLD_CLOSE 32767
  3752. #define OBM_SIZE 32766
  3753. #define OBM_OLD_UPARROW 32765
  3754. #define OBM_OLD_DNARROW 32764
  3755. #define OBM_OLD_RGARROW 32763
  3756. #define OBM_OLD_LFARROW 32762
  3757. #define OBM_BTSIZE 32761
  3758. #define OBM_CHECK 32760
  3759. #define OBM_CHECKBOXES 32759
  3760. #define OBM_BTNCORNERS 32758
  3761. #define OBM_OLD_REDUCE 32757
  3762. #define OBM_OLD_ZOOM 32756
  3763. #define OBM_OLD_RESTORE 32755
  3764. #define OCR_NORMAL 32512
  3765. #define OCR_IBEAM 32513
  3766. #define OCR_WAIT 32514
  3767. #define OCR_CROSS 32515
  3768. #define OCR_UP 32516
  3769. #define OCR_SIZE 32640
  3770. #define OCR_ICON 32641
  3771. #define OCR_SIZENWSE 32642
  3772. #define OCR_SIZENESW 32643
  3773. #define OCR_SIZEWE 32644
  3774. #define OCR_SIZENS 32645
  3775. #define OCR_SIZEALL 32646
  3776. #define OCR_ICOCUR 32647
  3777. #define OCR_NO 32648
  3778. #define OCR_HAND 32649
  3779. #define OCR_APPSTARTING 32650
  3780. #define OIC_SAMPLE 32512
  3781. #define OIC_HAND 32513
  3782. #define OIC_QUES 32514
  3783. #define OIC_BANG 32515
  3784. #define OIC_NOTE 32516
  3785. #define OIC_WINLOGO 32517
  3786. #define OIC_WARNING OIC_BANG
  3787. #define OIC_ERROR OIC_HAND
  3788. #define OIC_INFORMATION OIC_NOTE
  3789. #if WINVER >= 0x0600
  3790. #define OIC_SHIELD 32518
  3791. #endif
  3792. #endif
  3793. #define ORD_LANGDRIVER 1
  3794. #ifndef NOICONS
  3795. #ifdef RC_INVOKED
  3796. #define IDI_APPLICATION 32512
  3797. #define IDI_HAND 32513
  3798. #define IDI_QUESTION 32514
  3799. #define IDI_EXCLAMATION 32515
  3800. #define IDI_ASTERISK 32516
  3801. #define IDI_WINLOGO 32517
  3802. #if WINVER >= 0x0600
  3803. #define IDI_SHIELD 32518
  3804. #endif
  3805. #else
  3806. #define IDI_APPLICATION MAKEINTRESOURCE(32512)
  3807. #define IDI_HAND MAKEINTRESOURCE(32513)
  3808. #define IDI_QUESTION MAKEINTRESOURCE(32514)
  3809. #define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
  3810. #define IDI_ASTERISK MAKEINTRESOURCE(32516)
  3811. #define IDI_WINLOGO MAKEINTRESOURCE(32517)
  3812. #if WINVER >= 0x0600
  3813. #define IDI_SHIELD MAKEINTRESOURCE (32518)
  3814. #endif
  3815. #endif
  3816. #define IDI_WARNING IDI_EXCLAMATION
  3817. #define IDI_ERROR IDI_HAND
  3818. #define IDI_INFORMATION IDI_ASTERISK
  3819. #endif
  3820. #ifdef NOAPISET
  3821. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  3822. #define LoadString __MINGW_NAME_AW(LoadString)
  3823. WINUSERAPI int WINAPI LoadStringA (HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax);
  3824. WINUSERAPI int WINAPI LoadStringW (HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int cchBufferMax);
  3825. #endif
  3826. #endif
  3827. #define IDOK 1
  3828. #define IDCANCEL 2
  3829. #define IDABORT 3
  3830. #define IDRETRY 4
  3831. #define IDIGNORE 5
  3832. #define IDYES 6
  3833. #define IDNO 7
  3834. #define IDCLOSE 8
  3835. #define IDHELP 9
  3836. #define IDTRYAGAIN 10
  3837. #define IDCONTINUE 11
  3838. #ifndef IDTIMEOUT
  3839. #define IDTIMEOUT 32000
  3840. #endif
  3841. #ifndef NOCTLMGR
  3842. #ifndef NOWINSTYLES
  3843. #define ES_LEFT __MSABI_LONG(0x0000)
  3844. #define ES_CENTER __MSABI_LONG(0x0001)
  3845. #define ES_RIGHT __MSABI_LONG(0x0002)
  3846. #define ES_MULTILINE __MSABI_LONG(0x0004)
  3847. #define ES_UPPERCASE __MSABI_LONG(0x0008)
  3848. #define ES_LOWERCASE __MSABI_LONG(0x0010)
  3849. #define ES_PASSWORD __MSABI_LONG(0x0020)
  3850. #define ES_AUTOVSCROLL __MSABI_LONG(0x0040)
  3851. #define ES_AUTOHSCROLL __MSABI_LONG(0x0080)
  3852. #define ES_NOHIDESEL __MSABI_LONG(0x0100)
  3853. #define ES_OEMCONVERT __MSABI_LONG(0x0400)
  3854. #define ES_READONLY __MSABI_LONG(0x0800)
  3855. #define ES_WANTRETURN __MSABI_LONG(0x1000)
  3856. #define ES_NUMBER __MSABI_LONG(0x2000)
  3857. #endif
  3858. #define EN_SETFOCUS 0x0100
  3859. #define EN_KILLFOCUS 0x0200
  3860. #define EN_CHANGE 0x0300
  3861. #define EN_UPDATE 0x0400
  3862. #define EN_ERRSPACE 0x0500
  3863. #define EN_MAXTEXT 0x0501
  3864. #define EN_HSCROLL 0x0601
  3865. #define EN_VSCROLL 0x0602
  3866. #if _WIN32_WINNT >= 0x0500
  3867. #define EN_ALIGN_LTR_EC 0x0700
  3868. #define EN_ALIGN_RTL_EC 0x0701
  3869. #endif
  3870. #if WINVER >= 0x0604
  3871. #define EN_BEFORE_PASTE 0x0800
  3872. #define EN_AFTER_PASTE 0x0801
  3873. #endif
  3874. #if WINVER >= 0x0400
  3875. #define EC_LEFTMARGIN 0x0001
  3876. #define EC_RIGHTMARGIN 0x0002
  3877. #define EC_USEFONTINFO 0xffff
  3878. #endif
  3879. #define EMSIS_COMPOSITIONSTRING 0x0001
  3880. #define EIMES_GETCOMPSTRATONCE 0x0001
  3881. #define EIMES_CANCELCOMPSTRINFOCUS 0x0002
  3882. #define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
  3883. #ifndef NOWINMESSAGES
  3884. #define EM_GETSEL 0x00B0
  3885. #define EM_SETSEL 0x00B1
  3886. #define EM_GETRECT 0x00B2
  3887. #define EM_SETRECT 0x00B3
  3888. #define EM_SETRECTNP 0x00B4
  3889. #define EM_SCROLL 0x00B5
  3890. #define EM_LINESCROLL 0x00B6
  3891. #define EM_SCROLLCARET 0x00B7
  3892. #define EM_GETMODIFY 0x00B8
  3893. #define EM_SETMODIFY 0x00B9
  3894. #define EM_GETLINECOUNT 0x00BA
  3895. #define EM_LINEINDEX 0x00BB
  3896. #define EM_SETHANDLE 0x00BC
  3897. #define EM_GETHANDLE 0x00BD
  3898. #define EM_GETTHUMB 0x00BE
  3899. #define EM_LINELENGTH 0x00C1
  3900. #define EM_REPLACESEL 0x00C2
  3901. #define EM_GETLINE 0x00C4
  3902. #define EM_LIMITTEXT 0x00C5
  3903. #define EM_CANUNDO 0x00C6
  3904. #define EM_UNDO 0x00C7
  3905. #define EM_FMTLINES 0x00C8
  3906. #define EM_LINEFROMCHAR 0x00C9
  3907. #define EM_SETTABSTOPS 0x00CB
  3908. #define EM_SETPASSWORDCHAR 0x00CC
  3909. #define EM_EMPTYUNDOBUFFER 0x00CD
  3910. #define EM_GETFIRSTVISIBLELINE 0x00CE
  3911. #define EM_SETREADONLY 0x00CF
  3912. #define EM_SETWORDBREAKPROC 0x00D0
  3913. #define EM_GETWORDBREAKPROC 0x00D1
  3914. #define EM_GETPASSWORDCHAR 0x00D2
  3915. #define EM_SETMARGINS 0x00D3
  3916. #define EM_GETMARGINS 0x00D4
  3917. #define EM_SETLIMITTEXT EM_LIMITTEXT
  3918. #define EM_GETLIMITTEXT 0x00D5
  3919. #define EM_POSFROMCHAR 0x00D6
  3920. #define EM_CHARFROMPOS 0x00D7
  3921. #define EM_SETIMESTATUS 0x00D8
  3922. #define EM_GETIMESTATUS 0x00D9
  3923. #if WINVER >= 0x0604
  3924. #define EM_ENABLEFEATURE 0x00DA
  3925. #endif
  3926. #endif /* !NOWINMESSAGES */
  3927. #define WB_LEFT 0
  3928. #define WB_RIGHT 1
  3929. #define WB_ISDELIMITER 2
  3930. #define BS_PUSHBUTTON __MSABI_LONG(0x00000000)
  3931. #define BS_DEFPUSHBUTTON __MSABI_LONG(0x00000001)
  3932. #define BS_CHECKBOX __MSABI_LONG(0x00000002)
  3933. #define BS_AUTOCHECKBOX __MSABI_LONG(0x00000003)
  3934. #define BS_RADIOBUTTON __MSABI_LONG(0x00000004)
  3935. #define BS_3STATE __MSABI_LONG(0x00000005)
  3936. #define BS_AUTO3STATE __MSABI_LONG(0x00000006)
  3937. #define BS_GROUPBOX __MSABI_LONG(0x00000007)
  3938. #define BS_USERBUTTON __MSABI_LONG(0x00000008)
  3939. #define BS_AUTORADIOBUTTON __MSABI_LONG(0x00000009)
  3940. #define BS_PUSHBOX __MSABI_LONG(0x0000000A)
  3941. #define BS_OWNERDRAW __MSABI_LONG(0x0000000B)
  3942. #define BS_TYPEMASK __MSABI_LONG(0x0000000F)
  3943. #define BS_LEFTTEXT __MSABI_LONG(0x00000020)
  3944. #define BS_TEXT __MSABI_LONG(0x00000000)
  3945. #define BS_ICON __MSABI_LONG(0x00000040)
  3946. #define BS_BITMAP __MSABI_LONG(0x00000080)
  3947. #define BS_LEFT __MSABI_LONG(0x00000100)
  3948. #define BS_RIGHT __MSABI_LONG(0x00000200)
  3949. #define BS_CENTER __MSABI_LONG(0x00000300)
  3950. #define BS_TOP __MSABI_LONG(0x00000400)
  3951. #define BS_BOTTOM __MSABI_LONG(0x00000800)
  3952. #define BS_VCENTER __MSABI_LONG(0x00000C00)
  3953. #define BS_PUSHLIKE __MSABI_LONG(0x00001000)
  3954. #define BS_MULTILINE __MSABI_LONG(0x00002000)
  3955. #define BS_NOTIFY __MSABI_LONG(0x00004000)
  3956. #define BS_FLAT __MSABI_LONG(0x00008000)
  3957. #define BS_RIGHTBUTTON BS_LEFTTEXT
  3958. #define BN_CLICKED 0
  3959. #define BN_PAINT 1
  3960. #define BN_HILITE 2
  3961. #define BN_UNHILITE 3
  3962. #define BN_DISABLE 4
  3963. #define BN_DOUBLECLICKED 5
  3964. #define BN_PUSHED BN_HILITE
  3965. #define BN_UNPUSHED BN_UNHILITE
  3966. #define BN_DBLCLK BN_DOUBLECLICKED
  3967. #define BN_SETFOCUS 6
  3968. #define BN_KILLFOCUS 7
  3969. #define BM_GETCHECK 0x00F0
  3970. #define BM_SETCHECK 0x00F1
  3971. #define BM_GETSTATE 0x00F2
  3972. #define BM_SETSTATE 0x00F3
  3973. #define BM_SETSTYLE 0x00F4
  3974. #define BM_CLICK 0x00F5
  3975. #define BM_GETIMAGE 0x00F6
  3976. #define BM_SETIMAGE 0x00F7
  3977. #if WINVER >= 0x0600
  3978. #define BM_SETDONTCLICK 0x00f8
  3979. #endif
  3980. #define BST_UNCHECKED 0x0000
  3981. #define BST_CHECKED 0x0001
  3982. #define BST_INDETERMINATE 0x0002
  3983. #define BST_PUSHED 0x0004
  3984. #define BST_FOCUS 0x0008
  3985. #define SS_LEFT __MSABI_LONG(0x00000000)
  3986. #define SS_CENTER __MSABI_LONG(0x00000001)
  3987. #define SS_RIGHT __MSABI_LONG(0x00000002)
  3988. #define SS_ICON __MSABI_LONG(0x00000003)
  3989. #define SS_BLACKRECT __MSABI_LONG(0x00000004)
  3990. #define SS_GRAYRECT __MSABI_LONG(0x00000005)
  3991. #define SS_WHITERECT __MSABI_LONG(0x00000006)
  3992. #define SS_BLACKFRAME __MSABI_LONG(0x00000007)
  3993. #define SS_GRAYFRAME __MSABI_LONG(0x00000008)
  3994. #define SS_WHITEFRAME __MSABI_LONG(0x00000009)
  3995. #define SS_USERITEM __MSABI_LONG(0x0000000A)
  3996. #define SS_SIMPLE __MSABI_LONG(0x0000000B)
  3997. #define SS_LEFTNOWORDWRAP __MSABI_LONG(0x0000000C)
  3998. #define SS_OWNERDRAW __MSABI_LONG(0x0000000D)
  3999. #define SS_BITMAP __MSABI_LONG(0x0000000E)
  4000. #define SS_ENHMETAFILE __MSABI_LONG(0x0000000F)
  4001. #define SS_ETCHEDHORZ __MSABI_LONG(0x00000010)
  4002. #define SS_ETCHEDVERT __MSABI_LONG(0x00000011)
  4003. #define SS_ETCHEDFRAME __MSABI_LONG(0x00000012)
  4004. #define SS_TYPEMASK __MSABI_LONG(0x0000001F)
  4005. #define SS_REALSIZECONTROL __MSABI_LONG(0x00000040)
  4006. #define SS_NOPREFIX __MSABI_LONG(0x00000080)
  4007. #define SS_NOTIFY __MSABI_LONG(0x00000100)
  4008. #define SS_CENTERIMAGE __MSABI_LONG(0x00000200)
  4009. #define SS_RIGHTJUST __MSABI_LONG(0x00000400)
  4010. #define SS_REALSIZEIMAGE __MSABI_LONG(0x00000800)
  4011. #define SS_SUNKEN __MSABI_LONG(0x00001000)
  4012. #define SS_EDITCONTROL __MSABI_LONG(0x00002000)
  4013. #define SS_ENDELLIPSIS __MSABI_LONG(0x00004000)
  4014. #define SS_PATHELLIPSIS __MSABI_LONG(0x00008000)
  4015. #define SS_WORDELLIPSIS __MSABI_LONG(0x0000C000)
  4016. #define SS_ELLIPSISMASK __MSABI_LONG(0x0000C000)
  4017. #ifndef NOWINMESSAGES
  4018. #define STM_SETICON 0x0170
  4019. #define STM_GETICON 0x0171
  4020. #define STM_SETIMAGE 0x0172
  4021. #define STM_GETIMAGE 0x0173
  4022. #define STN_CLICKED 0
  4023. #define STN_DBLCLK 1
  4024. #define STN_ENABLE 2
  4025. #define STN_DISABLE 3
  4026. #define STM_MSGMAX 0x0174
  4027. #endif
  4028. #define WC_DIALOG (MAKEINTATOM(0x8002))
  4029. #define DWL_MSGRESULT 0
  4030. #define DWL_DLGPROC 4
  4031. #define DWL_USER 8
  4032. #ifdef _WIN64
  4033. #undef DWL_MSGRESULT
  4034. #undef DWL_DLGPROC
  4035. #undef DWL_USER
  4036. #endif
  4037. #define DWLP_MSGRESULT 0
  4038. #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
  4039. #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
  4040. #define DDL_READWRITE 0x0000
  4041. #define DDL_READONLY 0x0001
  4042. #define DDL_HIDDEN 0x0002
  4043. #define DDL_SYSTEM 0x0004
  4044. #define DDL_DIRECTORY 0x0010
  4045. #define DDL_ARCHIVE 0x0020
  4046. #define DDL_POSTMSGS 0x2000
  4047. #define DDL_DRIVES 0x4000
  4048. #define DDL_EXCLUSIVE 0x8000
  4049. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4050. #ifndef NOMSG
  4051. #define IsDialogMessage __MINGW_NAME_AW(IsDialogMessage)
  4052. WINUSERAPI WINBOOL WINAPI IsDialogMessageA(HWND hDlg,LPMSG lpMsg);
  4053. WINUSERAPI WINBOOL WINAPI IsDialogMessageW(HWND hDlg,LPMSG lpMsg);
  4054. #endif
  4055. #define DlgDirList __MINGW_NAME_AW(DlgDirList)
  4056. #define DlgDirSelectEx __MINGW_NAME_AW(DlgDirSelectEx)
  4057. #define DlgDirListComboBox __MINGW_NAME_AW(DlgDirListComboBox)
  4058. #define DlgDirSelectComboBoxEx __MINGW_NAME_AW(DlgDirSelectComboBoxEx)
  4059. WINUSERAPI WINBOOL WINAPI MapDialogRect(HWND hDlg,LPRECT lpRect);
  4060. WINUSERAPI int WINAPI DlgDirListA(HWND hDlg,LPSTR lpPathSpec,int nIDListBox,int nIDStaticPath,UINT uFileType);
  4061. WINUSERAPI int WINAPI DlgDirListW(HWND hDlg,LPWSTR lpPathSpec,int nIDListBox,int nIDStaticPath,UINT uFileType);
  4062. WINUSERAPI WINBOOL WINAPI DlgDirSelectExA(HWND hwndDlg,LPSTR lpString,int chCount,int idListBox);
  4063. WINUSERAPI WINBOOL WINAPI DlgDirSelectExW(HWND hwndDlg,LPWSTR lpString,int chCount,int idListBox);
  4064. WINUSERAPI int WINAPI DlgDirListComboBoxA(HWND hDlg,LPSTR lpPathSpec,int nIDComboBox,int nIDStaticPath,UINT uFiletype);
  4065. WINUSERAPI int WINAPI DlgDirListComboBoxW(HWND hDlg,LPWSTR lpPathSpec,int nIDComboBox,int nIDStaticPath,UINT uFiletype);
  4066. WINUSERAPI WINBOOL WINAPI DlgDirSelectComboBoxExA(HWND hwndDlg,LPSTR lpString,int cchOut,int idComboBox);
  4067. WINUSERAPI WINBOOL WINAPI DlgDirSelectComboBoxExW(HWND hwndDlg,LPWSTR lpString,int cchOut,int idComboBox);
  4068. #endif
  4069. #define DS_ABSALIGN __MSABI_LONG(0x01)
  4070. #define DS_SYSMODAL __MSABI_LONG(0x02)
  4071. #define DS_LOCALEDIT __MSABI_LONG(0x20)
  4072. #define DS_SETFONT __MSABI_LONG(0x40)
  4073. #define DS_MODALFRAME __MSABI_LONG(0x80)
  4074. #define DS_NOIDLEMSG __MSABI_LONG(0x100)
  4075. #define DS_SETFOREGROUND __MSABI_LONG(0x200)
  4076. #define DS_3DLOOK __MSABI_LONG(0x0004)
  4077. #define DS_FIXEDSYS __MSABI_LONG(0x0008)
  4078. #define DS_NOFAILCREATE __MSABI_LONG(0x0010)
  4079. #define DS_CONTROL __MSABI_LONG(0x0400)
  4080. #define DS_CENTER __MSABI_LONG(0x0800)
  4081. #define DS_CENTERMOUSE __MSABI_LONG(0x1000)
  4082. #define DS_CONTEXTHELP __MSABI_LONG(0x2000)
  4083. #define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
  4084. #if defined (_WIN32_WCE) && (_WIN32_WCE >= 0x0500)
  4085. #define DS_USEPIXELS __MSABI_LONG(0x8000)
  4086. #endif
  4087. #define DM_GETDEFID (WM_USER+0)
  4088. #define DM_SETDEFID (WM_USER+1)
  4089. #define DM_REPOSITION (WM_USER+2)
  4090. #define DC_HASDEFID 0x534B
  4091. #define DLGC_WANTARROWS 0x0001
  4092. #define DLGC_WANTTAB 0x0002
  4093. #define DLGC_WANTALLKEYS 0x0004
  4094. #define DLGC_WANTMESSAGE 0x0004
  4095. #define DLGC_HASSETSEL 0x0008
  4096. #define DLGC_DEFPUSHBUTTON 0x0010
  4097. #define DLGC_UNDEFPUSHBUTTON 0x0020
  4098. #define DLGC_RADIOBUTTON 0x0040
  4099. #define DLGC_WANTCHARS 0x0080
  4100. #define DLGC_STATIC 0x0100
  4101. #define DLGC_BUTTON 0x2000
  4102. #define LB_CTLCODE __MSABI_LONG(0)
  4103. #define LB_OKAY 0
  4104. #define LB_ERR (-1)
  4105. #define LB_ERRSPACE (-2)
  4106. #define LBN_ERRSPACE (-2)
  4107. #define LBN_SELCHANGE 1
  4108. #define LBN_DBLCLK 2
  4109. #define LBN_SELCANCEL 3
  4110. #define LBN_SETFOCUS 4
  4111. #define LBN_KILLFOCUS 5
  4112. #ifndef NOWINMESSAGES
  4113. #define LB_ADDSTRING 0x0180
  4114. #define LB_INSERTSTRING 0x0181
  4115. #define LB_DELETESTRING 0x0182
  4116. #define LB_SELITEMRANGEEX 0x0183
  4117. #define LB_RESETCONTENT 0x0184
  4118. #define LB_SETSEL 0x0185
  4119. #define LB_SETCURSEL 0x0186
  4120. #define LB_GETSEL 0x0187
  4121. #define LB_GETCURSEL 0x0188
  4122. #define LB_GETTEXT 0x0189
  4123. #define LB_GETTEXTLEN 0x018A
  4124. #define LB_GETCOUNT 0x018B
  4125. #define LB_SELECTSTRING 0x018C
  4126. #define LB_DIR 0x018D
  4127. #define LB_GETTOPINDEX 0x018E
  4128. #define LB_FINDSTRING 0x018F
  4129. #define LB_GETSELCOUNT 0x0190
  4130. #define LB_GETSELITEMS 0x0191
  4131. #define LB_SETTABSTOPS 0x0192
  4132. #define LB_GETHORIZONTALEXTENT 0x0193
  4133. #define LB_SETHORIZONTALEXTENT 0x0194
  4134. #define LB_SETCOLUMNWIDTH 0x0195
  4135. #define LB_ADDFILE 0x0196
  4136. #define LB_SETTOPINDEX 0x0197
  4137. #define LB_GETITEMRECT 0x0198
  4138. #define LB_GETITEMDATA 0x0199
  4139. #define LB_SETITEMDATA 0x019A
  4140. #define LB_SELITEMRANGE 0x019B
  4141. #define LB_SETANCHORINDEX 0x019C
  4142. #define LB_GETANCHORINDEX 0x019D
  4143. #define LB_SETCARETINDEX 0x019E
  4144. #define LB_GETCARETINDEX 0x019F
  4145. #define LB_SETITEMHEIGHT 0x01A0
  4146. #define LB_GETITEMHEIGHT 0x01A1
  4147. #define LB_FINDSTRINGEXACT 0x01A2
  4148. #define LB_SETLOCALE 0x01A5
  4149. #define LB_GETLOCALE 0x01A6
  4150. #define LB_SETCOUNT 0x01A7
  4151. #define LB_INITSTORAGE 0x01A8
  4152. #define LB_ITEMFROMPOINT 0x01A9
  4153. #if defined (_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
  4154. #define LB_MULTIPLEADDSTRING 0x01B1
  4155. #endif
  4156. #define LB_GETLISTBOXINFO 0x01B2
  4157. #if _WIN32_WINNT >= 0x0501
  4158. #define LB_MSGMAX 0x01B3
  4159. #elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
  4160. #define LB_MSGMAX 0x01B1
  4161. #elif WINVER >= 0x0400
  4162. #define LB_MSGMAX 0x01B0
  4163. #else
  4164. #define LB_MSGMAX 0x01A8
  4165. #endif
  4166. #endif /* !NOWINMESSAGES */
  4167. #ifndef NOWINSTYLES
  4168. #define LBS_NOTIFY __MSABI_LONG(0x0001)
  4169. #define LBS_SORT __MSABI_LONG(0x0002)
  4170. #define LBS_NOREDRAW __MSABI_LONG(0x0004)
  4171. #define LBS_MULTIPLESEL __MSABI_LONG(0x0008)
  4172. #define LBS_OWNERDRAWFIXED __MSABI_LONG(0x0010)
  4173. #define LBS_OWNERDRAWVARIABLE __MSABI_LONG(0x0020)
  4174. #define LBS_HASSTRINGS __MSABI_LONG(0x0040)
  4175. #define LBS_USETABSTOPS __MSABI_LONG(0x0080)
  4176. #define LBS_NOINTEGRALHEIGHT __MSABI_LONG(0x0100)
  4177. #define LBS_MULTICOLUMN __MSABI_LONG(0x0200)
  4178. #define LBS_WANTKEYBOARDINPUT __MSABI_LONG(0x0400)
  4179. #define LBS_EXTENDEDSEL __MSABI_LONG(0x0800)
  4180. #define LBS_DISABLENOSCROLL __MSABI_LONG(0x1000)
  4181. #define LBS_NODATA __MSABI_LONG(0x2000)
  4182. #define LBS_NOSEL __MSABI_LONG(0x4000)
  4183. #define LBS_COMBOBOX __MSABI_LONG(0x8000)
  4184. #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
  4185. #endif
  4186. #define CB_OKAY 0
  4187. #define CB_ERR (-1)
  4188. #define CB_ERRSPACE (-2)
  4189. #define CBN_ERRSPACE (-1)
  4190. #define CBN_SELCHANGE 1
  4191. #define CBN_DBLCLK 2
  4192. #define CBN_SETFOCUS 3
  4193. #define CBN_KILLFOCUS 4
  4194. #define CBN_EDITCHANGE 5
  4195. #define CBN_EDITUPDATE 6
  4196. #define CBN_DROPDOWN 7
  4197. #define CBN_CLOSEUP 8
  4198. #define CBN_SELENDOK 9
  4199. #define CBN_SELENDCANCEL 10
  4200. #ifndef NOWINSTYLES
  4201. #define CBS_SIMPLE __MSABI_LONG(0x0001)
  4202. #define CBS_DROPDOWN __MSABI_LONG(0x0002)
  4203. #define CBS_DROPDOWNLIST __MSABI_LONG(0x0003)
  4204. #define CBS_OWNERDRAWFIXED __MSABI_LONG(0x0010)
  4205. #define CBS_OWNERDRAWVARIABLE __MSABI_LONG(0x0020)
  4206. #define CBS_AUTOHSCROLL __MSABI_LONG(0x0040)
  4207. #define CBS_OEMCONVERT __MSABI_LONG(0x0080)
  4208. #define CBS_SORT __MSABI_LONG(0x0100)
  4209. #define CBS_HASSTRINGS __MSABI_LONG(0x0200)
  4210. #define CBS_NOINTEGRALHEIGHT __MSABI_LONG(0x0400)
  4211. #define CBS_DISABLENOSCROLL __MSABI_LONG(0x0800)
  4212. #define CBS_UPPERCASE __MSABI_LONG(0x2000)
  4213. #define CBS_LOWERCASE __MSABI_LONG(0x4000)
  4214. #endif
  4215. #ifndef NOWINMESSAGES
  4216. #define CB_GETEDITSEL 0x0140
  4217. #define CB_LIMITTEXT 0x0141
  4218. #define CB_SETEDITSEL 0x0142
  4219. #define CB_ADDSTRING 0x0143
  4220. #define CB_DELETESTRING 0x0144
  4221. #define CB_DIR 0x0145
  4222. #define CB_GETCOUNT 0x0146
  4223. #define CB_GETCURSEL 0x0147
  4224. #define CB_GETLBTEXT 0x0148
  4225. #define CB_GETLBTEXTLEN 0x0149
  4226. #define CB_INSERTSTRING 0x014A
  4227. #define CB_RESETCONTENT 0x014B
  4228. #define CB_FINDSTRING 0x014C
  4229. #define CB_SELECTSTRING 0x014D
  4230. #define CB_SETCURSEL 0x014E
  4231. #define CB_SHOWDROPDOWN 0x014F
  4232. #define CB_GETITEMDATA 0x0150
  4233. #define CB_SETITEMDATA 0x0151
  4234. #define CB_GETDROPPEDCONTROLRECT 0x0152
  4235. #define CB_SETITEMHEIGHT 0x0153
  4236. #define CB_GETITEMHEIGHT 0x0154
  4237. #define CB_SETEXTENDEDUI 0x0155
  4238. #define CB_GETEXTENDEDUI 0x0156
  4239. #define CB_GETDROPPEDSTATE 0x0157
  4240. #define CB_FINDSTRINGEXACT 0x0158
  4241. #define CB_SETLOCALE 0x0159
  4242. #define CB_GETLOCALE 0x015A
  4243. #define CB_GETTOPINDEX 0x015b
  4244. #define CB_SETTOPINDEX 0x015c
  4245. #define CB_GETHORIZONTALEXTENT 0x015d
  4246. #define CB_SETHORIZONTALEXTENT 0x015e
  4247. #define CB_GETDROPPEDWIDTH 0x015f
  4248. #define CB_SETDROPPEDWIDTH 0x0160
  4249. #define CB_INITSTORAGE 0x0161
  4250. #if defined (_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
  4251. #define CB_MULTIPLEADDSTRING 0x0163
  4252. #endif
  4253. #define CB_GETCOMBOBOXINFO 0x0164
  4254. #if _WIN32_WINNT >= 0x0501
  4255. #define CB_MSGMAX 0x0165
  4256. #elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
  4257. #define CB_MSGMAX 0x0163
  4258. #elif WINVER >= 0x0400
  4259. #define CB_MSGMAX 0x0162
  4260. #else
  4261. #define CB_MSGMAX 0x015B
  4262. #endif
  4263. #endif /* !NOWINMESSAGES */
  4264. #ifndef NOWINSTYLES
  4265. #define SBS_HORZ __MSABI_LONG(0x0000)
  4266. #define SBS_VERT __MSABI_LONG(0x0001)
  4267. #define SBS_TOPALIGN __MSABI_LONG(0x0002)
  4268. #define SBS_LEFTALIGN __MSABI_LONG(0x0002)
  4269. #define SBS_BOTTOMALIGN __MSABI_LONG(0x0004)
  4270. #define SBS_RIGHTALIGN __MSABI_LONG(0x0004)
  4271. #define SBS_SIZEBOXTOPLEFTALIGN __MSABI_LONG(0x0002)
  4272. #define SBS_SIZEBOXBOTTOMRIGHTALIGN __MSABI_LONG(0x0004)
  4273. #define SBS_SIZEBOX __MSABI_LONG(0x0008)
  4274. #define SBS_SIZEGRIP __MSABI_LONG(0x0010)
  4275. #endif
  4276. #ifndef NOWINMESSAGES
  4277. #define SBM_SETPOS 0x00E0
  4278. #define SBM_GETPOS 0x00E1
  4279. #define SBM_SETRANGE 0x00E2
  4280. #define SBM_SETRANGEREDRAW 0x00E6
  4281. #define SBM_GETRANGE 0x00E3
  4282. #define SBM_ENABLE_ARROWS 0x00E4
  4283. #define SBM_SETSCROLLINFO 0x00E9
  4284. #define SBM_GETSCROLLINFO 0x00EA
  4285. #define SBM_GETSCROLLBARINFO 0x00EB
  4286. #define SIF_RANGE 0x0001
  4287. #define SIF_PAGE 0x0002
  4288. #define SIF_POS 0x0004
  4289. #define SIF_DISABLENOSCROLL 0x0008
  4290. #define SIF_TRACKPOS 0x0010
  4291. #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
  4292. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4293. typedef struct tagSCROLLINFO {
  4294. UINT cbSize;
  4295. UINT fMask;
  4296. int nMin;
  4297. int nMax;
  4298. UINT nPage;
  4299. int nPos;
  4300. int nTrackPos;
  4301. } SCROLLINFO,*LPSCROLLINFO;
  4302. typedef SCROLLINFO CONST *LPCSCROLLINFO;
  4303. WINUSERAPI int WINAPI SetScrollInfo(HWND hwnd,int nBar,LPCSCROLLINFO lpsi,WINBOOL redraw);
  4304. WINUSERAPI WINBOOL WINAPI GetScrollInfo(HWND hwnd,int nBar,LPSCROLLINFO lpsi);
  4305. #endif
  4306. #endif
  4307. #endif
  4308. #ifndef NOMDI
  4309. #define MDIS_ALLCHILDSTYLES 0x0001
  4310. #define MDITILE_VERTICAL 0x0000
  4311. #define MDITILE_HORIZONTAL 0x0001
  4312. #define MDITILE_SKIPDISABLED 0x0002
  4313. #define MDITILE_ZORDER 0x0004
  4314. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4315. typedef struct tagMDICREATESTRUCTA {
  4316. LPCSTR szClass;
  4317. LPCSTR szTitle;
  4318. HANDLE hOwner;
  4319. int x;
  4320. int y;
  4321. int cx;
  4322. int cy;
  4323. DWORD style;
  4324. LPARAM lParam;
  4325. } MDICREATESTRUCTA,*LPMDICREATESTRUCTA;
  4326. typedef struct tagMDICREATESTRUCTW {
  4327. LPCWSTR szClass;
  4328. LPCWSTR szTitle;
  4329. HANDLE hOwner;
  4330. int x;
  4331. int y;
  4332. int cx;
  4333. int cy;
  4334. DWORD style;
  4335. LPARAM lParam;
  4336. } MDICREATESTRUCTW,*LPMDICREATESTRUCTW;
  4337. __MINGW_TYPEDEF_AW(MDICREATESTRUCT)
  4338. __MINGW_TYPEDEF_AW(LPMDICREATESTRUCT)
  4339. typedef struct tagCLIENTCREATESTRUCT {
  4340. HANDLE hWindowMenu;
  4341. UINT idFirstChild;
  4342. } CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT;
  4343. #define DefFrameProc __MINGW_NAME_AW(DefFrameProc)
  4344. #define DefMDIChildProc __MINGW_NAME_AW(DefMDIChildProc)
  4345. #define CreateMDIWindow __MINGW_NAME_AW(CreateMDIWindow)
  4346. WINUSERAPI LRESULT WINAPI DefFrameProcA(HWND hWnd,HWND hWndMDIClient,UINT uMsg,WPARAM wParam,LPARAM lParam);
  4347. WINUSERAPI LRESULT WINAPI DefFrameProcW(HWND hWnd,HWND hWndMDIClient,UINT uMsg,WPARAM wParam,LPARAM lParam);
  4348. WINUSERAPI LRESULT WINAPI DefMDIChildProcA(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
  4349. WINUSERAPI LRESULT WINAPI DefMDIChildProcW(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
  4350. #ifndef NOMSG
  4351. WINUSERAPI WINBOOL WINAPI TranslateMDISysAccel(HWND hWndClient,LPMSG lpMsg);
  4352. #endif
  4353. WINUSERAPI UINT WINAPI ArrangeIconicWindows(HWND hWnd);
  4354. WINUSERAPI HWND WINAPI CreateMDIWindowA(LPCSTR lpClassName,LPCSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HINSTANCE hInstance,LPARAM lParam);
  4355. WINUSERAPI HWND WINAPI CreateMDIWindowW(LPCWSTR lpClassName,LPCWSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HINSTANCE hInstance,LPARAM lParam);
  4356. WINUSERAPI WORD WINAPI TileWindows(HWND hwndParent,UINT wHow,CONST RECT *lpRect,UINT cKids,const HWND *lpKids);
  4357. WINUSERAPI WORD WINAPI CascadeWindows(HWND hwndParent,UINT wHow,CONST RECT *lpRect,UINT cKids,const HWND *lpKids);
  4358. #endif
  4359. #endif
  4360. #endif
  4361. #ifndef NOHELP
  4362. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4363. typedef DWORD HELPPOLY;
  4364. typedef struct tagMULTIKEYHELPA {
  4365. DWORD mkSize;
  4366. CHAR mkKeylist;
  4367. CHAR szKeyphrase[1];
  4368. } MULTIKEYHELPA,*PMULTIKEYHELPA,*LPMULTIKEYHELPA;
  4369. typedef struct tagMULTIKEYHELPW {
  4370. DWORD mkSize;
  4371. WCHAR mkKeylist;
  4372. WCHAR szKeyphrase[1];
  4373. } MULTIKEYHELPW,*PMULTIKEYHELPW,*LPMULTIKEYHELPW;
  4374. __MINGW_TYPEDEF_AW(MULTIKEYHELP)
  4375. __MINGW_TYPEDEF_AW(PMULTIKEYHELP)
  4376. __MINGW_TYPEDEF_AW(LPMULTIKEYHELP)
  4377. typedef struct tagHELPWININFOA {
  4378. int wStructSize;
  4379. int x;
  4380. int y;
  4381. int dx;
  4382. int dy;
  4383. int wMax;
  4384. CHAR rgchMember[2];
  4385. } HELPWININFOA,*PHELPWININFOA,*LPHELPWININFOA;
  4386. typedef struct tagHELPWININFOW {
  4387. int wStructSize;
  4388. int x;
  4389. int y;
  4390. int dx;
  4391. int dy;
  4392. int wMax;
  4393. WCHAR rgchMember[2];
  4394. } HELPWININFOW,*PHELPWININFOW,*LPHELPWININFOW;
  4395. __MINGW_TYPEDEF_AW(HELPWININFO)
  4396. __MINGW_TYPEDEF_AW(PHELPWININFO)
  4397. __MINGW_TYPEDEF_AW(LPHELPWININFO)
  4398. #define WinHelp __MINGW_NAME_AW(WinHelp)
  4399. WINUSERAPI WINBOOL WINAPI WinHelpA(HWND hWndMain,LPCSTR lpszHelp,UINT uCommand,ULONG_PTR dwData);
  4400. WINUSERAPI WINBOOL WINAPI WinHelpW(HWND hWndMain,LPCWSTR lpszHelp,UINT uCommand,ULONG_PTR dwData);
  4401. #define HELP_CONTEXT 0x0001
  4402. #define HELP_QUIT 0x0002
  4403. #define HELP_INDEX 0x0003
  4404. #define HELP_CONTENTS 0x0003
  4405. #define HELP_HELPONHELP 0x0004
  4406. #define HELP_SETINDEX 0x0005
  4407. #define HELP_SETCONTENTS 0x0005
  4408. #define HELP_CONTEXTPOPUP 0x0008
  4409. #define HELP_FORCEFILE 0x0009
  4410. #define HELP_KEY 0x0101
  4411. #define HELP_COMMAND 0x0102
  4412. #define HELP_PARTIALKEY 0x0105
  4413. #define HELP_MULTIKEY 0x0201
  4414. #define HELP_SETWINPOS 0x0203
  4415. #define HELP_CONTEXTMENU 0x000a
  4416. #define HELP_FINDER 0x000b
  4417. #define HELP_WM_HELP 0x000c
  4418. #define HELP_SETPOPUP_POS 0x000d
  4419. #define HELP_TCARD 0x8000
  4420. #define HELP_TCARD_DATA 0x0010
  4421. #define HELP_TCARD_OTHER_CALLER 0x0011
  4422. #define IDH_NO_HELP 28440
  4423. #define IDH_MISSING_CONTEXT 28441
  4424. #define IDH_GENERIC_HELP_BUTTON 28442
  4425. #define IDH_OK 28443
  4426. #define IDH_CANCEL 28444
  4427. #define IDH_HELP 28445
  4428. #endif
  4429. #endif
  4430. #define GR_GDIOBJECTS 0
  4431. #define GR_USEROBJECTS 1
  4432. #if WINVER >= 0x0601
  4433. #define GR_GDIOBJECTS_PEAK 2
  4434. #define GR_USEROBJECTS_PEAK 4
  4435. #define GR_GLOBAL ((HANDLE)-2)
  4436. #endif
  4437. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4438. WINUSERAPI DWORD WINAPI GetGuiResources(HANDLE hProcess,DWORD uiFlags);
  4439. #endif
  4440. #ifndef NOSYSPARAMSINFO
  4441. #define SPI_GETBEEP 0x0001
  4442. #define SPI_SETBEEP 0x0002
  4443. #define SPI_GETMOUSE 0x0003
  4444. #define SPI_SETMOUSE 0x0004
  4445. #define SPI_GETBORDER 0x0005
  4446. #define SPI_SETBORDER 0x0006
  4447. #define SPI_GETKEYBOARDSPEED 0x000A
  4448. #define SPI_SETKEYBOARDSPEED 0x000B
  4449. #define SPI_LANGDRIVER 0x000C
  4450. #define SPI_ICONHORIZONTALSPACING 0x000D
  4451. #define SPI_GETSCREENSAVETIMEOUT 0x000E
  4452. #define SPI_SETSCREENSAVETIMEOUT 0x000F
  4453. #define SPI_GETSCREENSAVEACTIVE 0x0010
  4454. #define SPI_SETSCREENSAVEACTIVE 0x0011
  4455. #define SPI_GETGRIDGRANULARITY 0x0012
  4456. #define SPI_SETGRIDGRANULARITY 0x0013
  4457. #define SPI_SETDESKWALLPAPER 0x0014
  4458. #define SPI_SETDESKPATTERN 0x0015
  4459. #define SPI_GETKEYBOARDDELAY 0x0016
  4460. #define SPI_SETKEYBOARDDELAY 0x0017
  4461. #define SPI_ICONVERTICALSPACING 0x0018
  4462. #define SPI_GETICONTITLEWRAP 0x0019
  4463. #define SPI_SETICONTITLEWRAP 0x001A
  4464. #define SPI_GETMENUDROPALIGNMENT 0x001B
  4465. #define SPI_SETMENUDROPALIGNMENT 0x001C
  4466. #define SPI_SETDOUBLECLKWIDTH 0x001D
  4467. #define SPI_SETDOUBLECLKHEIGHT 0x001E
  4468. #define SPI_GETICONTITLELOGFONT 0x001F
  4469. #define SPI_SETDOUBLECLICKTIME 0x0020
  4470. #define SPI_SETMOUSEBUTTONSWAP 0x0021
  4471. #define SPI_SETICONTITLELOGFONT 0x0022
  4472. #define SPI_GETFASTTASKSWITCH 0x0023
  4473. #define SPI_SETFASTTASKSWITCH 0x0024
  4474. #define SPI_SETDRAGFULLWINDOWS 0x0025
  4475. #define SPI_GETDRAGFULLWINDOWS 0x0026
  4476. #define SPI_GETNONCLIENTMETRICS 0x0029
  4477. #define SPI_SETNONCLIENTMETRICS 0x002A
  4478. #define SPI_GETMINIMIZEDMETRICS 0x002B
  4479. #define SPI_SETMINIMIZEDMETRICS 0x002C
  4480. #define SPI_GETICONMETRICS 0x002D
  4481. #define SPI_SETICONMETRICS 0x002E
  4482. #define SPI_SETWORKAREA 0x002F
  4483. #define SPI_GETWORKAREA 0x0030
  4484. #define SPI_SETPENWINDOWS 0x0031
  4485. #define SPI_GETHIGHCONTRAST 0x0042
  4486. #define SPI_SETHIGHCONTRAST 0x0043
  4487. #define SPI_GETKEYBOARDPREF 0x0044
  4488. #define SPI_SETKEYBOARDPREF 0x0045
  4489. #define SPI_GETSCREENREADER 0x0046
  4490. #define SPI_SETSCREENREADER 0x0047
  4491. #define SPI_GETANIMATION 0x0048
  4492. #define SPI_SETANIMATION 0x0049
  4493. #define SPI_GETFONTSMOOTHING 0x004A
  4494. #define SPI_SETFONTSMOOTHING 0x004B
  4495. #define SPI_SETDRAGWIDTH 0x004C
  4496. #define SPI_SETDRAGHEIGHT 0x004D
  4497. #define SPI_SETHANDHELD 0x004E
  4498. #define SPI_GETLOWPOWERTIMEOUT 0x004F
  4499. #define SPI_GETPOWEROFFTIMEOUT 0x0050
  4500. #define SPI_SETLOWPOWERTIMEOUT 0x0051
  4501. #define SPI_SETPOWEROFFTIMEOUT 0x0052
  4502. #define SPI_GETLOWPOWERACTIVE 0x0053
  4503. #define SPI_GETPOWEROFFACTIVE 0x0054
  4504. #define SPI_SETLOWPOWERACTIVE 0x0055
  4505. #define SPI_SETPOWEROFFACTIVE 0x0056
  4506. #define SPI_SETCURSORS 0x0057
  4507. #define SPI_SETICONS 0x0058
  4508. #define SPI_GETDEFAULTINPUTLANG 0x0059
  4509. #define SPI_SETDEFAULTINPUTLANG 0x005A
  4510. #define SPI_SETLANGTOGGLE 0x005B
  4511. #define SPI_GETWINDOWSEXTENSION 0x005C
  4512. #define SPI_SETMOUSETRAILS 0x005D
  4513. #define SPI_GETMOUSETRAILS 0x005E
  4514. #define SPI_SETSCREENSAVERRUNNING 0x0061
  4515. #define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
  4516. #define SPI_GETFILTERKEYS 0x0032
  4517. #define SPI_SETFILTERKEYS 0x0033
  4518. #define SPI_GETTOGGLEKEYS 0x0034
  4519. #define SPI_SETTOGGLEKEYS 0x0035
  4520. #define SPI_GETMOUSEKEYS 0x0036
  4521. #define SPI_SETMOUSEKEYS 0x0037
  4522. #define SPI_GETSHOWSOUNDS 0x0038
  4523. #define SPI_SETSHOWSOUNDS 0x0039
  4524. #define SPI_GETSTICKYKEYS 0x003A
  4525. #define SPI_SETSTICKYKEYS 0x003B
  4526. #define SPI_GETACCESSTIMEOUT 0x003C
  4527. #define SPI_SETACCESSTIMEOUT 0x003D
  4528. #define SPI_GETSERIALKEYS 0x003E
  4529. #define SPI_SETSERIALKEYS 0x003F
  4530. #define SPI_GETSOUNDSENTRY 0x0040
  4531. #define SPI_SETSOUNDSENTRY 0x0041
  4532. #define SPI_GETSNAPTODEFBUTTON 0x005F
  4533. #define SPI_SETSNAPTODEFBUTTON 0x0060
  4534. #define SPI_GETMOUSEHOVERWIDTH 0x0062
  4535. #define SPI_SETMOUSEHOVERWIDTH 0x0063
  4536. #define SPI_GETMOUSEHOVERHEIGHT 0x0064
  4537. #define SPI_SETMOUSEHOVERHEIGHT 0x0065
  4538. #define SPI_GETMOUSEHOVERTIME 0x0066
  4539. #define SPI_SETMOUSEHOVERTIME 0x0067
  4540. #define SPI_GETWHEELSCROLLLINES 0x0068
  4541. #define SPI_SETWHEELSCROLLLINES 0x0069
  4542. #define SPI_GETMENUSHOWDELAY 0x006A
  4543. #define SPI_SETMENUSHOWDELAY 0x006B
  4544. #if _WIN32_WINNT >= 0x0600
  4545. #define SPI_GETWHEELSCROLLCHARS 0x006C
  4546. #define SPI_SETWHEELSCROLLCHARS 0x006D
  4547. #endif
  4548. #define SPI_GETSHOWIMEUI 0x006E
  4549. #define SPI_SETSHOWIMEUI 0x006F
  4550. #define SPI_GETMOUSESPEED 0x0070
  4551. #define SPI_SETMOUSESPEED 0x0071
  4552. #define SPI_GETSCREENSAVERRUNNING 0x0072
  4553. #define SPI_GETDESKWALLPAPER 0x0073
  4554. #if WINVER >= 0x0600
  4555. #define SPI_GETAUDIODESCRIPTION 0x0074
  4556. #define SPI_SETAUDIODESCRIPTION 0x0075
  4557. #define SPI_GETSCREENSAVESECURE 0x0076
  4558. #define SPI_SETSCREENSAVESECURE 0x0077
  4559. #endif
  4560. #if _WIN32_WINNT >= 0x0601
  4561. #define SPI_GETHUNGAPPTIMEOUT 0x0078
  4562. #define SPI_SETHUNGAPPTIMEOUT 0x0079
  4563. #define SPI_GETWAITTOKILLTIMEOUT 0x007a
  4564. #define SPI_SETWAITTOKILLTIMEOUT 0x007b
  4565. #define SPI_GETWAITTOKILLSERVICETIMEOUT 0x007c
  4566. #define SPI_SETWAITTOKILLSERVICETIMEOUT 0x007d
  4567. #define SPI_GETMOUSEDOCKTHRESHOLD 0x007e
  4568. #define SPI_SETMOUSEDOCKTHRESHOLD 0x007f
  4569. #define SPI_GETPENDOCKTHRESHOLD 0x0080
  4570. #define SPI_SETPENDOCKTHRESHOLD 0x0081
  4571. #define SPI_GETWINARRANGING 0x0082
  4572. #define SPI_SETWINARRANGING 0x0083
  4573. #define SPI_GETMOUSEDRAGOUTTHRESHOLD 0x0084
  4574. #define SPI_SETMOUSEDRAGOUTTHRESHOLD 0x0085
  4575. #define SPI_GETPENDRAGOUTTHRESHOLD 0x0086
  4576. #define SPI_SETPENDRAGOUTTHRESHOLD 0x0087
  4577. #define SPI_GETMOUSESIDEMOVETHRESHOLD 0x0088
  4578. #define SPI_SETMOUSESIDEMOVETHRESHOLD 0x0089
  4579. #define SPI_GETPENSIDEMOVETHRESHOLD 0x008a
  4580. #define SPI_SETPENSIDEMOVETHRESHOLD 0x008b
  4581. #define SPI_GETDRAGFROMMAXIMIZE 0x008c
  4582. #define SPI_SETDRAGFROMMAXIMIZE 0x008d
  4583. #define SPI_GETSNAPSIZING 0x008e
  4584. #define SPI_SETSNAPSIZING 0x008f
  4585. #define SPI_GETDOCKMOVING 0x0090
  4586. #define SPI_SETDOCKMOVING 0x0091
  4587. #endif
  4588. #if WINVER >= 0x0602
  4589. #define SPI_GETTOUCHPREDICTIONPARAMETERS 0x009c
  4590. #define SPI_SETTOUCHPREDICTIONPARAMETERS 0x009d
  4591. #define SPI_GETLOGICALDPIOVERRIDE 0x009e
  4592. #define SPI_SETLOGICALDPIOVERRIDE 0x009f
  4593. #define SPI_GETMOUSECORNERCLIPLENGTH 0x00a0
  4594. #define SPI_SETMOUSECORNERCLIPLENGTH 0x00a1
  4595. #define SPI_GETMENURECT 0x00a2
  4596. #define SPI_SETMENURECT 0x00a3
  4597. #endif
  4598. #define SPI_GETACTIVEWINDOWTRACKING 0x1000
  4599. #define SPI_SETACTIVEWINDOWTRACKING 0x1001
  4600. #define SPI_GETMENUANIMATION 0x1002
  4601. #define SPI_SETMENUANIMATION 0x1003
  4602. #define SPI_GETCOMBOBOXANIMATION 0x1004
  4603. #define SPI_SETCOMBOBOXANIMATION 0x1005
  4604. #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
  4605. #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
  4606. #define SPI_GETGRADIENTCAPTIONS 0x1008
  4607. #define SPI_SETGRADIENTCAPTIONS 0x1009
  4608. #define SPI_GETKEYBOARDCUES 0x100A
  4609. #define SPI_SETKEYBOARDCUES 0x100B
  4610. #define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES
  4611. #define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES
  4612. #define SPI_GETACTIVEWNDTRKZORDER 0x100C
  4613. #define SPI_SETACTIVEWNDTRKZORDER 0x100D
  4614. #define SPI_GETHOTTRACKING 0x100E
  4615. #define SPI_SETHOTTRACKING 0x100F
  4616. #define SPI_GETMENUFADE 0x1012
  4617. #define SPI_SETMENUFADE 0x1013
  4618. #define SPI_GETSELECTIONFADE 0x1014
  4619. #define SPI_SETSELECTIONFADE 0x1015
  4620. #define SPI_GETTOOLTIPANIMATION 0x1016
  4621. #define SPI_SETTOOLTIPANIMATION 0x1017
  4622. #define SPI_GETTOOLTIPFADE 0x1018
  4623. #define SPI_SETTOOLTIPFADE 0x1019
  4624. #define SPI_GETCURSORSHADOW 0x101A
  4625. #define SPI_SETCURSORSHADOW 0x101B
  4626. #define SPI_GETMOUSESONAR 0x101C
  4627. #define SPI_SETMOUSESONAR 0x101D
  4628. #define SPI_GETMOUSECLICKLOCK 0x101E
  4629. #define SPI_SETMOUSECLICKLOCK 0x101F
  4630. #define SPI_GETMOUSEVANISH 0x1020
  4631. #define SPI_SETMOUSEVANISH 0x1021
  4632. #define SPI_GETFLATMENU 0x1022
  4633. #define SPI_SETFLATMENU 0x1023
  4634. #define SPI_GETDROPSHADOW 0x1024
  4635. #define SPI_SETDROPSHADOW 0x1025
  4636. #define SPI_GETBLOCKSENDINPUTRESETS 0x1026
  4637. #define SPI_SETBLOCKSENDINPUTRESETS 0x1027
  4638. #define SPI_GETUIEFFECTS 0x103E
  4639. #define SPI_SETUIEFFECTS 0x103F
  4640. #if _WIN32_WINNT >= 0x0600
  4641. #define SPI_GETDISABLEOVERLAPPEDCONTENT 0x1040
  4642. #define SPI_SETDISABLEOVERLAPPEDCONTENT 0x1041
  4643. #define SPI_GETCLIENTAREAANIMATION 0x1042
  4644. #define SPI_SETCLIENTAREAANIMATION 0x1043
  4645. #define SPI_GETCLEARTYPE 0x1048
  4646. #define SPI_SETCLEARTYPE 0x1049
  4647. #define SPI_GETSPEECHRECOGNITION 0x104a
  4648. #define SPI_SETSPEECHRECOGNITION 0x104b
  4649. #endif
  4650. #if WINVER >= 0x0601
  4651. #define SPI_GETCARETBROWSING 0x104c
  4652. #define SPI_SETCARETBROWSING 0x104d
  4653. #define SPI_GETTHREADLOCALINPUTSETTINGS 0x104e
  4654. #define SPI_SETTHREADLOCALINPUTSETTINGS 0x104f
  4655. #define SPI_GETSYSTEMLANGUAGEBAR 0x1050
  4656. #define SPI_SETSYSTEMLANGUAGEBAR 0x1051
  4657. #endif
  4658. #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
  4659. #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
  4660. #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
  4661. #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
  4662. #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
  4663. #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
  4664. #define SPI_GETCARETWIDTH 0x2006
  4665. #define SPI_SETCARETWIDTH 0x2007
  4666. #define SPI_GETMOUSECLICKLOCKTIME 0x2008
  4667. #define SPI_SETMOUSECLICKLOCKTIME 0x2009
  4668. #define SPI_GETFONTSMOOTHINGTYPE 0x200A
  4669. #define SPI_SETFONTSMOOTHINGTYPE 0x200B
  4670. #define FE_FONTSMOOTHINGSTANDARD 0x0001
  4671. #define FE_FONTSMOOTHINGCLEARTYPE 0x0002
  4672. #define FE_FONTSMOOTHINGDOCKING 0x8000
  4673. #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
  4674. #define SPI_SETFONTSMOOTHINGCONTRAST 0x200D
  4675. #define SPI_GETFOCUSBORDERWIDTH 0x200E
  4676. #define SPI_SETFOCUSBORDERWIDTH 0x200F
  4677. #define SPI_GETFOCUSBORDERHEIGHT 0x2010
  4678. #define SPI_SETFOCUSBORDERHEIGHT 0x2011
  4679. #define SPI_GETFONTSMOOTHINGORIENTATION 0x2012
  4680. #define SPI_SETFONTSMOOTHINGORIENTATION 0x2013
  4681. #if _WIN32_WINNT >= 0x0600
  4682. #define SPI_GETMINIMUMHITRADIUS 0x2014
  4683. #define SPI_SETMINIMUMHITRADIUS 0x2015
  4684. #define SPI_GETMESSAGEDURATION 0x2016
  4685. #define SPI_SETMESSAGEDURATION 0x2017
  4686. #endif
  4687. #if WINVER >= 0x0602
  4688. #define SPI_GETCONTACTVISUALIZATION 0x2018
  4689. #define SPI_SETCONTACTVISUALIZATION 0x2019
  4690. #define SPI_GETGESTUREVISUALIZATION 0x201a
  4691. #define SPI_SETGESTUREVISUALIZATION 0x201b
  4692. #endif
  4693. #if WINVER >= 0x0602
  4694. #define SPI_GETMOUSEWHEELROUTING 0x201C
  4695. #define SPI_SETMOUSEWHEELROUTING 0x201D
  4696. #define MOUSEWHEEL_ROUTING_FOCUS 0
  4697. #define MOUSEWHEEL_ROUTING_HYBRID 1
  4698. #endif
  4699. #if WINVER >= 0x0603
  4700. #define MOUSEWHEEL_ROUTING_MOUSE_POS 2
  4701. #endif
  4702. #if WINVER >= 0x0604
  4703. #define SPI_GETPENVISUALIZATION 0x201E
  4704. #define SPI_SETPENVISUALIZATION 0x201F
  4705. #define PENVISUALIZATION_ON 0x0023
  4706. #define PENVISUALIZATION_OFF 0x0000
  4707. #define PENVISUALIZATION_TAP 0x0001
  4708. #define PENVISUALIZATION_DOUBLETAP 0x0002
  4709. #define PENVISUALIZATION_CURSOR 0x0020
  4710. #define SPI_GETPENARBITRATIONTYPE 0x2020
  4711. #define SPI_SETPENARBITRATIONTYPE 0x2021
  4712. #define PENARBITRATIONTYPE_NONE 0x0000
  4713. #define PENARBITRATIONTYPE_WIN8 0x0001
  4714. #define PENARBITRATIONTYPE_FIS 0x0002
  4715. #define PENARBITRATIONTYPE_SPT 0x0003
  4716. #define PENARBITRATIONTYPE_MAX 0x0004
  4717. #endif /* WINVER >= 0x0604 */
  4718. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  4719. #define SPI_GETCARETTIMEOUT 0x2022
  4720. #define SPI_SETCARETTIMEOUT 0x2023
  4721. #endif
  4722. #if NTDDI_VERSION >= NTDDI_WIN10_RS4
  4723. #define SPI_GETHANDEDNESS 0x2024
  4724. #define SPI_SETHANDEDNESS 0x2025
  4725. typedef enum tagHANDEDNESS {
  4726. HANDEDNESS_LEFT = 0,
  4727. HANDEDNESS_RIGHT
  4728. } HANDEDNESS, *PHANDEDNESS;
  4729. #endif
  4730. #if WINVER >= 0x0602
  4731. #define CONTACTVISUALIZATION_OFF 0x0000
  4732. #define CONTACTVISUALIZATION_ON 0x0001
  4733. #define CONTACTVISUALIZATION_PRESENTATIONMODE 0x0002
  4734. #define GESTUREVISUALIZATION_OFF 0x0000
  4735. #define GESTUREVISUALIZATION_ON 0x001f
  4736. #define GESTUREVISUALIZATION_TAP 0x0001
  4737. #define GESTUREVISUALIZATION_DOUBLETAP 0x0002
  4738. #define GESTUREVISUALIZATION_PRESSANDTAP 0x0004
  4739. #define GESTUREVISUALIZATION_PRESSANDHOLD 0x0008
  4740. #define GESTUREVISUALIZATION_RIGHTTAP 0x0010
  4741. #define MAX_TOUCH_PREDICTION_FILTER_TAPS 3
  4742. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4743. typedef struct tagTouchPredictionParameters {
  4744. UINT cbSize;
  4745. UINT dwLatency;
  4746. UINT dwSampleTime;
  4747. UINT bUseHWTimeStamp;
  4748. } TOUCHPREDICTIONPARAMETERS,*PTOUCHPREDICTIONPARAMETERS;
  4749. #endif
  4750. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY 8
  4751. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME 8
  4752. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP 1
  4753. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA 0.001f
  4754. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN 0.9f
  4755. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX 0.999f
  4756. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE 0.001f
  4757. #define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA 0.99f
  4758. #define MAX_LOGICALDPIOVERRIDE 2
  4759. #define MIN_LOGICALDPIOVERRIDE -2
  4760. #endif
  4761. #define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000
  4762. #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
  4763. #define SPIF_UPDATEINIFILE 0x0001
  4764. #define SPIF_SENDWININICHANGE 0x0002
  4765. #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
  4766. #define METRICS_USEDEFAULT -1
  4767. #ifdef _WINGDI_
  4768. #ifndef NOGDI
  4769. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4770. typedef struct tagNONCLIENTMETRICSA {
  4771. UINT cbSize;
  4772. int iBorderWidth;
  4773. int iScrollWidth;
  4774. int iScrollHeight;
  4775. int iCaptionWidth;
  4776. int iCaptionHeight;
  4777. LOGFONTA lfCaptionFont;
  4778. int iSmCaptionWidth;
  4779. int iSmCaptionHeight;
  4780. LOGFONTA lfSmCaptionFont;
  4781. int iMenuWidth;
  4782. int iMenuHeight;
  4783. LOGFONTA lfMenuFont;
  4784. LOGFONTA lfStatusFont;
  4785. LOGFONTA lfMessageFont;
  4786. #if WINVER >= 0x0600
  4787. int iPaddedBorderWidth;
  4788. #endif
  4789. } NONCLIENTMETRICSA,*PNONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
  4790. typedef struct tagNONCLIENTMETRICSW {
  4791. UINT cbSize;
  4792. int iBorderWidth;
  4793. int iScrollWidth;
  4794. int iScrollHeight;
  4795. int iCaptionWidth;
  4796. int iCaptionHeight;
  4797. LOGFONTW lfCaptionFont;
  4798. int iSmCaptionWidth;
  4799. int iSmCaptionHeight;
  4800. LOGFONTW lfSmCaptionFont;
  4801. int iMenuWidth;
  4802. int iMenuHeight;
  4803. LOGFONTW lfMenuFont;
  4804. LOGFONTW lfStatusFont;
  4805. LOGFONTW lfMessageFont;
  4806. #if WINVER >= 0x0600
  4807. int iPaddedBorderWidth;
  4808. #endif
  4809. } NONCLIENTMETRICSW,*PNONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
  4810. __MINGW_TYPEDEF_AW(NONCLIENTMETRICS)
  4811. __MINGW_TYPEDEF_AW(PNONCLIENTMETRICS)
  4812. __MINGW_TYPEDEF_AW(LPNONCLIENTMETRICS)
  4813. #endif
  4814. #endif
  4815. #endif
  4816. #define ARW_BOTTOMLEFT __MSABI_LONG(0x0000)
  4817. #define ARW_BOTTOMRIGHT __MSABI_LONG(0x0001)
  4818. #define ARW_TOPLEFT __MSABI_LONG(0x0002)
  4819. #define ARW_TOPRIGHT __MSABI_LONG(0x0003)
  4820. #define ARW_STARTMASK __MSABI_LONG(0x0003)
  4821. #define ARW_STARTRIGHT __MSABI_LONG(0x0001)
  4822. #define ARW_STARTTOP __MSABI_LONG(0x0002)
  4823. #define ARW_LEFT __MSABI_LONG(0x0000)
  4824. #define ARW_RIGHT __MSABI_LONG(0x0000)
  4825. #define ARW_UP __MSABI_LONG(0x0004)
  4826. #define ARW_DOWN __MSABI_LONG(0x0004)
  4827. #define ARW_HIDE __MSABI_LONG(0x0008)
  4828. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4829. typedef struct tagMINIMIZEDMETRICS {
  4830. UINT cbSize;
  4831. int iWidth;
  4832. int iHorzGap;
  4833. int iVertGap;
  4834. int iArrange;
  4835. } MINIMIZEDMETRICS,*PMINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
  4836. #ifdef _WINGDI_
  4837. #ifndef NOGDI
  4838. typedef struct tagICONMETRICSA {
  4839. UINT cbSize;
  4840. int iHorzSpacing;
  4841. int iVertSpacing;
  4842. int iTitleWrap;
  4843. LOGFONTA lfFont;
  4844. } ICONMETRICSA,*PICONMETRICSA,*LPICONMETRICSA;
  4845. typedef struct tagICONMETRICSW {
  4846. UINT cbSize;
  4847. int iHorzSpacing;
  4848. int iVertSpacing;
  4849. int iTitleWrap;
  4850. LOGFONTW lfFont;
  4851. } ICONMETRICSW,*PICONMETRICSW,*LPICONMETRICSW;
  4852. __MINGW_TYPEDEF_AW(ICONMETRICS)
  4853. __MINGW_TYPEDEF_AW(PICONMETRICS)
  4854. __MINGW_TYPEDEF_AW(LPICONMETRICS)
  4855. #endif
  4856. #endif
  4857. typedef struct tagANIMATIONINFO {
  4858. UINT cbSize;
  4859. int iMinAnimate;
  4860. } ANIMATIONINFO,*LPANIMATIONINFO;
  4861. typedef struct tagSERIALKEYSA {
  4862. UINT cbSize;
  4863. DWORD dwFlags;
  4864. LPSTR lpszActivePort;
  4865. LPSTR lpszPort;
  4866. UINT iBaudRate;
  4867. UINT iPortState;
  4868. UINT iActive;
  4869. } SERIALKEYSA,*LPSERIALKEYSA;
  4870. typedef struct tagSERIALKEYSW {
  4871. UINT cbSize;
  4872. DWORD dwFlags;
  4873. LPWSTR lpszActivePort;
  4874. LPWSTR lpszPort;
  4875. UINT iBaudRate;
  4876. UINT iPortState;
  4877. UINT iActive;
  4878. } SERIALKEYSW,*LPSERIALKEYSW;
  4879. __MINGW_TYPEDEF_AW(SERIALKEYS)
  4880. __MINGW_TYPEDEF_AW(LPSERIALKEYS)
  4881. typedef struct tagHIGHCONTRASTA {
  4882. UINT cbSize;
  4883. DWORD dwFlags;
  4884. LPSTR lpszDefaultScheme;
  4885. } HIGHCONTRASTA,*LPHIGHCONTRASTA;
  4886. typedef struct tagHIGHCONTRASTW {
  4887. UINT cbSize;
  4888. DWORD dwFlags;
  4889. LPWSTR lpszDefaultScheme;
  4890. } HIGHCONTRASTW,*LPHIGHCONTRASTW;
  4891. __MINGW_TYPEDEF_AW(HIGHCONTRAST)
  4892. __MINGW_TYPEDEF_AW(LPHIGHCONTRAST)
  4893. #endif
  4894. #define SERKF_SERIALKEYSON 0x00000001
  4895. #define SERKF_AVAILABLE 0x00000002
  4896. #define SERKF_INDICATOR 0x00000004
  4897. #define HCF_HIGHCONTRASTON 0x00000001
  4898. #define HCF_AVAILABLE 0x00000002
  4899. #define HCF_HOTKEYACTIVE 0x00000004
  4900. #define HCF_CONFIRMHOTKEY 0x00000008
  4901. #define HCF_HOTKEYSOUND 0x00000010
  4902. #define HCF_INDICATOR 0x00000020
  4903. #define HCF_HOTKEYAVAILABLE 0x00000040
  4904. #define HCF_LOGONDESKTOP 0x00000100
  4905. #define HCF_DEFAULTDESKTOP 0x00000200
  4906. #define HCF_OPTION_NOTHEMECHANGE 0x00001000
  4907. #define CDS_UPDATEREGISTRY 0x00000001
  4908. #define CDS_TEST 0x00000002
  4909. #define CDS_FULLSCREEN 0x00000004
  4910. #define CDS_GLOBAL 0x00000008
  4911. #define CDS_SET_PRIMARY 0x00000010
  4912. #define CDS_VIDEOPARAMETERS 0x00000020
  4913. #if WINVER >= 0x0600
  4914. #define CDS_ENABLE_UNSAFE_MODES 0x00000100
  4915. #define CDS_DISABLE_UNSAFE_MODES 0x00000200
  4916. #endif
  4917. #define CDS_RESET 0x40000000
  4918. #define CDS_RESET_EX 0x20000000
  4919. #define CDS_NORESET 0x10000000
  4920. #include <tvout.h>
  4921. #define DISP_CHANGE_SUCCESSFUL 0
  4922. #define DISP_CHANGE_RESTART 1
  4923. #define DISP_CHANGE_FAILED -1
  4924. #define DISP_CHANGE_BADMODE -2
  4925. #define DISP_CHANGE_NOTUPDATED -3
  4926. #define DISP_CHANGE_BADFLAGS -4
  4927. #define DISP_CHANGE_BADPARAM -5
  4928. #define DISP_CHANGE_BADDUALVIEW -6
  4929. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4930. #ifdef _WINGDI_
  4931. #ifndef NOGDI
  4932. #define ChangeDisplaySettings __MINGW_NAME_AW(ChangeDisplaySettings)
  4933. #define ChangeDisplaySettingsEx __MINGW_NAME_AW(ChangeDisplaySettingsEx)
  4934. #define EnumDisplaySettings __MINGW_NAME_AW(EnumDisplaySettings)
  4935. #define EnumDisplaySettingsEx __MINGW_NAME_AW(EnumDisplaySettingsEx)
  4936. #define EnumDisplayDevices __MINGW_NAME_AW(EnumDisplayDevices)
  4937. WINUSERAPI LONG WINAPI ChangeDisplaySettingsA(LPDEVMODEA lpDevMode,DWORD dwFlags);
  4938. WINUSERAPI LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW lpDevMode,DWORD dwFlags);
  4939. WINUSERAPI LONG WINAPI ChangeDisplaySettingsExA(LPCSTR lpszDeviceName,LPDEVMODEA lpDevMode,HWND hwnd,DWORD dwflags,LPVOID lParam);
  4940. WINUSERAPI LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR lpszDeviceName,LPDEVMODEW lpDevMode,HWND hwnd,DWORD dwflags,LPVOID lParam);
  4941. #define ENUM_CURRENT_SETTINGS ((DWORD)-1)
  4942. #define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
  4943. WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsA(LPCSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEA lpDevMode);
  4944. WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEW lpDevMode);
  4945. WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsExA(LPCSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEA lpDevMode,DWORD dwFlags);
  4946. WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEW lpDevMode,DWORD dwFlags);
  4947. #define EDS_RAWMODE 0x00000002
  4948. #define EDS_ROTATEDMODE 0x00000004
  4949. WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesA(LPCSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEA lpDisplayDevice,DWORD dwFlags);
  4950. WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEW lpDisplayDevice,DWORD dwFlags);
  4951. #define EDD_GET_DEVICE_INTERFACE_NAME 0x00000001
  4952. #if WINVER >= 0x0601
  4953. WINUSERAPI LONG WINAPI GetDisplayConfigBufferSizes (UINT32 flags, UINT32 *numPathArrayElements, UINT32 *numModeInfoArrayElements);
  4954. WINUSERAPI LONG WINAPI SetDisplayConfig (UINT32 numPathArrayElements, DISPLAYCONFIG_PATH_INFO *pathArray, UINT32 numModeInfoArrayElements, DISPLAYCONFIG_MODE_INFO *modeInfoArray, UINT32 flags);
  4955. WINUSERAPI LONG WINAPI QueryDisplayConfig (UINT32 flags, UINT32 *numPathArrayElements, DISPLAYCONFIG_PATH_INFO *pathArray, UINT32 *numModeInfoArrayElements, DISPLAYCONFIG_MODE_INFO *modeInfoArray, DISPLAYCONFIG_TOPOLOGY_ID *currentTopologyId);
  4956. WINUSERAPI LONG WINAPI DisplayConfigGetDeviceInfo (DISPLAYCONFIG_DEVICE_INFO_HEADER *requestPacket);
  4957. WINUSERAPI LONG WINAPI DisplayConfigSetDeviceInfo (DISPLAYCONFIG_DEVICE_INFO_HEADER *setPacket);
  4958. #endif
  4959. #endif
  4960. #endif
  4961. #define SystemParametersInfo __MINGW_NAME_AW(SystemParametersInfo)
  4962. WINUSERAPI WINBOOL WINAPI SystemParametersInfoA(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
  4963. WINUSERAPI WINBOOL WINAPI SystemParametersInfoW(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
  4964. #if WINVER >= 0x0605
  4965. WINUSERAPI WINBOOL WINAPI SystemParametersInfoForDpi(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni, UINT dpi);
  4966. #endif
  4967. #endif
  4968. #endif /* !NOSYSPARAMSINFO */
  4969. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4970. typedef struct tagFILTERKEYS {
  4971. UINT cbSize;
  4972. DWORD dwFlags;
  4973. DWORD iWaitMSec;
  4974. DWORD iDelayMSec;
  4975. DWORD iRepeatMSec;
  4976. DWORD iBounceMSec;
  4977. } FILTERKEYS,*LPFILTERKEYS;
  4978. #endif
  4979. #define FKF_FILTERKEYSON 0x00000001
  4980. #define FKF_AVAILABLE 0x00000002
  4981. #define FKF_HOTKEYACTIVE 0x00000004
  4982. #define FKF_CONFIRMHOTKEY 0x00000008
  4983. #define FKF_HOTKEYSOUND 0x00000010
  4984. #define FKF_INDICATOR 0x00000020
  4985. #define FKF_CLICKON 0x00000040
  4986. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  4987. typedef struct tagSTICKYKEYS {
  4988. UINT cbSize;
  4989. DWORD dwFlags;
  4990. } STICKYKEYS,*LPSTICKYKEYS;
  4991. #endif
  4992. #define SKF_STICKYKEYSON 0x00000001
  4993. #define SKF_AVAILABLE 0x00000002
  4994. #define SKF_HOTKEYACTIVE 0x00000004
  4995. #define SKF_CONFIRMHOTKEY 0x00000008
  4996. #define SKF_HOTKEYSOUND 0x00000010
  4997. #define SKF_INDICATOR 0x00000020
  4998. #define SKF_AUDIBLEFEEDBACK 0x00000040
  4999. #define SKF_TRISTATE 0x00000080
  5000. #define SKF_TWOKEYSOFF 0x00000100
  5001. #define SKF_LALTLATCHED 0x10000000
  5002. #define SKF_LCTLLATCHED 0x04000000
  5003. #define SKF_LSHIFTLATCHED 0x01000000
  5004. #define SKF_RALTLATCHED 0x20000000
  5005. #define SKF_RCTLLATCHED 0x08000000
  5006. #define SKF_RSHIFTLATCHED 0x02000000
  5007. #define SKF_LWINLATCHED 0x40000000
  5008. #define SKF_RWINLATCHED 0x80000000
  5009. #define SKF_LALTLOCKED 0x00100000
  5010. #define SKF_LCTLLOCKED 0x00040000
  5011. #define SKF_LSHIFTLOCKED 0x00010000
  5012. #define SKF_RALTLOCKED 0x00200000
  5013. #define SKF_RCTLLOCKED 0x00080000
  5014. #define SKF_RSHIFTLOCKED 0x00020000
  5015. #define SKF_LWINLOCKED 0x00400000
  5016. #define SKF_RWINLOCKED 0x00800000
  5017. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5018. typedef struct tagMOUSEKEYS {
  5019. UINT cbSize;
  5020. DWORD dwFlags;
  5021. DWORD iMaxSpeed;
  5022. DWORD iTimeToMaxSpeed;
  5023. DWORD iCtrlSpeed;
  5024. DWORD dwReserved1;
  5025. DWORD dwReserved2;
  5026. } MOUSEKEYS,*LPMOUSEKEYS;
  5027. #endif
  5028. #define MKF_MOUSEKEYSON 0x00000001
  5029. #define MKF_AVAILABLE 0x00000002
  5030. #define MKF_HOTKEYACTIVE 0x00000004
  5031. #define MKF_CONFIRMHOTKEY 0x00000008
  5032. #define MKF_HOTKEYSOUND 0x00000010
  5033. #define MKF_INDICATOR 0x00000020
  5034. #define MKF_MODIFIERS 0x00000040
  5035. #define MKF_REPLACENUMBERS 0x00000080
  5036. #define MKF_LEFTBUTTONSEL 0x10000000
  5037. #define MKF_RIGHTBUTTONSEL 0x20000000
  5038. #define MKF_LEFTBUTTONDOWN 0x01000000
  5039. #define MKF_RIGHTBUTTONDOWN 0x02000000
  5040. #define MKF_MOUSEMODE 0x80000000
  5041. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5042. typedef struct tagACCESSTIMEOUT {
  5043. UINT cbSize;
  5044. DWORD dwFlags;
  5045. DWORD iTimeOutMSec;
  5046. } ACCESSTIMEOUT,*LPACCESSTIMEOUT;
  5047. #endif
  5048. #define ATF_TIMEOUTON 0x00000001
  5049. #define ATF_ONOFFFEEDBACK 0x00000002
  5050. #define SSGF_NONE 0
  5051. #define SSGF_DISPLAY 3
  5052. #define SSTF_NONE 0
  5053. #define SSTF_CHARS 1
  5054. #define SSTF_BORDER 2
  5055. #define SSTF_DISPLAY 3
  5056. #define SSWF_NONE 0
  5057. #define SSWF_TITLE 1
  5058. #define SSWF_WINDOW 2
  5059. #define SSWF_DISPLAY 3
  5060. #define SSWF_CUSTOM 4
  5061. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5062. typedef struct tagSOUNDSENTRYA {
  5063. UINT cbSize;
  5064. DWORD dwFlags;
  5065. DWORD iFSTextEffect;
  5066. DWORD iFSTextEffectMSec;
  5067. DWORD iFSTextEffectColorBits;
  5068. DWORD iFSGrafEffect;
  5069. DWORD iFSGrafEffectMSec;
  5070. DWORD iFSGrafEffectColor;
  5071. DWORD iWindowsEffect;
  5072. DWORD iWindowsEffectMSec;
  5073. LPSTR lpszWindowsEffectDLL;
  5074. DWORD iWindowsEffectOrdinal;
  5075. } SOUNDSENTRYA,*LPSOUNDSENTRYA;
  5076. typedef struct tagSOUNDSENTRYW {
  5077. UINT cbSize;
  5078. DWORD dwFlags;
  5079. DWORD iFSTextEffect;
  5080. DWORD iFSTextEffectMSec;
  5081. DWORD iFSTextEffectColorBits;
  5082. DWORD iFSGrafEffect;
  5083. DWORD iFSGrafEffectMSec;
  5084. DWORD iFSGrafEffectColor;
  5085. DWORD iWindowsEffect;
  5086. DWORD iWindowsEffectMSec;
  5087. LPWSTR lpszWindowsEffectDLL;
  5088. DWORD iWindowsEffectOrdinal;
  5089. } SOUNDSENTRYW,*LPSOUNDSENTRYW;
  5090. __MINGW_TYPEDEF_AW(SOUNDSENTRY)
  5091. __MINGW_TYPEDEF_AW(LPSOUNDSENTRY)
  5092. #endif
  5093. #define SSF_SOUNDSENTRYON 0x00000001
  5094. #define SSF_AVAILABLE 0x00000002
  5095. #define SSF_INDICATOR 0x00000004
  5096. #ifndef CCHDEVICENAME
  5097. #define CCHDEVICENAME 32
  5098. #endif
  5099. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5100. typedef struct tagTOGGLEKEYS {
  5101. UINT cbSize;
  5102. DWORD dwFlags;
  5103. } TOGGLEKEYS,*LPTOGGLEKEYS;
  5104. typedef struct tagMONITORINFO {
  5105. DWORD cbSize;
  5106. RECT rcMonitor;
  5107. RECT rcWork;
  5108. DWORD dwFlags;
  5109. } MONITORINFO,*LPMONITORINFO;
  5110. #if _WIN32_WINNT >= 0x0600
  5111. typedef struct tagAUDIODESCRIPTION {
  5112. UINT cbSize;
  5113. WINBOOL Enabled;
  5114. LCID Locale;
  5115. } AUDIODESCRIPTION,*LPAUDIODESCRIPTION;
  5116. #endif
  5117. #ifdef __cplusplus
  5118. typedef struct tagMONITORINFOEXA : public tagMONITORINFO {
  5119. CHAR szDevice[CCHDEVICENAME];
  5120. } MONITORINFOEXA,*LPMONITORINFOEXA;
  5121. typedef struct tagMONITORINFOEXW : public tagMONITORINFO {
  5122. WCHAR szDevice[CCHDEVICENAME];
  5123. } MONITORINFOEXW,*LPMONITORINFOEXW;
  5124. __MINGW_TYPEDEF_AW(MONITORINFOEX)
  5125. __MINGW_TYPEDEF_AW(LPMONITORINFOEX)
  5126. #else
  5127. typedef struct tagMONITORINFOEXA {
  5128. __C89_NAMELESS struct {
  5129. DWORD cbSize;
  5130. RECT rcMonitor;
  5131. RECT rcWork;
  5132. DWORD dwFlags;
  5133. };
  5134. CHAR szDevice[CCHDEVICENAME];
  5135. } MONITORINFOEXA,*LPMONITORINFOEXA;
  5136. typedef struct tagMONITORINFOEXW {
  5137. __C89_NAMELESS struct {
  5138. DWORD cbSize;
  5139. RECT rcMonitor;
  5140. RECT rcWork;
  5141. DWORD dwFlags;
  5142. };
  5143. WCHAR szDevice[CCHDEVICENAME];
  5144. } MONITORINFOEXW,*LPMONITORINFOEXW;
  5145. __MINGW_TYPEDEF_AW(MONITORINFOEX)
  5146. __MINGW_TYPEDEF_AW(LPMONITORINFOEX)
  5147. #endif
  5148. typedef WINBOOL (CALLBACK *MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
  5149. WINUSERAPI VOID WINAPI SetDebugErrorLevel (DWORD dwLevel);
  5150. WINUSERAPI VOID WINAPI SetLastErrorEx (DWORD dwErrCode, DWORD dwType);
  5151. WINUSERAPI int WINAPI InternalGetWindowText (HWND hWnd, LPWSTR pString, int cchMaxCount);
  5152. WINUSERAPI WINBOOL WINAPI CancelShutdown (VOID);
  5153. WINUSERAPI HMONITOR WINAPI MonitorFromPoint(POINT pt,DWORD dwFlags);
  5154. WINUSERAPI HMONITOR WINAPI MonitorFromRect(LPCRECT lprc,DWORD dwFlags);
  5155. WINUSERAPI HMONITOR WINAPI MonitorFromWindow(HWND hwnd,DWORD dwFlags);
  5156. #ifdef WINNT
  5157. WINUSERAPI WINBOOL WINAPI EndTask (HWND hWnd, WINBOOL fShutDown, WINBOOL fForce);
  5158. #endif
  5159. #if _WIN32_WINNT >= 0x0600
  5160. WINUSERAPI WINBOOL WINAPI SoundSentry (VOID);
  5161. #endif
  5162. #define GetMonitorInfo __MINGW_NAME_AW(GetMonitorInfo)
  5163. WINUSERAPI WINBOOL WINAPI GetMonitorInfoA(HMONITOR hMonitor,LPMONITORINFO lpmi);
  5164. WINUSERAPI WINBOOL WINAPI GetMonitorInfoW(HMONITOR hMonitor,LPMONITORINFO lpmi);
  5165. WINUSERAPI WINBOOL WINAPI EnumDisplayMonitors(HDC hdc,LPCRECT lprcClip,MONITORENUMPROC lpfnEnum,LPARAM dwData);
  5166. #endif
  5167. #define TKF_TOGGLEKEYSON 0x00000001
  5168. #define TKF_AVAILABLE 0x00000002
  5169. #define TKF_HOTKEYACTIVE 0x00000004
  5170. #define TKF_CONFIRMHOTKEY 0x00000008
  5171. #define TKF_HOTKEYSOUND 0x00000010
  5172. #define TKF_INDICATOR 0x00000020
  5173. #define SLE_ERROR 0x00000001
  5174. #define SLE_MINORERROR 0x00000002
  5175. #define SLE_WARNING 0x00000003
  5176. #define MONITOR_DEFAULTTONULL 0x00000000
  5177. #define MONITOR_DEFAULTTOPRIMARY 0x00000001
  5178. #define MONITOR_DEFAULTTONEAREST 0x00000002
  5179. #define MONITORINFOF_PRIMARY 0x00000001
  5180. #ifndef NOWINABLE
  5181. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5182. typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK hWinEventHook,DWORD event,HWND hwnd,LONG idObject,LONG idChild,DWORD idEventThread,DWORD dwmsEventTime);
  5183. WINUSERAPI VOID WINAPI NotifyWinEvent(DWORD event,HWND hwnd,LONG idObject,LONG idChild);
  5184. WINUSERAPI HWINEVENTHOOK WINAPI SetWinEventHook(DWORD eventMin,DWORD eventMax,HMODULE hmodWinEventProc,WINEVENTPROC pfnWinEventProc,DWORD idProcess,DWORD idThread,DWORD dwFlags);
  5185. WINUSERAPI WINBOOL WINAPI IsWinEventHookInstalled(DWORD event);
  5186. #endif
  5187. #define WINEVENT_OUTOFCONTEXT 0x0000
  5188. #define WINEVENT_SKIPOWNTHREAD 0x0001
  5189. #define WINEVENT_SKIPOWNPROCESS 0x0002
  5190. #define WINEVENT_INCONTEXT 0x0004
  5191. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5192. WINUSERAPI WINBOOL WINAPI UnhookWinEvent(HWINEVENTHOOK hWinEventHook);
  5193. #endif
  5194. #define CHILDID_SELF 0
  5195. #define INDEXID_OBJECT 0
  5196. #define INDEXID_CONTAINER 0
  5197. #define OBJID_WINDOW ((LONG)0x00000000)
  5198. #define OBJID_SYSMENU ((LONG)0xFFFFFFFF)
  5199. #define OBJID_TITLEBAR ((LONG)0xFFFFFFFE)
  5200. #define OBJID_MENU ((LONG)0xFFFFFFFD)
  5201. #define OBJID_CLIENT ((LONG)0xFFFFFFFC)
  5202. #define OBJID_VSCROLL ((LONG)0xFFFFFFFB)
  5203. #define OBJID_HSCROLL ((LONG)0xFFFFFFFA)
  5204. #define OBJID_SIZEGRIP ((LONG)0xFFFFFFF9)
  5205. #define OBJID_CARET ((LONG)0xFFFFFFF8)
  5206. #define OBJID_CURSOR ((LONG)0xFFFFFFF7)
  5207. #define OBJID_ALERT ((LONG)0xFFFFFFF6)
  5208. #define OBJID_SOUND ((LONG)0xFFFFFFF5)
  5209. #define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4)
  5210. #define OBJID_NATIVEOM ((LONG)0xFFFFFFF0)
  5211. #define EVENT_MIN 0x00000001
  5212. #define EVENT_MAX 0x7FFFFFFF
  5213. #define EVENT_SYSTEM_SOUND 0x0001
  5214. #define EVENT_SYSTEM_ALERT 0x0002
  5215. #define EVENT_SYSTEM_FOREGROUND 0x0003
  5216. #define EVENT_SYSTEM_MENUSTART 0x0004
  5217. #define EVENT_SYSTEM_MENUEND 0x0005
  5218. #define EVENT_SYSTEM_MENUPOPUPSTART 0x0006
  5219. #define EVENT_SYSTEM_MENUPOPUPEND 0x0007
  5220. #define EVENT_SYSTEM_CAPTURESTART 0x0008
  5221. #define EVENT_SYSTEM_CAPTUREEND 0x0009
  5222. #define EVENT_SYSTEM_MOVESIZESTART 0x000A
  5223. #define EVENT_SYSTEM_MOVESIZEEND 0x000B
  5224. #define EVENT_SYSTEM_CONTEXTHELPSTART 0x000C
  5225. #define EVENT_SYSTEM_CONTEXTHELPEND 0x000D
  5226. #define EVENT_SYSTEM_DRAGDROPSTART 0x000E
  5227. #define EVENT_SYSTEM_DRAGDROPEND 0x000F
  5228. #define EVENT_SYSTEM_DIALOGSTART 0x0010
  5229. #define EVENT_SYSTEM_DIALOGEND 0x0011
  5230. #define EVENT_SYSTEM_SCROLLINGSTART 0x0012
  5231. #define EVENT_SYSTEM_SCROLLINGEND 0x0013
  5232. #define EVENT_SYSTEM_SWITCHSTART 0x0014
  5233. #define EVENT_SYSTEM_SWITCHEND 0x0015
  5234. #define EVENT_SYSTEM_MINIMIZESTART 0x0016
  5235. #define EVENT_SYSTEM_MINIMIZEEND 0x0017
  5236. #if _WIN32_WINNT >= 0x0600
  5237. #define EVENT_SYSTEM_DESKTOPSWITCH 0x0020
  5238. #endif
  5239. #if _WIN32_WINNT >= 0x0602
  5240. #define EVENT_SYSTEM_SWITCHER_APPGRABBED 0x0024
  5241. #define EVENT_SYSTEM_SWITCHER_APPOVERTARGET 0x0025
  5242. #define EVENT_SYSTEM_SWITCHER_APPDROPPED 0x0026
  5243. #define EVENT_SYSTEM_SWITCHER_CANCELLED 0x0027
  5244. #endif
  5245. #if _WIN32_WINNT >= 0x0602
  5246. #define EVENT_SYSTEM_IME_KEY_NOTIFICATION 0x0029
  5247. #endif
  5248. #if _WIN32_WINNT >= 0x0601
  5249. #define EVENT_SYSTEM_END 0x00ff
  5250. #define EVENT_OEM_DEFINED_START 0x0101
  5251. #define EVENT_OEM_DEFINED_END 0x01ff
  5252. #define EVENT_UIA_EVENTID_START 0x4e00
  5253. #define EVENT_UIA_EVENTID_END 0x4eff
  5254. #define EVENT_UIA_PROPID_START 0x7500
  5255. #define EVENT_UIA_PROPID_END 0x75ff
  5256. #endif
  5257. #define EVENT_CONSOLE_CARET 0x4001
  5258. #define EVENT_CONSOLE_UPDATE_REGION 0x4002
  5259. #define EVENT_CONSOLE_UPDATE_SIMPLE 0x4003
  5260. #define EVENT_CONSOLE_UPDATE_SCROLL 0x4004
  5261. #define EVENT_CONSOLE_LAYOUT 0x4005
  5262. #define EVENT_CONSOLE_START_APPLICATION 0x4006
  5263. #define EVENT_CONSOLE_END_APPLICATION 0x4007
  5264. #ifdef _WIN64
  5265. #define CONSOLE_APPLICATION_16BIT 0x0000
  5266. #else
  5267. #define CONSOLE_APPLICATION_16BIT 0x0001
  5268. #endif
  5269. #define CONSOLE_CARET_SELECTION 0x0001
  5270. #define CONSOLE_CARET_VISIBLE 0x0002
  5271. #if _WIN32_WINNT >= 0x0601
  5272. #define EVENT_CONSOLE_END 0x40ff
  5273. #endif
  5274. #define EVENT_OBJECT_CREATE 0x8000
  5275. #define EVENT_OBJECT_DESTROY 0x8001
  5276. #define EVENT_OBJECT_SHOW 0x8002
  5277. #define EVENT_OBJECT_HIDE 0x8003
  5278. #define EVENT_OBJECT_REORDER 0x8004
  5279. #define EVENT_OBJECT_FOCUS 0x8005
  5280. #define EVENT_OBJECT_SELECTION 0x8006
  5281. #define EVENT_OBJECT_SELECTIONADD 0x8007
  5282. #define EVENT_OBJECT_SELECTIONREMOVE 0x8008
  5283. #define EVENT_OBJECT_SELECTIONWITHIN 0x8009
  5284. #define EVENT_OBJECT_STATECHANGE 0x800A
  5285. #define EVENT_OBJECT_LOCATIONCHANGE 0x800B
  5286. #define EVENT_OBJECT_NAMECHANGE 0x800C
  5287. #define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D
  5288. #define EVENT_OBJECT_VALUECHANGE 0x800E
  5289. #define EVENT_OBJECT_PARENTCHANGE 0x800F
  5290. #define EVENT_OBJECT_HELPCHANGE 0x8010
  5291. #define EVENT_OBJECT_DEFACTIONCHANGE 0x8011
  5292. #define EVENT_OBJECT_ACCELERATORCHANGE 0x8012
  5293. #if _WIN32_WINNT >= 0x0600
  5294. #define EVENT_OBJECT_INVOKED 0x8013
  5295. #define EVENT_OBJECT_TEXTSELECTIONCHANGED 0x8014
  5296. #define EVENT_OBJECT_CONTENTSCROLLED 0x8015
  5297. #endif
  5298. #if _WIN32_WINNT >= 0x0601
  5299. #define EVENT_SYSTEM_ARRANGMENTPREVIEW 0x8016
  5300. #endif
  5301. #if _WIN32_WINNT >= 0x0602
  5302. #define EVENT_OBJECT_CLOAKED 0x8017
  5303. #define EVENT_OBJECT_UNCLOAKED 0x8018
  5304. #define EVENT_OBJECT_LIVEREGIONCHANGED 0x8019
  5305. #define EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED 0x8020
  5306. #define EVENT_OBJECT_DRAGSTART 0x8021
  5307. #define EVENT_OBJECT_DRAGCANCEL 0x8022
  5308. #define EVENT_OBJECT_DRAGCOMPLETE 0x8023
  5309. #define EVENT_OBJECT_DRAGENTER 0x8024
  5310. #define EVENT_OBJECT_DRAGLEAVE 0x8025
  5311. #define EVENT_OBJECT_DRAGDROPPED 0x8026
  5312. #define EVENT_OBJECT_IME_SHOW 0x8027
  5313. #define EVENT_OBJECT_IME_HIDE 0x8028
  5314. #define EVENT_OBJECT_IME_CHANGE 0x8029
  5315. #endif
  5316. #if _WIN32_WINNT >= 0x0601
  5317. #define EVENT_OBJECT_END 0x80ff
  5318. #define EVENT_AIA_START 0xa000
  5319. #define EVENT_AIA_END 0xafff
  5320. #endif
  5321. #define SOUND_SYSTEM_STARTUP 1
  5322. #define SOUND_SYSTEM_SHUTDOWN 2
  5323. #define SOUND_SYSTEM_BEEP 3
  5324. #define SOUND_SYSTEM_ERROR 4
  5325. #define SOUND_SYSTEM_QUESTION 5
  5326. #define SOUND_SYSTEM_WARNING 6
  5327. #define SOUND_SYSTEM_INFORMATION 7
  5328. #define SOUND_SYSTEM_MAXIMIZE 8
  5329. #define SOUND_SYSTEM_MINIMIZE 9
  5330. #define SOUND_SYSTEM_RESTOREUP 10
  5331. #define SOUND_SYSTEM_RESTOREDOWN 11
  5332. #define SOUND_SYSTEM_APPSTART 12
  5333. #define SOUND_SYSTEM_FAULT 13
  5334. #define SOUND_SYSTEM_APPEND 14
  5335. #define SOUND_SYSTEM_MENUCOMMAND 15
  5336. #define SOUND_SYSTEM_MENUPOPUP 16
  5337. #define CSOUND_SYSTEM 16
  5338. #define ALERT_SYSTEM_INFORMATIONAL 1
  5339. #define ALERT_SYSTEM_WARNING 2
  5340. #define ALERT_SYSTEM_ERROR 3
  5341. #define ALERT_SYSTEM_QUERY 4
  5342. #define ALERT_SYSTEM_CRITICAL 5
  5343. #define CALERT_SYSTEM 6
  5344. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5345. typedef struct tagGUITHREADINFO {
  5346. DWORD cbSize;
  5347. DWORD flags;
  5348. HWND hwndActive;
  5349. HWND hwndFocus;
  5350. HWND hwndCapture;
  5351. HWND hwndMenuOwner;
  5352. HWND hwndMoveSize;
  5353. HWND hwndCaret;
  5354. RECT rcCaret;
  5355. } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO;
  5356. #endif
  5357. #define GUI_CARETBLINKING 0x00000001
  5358. #define GUI_INMOVESIZE 0x00000002
  5359. #define GUI_INMENUMODE 0x00000004
  5360. #define GUI_SYSTEMMENUMODE 0x00000008
  5361. #define GUI_POPUPMENUMODE 0x00000010
  5362. #ifdef _WIN64
  5363. #define GUI_16BITTASK 0x00000000
  5364. #else
  5365. #define GUI_16BITTASK 0x00000020
  5366. #endif
  5367. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5368. #define GetWindowModuleFileName __MINGW_NAME_AW(GetWindowModuleFileName)
  5369. WINUSERAPI WINBOOL WINAPI GetGUIThreadInfo(DWORD idThread,PGUITHREADINFO pgui);
  5370. WINUSERAPI WINBOOL WINAPI BlockInput (WINBOOL fBlockIt);
  5371. WINUSERAPI UINT WINAPI GetWindowModuleFileNameA(HWND hwnd,LPSTR pszFileName,UINT cchFileNameMax);
  5372. WINUSERAPI UINT WINAPI GetWindowModuleFileNameW(HWND hwnd,LPWSTR pszFileName,UINT cchFileNameMax);
  5373. #if _WIN32_WINNT >= 0x0600
  5374. #define USER_DEFAULT_SCREEN_DPI 96
  5375. WINUSERAPI WINBOOL WINAPI SetProcessDPIAware (VOID);
  5376. WINUSERAPI WINBOOL WINAPI IsProcessDPIAware (VOID);
  5377. #endif
  5378. #if WINVER >= 0x0605
  5379. WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT dpiContext);
  5380. WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetThreadDpiAwarenessContext(VOID);
  5381. WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetWindowDpiAwarenessContext(HWND hwnd);
  5382. WINUSERAPI DPI_AWARENESS WINAPI GetAwarenessFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
  5383. WINUSERAPI UINT WINAPI GetDpiFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
  5384. WINUSERAPI WINBOOL WINAPI AreDpiAwarenessContextsEqual(DPI_AWARENESS_CONTEXT dpiContextA, DPI_AWARENESS_CONTEXT dpiContextB);
  5385. WINUSERAPI WINBOOL WINAPI IsValidDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
  5386. WINUSERAPI UINT WINAPI GetDpiForWindow(HWND hwnd);
  5387. WINUSERAPI UINT WINAPI GetDpiForSystem(VOID);
  5388. WINUSERAPI UINT WINAPI GetSystemDpiForProcess(HANDLE hProcess);
  5389. WINUSERAPI WINBOOL WINAPI EnableNonClientDpiScaling(HWND hwnd);
  5390. WINUSERAPI WINBOOL WINAPI InheritWindowMonitor(HWND hwnd, HWND hwndInherit);
  5391. WINUSERAPI WINBOOL WINAPI SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
  5392. #endif /* WINVER >= 0x0605 */
  5393. #if WINVER >= 0x0606
  5394. WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI SetThreadDpiHostingBehavior(DPI_HOSTING_BEHAVIOR value);
  5395. WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI GetThreadDpiHostingBehavior(VOID);
  5396. WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI GetWindowDpiHostingBehavior(HWND hwnd);
  5397. #endif /* WINVER >= 0x0606 */
  5398. #if NTDDI_VERSION >= NTDDI_WIN10_19H1
  5399. WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetDpiAwarenessContextForProcess(HANDLE hProcess);
  5400. #endif
  5401. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
  5402. #ifndef NO_STATE_FLAGS
  5403. #define STATE_SYSTEM_UNAVAILABLE 0x00000001
  5404. #define STATE_SYSTEM_SELECTED 0x00000002
  5405. #define STATE_SYSTEM_FOCUSED 0x00000004
  5406. #define STATE_SYSTEM_PRESSED 0x00000008
  5407. #define STATE_SYSTEM_CHECKED 0x00000010
  5408. #define STATE_SYSTEM_MIXED 0x00000020
  5409. #define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
  5410. #define STATE_SYSTEM_READONLY 0x00000040
  5411. #define STATE_SYSTEM_HOTTRACKED 0x00000080
  5412. #define STATE_SYSTEM_DEFAULT 0x00000100
  5413. #define STATE_SYSTEM_EXPANDED 0x00000200
  5414. #define STATE_SYSTEM_COLLAPSED 0x00000400
  5415. #define STATE_SYSTEM_BUSY 0x00000800
  5416. #define STATE_SYSTEM_FLOATING 0x00001000
  5417. #define STATE_SYSTEM_MARQUEED 0x00002000
  5418. #define STATE_SYSTEM_ANIMATED 0x00004000
  5419. #define STATE_SYSTEM_INVISIBLE 0x00008000
  5420. #define STATE_SYSTEM_OFFSCREEN 0x00010000
  5421. #define STATE_SYSTEM_SIZEABLE 0x00020000
  5422. #define STATE_SYSTEM_MOVEABLE 0x00040000
  5423. #define STATE_SYSTEM_SELFVOICING 0x00080000
  5424. #define STATE_SYSTEM_FOCUSABLE 0x00100000
  5425. #define STATE_SYSTEM_SELECTABLE 0x00200000
  5426. #define STATE_SYSTEM_LINKED 0x00400000
  5427. #define STATE_SYSTEM_TRAVERSED 0x00800000
  5428. #define STATE_SYSTEM_MULTISELECTABLE 0x01000000
  5429. #define STATE_SYSTEM_EXTSELECTABLE 0x02000000
  5430. #define STATE_SYSTEM_ALERT_LOW 0x04000000
  5431. #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000
  5432. #define STATE_SYSTEM_ALERT_HIGH 0x10000000
  5433. #define STATE_SYSTEM_PROTECTED 0x20000000
  5434. #define STATE_SYSTEM_VALID 0x3FFFFFFF
  5435. #endif
  5436. #define CCHILDREN_TITLEBAR 5
  5437. #define CCHILDREN_SCROLLBAR 5
  5438. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5439. typedef struct tagCURSORINFO {
  5440. DWORD cbSize;
  5441. DWORD flags;
  5442. HCURSOR hCursor;
  5443. POINT ptScreenPos;
  5444. } CURSORINFO,*PCURSORINFO,*LPCURSORINFO;
  5445. #define CURSOR_SHOWING 0x00000001
  5446. #if WINVER >= 0x0602
  5447. #define CURSOR_SUPPRESSED 0x00000002
  5448. #endif
  5449. WINUSERAPI WINBOOL WINAPI GetCursorInfo(PCURSORINFO pci);
  5450. typedef struct tagWINDOWINFO {
  5451. DWORD cbSize;
  5452. RECT rcWindow;
  5453. RECT rcClient;
  5454. DWORD dwStyle;
  5455. DWORD dwExStyle;
  5456. DWORD dwWindowStatus;
  5457. UINT cxWindowBorders;
  5458. UINT cyWindowBorders;
  5459. ATOM atomWindowType;
  5460. WORD wCreatorVersion;
  5461. } WINDOWINFO,*PWINDOWINFO,*LPWINDOWINFO;
  5462. #define WS_ACTIVECAPTION 0x0001
  5463. WINUSERAPI WINBOOL WINAPI GetWindowInfo(HWND hwnd,PWINDOWINFO pwi);
  5464. typedef struct tagTITLEBARINFO {
  5465. DWORD cbSize;
  5466. RECT rcTitleBar;
  5467. DWORD rgstate[CCHILDREN_TITLEBAR + 1];
  5468. } TITLEBARINFO,*PTITLEBARINFO,*LPTITLEBARINFO;
  5469. WINUSERAPI WINBOOL WINAPI GetTitleBarInfo(HWND hwnd,PTITLEBARINFO pti);
  5470. #if WINVER >= 0x0600
  5471. typedef struct tagTITLEBARINFOEX {
  5472. DWORD cbSize;
  5473. RECT rcTitleBar;
  5474. DWORD rgstate[CCHILDREN_TITLEBAR + 1];
  5475. RECT rgrect[CCHILDREN_TITLEBAR + 1];
  5476. } TITLEBARINFOEX,*PTITLEBARINFOEX,*LPTITLEBARINFOEX;
  5477. #endif
  5478. typedef struct tagMENUBARINFO {
  5479. DWORD cbSize;
  5480. RECT rcBar;
  5481. HMENU hMenu;
  5482. HWND hwndMenu;
  5483. WINBOOL fBarFocused:1;
  5484. WINBOOL fFocused:1;
  5485. } MENUBARINFO,*PMENUBARINFO,*LPMENUBARINFO;
  5486. WINUSERAPI WINBOOL WINAPI GetMenuBarInfo(HWND hwnd,LONG idObject,LONG idItem,PMENUBARINFO pmbi);
  5487. typedef struct tagSCROLLBARINFO {
  5488. DWORD cbSize;
  5489. RECT rcScrollBar;
  5490. int dxyLineButton;
  5491. int xyThumbTop;
  5492. int xyThumbBottom;
  5493. int reserved;
  5494. DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
  5495. } SCROLLBARINFO,*PSCROLLBARINFO,*LPSCROLLBARINFO;
  5496. WINUSERAPI WINBOOL WINAPI GetScrollBarInfo(HWND hwnd,LONG idObject,PSCROLLBARINFO psbi);
  5497. typedef struct tagCOMBOBOXINFO {
  5498. DWORD cbSize;
  5499. RECT rcItem;
  5500. RECT rcButton;
  5501. DWORD stateButton;
  5502. HWND hwndCombo;
  5503. HWND hwndItem;
  5504. HWND hwndList;
  5505. } COMBOBOXINFO,*PCOMBOBOXINFO,*LPCOMBOBOXINFO;
  5506. WINUSERAPI WINBOOL WINAPI GetComboBoxInfo(HWND hwndCombo,PCOMBOBOXINFO pcbi);
  5507. #endif
  5508. #define GA_PARENT 1
  5509. #define GA_ROOT 2
  5510. #define GA_ROOTOWNER 3
  5511. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5512. #define RealGetWindowClass __MINGW_NAME_AW(RealGetWindowClass)
  5513. WINUSERAPI HWND WINAPI GetAncestor(HWND hwnd,UINT gaFlags);
  5514. WINUSERAPI HWND WINAPI RealChildWindowFromPoint(HWND hwndParent,POINT ptParentClientCoords);
  5515. WINUSERAPI UINT WINAPI RealGetWindowClassA(HWND hwnd,LPSTR ptszClassName,UINT cchClassNameMax);
  5516. WINUSERAPI UINT WINAPI RealGetWindowClassW(HWND hwnd,LPWSTR ptszClassName,UINT cchClassNameMax);
  5517. typedef struct tagALTTABINFO {
  5518. DWORD cbSize;
  5519. int cItems;
  5520. int cColumns;
  5521. int cRows;
  5522. int iColFocus;
  5523. int iRowFocus;
  5524. int cxItem;
  5525. int cyItem;
  5526. POINT ptStart;
  5527. } ALTTABINFO,*PALTTABINFO,*LPALTTABINFO;
  5528. #define GetAltTabInfo __MINGW_NAME_AW(GetAltTabInfo)
  5529. WINUSERAPI WINBOOL WINAPI GetAltTabInfoA(HWND hwnd,int iItem,PALTTABINFO pati,LPSTR pszItemText,UINT cchItemText);
  5530. WINUSERAPI WINBOOL WINAPI GetAltTabInfoW(HWND hwnd,int iItem,PALTTABINFO pati,LPWSTR pszItemText,UINT cchItemText);
  5531. WINUSERAPI DWORD WINAPI GetListBoxInfo(HWND hwnd);
  5532. #endif
  5533. #endif
  5534. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5535. WINUSERAPI WINBOOL WINAPI LockWorkStation(VOID);
  5536. WINUSERAPI WINBOOL WINAPI UserHandleGrantAccess(HANDLE hUserHandle,HANDLE hJob,WINBOOL bGrant);
  5537. DECLARE_HANDLE(HRAWINPUT);
  5538. #endif
  5539. #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
  5540. #define RIM_INPUT 0
  5541. #define RIM_INPUTSINK 1
  5542. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5543. typedef struct tagRAWINPUTHEADER {
  5544. DWORD dwType;
  5545. DWORD dwSize;
  5546. HANDLE hDevice;
  5547. WPARAM wParam;
  5548. } RAWINPUTHEADER,*PRAWINPUTHEADER,*LPRAWINPUTHEADER;
  5549. #endif
  5550. #define RIM_TYPEMOUSE 0
  5551. #define RIM_TYPEKEYBOARD 1
  5552. #define RIM_TYPEHID 2
  5553. #define RIM_TYPEMAX 2
  5554. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5555. typedef struct tagRAWMOUSE {
  5556. USHORT usFlags;
  5557. __C89_NAMELESS union {
  5558. ULONG ulButtons;
  5559. __C89_NAMELESS struct {
  5560. USHORT usButtonFlags;
  5561. USHORT usButtonData;
  5562. };
  5563. };
  5564. ULONG ulRawButtons;
  5565. LONG lLastX;
  5566. LONG lLastY;
  5567. ULONG ulExtraInformation;
  5568. } RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE;
  5569. #endif
  5570. #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001
  5571. #define RI_MOUSE_LEFT_BUTTON_UP 0x0002
  5572. #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004
  5573. #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008
  5574. #define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010
  5575. #define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020
  5576. #define RI_MOUSE_BUTTON_4_DOWN 0x0040
  5577. #define RI_MOUSE_BUTTON_4_UP 0x0080
  5578. #define RI_MOUSE_BUTTON_5_DOWN 0x0100
  5579. #define RI_MOUSE_BUTTON_5_UP 0x0200
  5580. #define RI_MOUSE_WHEEL 0x0400
  5581. #if WINVER >= 0x0600
  5582. #define RI_MOUSE_HWHEEL 0x0800
  5583. #endif
  5584. #define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN
  5585. #define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP
  5586. #define RI_MOUSE_BUTTON_2_DOWN RI_MOUSE_RIGHT_BUTTON_DOWN
  5587. #define RI_MOUSE_BUTTON_2_UP RI_MOUSE_RIGHT_BUTTON_UP
  5588. #define RI_MOUSE_BUTTON_3_DOWN RI_MOUSE_MIDDLE_BUTTON_DOWN
  5589. #define RI_MOUSE_BUTTON_3_UP RI_MOUSE_MIDDLE_BUTTON_UP
  5590. #define MOUSE_MOVE_RELATIVE 0
  5591. #define MOUSE_MOVE_ABSOLUTE 1
  5592. #define MOUSE_VIRTUAL_DESKTOP 0x02
  5593. #define MOUSE_ATTRIBUTES_CHANGED 0x04
  5594. #if WINVER >= 0x0600
  5595. #define MOUSE_MOVE_NOCOALESCE 0x08
  5596. #endif
  5597. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5598. typedef struct tagRAWKEYBOARD {
  5599. USHORT MakeCode;
  5600. USHORT Flags;
  5601. USHORT Reserved;
  5602. USHORT VKey;
  5603. UINT Message;
  5604. ULONG ExtraInformation;
  5605. } RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD;
  5606. #endif
  5607. #define KEYBOARD_OVERRUN_MAKE_CODE 0xFF
  5608. #define RI_KEY_MAKE 0
  5609. #define RI_KEY_BREAK 1
  5610. #define RI_KEY_E0 2
  5611. #define RI_KEY_E1 4
  5612. #define RI_KEY_TERMSRV_SET_LED 8
  5613. #define RI_KEY_TERMSRV_SHADOW 0x10
  5614. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5615. typedef struct tagRAWHID {
  5616. DWORD dwSizeHid;
  5617. DWORD dwCount;
  5618. BYTE bRawData[1];
  5619. } RAWHID,*PRAWHID,*LPRAWHID;
  5620. typedef struct tagRAWINPUT {
  5621. RAWINPUTHEADER header;
  5622. union {
  5623. RAWMOUSE mouse;
  5624. RAWKEYBOARD keyboard;
  5625. RAWHID hid;
  5626. } data;
  5627. } RAWINPUT,*PRAWINPUT,*LPRAWINPUT;
  5628. #endif
  5629. #ifdef _WIN64
  5630. #define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1))
  5631. #else
  5632. #define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1))
  5633. #endif
  5634. #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
  5635. #define RID_INPUT 0x10000003
  5636. #define RID_HEADER 0x10000005
  5637. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5638. WINUSERAPI UINT WINAPI GetRawInputData(HRAWINPUT hRawInput,UINT uiCommand,LPVOID pData,PUINT pcbSize,UINT cbSizeHeader);
  5639. #endif
  5640. #define RIDI_PREPARSEDDATA 0x20000005
  5641. #define RIDI_DEVICENAME 0x20000007
  5642. #define RIDI_DEVICEINFO 0x2000000b
  5643. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5644. typedef struct tagRID_DEVICE_INFO_MOUSE {
  5645. DWORD dwId;
  5646. DWORD dwNumberOfButtons;
  5647. DWORD dwSampleRate;
  5648. WINBOOL fHasHorizontalWheel;
  5649. } RID_DEVICE_INFO_MOUSE,*PRID_DEVICE_INFO_MOUSE;
  5650. typedef struct tagRID_DEVICE_INFO_KEYBOARD {
  5651. DWORD dwType;
  5652. DWORD dwSubType;
  5653. DWORD dwKeyboardMode;
  5654. DWORD dwNumberOfFunctionKeys;
  5655. DWORD dwNumberOfIndicators;
  5656. DWORD dwNumberOfKeysTotal;
  5657. } RID_DEVICE_INFO_KEYBOARD,*PRID_DEVICE_INFO_KEYBOARD;
  5658. typedef struct tagRID_DEVICE_INFO_HID {
  5659. DWORD dwVendorId;
  5660. DWORD dwProductId;
  5661. DWORD dwVersionNumber;
  5662. USHORT usUsagePage;
  5663. USHORT usUsage;
  5664. } RID_DEVICE_INFO_HID,*PRID_DEVICE_INFO_HID;
  5665. typedef struct tagRID_DEVICE_INFO {
  5666. DWORD cbSize;
  5667. DWORD dwType;
  5668. __C89_NAMELESS union {
  5669. RID_DEVICE_INFO_MOUSE mouse;
  5670. RID_DEVICE_INFO_KEYBOARD keyboard;
  5671. RID_DEVICE_INFO_HID hid;
  5672. } DUMMYUNIONNAME;
  5673. } RID_DEVICE_INFO,*PRID_DEVICE_INFO,*LPRID_DEVICE_INFO;
  5674. #define GetRawInputDeviceInfo __MINGW_NAME_AW(GetRawInputDeviceInfo)
  5675. WINUSERAPI UINT WINAPI GetRawInputDeviceInfoA(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize);
  5676. WINUSERAPI UINT WINAPI GetRawInputDeviceInfoW(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize);
  5677. WINUSERAPI UINT WINAPI GetRawInputBuffer(PRAWINPUT pData,PUINT pcbSize,UINT cbSizeHeader);
  5678. typedef struct tagRAWINPUTDEVICE {
  5679. USHORT usUsagePage;
  5680. USHORT usUsage;
  5681. DWORD dwFlags;
  5682. HWND hwndTarget;
  5683. } RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE;
  5684. typedef CONST RAWINPUTDEVICE *PCRAWINPUTDEVICE;
  5685. #endif
  5686. #define RIDEV_REMOVE 0x00000001
  5687. #define RIDEV_EXCLUDE 0x00000010
  5688. #define RIDEV_PAGEONLY 0x00000020
  5689. #define RIDEV_NOLEGACY 0x00000030
  5690. #define RIDEV_INPUTSINK 0x00000100
  5691. #define RIDEV_CAPTUREMOUSE 0x00000200
  5692. #define RIDEV_NOHOTKEYS 0x00000200
  5693. #define RIDEV_APPKEYS 0x00000400
  5694. #define RIDEV_EXINPUTSINK 0x00001000
  5695. #define RIDEV_DEVNOTIFY 0x00002000
  5696. #define RIDEV_EXMODEMASK 0x000000F0
  5697. #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK)
  5698. #define GIDC_ARRIVAL 1
  5699. #define GIDC_REMOVAL 2
  5700. #if _WIN32_WINNT >= 0x0601
  5701. #define GET_DEVICE_CHANGE_WPARAM(wParam) (LOWORD (wParam))
  5702. #else
  5703. #define GET_DEVICE_CHANGE_LPARAM(lParam) (LOWORD (lParam))
  5704. #endif
  5705. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5706. typedef struct tagRAWINPUTDEVICELIST {
  5707. HANDLE hDevice;
  5708. DWORD dwType;
  5709. } RAWINPUTDEVICELIST,*PRAWINPUTDEVICELIST;
  5710. WINUSERAPI WINBOOL WINAPI RegisterRawInputDevices (PCRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize);
  5711. WINUSERAPI UINT WINAPI GetRegisteredRawInputDevices (PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize);
  5712. WINUSERAPI UINT WINAPI GetRawInputDeviceList (PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize);
  5713. WINUSERAPI LRESULT WINAPI DefRawInputProc (PRAWINPUT *paRawInput, INT nInput, UINT cbSizeHeader);
  5714. #endif
  5715. #if WINVER >= 0x0602
  5716. #define POINTER_DEVICE_PRODUCT_STRING_MAX 520
  5717. #define PDC_ARRIVAL 0x001
  5718. #define PDC_REMOVAL 0x002
  5719. #define PDC_ORIENTATION_0 0x004
  5720. #define PDC_ORIENTATION_90 0x008
  5721. #define PDC_ORIENTATION_180 0x010
  5722. #define PDC_ORIENTATION_270 0x020
  5723. #define PDC_MODE_DEFAULT 0x040
  5724. #define PDC_MODE_CENTERED 0x080
  5725. #define PDC_MAPPING_CHANGE 0x100
  5726. #define PDC_RESOLUTION 0x200
  5727. #define PDC_ORIGIN 0x400
  5728. #define PDC_MODE_ASPECTRATIOPRESERVED 0x800
  5729. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5730. typedef enum tagPOINTER_DEVICE_TYPE {
  5731. POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
  5732. POINTER_DEVICE_TYPE_EXTERNAL_PEN = 0x00000002,
  5733. POINTER_DEVICE_TYPE_TOUCH = 0x00000003
  5734. #if WINVER >= 0x0603
  5735. ,POINTER_DEVICE_TYPE_TOUCH_PAD = 0x00000004
  5736. #endif
  5737. ,POINTER_DEVICE_TYPE_MAX = 0xffffffff
  5738. } POINTER_DEVICE_TYPE;
  5739. typedef struct tagPOINTER_DEVICE_INFO {
  5740. DWORD displayOrientation;
  5741. HANDLE device;
  5742. POINTER_DEVICE_TYPE pointerDeviceType;
  5743. HMONITOR monitor;
  5744. ULONG startingCursorId;
  5745. USHORT maxActiveContacts;
  5746. WCHAR productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
  5747. } POINTER_DEVICE_INFO;
  5748. typedef struct tagPOINTER_DEVICE_PROPERTY {
  5749. INT32 logicalMin;
  5750. INT32 logicalMax;
  5751. INT32 physicalMin;
  5752. INT32 physicalMax;
  5753. UINT32 unit;
  5754. UINT32 unitExponent;
  5755. USHORT usagePageId;
  5756. USHORT usageId;
  5757. } POINTER_DEVICE_PROPERTY;
  5758. typedef enum tagPOINTER_DEVICE_CURSOR_TYPE {
  5759. POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0x00000000,
  5760. POINTER_DEVICE_CURSOR_TYPE_TIP = 0x00000001,
  5761. POINTER_DEVICE_CURSOR_TYPE_ERASER = 0x00000002,
  5762. POINTER_DEVICE_CURSOR_TYPE_MAX = 0xffffffff
  5763. } POINTER_DEVICE_CURSOR_TYPE;
  5764. typedef struct tagPOINTER_DEVICE_CURSOR_INFO {
  5765. UINT32 cursorId;
  5766. POINTER_DEVICE_CURSOR_TYPE cursor;
  5767. } POINTER_DEVICE_CURSOR_INFO;
  5768. WINUSERAPI WINBOOL WINAPI GetPointerDevices (UINT32 *deviceCount, POINTER_DEVICE_INFO *pointerDevices);
  5769. WINUSERAPI WINBOOL WINAPI GetPointerDevice (HANDLE device, POINTER_DEVICE_INFO *pointerDevice);
  5770. WINUSERAPI WINBOOL WINAPI GetPointerDeviceProperties (HANDLE device, UINT32 *propertyCount, POINTER_DEVICE_PROPERTY *pointerProperties);
  5771. WINUSERAPI WINBOOL WINAPI RegisterPointerDeviceNotifications (HWND window, WINBOOL notifyRange);
  5772. WINUSERAPI WINBOOL WINAPI GetPointerDeviceRects (HANDLE device, RECT *pointerDeviceRect, RECT *displayRect);
  5773. WINUSERAPI WINBOOL WINAPI GetPointerDeviceCursors (HANDLE device, UINT32 *cursorCount, POINTER_DEVICE_CURSOR_INFO *deviceCursors);
  5774. WINUSERAPI WINBOOL WINAPI GetRawPointerDeviceData (UINT32 pointerId, UINT32 historyCount, UINT32 propertiesCount, POINTER_DEVICE_PROPERTY *pProperties, LONG *pValues);
  5775. #endif
  5776. #endif
  5777. #if WINVER >= 0x0600
  5778. #define MSGFLT_ADD 1
  5779. #define MSGFLT_REMOVE 2
  5780. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5781. WINUSERAPI WINBOOL WINAPI ChangeWindowMessageFilter (UINT message, DWORD dwFlag);
  5782. #endif
  5783. #endif
  5784. #if WINVER >= 0x0601
  5785. #define MSGFLTINFO_NONE (0)
  5786. #define MSGFLTINFO_ALREADYALLOWED_FORWND (1)
  5787. #define MSGFLTINFO_ALREADYDISALLOWED_FORWND (2)
  5788. #define MSGFLTINFO_ALLOWED_HIGHER (3)
  5789. #define MSGFLT_RESET (0)
  5790. #define MSGFLT_ALLOW (1)
  5791. #define MSGFLT_DISALLOW (2)
  5792. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5793. typedef struct tagCHANGEFILTERSTRUCT {
  5794. DWORD cbSize;
  5795. DWORD ExtStatus;
  5796. } CHANGEFILTERSTRUCT,*PCHANGEFILTERSTRUCT;
  5797. WINUSERAPI WINBOOL WINAPI ChangeWindowMessageFilterEx (HWND hwnd, UINT message, DWORD action, PCHANGEFILTERSTRUCT pChangeFilterStruct);
  5798. #endif
  5799. #endif
  5800. #if WINVER >= 0x0601
  5801. #define GF_BEGIN 0x00000001
  5802. #define GF_INERTIA 0x00000002
  5803. #define GF_END 0x00000004
  5804. #define GID_BEGIN 1
  5805. #define GID_END 2
  5806. #define GID_ZOOM 3
  5807. #define GID_PAN 4
  5808. #define GID_ROTATE 5
  5809. #define GID_TWOFINGERTAP 6
  5810. #define GID_PRESSANDTAP 7
  5811. #define GID_ROLLOVER GID_PRESSANDTAP
  5812. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5813. DECLARE_HANDLE (HGESTUREINFO);
  5814. typedef struct tagGESTUREINFO {
  5815. UINT cbSize;
  5816. DWORD dwFlags;
  5817. DWORD dwID;
  5818. HWND hwndTarget;
  5819. POINTS ptsLocation;
  5820. DWORD dwInstanceID;
  5821. DWORD dwSequenceID;
  5822. ULONGLONG ullArguments;
  5823. UINT cbExtraArgs;
  5824. } GESTUREINFO,*PGESTUREINFO;
  5825. typedef GESTUREINFO const *PCGESTUREINFO;
  5826. typedef struct tagGESTURENOTIFYSTRUCT {
  5827. UINT cbSize;
  5828. DWORD dwFlags;
  5829. HWND hwndTarget;
  5830. POINTS ptsLocation;
  5831. DWORD dwInstanceID;
  5832. } GESTURENOTIFYSTRUCT,*PGESTURENOTIFYSTRUCT;
  5833. #define GID_ROTATE_ANGLE_TO_ARGUMENT(_arg_) ((USHORT) ((((_arg_) + 2.0 *3.14159265) / (4.0 *3.14159265)) *65535.0))
  5834. #define GID_ROTATE_ANGLE_FROM_ARGUMENT(_arg_) ((((double) (_arg_) / 65535.0) *4.0 *3.14159265) - 2.0 *3.14159265)
  5835. WINUSERAPI WINBOOL WINAPI GetGestureInfo (HGESTUREINFO hGestureInfo, PGESTUREINFO pGestureInfo);
  5836. WINUSERAPI WINBOOL WINAPI GetGestureExtraArgs (HGESTUREINFO hGestureInfo, UINT cbExtraArgs, PBYTE pExtraArgs);
  5837. WINUSERAPI WINBOOL WINAPI CloseGestureInfoHandle (HGESTUREINFO hGestureInfo);
  5838. typedef struct tagGESTURECONFIG {
  5839. DWORD dwID;
  5840. DWORD dwWant;
  5841. DWORD dwBlock;
  5842. } GESTURECONFIG,*PGESTURECONFIG;
  5843. #endif
  5844. #define GC_ALLGESTURES 0x00000001
  5845. #define GC_ZOOM 0x00000001
  5846. #define GC_PAN 0x00000001
  5847. #define GC_PAN_WITH_SINGLE_FINGER_VERTICALLY 0x00000002
  5848. #define GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY 0x00000004
  5849. #define GC_PAN_WITH_GUTTER 0x00000008
  5850. #define GC_PAN_WITH_INERTIA 0x00000010
  5851. #define GC_ROTATE 0x00000001
  5852. #define GC_TWOFINGERTAP 0x00000001
  5853. #define GC_PRESSANDTAP 0x00000001
  5854. #define GC_ROLLOVER GC_PRESSANDTAP
  5855. #define GESTURECONFIGMAXCOUNT 256
  5856. #define GCF_INCLUDE_ANCESTORS 0x00000001
  5857. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5858. WINUSERAPI WINBOOL WINAPI SetGestureConfig (HWND hwnd, DWORD dwReserved, UINT cIDs, PGESTURECONFIG pGestureConfig, UINT cbSize);
  5859. WINUSERAPI WINBOOL WINAPI GetGestureConfig (HWND hwnd, DWORD dwReserved, DWORD dwFlags, PUINT pcIDs, PGESTURECONFIG pGestureConfig, UINT cbSize);
  5860. #endif
  5861. #endif
  5862. #if WINVER >= 0x0601
  5863. #define NID_INTEGRATED_TOUCH 0x00000001
  5864. #define NID_EXTERNAL_TOUCH 0x00000002
  5865. #define NID_INTEGRATED_PEN 0x00000004
  5866. #define NID_EXTERNAL_PEN 0x00000008
  5867. #define NID_MULTI_INPUT 0x00000040
  5868. #define NID_READY 0x00000080
  5869. #endif
  5870. #define MAX_STR_BLOCKREASON 256
  5871. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5872. WINUSERAPI WINBOOL WINAPI ShutdownBlockReasonCreate (HWND hWnd, LPCWSTR pwszReason);
  5873. WINUSERAPI WINBOOL WINAPI ShutdownBlockReasonQuery (HWND hWnd, LPWSTR pwszBuff, DWORD *pcchBuff);
  5874. WINUSERAPI WINBOOL WINAPI ShutdownBlockReasonDestroy (HWND hWnd);
  5875. #if WINVER >= 0x0601
  5876. typedef enum tagINPUT_MESSAGE_DEVICE_TYPE {
  5877. IMDT_UNAVAILABLE = 0x00000000,
  5878. IMDT_KEYBOARD = 0x00000001,
  5879. IMDT_MOUSE = 0x00000002,
  5880. IMDT_TOUCH = 0x00000004,
  5881. IMDT_PEN = 0x00000008
  5882. #if WINVER >= 0x0603
  5883. ,IMDT_TOUCHPAD = 0x00000010
  5884. #endif
  5885. } INPUT_MESSAGE_DEVICE_TYPE;
  5886. typedef enum tagINPUT_MESSAGE_ORIGIN_ID {
  5887. IMO_UNAVAILABLE = 0x00000000,
  5888. IMO_HARDWARE = 0x00000001,
  5889. IMO_INJECTED = 0x00000002,
  5890. IMO_SYSTEM = 0x00000004,
  5891. } INPUT_MESSAGE_ORIGIN_ID;
  5892. typedef struct tagINPUT_MESSAGE_SOURCE {
  5893. INPUT_MESSAGE_DEVICE_TYPE deviceType;
  5894. INPUT_MESSAGE_ORIGIN_ID originId;
  5895. } INPUT_MESSAGE_SOURCE;
  5896. WINUSERAPI WINBOOL WINAPI GetCurrentInputMessageSource (INPUT_MESSAGE_SOURCE *inputMessageSource);
  5897. WINUSERAPI WINBOOL WINAPI GetCIMSSM (INPUT_MESSAGE_SOURCE *inputMessageSource);
  5898. #endif
  5899. #endif
  5900. #if WINVER >= 0x0601
  5901. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  5902. typedef enum tagAR_STATE {
  5903. AR_ENABLED = 0x0,
  5904. AR_DISABLED = 0x1,
  5905. AR_SUPPRESSED = 0x2,
  5906. AR_REMOTESESSION = 0x4,
  5907. AR_MULTIMON = 0x8,
  5908. AR_NOSENSOR = 0x10,
  5909. AR_NOT_SUPPORTED = 0x20,
  5910. AR_DOCKED = 0x40,
  5911. AR_LAPTOP = 0x80
  5912. } AR_STATE,*PAR_STATE;
  5913. #endif
  5914. #ifndef __WIDL__
  5915. DEFINE_ENUM_FLAG_OPERATORS (AR_STATE);
  5916. #endif
  5917. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5918. typedef enum ORIENTATION_PREFERENCE {
  5919. ORIENTATION_PREFERENCE_NONE = 0x0,
  5920. ORIENTATION_PREFERENCE_LANDSCAPE = 0x1,
  5921. ORIENTATION_PREFERENCE_PORTRAIT = 0x2,
  5922. ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
  5923. ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8
  5924. } ORIENTATION_PREFERENCE;
  5925. #ifndef __WIDL__
  5926. DEFINE_ENUM_FLAG_OPERATORS (ORIENTATION_PREFERENCE);
  5927. #endif
  5928. WINUSERAPI WINBOOL WINAPI GetAutoRotationState (PAR_STATE pState);
  5929. WINUSERAPI WINBOOL WINAPI GetDisplayAutoRotationPreferences (ORIENTATION_PREFERENCE *pOrientation);
  5930. WINUSERAPI WINBOOL WINAPI GetDisplayAutoRotationPreferencesByProcessId (DWORD dwProcessId, ORIENTATION_PREFERENCE *pOrientation, WINBOOL *fRotateScreen);
  5931. WINUSERAPI WINBOOL WINAPI SetDisplayAutoRotationPreferences (ORIENTATION_PREFERENCE orientation);
  5932. #endif
  5933. #endif
  5934. #if WINVER >= 0x0601
  5935. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5936. WINUSERAPI WINBOOL WINAPI IsImmersiveProcess (HANDLE hProcess);
  5937. WINUSERAPI WINBOOL WINAPI SetProcessRestrictionExemption (WINBOOL fEnableExemption);
  5938. #endif
  5939. #endif
  5940. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5941. #if (_WIN32_WINNT >= 0x0602)
  5942. /* Does this belongs here? */
  5943. typedef struct tagINPUT_TRANSFORM {
  5944. __C89_NAMELESS union {
  5945. __C89_NAMELESS struct {
  5946. float _11;
  5947. float _12;
  5948. float _13;
  5949. float _14;
  5950. float _21;
  5951. float _22;
  5952. float _23;
  5953. float _24;
  5954. float _31;
  5955. float _32;
  5956. float _33;
  5957. float _34;
  5958. float _41;
  5959. float _42;
  5960. float _43;
  5961. float _44;
  5962. };
  5963. float m[4][4];
  5964. };
  5965. } INPUT_TRANSFORM;
  5966. /* Do these functions belong here? */
  5967. WINUSERAPI WINBOOL WINAPI GetPointerInputTransform(UINT32 pointerId, UINT32 historyCount, UINT32 *inputTransform);
  5968. WINUSERAPI WINBOOL WINAPI IsMousePointerEnabled(void);
  5969. #endif /*(_WIN32_WINNT >= 0x0602)*/
  5970. #endif
  5971. #ifdef __cplusplus
  5972. }
  5973. #endif
  5974. #endif