Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665#ifndef __WIN32K_NTUSER_H#define __WIN32K_NTUSER_H
struct _PROCESSINFO;struct _THREADINFO;struct _DESKTOP;struct _WND;struct tagPOPUPMENU;
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
#define HANDLEENTRY_DESTROY 1#define HANDLEENTRY_INDESTROY 2
typedef struct _USER_HANDLE_ENTRY{ void *ptr; /* pointer to object */ union { PVOID pi; struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */ struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */ }; unsigned char type; /* object type (0 if free) */ unsigned char flags; unsigned short generation; /* generation counter */} USER_HANDLE_ENTRY, *PUSER_HANDLE_ENTRY;
typedef struct _USER_HANDLE_TABLE{ PUSER_HANDLE_ENTRY handles; PUSER_HANDLE_ENTRY freelist; int nb_handles; int allocated_handles;} USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
typedef enum _HANDLE_TYPE{ TYPE_FREE = 0, TYPE_WINDOW = 1, TYPE_MENU = 2, TYPE_CURSOR = 3, TYPE_SETWINDOWPOS = 4, TYPE_HOOK = 5, TYPE_CLIPDATA = 6, TYPE_CALLPROC = 7, TYPE_ACCELTABLE = 8, TYPE_DDEACCESS = 9, TYPE_DDECONV = 10, TYPE_DDEXACT = 11, TYPE_MONITOR = 12, TYPE_KBDLAYOUT = 13, TYPE_KBDFILE = 14, TYPE_WINEVENTHOOK = 15, TYPE_TIMER = 16, TYPE_INPUTCONTEXT = 17, TYPE_HIDDATA = 18, TYPE_DEVICEINFO = 19, TYPE_TOUCHINPUTINFO = 20, TYPE_GESTUREINFOOBJ = 21, TYPE_CTYPES, TYPE_GENERIC = 255} HANDLE_TYPE, *PHANDLE_TYPE;
typedef enum _USERTHREADINFOCLASS{ UserThreadShutdownInformation, UserThreadFlags, UserThreadTaskName, UserThreadWOWInformation, UserThreadHungStatus, UserThreadInitiateShutdown, UserThreadEndShutdown, UserThreadUseActiveDesktop, UserThreadUseDesktop, UserThreadRestoreDesktop, UserThreadCsrApiPort,} USERTHREADINFOCLASS;
typedef struct _LARGE_UNICODE_STRING{ ULONG Length; ULONG MaximumLength:31; ULONG bAnsi:1; PWSTR Buffer;} LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING;
typedef struct _LARGE_STRING{ ULONG Length; ULONG MaximumLength:31; ULONG bAnsi:1; PVOID Buffer;} LARGE_STRING, *PLARGE_STRING;
/* Based on ANSI_STRING */typedef struct _LARGE_ANSI_STRING{ ULONG Length; ULONG MaximumLength:31; ULONG bAnsi:1; PCHAR Buffer;} LARGE_ANSI_STRING, *PLARGE_ANSI_STRING;
VOIDNTAPIRtlInitLargeAnsiString( IN OUT PLARGE_ANSI_STRING, IN PCSZ, IN INT);
VOIDNTAPIRtlInitLargeUnicodeString( IN OUT PLARGE_UNICODE_STRING, IN PCWSTR, IN INT);
BOOLNTAPIRtlLargeStringToUnicodeString( PUNICODE_STRING, PLARGE_STRING);
#define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1)
/* * DESKTOPINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/DESKTOP */typedef struct _DESKTOPINFO{ PVOID pvDesktopBase; PVOID pvDesktopLimit; struct _WND *spwnd; DWORD fsHooks; LIST_ENTRY aphkStart[NB_HOOKS];
HWND hTaskManWindow; HWND hProgmanWindow; HWND hShellWindow; struct _WND *spwndShell; struct _WND *spwndBkGnd;
struct _PROCESSINFO *ppiShellProcess;
union { UINT Dummy; struct { UINT LastInputWasKbd:1; }; };
WCHAR szDesktopName[1];} DESKTOPINFO, *PDESKTOPINFO;
#define CTI_THREADSYSLOCK 0x0001#define CTI_INSENDMESSAGE 0x0002
/* * CLIENTTHREADINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/CLIENTTHREADINFO */typedef struct _CLIENTTHREADINFO{ DWORD CTI_flags; WORD fsChangeBits; WORD fsWakeBits; WORD fsWakeBitsJournal; WORD fsWakeMask; ULONG timeLastRead; // Last time the message queue was read. DWORD dwcPumpHook;} CLIENTTHREADINFO, *PCLIENTTHREADINFO;
typedef struct _HEAD{ HANDLE h; DWORD cLockObj;} HEAD, *PHEAD;
typedef struct _THROBJHEAD{ HEAD; struct _THREADINFO *pti;} THROBJHEAD, *PTHROBJHEAD;
typedef struct _THRDESKHEAD{ THROBJHEAD; struct _DESKTOP *rpdesk; PVOID pSelf;} THRDESKHEAD, *PTHRDESKHEAD;
typedef struct tagIMC{ THRDESKHEAD head; struct tagIMC *pImcNext; ULONG_PTR dwClientImcData; HWND hImeWnd;} IMC, *PIMC;
#ifndef _WIN64C_ASSERT(offsetof(IMC, head.h) == 0x0);C_ASSERT(offsetof(IMC, head.cLockObj) == 0x4);C_ASSERT(offsetof(IMC, head.pti) == 0x8);C_ASSERT(offsetof(IMC, pImcNext) == 0x14);C_ASSERT(offsetof(IMC, dwClientImcData) == 0x18);C_ASSERT(offsetof(IMC, hImeWnd) == 0x1c);#endif
typedef struct _PROCDESKHEAD{ HEAD; DWORD_PTR hTaskWow; struct _DESKTOP *rpdesk; PVOID pSelf;} PROCDESKHEAD, *PPROCDESKHEAD;
typedef struct _PROCMARKHEAD{ HEAD; ULONG hTaskWow; struct _PROCESSINFO *ppi;} PROCMARKHEAD, *PPROCMARKHEAD;
#define UserHMGetHandle(obj) ((obj)->head.h)#define UserHMSetHandle(obj, handle) ((obj)->head.h = (handle))
/* Window Client Information structure */struct _ETHREAD;
#define WEF_SETBYWNDPTI 0x0001
typedef struct tagHOOK{ THRDESKHEAD head; struct tagHOOK *phkNext; /* This is for user space. */ int HookId; /* Hook table index */ ULONG_PTR offPfn; ULONG flags; /* Some internal flags */ INT_PTR ihmod; struct _THREADINFO *ptiHooked; struct _DESKTOP *rpdesk; /* ReactOS */ LIST_ENTRY Chain; /* Hook chain entry */ HOOKPROC Proc; /* Hook function */ BOOLEAN Ansi; /* Is it an Ansi hook? */ UNICODE_STRING ModuleName; /* Module name for global hooks */} HOOK, *PHOOK;
typedef struct tagCLIPBOARDDATA{ HEAD head; DWORD cbData; BYTE Data[0];} CLIPBOARDDATA, *PCLIPBOARDDATA;
/* THREADINFO Flags */#define TIF_INCLEANUP 0x00000001#define TIF_16BIT 0x00000002#define TIF_SYSTEMTHREAD 0x00000004#define TIF_CSRSSTHREAD 0x00000008#define TIF_TRACKRECTVISIBLE 0x00000010#define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020#define TIF_DONTATTACHQUEUE 0x00000040#define TIF_DONTJOURNALATTACH 0x00000080#define TIF_WOW64 0x00000100#define TIF_INACTIVATEAPPMSG 0x00000200#define TIF_SPINNING 0x00000400#define TIF_PALETTEAWARE 0x00000800#define TIF_SHAREDWOW 0x00001000#define TIF_FIRSTIDLE 0x00002000#define TIF_WAITFORINPUTIDLE 0x00004000#define TIF_MOVESIZETRACKING 0x00008000#define TIF_VDMAPP 0x00010000#define TIF_DOSEMULATOR 0x00020000#define TIF_GLOBALHOOKER 0x00040000#define TIF_DELAYEDEVENT 0x00080000#define TIF_MSGPOSCHANGED 0x00100000#define TIF_SHUTDOWNCOMPLETE 0x00200000#define TIF_IGNOREPLAYBACKDELAY 0x00400000#define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000#define TIF_GUITHREADINITIALIZED 0x02000000#define TIF_DISABLEIME 0x04000000#define TIF_INGETTEXTLENGTH 0x08000000#define TIF_ANSILENGTH 0x10000000#define TIF_DISABLEHOOKS 0x20000000
typedef struct _CALLBACKWND{ HWND hWnd; struct _WND *pWnd; PVOID pActCtx;} CALLBACKWND, *PCALLBACKWND;
#define CI_TRANSACTION 0x00000001#define CI_QUEUEMSG 0x00000002#define CI_WOW 0x00000004#define CI_INITTHREAD 0x00000008#define CI_CURTHPRHOOK 0x00000010#define CI_CLASSESREGISTERED 0x00000020#define CI_IMMACTIVATE 0x00000040 /* IMM/IME (Asian input) */#define CI_CTFCOINIT 0x00000080 /* Did CTF CoInitialize? */#define CI_CTFTIM 0x00000100 /* CTF Thread Input Manager (TIM) */#define CI_CICERO_STARTED 0x00000200 /* Is Cicero started in the thread? */#define CI_TSFDISABLED 0x00000400 /* TSF (Text Services Framework a.k.a. Cicero) */#define CI_AIMMACTIVATED 0x00000800 /* Active IMM (AIMM) */
/* * CLIENTINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/CLIENTINFO */typedef struct _CLIENTINFO{ ULONG_PTR CI_flags; ULONG_PTR cSpins; DWORD dwExpWinVer; DWORD dwCompatFlags; DWORD dwCompatFlags2; DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */ PDESKTOPINFO pDeskInfo; ULONG_PTR ulClientDelta; PHOOK phkCurrent; ULONG fsHooks; CALLBACKWND CallbackWnd; DWORD dwHookCurrent; INT cInDDEMLCallback; PCLIENTTHREADINFO pClientThreadInfo; ULONG_PTR dwHookData; DWORD dwKeyCache; BYTE afKeyState[8]; DWORD dwAsyncKeyCache; BYTE afAsyncKeyState[8]; BYTE afAsyncKeyStateRecentDow[8]; HKL hKL; USHORT CodePage; UCHAR achDbcsCF[2]; MSG msgDbcsCB; LPDWORD lpdwRegisteredClasses; ULONG Win32ClientInfo3[26];/* It's just a pointer reference not to be used w the structure in user space. */ struct _PROCESSINFO *ppi;} CLIENTINFO, *PCLIENTINFO;
/* Make sure it fits into the TEB */C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo));
#define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
typedef struct tagDDEPACK{ UINT_PTR uiLo; UINT_PTR uiHi;} DDEPACK, *PDDEPACK;
#define HRGN_NULL ((HRGN)0) /* NULL empty region */#define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */#define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */
/* Menu Item fType. */#define MFT_RTOL 0x6000
/* Menu Item fState. */#define MFS_HBMMENUBMP 0x20000000
typedef struct tagITEM{ UINT fType; UINT fState; UINT wID; struct tagMENU *spSubMenu; /* Pop-up menu. */ HANDLE hbmpChecked; HANDLE hbmpUnchecked; USHORT *Xlpstr; /* Item text pointer. */ ULONG cch; DWORD_PTR dwItemData; ULONG xItem; /* Item position. left */ ULONG yItem; /* " top */ ULONG cxItem; /* Item Size Width */ ULONG cyItem; /* " Height */ ULONG dxTab; /* X position of text after Tab */ ULONG ulX; /* underline.. start position */ ULONG ulWidth; /* underline.. width */ HBITMAP hbmp; /* bitmap */ INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */ INT cyBmp; /* Height " */ /* ReactOS */ UNICODE_STRING lpstr;} ITEM, *PITEM;
typedef struct tagMENULIST{ struct tagMENULIST *pNext; struct tagMENU *pMenu;} MENULIST, *PMENULIST;
/* Menu fFlags, upper byte is MNS_X style flags. */#define MNF_POPUP 0x0001#define MNF_UNDERLINE 0x0004#define MNF_INACTIVE 0x0010#define MNF_RTOL 0x0020#define MNF_DESKTOPMN 0x0040#define MNF_SYSDESKMN 0x0080#define MNF_SYSSUBMENU 0x0100/* Hack */#define MNF_SYSMENU 0x0200
/* (other FocusedItem values give the position of the focused item) */#define NO_SELECTED_ITEM 0xffff
typedef struct tagMENU{ PROCDESKHEAD head; ULONG fFlags; /* [Style flags | Menu flags] */ INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */ UINT cAlloced; /* Number of allocated items. Inc's of 8 */ UINT cItems; /* Number of items in the menu */ ULONG cxMenu; /* Width of the whole menu */ ULONG cyMenu; /* Height of the whole menu */ ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */ struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */ PITEM rgItems; /* Array of menu items */ struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */ DWORD dwContextHelpId; ULONG cyMax; /* max height of the whole menu, 0 is screen height */ DWORD_PTR dwMenuData; /* application defined value */ HBRUSH hbrBack; /* brush for menu background */ INT iTop; /* Current scroll position Top */ INT iMaxTop; /* Current scroll position Max Top */ DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */ /* ReactOS */ LIST_ENTRY ListEntry; HWND hWnd; /* Window containing the menu, use POPUPMENU */ BOOL TimeToHide;} MENU, *PMENU;
typedef struct tagPOPUPMENU{ ULONG fIsMenuBar:1; ULONG fHasMenuBar:1; ULONG fIsSysMenu:1; ULONG fIsTrackPopup:1; ULONG fDroppedLeft:1; ULONG fHierarchyDropped:1; ULONG fRightButton:1; ULONG fToggle:1; ULONG fSynchronous:1; ULONG fFirstClick:1; ULONG fDropNextPopup:1; ULONG fNoNotify:1; ULONG fAboutToHide:1; ULONG fShowTimer:1; ULONG fHideTimer:1; ULONG fDestroyed:1; ULONG fDelayedFree:1; ULONG fFlushDelayedFree:1; ULONG fFreed:1; ULONG fInCancel:1; ULONG fTrackMouseEvent:1; ULONG fSendUninit:1; ULONG fRtoL:1; // ULONG fDesktopMenu:1; ULONG iDropDir:5; ULONG fUseMonitorRect:1; struct _WND *spwndNotify; struct _WND *spwndPopupMenu; struct _WND *spwndNextPopup; struct _WND *spwndPrevPopup; PMENU spmenu; PMENU spmenuAlternate; struct _WND *spwndActivePopup; struct tagPOPUPMENU *ppopupmenuRoot; struct tagPOPUPMENU *ppmDelayedFree; UINT posSelectedItem; UINT posDropped;} POPUPMENU, *PPOPUPMENU;
typedef struct _REGISTER_SYSCLASS{ /* This is a reactos specific class used to initialize the system window classes during user32 initialization */ PWSTR ClassName; UINT Style; WNDPROC ProcW; UINT ExtraBytes; HICON hCursor; HBRUSH hBrush; WORD fiId; WORD iCls;} REGISTER_SYSCLASS, *PREGISTER_SYSCLASS;
typedef struct _CLSMENUNAME{ LPSTR pszClientAnsiMenuName; LPWSTR pwszClientUnicodeMenuName; PUNICODE_STRING pusMenuName;} CLSMENUNAME, *PCLSMENUNAME;
typedef struct tagSBDATA{ INT posMin; INT posMax; INT page; INT pos;} SBDATA, *PSBDATA;
typedef struct tagSBINFO{ INT WSBflags; SBDATA Horz; SBDATA Vert;} SBINFO, *PSBINFO;
typedef struct tagSBCALC{ INT posMin; INT posMax; INT page; INT pos; INT pxTop; INT pxBottom; INT pxLeft; INT pxRight; INT cpxThumb; INT pxUpArrow; INT pxDownArrow; INT pxStart; INT pxThumbBottom; INT pxThumbTop; INT cpx; INT pxMin;} SBCALC, *PSBCALC;
typedef enum _GETCPD{ UserGetCPDA2U = 0x01, /* " Unicode " */ UserGetCPDU2A = 0X02, /* " Ansi " */ UserGetCPDClass = 0X10, UserGetCPDWindow = 0X20, UserGetCPDDialog = 0X40, UserGetCPDWndtoCls = 0X80} GETCPD, *PGETCPD;
typedef struct _CALLPROCDATA{ PROCDESKHEAD head; struct _CALLPROCDATA *spcpdNext; WNDPROC pfnClientPrevious; GETCPD wType;} CALLPROCDATA, *PCALLPROCDATA;
#define CSF_SERVERSIDEPROC 0x0001#define CSF_ANSIPROC 0x0002#define CSF_WOWDEFERDESTROY 0x0004#define CSF_SYSTEMCLASS 0x0008#define CSF_WOWCLASS 0x0010#define CSF_WOWEXTRA 0x0020#define CSF_CACHEDSMICON 0x0040#define CSF_WIN40COMPAT 0x0080
typedef struct _CLS{ struct _CLS *pclsNext; RTL_ATOM atomClassName; ATOM atomNVClassName; DWORD fnid; struct _DESKTOP *rpdeskParent; PVOID pdce; DWORD CSF_flags; PSTR lpszClientAnsiMenuName; /* For client use */ PWSTR lpszClientUnicodeMenuName; /* " " " */ PCALLPROCDATA spcpdFirst; struct _CLS *pclsBase; struct _CLS *pclsClone; ULONG cWndReferenceCount; UINT style; WNDPROC lpfnWndProc; INT cbclsExtra; INT cbwndExtra; HINSTANCE hModule; struct _CURICON_OBJECT *spicn; struct _CURICON_OBJECT *spcur; HBRUSH hbrBackground; PWSTR lpszMenuName; /* kernel use */ PSTR lpszAnsiClassName; /* " */ struct _CURICON_OBJECT *spicnSm; //// UINT Unicode:1; // !CSF_ANSIPROC UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC UINT MenuNameIsString:1; UINT NotUsed:29;} CLS, *PCLS;
typedef struct _SBINFOEX{ SCROLLBARINFO ScrollBarInfo; SCROLLINFO ScrollInfo;} SBINFOEX, *PSBINFOEX;
/* State Flags !Not ALL Implemented! */#define WNDS_HASMENU 0X00000001#define WNDS_HASVERTICALSCROOLLBAR 0X00000002#define WNDS_HASHORIZONTALSCROLLBAR 0X00000004#define WNDS_HASCAPTION 0X00000008#define WNDS_SENDSIZEMOVEMSGS 0X00000010#define WNDS_MSGBOX 0X00000020#define WNDS_ACTIVEFRAME 0X00000040#define WNDS_HASSPB 0X00000080#define WNDS_NONCPAINT 0X00000100#define WNDS_SENDERASEBACKGROUND 0X00000200#define WNDS_ERASEBACKGROUND 0X00000400#define WNDS_SENDNCPAINT 0X00000800#define WNDS_INTERNALPAINT 0X00001000#define WNDS_UPDATEDIRTY 0X00002000#define WNDS_HIDDENPOPUP 0X00004000#define WNDS_FORCEMENUDRAW 0X00008000#define WNDS_DIALOGWINDOW 0X00010000#define WNDS_HASCREATESTRUCTNAME 0X00020000#define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */#define WNDS_ANSIWINDOWPROC 0x00080000#define WNDS_BEINGACTIVATED 0x00100000#define WNDS_HASPALETTE 0x00200000#define WNDS_PAINTNOTPROCESSED 0x00400000#define WNDS_SYNCPAINTPENDING 0x00800000#define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000#define WNDS_RECEIVEDSUSPENDMSG 0x02000000#define WNDS_TOGGLETOPMOST 0x04000000#define WNDS_REDRAWIFHUNG 0x08000000#define WNDS_REDRAWFRAMEIFHUNG 0x10000000#define WNDS_ANSICREATOR 0x20000000#define WNDS_MAXIMIZESTOMONITOR 0x40000000#define WNDS_DESTROYED 0x80000000
#define WNDSACTIVEFRAME 0x00000006
/* State2 Flags !Not ALL Implemented! */#define WNDS2_WMPAINTSENT 0X00000001#define WNDS2_ENDPAINTINVALIDATE 0X00000002#define WNDS2_STARTPAINT 0X00000004#define WNDS2_OLDUI 0X00000008#define WNDS2_HASCLIENTEDGE 0X00000010#define WNDS2_BOTTOMMOST 0X00000020#define WNDS2_FULLSCREEN 0X00000040#define WNDS2_INDESTROY 0X00000080#define WNDS2_WIN31COMPAT 0X00000100#define WNDS2_WIN40COMPAT 0X00000200#define WNDS2_WIN50COMPAT 0X00000400#define WNDS2_MAXIMIZEDMONITORREGION 0X00000800#define WNDS2_CLOSEBUTTONDOWN 0X00001000#define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000#define WNDS2_MINIMIZEBUTTONDOWN 0X00004000#define WNDS2_HELPBUTTONDOWN 0X00008000#define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000#define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000#define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000#define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000#define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000#define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000#define WNDS2_FORCENCPAINT 0X00400000#define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000#define WNDS2_FULLSCREENMODE 0X01000000#define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000#define WNDS2_NOMINMAXANIMATERECTS 0X10000000#define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000#define WNDS2_SHELLHOOKREGISTERED 0X40000000#define WNDS2_WMCREATEMSGPROCESSED 0X80000000
/* ExStyles2 */#define WS_EX2_CLIPBOARDLISTENER 0X00000001#define WS_EX2_LAYEREDINVALIDATE 0X00000002#define WS_EX2_REDIRECTEDFORPRINT 0X00000004#define WS_EX2_LINKED 0X00000008#define WS_EX2_LAYEREDFORDWM 0X00000010#define WS_EX2_LAYEREDLIMBO 0X00000020#define WS_EX2_HIGHTDPI_UNAWAR 0X00000040#define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080#define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100#define WS_EX2_HASOVERLAY 0X00000200#define WS_EX2_CONSOLEWINDOW 0X00000400#define WS_EX2_CHILDNOACTIVATE 0X00000800
#define WPF_MININIT 0x0008#define WPF_MAXINIT 0x0010
/* * WND structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/WND */typedef struct _WND{ THRDESKHEAD head;#if 0 WW ww;#else /* These fields should be moved in the WW at some point. */ /* Plese do not change them to keep the same layout with WW. */ DWORD state; DWORD state2; /* Extended style. */ DWORD ExStyle; /* Style. */ DWORD style; /* Handle of the module that created the window. */ HINSTANCE hModule; DWORD fnid;#endif struct _WND *spwndNext; struct _WND *spwndPrev; struct _WND *spwndParent; struct _WND *spwndChild; struct _WND *spwndOwner; RECT rcWindow; RECT rcClient; WNDPROC lpfnWndProc; /* Pointer to the window class. */ PCLS pcls; HRGN hrgnUpdate; /* Property list head.*/ LIST_ENTRY PropListHead; ULONG PropListItems; /* Scrollbar info */ PSBINFO pSBInfo; /* system menu handle. */ HMENU SystemMenu; //PMENU spmenuSys; /* Window menu handle or window id */ UINT_PTR IDMenu; // Use spmenu //PMENU spmenu; HRGN hrgnClip; HRGN hrgnNewFrame; /* Window name. */ LARGE_UNICODE_STRING strName; /* Size of the extra data associated with the window. */ ULONG cbwndExtra; struct _WND *spwndLastActive; HIMC hImc; // Input context associated with this window. LONG_PTR dwUserData; PVOID pActCtx; //PD3DMATRIX pTransForm; struct _WND *spwndClipboardListener; DWORD ExStyle2;
/* ReactOS */ struct { RECT NormalRect; POINT IconPos; POINT MaxPos; UINT flags; /* WPF_ flags. */ } InternalPos;
UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */ UINT InternalPosInitialized:1; UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */ UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */
/* Scrollbar info */ PSBINFOEX pSBInfoex; // convert to PSBINFO /* Entry in the list of thread windows. */ LIST_ENTRY ThreadListEntry;
PVOID DialogPointer;} WND, *PWND;
#define PWND_BOTTOM ((PWND)1)
typedef struct _SBWND{ WND wnd; BOOL fVert; UINT wDisableFlags; SBCALC SBCalc;} SBWND, *PSBWND;
typedef struct _MDIWND{ WND wnd; DWORD dwReserved; PVOID pmdi;} MDIWND, *PMDIWND;
#define GWLP_MDIWND 4
typedef struct _MENUWND{ WND wnd; PPOPUPMENU ppopupmenu;} MENUWND, *PMENUWND;
typedef struct _PFNCLIENT{ WNDPROC pfnScrollBarWndProc; WNDPROC pfnTitleWndProc; WNDPROC pfnMenuWndProc; WNDPROC pfnDesktopWndProc; WNDPROC pfnDefWindowProc; WNDPROC pfnMessageWindowProc; WNDPROC pfnSwitchWindowProc; WNDPROC pfnButtonWndProc; WNDPROC pfnComboBoxWndProc; WNDPROC pfnComboListBoxProc; WNDPROC pfnDialogWndProc; WNDPROC pfnEditWndProc; WNDPROC pfnListBoxWndProc; WNDPROC pfnMDIClientWndProc; WNDPROC pfnStaticWndProc; WNDPROC pfnImeWndProc; WNDPROC pfnGhostWndProc; WNDPROC pfnHkINLPCWPSTRUCT; WNDPROC pfnHkINLPCWPRETSTRUCT; WNDPROC pfnDispatchHook; WNDPROC pfnDispatchDefWindowProc; WNDPROC pfnDispatchMessage; WNDPROC pfnMDIActivateDlgProc;} PFNCLIENT, *PPFNCLIENT;
/* Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode ); Windows uses Ansi == TRUE, Wine uses Unicode == TRUE. */
typedef LRESULT(CALLBACK *WNDPROC_EX)( HWND, UINT, WPARAM, LPARAM, BOOL);
typedef struct _PFNCLIENTWORKER{ WNDPROC_EX pfnButtonWndProc; WNDPROC_EX pfnComboBoxWndProc; WNDPROC_EX pfnComboListBoxProc; WNDPROC_EX pfnDialogWndProc; WNDPROC_EX pfnEditWndProc; WNDPROC_EX pfnListBoxWndProc; WNDPROC_EX pfnMDIClientWndProc; WNDPROC_EX pfnStaticWndProc; WNDPROC_EX pfnImeWndProc; WNDPROC_EX pfnGhostWndProc; WNDPROC_EX pfnCtfHookProc;} PFNCLIENTWORKER, *PPFNCLIENTWORKER;
typedef LONG_PTR(NTAPI *PFN_FNID)( PWND, UINT, WPARAM, LPARAM, ULONG_PTR);
/* FNID's for NtUserSetWindowFNID, NtUserMessageCall */#define FNID_FIRST 0x029A#define FNID_SCROLLBAR 0x029A#define FNID_ICONTITLE 0x029B#define FNID_MENU 0x029C#define FNID_DESKTOP 0x029D#define FNID_DEFWINDOWPROC 0x029E#define FNID_MESSAGEWND 0x029F#define FNID_SWITCH 0x02A0#define FNID_BUTTON 0x02A1#define FNID_COMBOBOX 0x02A2#define FNID_COMBOLBOX 0x02A3#define FNID_DIALOG 0x02A4#define FNID_EDIT 0x02A5#define FNID_LISTBOX 0x02A6#define FNID_MDICLIENT 0x02A7#define FNID_STATIC 0x02A8#define FNID_IME 0x02A9#define FNID_GHOST 0x02AA#define FNID_CALLWNDPROC 0x02AB#define FNID_CALLWNDPROCRET 0x02AC#define FNID_HKINLPCWPEXSTRUCT 0x02AD#define FNID_HKINLPCWPRETEXSTRUCT 0x02AE#define FNID_MB_DLGPROC 0x02AF#define FNID_MDIACTIVATEDLGPROC 0x02B0#define FNID_SENDMESSAGE 0x02B1#define FNID_SENDMESSAGEFF 0x02B2/* Kernel has option to use TimeOut or normal msg send, based on type of msg. */#define FNID_SENDMESSAGEWTOOPTION 0x02B3#define FNID_SENDMESSAGECALLPROC 0x02B4#define FNID_BROADCASTSYSTEMMESSAGE 0x02B5#define FNID_TOOLTIPS 0x02B6#define FNID_SENDNOTIFYMESSAGE 0x02B7#define FNID_SENDMESSAGECALLBACK 0x02B8
#define FNID_LAST FNID_SENDMESSAGECALLBACK
#define FNID_NUM (FNID_LAST - FNID_FIRST + 1)#define FNID_NUMSERVERPROC (FNID_SWITCH - FNID_FIRST + 1)
#define FNID_DDEML 0x2000 /* Registers DDEML */#define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */ /* Seen during WM_CREATE on error exit too. */#define FNID_FREED 0x8000 /* Window being Freed... */
#define ICLASS_TO_MASK(iCls) (1 << ((iCls)))
#define GETPFNCLIENTA(fnid) \ (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST)))#define GETPFNCLIENTW(fnid) \ (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST)))
#define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST]
/* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */#define ICLS_BUTTON 0#define ICLS_EDIT 1#define ICLS_STATIC 2#define ICLS_LISTBOX 3#define ICLS_SCROLLBAR 4#define ICLS_COMBOBOX 5#define ICLS_MDICLIENT 6#define ICLS_COMBOLBOX 7#define ICLS_DDEMLEVENT 8#define ICLS_DDEMLMOTHER 9#define ICLS_DDEML16BIT 10#define ICLS_DDEMLCLIENTA 11#define ICLS_DDEMLCLIENTW 12#define ICLS_DDEMLSERVERA 13#define ICLS_DDEMLSERVERW 14#define ICLS_IME 15#define ICLS_GHOST 16#define ICLS_DESKTOP 17#define ICLS_DIALOG 18#define ICLS_MENU 19#define ICLS_SWITCH 20#define ICLS_ICONTITLE 21#define ICLS_TOOLTIPS 22#if (_WIN32_WINNT <= 0x0501)#define ICLS_UNKNOWN 22#define ICLS_NOTUSED 23#else#define ICLS_SYSSHADOW 23#define ICLS_HWNDMESSAGE 24#define ICLS_NOTUSED 25#endif#define ICLS_END 31
#define COLOR_LAST COLOR_MENUBAR#define MAX_MB_STRINGS 11
#define SRVINFO_DBCSENABLED 0x0002#define SRVINFO_IMM32 0x0004#define SRVINFO_APIHOOK 0x0010#define SRVINFO_CTFIME_ENABLED 0x0020#define SRVINFO_KBDPREF 0x0080
#define NUM_SYSCOLORS 31
typedef struct tagOEMBITMAPINFO{ INT x; INT y; INT cx; INT cy;} OEMBITMAPINFO, *POEMBITMAPINFO;
typedef enum _OBI_TYPES{ OBI_CLOSE = 0, OBI_UPARROW = 46, OBI_UPARROWI = 49, OBI_DNARROW = 50, OBI_DNARROWI = 53, OBI_MNARROW = 62, OBI_CTYPES = 93} OBI_TYPES;
typedef struct tagMBSTRING{ WCHAR szName[16]; UINT uID; UINT uStr;} MBSTRING, *PMBSTRING;
typedef struct tagDPISERVERINFO{ INT gclBorder; /* 000 */ HFONT hCaptionFont; /* 004 */ HFONT hMsgFont; /* 008 */ INT cxMsgFontChar; /* 00C */ INT cyMsgFontChar; /* 010 */ UINT wMaxBtnSize; /* 014 */} DPISERVERINFO, *PDPISERVERINFO;
/* PUSIFlags: */#define PUSIF_PALETTEDISPLAY 0x01#define PUSIF_SNAPTO 0x02#define PUSIF_COMBOBOXANIMATION 0x04#define PUSIF_LISTBOXSMOOTHSCROLLING 0x08#define PUSIF_KEYBOARDCUES 0x20
/* * PERUSERSERVERINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/SERVERINFO */typedef struct _PERUSERSERVERINFO{ INT aiSysMet[SM_CMETRICS]; ULONG argbSystemUnmatched[NUM_SYSCOLORS]; COLORREF argbSystem[NUM_SYSCOLORS]; HBRUSH ahbrSystem[NUM_SYSCOLORS]; HBRUSH hbrGray; POINT ptCursor; POINT ptCursorReal; DWORD dwLastRITEventTickCount; INT nEvents; UINT dtScroll; UINT dtLBSearch; UINT dtCaretBlink; UINT ucWheelScrollLines; UINT ucWheelScrollChars; INT wMaxLeftOverlapChars; INT wMaxRightOverlapChars; INT cxSysFontChar; INT cySysFontChar; TEXTMETRICW tmSysFont; DPISERVERINFO dpiSystem; HICON hIconSmWindows; HICON hIconWindows; DWORD dwKeyCache; DWORD dwAsyncKeyCache; ULONG cCaptures; OEMBITMAPINFO oembmi[OBI_CTYPES]; RECT rcScreenReal; USHORT BitCount; USHORT dmLogPixels; BYTE Planes; BYTE BitsPixel; ULONG PUSIFlags; UINT uCaretWidth; USHORT UILangID; DWORD dwLastSystemRITEventTickCountUpdate; ULONG adwDBGTAGFlags[35]; DWORD dwTagCount; DWORD dwRIPFlags;} PERUSERSERVERINFO, *PPERUSERSERVERINFO;
/* * SERVERINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/SERVERINFO */typedef struct tagSERVERINFO{ DWORD dwSRVIFlags; ULONG_PTR cHandleEntries; PFN_FNID mpFnidPfn[FNID_NUM]; WNDPROC aStoCidPfn[FNID_NUMSERVERPROC]; USHORT mpFnid_serverCBWndProc[FNID_NUM]; PFNCLIENT apfnClientA; PFNCLIENT apfnClientW; PFNCLIENTWORKER apfnClientWorker; ULONG cbHandleTable; ATOM atomSysClass[ICLS_NOTUSED+1]; DWORD dwDefaultHeapBase; DWORD dwDefaultHeapSize; UINT uiShellMsg; MBSTRING MBStrings[MAX_MB_STRINGS]; ATOM atomIconSmProp; ATOM atomIconProp; ATOM atomContextHelpIdProp; ATOM atomFrostedWindowProp; CHAR acOemToAnsi[256]; CHAR acAnsiToOem[256]; DWORD dwInstalledEventHooks; PERUSERSERVERINFO;} SERVERINFO, *PSERVERINFO;
#ifdef _M_IX86C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);#endif
/* Server event activity bits. */#define SRV_EVENT_MENU 0x0001#define SRV_EVENT_END_APPLICATION 0x0002#define SRV_EVENT_RUNNING 0x0004#define SRV_EVENT_NAMECHANGE 0x0008#define SRV_EVENT_VALUECHANGE 0x0010#define SRV_EVENT_STATECHANGE 0x0020#define SRV_EVENT_LOCATIONCHANGE 0x0040#define SRV_EVENT_CREATE 0x8000
typedef struct _PROPLISTITEM{ ATOM Atom; HANDLE Data;} PROPLISTITEM, *PPROPLISTITEM;
#define PROPERTY_FLAG_SYSTEM 1
typedef struct _PROPERTY{ LIST_ENTRY PropListEntry; HANDLE Data; ATOM Atom; WORD fs;} PROPERTY, *PPROPERTY;
typedef struct _BROADCASTPARM{ DWORD flags; DWORD recipients; HDESK hDesk; HWND hWnd; LUID luid;} BROADCASTPARM, *PBROADCASTPARM;
struct _THREADINFO *GetW32ThreadInfo(VOID);struct _PROCESSINFO *GetW32ProcessInfo(VOID);
typedef struct _WNDMSG{ DWORD maxMsgs; PINT abMsgs;} WNDMSG, *PWNDMSG;
/* * SHAREDINFO structure. * See also: https://reactos.org/wiki/Techwiki:Win32k/SHAREDINFO */typedef struct _SHAREDINFO{ PSERVERINFO psi; /* Global Server Info */ PVOID aheList; /* Handle Entry List */ PVOID pDispInfo; /* Global PDISPLAYINFO pointer */ ULONG_PTR ulSharedDelta; /* Shared USER mapped section delta */ WNDMSG awmControl[FNID_NUM]; WNDMSG DefWindowMsgs; WNDMSG DefWindowSpecMsgs;} SHAREDINFO, *PSHAREDINFO;
/* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */typedef struct _USERCONNECT{ ULONG ulVersion; ULONG ulCurrentVersion; DWORD dwDispatchCount; SHAREDINFO siClient;} USERCONNECT, *PUSERCONNECT;
/* WinNT 5.0 compatible user32 / win32k */#define USER_VERSION MAKELONG(0x0000, 0x0005)
#if defined(_M_IX86)C_ASSERT(sizeof(USERCONNECT) == 0x124);#endif
typedef struct tagGETCLIPBDATA{ UINT uFmtRet; BOOL fGlobalHandle; union { HANDLE hLocale; HANDLE hPalette; };} GETCLIPBDATA, *PGETCLIPBDATA;
typedef struct tagSETCLIPBDATA{ BOOL fGlobalHandle; BOOL fIncSerialNumber;} SETCLIPBDATA, *PSETCLIPBDATA;
/* Used with NtUserSetCursorIconData, last parameter. */typedef struct tagCURSORDATA{ LPWSTR lpName; LPWSTR lpModName; USHORT rt; USHORT dummy; ULONG CURSORF_flags; SHORT xHotspot; SHORT yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; HBITMAP hbmAlpha; RECT rcBounds; HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */ ULONG bpp; ULONG cx; ULONG cy; UINT cpcur; UINT cicur; struct tagCURSORDATA *aspcur; DWORD *aicur; INT *ajifRate; UINT iicur;} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
/* CURSORF_flags: */#define CURSORF_FROMRESOURCE 0x0001#define CURSORF_GLOBAL 0x0002#define CURSORF_LRSHARED 0x0004#define CURSORF_ACON 0x0008#define CURSORF_WOWCLEANUP 0x0010#define CURSORF_ACONFRAME 0x0040#define CURSORF_SECRET 0x0080#define CURSORF_LINKED 0x0100#define CURSORF_CURRENT 0x0200
/* Flags for dwCompatFlags2 */#define COMPAT_FLAG_2_CICERO_DISABLED 2
#define IS_IMM_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_IMM32))#define IS_CICERO_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_CTFIME_ENABLED))#define IS_16BIT_MODE() (GetWin32ClientInfo()->dwTIFlags & TIF_16BIT)#define IS_CICERO_COMPAT_DISABLED() \ (GetWin32ClientInfo()->dwCompatFlags2 & COMPAT_FLAG_2_CICERO_DISABLED)
typedef struct tagIMEUI{ PWND spwnd; HIMC hIMC; HWND hwndIMC; HKL hKL; HWND hwndUI; LONG nCntInIMEProc; struct { UINT fShowStatus:1; UINT fActivate:1; UINT fDestroy:1; UINT fDefault:1; UINT fChildThreadDef:1; UINT fCtrlShowStatus:1; UINT fFreeActiveEvent:1; }; DWORD dwLastStatus;} IMEUI, *PIMEUI;
typedef struct tagIMEWND{ WND wnd; PIMEUI pimeui;} IMEWND, *PIMEWND;
#define GWLP_IMEWND_PIMEUI 0
/* IMEWND and GWLP_IMEWND_PIMEUI assume this alignment */C_ASSERT(sizeof(WND) % sizeof(PVOID) == 0);
DWORDNTAPINtUserAssociateInputContext( _In_ HWND hWnd, _In_opt_ HIMC hIMC, _In_ DWORD dwFlags);
NTSTATUSNTAPINtUserBuildHimcList( _In_ DWORD dwThreadId, _In_ DWORD dwCount, _Out_ HIMC *phList, _Out_ PDWORD pdwCount);
DWORDNTAPINtUserCalcMenuBar( HWND hwnd, DWORD x, DWORD width, DWORD y, LPRECT prc);
DWORDNTAPINtUserCheckMenuItem( HMENU hmenu, UINT uIDCheckItem, UINT uCheck);
DWORDNTAPINtUserCtxDisplayIOCtl( DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3);
DWORDAPIENTRYNtUserDbgWin32HeapFail( DWORD Unknown0, DWORD Unknown1);
DWORDAPIENTRYNtUserDbgWin32HeapStat( DWORD Unknown0, DWORD Unknown1);
BOOLNTAPINtUserDeleteMenu( HMENU hMenu, UINT uPosition, UINT uFlags);
BOOLNTAPINtUserDestroyMenu( HMENU hMenu);
DWORDNTAPINtUserDrawMenuBarTemp( HWND hWnd, HDC hDC, PRECT hRect, HMENU hMenu, HFONT hFont);
UINTNTAPINtUserEnableMenuItem( HMENU hMenu, UINT uIDEnableItem, UINT uEnable);
BOOLNTAPINtUserEndMenu(VOID);
BOOLNTAPINtUserGetMenuBarInfo( HWND hwnd, LONG idObject, LONG idItem, PMENUBARINFO pmbi);
UINTNTAPINtUserGetMenuIndex( HMENU hMenu, HMENU hSubMenu);
BOOLNTAPINtUserGetMenuItemRect( HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem);
HMENUNTAPINtUserGetSystemMenu( HWND hWnd, BOOL bRevert);
BOOLNTAPINtUserHiliteMenuItem( HWND hWnd, HMENU hMenu, UINT uItemHilite, UINT uHilite);
intNTAPINtUserMenuItemFromPoint( HWND hWnd, HMENU hMenu, DWORD X, DWORD Y);
BOOLNTAPINtUserRemoveMenu( HMENU hMenu, UINT uPosition, UINT uFlags);
BOOLNTAPINtUserSetMenu( HWND hWnd, HMENU hMenu, BOOL bRepaint);
BOOLNTAPINtUserSetMenuContextHelpId( HMENU hmenu, DWORD dwContextHelpId);
BOOLNTAPINtUserSetMenuDefaultItem( HMENU hMenu, UINT uItem, UINT fByPos);
BOOLNTAPINtUserSetMenuFlagRtoL( HMENU hMenu);
BOOLNTAPINtUserSetSystemMenu( HWND hWnd, HMENU hMenu);
BOOLNTAPINtUserThunkedMenuInfo( HMENU hMenu, LPCMENUINFO lpcmi);
BOOLNTAPINtUserThunkedMenuItemInfo( HMENU hMenu, UINT uItem, BOOL fByPosition, BOOL bInsert, LPMENUITEMINFOW lpmii, PUNICODE_STRING lpszCaption);
BOOLNTAPINtUserTrackPopupMenuEx( _In_ HMENU hMenu, _In_ UINT fuFlags, _In_ INT x, _In_ INT y, _In_ HWND hwnd, _In_opt_ LPTPMPARAMS lptpm);
HKLNTAPINtUserActivateKeyboardLayout( HKL hKL, ULONG Flags);
DWORDNTAPINtUserAlterWindowStyle( HWND hWnd, DWORD Index, LONG NewValue);
BOOLNTAPINtUserAttachThreadInput( IN DWORD idAttach, IN DWORD idAttachTo, IN BOOL fAttach);
HDC NTAPINtUserBeginPaint( HWND hWnd, PAINTSTRUCT *lPs);
BOOLNTAPINtUserBitBltSysBmp( HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop);
BOOLNTAPINtUserBlockInput( BOOL BlockIt);
NTSTATUSNTAPINtUserBuildHwndList( HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG cHwnd, HWND *phwndList, ULONG *pcHwndNeeded);
NTSTATUSNTAPINtUserBuildNameList( HWINSTA hWinSta, ULONG dwSize, PVOID lpBuffer, PULONG pRequiredSize);
NTSTATUSNTAPINtUserBuildPropList( HWND hWnd, LPVOID Buffer, DWORD BufferSize, DWORD *Count);
/* apfnSimpleCall indices from Windows XP SP 2 *//* TODO: Check for differences in Windows 2000, 2003 and 2008 */#define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */
enum SimpleCallRoutines{ NOPARAM_ROUTINE_CREATEMENU, NOPARAM_ROUTINE_CREATEMENUPOPUP,#if (WIN32K_VERSION >= NTDDI_VISTA) NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, NOPARAM_ROUTINE_MSQCLEARWAKEMASK, NOPARAM_ROUTINE_CREATESYSTEMTHREADS, NOPARAM_ROUTINE_DESTROY_CARET,#endif NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,#if (WIN32K_VERSION < NTDDI_VISTA) NOPARAM_ROUTINE_MSQCLEARWAKEMASK, NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, NOPARAM_ROUTINE_DESTROY_CARET,#endif NOPARAM_ROUTINE_GETDEVICECHANGEINFO, NOPARAM_ROUTINE_GETIMESHOWSTATUS, NOPARAM_ROUTINE_GETINPUTDESKTOP, NOPARAM_ROUTINE_GETMSESSAGEPOS,#if (WIN32K_VERSION >= NTDDI_VISTA) NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,#else NOPARAM_ROUTINE_GETREMOTEPROCESSID,#endif NOPARAM_ROUTINE_HIDECURSORNOCAPTURE, NOPARAM_ROUTINE_LOADCURSANDICOS,#if (WIN32K_VERSION >= NTDDI_VISTA) NOPARAM_ROUTINE_LOADUSERAPIHOOK, NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */#endif NOPARAM_ROUTINE_RELEASECAPTURE, NOPARAM_ROUTINE_RESETDBLCLICK, NOPARAM_ROUTINE_ZAPACTIVEANDFOUS, NOPARAM_ROUTINE_REMOTECONSHDWSTOP, NOPARAM_ROUTINE_REMOTEDISCONNECT, NOPARAM_ROUTINE_REMOTELOGOFF, NOPARAM_ROUTINE_REMOTENTSECURITY, NOPARAM_ROUTINE_REMOTESHDWSETUP, NOPARAM_ROUTINE_REMOTESHDWSTOP, NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE, NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE, NOPARAM_ROUTINE_REMOTECONNECTSTATE, NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING, NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,#if (WIN32K_VERSION >= NTDDI_VISTA) NOPARAM_ROUTINE_WAKERITFORSHTDWN,#endif NOPARAM_ROUTINE_INIT_MESSAGE_PUMP, NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,#if (WIN32K_VERSION < NTDDI_VISTA) NOPARAM_ROUTINE_LOADUSERAPIHOOK,#endif ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,#if (WIN32K_VERSION >= NTDDI_VISTA) ONEPARAM_ROUTINE_GETSENDMSGRECVR,#endif ONEPARAM_ROUTINE_WINDOWFROMDC, ONEPARAM_ROUTINE_ALLOWSETFOREGND, ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,#if (WIN32K_VERSION < NTDDI_VISTA) ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,#endif ONEPARAM_ROUTINE_CSDDEUNINITIALIZE, ONEPARAM_ROUTINE_DIRECTEDYIELD, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,#if (WIN32K_VERSION < NTDDI_VISTA) ONEPARAM_ROUTINE_GETCURSORPOS,#endif ONEPARAM_ROUTINE_GETINPUTEVENT, ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT, ONEPARAM_ROUTINE_GETKEYBOARDTYPE, ONEPARAM_ROUTINE_GETPROCDEFLAYOUT, ONEPARAM_ROUTINE_GETQUEUESTATUS, ONEPARAM_ROUTINE_GETWINSTAINFO,#if (WIN32K_VERSION < NTDDI_VISTA) ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,#endif ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW, ONEPARAM_ROUTINE_LOADFONTS, ONEPARAM_ROUTINE_MAPDEKTOPOBJECT, ONEPARAM_ROUTINE_MESSAGEBEEP, ONEPARAM_ROUTINE_PLAYEVENTSOUND, ONEPARAM_ROUTINE_POSTQUITMESSAGE,#if (WIN32K_VERSION < NTDDI_VISTA) ONEPARAM_ROUTINE_PREPAREFORLOGOFF,#endif ONEPARAM_ROUTINE_REALIZEPALETTE, ONEPARAM_ROUTINE_REGISTERLPK,#if (WIN32K_VERSION >= NTDDI_VISTA) ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,#endif ONEPARAM_ROUTINE_REMOTERECONNECT, ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS, ONEPARAM_ROUTINE_RELEASEDC,#if (WIN32K_VERSION >= NTDDI_VISTA) ONEPARAM_ROUTINE_REMOTENOTIFY,#endif ONEPARAM_ROUTINE_REPLYMESSAGE, ONEPARAM_ROUTINE_SETCARETBLINKTIME, ONEPARAM_ROUTINE_SETDBLCLICKTIME,#if (WIN32K_VERSION < NTDDI_VISTA) ONEPARAM_ROUTINE_SETIMESHOWSTATUS,#endif ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO, ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,#if (WIN32K_VERSION >= NTDDI_VISTA) ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,#endif ONEPARAM_ROUTINE_SHOWCURSOR, ONEPARAM_ROUTINE_SHOWSTARTGLASS, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON, X_ROUTINE_WOWMODULEUNLOAD,#if (WIN32K_VERSION < NTDDI_VISTA) X_ROUTINE_REMOTENOTIFY,#endif HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, HWND_ROUTINE_DWP_GETENABLEDPOPUP, HWND_ROUTINE_GETWNDCONTEXTHLPID, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, HWND_ROUTINE_SETMSGBOX, HWNDOPT_ROUTINE_SETPROGMANWINDOW, HWNDOPT_ROUTINE_SETTASKMANWINDOW, HWNDPARAM_ROUTINE_GETCLASSICOCUR, HWNDPARAM_ROUTINE_CLEARWINDOWSTATE, HWNDPARAM_ROUTINE_KILLSYSTEMTIMER, HWNDPARAM_ROUTINE_SETDIALOGPOINTER, HWNDPARAM_ROUTINE_SETVISIBLE, HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID, HWNDPARAM_ROUTINE_SETWINDOWSTATE, HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */ HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS, HWNDLOCK_ROUTINE_DRAWMENUBAR, HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD, HWNDLOCK_ROUTINE_GETSYSMENUHANDLE, HWNDLOCK_ROUTINE_REDRAWFRAME, HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK, HWNDLOCK_ROUTINE_SETDLGSYSMENU, HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW, HWNDLOCK_ROUTINE_SETSYSMENU, HWNDLOCK_ROUTINE_UPDATECKIENTRECT, HWNDLOCK_ROUTINE_UPDATEWINDOW, TWOPARAM_ROUTINE_IMESHOWSTATUSCHANGE, TWOPARAM_ROUTINE_ENABLEWINDOW, TWOPARAM_ROUTINE_REDRAWTITLE, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS, TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW, TWOPARAM_ROUTINE_UPDATEWINDOWS, TWOPARAM_ROUTINE_VALIDATERGN,#if (WIN32K_VERSION >= NTDDI_VISTA) TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER, TWOPARAM_ROUTINE_GETCURSORPOS,#endif TWOPARAM_ROUTINE_GETHDEVNAME, TWOPARAM_ROUTINE_INITANSIOEM, TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,#if (WIN32K_VERSION >= NTDDI_VISTA) TWOPARAM_ROUTINE_REGISTERGHSTWND,#endif TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,#if (WIN32K_VERSION >= NTDDI_VISTA) TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,#else TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,#endif TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS, TWOPARAM_ROUTINE_SHADOWCLEANUP, TWOPARAM_ROUTINE_REMOTESHADOWSTART, TWOPARAM_ROUTINE_SETCARETPOS, TWOPARAM_ROUTINE_SETCURSORPOS,#if (WIN32K_VERSION >= NTDDI_VISTA) TWOPARAM_ROUTINE_SETPHYSCURSORPOS,#endif TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK, TWOPARAM_ROUTINE_WOWCLEANUP};
DWORD_PTRNTAPINtUserCallHwnd( HWND hWnd, DWORD Routine);
BOOLNTAPINtUserCallHwndLock( HWND hWnd, DWORD Routine);
HWNDNTAPINtUserCallHwndOpt( HWND hWnd, DWORD Routine);
DWORDNTAPINtUserCallHwndParam( HWND hWnd, DWORD_PTR Param, DWORD Routine);
DWORDNTAPINtUserCallHwndParamLock( HWND hWnd, DWORD_PTR Param, DWORD Routine);
BOOLNTAPINtUserCallMsgFilter( LPMSG msg, INT code);
LRESULTNTAPINtUserCallNextHookEx( int Code, WPARAM wParam, LPARAM lParam, BOOL Ansi);
DWORD_PTRNTAPINtUserCallNoParam( DWORD Routine);
DWORD_PTRNTAPINtUserCallOneParam( DWORD_PTR Param, DWORD Routine);
DWORD_PTRNTAPINtUserCallTwoParam( DWORD_PTR Param1, DWORD_PTR Param2, DWORD Routine);
BOOLNTAPINtUserChangeClipboardChain( HWND hWndRemove, HWND hWndNewNext);
LONGNTAPINtUserChangeDisplaySettings( PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, DWORD dwflags, LPVOID lParam);
BOOLNTAPINtUserCheckDesktopByThreadId( DWORD dwThreadId);
BOOLNTAPINtUserCheckWindowThreadDesktop( HWND hwnd, DWORD dwThreadId, ULONG ReturnValue);
DWORDNTAPINtUserCheckImeHotKey( _In_ UINT uVirtualKey, _In_ LPARAM lParam);
HWND NTAPINtUserChildWindowFromPointEx( HWND Parent, LONG x, LONG y, UINT Flags);
BOOLNTAPINtUserClipCursor( RECT *lpRect);
BOOLNTAPINtUserCloseClipboard(VOID);
BOOLNTAPINtUserCloseDesktop( HDESK hDesktop);
BOOLNTAPINtUserCloseWindowStation( HWINSTA hWinSta);
/* Console commands for NtUserConsoleControl */typedef enum _CONSOLECONTROL{ ConsoleCtrlDesktopConsoleThread = 0, GuiConsoleWndClassAtom = 1, ConsoleMakePalettePublic = 5, ConsoleAcquireDisplayOwnership,} CONSOLECONTROL, *PCONSOLECONTROL;
typedef struct _DESKTOP_CONSOLE_THREAD{ HDESK DesktopHandle; ULONG_PTR ThreadId;} DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD;
NTSTATUSAPIENTRYNtUserConsoleControl( IN CONSOLECONTROL ConsoleCtrl, IN PVOID ConsoleCtrlInfo, IN ULONG ConsoleCtrlInfoLength);
HANDLENTAPINtUserConvertMemHandle( PVOID pData, DWORD cbData);
ULONGNTAPINtUserCopyAcceleratorTable( HACCEL Table, LPACCEL Entries, ULONG EntriesCount);
DWORDNTAPINtUserCountClipboardFormats(VOID);
HACCELNTAPINtUserCreateAcceleratorTable( LPACCEL Entries, ULONG EntriesCount);
BOOLNTAPINtUserCreateCaret( HWND hWnd, HBITMAP hBitmap, int nWidth, int nHeight);
HDESKNTAPINtUserCreateDesktop( POBJECT_ATTRIBUTES poa, PUNICODE_STRING lpszDesktopDevice, LPDEVMODEW lpdmw, DWORD dwFlags, ACCESS_MASK dwDesiredAccess);
HIMCNTAPINtUserCreateInputContext(_In_ ULONG_PTR dwClientImcData);
NTSTATUSNTAPINtUserCreateLocalMemHandle( HANDLE hMem, PVOID pData, DWORD cbData, DWORD *pcbData);
HWNDNTAPINtUserCreateWindowEx( DWORD dwExStyle, PLARGE_STRING plstrClassName, PLARGE_STRING plstrClsVersion, PLARGE_STRING plstrWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwFlags, PVOID acbiBuffer);
HWINSTANTAPINtUserCreateWindowStation( POBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK dwDesiredAccess, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5, DWORD Unknown6);
BOOLNTAPINtUserDdeGetQualityOfService( IN HWND hwndClient, IN HWND hWndServer, OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
DWORDNTAPINtUserDdeInitialize( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4);
BOOLNTAPINtUserDdeSetQualityOfService( IN HWND hwndClient, IN PSECURITY_QUALITY_OF_SERVICE pqosNew, OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
HDWPNTAPINtUserDeferWindowPos( HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, int x, int y, int cx, int cy, UINT Flags);
BOOLNTAPINtUserDefSetText( HWND WindowHandle, PLARGE_STRING WindowText);
BOOLEANNTAPINtUserDestroyAcceleratorTable( HACCEL Table);
BOOLNTAPINtUserDestroyCursor( _In_ HANDLE Handle, _In_ BOOL bForce);
BOOLNTAPINtUserDestroyInputContext(_In_ HIMC hIMC);
BOOLEANNTAPINtUserDestroyWindow( HWND Wnd);
BOOLNTAPINtUserDisableThreadIme( _In_ DWORD dwThreadID);
LRESULTNTAPINtUserDispatchMessage( PMSG pMsg);
BOOLNTAPINtUserDragDetect( HWND hWnd, POINT pt);
DWORDNTAPINtUserDragObject( HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1);
BOOLNTAPINtUserDrawAnimatedRects( HWND hwnd, INT idAni, RECT *lprcFrom, RECT *lprcTo);
BOOLNTAPINtUserDrawCaption( HWND hWnd, HDC hDc, LPCRECT lpRc, UINT uFlags);
BOOLNTAPINtUserDrawCaptionTemp( HWND hWnd, HDC hDC, LPCRECT lpRc, HFONT hFont, HICON hIcon, const PUNICODE_STRING str, UINT uFlags);
/* Used with NtUserDrawIconEx, last parameter. */typedef struct _DRAWICONEXDATA{ HBITMAP hbmMask; HBITMAP hbmColor; int cx; int cy;} DRAWICONEXDATA, *PDRAWICONEXDATA;
BOOLNTAPINtUserDrawIconEx( HDC hdc, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags, BOOL bMetaHDC, PVOID pDIXData);
BOOLNTAPINtUserEmptyClipboard(VOID);
BOOLNTAPINtUserEnableScrollBar( HWND hWnd, UINT wSBflags, UINT wArrows);
BOOLNTAPINtUserEndDeferWindowPosEx( HDWP WinPosInfo, BOOL bAsync);
BOOLNTAPINtUserEndPaint( HWND hWnd, CONST PAINTSTRUCT *lPs);
BOOLNTAPINtUserEnumDisplayDevices( PUNICODE_STRING lpDevice, /* device name */ DWORD iDevNum, /* display device */ PDISPLAY_DEVICEW lpDisplayDevice, /* device information */ DWORD dwFlags); /* reserved */
/*BOOLNTAPINtUserEnumDisplayMonitors( HDC hdc, LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData);*//* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */INTNTAPINtUserEnumDisplayMonitors( OPTIONAL IN HDC hDC, OPTIONAL IN LPCRECT pRect, OPTIONAL OUT HMONITOR *hMonitorList, OPTIONAL OUT LPRECT monitorRectList, OPTIONAL IN DWORD listSize);
NTSTATUSNTAPINtUserEnumDisplaySettings( PUNICODE_STRING lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode, /* FIXME is this correct? */ DWORD dwFlags);
DWORDNTAPINtUserEvent( DWORD Unknown0);
INTNTAPINtUserExcludeUpdateRgn( HDC hDC, HWND hWnd);
BOOLNTAPINtUserFillWindow( HWND hWndPaint, HWND hWndPaint1, HDC hDC, HBRUSH hBrush);
HWNDNTAPINtUserFindWindowEx( HWND hwndParent, HWND hwndChildAfter, PUNICODE_STRING ucClassName, PUNICODE_STRING ucWindowName, DWORD dwUnknown);
BOOLNTAPINtUserFlashWindowEx( IN PFLASHWINFO pfwi);
BOOLNTAPINtUserGetAltTabInfo( HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi);
HWNDNTAPINtUserGetAncestor( _In_ HWND hWnd, _In_ UINT uType);
DWORDNTAPINtUserGetAppImeLevel(_In_ HWND hWnd);
SHORTNTAPINtUserGetAsyncKeyState( INT Key);
_Success_(return != 0)_At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2))ULONGAPIENTRYNtUserGetAtomName( _In_ ATOM atom, _Inout_ PUNICODE_STRING pustrName);
UINTNTAPINtUserGetCaretBlinkTime(VOID);
BOOLNTAPINtUserGetCaretPos( LPPOINT lpPoint);
BOOLNTAPINtUserGetClassInfo( HINSTANCE hInstance, PUNICODE_STRING ClassName, LPWNDCLASSEXW wcex, LPWSTR *ppszMenuName, BOOL Ansi);
INTNTAPINtUserGetClassName( HWND hWnd, BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */ PUNICODE_STRING ClassName);
HANDLENTAPINtUserGetClipboardData( UINT fmt, PGETCLIPBDATA pgcd);
INTNTAPINtUserGetClipboardFormatName( UINT uFormat, LPWSTR lpszFormatName, INT cchMaxCount);
HWNDNTAPINtUserGetClipboardOwner(VOID);
DWORDNTAPINtUserGetClipboardSequenceNumber(VOID);
HWNDNTAPINtUserGetClipboardViewer(VOID);
BOOLNTAPINtUserGetClipCursor( RECT *lpRect);
BOOLNTAPINtUserGetComboBoxInfo( HWND hWnd, PCOMBOBOXINFO pcbi);
HBRUSHNTAPINtUserGetControlBrush( HWND hwnd, HDC hdc, UINT ctlType);
HBRUSHNTAPINtUserGetControlColor( HWND hwndParent, HWND hwnd, HDC hdc, UINT CtlMsg);
ULONG_PTRNTAPINtUserGetCPD( HWND hWnd, GETCPD Flags, ULONG_PTR Proc);
HCURSORNTAPINtUserGetCursorFrameInfo( HCURSOR hCursor, DWORD istep, INT *rate_jiffies, DWORD *num_steps);
BOOLNTAPINtUserGetCursorInfo( PCURSORINFO pci);
HDCNTAPINtUserGetDC( HWND hWnd);
HDCNTAPINtUserGetDCEx( HWND hWnd, HANDLE hRegion, ULONG Flags);
UINTNTAPINtUserGetDoubleClickTime(VOID);
HWNDNTAPINtUserGetForegroundWindow(VOID);
DWORDNTAPINtUserGetGuiResources( HANDLE hProcess, DWORD uiFlags);
BOOLNTAPINtUserGetGUIThreadInfo( DWORD idThread, LPGUITHREADINFO lpgui);
_Success_(return != FALSE)BOOLNTAPINtUserGetIconInfo( _In_ HANDLE hCurIcon, _Out_opt_ PICONINFO IconInfo, _Inout_opt_ PUNICODE_STRING lpInstName, _Inout_opt_ PUNICODE_STRING lpResName, _Out_opt_ LPDWORD pbpp, _In_ BOOL bInternal);
BOOLNTAPINtUserGetIconSize( HANDLE Handle, UINT istepIfAniCur, LONG *plcx, LONG *plcy);
BOOLNTAPINtUserGetImeHotKey( _In_ DWORD dwHotKeyId, _Out_ PUINT lpuModifiers, _Out_ PUINT lpuVirtualKey, _Out_opt_ LPHKL lphKL);
BOOLNTAPINtUserGetImeInfoEx( _Inout_ PIMEINFOEX pImeInfoEx, _In_ IMEINFOEXCLASS SearchType);
DWORDNTAPINtUserGetInternalWindowPos( HWND hwnd, LPRECT rectWnd, LPPOINT ptIcon);
HKLNTAPINtUserGetKeyboardLayout( DWORD dwThreadid);
UINTNTAPINtUserGetKeyboardLayoutList( ULONG nItems, HKL *pHklBuff);
BOOLNTAPINtUserGetKeyboardLayoutName( _Inout_ PUNICODE_STRING pustrName);
DWORDNTAPINtUserGetKeyboardState( LPBYTE Unknown0);
DWORDNTAPINtUserGetKeyboardType( DWORD TypeFlag);
DWORDNTAPINtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize);
SHORTNTAPINtUserGetKeyState( INT VirtKey);
BOOLNTAPINtUserGetLayeredWindowAttributes( HWND hwnd, COLORREF *pcrKey, BYTE *pbAlpha, DWORD *pdwFlags);
DWORDNTAPINtUserGetListBoxInfo( HWND hWnd);
BOOLAPIENTRYNtUserGetMessage( PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax);
DWORDNTAPINtUserGetMouseMovePointsEx( UINT cbSize, LPMOUSEMOVEPOINT lppt, LPMOUSEMOVEPOINT lpptBuf, int nBufPoints, DWORD resolution);
BOOLNTAPINtUserGetObjectInformation( HANDLE hObject, DWORD nIndex, PVOID pvInformation, DWORD nLength, PDWORD nLengthNeeded);
HWNDNTAPINtUserGetOpenClipboardWindow(VOID);
INTNTAPINtUserGetPriorityClipboardFormat( UINT *paFormatPriorityList, INT cFormats);
HWINSTANTAPINtUserGetProcessWindowStation(VOID);
DWORDNTAPINtUserGetRawInputBuffer( PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader);
DWORDNTAPINtUserGetRawInputData( HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader);
DWORDNTAPINtUserGetRawInputDeviceInfo( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize);
DWORDNTAPINtUserGetRawInputDeviceList( PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize);
DWORDNTAPINtUserGetRegisteredRawInputDevices( PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize);
BOOLNTAPINtUserGetScrollBarInfo( HWND hWnd, LONG idObject, PSCROLLBARINFO psbi);
HDESKNTAPINtUserGetThreadDesktop( DWORD dwThreadId, HDESK hConsoleDesktop);
enum ThreadStateRoutines{ THREADSTATE_FOCUSWINDOW = 0, THREADSTATE_ACTIVEWINDOW, THREADSTATE_CAPTUREWINDOW, THREADSTATE_DEFAULTIMEWINDOW, THREADSTATE_DEFAULTINPUTCONTEXT, THREADSTATE_GETINPUTSTATE, THREADSTATE_GETCURSOR, THREADSTATE_CHANGEBITS, THREADSTATE_UPTIMELASTREAD, THREADSTATE_GETMESSAGEEXTRAINFO, THREADSTATE_INSENDMESSAGE, THREADSTATE_GETMESSAGETIME, THREADSTATE_FOREGROUNDTHREAD, THREADSTATE_IMECOMPATFLAGS, THREADSTATE_OLDKEYBOARDLAYOUT, THREADSTATE_ISWINLOGON, THREADSTATE_UNKNOWN_0x10, THREADSTATE_CHECKCONIME, THREADSTATE_GETTHREADINFO, THREADSTATE_PROGMANWINDOW, /* FIXME: Delete this HACK */ THREADSTATE_TASKMANWINDOW, /* FIXME: Delete this HACK */};
DWORD_PTRNTAPINtUserGetThreadState( DWORD Routine);
BOOLEANNTAPINtUserGetTitleBarInfo( HWND hwnd, PTITLEBARINFO pti);
BOOLNTAPINtUserGetUpdateRect( HWND hWnd, LPRECT lpRect, BOOL fErase);
INTNTAPINtUserGetUpdateRgn( HWND hWnd, HRGN hRgn, BOOL bErase);
HDCNTAPINtUserGetWindowDC( HWND hWnd);
BOOLNTAPINtUserGetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl);
PCLSNTAPINtUserGetWOWClass( HINSTANCE hInstance, PUNICODE_STRING ClassName);
DWORDNTAPINtUserHardErrorControl( DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3);
BOOLNTAPINtUserImpersonateDdeClientWindow( HWND hWndClient, HWND hWndServer);
NTSTATUSNTAPINtUserInitialize( DWORD dwWinVersion, HANDLE hPowerRequestEvent, HANDLE hMediaRequestEvent);
NTSTATUSNTAPINtUserInitializeClientPfnArrays( PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser);
DWORDNTAPINtUserInitTask( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5, DWORD Unknown6, DWORD Unknown7, DWORD Unknown8, DWORD Unknown9, DWORD Unknown10, DWORD Unknown11);
INTNTAPINtUserInternalGetWindowText( HWND hWnd, LPWSTR lpString, INT nMaxCount);
BOOLNTAPINtUserInvalidateRect( HWND hWnd, CONST RECT *lpRect, BOOL bErase);
BOOLNTAPINtUserInvalidateRgn( HWND hWnd, HRGN hRgn, BOOL bErase);
BOOLNTAPINtUserIsClipboardFormatAvailable( UINT format);
BOOLNTAPINtUserKillTimer( HWND hWnd, UINT_PTR uIDEvent);
HKLNTAPINtUserLoadKeyboardLayoutEx( IN HANDLE hFile, IN DWORD offTable, IN PVOID pTables, IN HKL hOldKL, IN PUNICODE_STRING puszKLID, IN DWORD dwNewKL, IN UINT Flags);
BOOLNTAPINtUserLockWindowStation( HWINSTA hWindowStation);
BOOLNTAPINtUserLockWindowUpdate( HWND hWnd);
BOOLNTAPINtUserLockWorkStation(VOID);
UINTNTAPINtUserMapVirtualKeyEx( UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl);
typedef struct tagDOSENDMESSAGE{ UINT uFlags; UINT uTimeout; ULONG_PTR Result;}DOSENDMESSAGE, *PDOSENDMESSAGE;
BOOLNTAPINtUserMessageCall( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR ResultInfo, DWORD dwType, /* FNID_XX types */ BOOL Ansi);
DWORDNTAPINtUserMinMaximize( HWND hWnd, UINT cmd, /* Wine SW_ commands */ BOOL Hide);
DWORDNTAPINtUserMNDragLeave(VOID);
DWORDNTAPINtUserMNDragOver( DWORD Unknown0, DWORD Unknown1);
DWORDNTAPINtUserModifyUserStartupInfoFlags( DWORD Unknown0, DWORD Unknown1);
BOOLNTAPINtUserMoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);
DWORDNTAPINtUserNotifyIMEStatus( _In_ HWND hwnd, _In_ BOOL fOpen, _In_ DWORD dwConversion);
BOOLNTAPINtUserNotifyProcessCreate( HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags);
VOIDNTAPINtUserNotifyWinEvent( DWORD Event, HWND hWnd, LONG idObject, LONG idChild);
BOOLNTAPINtUserOpenClipboard( HWND hWnd, DWORD Unknown1);
HDESKNTAPINtUserOpenDesktop( POBJECT_ATTRIBUTES ObjectAttributes, DWORD dwFlags, ACCESS_MASK dwDesiredAccess);
HDESKNTAPINtUserOpenInputDesktop( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess);
HWINSTANTAPINtUserOpenWindowStation( POBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK dwDesiredAccess);
BOOLNTAPINtUserPaintDesktop( HDC hDC);
DWORDNTAPINtUserPaintMenuBar( HWND hWnd, HDC hDC, ULONG left, // x, ULONG right, // width, // Scale the edge thickness, offset? ULONG top, // y, BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground.
BOOLAPIENTRYNtUserPeekMessage( PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax, UINT RemoveMsg);
BOOLNTAPINtUserPostMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
BOOLNTAPINtUserPostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);
BOOLNTAPINtUserPrintWindow( HWND hwnd, HDC hdcBlt, UINT nFlags);
NTSTATUSNTAPINtUserProcessConnect( IN HANDLE ProcessHandle, OUT PUSERCONNECT pUserConnect, IN ULONG Size); /* sizeof(USERCONNECT) */
NTSTATUSNTAPINtUserQueryInformationThread( IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength);
DWORD_PTRNTAPINtUserQueryInputContext( HIMC hIMC, DWORD dwType);
DWORDNTAPINtUserQuerySendMessage( DWORD Unknown0);
DWORDNTAPINtUserQueryUserCounters( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4);
#define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00#define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01#define QUERY_WINDOW_ACTIVE 0x02#define QUERY_WINDOW_FOCUS 0x03#define QUERY_WINDOW_ISHUNG 0x04#define QUERY_WINDOW_REAL_ID 0x05#define QUERY_WINDOW_FOREGROUND 0x06#define QUERY_WINDOW_DEFAULT_IME 0x07#define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08#define QUERY_WINDOW_ACTIVE_IME 0x09
DWORD_PTRNTAPINtUserQueryWindow( HWND hWnd, DWORD Index);
BOOLNTAPINtUserRealInternalGetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL bGMSG);
HWNDNTAPINtUserRealChildWindowFromPoint( HWND Parent, LONG x, LONG y);
BOOLNTAPINtUserRealWaitMessageEx( DWORD dwWakeMask, UINT uTimeout);
BOOLNTAPINtUserRedrawWindow( HWND hWnd, CONST RECT *lprcUpdate, HRGN hrgnUpdate, UINT flags);
RTL_ATOMNTAPINtUserRegisterClassExWOW( WNDCLASSEXW* lpwcx, PUNICODE_STRING pustrClassName, PUNICODE_STRING pustrCVersion, PCLSMENUNAME pClassMenuName, DWORD fnID, DWORD Flags, LPDWORD pWow);
BOOLNTAPINtUserRegisterRawInputDevices( IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize);
BOOLNTAPINtUserRegisterUserApiHook( PUNICODE_STRING m_dllname1, PUNICODE_STRING m_funname1, DWORD dwUnknown3, DWORD dwUnknown4);
BOOLNTAPINtUserRegisterHotKey( HWND hWnd, int id, UINT fsModifiers, UINT vk);
DWORDNTAPINtUserRegisterTasklist( DWORD Unknown0);
UINTNTAPINtUserRegisterWindowMessage( PUNICODE_STRING MessageName);
DWORDNTAPINtUserRemoteConnect( DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3);
DWORDNTAPINtUserRemoteRedrawRectangle( DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4);
DWORDNTAPINtUserRemoteRedrawScreen(VOID);
DWORDNTAPINtUserRemoteStopScreenUpdates(VOID);
HANDLENTAPINtUserRemoveProp( HWND hWnd, ATOM Atom);
HDESKNTAPINtUserResolveDesktop( IN HANDLE ProcessHandle, IN PUNICODE_STRING DesktopPath, IN BOOL bInherit, OUT HWINSTA* phWinSta);
DWORDNTAPINtUserResolveDesktopForWOW( DWORD Unknown0);
BOOLNTAPINtUserSBGetParms( HWND hwnd, int fnBar, PSBDATA pSBData, LPSCROLLINFO lpsi);
BOOLNTAPINtUserScrollDC( HDC hDC, int dx, int dy, CONST RECT *lprcScroll, CONST RECT *lprcClip , HRGN hrgnUpdate, LPRECT lprcUpdate);
DWORDNTAPINtUserScrollWindowEx( HWND hWnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
UINTNTAPINtUserSendInput( UINT nInputs, LPINPUT pInput, INT cbSize);
HWNDNTAPINtUserSetActiveWindow( HWND Wnd);
BOOLNTAPINtUserSetAppImeLevel( HWND hWnd, DWORD dwLevel);
HWNDNTAPINtUserSetCapture( HWND Wnd);
ULONG_PTRNTAPINtUserSetClassLong( _In_ HWND hWnd, _In_ INT Offset, _In_ ULONG dwNewLong, _In_ BOOL Ansi);
#ifdef _WIN64
ULONG_PTRAPIENTRYNtUserSetClassLongPtr( _In_ HWND hWnd, _In_ INT Offset, _In_ ULONG_PTR dwNewLong, _In_ BOOL Ansi);
#endif // _WIN64WORDNTAPINtUserSetClassWord( HWND hWnd, INT nIndex, WORD wNewWord);
HANDLENTAPINtUserSetClipboardData( UINT fmt, HANDLE hMem, PSETCLIPBDATA scd);
HWNDNTAPINtUserSetClipboardViewer( HWND hWndNewViewer);
HPALETTENTAPINtUserSelectPalette( HDC hDC, HPALETTE hpal, BOOL ForceBackground);
DWORDNTAPINtUserSetConsoleReserveKeys( DWORD Unknown0, DWORD Unknown1);
HCURSORNTAPINtUserSetCursor( HCURSOR hCursor);
BOOLNTAPINtUserSetCursorContents( HANDLE Handle, PICONINFO IconInfo);
BOOLNTAPINtUserSetCursorIconData( _In_ HCURSOR hCursor, _In_opt_ PUNICODE_STRING pustrModule, _In_opt_ PUNICODE_STRING puSrcName, _In_ const CURSORDATA *pCursorData);
typedef struct _tagFINDEXISTINGCURICONPARAM{ BOOL bIcon; LONG cx; LONG cy;} FINDEXISTINGCURICONPARAM;
HICONNTAPINtUserFindExistingCursorIcon( _In_ PUNICODE_STRING pustrModule, _In_ PUNICODE_STRING pustrRsrc, _In_ FINDEXISTINGCURICONPARAM *param);
DWORDNTAPINtUserSetDbgTag( DWORD Unknown0, DWORD Unknown1);
DWORDAPIENTRYNtUserSetDbgTagCount( DWORD Unknown0);
HWNDNTAPINtUserSetFocus( HWND hWnd);
BOOLNTAPINtUserSetImeHotKey( _In_ DWORD dwHotKeyId, _In_ UINT uModifiers, _In_ UINT uVirtualKey, _In_opt_ HKL hKL, _In_ DWORD dwAction);
BOOLNTAPINtUserSetImeInfoEx( _In_ const IMEINFOEX *pImeInfoEx);
BOOLNTAPINtUserSetImeOwnerWindow(_In_ HWND hImeWnd, _In_opt_ HWND hwndFocus);
DWORDNTAPINtUserSetInformationProcess( DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4);
NTSTATUSNTAPINtUserSetInformationThread( IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength);
DWORDNTAPINtUserSetInternalWindowPos( HWND hwnd, UINT showCmd, LPRECT rect, LPPOINT pt);
BOOLNTAPINtUserSetKeyboardState( LPBYTE lpKeyState);
BOOLNTAPINtUserSetLayeredWindowAttributes( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
BOOLNTAPINtUserSetLogonNotifyWindow( HWND hWnd);
BOOLNTAPINtUserSetObjectInformation( HANDLE hObject, DWORD nIndex, PVOID pvInformation, DWORD nLength);
HWNDNTAPINtUserSetParent( HWND hWndChild, HWND hWndNewParent);
BOOLNTAPINtUserSetProcessWindowStation( HWINSTA hWindowStation);
BOOLNTAPINtUserSetProp( HWND hWnd, ATOM Atom, HANDLE Data);
DWORDNTAPINtUserSetRipFlags( DWORD Unknown0);
DWORDNTAPINtUserSetScrollInfo( HWND hwnd, int fnBar, LPCSCROLLINFO lpsi, BOOL bRedraw);
BOOLNTAPINtUserSetShellWindowEx( HWND hwndShell, HWND hwndShellListView);
BOOLNTAPINtUserSetSysColors( int cElements, IN CONST INT *lpaElements, IN CONST COLORREF *lpaRgbValues, FLONG Flags);
BOOLNTAPINtUserSetSystemCursor( HCURSOR hcur, DWORD id);
BOOLNTAPINtUserSetThreadDesktop( HDESK hDesktop);
DWORDNTAPINtUserSetThreadState( DWORD Unknown0, DWORD Unknown1);
UINT_PTRNTAPINtUserSetSystemTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
DWORDNTAPINtUserSetThreadLayoutHandles( _In_ HKL hNewKL, _In_ HKL hOldKL);
UINT_PTRNTAPINtUserSetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
BOOLNTAPINtUserSetWindowFNID( HWND hWnd, WORD fnID);
LONGNTAPINtUserSetWindowLong( HWND hWnd, DWORD Index, LONG NewValue, BOOL Ansi);
#ifdef _WIN64LONG_PTRNTAPINtUserSetWindowLongPtr( HWND hWnd, DWORD Index, LONG_PTR NewValue, BOOL Ansi);#else#define NtUserSetWindowLongPtr NtUserSetWindowLong#endif // _WIN64
BOOLNTAPINtUserSetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl);
BOOLNTAPINtUserSetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
INTNTAPINtUserSetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw);
HHOOKNTAPINtUserSetWindowsHookAW( int idHook, HOOKPROC lpfn, BOOL Ansi);
HHOOKNTAPINtUserSetWindowsHookEx( HINSTANCE Mod, PUNICODE_STRING ModuleName, DWORD ThreadId, int HookId, HOOKPROC HookProc, BOOL Ansi);
BOOLNTAPINtUserSetWindowStationUser( IN HWINSTA hWindowStation, IN PLUID pluid, IN PSID psid OPTIONAL, IN DWORD size);
WORDNTAPINtUserSetWindowWord( HWND hWnd, INT Index, WORD NewVal);
HWINEVENTHOOKNTAPINtUserSetWinEventHook( UINT eventMin, UINT eventMax, HMODULE hmodWinEventProc, PUNICODE_STRING puString, WINEVENTPROC lpfnWinEventProc, DWORD idProcess, DWORD idThread, UINT dwflags);
BOOLNTAPINtUserShowCaret( HWND hWnd);
BOOLNTAPINtUserHideCaret( HWND hWnd);
DWORDNTAPINtUserShowScrollBar( HWND hWnd, int wBar, DWORD bShow);
BOOLNTAPINtUserShowWindow( HWND hWnd, LONG nCmdShow);
BOOLNTAPINtUserShowWindowAsync( HWND hWnd, LONG nCmdShow);
BOOLNTAPINtUserSoundSentry(VOID);
BOOLNTAPINtUserSwitchDesktop( HDESK hDesktop);
BOOLNTAPINtUserSystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);
DWORDNTAPINtUserTestForInteractiveUser( DWORD dwUnknown1);
INTNTAPINtUserToUnicodeEx( UINT wVirtKey, UINT wScanCode, PBYTE lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags, HKL dwhkl);
BOOLNTAPINtUserTrackMouseEvent( LPTRACKMOUSEEVENT lpEventTrack);
intNTAPINtUserTranslateAccelerator( HWND Window, HACCEL Table, LPMSG Message);
BOOLNTAPINtUserTranslateMessage( LPMSG lpMsg, UINT flags );
BOOLNTAPINtUserUnhookWindowsHookEx( HHOOK Hook);
BOOLNTAPINtUserUnhookWinEvent( HWINEVENTHOOK hWinEventHook);
BOOLNTAPINtUserUnloadKeyboardLayout( HKL hKl);
BOOLNTAPINtUserUnlockWindowStation( HWINSTA hWindowStation);
BOOLNTAPINtUserUnregisterClass( PUNICODE_STRING ClassNameOrAtom, HINSTANCE hInstance, PCLSMENUNAME pClassMenuName);
BOOLNTAPINtUserUnregisterHotKey( HWND hWnd, int id);
BOOLNTAPINtUserUnregisterUserApiHook(VOID);
BOOLNTAPINtUserUpdateInputContext( HIMC hIMC, DWORD dwType, DWORD_PTR dwValue);
DWORDNTAPINtUserUpdateInstance( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2);
BOOLNTAPINtUserUpdateLayeredWindow( HWND hwnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags, RECT *prcDirty);
BOOLNTAPINtUserUpdatePerUserSystemParameters( DWORD dwReserved, BOOL bEnable);
BOOLNTAPINtUserUserHandleGrantAccess( IN HANDLE hUserHandle, IN HANDLE hJob, IN BOOL bGrant);
BOOLNTAPINtUserValidateHandleSecure( HANDLE hHdl);
BOOLNTAPINtUserValidateRect( HWND hWnd, CONST RECT *lpRect);
BOOLAPIENTRYNtUserValidateTimerCallback( LPARAM lParam);
DWORDNTAPINtUserVkKeyScanEx( WCHAR wChar, HKL KeyboardLayout, BOOL bUsehHK);
DWORDNTAPINtUserWaitForInputIdle( IN HANDLE hProcess, IN DWORD dwMilliseconds, IN BOOL bSharedWow); /* Always FALSE */
DWORDNTAPINtUserWaitForMsgAndEvent( DWORD Unknown0);
BOOLNTAPINtUserWaitMessage(VOID);
DWORDNTAPINtUserWin32PoolAllocationStats( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5);
HWNDNTAPINtUserWindowFromPoint( LONG X, LONG Y);
DWORDNTAPINtUserYieldTask(VOID);
/* NtUserBad * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. */
#define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052
#define MSQ_STATE_CAPTURE 0x1#define MSQ_STATE_ACTIVE 0x2#define MSQ_STATE_FOCUS 0x3#define MSQ_STATE_MENUOWNER 0x4#define MSQ_STATE_MOVESIZE 0x5#define MSQ_STATE_CARET 0x6
#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
BOOLNTAPINtUserGetMonitorInfo( IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo);
/* Should be done in usermode */
HMONITORNTAPINtUserMonitorFromPoint( _In_ POINT point, _In_ DWORD dwFlags);
HMONITORNTAPINtUserMonitorFromRect( _In_ LPCRECT pRect, _In_ DWORD dwFlags);
HMONITORNTAPINtUserMonitorFromWindow( _In_ HWND hWnd, _In_ DWORD dwFlags);
typedef struct _SETSCROLLBARINFO{ int nTrackPos; int reserved; DWORD rgstate[CCHILDREN_SCROLLBAR + 1];} SETSCROLLBARINFO, *PSETSCROLLBARINFO;
BOOLNTAPINtUserSetScrollBarInfo( HWND hwnd, LONG idObject, SETSCROLLBARINFO *info);
ULONGRtlGetExpWinVer(_In_ PVOID BaseAddress);
#endif /* __WIN32K_NTUSER_H */
/* EOF */