apiw_sys/
windows_subsystem.rs

1#![allow(unused_doc_comments)]
2#[cfg(any(
3    feature = "windows-subsystem-paint",
4    feature = "windows-subsystem-updateregion",
5    feature = "graphics-subsystem-basic"
6))]
7use windows_sys::Win32::Graphics::Gdi as gdi;
8#[cfg(any(
9    feature = "windows-subsystem-clipboard",
10    feature = "windows-subsystem-atom"
11))]
12use windows_sys::Win32::System::DataExchange as sysdx;
13#[cfg(any(
14    feature = "windows-subsystem-message",
15    feature = "windows-subsystem-control-button",
16    feature = "windows-subsystem-dialogbox",
17    feature = "windows-subsystem-scroll",
18))]
19use windows_sys::Win32::UI::Controls as ctrls;
20#[cfg(feature = "windows-subsystem-basic")]
21use windows_sys::Win32::UI::Input::KeyboardAndMouse as kbdmse;
22use windows_sys::Win32::UI::WindowsAndMessaging as winmsg;
23
24/// `#6` CallWindowProc
25///
26/// passes message information to the specified window procedure
27pub use winmsg::CallWindowProcW as CallWindowProc;
28
29/// `#7` DispatchMessage
30///
31/// dispatches a message to a window
32#[cfg(feature = "windows-subsystem-message")]
33pub use winmsg::DispatchMessageW as DispatchMessage;
34
35/// `#8` GetMessage
36///
37/// retrieves a message from the application's message queue and places the
38/// message in an `MSG`` structure
39#[cfg(feature = "windows-subsystem-message")]
40pub use winmsg::GetMessageW as GetMessage;
41
42/// `#8` PeekMessage
43///
44/// checks the application's message queue for a message and places the message
45/// (if any) in the specified `MSG`` structure
46#[cfg(feature = "windows-subsystem-message")]
47pub use winmsg::PeekMessageW as PeekMessage;
48
49/// `#9` WaitMessage
50///
51/// suspends the application and waits until a new message is added to the
52/// application’s queue
53#[cfg(feature = "windows-subsystem-message")]
54pub use winmsg::WaitMessage;
55
56/// `#10` GetMessagePos
57///
58/// returns a long value representing a cursor position, in screen coordinates,
59/// when the last message retrieved by the `GetMessage()` function occurs
60#[cfg(feature = "windows-subsystem-message")]
61pub use winmsg::GetMessagePos;
62
63/// `#10` GetMessageTime
64///
65/// returns the message time for the last message retrieved by the function
66#[cfg(feature = "windows-subsystem-message")]
67pub use winmsg::GetMessageTime;
68
69/// `#11` InSendMessage
70///
71/// determines whether the current window procedure is processing a message sent
72/// from another task by a call to the `SendMessage()` function
73#[cfg(feature = "windows-subsystem-message")]
74pub use winmsg::InSendMessage;
75
76/// `#11` ReplyMessage
77///
78/// reply to a message sent through the SendMessage() function without returning
79/// control to the application that sent the message
80#[cfg(feature = "windows-subsystem-message")]
81pub use winmsg::ReplyMessage;
82
83/// `#12` PostAppMessage
84///
85/// places a message in the message queue of the given task
86removed_item!(
87    pub use winmsg::PostAppMessage;
88);
89
90/// `#12` PostMessage
91///
92/// places a message in a window message queue
93#[cfg(feature = "windows-subsystem-message")]
94pub use winmsg::PostMessageW as PostMessage;
95
96/// `#12` PostQuitMessage
97///
98/// posts a message to the system requesting an application to terminate
99/// execution
100#[cfg(feature = "windows-subsystem-message")]
101pub use winmsg::PostQuitMessage;
102
103/// `#13` SendMessage
104///
105/// sends a message to the specified window or windows
106#[cfg(feature = "windows-subsystem-message")]
107pub use winmsg::SendMessageW as SendMessage;
108
109/// `#14` SetMessageQueue
110///
111/// set the application's message queue size
112#[cfg(feature = "windows-subsystem-message")]
113pub use winmsg::SetMessageQueue;
114
115/// `#15` TranslateAccelerator
116///
117/// processes accelerator keys for menu commands
118#[cfg(feature = "windows-subsystem-message")]
119pub use winmsg::TranslateAcceleratorW as TranslateAccelerator;
120
121/// `#16` TranslateMDISysAccel
122///
123/// processes the accelerator keys of the given multiple document interface
124/// (MDI) child window
125#[cfg(all(
126    feature = "windows-subsystem-message",
127    feature = "windows-subsystem-mdi"
128))]
129pub use winmsg::TranslateMDISysAccel;
130
131/// `#17` TranslateMessage
132///
133/// translates virtual-key messages into character messages
134#[cfg(feature = "windows-subsystem-message")]
135pub use winmsg::TranslateMessage;
136
137/// `#18` RegisterWindowMessage
138///
139/// create a custom window message or retrieve the identifier associated with an
140/// existing custom window message
141#[cfg(feature = "windows-subsystem-message")]
142pub use winmsg::RegisterWindowMessageW as RegisterWindowMessage;
143
144/// `#19` GetMessageExtraInfo
145///
146/// gets extra information belonging to the last message found by the
147/// `GetMessage()` or `PeekMessage()` functions
148#[cfg(feature = "windows-subsystem-message")]
149pub use winmsg::GetMessageExtraInfo;
150
151/// `C.25` MSG
152///
153/// contains a message's information
154#[cfg(feature = "windows-subsystem-message")]
155pub use winmsg::MSG;
156
157/// `D.1~D.5` Window messages for button
158#[cfg(all(
159    feature = "windows-subsystem-message",
160    feature = "windows-subsystem-control-button"
161))]
162pub mod window_messages_for_button;
163
164/// `D.6~D.30` Window messages for combo box
165#[cfg(all(
166    feature = "windows-subsystem-message",
167    feature = "windows-subsystem-control-combobox"
168))]
169pub mod window_messages_for_combobox;
170
171/// `D.31~D.32` Window messages for dialog box
172#[cfg(all(
173    feature = "windows-subsystem-message",
174    feature = "windows-subsystem-dialogbox"
175))]
176pub mod window_messages_for_dialogbox;
177
178/// `D.33~D.60` Window messages for edit
179#[cfg(all(
180    feature = "windows-subsystem-message",
181    feature = "windows-subsystem-control-edit"
182))]
183pub mod window_messages_for_edit;
184
185/// `D.61~D.91` Window messages for combo box
186#[cfg(all(
187    feature = "windows-subsystem-message",
188    feature = "windows-subsystem-control-listbox"
189))]
190pub mod window_messages_for_listbox;
191
192/// `D.92~D.93` Window messages for static
193#[cfg(all(
194    feature = "windows-subsystem-message",
195    feature = "windows-subsystem-control-static"
196))]
197pub mod window_messages_for_static;
198
199/// `D.94~D.217` General window messages
200#[cfg(feature = "windows-subsystem-message")]
201pub mod general_window_messages;
202
203/// `C.10` COMPAREITEMSTRUCT
204///
205/// contains the identifiers and application-defined data for two items in a
206/// sorted, owner-drawn combo box or list box control
207#[cfg(all(
208    feature = "windows-subsystem-message",
209    any(
210        feature = "windows-subsystem-control-combobox",
211        feature = "windows-subsystem-control-listbox"
212    )
213))]
214pub use ctrls::COMPAREITEMSTRUCT;
215
216/// `C.12` DELETEITEMSTRUCT
217///
218/// contains information associated with an item that is deleted from an
219/// owner-drawn list-box or combo-box control
220#[cfg(all(
221    feature = "windows-subsystem-message",
222    any(
223        feature = "windows-subsystem-control-combobox",
224        feature = "windows-subsystem-control-listbox"
225    )
226))]
227pub use ctrls::DELETEITEMSTRUCT;
228
229/// `C.13` DRAWITEMSTRUCT
230///
231/// contains information that the control's owner needs to determine how to
232/// paint an owner-drawn control
233#[cfg(feature = "windows-subsystem-message")]
234pub use ctrls::DRAWITEMSTRUCT;
235
236/// `C.21` MEASUREITEMSTRUCT
237///
238/// contains the dimensions of an owner-drawn control
239#[cfg(feature = "windows-subsystem-message")]
240pub use ctrls::MEASUREITEMSTRUCT;
241
242/// `C.22` MINMAXINFO
243///
244/// contains a window's maximized size and position and tracking size
245#[cfg(feature = "windows-subsystem-message")]
246pub use winmsg::MINMAXINFO;
247
248/// `E.1~E.6` Control notifications for button
249#[cfg(all(
250    feature = "windows-subsystem-message",
251    feature = "windows-subsystem-control-button"
252))]
253pub mod control_notifications_for_button;
254
255/// `E.7~E.17` Control notifications for combo box
256#[cfg(all(
257    feature = "windows-subsystem-message",
258    feature = "windows-subsystem-control-combobox"
259))]
260pub mod control_notifications_for_combobox;
261
262/// `E.18~E.25` Control notifications for edit
263#[cfg(all(
264    feature = "windows-subsystem-message",
265    feature = "windows-subsystem-control-edit"
266))]
267pub mod control_notifications_for_edit;
268
269/// `E.26~E.31` Control notifications for list box
270#[cfg(all(
271    feature = "windows-subsystem-message",
272    feature = "windows-subsystem-control-listbox"
273))]
274pub mod control_notifications_for_listbox;
275
276/// `#20` GetQueueStatus
277///
278/// determines whether any new messages were put in the message queue since the
279/// last time the `GetQueueStatus()`, `GetMessage()`, or `PeekMessage()`
280/// functions were called
281#[cfg(feature = "windows-subsystem-message")]
282pub use winmsg::GetQueueStatus;
283
284/// `#21` RegisterClass
285///
286/// registers a window class for use when creating other windows or class
287/// manipulation functions
288#[cfg(feature = "windows-subsystem-basic")]
289pub use winmsg::RegisterClassW as RegisterClass;
290
291/// `#21` UnregisterClass
292///
293/// removes a previously registered window class
294#[cfg(feature = "windows-subsystem-basic")]
295pub use winmsg::UnregisterClassW as UnregisterClass;
296
297/// `#22` GetClassInfo
298///
299/// retrieves information about a previously registered window class
300#[cfg(feature = "windows-subsystem-reflect")]
301pub use winmsg::GetClassInfoW as GetClassInfo;
302
303/// `C.40` WNDCLASS
304///
305/// contains information about a window class
306#[cfg(feature = "windows-subsystem-basic")]
307pub use winmsg::WNDCLASSW as WNDCLASS;
308
309/// `#23` GetClassName
310///
311/// retrieves the class name for a given window
312#[cfg(feature = "windows-subsystem-reflect")]
313pub use winmsg::GetClassNameW as GetClassName;
314
315/// `#24` GetClassWord
316///
317/// retrieve a word value at the specified offset from extra memory associated
318/// with the class associated with the specified window
319#[cfg(feature = "windows-subsystem-reflect")]
320pub use winmsg::GetClassWord;
321
322/// `#24` SetClassWord
323///
324/// set a word value at the specified offset from extra memory associated with
325/// the class associated with the specified window
326#[cfg(feature = "windows-subsystem-basic")]
327pub use winmsg::SetClassWord;
328
329/// `#25` GetClassLong
330///
331/// retrieve a long value at the specified offset from extra memory associated
332/// with the class associated with the specified window
333#[cfg(feature = "windows-subsystem-reflect")]
334pub use winmsg::GetClassLongW as GetClassLong;
335
336/// `#25` SetClassLong
337///
338/// set a long value at the specified offset from extra memory associated with
339/// the class associated with the specified window
340#[cfg(feature = "windows-subsystem-basic")]
341pub use winmsg::SetClassLongW as SetClassLong;
342
343/// `#26` SetWindowLong
344///
345/// sets a value of `LONG`` in a window's extra memory
346#[cfg(feature = "windows-subsystem-basic")]
347pub use winmsg::SetWindowLongW as SetWindowLong;
348
349/// `#27` CreateWindow
350///
351/// make a window
352#[cfg(feature = "windows-subsystem-basic")]
353pub use winmsg_polyfill::CreateWindowW as CreateWindow;
354
355/// `#27a` CreateWindowEx
356///
357/// make a window
358#[cfg(feature = "windows-subsystem-basic")]
359pub use winmsg::CreateWindowExW as CreateWindowEx;
360
361/// `C.9` CLIENTCREATESTRUCT
362///
363/// contains information about a multiple document interface (MDI) client
364/// window's menu and first MDI child window
365#[cfg(feature = "windows-subsystem-mdi")]
366pub use winmsg::CLIENTCREATESTRUCT;
367
368/// `C.11` CREATESTRUCT
369///
370/// contains initialization information that is passed to a new window's window
371/// procedure
372#[cfg(feature = "windows-subsystem-basic")]
373pub use winmsg::CREATESTRUCTW as CREATESTRUCT;
374
375/// `C.20` MDICREATESTRUCT
376///
377/// contains multiple document interface (MDI) child window's information
378#[cfg(feature = "windows-subsystem-mdi")]
379pub use winmsg::MDICREATESTRUCTW as MDICREATESTRUCT;
380
381/// `F.1` General window styles
382#[cfg(feature = "windows-subsystem-basic")]
383pub mod general_window_styles;
384
385/// `F.2` Button styles
386#[cfg(all(
387    feature = "windows-subsystem-basic",
388    feature = "windows-subsystem-control-button"
389))]
390pub mod window_styles_for_button;
391
392/// `F.3` Combo box styles
393#[cfg(all(
394    feature = "windows-subsystem-basic",
395    feature = "windows-subsystem-control-combobox"
396))]
397pub mod window_styles_for_combobox;
398
399/// `F.4` Edit control styles
400#[cfg(all(
401    feature = "windows-subsystem-basic",
402    feature = "windows-subsystem-control-edit"
403))]
404pub mod window_styles_for_edit;
405
406/// `F.5` List box styles
407#[cfg(all(
408    feature = "windows-subsystem-basic",
409    feature = "windows-subsystem-control-listbox"
410))]
411pub mod window_styles_for_listbox;
412
413/// `F.6` Scroll bar styles
414#[cfg(all(
415    feature = "windows-subsystem-basic",
416    feature = "windows-subsystem-control-scrollbar"
417))]
418pub mod window_styles_for_scrollbar;
419
420/// `F.7` Static control styles
421#[cfg(all(
422    feature = "windows-subsystem-basic",
423    feature = "windows-subsystem-control-static"
424))]
425pub mod window_styles_for_static;
426
427/// `F.8` Dialog box styles
428#[cfg(all(
429    feature = "windows-subsystem-basic",
430    feature = "windows-subsystem-dialogbox"
431))]
432pub mod window_styles_for_dialogbox;
433
434/// `#28` DestroyWindow
435///
436/// destroys the specified window and all its children, if any
437#[cfg(feature = "windows-subsystem-basic")]
438pub use winmsg::DestroyWindow;
439
440/// `#29` WindowProc
441///
442/// an application-defined callback procedure that processes messages sent to
443/// the window
444#[cfg(feature = "windows-subsystem-basic")]
445pub type WindowProc = opt_inner_type!(winmsg::WNDPROC);
446
447/// `#30` DefDlgProc
448///
449/// performs default processing for any messages that a dialog box, with an
450/// application-defined window class, does not process
451#[cfg(feature = "windows-subsystem-dialogbox")]
452pub use winmsg::DefDlgProcW as DefDlgProc;
453
454/// `#31` DefFrameProc
455///
456/// performs default processing for any messages that the window procedure of an
457/// MDI frame window does not process
458#[cfg(feature = "windows-subsystem-mdi")]
459pub use winmsg::DefFrameProcW as DefFrameProc;
460
461/// `#32` DefMDIChildProc
462///
463/// performs default processing for any messages that the window procedure of an
464/// MDI child window does not process
465#[cfg(feature = "windows-subsystem-mdi")]
466pub use winmsg::DefMDIChildProcW as DefMDIChildProc;
467
468/// `#33` DefWindowProc
469///
470/// performs default processing for any messages that an application-defined
471/// window procedure does not process
472#[cfg(feature = "windows-subsystem-basic")]
473pub use winmsg::DefWindowProcW as DefWindowProc;
474
475/// `#34` GetWindowWord
476///
477/// returns a WORD value from a window's extra memory
478#[cfg(feature = "windows-subsystem-reflect")]
479pub use winmsg::GetWindowWord;
480
481/// `#35` GetWindowLong
482///
483/// returns a LONG value from a window's extra memory
484#[cfg(feature = "windows-subsystem-reflect")]
485pub use winmsg::GetWindowLongW as GetWindowLong;
486
487/// `#36` SetWindowWord
488///
489/// sets the value of a WORD in a window's extra memory
490#[cfg(feature = "windows-subsystem-basic")]
491pub use winmsg::SetWindowWord;
492
493/// `#37` BeginDeferWindowPos
494///
495/// allocates a storage area for window-positioning information
496#[cfg(feature = "windows-subsystem-placement")]
497pub use winmsg::BeginDeferWindowPos;
498
499/// `#38` EndDeferWindowPos
500///
501/// uses the window-positioning information stored in the buffer to update the
502/// position of the windows
503#[cfg(feature = "windows-subsystem-placement")]
504pub use winmsg::EndDeferWindowPos;
505
506/// `C.39` WINDOWPOS
507///
508/// contains information about a window's size and position
509#[cfg(feature = "windows-subsystem-placement")]
510pub use winmsg::WINDOWPOS;
511
512/// `#39` DeferWindowPos
513///
514/// fills a storage area with information for a window that is about to be
515/// moved, resized, shown, hidden, or activated
516#[cfg(feature = "windows-subsystem-placement")]
517pub use winmsg::DeferWindowPos;
518
519/// `#40` SetWindowPos
520///
521/// executes a single window-positioning request
522#[cfg(feature = "windows-subsystem-placement")]
523pub use winmsg::SetWindowPos;
524
525/// `#41` ShowWindow
526///
527/// sets the given window's show state
528#[cfg(feature = "windows-subsystem-basic")]
529pub use winmsg::ShowWindow;
530
531/// `#41` IsWindowVisible
532///
533/// retrieves the visibility state of the given window
534#[cfg(feature = "windows-subsystem-reflect")]
535pub use winmsg::IsWindowVisible;
536
537/// `#42` ArrangeIconicWindows
538///
539/// arranges all iconic (minimized) child windows of the given parent window
540#[cfg(feature = "windows-subsystem-placement")]
541pub use winmsg::ArrangeIconicWindows;
542
543/// `#43` OpenIcon
544///
545/// activates and displays the given minimized window, restoring its original
546/// size and position (that is, the size and position the window had before it
547/// was minimized)
548#[cfg(feature = "windows-subsystem-placement")]
549pub use winmsg::OpenIcon;
550
551/// `#44` BringWindowToTop
552///
553/// brings the given window to the top of the windows stacking order
554#[cfg(feature = "windows-subsystem-placement")]
555pub use winmsg::BringWindowToTop;
556
557/// `#45` CloseWindow
558///
559/// minimizes the given window
560#[cfg(feature = "windows-subsystem-placement")]
561pub use winmsg::CloseWindow;
562
563/// `#46` IsIconic
564///
565/// determines whether the given window is minimized
566#[cfg(feature = "windows-subsystem-reflect")]
567pub use winmsg::IsIconic;
568
569/// `#46` IsZoomed
570///
571/// determines whether the given window is maximized
572#[cfg(feature = "windows-subsystem-reflect")]
573pub use winmsg::IsZoomed;
574
575/// `#47` ShowOwnedPopups
576///
577/// shows or hides all pop-up windows owned by the given window
578#[cfg(feature = "windows-subsystem-basic")]
579pub use winmsg::ShowOwnedPopups;
580
581/// `#48` IsWindow
582///
583/// determines whether the given window handle identifies the existing window
584#[cfg(feature = "windows-subsystem-reflect")]
585pub use winmsg::IsWindow;
586
587/// `#49` IsWindowEnabled
588///
589/// retrieves the input status of the given window
590#[cfg(feature = "windows-subsystem-reflect")]
591pub use kbdmse::IsWindowEnabled;
592
593/// `#49` EnableWindow
594///
595/// sets the input status of the given window
596#[cfg(feature = "windows-subsystem-basic")]
597pub use kbdmse::EnableWindow;
598
599/// `#50` GetActiveWindow
600///
601/// retrieves the active window handle
602#[cfg(feature = "windows-subsystem-reflect")]
603pub use kbdmse::GetActiveWindow;
604
605/// `#50` SetActiveWindow
606///
607/// sets the active window handle
608#[cfg(feature = "windows-subsystem-basic")]
609pub use kbdmse::SetActiveWindow;
610
611/// `#51` GetCapture
612///
613/// retrieves the mouse capture window handle
614#[cfg(feature = "windows-subsystem-reflect")]
615pub use kbdmse::GetCapture;
616
617/// `#51` SetCapture
618///
619/// sets the mouse capture window handle
620#[cfg(feature = "windows-subsystem-basic")]
621pub use kbdmse::SetCapture;
622
623/// `#51` ReleaseCapture
624///
625/// releases the mouse capture and restores normal input processing
626#[cfg(feature = "windows-subsystem-basic")]
627pub use kbdmse::ReleaseCapture;
628
629/// `#52` GetFocus
630///
631/// retrieves the input focus window handle
632#[cfg(feature = "windows-subsystem-reflect")]
633pub use kbdmse::GetFocus;
634
635/// `#52` SetFocus
636///
637/// sets the input focus window handle
638#[cfg(feature = "windows-subsystem-basic")]
639pub use kbdmse::SetFocus;
640
641/// `#53` GetSysModalWindow
642///
643/// retrieves the handle of the system-modal window, if one exists
644removed_item!(
645    pub use kbdmse::GetSysModalWindow;
646);
647
648/// `#54` AnyPopup
649///
650/// indicates whether an owned, visible, top-level window exists on the desktop
651#[cfg(feature = "windows-subsystem-management")]
652pub use winmsg::AnyPopup;
653
654/// `#55` GetLastActivePopup
655///
656/// retrieves the handle of the most recently active pop-up window owned by the
657/// given window
658#[cfg(feature = "windows-subsystem-reflect")]
659pub use winmsg::GetLastActivePopup;
660
661/// `#56` IsChild
662///
663/// determines whether the given window is a child window or a descendant window
664/// of a given parent window
665#[cfg(feature = "windows-subsystem-reflect")]
666pub use winmsg::IsChild;
667
668/// `#57` GetParent
669///
670/// retrieves the parent window of the given child window
671#[cfg(feature = "windows-subsystem-reflect")]
672pub use winmsg::GetParent;
673
674/// `#57` SetParent
675///
676/// sets the parent window of the given child window
677#[cfg(feature = "windows-subsystem-basic")]
678pub use winmsg::SetParent;
679
680/// `#58` GetWindow
681///
682/// retrieves the handle of a window that has the specified relationship to the
683/// given window
684#[cfg(feature = "windows-subsystem-reflect")]
685pub use winmsg::GetWindow;
686
687/// `#58` GetTopWindow
688///
689/// the same as calling GetWindow() with the GW_CHILD parameter
690#[cfg(feature = "windows-subsystem-reflect")]
691pub use winmsg::GetTopWindow;
692
693/// `#58` GetNextWindow
694///
695/// the same as calling the GetWindow() function with the GW_HWNDNEXT or
696/// GW_HWNDPREV flags
697removed_item!(
698    pub use winmsg::GetNextWindow;
699);
700
701/// `#59` MoveWindow
702///
703/// moves or changes the size of a window
704#[cfg(feature = "windows-subsystem-placement")]
705pub use winmsg::MoveWindow;
706
707/// `#60` GetDesktopWindow
708///
709/// get the window handle of the desktop window
710#[cfg(feature = "windows-subsystem-management")]
711pub use winmsg::GetDesktopWindow;
712
713/// `#61` GetWindowPlacement
714///
715/// identifies the window's show state (normal, maximized, minimized) and the
716/// show state positions and stores the information in a given WINDOWPLACEMENT
717/// structure
718#[cfg(feature = "windows-subsystem-reflect")]
719pub use winmsg::GetWindowPlacement;
720
721/// `#61` SetWindowPlacement
722///
723/// changes the window's show state (normal, maximized, minimized) and the show
724/// state positions using the information supplied in the given WINDOWPLACEMENT
725/// structure
726#[cfg(feature = "windows-subsystem-placement")]
727pub use winmsg::SetWindowPlacement;
728
729/// `C.38` WINDOWPLACEMENT
730///
731/// contains information about a window's placement on the screen
732#[cfg(feature = "windows-subsystem-placement")]
733pub use winmsg::WINDOWPLACEMENT;
734
735/// `#62` AdjustWindowRect
736///
737/// calculate the size of a window given information about the window's
738/// components and styles
739#[cfg(feature = "windows-subsystem-compute")]
740pub use winmsg::AdjustWindowRect;
741
742/// `#62` AdjustWindowRectEx
743///
744/// calculate the size of a window given information about the window's
745/// components and styles
746#[cfg(feature = "windows-subsystem-compute")]
747pub use winmsg::AdjustWindowRectEx;
748
749/// `#63` GetClientRect
750///
751/// returns the coordinates of window's client area
752#[cfg(any(
753    feature = "windows-subsystem-reflect",
754    feature = "windows-subsystem-export"
755))]
756pub use winmsg::GetClientRect;
757
758/// `#63` GetWindowRect
759///
760/// returns a window's screen coordinates relative to the upper-left corner of
761/// the display
762#[cfg(any(
763    feature = "windows-subsystem-reflect",
764    feature = "windows-subsystem-export"
765))]
766pub use winmsg::GetWindowRect;
767
768/// `#64` GetWindowText
769///
770/// retrieves a window's title or the text within a control and copies it into a
771/// buffer
772#[cfg(any(
773    feature = "windows-subsystem-reflect",
774    feature = "windows-subsystem-export"
775))]
776pub use winmsg::GetWindowTextW as GetWindowText;
777
778/// `#64` GetWindowTextLength
779///
780/// returns the size, in bytes, of a window's title or the text within a control
781#[cfg(any(
782    feature = "windows-subsystem-reflect",
783    feature = "windows-subsystem-export"
784))]
785pub use winmsg::GetWindowTextLengthW as GetWindowTextLength;
786
787/// `#64` SetWindowText
788///
789/// changes a window's title or sets the text within a control
790#[cfg(feature = "windows-subsystem-basic")]
791pub use winmsg::SetWindowTextW as SetWindowText;
792
793/// `#65` EnumWindows
794///
795/// enumerates all parent windows
796#[cfg(feature = "windows-subsystem-management")]
797pub use winmsg::EnumWindows;
798
799/// `#65` EnumWindowsProc
800///
801/// an exported, user-defined, callback function of type WNDENUMPROC whose
802/// address is passed to the EnumWindows() function
803#[cfg(feature = "windows-subsystem-management")]
804pub type EnumWindowsProc = opt_inner_type!(winmsg::WNDENUMPROC);
805
806/// `#66` EnumChildWindows
807///
808/// enumerates all of the parent window's child windows
809#[cfg(any(
810    feature = "windows-subsystem-reflect",
811    feature = "windows-subsystem-management"
812))]
813pub use winmsg::EnumChildWindows;
814
815/// `#66` EnumChildProc
816///
817/// an exported, user-defined, callback function of type WNDENUMPROC whose
818/// address is passed to the EnumChildWindows() function
819#[cfg(any(
820    feature = "windows-subsystem-reflect",
821    feature = "windows-subsystem-management"
822))]
823pub type EnumChildProc = opt_inner_type!(winmsg::WNDENUMPROC);
824
825/// `#67` FindWindow
826///
827/// searches for a window using the following criteria: window's class name and
828/// window's title
829#[cfg(any(
830    feature = "windows-subsystem-reflect",
831    feature = "windows-subsystem-management"
832))]
833pub use winmsg::FindWindowW as FindWindow;
834
835/// `#68` AppendMenu
836///
837/// appends a new item to the end of the menu
838#[cfg(feature = "windows-subsystem-menu")]
839pub use winmsg::AppendMenuW as AppendMenu;
840
841/// `#68` InsertMenu
842///
843/// inserts a new item before the item specified in the `uiPosition` parameter
844/// as determined by `uiFlags`
845#[cfg(feature = "windows-subsystem-menu")]
846pub use winmsg::InsertMenuW as InsertMenu;
847
848/// `#68` ModifyMenu
849///
850/// changes the existing menu item specified in uiPosition
851#[cfg(feature = "windows-subsystem-menu")]
852pub use winmsg::ModifyMenuW as ModifyMenu;
853
854/// `#69` RemoveMenu
855///
856/// removes a pop-up menu item from a menu
857#[cfg(feature = "windows-subsystem-menu")]
858pub use winmsg::RemoveMenu;
859
860/// `#69` DeleteMenu
861///
862/// removes an item from a menu
863#[cfg(feature = "windows-subsystem-menu")]
864pub use winmsg::DeleteMenu;
865
866/// `#69` DestroyMenu
867///
868/// destroys the menu handle specified in the `hMenu` parameter and frees all
869/// the memory it uses
870#[cfg(feature = "windows-subsystem-menu")]
871pub use winmsg::DestroyMenu;
872
873/// `#70` CreateMenu
874///
875/// creates a new menu
876#[cfg(feature = "windows-subsystem-menu")]
877pub use winmsg::CreateMenu;
878
879/// `#70` CreatePopupMenu
880///
881/// creates a new pop-up menu
882#[cfg(feature = "windows-subsystem-menu")]
883pub use winmsg::CreatePopupMenu;
884
885/// `#71` GetMenu
886///
887/// obtains the handle of the menu associated with the window specified in the
888/// `hWnd` parameter
889#[cfg(all(
890    feature = "windows-subsystem-menu",
891    feature = "windows-subsystem-reflect"
892))]
893pub use winmsg::GetMenu;
894
895/// `#72` DrawMenuBar
896///
897/// redraws the menu bar of the window specified in the `hWnd` parameter
898#[cfg(feature = "windows-subsystem-paint")]
899pub use winmsg::DrawMenuBar;
900
901/// `#73` GetSystemMenu
902///
903/// retrieves the handle of the system menu for the window specified in the
904/// `hWnd` parameter
905#[cfg(feature = "windows-subsystem-menu")]
906pub use winmsg::GetSystemMenu;
907
908/// `#74` CheckMenuItem
909///
910/// change the state of a menu item from the menu specified in the `hMenu`
911/// parameter
912#[cfg(feature = "windows-subsystem-menu")]
913pub use winmsg::CheckMenuItem;
914
915/// `#74` EnableMenuItem
916///
917/// change the state of a menu item from the menu specified in the `hMenu`
918/// parameter
919#[cfg(feature = "windows-subsystem-menu")]
920pub use winmsg::EnableMenuItem;
921
922/// `#74` HiliteMenuItem
923///
924/// change the state of a menu item from the menu specified in the `hMenu`
925/// parameter
926#[cfg(feature = "windows-subsystem-menu")]
927pub use winmsg::HiliteMenuItem;
928
929/// `#75` GetMenuItemID
930///
931/// obtains the menu item identifier of an item from a menu specified in the
932/// `hMenu` parameter
933#[cfg(all(
934    feature = "windows-subsystem-menu",
935    any(
936        feature = "windows-subsystem-reflect",
937        feature = "windows-subsystem-export"
938    )
939))]
940pub use winmsg::GetMenuItemID;
941
942/// `#75` GetSubMenu
943///
944/// retrieves a handle of a pop-up menu that is an item on a menu specified by
945/// `hMenu`
946#[cfg(all(
947    feature = "windows-subsystem-menu",
948    any(
949        feature = "windows-subsystem-reflect",
950        feature = "windows-subsystem-export"
951    )
952))]
953pub use winmsg::GetSubMenu;
954
955/// `#76` GetMenuState
956///
957/// returns the flags for a menu item on the menu specified in the `hMenu`
958/// parameter
959#[cfg(all(
960    feature = "windows-subsystem-menu",
961    any(
962        feature = "windows-subsystem-reflect",
963        feature = "windows-subsystem-export"
964    )
965))]
966pub use winmsg::GetMenuState;
967
968/// `#76` GetMenuString
969///
970/// retrieves the contents string of a menu item from the menu specified in the
971/// `hMenu` parameter and copies it into the buffer passed to it in the
972/// `lpString` parameter
973#[cfg(all(
974    feature = "windows-subsystem-menu",
975    any(
976        feature = "windows-subsystem-reflect",
977        feature = "windows-subsystem-export"
978    )
979))]
980pub use winmsg::GetMenuStringW as GetMenuString;
981
982/// `#77` GetMenuItemCount
983///
984/// returns the item count
985#[cfg(all(
986    feature = "windows-subsystem-menu",
987    any(
988        feature = "windows-subsystem-reflect",
989        feature = "windows-subsystem-export"
990    )
991))]
992pub use winmsg::GetMenuItemCount;
993
994/// `#78` GetMenuCheckMarkDimensions
995///
996/// retrieves the size of the default check mark bitmap
997#[cfg(all(
998    feature = "windows-subsystem-menu",
999    feature = "windows-subsystem-reflect"
1000))]
1001pub use winmsg::GetMenuCheckMarkDimensions;
1002
1003/// `#79` SetMenuItemBitmaps
1004///
1005/// sets the custom check mark bitmaps for a menu item from the menu specified
1006/// in the `hMenu` parameter
1007#[cfg(feature = "windows-subsystem-menu")]
1008pub use winmsg::SetMenuItemBitmaps;
1009
1010/// `#80` TrackPopupMenu
1011///
1012/// displays the pop-up menu handle of the menu specified in the `hMenu`
1013/// parameter and tracks the selection events resulting from mouse or keyboard
1014/// input to the specified menu and its sub-menus
1015#[cfg(feature = "windows-subsystem-menu")]
1016pub use winmsg::TrackPopupMenu;
1017
1018/// `#81` SetMenu
1019///
1020/// associates a menu with a window specified in the `hWnd` parameter
1021#[cfg(feature = "windows-subsystem-menu")]
1022pub use winmsg::SetMenu;
1023
1024/// `#82` IsMenu
1025///
1026/// identifies whether the given handle is a menu handle
1027#[cfg(all(
1028    feature = "windows-subsystem-menu",
1029    feature = "windows-subsystem-reflect"
1030))]
1031pub use winmsg::IsMenu;
1032
1033/// `#83` GetScrollPos
1034///
1035/// returns the current position of the specified scrollbar
1036#[cfg(all(
1037    feature = "windows-subsystem-scroll",
1038    any(
1039        feature = "windows-subsystem-reflect",
1040        feature = "windows-subsystem-export"
1041    )
1042))]
1043pub use winmsg::GetScrollPos;
1044
1045/// `#83` SetScrollPos
1046///
1047/// sets the current position of a scrollbar, possibly redrawing it in the
1048/// process
1049#[cfg(feature = "windows-subsystem-scroll")]
1050pub use ctrls::SetScrollPos;
1051
1052/// `#84` GetScrollRange
1053///
1054/// returns the range of the specified scrollbar
1055#[cfg(all(
1056    feature = "windows-subsystem-scroll",
1057    any(
1058        feature = "windows-subsystem-reflect",
1059        feature = "windows-subsystem-export"
1060    )
1061))]
1062pub use winmsg::GetScrollRange;
1063
1064/// `#84` SetScrollRange
1065///
1066/// sets the range of the specified scrollbar
1067#[cfg(feature = "windows-subsystem-scroll")]
1068pub use ctrls::SetScrollRange;
1069
1070/// `#85` ShowScrollBar
1071///
1072/// shows or hides a scrollbar
1073#[cfg(feature = "windows-subsystem-scroll")]
1074pub use ctrls::ShowScrollBar;
1075
1076/// `#86` ScrollWindow
1077///
1078/// scrolls what is shown in a window's client area
1079#[cfg(feature = "windows-subsystem-scroll")]
1080pub use winmsg::ScrollWindow;
1081
1082/// `#87` EnableScrollBar
1083///
1084/// enables or disables one or both of the arrows of the scroll bar
1085#[cfg(feature = "windows-subsystem-scroll")]
1086pub use ctrls::EnableScrollBar;
1087
1088/// `#88` ScrollDC
1089///
1090/// scrolls the given device-context horizontally or vertically
1091#[cfg(all(
1092    feature = "windows-subsystem-scroll",
1093    feature = "graphics-subsystem-basic"
1094))]
1095pub use winmsg::ScrollDC;
1096
1097/// `#89` ScrollWindowEx
1098///
1099/// scrolls what is shown in a window's client area and is an extension of the
1100/// ScrollWindow() function
1101#[cfg(feature = "windows-subsystem-scroll")]
1102pub use winmsg::ScrollWindowEx;
1103
1104/// `#90` CreateCaret
1105///
1106/// creates a new image for the system caret
1107#[cfg(feature = "windows-subsystem-caret")]
1108pub use winmsg::CreateCaret;
1109
1110/// `#90` DestroyCaret
1111///
1112/// destroys the current caret image
1113#[cfg(feature = "windows-subsystem-caret")]
1114pub use winmsg::DestroyCaret;
1115
1116/// `#91` GetCaretBlinkTime
1117///
1118/// returns the length of time required for the caret blink
1119#[cfg(all(
1120    feature = "windows-subsystem-caret",
1121    feature = "windows-subsystem-reflect"
1122))]
1123pub use winmsg::GetCaretBlinkTime;
1124
1125/// `#91` SetCaretBlinkTime
1126///
1127/// sets the length of time required for the caret blink
1128#[cfg(feature = "windows-subsystem-caret")]
1129pub use winmsg::SetCaretBlinkTime;
1130
1131/// `#92` GetCaretPos
1132///
1133/// queries the current position of the caret
1134#[cfg(all(
1135    feature = "windows-subsystem-caret",
1136    feature = "windows-subsystem-reflect"
1137))]
1138pub use winmsg::GetCaretPos;
1139
1140/// `#92` SetCaretPos
1141///
1142/// sets the current caret position
1143#[cfg(feature = "windows-subsystem-caret")]
1144pub use winmsg::SetCaretPos;
1145
1146/// `#93` HideCaret
1147///
1148/// removes the caret from the screen if it has been called at least as many
1149/// times as the `ShowCaret()` function
1150#[cfg(feature = "windows-subsystem-caret")]
1151pub use winmsg::HideCaret;
1152
1153/// `#93` ShowCaret
1154///
1155/// displays the caret on the screen if it has been called more times than the
1156/// `HideCaret()` function
1157#[cfg(feature = "windows-subsystem-caret")]
1158pub use winmsg::ShowCaret;
1159
1160/// `#94` CreateCursor
1161///
1162/// creates a new cursor
1163#[cfg(feature = "windows-subsystem-cursor")]
1164pub use winmsg::CreateCursor;
1165
1166/// `#94` DestroyCursor
1167///
1168/// destroys a cursor
1169#[cfg(feature = "windows-subsystem-cursor")]
1170pub use winmsg::DestroyCursor;
1171
1172/// `#95` LoadCursor
1173///
1174/// loads a cursor from an application or DLL resource script
1175#[cfg(feature = "windows-subsystem-cursor")]
1176pub use winmsg::LoadCursorW as LoadCursor;
1177
1178/// `#96` GetCursorPos
1179///
1180/// determines the current position of the cursor
1181#[cfg(any(
1182    feature = "windows-subsystem-reflect",
1183    feature = "windows-subsystem-export"
1184))]
1185pub use winmsg::GetCursorPos;
1186
1187/// `#96` SetCursorPos
1188///
1189/// changes the cursor's current position
1190#[cfg(feature = "windows-subsystem-cursormanagement")]
1191pub use winmsg::SetCursorPos;
1192
1193/// `#97` ShowCursor
1194///
1195/// shows and hides the cursor
1196#[cfg(feature = "windows-subsystem-cursor")]
1197pub use winmsg::ShowCursor;
1198
1199/// `#98` GetCursor
1200///
1201/// returns the handle of the current cursor
1202#[cfg(all(
1203    feature = "windows-subsystem-cursor",
1204    feature = "windows-subsystem-reflect"
1205))]
1206pub use winmsg::GetCursor;
1207
1208/// `#98` SetCursor
1209///
1210/// changes the current cursor image
1211#[cfg(feature = "windows-subsystem-cursor")]
1212pub use winmsg::SetCursor;
1213
1214/// `#99` ClipCursor
1215///
1216/// constrains the cursor to the specified region on the screen
1217#[cfg(feature = "windows-subsystem-cursormanagement")]
1218pub use winmsg::ClipCursor;
1219
1220/// `#100` GetClipCursor
1221///
1222/// returns the screen coordinates of the cursor's bounding rectangle after the
1223/// previous call to the ClipCursor() function
1224#[cfg(all(
1225    feature = "windows-subsystem-cursormanagement",
1226    feature = "windows-subsystem-reflect"
1227))]
1228pub use winmsg::GetClipCursor;
1229
1230/// `#101` CopyCursor
1231///
1232/// makes a copy of the cursor
1233removed_item!(
1234    pub use winmsg::CopyCursor;
1235);
1236
1237/// `#102` SetProp
1238///
1239/// add entries from the property list of the window specified by the `hWnd`
1240/// parameter
1241#[cfg(feature = "windows-subsystem-prop")]
1242pub use winmsg::SetPropW as SetProp;
1243
1244/// `#102` GetProp
1245///
1246/// retrieve entries from the property list of the window specified by the
1247/// `hWnd` parameter
1248#[cfg(feature = "windows-subsystem-prop")]
1249pub use winmsg::GetPropW as GetProp;
1250
1251/// `#103` RemoveProp
1252///
1253/// removes an entry from the property list of the window specified by the
1254/// `hWnd` parameter
1255#[cfg(feature = "windows-subsystem-prop")]
1256pub use winmsg::RemovePropW as RemoveProp;
1257
1258/// `#104` EnumProps
1259///
1260/// enumerates all entries in the property list of the window specified by the
1261/// `hWnd` parameter
1262#[cfg(feature = "windows-subsystem-prop")]
1263pub use winmsg::EnumPropsW as EnumProps;
1264
1265/// `#105` EnumPropsProc
1266///
1267/// an application-defined callback function used by EnumProps()
1268#[cfg(feature = "windows-subsystem-prop")]
1269pub type EnumPropsProc = opt_inner_type!(winmsg::PROPENUMPROCW);
1270
1271/// `#106` GetClipboardViewer
1272///
1273/// get the handle of the first window in the clipboard's window chain
1274#[cfg(feature = "windows-subsystem-clipboard")]
1275pub use sysdx::GetClipboardViewer;
1276
1277/// `#107` SetClipboardViewer
1278///
1279/// add a window to the clipboard's window chain
1280#[cfg(feature = "windows-subsystem-clipboard")]
1281pub use sysdx::SetClipboardViewer;
1282
1283/// `#108` ChangeClipboardChain
1284///
1285/// remove a window from the clipboard's window chain
1286#[cfg(feature = "windows-subsystem-clipboard")]
1287pub use sysdx::ChangeClipboardChain;
1288
1289/// `#109` OpenClipboard
1290///
1291/// opens the clipboard and prevents other applications from modifying it until
1292/// it is closed
1293#[cfg(feature = "windows-subsystem-clipboard")]
1294pub use sysdx::OpenClipboard;
1295
1296/// `#110` GetOpenClipboardWindow
1297///
1298/// returns the handle of the window that is associated with an open clipboard
1299#[cfg(feature = "windows-subsystem-clipboard")]
1300pub use sysdx::GetOpenClipboardWindow;
1301
1302/// `#111` CloseClipboard
1303///
1304/// closes the clipboard and allows other applications to open the clipboard for
1305/// their own use
1306#[cfg(feature = "windows-subsystem-clipboard")]
1307pub use sysdx::CloseClipboard;
1308
1309/// `#112` EmptyClipboard
1310///
1311/// frees any handle associated with the data in an open clipboard and assigns
1312/// the ownership of the clipboard to the window that is associated with the
1313/// open clipboard
1314#[cfg(feature = "windows-subsystem-clipboard")]
1315pub use sysdx::EmptyClipboard;
1316
1317/// `#113` GetClipboardOwner
1318///
1319/// returns the handle of the window that owns the clipboard
1320#[cfg(feature = "windows-subsystem-clipboard")]
1321pub use sysdx::GetClipboardOwner;
1322
1323/// `#114` CountClipboardFormats
1324///
1325/// returns the number of clipboard formats used by the data in the clipboard
1326#[cfg(feature = "windows-subsystem-clipboard")]
1327pub use sysdx::CountClipboardFormats;
1328
1329/// `#115` EnumClipboardFormats
1330///
1331/// returns the format identifiers for data in the clipboard
1332#[cfg(feature = "windows-subsystem-clipboard")]
1333pub use sysdx::EnumClipboardFormats;
1334
1335/// `#116` GetPriorityClipboardFormat
1336///
1337/// accepts a list of clipboard format identifiers and returns the identifier of
1338/// the first clipboard format for which data exists in the clipboard
1339#[cfg(feature = "windows-subsystem-clipboard")]
1340pub use sysdx::GetPriorityClipboardFormat;
1341
1342/// `#117` IsClipboardFormatAvailable
1343///
1344/// determines whether the clipboard contains data of a specific clipboard data
1345/// format
1346#[cfg(feature = "windows-subsystem-clipboard")]
1347pub use sysdx::IsClipboardFormatAvailable;
1348
1349/// `#118` RegisterClipboardFormat
1350///
1351/// registers a new clipboard format using the format name supplied in the
1352/// function's FormatName parameter
1353#[cfg(feature = "windows-subsystem-clipboard")]
1354pub use sysdx::RegisterClipboardFormatW as RegisterClipboardFormat;
1355
1356/// `#118` GetClipboardFormatName
1357///
1358/// copies the name of a registered format into a buffer
1359#[cfg(feature = "windows-subsystem-clipboard")]
1360pub use sysdx::GetClipboardFormatNameW as GetClipboardFormatName;
1361
1362/// `#119` GetClipboardData
1363///
1364/// returns the handle for clipboard data of a specfic type that is in the
1365/// clipboard
1366#[cfg(feature = "windows-subsystem-clipboard")]
1367pub use sysdx::GetClipboardData;
1368
1369/// `#119` SetClipboardData
1370///
1371/// places clipboard data into an opened clipboard
1372#[cfg(feature = "windows-subsystem-clipboard")]
1373pub use sysdx::SetClipboardData;
1374
1375/// `#120` CallWndProc
1376///
1377/// called by the system whenever a SendMessage() function is called
1378#[cfg(feature = "windows-subsystem-hook")]
1379pub type CallWndProc = opt_inner_type!(winmsg::HOOKPROC);
1380
1381/// `#121` GetMsgProc
1382///
1383/// called by the system when a GetMessage() function has fetched a message from
1384/// the application queue
1385#[cfg(feature = "windows-subsystem-hook")]
1386pub type GetMsgProc = opt_inner_type!(winmsg::HOOKPROC);
1387
1388/// `#122` MessageProc
1389///
1390/// called by the system after a dialog box, message box, or menu has fetched a
1391/// message that has not been processed
1392#[cfg(feature = "windows-subsystem-hook")]
1393pub type MessageProc = opt_inner_type!(winmsg::HOOKPROC);
1394
1395/// `#123` SysMsgProc
1396///
1397/// called by the system after a dialog box, message box, or menu has fetched a
1398/// message but before the message has been processed
1399#[cfg(feature = "windows-subsystem-hook")]
1400pub type SysMsgProc = opt_inner_type!(winmsg::HOOKPROC);
1401
1402/// `#124` AddAtom
1403///
1404/// add the null-terminated string pointed to by lpcstr to the local and global
1405/// atom tables respectively
1406#[cfg(feature = "windows-subsystem-atom")]
1407pub use sysdx::AddAtomW as AddAtom;
1408
1409/// `#124` GlobalAddAtom
1410///
1411/// add the null-terminated string pointed to by lpcstr to the local and global
1412/// atom tables respectively
1413#[cfg(feature = "windows-subsystem-atom")]
1414pub use sysdx::GlobalAddAtomW as GlobalAddAtom;
1415
1416/// `#125` DeleteAtom
1417///
1418/// decrement the reference count of the atom specified by the value, atm
1419#[cfg(feature = "windows-subsystem-atom")]
1420pub use sysdx::DeleteAtom;
1421
1422/// `#125` GlobalDeleteAtom
1423///
1424/// decrement the reference count of the atom specified by the value, atm
1425#[cfg(feature = "windows-subsystem-atom")]
1426pub use sysdx::GlobalDeleteAtom;
1427
1428/// `#126` FindAtom
1429///
1430/// search their respective atom tables for the string specified by `lpcstr`
1431#[cfg(feature = "windows-subsystem-atom")]
1432pub use sysdx::FindAtomW as FindAtom;
1433
1434/// `#126` GlobalFindAtom
1435///
1436/// search their respective atom tables for the string specified by `lpcstr`
1437#[cfg(feature = "windows-subsystem-atom")]
1438pub use sysdx::GlobalFindAtomW as GlobalFindAtom;
1439
1440/// `#127` GetAtomName
1441///
1442/// get a copy of the atom's string, referenced by `atm`, from their respective
1443/// atom tables
1444#[cfg(feature = "windows-subsystem-atom")]
1445pub use sysdx::GetAtomNameW as GetAtomName;
1446
1447/// `#127` GlobalGetAtomName
1448///
1449/// get a copy of the atom's string, referenced by `atm`, from their respective
1450/// atom tables
1451#[cfg(feature = "windows-subsystem-atom")]
1452pub use sysdx::GlobalGetAtomNameW as GlobalGetAtomName;
1453
1454/// `#128` InitAtomTable
1455///
1456/// initializes the local atom table to the number of entries specified by
1457/// `cTableEntries`
1458#[cfg(feature = "windows-subsystem-atom")]
1459pub use sysdx::InitAtomTable;
1460
1461/// `#129` CheckDlgButton
1462///
1463/// set the state of a button control
1464#[cfg(feature = "windows-subsystem-control-button")]
1465pub use ctrls::CheckDlgButton;
1466
1467/// `#130` CheckRadioButton
1468///
1469/// checks one radio button from a group and removes check marks from any other
1470/// radio buttons in the group
1471#[cfg(feature = "windows-subsystem-control-button")]
1472pub use ctrls::CheckRadioButton;
1473
1474/// `#131` CreateDialog
1475///
1476/// launch a modeless dialog box
1477#[cfg(feature = "windows-subsystem-dialogbox")]
1478pub use winmsg_polyfill::CreateDialogW as CreateDialog;
1479
1480/// `#131` CreateDialogIndirect
1481///
1482/// launch a modeless dialog box
1483#[cfg(feature = "windows-subsystem-dialogbox")]
1484pub use winmsg_polyfill::CreateDialogIndirectW as CreateDialogIndirect;
1485
1486/// `#132` CreateDialogParam
1487///
1488/// create a modeless dialog, allowing a value to be passed to the dialog
1489/// procedure in the WM_INITDIALOG message
1490#[cfg(feature = "windows-subsystem-dialogbox")]
1491pub use winmsg::CreateDialogParamW as CreateDialogParam;
1492
1493/// `#132` CreateDialogIndirectParam
1494///
1495/// create a modeless dialog, allowing a value to be passed to the dialog
1496/// procedure in the WM_INITDIALOG message
1497#[cfg(feature = "windows-subsystem-dialogbox")]
1498pub use winmsg::CreateDialogIndirectParamW as CreateDialogIndirectParam;
1499
1500/// `#133` DialogBox
1501///
1502/// create modal dialog boxes
1503#[cfg(feature = "windows-subsystem-dialogbox")]
1504pub use winmsg_polyfill::DialogBoxW as DialogBox;
1505
1506/// `#133` DialogBoxIndirect
1507///
1508/// create modal dialog boxes
1509#[cfg(feature = "windows-subsystem-dialogbox")]
1510pub use winmsg_polyfill::DialogBoxIndirectW as DialogBoxIndirect;
1511
1512/// `#134` DialogBoxIndirectParam
1513///
1514/// create modal dialog boxes with an initialization parameter
1515#[cfg(feature = "windows-subsystem-dialogbox")]
1516pub use winmsg::DialogBoxIndirectParamW as DialogBoxIndirectParam;
1517
1518/// `#134` DialogBoxParam
1519///
1520/// create modal dialog boxes with an initialization parameter
1521#[cfg(feature = "windows-subsystem-dialogbox")]
1522pub use winmsg::DialogBoxParamW as DialogBoxParam;
1523
1524/// `#135` DlgDirList
1525///
1526/// fills controls in a dialog box with information about a directory
1527#[cfg(feature = "windows-subsystem-dialogbox-dirlist")]
1528pub use ctrls::DlgDirListW as DlgDirList;
1529
1530/// `#135` DlgDirListComboBox
1531///
1532/// fills controls in a dialog box with information on a directory
1533#[cfg(feature = "windows-subsystem-dialogbox-dirlist")]
1534pub use ctrls::DlgDirListComboBoxW as DlgDirListComboBox;
1535
1536/// `#136` DlgDirSelect
1537///
1538/// return information on files selected from controls filled with the
1539/// DlgDirList() function
1540removed_item!(
1541    pub use ctrls::DlgDirSelectW as DlgDirSelect;
1542);
1543
1544/// `#136` DlgDirSelectComboBox
1545///
1546/// return information on files selected from controls filled with the
1547/// DlgDirListComboBox() function
1548removed_item!(
1549    pub use ctrls::DlgDirSelectComboBoxW as DlgDirSelectComboBox;
1550);
1551
1552/// `#136a` DlgDirSelectComboBoxEx
1553///
1554/// return information on files selected from controls filled with the
1555/// DlgDirListComboBox() function
1556#[cfg(feature = "windows-subsystem-dialogbox-dirlist")]
1557pub use ctrls::DlgDirSelectComboBoxExW as DlgDirSelectComboBoxEx;
1558
1559/// `#137` EndDialog
1560///
1561/// destroys a modal dialog box and causes the DialogBox() function that created
1562/// it to return
1563#[cfg(feature = "windows-subsystem-dialogbox")]
1564pub use winmsg::EndDialog;
1565
1566/// `#138` GetDialogBaseUnits
1567///
1568/// returns information on the current dialog-coordinate units
1569#[cfg(all(
1570    feature = "windows-subsystem-dialogbox",
1571    feature = "windows-subsystem-reflect"
1572))]
1573pub use winmsg::GetDialogBaseUnits;
1574
1575/// `#139` GetDlgCtrlID
1576///
1577/// returns the dialog-control identifier of a control in a dialog box or of any
1578/// child window with an identifier
1579#[cfg(all(
1580    feature = "windows-subsystem-dialogbox",
1581    feature = "windows-subsystem-reflect"
1582))]
1583pub use winmsg::GetDlgCtrlID;
1584
1585/// `#140` GetDlgItem
1586///
1587/// returns the window handle of a control in a dialog box, or of another child
1588/// window
1589#[cfg(all(
1590    feature = "windows-subsystem-dialogbox",
1591    feature = "windows-subsystem-reflect"
1592))]
1593pub use winmsg::GetDlgItem;
1594
1595/// `#141` GetDlgItemInt
1596///
1597/// returns the integer value stored in the text of a control
1598#[cfg(all(
1599    feature = "windows-subsystem-dialogbox",
1600    any(
1601        feature = "windows-subsystem-reflect",
1602        feature = "windows-subsystem-export"
1603    )
1604))]
1605pub use winmsg::GetDlgItemInt;
1606
1607/// `#141` SetDlgItemInt
1608///
1609/// sets the text of a control to contain an integer value, such as the string
1610/// "123" from the integer 123
1611#[cfg(feature = "windows-subsystem-dialogbox")]
1612pub use winmsg::SetDlgItemInt;
1613
1614/// `#142` GetDlgItemText
1615///
1616/// retrieves text from a control in a dialog box or another child window
1617#[cfg(all(
1618    feature = "windows-subsystem-dialogbox",
1619    any(
1620        feature = "windows-subsystem-reflect",
1621        feature = "windows-subsystem-export"
1622    )
1623))]
1624pub use winmsg::GetDlgItemTextW as GetDlgItemText;
1625
1626/// `#142` SetDlgItemText
1627///
1628/// sets the text of a control in a dialog box or another child window
1629#[cfg(feature = "windows-subsystem-dialogbox")]
1630pub use winmsg::SetDlgItemTextW as SetDlgItemText;
1631
1632/// `#143` GetNextDlgGroupItem
1633///
1634/// return the next dialog control which is in the current group of dialog
1635/// controls
1636#[cfg(all(
1637    feature = "windows-subsystem-dialogbox",
1638    feature = "windows-subsystem-reflect"
1639))]
1640pub use winmsg::GetNextDlgGroupItem;
1641
1642/// `#143` GetNextDlgTabItem
1643///
1644/// return the next dialog control which is the next control that is a tab-stop
1645#[cfg(all(
1646    feature = "windows-subsystem-dialogbox",
1647    feature = "windows-subsystem-reflect"
1648))]
1649pub use winmsg::GetNextDlgTabItem;
1650
1651/// `#144` IsDialogMessage
1652///
1653/// determines whether a message is intended for a modeless dialog box and
1654/// dispatches it, if it is
1655#[cfg(all(
1656    feature = "windows-subsystem-dialogbox",
1657    feature = "windows-subsystem-message"
1658))]
1659pub use winmsg::IsDialogMessageW as IsDialogMessage;
1660
1661/// `#145` IsDlgButtonChecked
1662///
1663/// determines whether a button control, such as a check box or radio button, is
1664/// checked
1665#[cfg(all(
1666    feature = "windows-subsystem-dialogbox",
1667    any(
1668        feature = "windows-subsystem-reflect",
1669        feature = "windows-subsystem-export"
1670    )
1671))]
1672pub use ctrls::IsDlgButtonChecked;
1673
1674/// `#146` MapDialogRect
1675///
1676/// converts dialog units to screen units
1677#[cfg(all(
1678    feature = "windows-subsystem-dialogbox",
1679    feature = "windows-subsystem-reflect"
1680))]
1681pub use winmsg::MapDialogRect;
1682
1683/// `#147` SendDlgItemMessage
1684///
1685/// sends a message to a control in a dialog box, or another child window
1686#[cfg(all(
1687    feature = "windows-subsystem-dialogbox",
1688    feature = "windows-subsystem-message"
1689))]
1690pub use winmsg::SendDlgItemMessageW as SendDlgItemMessage;
1691
1692/// `#148` DlgDirSelectEx
1693///
1694/// return information on files selected from controls filled with the
1695/// DlgDirList() function
1696#[cfg(feature = "windows-subsystem-dialogbox-dirlist")]
1697pub use ctrls::DlgDirSelectExW as DlgDirSelectEx;
1698
1699/// `#149` DialogProc
1700///
1701/// a callback function, defined by the application, that processes messages
1702/// that are sent to a modeless dialog box
1703#[cfg(feature = "windows-subsystem-dialogbox")]
1704pub type DialogProc = opt_inner_type!(winmsg::DLGPROC);
1705
1706/// `#150` BeginPaint
1707///
1708/// prepares the windows identified by `hwnd` for painting and fills the `lpps`
1709/// parameter with the necessary information to point to the appropriate
1710/// PAINTSTRUCT structure.
1711#[cfg(feature = "windows-subsystem-paint")]
1712pub use gdi::BeginPaint;
1713
1714/// `#151` EndPaint
1715///
1716/// called at the end of painting to the window specified by `hwnd`
1717#[cfg(feature = "windows-subsystem-paint")]
1718pub use gdi::EndPaint;
1719
1720/// `C.29` PAINTSTRUCT
1721///
1722/// contains information that an application can use to paint the client area of
1723/// a window that it owns
1724#[cfg(feature = "windows-subsystem-paint")]
1725pub use gdi::PAINTSTRUCT;
1726
1727/// `#152` ExcludeUpdateRgn
1728///
1729/// prevents a region specified by `hdc` from being updated when the `hwnd`
1730/// window is redrawn
1731#[cfg(feature = "windows-subsystem-updateregion")]
1732pub use gdi::ExcludeUpdateRgn;
1733
1734/// `#153` GetUpdateRect
1735///
1736/// gets the coordinates of the smallest rectangle that completely encloses a
1737/// region of the `hwnd` window that is updated
1738#[cfg(all(
1739    feature = "windows-subsystem-updateregion",
1740    feature = "windows-subsystem-reflect"
1741))]
1742pub use gdi::GetUpdateRect;
1743
1744/// `#154` GetUpdateRgn
1745///
1746/// gets the coordinates of the update region of a window specified by `hwnd`
1747#[cfg(all(
1748    feature = "windows-subsystem-updateregion",
1749    feature = "windows-subsystem-reflect"
1750))]
1751pub use gdi::GetUpdateRgn;
1752
1753/// `#155` InvertRect
1754///
1755/// inverts the pixels in a rectangular area of the device-context by performing
1756/// a logical NOT operation on the each of the pixels' bits
1757#[cfg(any(
1758    feature = "windows-subsystem-paint",
1759    feature = "graphics-subsystem-basic"
1760))]
1761pub use gdi::InvertRect;
1762
1763/// `#156` UpdateWindow
1764///
1765/// updates a non-empty window identified by `hwnd`, by sending the WM_PAINT
1766/// message to it
1767#[cfg(feature = "windows-subsystem-paint")]
1768pub use gdi::UpdateWindow;
1769
1770/// `#157` ValidateRgn
1771///
1772/// removes a region of a window's client area from the window's current update
1773/// region
1774#[cfg(feature = "windows-subsystem-updateregion")]
1775pub use gdi::ValidateRgn;
1776
1777/// `#157` InvalidateRgn
1778///
1779/// adds a region of a window's client area to the window's current update
1780/// region
1781#[cfg(any(
1782    feature = "windows-subsystem-updateregion",
1783    feature = "windows-subsystem-paint"
1784))]
1785pub use gdi::InvalidateRgn;
1786
1787/// `#158` RedrawWindow
1788///
1789/// updates the specified region or rectangle in the client area of the given
1790/// window
1791#[cfg(feature = "windows-subsystem-paint")]
1792pub use gdi::RedrawWindow;
1793
1794/// `#159` LockWindowUpdate
1795///
1796/// enables or disables a drawing in the window specified by the `hndlwndLock`
1797/// parameter
1798#[cfg(feature = "windows-subsystem-paint")]
1799pub use gdi::LockWindowUpdate;
1800
1801/// `#160` GetMapMode
1802///
1803/// retrieves the current mapping mode for the specified device-context
1804#[cfg(all(
1805    feature = "graphics-subsystem-basic",
1806    any(
1807        feature = "windows-subsystem-reflect",
1808        feature = "graphics-subsystem-reflect"
1809    )
1810))]
1811pub use gdi::GetMapMode;
1812
1813/// `#160` SetMapMode
1814///
1815/// sets the current mapping mode for the specified device-context
1816///
1817/// # See also
1818///   * MS-EMF:v14 2.3.11.19 EMR_SETMAPMODE Record
1819#[cfg(feature = "graphics-subsystem-basic")]
1820pub use gdi::SetMapMode;
1821
1822/// `#161` GetPolyFillMode
1823///
1824/// retrieves the current polygon filling mode for the specified device-context
1825#[cfg(all(
1826    feature = "graphics-subsystem-basic",
1827    any(
1828        feature = "windows-subsystem-reflect",
1829        feature = "graphics-subsystem-reflect"
1830    )
1831))]
1832pub use gdi::GetPolyFillMode;
1833
1834/// `#161` SetPolyFillMode
1835///
1836/// sets the current polygon filling mode for the specified device-context
1837///
1838/// # See also
1839///   * MS-EMF:v14 2.3.11.22 EMR_SETPOLYFILLMODE Record
1840#[cfg(feature = "graphics-subsystem-basic")]
1841pub use gdi::SetPolyFillMode;
1842
1843/// `#162` GetROP2
1844///
1845/// retrieves the current drawing mode for the specified device-context
1846#[cfg(all(
1847    feature = "graphics-subsystem-basic",
1848    any(
1849        feature = "windows-subsystem-reflect",
1850        feature = "graphics-subsystem-reflect"
1851    )
1852))]
1853pub use gdi::GetROP2;
1854
1855/// `#162` SetROP2
1856///
1857/// sets the current drawing mode for the specified device-context
1858///
1859/// # See also
1860///   * MS-EMF:v14 2.3.11.23 EMR_SETROP2 Record
1861#[cfg(feature = "graphics-subsystem-basic")]
1862pub use gdi::SetROP2;
1863
1864/// `H` Binary Raster Operations
1865#[cfg(feature = "graphics-subsystem-basic")]
1866pub mod binary_raster_ops;
1867
1868/// `#163` GetBkColor
1869///
1870/// returns the current background color for the given device-context
1871#[cfg(all(
1872    feature = "graphics-subsystem-basic",
1873    any(
1874        feature = "windows-subsystem-reflect",
1875        feature = "graphics-subsystem-reflect"
1876    )
1877))]
1878pub use gdi::GetBkColor;
1879
1880/// `#163` SetBkColor
1881///
1882/// sets the current background color for the given device-context
1883///
1884/// # See also
1885///   * MS-EMF:v14 2.3.11.10 EMR_SETBKCOLOR Record
1886#[cfg(feature = "graphics-subsystem-basic")]
1887pub use gdi::SetBkColor;
1888
1889/// `#164` GetBkMode
1890///
1891/// returns the background mode for the device-context
1892#[cfg(all(
1893    feature = "graphics-subsystem-basic",
1894    any(
1895        feature = "windows-subsystem-reflect",
1896        feature = "graphics-subsystem-reflect"
1897    )
1898))]
1899pub use gdi::GetBkMode;
1900
1901/// `#164` SetBkMode
1902///
1903/// sets the background mode for the device-context
1904///
1905/// # See also
1906///   * MS-EMF:v14 2.3.11.11 EMR_SETBKMODE Record
1907#[cfg(feature = "graphics-subsystem-basic")]
1908pub use gdi::SetBkMode;
1909
1910/// `#165` GetBoundsRect
1911///
1912/// returns the accumulated bounding rectangle in `lprcBounds` for the given
1913/// device-context
1914#[cfg(any(
1915    feature = "graphics-subsystem-reflect",
1916    feature = "graphics-subsystem-export"
1917))]
1918pub use gdi::GetBoundsRect;
1919
1920/// `#165` SetBoundsRect
1921///
1922/// controls the bounding rectangle accumulation
1923#[cfg(feature = "graphics-subsystem-basic")]
1924pub use gdi::SetBoundsRect;
1925
1926/// `#166` GetCurrentPosition
1927///
1928/// retrieve the logical coordinates of the current position
1929removed_item!(
1930    pub use gdi::GetCurrentPosition;
1931);
1932
1933/// `#166` GetCurrentPositionEx
1934///
1935/// retrieve the logical coordinates of the current position
1936#[cfg(all(
1937    feature = "graphics-subsystem-basic",
1938    any(
1939        feature = "windows-subsystem-reflect",
1940        feature = "graphics-subsystem-reflect"
1941    )
1942))]
1943pub use gdi::GetCurrentPositionEx;
1944
1945/// `#167` InvalidateRect
1946///
1947/// adds the rectangle, specified by `lprc` parameter, to the window's update
1948/// region
1949#[cfg(any(
1950    feature = "windows-subsystem-updateregion",
1951    feature = "windows-subsystem-paint"
1952))]
1953pub use gdi::InvalidateRect;
1954
1955/// `#167` ValidateRect
1956///
1957/// validates the rectangular part of the client area, specified by `lprc`
1958/// parameter by removing that rectangle from the window's update region
1959#[cfg(feature = "windows-subsystem-updateregion")]
1960pub use gdi::ValidateRect;
1961
1962#[cfg(any(
1963    feature = "windows-subsystem-basic",
1964    feature = "windows-subsystem-dialogbox"
1965))]
1966mod winmsg_polyfill {
1967    #![allow(non_snake_case, missing_docs)]
1968    #![allow(clippy::missing_safety_doc)]
1969    use super::winmsg;
1970    use windows_sys::Win32::Foundation as winsys_foundation;
1971
1972    #[cfg(feature = "windows-subsystem-basic")]
1973    #[inline]
1974    pub unsafe extern "system" fn CreateWindowW(
1975        lpclassname: windows_sys::core::PCWSTR,
1976        lpwindowname: windows_sys::core::PCWSTR,
1977        dwstyle: winmsg::WINDOW_STYLE,
1978        x: i32,
1979        y: i32,
1980        nwidth: i32,
1981        nheight: i32,
1982        hwndparent: winsys_foundation::HWND,
1983        hmenu: winmsg::HMENU,
1984        hinstance: winsys_foundation::HINSTANCE,
1985        lpparam: *const core::ffi::c_void,
1986    ) -> winsys_foundation::HWND {
1987        unsafe {
1988            winmsg::CreateWindowExW(
1989                0,
1990                lpclassname,
1991                lpwindowname,
1992                dwstyle,
1993                x,
1994                y,
1995                nwidth,
1996                nheight,
1997                hwndparent,
1998                hmenu,
1999                hinstance,
2000                lpparam,
2001            )
2002        }
2003    }
2004
2005    #[cfg(feature = "windows-subsystem-dialogbox")]
2006    pub unsafe extern "system" fn CreateDialogW(
2007        hinstance: winsys_foundation::HINSTANCE,
2008        lptemplatename: windows_sys::core::PCWSTR,
2009        hwndparent: winsys_foundation::HWND,
2010        lpdialogfunc: winmsg::DLGPROC,
2011    ) -> winsys_foundation::HWND {
2012        unsafe {
2013            winmsg::CreateDialogParamW(hinstance, lptemplatename, hwndparent, lpdialogfunc, 0)
2014        }
2015    }
2016
2017    #[cfg(feature = "windows-subsystem-dialogbox")]
2018    pub unsafe extern "system" fn CreateDialogIndirectW(
2019        hinstance: winsys_foundation::HINSTANCE,
2020        lptemplate: *const winmsg::DLGTEMPLATE,
2021        hwndparent: winsys_foundation::HWND,
2022        lpdialogfunc: winmsg::DLGPROC,
2023    ) -> winsys_foundation::HWND {
2024        unsafe {
2025            winmsg::CreateDialogIndirectParamW(hinstance, lptemplate, hwndparent, lpdialogfunc, 0)
2026        }
2027    }
2028
2029    #[cfg(feature = "windows-subsystem-dialogbox")]
2030    pub unsafe extern "system" fn DialogBoxW(
2031        hinstance: winsys_foundation::HINSTANCE,
2032        lptemplatename: windows_sys::core::PCWSTR,
2033        hwndparent: winsys_foundation::HWND,
2034        lpdialogfunc: winmsg::DLGPROC,
2035    ) -> isize {
2036        unsafe { winmsg::DialogBoxParamW(hinstance, lptemplatename, hwndparent, lpdialogfunc, 0) }
2037    }
2038
2039    #[cfg(feature = "windows-subsystem-dialogbox")]
2040    pub unsafe extern "system" fn DialogBoxIndirectW(
2041        hinstance: winsys_foundation::HINSTANCE,
2042        hdialogtemplate: *const winmsg::DLGTEMPLATE,
2043        hwndparent: winsys_foundation::HWND,
2044        lpdialogfunc: winmsg::DLGPROC,
2045    ) -> isize {
2046        unsafe {
2047            winmsg::DialogBoxIndirectParamW(hinstance, hdialogtemplate, hwndparent, lpdialogfunc, 0)
2048        }
2049    }
2050}