ManagedWinapi Listens to events from the Windows accessibility system. These events are useful if you want to write a screenreader or similar program. Initializes a new instance of this class with the specified container. The container to add it to. Initializes a new instance of this class. Releases all resources used by the System.ComponentModel.Component. Whether to dispose managed resources. Occurs when an accessible event is received. Enables this listener so that it reports accessible events. The minimal event type to listen to. The maximal event type to listen to. The Process ID to listen to. Default 0 listens to all processes. The Thread ID to listen to. Default 0 listens to all threads. Represents the method that will handle accessibility events. Provides data for accessible events. Initializes a new instance of the AccessibleEventArgs class. Type of this accessible event Handle of the affected window, if any. Object ID. Child ID. The thread that generated this event. Time in milliseconds when the event was generated. The accessible object related to this event. This enumeration lists known accessible event types. Sent when a sound is played. Currently nothing is generating this, we are going to be cleaning up the SOUNDSENTRY feature in the control panel and will use this at that time. Applications implementing WinEvents are perfectly welcome to use it. Clients of IAccessible* will simply turn around and get back a non-visual object that describes the sound. Sent when an alert needs to be given to the user. MessageBoxes generate alerts for example. Sent when the foreground (active) window changes, even if it is changing to another window in the same thread as the previous one. Sent when entering into and leaving from menu mode (system, app bar, and track popups). Sent when entering into and leaving from menu mode (system, app bar, and track popups). Sent when a menu popup comes up and just before it is taken down. Note that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup being shown. Sent when a menu popup comes up and just before it is taken down. Note that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup being shown. Sent when a window takes the capture and releases the capture. Sent when a window takes the capture and releases the capture. Sent when a window enters and leaves move-size dragging mode. Sent when a window enters and leaves move-size dragging mode. Sent when a window enters and leaves context sensitive help mode. Sent when a window enters and leaves context sensitive help mode. Sent when a window enters and leaves drag drop mode. Note that it is up to apps and OLE to generate this, since the system doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this is prevalent. Sent when a window enters and leaves drag drop mode. Note that it is up to apps and OLE to generate this, since the system doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this is prevalent. Sent when a dialog comes up and just before it goes away. Sent when a dialog comes up and just before it goes away. Sent when beginning and ending the tracking of a scrollbar in a window, and also for scrollbar controls. Sent when beginning and ending the tracking of a scrollbar in a window, and also for scrollbar controls. Sent when beginning and ending alt-tab mode with the switch window. Sent when beginning and ending alt-tab mode with the switch window. Sent when a window minimizes. Sent just before a window restores. hwnd + ID + idChild is created item hwnd + ID + idChild is destroyed item hwnd + ID + idChild is shown item hwnd + ID + idChild is hidden item hwnd + ID + idChild is parent of zordering children hwnd + ID + idChild is focused item hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex hwnd + ID + idChild is item added hwnd + ID + idChild is item removed hwnd + ID + idChild is parent of changed selected items hwnd + ID + idChild is item w/ state change hwnd + ID + idChild is moved/sized item hwnd + ID + idChild is item w/ name change hwnd + ID + idChild is item w/ desc change hwnd + ID + idChild is item w/ value change hwnd + ID + idChild is item w/ new parent hwnd + ID + idChild is item w/ help change hwnd + ID + idChild is item w/ def action change hwnd + ID + idChild is item w/ keybd accel change The lowest possible event value The highest possible event value The content of an object that supports the Accessibility API (used by screen readers and similar programs). An abstract representation of the content of a window or control. A short description of the type of this window. A short description of this content. The full description of this content. A list of properties of this content. Provides methods for getting additional information about files, like icons or compressed file size. Get the icon used for folders. Whether to get the small icon instead of the large one Get the icon used for files that do not have their own icon Whether to get the small icon instead of the large one Get the icon used by files of a given extension. The extension without leading dot Whether to get the small icon instead of the large one Get the icon used for a given, existing file. Name of the file Whether to get the small icon instead of the large one Get the size a file requires on disk. This takes NTFS compression into account. Get the cluster size for the filesystem that contains the given file. The unicode range of codepoints supported by a font. Creates a new CodepointRange object for a font. Returns a dictionary containing codepoint ranges of all fonts. If multiple fonts of one family (bold, italic, etc.) share their codepoint range, only their base font is included in this list, otherwise all different variants are included. Tests whether a specific codepoint is supported by this font. Finds the next codepoint that is either supported or not. Returns a representation of this codepoint range. The number of codepoints supported by this font. The first (lowest) supported codepoint. The last (highest) supported codepoint. A hook is a point in the system message-handling mechanism where an application can install a subroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure. Creates a new hook and hooks it. Creates a new hook. Creates a new hook. Creates a new hook. Hooks the hook. Unhooks the hook. Unhooks the hook if necessary. Override this method if you want to prevent a call to the CallNextHookEx method or if you want to return a different return value. For most hooks this is not needed. Occurs when the hook's callback is called. The type of the hook. Whether this hook has been started. Represents a method that handles a callback from a hook. A hook that intercepts local window messages. Creates a local message hook and hooks it. Creates a local message hook. Called when a message has been intercepted. Represents a method that handles a message from a message hook. Hook Types. See the documentation of SetWindowsHookEx for reference. Blocks keyboard and mouse input until this object is disposed. Unlike , you cannot detect when the systems removes the block (which happens when the user presses CTRL+ALT+DEL), but it works on Windows Vista as well. Blocks keyboard and mouse input until this object is disposed. Unblocks keyboard and mouse input. Abstract base class for hooks that can be used to create or playback a log of keyboard and mouse events. Creates a new journal hook. Hooks the hook. Unhooks the hook. Occurs when the journal activity has been cancelled by CTRL+ALT+DEL or CTRL+ESC. An event that has been recorded by a journal hook. Creates a new journal message. Returns a System.String that represents the current System.Object. The window this message has been sent to. The message. The first parameter of the message. The second parameter of the message. The timestamp of the message. Event data for a journal record event. The recorded message. A hook that can be used to create a log of keyboard and mouse events. Creates a new journal record hook. Occurs when a system modal dialog appears. This may be used to stop recording. Occurs when a system modal dialog disappears. This may be used to continue recording. Occurs when an event can be recorded. A hook that can be used to playback a log of keyboard and mouse events. Creates a new journal playback hook. Occurs when a system modal dialog appears. This may be used to stop playback. Occurs when a system modal dialog disappears. This may be used to continue playback. Occurs when the next journal message is needed. If the message is and a timestamp in the future, it just waits for that time and asks for a message again. If the message is and the timestamp is in the past, playback stops. Represents a method that yields the next journal message. Convenience class that uses a journal playback hook to block keyboard and mouse input for some time. Locks the input for interval * count milliseconds. The lock can be canceled every interval milliseconds. If count is negative, the lock will be active until cancelled. The interval to lock the input. How often to lock the input. If true, the lock cannot be canceled by pressing Control+Alt+Delete Unlocks the input. Unlocks the input. Lock input for given number of milliseconds Number of milliseconds to lock If true, the lock cannot be canceled by pressing Control+Alt+Delete This class contains utility methods related to keys on the keyboard. Initializes a new instance of this class for a given key. Press this key and release it. Press this key. Release this key. Inject a keyboard event into the event loop, as if the user performed it with his keyboard. Inject a mouse event into the event loop, as if the user performed it with his mouse. The state of this key, as seen by this application. The global state of this key. Determine the name of a key in the current keyboard layout. The key's name A hook that intercepts keyboard events. Creates a low-level keyboard hook and hooks it. Creates a low-level keyboard hook. Called when a key has been intercepted. Called when a character has been intercepted. Called when a key message has been intercepted. Represents a method that handles an intercepted key. Represents a method that handles an intercepted character. The message that caused the character. Usually Either WM_KEYDOWN or WM_SYSKEYDOWN. The character(s) that have been typed, or an empty string if a non-character key (like a cursor key) has been pressed. Whether a dead key is pending. If a dead key is pending, you may not call the ToUnicode method or similar methods, because they will destroy the deadkey state. The virtual key code of the message that caused the character. The scancode of the message that caused the character. The flags of the message that caused the character. The timestamp of the message that caused the character. The extra info of the message that caused the character. A hook that intercepts mouse events Creates a low-level mouse hook and hooks it. Creates a low-level mouse hook. Called when a mouse action has been intercepted. Called when a mouse message has been intercepted. Represents a method that handles an intercepted mouse action. Represents a method that handles an intercepted low-level message. A message that has been intercepted by a low-level hook Replays this event as if the user did it again. The time this message happened. Flags of the message. Its contents depend on the message. The message identifier. Extra information. Its contents depend on the message. A message that has been intercepted by a low-level mouse hook Creates a new low-level mouse message. Replays this event. The mouse position where this message occurred. Additional mouse data, depending on the type of event. Mouse event flags needed to replay this message. A message that has been intercepted by a low-level mouse hook Creates a new low-level keyboard message. Replays this event. The virtual key code that caused this message. The scan code that caused this message. Flags needed to replay this event. Contains utility functions to determine values that are (almost) unique on each computer. These values can be useful for locking software to a machine. The security identifier of this machine. This id is generated at installation time (or when running tools like SysPrep or NewSid) and is used to generate security identifiers of local users and to authenticate the machine in a domain. The DNS host name of this machine. Can be easily changed. The NetBIOS name of this machine. Can be easily changed; having two machines with same name on the same network can cause trouble with shared folders, though. The Media Access Control addresses of all network adapters. Note that these values are the addresses loaded from the driver, and thus could have been set by the user. Having two network cards with same MAC connected to the same physical network segment will lead into trouble. Usually MAC addresses are burned into the PROM of a NIC, so this is no problem unless someone changes his MAC deliberately (for example) to bypass access restrictions. Get all network interfaces. Use them to get MAC addresses or IP addresses, or the MAC address that is used for connecting to a specific IP address. Get the Volume Serial Numbers from all hard disk partitions. These values are part of the filesystem, and were originally intended to detect floppy swaps where the same floppy has been removed and inserted again (because, in this case, unwritten data may still be written). Today these are easily tweakable and of no real use, except for badly-designed software licensing schemes. Return the ID of all CPUs in this machine. Depending on BIOS configuration, CPU IDs might not be readable. A chunk in another processes memory. Mostly used to allocate buffers in another process for sending messages to its windows. Create a new memory chunk that points to existing memory. Mostly used to read that memory. Allocate a chunk in another process. Allocate a chunk in another process and unmarshal a struct there. Free the memory in the other process, if it has been allocated before. Write a structure into this chunk. Write into this chunk. Write a byte array into this chunk. Read this chunk. Read a part of this chunk. Read this chunk to a pointer in this process. Read a part of this chunk to a pointer in this process. Read a part of this chunk to a structure. Querys the process for it's memory regions (pages) start address of the pages to get size of pages to get (max address) a list of memory regions (pages) The process this chunk refers to. The location in memory (of the other process) this chunk refers to. The size of the chunk. Memory protection options (for an entire memory region) No Allocation protection (NONE) Disables all access to the committed region of pages. An attempt to read from, write to, or execute the committed region results in an access violation. This flag is not supported by the CreateFileMapping function. Enables read-only access to the committed region of pages. An attempt to write to the committed region results in an access violation. If Data Execution Prevention is enabled, an attempt to execute code in the committed region results in an access violation. Enables read-only or read/write access to the committed region of pages. If Data Execution Prevention is enabled, attempting to execute code in the committed region results in an access violation. Enables read-only or copy-on-write access to a mapped view of a file mapping object. An attempt to write to a committed copy-on-write page results in a private copy of the page being made for the process. The private page is marked as PAGE_READWRITE, and the change is written to the new page. If Data Execution Prevention is enabled, attempting to execute code in the committed region results in an access violation. This flag is not supported by the VirtualAlloc or VirtualAllocEx functions. Enables execute access to the committed region of pages. An attempt to read from or write to the committed region results in an access violation. This flag is not supported by the CreateFileMapping function. Enables execute or read-only access to the committed region of pages. An attempt to write to the committed region results in an access violation. Enables execute, read-only, or read/write access to the committed region of pages. Enables execute, read-only, or copy-on-write access to a mapped view of a file mapping object. An attempt to write to a committed copy-on-write page results in a private copy of the page being made for the process. The private page is marked as PAGE_EXECUTE_READWRITE, and the change is written to the new page. This flag is not supported by the VirtualAlloc or VirtualAllocEx functions. Pages in the region become guard pages. Any attempt to access a guard page causes the system to raise a STATUS_GUARD_PAGE_VIOLATION exception and turn off the guard page status. Guard pages thus act as a one-time access alarm. For more information, see Creating Guard Pages. When an access attempt leads the system to turn off guard page status, the underlying page protection takes over. If a guard page exception occurs during a system service, the service typically returns a failure status indicator. This value cannot be used with PAGE_NOACCESS. This flag is not supported by the CreateFileMapping function. Sets all pages to be non-cachable. Applications should not use this attribute except when explicitly required for a device. Using the interlocked functions with memory that is mapped with SEC_NOCACHE can result in an EXCEPTION_ILLEGAL_INSTRUCTION exception. The PAGE_NOCACHE flag cannot be used with the PAGE_GUARD, PAGE_NOACCESS, or PAGE_WRITECOMBINE flags. The PAGE_NOCACHE flag can be used only when allocating private memory with the VirtualAlloc, VirtualAllocEx, or VirtualAllocExNuma functions. To enable non-cached memory access for shared memory, specify the SEC_NOCACHE flag when calling the CreateFileMapping function. Sets all pages to be write-combined. Applications should not use this attribute except when explicitly required for a device. Using the interlocked functions with memory that is mapped as write-combined can result in an EXCEPTION_ILLEGAL_INSTRUCTION exception. The PAGE_WRITECOMBINE flag cannot be specified with the PAGE_NOACCESS, PAGE_GUARD, and PAGE_NOCACHE flags. The PAGE_WRITECOMBINE flag can be used only when allocating private memory with the VirtualAlloc, VirtualAllocEx, or VirtualAllocExNuma functions. To enable write-combined memory access for shared memory, specify the SEC_WRITECOMBINE flag when calling the CreateFileMapping function. Contains information about a range of pages in the virtual address space of a process. The VirtualQuery and VirtualQueryEx functions use this structure. A pointer to the base address of the region of pages. A pointer to the base address of a range of pages allocated by the VirtualAlloc function. The page pointed to by the BaseAddress member is contained within this allocation range. The memory protection option when the region was initially allocated. This member can be one of the memory protection constants or 0 if the caller does not have access. The size of the region beginning at the base address in which all pages have identical attributes, in bytes. The state of the pages in the region. This member can be one of the following values (MEM_COMMIT [0x1000] | MEM_FREE [0x10000] | MEM_RESERVE [0x2000]) The access protection of the pages in the region. This member is one of the values listed for the AllocationProtect member. The type of pages in the region. The following types are defined (MEM_IMAGE [0x1000000] | MEM_MAPPED [0x40000] | MEM_PRIVATE [0x20000]) String representation of the data a string The states of a memory page An unknown page state, or no state set Indicates committed pages for which physical storage has been allocated, either in memory or in the paging file on disk. Indicates free pages not accessible to the calling process and available to be allocated. For free pages, the information in the AllocationBase, AllocationProtect, Protect, and Type members is undefined. Indicates reserved pages where a range of the process's virtual address space is reserved without any physical storage being allocated. For reserved pages, the information in the Protect member is undefined. The types of a memory page An unknown page type, or no type set Indicates that the memory pages within the region are mapped into the view of an image section. Indicates that the memory pages within the region are mapped into the view of a section. Indicates that the memory pages within the region are private (that is, not shared by other processes). A Wrapper for cref: MEMORY_BASIC_INFORMATION The start address of the region The End address of the region The size of the region The encapsulated MEMORY_BASIC_INFORMATION structure data String representation of the data a string A that can be used to select a keyboard shortcut. A context menu allows selecting keys that are not available directly by typing them. Creates a new shortcut box. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. The "non-modifier" key code of the currently selected shortcut, or if no key is selected. Whether the currently selected shortcut includes the Shift key. Whether the currently selected shortcut includes the Alt key. Whether the currently selected shortcut includes the Control key. Whether the currently selected shortcut includes the Windows key. The textual representation of the currently selected key. This property cannot be set. Collection of miscellaneous actions that cannot be performed as a non-administrative user, like shutdown or setting the system time. Shutdown the system. Shutdown the system. Get or set the system time in the local timezone. Get or set the system time, in UTC. Actions that can be performed at shutdown. Log off the currently logged-on user. Shut down the system. Reboot the system. Shut down the system and power it off. Reboot the system and restart applications that are running now and support this feature. Whether shutdown should be forced if an application cancels it or is hung. Do not force shutdown, applications can cancel it. Force shutdown, even if application cancels it or is hung. Force shutdown if application is hung, but not if it cancels it. Provides access to the Active Accessibility API. Every has one ore more AccessibleObjects attached that provide information about the window to visually impaired people. This information is mainly used by screen readers and other accessibility software.. Create an accessible object from an IAccessible instance and a child ID. Gets an accessibility object for given screen coordinates. Gets an accessibility object for a given window. The window Which accessibility object to get Convert a role number to a localized string. Convert a state number (which may include more than one state bit) to a localized string. Convert a single state bit to a localized string. Perform the default action of this accessible object. Compare two instances of this class for equality. Compare two instances of this class for inequality. The IAccessible instance of this object (if is zero) or its parent. The underlying child ID Gets an accessibility object for the mouse cursor. Gets an accessibility object for the input caret, or null if there is none. The description of this accessible object. The name of this accessible object. The role of this accessible object. This can either be an int (for a predefined role) or a string. The role of this accessible object, as an integer. If this role is not predefined, -1 is returned. The role of this accessible object, as a localized string. The location of this accessible object on screen. This rectangle is the smallest rectangle that includes the whole object, but not every point in the rectangle must be part of the object. The value of this accessible object. The state of this accessible object. A string representation of the state of this accessible object. Whether this accessibile object is visible. The parent of this accessible object, or null if none exists. The keyboard shortcut of this accessible object. A string describing the default action of this accessible object. For a button, this might be "Press". Get all objects of this accessible object that are selected. Get the SystemWindow that owns this accessible object. Get all child accessible objects. This enumeration lists all kinds of accessible objects that can be directly assigned to a window. The window itself. The system menu. The title bar. The menu. The client area. The vertical scroll bar. The horizontal scroll bar. The size grip (part in the lower right corner that makes resizing the window easier). The caret (text cursor). The mouse cursor. There is only one mouse cursor and it is not assigned to any window. An alert window. A sound this window is playing. Helper class that contains static methods useful for API programming. This class is not exposed to the user. Throw a if the supplied (return) value is zero. This exception uses the last Win32 error code as error message. The return value to test. Throw a if the supplied (return) value is zero. This exception uses the last Win32 error code as error message. The return value to test. Specifies a component that monitors the system clipboard for changes. Creates a new clipboard notifier. The container. Creates a new clipboard notifier. Frees resources. Occurs when the clipboard contents have changed. The content of a list box or combo box. The value in this list or combo box that is selected. In a combo box, this value may not be in the list. The index of the selected item, or -1 if no item is selected. The number of items in this list. Accesses individual list items. Index of list item. The list item. The content of a text box. This component displays a crosshair icon that can be dragged to any point on screen. This is useful to select other programs by dragging the crosshair to a program window. Creates a new crosshair control. When a window is hidden, the .NET framework releases mouse capture. If you hide your window while the crosshair is dragged, invoke this method afterwards to restore mouse capture. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Occurs when the user finished dragging the crosshair. Use to detect the cursor position. Occurs while the user drags the crosshair. Use to detect the cursor position. Represents a mixer provided by a sound card. Each mixer has multiple destination lines (e. g. Record and Playback) of which each has multiple source lines (Wave, MIDI, Mic, etc.). Opens a mixer. The zero-based index of this mixer. A reference to this mixer. Occurs when a control of this mixer changes value. Occurs when a line of this mixer changes. Disposes this mixer. Find a line of this mixer by ID. ID of the line to find The line, or null if no line was found. Find a control of this mixer by ID. ID of the control to find. The control, or null if no control was found. Gets the number of available mixers in this system. Whether to create change events. Enabling this may create a slight performance impact, so only enable it if you handle these events. Gets the name of this mixer's sound card. Gets the number of destination lines of this mixer. Gets all destination lines of this mixer Represents the method that will handle the LineChanged or ControlChanged event of a Mixer. The source of the event. A MixerEventArgs that contains the event data. Provides data for the LineChanged and ControlChanged events of a Mixer. Initializes a new instance of the MixerEventArgs class. The affected mixer The affected line The affected control, or null if this is a LineChanged event. The affected mixer. The affected line. The affected control. A control of a mixer line. This can be for example a volume slider or a mute switch. Occurs when the value of this control is changed The ID of this control. The short name of this control. The long name of this control. The class of this control. For example FADER or SWITCH. The type of the control. For example mute switch. The flags of this control. Whether this control is uniform. A uniform control controls more than one channel, but can only set one value for all channels. Whether this control has multiple values per channel. An example for a multiple value control is a three-band equalizer. The number of channels. The number of multiple values. For a three band equalizer, this is 3. Will be always one if IsMultiple is false. The number of raw values that have to be get or set. This value is provided as a convenience; it can be computed from MultipleValuesCount, IsUniform and ChannelCount. The line this control belongs to. The mixer this control belongs to. A mixer control that is adjusted by a vertical fader, with a linear scale of positive values (ie, 0 is the lowest possible value). The minimum value of this fader. The maximum value of this fader. Used to get or set the values of this fader. A control that is has only two states (ie, values), and is therefore adjusted via a button. Used to get or set the values of this switch. Mixer control type classes. These classes are roughly based upon what type of value a control adjusts, and therefore what kind of graphical user interface you would normally present to the enduser to let him adjust that control's value. The descriptions for these classes have been taken from http://www.borg.com/~jglatt/tech/mixer.htm. A custom class of control. If none of the others are applicable. A control that is adjusted by a graphical meter. A control that is has only two states (ie, values), and is therefore adjusted via a button. A control that is adjusted by numeric entry. A control that is adjusted by a horizontal slider with a linear scale of negative and positive values. (ie, Generally, 0 is the mid or "neutral" point). A control that is adjusted by a vertical fader, with a linear scale of positive values (ie, 0 is the lowest possible value). A control that allows the user to enter a time value, such as Reverb Decay Time. A control that is adjusted by a listbox containing numerous "values" to be selected. The user will single-select, or perhaps multiple-select if desired, his choice of value(s). Flags of a mixer control. This control has multiple channels, but only one value for all of them. This control has multiple values for one channel (like an equalizer). This control is disabled. The type of a mixer control. You can find descriptions for most of these types on http://www.borg.com/~jglatt/tech/mixer.htm. Represents a mixer line, either a source line or a destination line. Occurs when this line changes. All controls of this line. The volume control of this line, if it has one. The mute switch of this control, if it has one. Gets the ID of this line. Gets the number of channels of this line. Gets the number of controls of this line. Gets the short name of this line; Gets the full name of this line. Gets the component type of this line; The mixer that owns this line. Represents a destination line. There is one destination line for each way sound can leave the mixer. Usually there are two destination lines, one for playback and one for recording. Gets the number of source lines of this destination line. Gets all source lines of this destination line. Represents a source line. Source lines represent way sound for one destination enters the mixer. So, if you can both record and playback CD audio, there will be two CD audio source lines, one for the Recording destination line and one for the Playback destination line. Types of source or destination lines. The descriptions for these lines have been taken from http://www.borg.com/~jglatt/tech/mixer.htm. An undefined destination line type. A digital destination, for example, a SPDIF output jack. A line output destination. Typically used for a line output jack, if there is a separate speaker output (ie, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS). Typically a "Monitor Out" jack to be used for a speaker system separate from the main speaker out. Or, it could be some built-in monitor speaker on the sound card itself, such as a speaker for a built-in modem. The audio output to a pair of speakers (ie, the "Speaker Out" jack). Typically, a headphone output jack. Typically used to daisy-chain a telephone to an analog modem's "telephone out" jack. The card's ADC (to digitize analog sources, for example, in recording WAVE files of such). May be some sort of hardware used for voice recognition. Typically, a microphone source line would be attached to this. An undefined source line type. A digital source, for example, a SPDIF input jack. A line input source. Typically used for a line input jack, if there is a separate microphone input (ie, MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE). Microphone input (but also used for a combination of Mic/Line input if there isn't a separate line input source). Musical synth. Typically used for a card that contains a synth capable of playing MIDI. This would be the audio out of that built-in synth. The audio feed from an internal CDROM drive (connected to the sound card). Typically used for a telephone line's incoming audio to be piped through the computer's speakers, or the telephone line in jack for a built-in modem. Typically, to allow sound, that normally goes to the computer's built-in speaker, to instead be routed through the card's speaker output. The motherboard's system speaker connector would be internally connected to some connector on the sound card for this purpose. Wave playback (ie, this is the card's DAC). An aux jack meant to be routed to the Speaker Out, or to the ADC (for WAVE recording). Typically, this is used to connect external, analog equipment (such as tape decks, the audio outputs of musical instruments, etc) for digitalizing or playback through the sound card. May be used similiarly to MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (although I have seen some mixers use this like MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER). In general, this would be some analog connector on the sound card which is only accessible internally, to be used to internally connect some analog component inside of the computer case so that it plays through the speaker out. Wrapper around the Winapi POINT type. The X Coordinate. The Y Coordinate. Creates a new POINT. Implicit cast. Implicit cast. Wrapper around the Winapi RECT type. LEFT TOP RIGHT BOTTOM Creates a new RECT. Convert RECT to a Rectangle. Convert Rectangle to a RECT Returns the hash code for this instance. Implicit Cast. Implicit Cast. HEIGHT WIDTH SIZE LOCATION Utility class to escape literal strings so that they can be used for the class. Escapes a literal string. The literal string to be sent. Whether you prefer to put characters into braces. The escaped string. The singleton instance. Specifies if a character needs to be escaped. The character cannot be used at all with SendKeys. The character must be escaped by putting it into braces The character may not be escaped by putting it into braces Both ways are okay. Called by an EventDispatchingNativeWindow when a window message is received The message to handle. Whether the event has already been handled. If this value is true, the handler should return immediately. It may set the value to true to indicate that no others should handle it. If the event is not handled by any handler, it is passed to the default WindowProc. A Win32 native window that delegates window messages to handlers. So several components can use the same native window to save "USER resources". This class is useful when writing your own components. Create your own event dispatching window. Parse messages passed to this window and send them to the event handlers. A System.Windows.Forms.Message that is associated with the current Windows message. A global instance which can be used by components that do not need their own window. Attach your event handlers here. Specifies a component that creates a global keyboard hotkey. Initializes a new instance of this class with the specified container. The container to add it to. Initializes a new instance of this class. Releases all resources used by the System.ComponentModel.Component. Whether to dispose managed resources. Occurs when the hotkey is pressed. Enables the hotkey. When the hotkey is enabled, pressing it causes a HotkeyPressed event instead of being handled by the active application. The key code of the hotkey. Whether the shortcut includes the Control modifier. Whether this shortcut includes the Alt modifier. Whether this shortcut includes the shift modifier. Whether this shortcut includes the Windows key modifier. The windows key is an addition by Microsoft to the keyboard layout. It is located between Control and Alt and depicts a Windows flag. The exception is thrown when a hotkey should be registered that has already been registered by another application. Utility class that can be used to create key events with all current locking keys (like Caps Lock) disabled. Other modifier keys (like Ctrl or Shift) are also ignored if they are currently pressed on the "real" keyboard. using (new LockKeysResetter()) { SendKeys.Send("Hello"); } Reset all modifier keys and remember in this object which modifier keys have been set. Set all modifier keys that have been set before. Since this class implements , you can use the using keyword in C# to automatically set modifier keys when you have finished. Convenience method to send keys with all modifiers disabled. The keys to send Convenience method to send keys and wait for them (like SendKeys.SendWait) with all modifiers disabled. Any list box, including those from other applications. Get a SystemListBox reference from a SystemWindow (which is a list box) The SystemWindow instance that represents this list box. The number of elements in this list box. The index of the selected element in this list box. The selected element in this list box. Get an element of this list box by index. Any combo box, including those from other applications. Get a SystemComboBox reference from a SystemWindow (which is a combo box) The SystemWindow instance that represents this combo box. The number of elements in this combo box. Gets an element by index. Any list view, including those from other applications. Get a SystemListView reference from a SystemWindow (which is a list view) The number of items (icons) in this list view. An item of this list view. A subitem (a column value) of an item of this list view. All columns of this list view, if it is in report view. An item of a list view. The title of this item The index of this item's image in the image list of this list view. State bits of this item. Position of the upper left corner of this item. Bounding rectangle of this item. A column of a list view. The format (like left justified) of this column. The width of this column. The subindex of the subitem displayed in this column. Note that the second column does not necessarily display the second subitem - especially when the columns can be reordered by the user. The title of this column. Any tree view, including those from other applications. Get a SystemTreeView reference from a SystemWindow (which is a tree view) The number of items (icons) in this tree view. The root items of this tree view. An item of a tree view. The title of that item. All child items of that item. Window Style Flags. The original constants started with WS_. WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS WS_CLIPCHILDREN WS_MAXIMIZE WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_CAPTION WS_TILED WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW Extended Window Style Flags. The original constants started with WS_EX_. Specifies that a window created with this style accepts drag-drop files. Forces a top-level window onto the taskbar when the window is visible. Specifies that a window has a border with a sunken edge. Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Includes a question mark in the title bar of the window. When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window. WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles. The window itself contains child windows that should take part in dialog box navigation. If this style is specified, the dialog manager recurses into children of this window when performing navigation operations such as handling the TAB key, an arrow key, or a keyboard mnemonic. Creates a window that has a double border; the window can, optionally, be created with a title bar by specifying the WS_CAPTION style in the dwStyle parameter. Windows 2000/XP: Creates a layered window. Note that this cannot be used for child windows. Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Arabic and Hebrew versions of Windows 98/Me, Windows 2000/XP: Creates a window whose horizontal origin is on the right edge. Increasing horizontal values advance to the left. Creates a window that has generic left-aligned properties. This is the default. If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the vertical scroll bar (if present) is to the left of the client area. For other languages, the style is ignored. The window text is displayed using left-to-right reading-order properties. This is the default. Creates a multiple-document interface (MDI) child window. Windows 2000/XP: A top-level window created with this style does not become the foreground window when the user clicks it. The system does not bring this window to the foreground when the user minimizes or closes the foreground window. To activate the window, use the SetActiveWindow or SetForegroundWindow function. The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the WS_EX_APPWINDOW style. Windows 2000/XP: A window created with this style does not pass its window layout to its child windows. Specifies that a child window created with this style does not send the WM_PARENTNOTIFY message to its parent window when it is created or destroyed. Combines the WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles. Combines the WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW, and WS_EX_TOPMOST styles. The window has generic "right-aligned" properties. This depends on the window class. This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports reading-order alignment; otherwise, the style is ignored. Using the WS_EX_RIGHT style for static or edit controls has the same effect as using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles. Vertical scroll bar (if present) is to the right of the client area. This is the default. If the shell language is Hebrew, Arabic, or another language that supports reading-order alignment, the window text is displayed using right-to-left reading-order properties. For other languages, the style is ignored. Creates a window with a three-dimensional border style intended to be used for items that do not accept user input. Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE. Specifies that a window created with this style should be placed above all non-topmost windows and should stay above them, even when the window is deactivated. To add or remove this style, use the SetWindowPos function. Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted. To achieve transparency without these restrictions, use the SetWindowRgn function. Specifies that a window has a border with a raised edge. Represents any window used by Windows, including those from other applications. Returns all toplevel windows that match the given predicate. The predicate to filter. The filtered toplevel windows Finds the system window below the given point. This need not be a toplevel window; disabled windows are not returned either. If you have problems with transparent windows that cover nontransparent windows, consider using , since that method tries hard to avoid this problem. X coordinate Y coordinate Finds the system window below the given point. This method uses a more sophisticated algorithm than , but is slower. X coordinate Y coordinate Whether to return the toplevel window. Whether to return enabled windows only. Create a new SystemWindow instance from a window handle. The window handle. Create a new SystemWindow instance from a Windows Forms Control. The control. Returns all child windows that match the given predicate. Whether to include only direct children (no descendants) The predicate to filter. The list of child windows. Check whether this window is a descendant of ancestor The suspected ancestor If this is really an ancestor Gets a device context for this window. Whether to get the context for the client area or for the full window. Whether this SystemWindow represents a valid window that existed when this SystemWindow instance was created. To check if a window still exists, better check its property. Send a message to this window that it should close. This is equivalent to clicking the "X" in the upper right corner or pressing Alt+F4. Highlights the window with a red border. Forces the window to invalidate its client area and immediately redraw itself and any child controls. Compare two instances of this class for equality. Compare two instances of this class for inequality. Allows getting the current foreground window and setting it. The Desktop window, i. e. the window that covers the complete desktop. Returns all available toplevel windows. Return all descendant windows (child windows and their descendants). Return all direct child windows. The Window handle of this window. The title of this window (by the GetWindowText API function). The name of the window class (by the GetClassName API function). This class has nothing to do with classes in C# or other .NET languages. Whether this window is currently visible. A window is visible if its and all ancestor's visibility flags are true. Whether this window always appears above all other windows that do not have this property set to true. Whether this window is currently enabled (able to accept keyboard input). Returns or sets the visibility flag. This window's style flags. This window's extended style flags. This window's parent. A dialog's parent is its owner, a component's parent is the window that contains it. The window's parent, but only if this window is its parent child. Some parents, like dialog owners, do not have the window as its child. In that case, null will be returned. The window's position inside its parent or on the screen. The window's location inside its parent or on the screen. The window's size. The window's position in absolute screen coordinates. Use if you want to use the relative position. The process which created this window. The Thread which created this window. Whether this window is minimized or maximized. Whether this window can be moved on the screen by the user. Whether this window can be resized by the user. Resizing a window that cannot be resized by the user works, but may be irritating to the user. An image of this window. Unlike a screen shot, this will not contain parts of other windows (partially) cover this window. If you want to create a screen shot, use the function and use the property for the range. The window's visible region. The character used to mask passwords, if this control is a text field. May be used for different purpose by other controls. The ID of a control within a dialog. This is used in WM_COMMAND messages to distinguish which control sent the command. Get the window that is below this window in the Z order, or null if this is the lowest window. Get the window that is above this window in the Z order, or null, if this is the foreground window. The content of this window. Is only supported for some kinds of controls (like text or list boxes). Whether this control, which is a check box or radio button, is checked. A device context of a window that allows you to draw onto that window. Creates a Graphics object for this device context. Frees this device context. The device context handle.