<?xml version="1.0"?>
<doc>
<assembly>
<name>Tao.Platform.Windows</name>
</assembly>
<members>
<member name="T:Tao.Platform.Windows.WinNt">
<summary>
WinNT binding for .NET, implementing Windows NT-specific functionality.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_386">
<summary>
Intel i386 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_486">
<summary>
Intel i486 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_PENTIUM">
<summary>
Intel Pentium processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_IA64">
<summary>
Intel IA64 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_AMD_X8664">
<summary>
AMD X86 64 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_MIPS_R4000">
<summary>
MIPS R4000, R4101, R3910 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ALPHA_21064">
<summary>
Alpha 210 64 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_PPC_601">
<summary>
PPC 601 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_PPC_603">
<summary>
PPC 603 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_PPC_604">
<summary>
PPC 604 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_PPC_620">
<summary>
PPC 620 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_HITACHI_SH3">
<summary>
Hitachi SH3 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_HITACHI_SH3E">
<summary>
Hitachi SH3E processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_HITACHI_SH4">
<summary>
Hitachi SH4 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_MOTOROLA_821">
<summary>
Motorola 821 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_SHx_SH3">
<summary>
SHx SH3 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_SHx_SH4">
<summary>
SHx SH4 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_STRONGARM">
<summary>
StrongARM processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARM720">
<summary>
ARM 720 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARM820">
<summary>
ARM 820 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARM920">
<summary>
ARM 920 processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARM_7TDMI">
<summary>
ARM 7TDMI processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_OPTIL">
<summary>
MSIL processor.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_INTEL">
<summary>
Intel architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_MIPS">
<summary>
MIPS architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_ALPHA">
<summary>
Alpha architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_PPC">
<summary>
PPC architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_SHX">
<summary>
SHX architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_ARM">
<summary>
ARM architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_IA64">
<summary>
IA64 architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_ALPHA64">
<summary>
Alpha64 architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_MSIL">
<summary>
MSIL architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_AMD64">
<summary>
AMD64 architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_IA32_ON_WIN64">
<summary>
IA32 On Win64 architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_UNKNOWN">
<summary>
Unknown architecture.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_FLOATING_POINT_PRECISION_ERRATA">
<summary>
In rare circumstances, on a Pentium, a floating-point precision error can occur.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_FLOATING_POINT_EMULATED">
<summary>
Floating-point operations are emulated using a software emulator.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_COMPARE_EXCHANGE_DOUBLE">
<summary>
The compare and exchange double operation is available (Pentium, MIPS, and Alpha).
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_MMX_INSTRUCTIONS_AVAILABLE">
<summary>
The MMX instruction set is available.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_PPC_MOVEMEM_64BIT_OK">
<summary>
Unknown.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_ALPHA_BYTE_INSTRUCTIONS">
<summary>
Unknown.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_XMMI_INSTRUCTIONS_AVAILABLE">
<summary>
The SSE instruction set is available.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_3DNOW_INSTRUCTIONS_AVAILABLE">
<summary>
The 3D-Now instruction set is available.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_RDTSC_INSTRUCTION_AVAILABLE">
<summary>
The RDTSC instruction is available.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_PAE_ENABLED">
<summary>
The processor is PAE-enabled.
</summary>
</member>
<member name="F:Tao.Platform.Windows.WinNt.PF_XMMI64_INSTRUCTIONS_AVAILABLE">
<summary>
The SSE2 instruction set is available.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Kernel">
<summary>
Kernel binding for .NET, implementing Windows-specific kernel functionality.
</summary>
<remarks>
Binds functions and definitions in kernel32.dll.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Kernel.KERNEL_NATIVE_LIBRARY">
<summary>
Specifies Kernel32's native library archive.
</summary>
<remarks>
Specifies kernel32.dll for Windows.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Kernel.CALLING_CONVENTION">
<summary>
Specifies the calling convention.
</summary>
<remarks>
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall"/>.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Kernel.Beep(System.Int32,System.Int32)">
<summary>
The <b>Beep</b> function generates simple tones on the speaker. The function is
synchronous; it does not return control to its caller until the sound finishes.
</summary>
<param name="frequency">
<para>
Frequency of the sound, in hertz. This parameter must be in the range
37 through 32,767 (0x25 through 0x7FFF).
</para>
<para>
<b>Windows 95/98/Me:</b> The <b>Beep</b> function ignores this parameter.
</para>
</param>
<param name="duration">
<para>
Duration of the sound, in milliseconds.
</para>
<para>
<b>Windows 95/98/Me:</b> The <b>Beep</b> function ignores this parameter.
</para>
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
<b>Terminal Services:</b> The beep is redirected to the client.
</para>
<para>
<b>Windows 95/98/Me:</b> On computers with a sound card, the function
plays the default sound event. On computers without a sound card, the
function plays the standard system beep.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Kernel.FreeLibrary(System.IntPtr)">
<summary>
The <b>FreeLibrary</b> function decrements the reference count of the loaded
dynamic-link library (DLL). When the reference count reaches zero, the module
is unmapped from the address space of the calling process and the handle is no
longer valid.
</summary>
<param name="moduleHandle">
Handle to the loaded DLL module. The <see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/> or
<see cref="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)"/> function returns this handle.
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
Each process maintains a reference count for each loaded library module. This
reference count is incremented each time <see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/> is called
and is decremented each time <b>FreeLibrary</b> is called. A DLL module
loaded at process initialization due to load-time dynamic linking has a
reference count of one. This count is incremented if the same module is
loaded by a call to <see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/>.
</para>
<para>
Before unmapping a library module, the system enables the DLL to detach from
the process by calling the DLL's <b>DllMain</b> function, if it has one, with
the DLL_PROCESS_DETACH value. Doing so gives the DLL an opportunity to clean
up resources allocated on behalf of the current process. After the
entry-point function returns, the library module is removed from the address
space of the current process.
</para>
<para>
It is not safe to call <b>FreeLibrary</b> from <b>DllMain</b>. For more
information, see the Remarks section in <b>DllMain</b>.
</para>
<para>
Calling <b>FreeLibrary</b> does not affect other processes using the same
library module.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetDllDirectory(System.Int32,System.Text.StringBuilder)">
<summary>
The <b>GetDllDirectory</b> function retrieves the application-specific portion of
the search path used to locate DLLs for the application.
</summary>
<param name="bufferLength">
Size of the output buffer, in characters.
</param>
<param name="buffer">
Pointer to a buffer that receives the application-specific portion of the search path.
</param>
<returns>
<para>
If the function succeeds, the return value is the length of the string copied
to <i>buffer</i>, in characters, not including the terminating null character.
If the return value is greater than <i>bufferLength</i>, it specifies the size
of the buffer required for the path.
</para>
<para>
If the function fails, the return value is zero. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<seealso cref="M:Tao.Platform.Windows.Kernel.SetDllDirectory(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetModuleFileName(System.IntPtr,System.Text.StringBuilder,System.Int32)">
<summary>
<para>
The <b>GetModuleFileName</b> function retrieves the fully qualified path for
the specified module.
</para>
<para>
To specify the process that contains the module, use the
<b>GetModuleFileNameEx</b> function.
</para>
</summary>
<param name="module">
Handle to the module whose path is being requested. If this parameter is NULL,
<b>GetModuleFileName</b> retrieves the path for the current module.
</param>
<param name="fileName">
<para>
Pointer to a buffer that receives a null-terminated string that specifies the
fully-qualified path of the module. If the length of the path exceeds the
size specified by the <i>size</i> parameter, the function succeeds and the
string is truncated to <i>size</i> characters and null terminated.
</para>
<para>
The path can have the prefix "\\?\", depending on how the module was loaded.
</para>
</param>
<param name="size">
Size of the <i>filename</i> buffer, in TCHARs.
</param>
<returns>
<para>
If the function succeeds, the return value is the length of the string copied
to the buffer, in TCHARs. If the buffer is too small to hold the module name,
the string is truncated to <i>size</i>, and the function returns <i>size</i>.
</para>
<para>
If the function fails, the return value is zero. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
If a DLL is loaded in two processes, its file name in one process may differ
in case from its file name in the other process.
</para>
<para>
For the ANSI version of the function, the number of TCHARs is the number of
bytes; for the Unicode version, it is the number of characters.
</para>
<para>
<b>Windows Me/98/95:</b> This function retrieves long file names when an
application's version number is greater than or equal to 4.00 and the long
file name is available. Otherwise, it returns only 8.3 format file names.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)">
<summary>
<para>
The <b>GetModuleHandle</b> function retrieves a module handle for the
specified module if the file has been mapped into the address space of the
calling process.
</para>
<para>
To avoid the race conditions described in the Remarks section, use the
<b>GetModuleHandleEx</b> function.
</para>
</summary>
<param name="moduleName">
<para>
Pointer to a null-terminated string that contains the name of the module
(either a .dll or .exe file). If the file name extension is omitted, the
default library extension .dll is appended. The file name string can include
a trailing point character (.) to indicate that the module name has no
extension. The string does not have to specify a path. When specifying a
path, be sure to use backslashes (\), not forward slashes (/). The name is
compared (case independently) to the names of modules currently mapped into
the address space of the calling process.
</para>
<para>
If this parameter is NULL, <b>GetModuleHandle</b> returns a handle to the
file used to create the calling process.
</para>
</param>
<returns>
<para>
If the function succeeds, the return value is a handle to the specified module
(IntPtr).
</para>
<para>
If the function fails, the return value is NULL (IntPtr.Zero). To get
extended error information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The returned handle is not global or inheritable. It cannot be duplicated
or used by another process.
</para>
<para>
The <b>GetModuleHandle</b> function returns a handle to a mapped module
without incrementing its reference count. Therefore, use care when passing
the handle to the <see cref="M:Tao.Platform.Windows.Kernel.FreeLibrary(System.IntPtr)"/> function, because doing so can
cause a DLL module to be unmapped prematurely.
</para>
<para>
This function must be used carefully in a multithreaded application. There
is no guarantee that the module handle remains valid between the time this
function returns the handle and the time it is used. For example, a thread
retrieves a module handle, but before it uses the handle, a second thread
frees the module. If the system loads another module, it could reuse the
module handle that was recently freed. Therefore, first thread would have
a handle to a module different than the one intended.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.FreeLibrary(System.IntPtr)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetModuleFileName(System.IntPtr,System.Text.StringBuilder,System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetProcAddress(System.IntPtr,System.String)">
<summary>
The <b>GetProcAddress</b> function retrieves the address of an exported function
or variable from the specified dynamic-link library (DLL).
</summary>
<param name="module">
Handle to the DLL module that contains the function or variable. The
<see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/> or <see cref="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)"/> function returns
this handle.
</param>
<param name="processName">
Pointer to a null-terminated string that specifies the function or variable name,
or the function's ordinal value. If this parameter is an ordinal value, it must
be in the low-order word; the high-order word must be zero.
</param>
<returns>
<para>
If the function succeeds, the return value is the address of the exported
function or variable.
</para>
<para>
If the function fails, the return value is NULL (IntPtr.Zero). To get
extended error information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The spelling and case of a function name pointed to by <i>processName</i> must
be identical to that in the EXPORTS statement of the source DLL's
module-definition (.def) file. The exported names of functions may differ
from the names you use when calling these functions in your code. This
difference is hidden by macros used in the SDK header files.
</para>
<para>
The <i>processName</i> parameter can identify the DLL function by specifying
an ordinal value associated with the function in the EXPORTS statement.
<b>GetProcAddress</b> verifies that the specified ordinal is in the range 1
through the highest ordinal value exported in the .def file. The function
then uses the ordinal as an index to read the function's address from a
function table. If the .def file does not number the functions consecutively
from 1 to N (where N is the number of exported functions), an error can occur
where <b>GetProcAddress</b> returns an invalid, non-NULL address, even though
there is no function with the specified ordinal.
</para>
<para>
In cases where the function may not exist, the function should be specified by
name rather than by ordinal value.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.FreeLibrary(System.IntPtr)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetModuleHandle(System.String)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetProcessWorkingSetSize(System.IntPtr,System.Int32@,System.Int32@)">
<summary>
The <b>GetProcessWorkingSetSize</b> function retrieves the minimum and maximum
working set sizes of the specified process.
</summary>
<param name="process">
Handle to the process whose working set sizes will be obtained. The handle must
have the PROCESS_QUERY_INFORMATION access right.
</param>
<param name="minimumWorkingSetSize">
Pointer to a variable that receives the minimum working set size of the specified
process, in bytes. The virtual memory manager attempts to keep at least this much
memory resident in the process whenever the process is active.
</param>
<param name="maximumWorkingSetSize">
Pointer to a variable that receives the maximum working set size of the specified
process, in bytes. The virtual memory manager attempts to keep no more than this
much memory resident in the process whenever the process is active when memory is
in short supply.
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
The "working set" of a process is the set of memory pages currently visible to
the process in physical RAM memory. These pages are resident and available for
an application to use without triggering a page fault. The minimum and maximum
working set sizes affect the virtual memory paging behavior of a process.
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.SetProcessWorkingSetSize(System.IntPtr,System.Int32,System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)">
<summary>
<para>
The <b>GetSystemDirectory</b> function retrieves the path of the system
directory. The system directory contains system such files such as
dynamic-link libraries, drivers, and font files.
</para>
<para>
This function is provided primarily for compatibility. Applications should
store code in the Program Files folder and persistent data in the Application
Data folder in the user's profile.
</para>
</summary>
<param name="buffer">
Pointer to the buffer to receive the null-terminated string containing the path.
This path does not end with a backslash unless the system directory is the root
directory. For example, if the system directory is named Windows\System on drive
C, the path of the system directory retrieved by this function is
C:\Windows\System.
</param>
<param name="size">
Maximum size of the buffer, in TCHARs. This value should be set to at least
MAX_PATH+1 to allow sufficient space for the path and the null terminator.
</param>
<returns>
<para>
If the function succeeds, the return value is the length, in TCHARs, of the
string copied to the buffer, not including the terminating null character. If
the length is greater than the size of the buffer, the return value is the
size of the buffer required to hold the path.
</para>
<para>
If the function fails, the return value is zero. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
Applications should not create files in the system directory. If the user is
running a shared version of the operating system, the application does not have
write access to the system directory.
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetSystemInfo(Tao.Platform.Windows.Kernel.SYSTEM_INFO@)">
<summary>
<para>
The <b>GetSystemInfo</b> function returns information about the current
system.
</para>
<para>
To retrieve accurate information for a Win32-based application running on
WOW64, call the <b>GetNativeSystemInfo</b> function.
</para>
</summary>
<param name="systemInfo">
Pointer to a <see cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO"/> structure that receives the information.
</param>
<seealso cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetSystemWindowsDirectory(System.Text.StringBuilder,System.Int32)">
<summary>
The <b>GetSystemWindowsDirectory</b> function retrieves the path of the shared
Windows directory on a multi-user system.
</summary>
<param name="buffer">
Pointer to the buffer to receive a null-terminated string containing the path.
This path does not end with a backslash unless the Windows directory is the root
directory. For example, if the Windows directory is named Windows on drive C,
the path of the Windows directory retrieved by this function is C:\Windows. If
the system was installed in the root directory of drive C, the path retrieved
is C:\.
</param>
<param name="size">
Maximum size of the buffer specified by the <i>buffer</i> parameter, in TCHARs.
This value should be set to at least MAX_PATH+1 to allow sufficient space for the
path and the null-terminating character.
</param>
<returns>
<para>
If the function succeeds, the return value is the length of the string copied
to the buffer, in TCHARs, not including the terminating null character.
</para>
<para>
If the length is greater than the size of the buffer, the return value is the
size of the buffer required to hold the path.
</para>
<para>
If the function fails, the return value is zero. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
On a system that is running Terminal Server, each user has a unique Windows
directory. The system Windows directory is shared by all users, so it is the
directory where an application should store initialization and help files that
apply to all users.
</para>
<para>
With Terminal Services, the <b>GetSystemWindowsDirectory</b> function
retrieves the path of the system Windows directory, while the
<see cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/> function retrieves the path of a Windows
directory that is private for each user. On a single-user system,
<b>GetSystemWindowsDirectory</b> is the same as
<see cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>.
</para>
<para>
<b>Windows NT 4.0 Terminal Server Edition:</b> To retrieve the shared
Windows directory, call <see cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/> and trim the
"System32" element from the end of the returned path.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetTickCount">
<summary>
The <b>GetTickCount</b> function retrieves the number of milliseconds that have
elapsed since the system was started. It is limited to the resolution of the
system timer. To obtain the system timer resolution, use the
<b>GetSystemTimeAdjustment</b> function.
</summary>
<returns>
The return value is the number of milliseconds that have elapsed since the system
was started.
</returns>
<remarks>
<para>
The elapsed time is stored as a DWORD value. Therefore, the time will wrap
around to zero if the system is run continuously for 49.7 days.
</para>
<para>
If you need a higher resolution timer, use a multimedia timer or a
high-resolution timer.
</para>
<para>
To obtain the time elapsed since the computer was started, retrieve the System
Up Time counter in the performance data in the registry key
HKEY_PERFORMANCE_DATA. The value returned is an 8-byte value.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)">
<summary>
<para>
The <b>GetWindowsDirectory</b> function retrieves the path of the Windows
directory. The Windows directory contains such files as applications,
initialization files, and help files.
</para>
<para>
This function is provided primarily for compatibility. Applications should
store code in the Program Files folder and persistent data in the Application
Data folder in the user's profile.
</para>
</summary>
<param name="buffer">
Pointer to the buffer to receive the null-terminated string containing the path.
This path does not end with a backslash unless the Windows directory is the root
directory. For example, if the Windows directory is named Windows on drive C, the
path of the Windows directory retrieved by this function is C:\Windows. If the
system was installed in the root directory of drive C, the path retrieved is C:\.
</param>
<param name="size">
Maximum size of the buffer specified by the <i>buffer</i> parameter, in TCHARs.
This value should be set to MAX_PATH.
</param>
<returns>
<para>
If the function succeeds, the return value is the length of the string copied
to the buffer, in TCHARs, not including the terminating null character.
</para>
<para>
If the length is greater than the size of the buffer, the return value is the
size of the buffer required to hold the path.
</para>
<para>
If the function fails, the return value is zero. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The Windows directory is the directory where an application should store
initialization and help files. If the user is running a shared version of the
system, the Windows directory is guaranteed to be private for each user.
</para>
<para>
If an application creates other files that it wants to store on a per-user
basis, it should place them in the directory specified by the HOMEPATH
environment variable. This directory will be different for each user, if so
specified by an administrator, through the User Manager administrative tool.
HOMEPATH always specifies either the user's home directory, which is
guaranteed to be private for each user, or a default directory (for example,
C:\USERS\DEFAULT) where the user will have all access.
</para>
<para>
<b>Terminal Services:</b> If the application is running in a Terminal
Services environment, each user has a unique Windows directory. If an
application that is not Terminal-Services-aware calls this function, it
retrieves the path of the Windows directory on the client, not the Windows
directory on the server.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetSystemWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.GlobalMemoryStatus(Tao.Platform.Windows.Kernel.MEMORYSTATUS@)">
<summary>
<para>
The <b>GlobalMemoryStatus</b> function obtains information about the system's
current usage of both physical and virtual memory.
</para>
<para>
To obtain information about the extended portion of the virtual address space,
or if your application may run on computers with more than 4 GB of main
memory, use the <b>GlobalMemoryStatusEx</b> function.
</para>
</summary>
<param name="buffer">
Pointer to a <see cref="T:Tao.Platform.Windows.Kernel.MEMORYSTATUS"/> structure. The <b>GlobalMemoryStatus</b>
function stores information about current memory availability into this structure.
</param>
<remarks>
<para>
You can use the <b>GlobalMemoryStatus</b> function to determine how much
memory your application can allocate without severely impacting other
applications.
</para>
<para>
The information returned by the <b>GlobalMemoryStatus</b> function is
volatile. There is no guarantee that two sequential calls to this function
will return the same information.
</para>
<para>
On computers with more than 4 GB of memory, the <b>GlobalMemoryStatus</b>
function can return incorrect information. Windows 2000 and later report a
value of -1 to indicate an overflow. Earlier versions of Windows NT report a
value that is the real amount of memory, modulo 4 GB. For this reason, use
the <b>GlobalMemoryStatusEx</b> function instead.
</para>
<para>
On Intel x86 computers with more than 2 GB and less than 4 GB of memory, the
<b>GlobalMemoryStatus</b> function will always return 2 GB in the
<see cref="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.TotalPhys"/> member of the
<see cref="T:Tao.Platform.Windows.Kernel.MEMORYSTATUS"/> structure. Similarly, if the total available
memory is between 2 and 4 GB, the <see cref="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.AvailPhys"/> member
of the <see cref="T:Tao.Platform.Windows.Kernel.MEMORYSTATUS"/> structure will be rounded down to 2 GB. If
the executable is linked using the /LARGEADDRESSWARE linker option, then the
<b>GlobalMemoryStatus</b> function will return the correct amount of physical
memory in both members.
</para>
</remarks>
<seealso cref="T:Tao.Platform.Windows.Kernel.MEMORYSTATUS"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.IsProcessorFeaturePresent(System.Int32)">
<summary>
The <b>IsProcessorFeaturePresent</b> function determines whether the specified
processor feature is supported by the current computer.
</summary>
<param name="processorFeature">
<para>
Processor feature to be tested. This parameter can be one of the following
values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_3DNOW_INSTRUCTIONS_AVAILABLE"/></term>
<description>
The 3D-Now instruction set is available.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_COMPARE_EXCHANGE_DOUBLE"/></term>
<description>
The compare and exchange double operation is available (Pentium,
MIPS, and Alpha).
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_FLOATING_POINT_EMULATED"/></term>
<description>
<para>
Floating-point operations are emulated using a software
emulator.
</para>
<para>
This function returns true if floating-point operations are
emulated; otherwise, it returns false.
</para>
<para>
<b>Windows NT 4.0:</b> This function returns false if
floating-point operations are emulated; otherwise, it returns
true. This behavior is a bug that is fixed in later versions.
</para>
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_FLOATING_POINT_PRECISION_ERRATA"/></term>
<description>
<b>Pentium:</b> In rare circumstances, a floating-point precision
error can occur.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_MMX_INSTRUCTIONS_AVAILABLE"/></term>
<description>
The MMX instruction set is available.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_PAE_ENABLED"/></term>
<description>
The processor is PAE-enabled.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_RDTSC_INSTRUCTION_AVAILABLE"/></term>
<description>
The RDTSC instruction is available.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_XMMI_INSTRUCTIONS_AVAILABLE"/></term>
<description>
The SSE instruction set is available.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.WinNt.PF_XMMI64_INSTRUCTIONS_AVAILABLE"/></term>
<description>
The SSE2 instruction set is available.
</description>
</item>
</list>
</para>
</param>
<returns>
<para>
If the feature is supported, the return value is true.
</para>
<para>
If the feature is not supported, the return value is false.
</para>
</returns>
</member>
<member name="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)">
<summary>
The <b>LoadLibrary</b> function maps the specified executable module into the
address space of the calling process.
</summary>
<param name="fileName">
<para>
Pointer to a null-terminated string that names the executable module (either
a .dll or .exe file). The name specified is the file name of the module and
is not related to the name stored in the library module itself, as specified
by the LIBRARY keyword in the module-definition (.def) file.
</para>
<para>
If the string specifies a path but the file does not exist in the specified
directory, the function fails. When specifying a path, be sure to use
backslashes (\), not forward slashes (/).
</para>
<para>
If the string does not specify a path, the function uses a standard search
strategy to find the file. See the Remarks for more information.
</para>
</param>
<returns>
<para>
If the function succeeds, the return value is a handle to the module (IntPtr).
</para>
<para>
If the function fails, the return value is NULL (IntPtr.Zero). To get
extended error information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
<para>
<b>Windows Me/98/95:</b> If you are using <b>LoadLibrary</b> to load a module
that contains a resource whose numeric identifier is greater than 0x7FFF,
<b>LoadLibrary</b> fails. If you are attempting to load a 16-bit DLL directly
from 32-bit code, <b>LoadLibrary</b> fails. If you are attempting to load a
DLL whose subsystem version is greater than 4.0, <b>LoadLibrary</b> fails. If
your <b>DllMain</b> function tries to call the Unicode version of a function,
<b>LoadLibrary</b> fails.
</para>
</returns>
<remarks>
<para>
<b>LoadLibrary</b> can be used to map a DLL module and return a handle that
can be used in <see cref="M:Tao.Platform.Windows.Kernel.GetProcAddress(System.IntPtr,System.String)"/> to get the address of a DLL
function. <b>LoadLibrary</b> can also be used to map other executable
modules. For example, the function can specify an .exe file to get a
handle that can be used in <b>FindResource</b> or <b>LoadResource</b>.
However, do not use <b>LoadLibrary</b> to run an .exe file, use the
<b>CreateProcess</b> function.
</para>
<para>
If the module is a DLL not already mapped for the calling process, the system
calls the DLL's <b>DllMain</b> function with the DLL_PROCESS_ATTACH value. If
the DLL's entry-point function does not return TRUE, <b>LoadLibrary</b> fails
and returns NULL. (The system immediately calls your entry-point function
with DLL_PROCESS_DETACH and unloads the DLL.)
</para>
<para>
It is not safe to call <b>LoadLibrary</b> from <b>DllMain</b>. For more
information, see the Remarks section in <b>DllMain</b>.
</para>
<para>
Module handles are not global or inheritable. A call to <b>LoadLibrary</b> by
one process does not produce a handle that another process can use — for
example, in calling <see cref="M:Tao.Platform.Windows.Kernel.GetProcAddress(System.IntPtr,System.String)"/>. The other process must
make its own call to <b>LoadLibrary</b> for the module before calling
<see cref="M:Tao.Platform.Windows.Kernel.GetProcAddress(System.IntPtr,System.String)"/>.
</para>
<para>
If no file name extension is specified in the <i>fileName</i> parameter, the
default library extension .dll is appended. However, the file name string
can include a trailing point character (.) to indicate that the module name
has no extension. When no path is specified, the function searches for loaded
modules whose base name matches the base name of the module to be loaded. If
the name matches, the load succeeds. Otherwise, the function searches for the
file in the following sequence:
</para>
<para>
<list type="number">
<item>
<description>
The directory from which the application loaded.
</description>
</item>
<item>
<description>
The current directory.
</description>
</item>
<item>
<description>
The system directory. Use the <see cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/>
function to get the path of this directory.
</description>
</item>
<item>
<description>
<para>
The 16-bit system directory. There is no function that
obtains the path of this directory, but it is searched.
</para>
<para>
<b>Windows Me/98/95:</b> This directory does not exist.
</para>
</description>
</item>
<item>
<description>
The Windows directory. Use the <see cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
function to get the path of this directory.
</description>
</item>
<item>
<description>
The directories that are listed in the PATH environment variable.
</description>
</item>
</list>
</para>
<para>
<b>Windows Server 2003, Windows XP SP1:</b> The default value of
HKLM\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode is 1
(current directory is searched after the system and Windows directories).
</para>
<para>
<b>Windows XP:</b> If
HKLM\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode is 1,
the current directory is searched after the system and Windows directories,
but before the directories in the PATH environment variable. The default
value is 0 (current directory is searched before the system and Windows
directories).
</para>
<para>
The first directory searched is the one directory containing the image file
used to create the calling process (for more information, see the
<b>CreateProcess</b> function). Doing this allows private dynamic-link
library (DLL) files associated with a process to be found without adding the
process's installed directory to the PATH environment variable.
</para>
<para>
The search path can be altered using the <see cref="M:Tao.Platform.Windows.Kernel.SetDllDirectory(System.String)"/>
function. This solution is recommended instead of using
<b>SetCurrentDirectory</b> or hard-coding the full path to the DLL.
</para>
<para>
If a path is specified and there is a redirection file for the application,
the function searches for the module in the application's directory. If the
module exists in the application's directory, the <b>LoadLibrary</b> function
ignores the specified path and loads the module from the application's
directory. If the module does not exist in the application's directory,
<b>LoadLibrary</b> loads the module from the specified directory.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.FreeLibrary(System.IntPtr)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetProcAddress(System.IntPtr,System.String)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.SetDllDirectory(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)">
<summary>
The <b>QueryPerformanceCounter</b> function retrieves the current value of the
high-resolution performance counter.
</summary>
<param name="performanceCount">
Pointer to a variable that receives the current performance-counter value, in
counts.
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
On a multiprocessor machine, it should not matter which processor is called.
However, you can get different results on different processors due to bugs in the
BIOS or the HAL. To specify processor affinity for a thread, use the
<b>SetThreadAffinityMask</b> function.
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounterFast(System.Int64@)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceFrequency(System.Int64@)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounterFast(System.Int64@)">
<summary>
The <b>QueryPerformanceCounterFast</b> function retrieves the current value of the
high-resolution performance counter.
</summary>
<param name="performanceCount">
Pointer to a variable that receives the current performance-counter value, in
counts.
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false.
</para>
</returns>
<remarks>
<para>
This version of <see cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)"/> is slightly faster. It
does not set the last Windows error. Use with care.
</para>
<para>
On a multiprocessor machine, it should not matter which processor is called.
However, you can get different results on different processors due to bugs in
the BIOS or the HAL. To specify processor affinity for a thread, use the
<b>SetThreadAffinityMask</b> function.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceFrequency(System.Int64@)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.QueryPerformanceFrequency(System.Int64@)">
<summary>
The <b>QueryPerformanceFrequency</b> function retrieves the frequency of the
high-resolution performance counter, if one exists. The frequency cannot change
while the system is running.
</summary>
<param name="frequency">
Pointer to a variable that receives the current performance-counter frequency, in
counts per second. If the installed hardware does not support a high-resolution
performance counter, this parameter can be zero.
</param>
<returns>
<para>
If the installed hardware supports a high-resolution performance counter, the
return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>. For example, if
the installed hardware does not support a high-resolution performance counter,
the function fails.
</para>
</returns>
<remarks>
<b>Note</b> The frequency of the high-resolution performance counter is not the
processor speed.
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.SetDllDirectory(System.String)">
<summary>
The <b>SetDllDirectory</b> function modifies the search path used to locate DLLs
for the application.
</summary>
<param name="pathName">
Pointer to a null-terminated string that specifies the directories to be added to
the search path, separated by semicolons. If this parameter is NULL, the default
search path is used.
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The <b>SetDllDirectory</b> function affects all subsequent calls to the
<see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/> and <b>LoadLibraryEx</b> functions. After calling
<b>SetDllDirectory</b>, the DLL search path is:
</para>
<para>
<list type="number">
<item>
<description>
The directory from which the application loaded.
</description>
</item>
<item>
<description>
The directory specified by the <i>pathName</i> parameter.
</description>
</item>
<item>
<description>
The system directory. Use the <see cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/>
function to get the path of this directory. The name of this
directory is System32.
</description>
</item>
<item>
<description>
The 16-bit system directory. There is no function that obtains
the path of this directory, but it is searched. The name of this
directory is System.
</description>
</item>
<item>
<description>
The Windows directory. Use the <see cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
function to get the path of this directory.
</description>
</item>
<item>
<description>
The directories that are listed in the PATH environment variable.
</description>
</item>
</list>
</para>
<para>
To revert to the default search path used by <see cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/> and
<b>LoadLibraryEx</b>, call <b>SetDllDirectory</b> with NULL.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetDllDirectory(System.Int32,System.Text.StringBuilder)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetSystemDirectory(System.Text.StringBuilder,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetWindowsDirectory(System.Text.StringBuilder,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.LoadLibrary(System.String)"/>
</member>
<member name="M:Tao.Platform.Windows.Kernel.SetProcessWorkingSetSize(System.IntPtr,System.Int32,System.Int32)">
<summary>
The <b>SetProcessWorkingSetSize</b> function sets the minimum and maximum working
set sizes for the specified process.
</summary>
<param name="process">
<para>
Handle to the process whose working set sizes is to be set.
</para>
<para>
The handle must have the PROCESS_SET_QUOTA access right.
</para>
</param>
<param name="minimumWorkingSetSize">
<para>
Minimum working set size for the process, in bytes. The virtual memory
manager attempts to keep at least this much memory resident in the
process whenever the process is active.
</para>
<para>
If both <i>minimumWorkingSetSize</i> and <i>maximumWorkingSetSize</i> have the
value -1, the function temporarily trims the working set of the specified
process to zero. This essentially swaps the process out of physical RAM
memory.
</para>
</param>
<param name="maximumWorkingSetSize">
<para>
Maximum working set size for the process, in bytes. The virtual memory
manager attempts to keep no more than this much memory resident in the
process whenever the process is active and memory is in short supply.
</para>
<para>
If both <i>minimumWorkingSetSize</i> and <i>maximumWorkingSetSize</i> have the
value -1, the function temporarily trims the working set of the specified
process to zero. This essentially swaps the process out of physical RAM
memory.
</para>
</param>
<returns>
<para>
If the function succeeds, the return value is true.
</para>
<para>
If the function fails, the return value is false. To get extended error
information, call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The working set of a process is the set of memory pages currently visible to
the process in physical RAM memory. These pages are resident and available
for an application to use without triggering a page fault. The minimum and
maximum working set sizes affect the virtual memory paging behavior of a
process.
</para>
<para>
The working set of the specified process can be emptied by specifying the
value -1 for both the minimum and maximum working set sizes.
</para>
<para>
If the values of either <i>minimumWorkingSetSize</i> or
<i>maximumWorkingSetSize</i> are greater than the process' current working
set sizes, the specified process must have the SE_INC_BASE_PRIORITY_NAME
privilege. Users in the Administrators and Power Users groups generally
have this privilege.
</para>
<para>
The operating system allocates working set sizes on a first-come,
first-served basis. For example, if an application successfully sets 40
megabytes as its minimum working set size on a 64-megabyte system, and a
second application requests a 40-megabyte working set size, the operating
system denies the second application's request.
</para>
<para>
Using the <b>SetProcessWorkingSetSize</b> function to set an application's
minimum and maximum working set sizes does not guarantee that the requested
memory will be reserved, or that it will remain resident at all times. When
the application is idle, or a low-memory situation causes a demand for memory,
the operating system can reduce the application's working set. An application
can use the <b>VirtualLock</b> function to lock ranges of the application's
virtual address space in memory; however, that can potentially degrade the
performance of the system.
</para>
<para>
When you increase the working set size of an application, you are taking away
physical memory from the rest of the system. This can degrade the performance
of other applications and the system as a whole. It can also lead to failures
of operations that require physical memory to be present; for example,
creating processes, threads, and kernel pool. Thus, you must use the
<b>SetProcessWorkingSetSize</b> function carefully. You must always consider
the performance of the whole system when you are designing an application.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetProcessWorkingSetSize(System.IntPtr,System.Int32@,System.Int32@)"/>
</member>
<member name="T:Tao.Platform.Windows.Kernel.MEMORYSTATUS">
<summary>
<para>
The <b>MEMORYSTATUS</b> structure contains information about the current state
of both physical and virtual memory.
</para>
<para>
The <see cref="M:Tao.Platform.Windows.Kernel.GlobalMemoryStatus(Tao.Platform.Windows.Kernel.MEMORYSTATUS@)"/> function stores information in a
<b>MEMORYSTATUS</b> structure.
</para>
</summary>
<remarks>
<para>
<b>MEMORYSTATUS</b> reflects the state of memory at the time of the call. It
reflects the size of the paging file at that time. The operating system can
enlarge the paging file up to the maximum size set by the administrator.
</para>
<para>
On computers with more than 4 GB of memory, the <b>MEMORYSTATUS</b> structure
can return incorrect information. Windows reports a value of -1 to indicate
an overflow, while Windows NT reports a value that is the real amount of
memory, modulo 4 GB. If your application is at risk for this behavior, use
the <b>GlobalMemoryStatusEx</b> function instead of the
<see cref="M:Tao.Platform.Windows.Kernel.GlobalMemoryStatus(Tao.Platform.Windows.Kernel.MEMORYSTATUS@)"/> function.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.GlobalMemoryStatus(Tao.Platform.Windows.Kernel.MEMORYSTATUS@)"/>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.Length">
<summary>
Size of the <b>MEMORYSTATUS</b> data structure, in bytes. You do not need to
set this member before calling the <see cref="M:Tao.Platform.Windows.Kernel.GlobalMemoryStatus(Tao.Platform.Windows.Kernel.MEMORYSTATUS@)"/> function;
the function sets it.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.MemoryLoad">
<summary>
<para>
Approximate percentage of total physical memory that is in use.
</para>
<para>
<b>Windows NT:</b> Percentage of approximately the last 1000 pages of
physical memory that is in use.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.TotalPhys">
<summary>
Total size of physical memory, in bytes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.AvailPhys">
<summary>
Size of physical memory available, in bytes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.TotalPageFile">
<summary>
Size of the committed memory limit, in bytes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.AvailPageFile">
<summary>
Size of available memory to commit, in bytes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.TotalVirtual">
<summary>
Total size of the user mode portion of the virtual address space of the
calling process, in bytes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.MEMORYSTATUS.AvailVirtual">
<summary>
Size of unreserved and uncommitted memory in the user mode portion of the
virtual address space of the calling process, in bytes.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO">
<summary>
The <b>SYSTEM_INFO</b> structure contains information about the current computer
system. This includes the architecture and type of the processor, the number of
processors in the system, the page size, and other such information.
</summary>
<seealso cref="M:Tao.Platform.Windows.Kernel.GetSystemInfo(Tao.Platform.Windows.Kernel.SYSTEM_INFO@)"/>
<seealso cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION"/>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.SystemInfoUnion">
<summary>
Union for the OemId, ProcessorArchitecture, and Reserved fields of the
SYSTEM_INFO structure. See <see cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION"/>.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.PageSize">
<summary>
Page size and the granularity of page protection and commitment. This is the
page size used by the <b>VirtualAlloc</b> function.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.MinimumApplicationAddress">
<summary>
Pointer to the lowest memory address accessible to applications and
dynamic-link libraries (DLLs).
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.MaximumApplicationAddress">
<summary>
Pointer to the highest memory address accessible to applications and DLLs.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.ActiveProcessorMask">
<summary>
Mask representing the set of processors configured into the system. Bit 0 is
processor 0; bit 31 is processor 31.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.NumberOfProcessors">
<summary>
Number of processors in the system.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.ProcessorType">
<summary>
<para>
An obsolete member that is retained for compatibility with Windows NT 3.5
and earlier. Use the <i>SystemInfoUnion.ProcessorArchitecture</i>,
<i>ProcessorLevel</i>, and <i>ProcessorRevision</i> members to determine
the type of processor.
</para>
<para>
<b>Windows Me/98/95:</b> Specifies the type of processor in the system.
This member is one of the following values:
</para>
<para>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_386"/>
</para>
<para>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_486"/>
</para>
<para>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_INTEL_PENTIUM"/>
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.AllocationGranularity">
<summary>
Granularity with which virtual memory is allocated. For example, a
<b>VirtualAlloc</b> request to allocate 1 byte will reserve an address space
of <i>AllocationGranularity</i> bytes. This value was hard coded as 64K in
the past, but other hardware architectures may require different values.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.ProcessorLevel">
<summary>
<para>
System's architecture-dependent processor level. It should be used only
for display purposes. To determine the feature set of a processor, use
the <see cref="M:Tao.Platform.Windows.Kernel.IsProcessorFeaturePresent(System.Int32)"/> function.
</para>
<para>
If <i>SystemInfoUnion.ProcessorArchitecture</i> is
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_INTEL"/>, <i>ProcessorLevel</i>
is defined by the CPU vendor.
</para>
<para>
If <i>SystemInfoUnion.ProcessorArchitecture</i> is
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_IA64"/>, <i>ProcessorLevel</i> is
set to 1.
</para>
<para>
If <i>SystemInfoUnion.ProcessorArchitecture</i> is
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_MIPS"/>, <i>ProcessorLevel</i> is
of the form 00xx, where xx is an 8-bit implementation number (bits 8-15 of
the PRId register). The member can be the following value:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>0004</term>
<description>MIPS R4000</description>
</item>
</list>
</para>
<para>
If <i>SystemInfoUnion.ProcessorArchitecture</i> is
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_ALPHA"/>, <i>ProcessorLevel</i>
is of the form xxxx, where xxxx is a 16-bit processor version number (the
low-order 16 bits of a version number from the firmware). The member can
be one of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>21064</term>
<description>Alpha 21064</description>
</item>
<item>
<term>21066</term>
<description>Alpha 21066</description>
</item>
<item>
<term>21164</term>
<description>Alpha 21164</description>
</item>
</list>
</para>
<para>
If <i>SystemInfoUnion.ProcessorArchitecture</i> is
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_PPC"/>, <i>ProcessorLevel</i> is
of the form xxxx, where xxxx is a 16-bit processor version number (the
high-order 16 bits of the Processor Version Register). The member can be
one of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>1</term>
<description>PPC 601</description>
</item>
<item>
<term>3</term>
<description>PPC 603</description>
</item>
<item>
<term>4</term>
<description>PPC 604</description>
</item>
<item>
<term>6</term>
<description>PPC 603+</description>
</item>
<item>
<term>9</term>
<description>PPC 604+</description>
</item>
<item>
<term>20</term>
<description>PPC 620</description>
</item>
</list>
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO.ProcessorRevision">
<summary>
<para>
Architecture-dependent processor revision. The following table shows how
the revision value is assembled for each type of processor architecture:
</para>
<para>
<list type="table">
<listheader>
<term>Processor</term>
<description>Description</description>
</listheader>
<item>
<term>Intel 80386 or 80486</term>
<description>
<para>
A value of the form xxyz.
</para>
<para>
If xx is equal to 0xFF, y - 0xA is the model number, and
z is the stepping identifier. For example, an Intel
80486-D0 system returns 0xFFD0.
</para>
<para>
If xx is not equal to 0xFF, xx + 'A' is the stepping
letter and yz is the minor stepping.
</para>
</description>
</item>
<item>
<term>Intel Pentium, Cyrix, or NextGen 586</term>
<description>
<para>
A value of the form xxyy, where xx is the model number and
yy is the stepping. Display this value of 0x0201 as
follows:
</para>
<para>
Model xx, Stepping yy.
</para>
</description>
</item>
<item>
<term>MIPS</term>
<description>
A value of the form 00xx, where xx is the 8-bit revision
number of the processor (the low-order 8 bits of the
PRId register).
</description>
</item>
<item>
<term>ALPHA</term>
<description>
<para>
A value of the form xxyy, where xxyy is the low-order 16
bits of the processor revision number from the firmware.
Display this value as follows:
</para>
<para>
Model A+xx, Pass yy.
</para>
</description>
</item>
<item>
<term>PPC</term>
<description>
<para>
A value of the form xxyy, where xxyy is the low-order 16
bits of the processor version register. Display this
value as follows:
</para>
<para>
xx.yy.
</para>
</description>
</item>
</list>
</para>
</summary>
</member>
<member name="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION">
<summary>
Union for the OemId, ProcessorArchitecture, and Reserved fields of the
<see cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO"/> structure.
</summary>
<seealso cref="T:Tao.Platform.Windows.Kernel.SYSTEM_INFO"/>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION.OemId">
<summary>
<para>
An obsolete member that is retained for compatibility with Windows NT 3.5
and earlier. New applications should use the <i>ProcessorArchitecture</i>
branch of the union.
</para>
<para>
<b>Windows Me/98/95:</b> The system always sets this member to zero, the
value defined for <see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_INTEL"/>.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION.ProcessorArchitecture">
<summary>
<para>
System's processor architecture. This value can be one of the following
values:
</para>
<para>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_UNKNOWN"/>
</para>
<para>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_INTEL"/>
</para>
<para>
<b>Windows NT 3.51:</b> <see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_MIPS"/>
</para>
<para>
<b>Windows NT 4.0 and earlier:</b>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_ALPHA"/>
</para>
<para>
<b>Windows NT 4.0 and earlier:</b>
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_PPC"/>
</para>
<para>
<b>64-bit Windows:</b> <see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_IA64"/>,
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_IA32_ON_WIN64"/>,
<see cref="F:Tao.Platform.Windows.WinNt.PROCESSOR_ARCHITECTURE_AMD64"/>
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Kernel.SYSTEM_INFO_UNION.Reserved">
<summary>
Reserved for future use.
</summary>
</member>
<member name="T:Tao.Platform.Windows.IlasmAttribute">
<summary>
Injects supplied MSIL into the method's body.
</summary>
<remarks>
This is a hack as the C# compiler does not allow inline MSIL. This is extracted and
the appropriate MSIL injected by the PostProcessTao utility.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.IlasmAttribute.#ctor(System.String)">
<summary>
Injects the supplied MSIL into the tagged method's body.
</summary>
<param name="msil">
The MSIL to inject.
</param>
</member>
<member name="M:Tao.Platform.Windows.Wgl.GetDelegate(System.String,System.Type)">
<summary>
Creates a System.Delegate that can be used to call an OpenGL function, core or extension.
</summary>
<param name="name">The name of the OpenGL function (eg. "glNewList")</param>
<param name="signature">The signature of the OpenGL function.</param>
<returns>
A System.Delegate that can be used to call this OpenGL function, or null if the specified
function name did not correspond to an OpenGL function.
</returns>
</member>
<member name="M:Tao.Platform.Windows.Wgl.ReloadFunctions">
<summary>
Loads all OpenGL functions (core and extensions).
</summary>
<remarks>
<para>
This function will be automatically called the first time you use any opengl function. There is
</para>
<para>
Call this function manually whenever you need to update OpenGL entry points.
This need may arise if you change the pixelformat/visual, or in case you cannot
(or do not want) to use the automatic initialization of the GL class.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Wgl.Load(System.String)">
<summary>
Tries to reload the given OpenGL function (core or extension).
</summary>
<param name="function">The name of the OpenGL function (i.e. glShaderSource)</param>
<returns>True if the function was found and reloaded, false otherwise.</returns>
<remarks>
<para>
Use this function if you require greater granularity when loading OpenGL entry points.
</para>
<para>
While the automatic initialisation will load all OpenGL entry points, in some cases
the initialisation can take place before an OpenGL Context has been established.
In this case, use this function to load the entry points for the OpenGL functions
you will need, or use ReloadFunctions() to load all available entry points.
</para>
<para>
This function returns true if the given OpenGL function is supported, false otherwise.
</para>
<para>
To query for supported extensions use the IsExtensionSupported() function instead.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Wgl.GetExtensionDelegate(System.String,System.Type)">
<summary>
Creates a System.Delegate that can be used to call a dynamically exported OpenGL function.
</summary>
<param name="name">The name of the OpenGL function (eg. "glNewList")</param>
<param name="signature">The signature of the OpenGL function.</param>
<returns>
A System.Delegate that can be used to call this OpenGL function or null
if the function is not available in the current OpenGL context.
</returns>
</member>
<member name="M:Tao.Platform.Windows.Wgl.IsExtensionSupported(System.String)">
<summary>
Determines whether the specified OpenGL extension category is available in
the current OpenGL context. Equivalent to IsExtensionSupported(name, true)
</summary>
<param name="name">The string for the OpenGL extension category (eg. "GL_ARB_multitexture")</param>
<returns>True if the specified extension is available, false otherwise.</returns>
</member>
<member name="T:Tao.Platform.Windows.Wgl.Imports">
<summary>
Contains DllImports for the core OpenGL functions.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Wgl.Imports.FunctionMap">
<summary>
Build a string->MethodInfo map to speed up extension loading.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Winmm">
<summary>
Windows Multimedia binding for .NET, implementing Windows-specific multimedia
functionality.
</summary>
<remarks>
Binds functions and definitions in winmm.dll.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.WINMM_NATIVE_LIBRARY">
<summary>
Specifies Winmm's native library archive.
</summary>
<remarks>
Specifies winmm.dll for Windows.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.CALLING_CONVENTION">
<summary>
Specifies the calling convention.
</summary>
<remarks>
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall"/>.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_SYNC">
<summary>
Synchronous playback of a sound event. <b>PlaySound</b> returns after the sound
event completes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_ASYNC">
<summary>
The sound is played asynchronously and <b>PlaySound</b> returns immediately after
beginning the sound. To terminate an asynchronously played waveform sound, call
<b>PlaySound</b> with <i>sound</i> set to NULL.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_NODEFAULT">
<summary>
No default sound event is used. If the sound cannot be found, <b>PlaySound</b>
returns silently without playing the default sound.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_MEMORY">
<summary>
A sound event's file is loaded in RAM. The parameter specified by <i>sound</i>
must point to an image of a sound in memory.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_LOOP">
<summary>
The sound plays repeatedly until <b>PlaySound</b> is called again with the
<i>sound</i> parameter set to NULL. You must also specify the
<see cref="F:Tao.Platform.Windows.Winmm.SND_ASYNC"/> flag to indicate an asynchronous sound event.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_NOSTOP">
<summary>
<para>
The specified sound event will yield to another sound event that is already
playing. If a sound cannot be played because the resource needed to
generate that sound is busy playing another sound, the function immediately
returns FALSE without playing the requested sound.
</para>
<para>
If this flag is not specified, <b>PlaySound</b> attempts to stop the currently
playing sound so that the device can be used to play the new sound.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_NOWAIT">
<summary>
If the driver is busy, return immediately without playing the sound.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_ALIAS">
<summary>
The <i>sound</i> parameter is a system-event alias in the registry or the WIN.INI
file. Do not use with either <see cref="F:Tao.Platform.Windows.Winmm.SND_FILENAME"/> or
<see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/>.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_ALIAS_ID">
<summary>
The <i>sound</i> parameter is a predefined sound identifier.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_FILENAME">
<summary>
The <i>sound</i> parameter is a filename.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_RESOURCE">
<summary>
The <i>sound</i> parameter is a resource identifier; <i>mod</i> must identify the
instance that contains the resource.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_PURGE">
<summary>
<para>
Sounds are to be stopped for the calling task. If <i>sound</i> is not
NULL, all instances of the specified sound are stopped. If <i>sound</i> is
NULL, all sounds that are playing on behalf of the calling task are stopped.
</para>
<para>
You must also specify the instance handle to stop <see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/>
events.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.SND_APPLICATION">
<summary>
The sound is played using an application-specific association.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.TIMERR_BASE">
<summary>
Timer base identifier.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.TIMERR_NOERROR">
<summary>
Successful.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.TIMERR_NOCANDO">
<summary>
Resolution specified is out of range.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_BUTTON1">
<summary>
First joystick button is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_BUTTON2">
<summary>
Second joystick button is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_BUTTON3">
<summary>
Third joystick button is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_BUTTON4">
<summary>
Four joystick button is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASZ">
<summary>
Joystick has z-coordinate information.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASR">
<summary>
Joystick has rudder (fourth axis) information.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASU">
<summary>
Joystick has u-coordinate (fifth axis) information.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASV">
<summary>
Joystick has v-coordinate (sixth axis) information.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASPOV">
<summary>
Joystick has point-of-view information.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_POV4DIR">
<summary>
Joystick point-of-view supports discrete values (centered, forward, backward, left, and right).
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS_POVCTS">
<summary>
Joystick point-of-view supports continuous degree bearings.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNX">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNZ">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNR">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNU">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNV">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNPOV">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNBUTTONS">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNRAWDATA">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNPOVCTS">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNCENTERED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_USEDEADZONE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_RETURNALL">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READALWAYS">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READXYONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ3">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ4">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READXONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READYONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ5">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ6">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READZONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READRONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READUONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_CAL_READVONLY">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_POVCENTERED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_POVFORWARD">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_POVRIGHT">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_POVBACKWARD">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOY_POVLEFT">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_BASE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_NOERROR">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_ERROR">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_BADDEVICEID">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_NOTENABLED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_ALLOCATED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALHANDLE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_NOMEM">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_NOTSUPPORTED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_BADERRNUM">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALFLAG">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MMSYSERR_LASTERROR">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYERR_NOERROR">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYERR_PARMS">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYERR_NOCANDO">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYERR_UNPLUGGED">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYSTICKID1">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYSTICKID2">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MM_JOY1MOVE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MM_JOY2MOVE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MM_JOY1ZMOVE">
<summary></summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.MM_JOY2ZMOVE">
<summary></summary>
</member>
<member name="M:Tao.Platform.Windows.Winmm.PlaySound(System.String,System.IntPtr,System.Int32)">
<summary>
The <b>PlaySound</b> function plays a sound specified by the given filename,
resource, or system event. (A system event may be associated with a sound in the
registry or in the WIN.INI file.)
</summary>
<param name="sound">
<para>
A string that specifies the sound to play. If this parameter is NULL, any
currently playing waveform sound is stopped. To stop a non-waveform sound,
specify <see cref="F:Tao.Platform.Windows.Winmm.SND_PURGE"/> in the <i>soundFlags</i> parameter.
</para>
<para>
Three flags in <i>soundFlags</i> (<see cref="F:Tao.Platform.Windows.Winmm.SND_ALIAS"/>,
<see cref="F:Tao.Platform.Windows.Winmm.SND_FILENAME"/>, and <see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/>) determine
whether the name is interpreted as an alias for a system event, a filename, or
a resource identifier. If none of these flags are specified, <b>PlaySound</b>
searches the registry or the WIN.INI file for an association with the
specified sound name. If an association is found, the sound event is played.
If no association is found in the registry, the name is interpreted as a
filename.
</para>
</param>
<param name="mod">
Handle to the executable file that contains the resource to be loaded. This
parameter must be NULL unless <see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/> is specified in
<i>soundFlags</i>.
</param>
<param name="soundFlags">
<para>
Flags for playing the sound. The following values are defined:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_APPLICATION"/></term>
<description>
The sound is played using an application-specific association.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_ALIAS"/></term>
<description>
The <i>sound</i> parameter is a system-event alias in the registry
or the WIN.INI file. Do not use with either
<see cref="F:Tao.Platform.Windows.Winmm.SND_FILENAME"/> or <see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/>.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_ALIAS_ID"/></term>
<description>
The <i>sound</i> parameter is a predefined sound identifier.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_ASYNC"/></term>
<description>
The sound is played asynchronously and <b>PlaySound</b> returns
immediately after beginning the sound. To terminate an
asynchronously played waveform sound, call <b>PlaySound</b> with
<i>sound</i> set to NULL.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_FILENAME"/></term>
<description>
The <i>sound</i> parameter is a filename.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_LOOP"/></term>
<description>
The sound plays repeatedly until <b>PlaySound</b> is called again
with the <i>sound</i> parameter set to NULL. You must also
specify the <see cref="F:Tao.Platform.Windows.Winmm.SND_ASYNC"/> flag to indicate an
asynchronous sound event.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_MEMORY"/></term>
<description>
A sound event's file is loaded in RAM. The parameter specified by
<i>sound</i> must point to an image of a sound in memory.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_NODEFAULT"/></term>
<description>
No default sound event is used. If the sound cannot be found,
<b>PlaySound</b> returns silently without playing the default
sound.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_NOSTOP"/></term>
<description>
<para>
The specified sound event will yield to another sound event
that is already playing. If a sound cannot be played because
the resource needed to generate that sound is busy playing
another sound, the function immediately returns FALSE without
playing the requested sound.
</para>
<para>
If this flag is not specified, <b>PlaySound</b> attempts to
stop the currently playing sound so that the device can be
used to play the new sound.
</para>
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_NOWAIT"/></term>
<description>
If the driver is busy, return immediately without playing the
sound.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_PURGE"/></term>
<description>
<para>
Sounds are to be stopped for the calling task. If
<i>sound</i> is not NULL, all instances of the specified sound
are stopped. If <i>sound</i> is NULL, all sounds that are
playing on behalf of the calling task are stopped.
</para>
<para>
You must also specify the instance handle to stop
<see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/> events.
</para>
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_RESOURCE"/></term>
<description>
The <i>sound</i> parameter is a resource identifier; <i>mod</i>
must identify the instance that contains the resource.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Winmm.SND_SYNC"/></term>
<description>
Synchronous playback of a sound event. <b>PlaySound</b> returns
after the sound event completes.
</description>
</item>
</list>
</para>
</param>
<returns>
Returns TRUE if successful or FALSE otherwise.
</returns>
<remarks>
<para>
The sound specified by <i>sound</i> must fit into available physical memory
and be playable by an installed waveform-audio device driver.
<b>PlaySound</b> searches the following directories for sound files: the
current directory; the Windows directory; the Windows system directory;
directories listed in the PATH environment variable; and the list of
directories mapped in a network. For more information about the directory
search order, see the documentation for the <b>OpenFile</b> function.
</para>
<para>
If it cannot find the specified sound, <b>PlaySound</b> uses the default
system event sound entry instead. If the function can find neither the
system default entry nor the default sound, it makes no sound and returns
FALSE.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)">
<summary>
The <b>timeBeginPeriod</b> function sets the minimum timer resolution for an
application or device driver.
</summary>
<param name="period">
Minimum timer resolution, in milliseconds, for the application or device driver.
</param>
<returns>
Returns <see cref="F:Tao.Platform.Windows.Winmm.TIMERR_NOERROR"/> if successful or
<see cref="F:Tao.Platform.Windows.Winmm.TIMERR_NOCANDO"/> if the resolution specified in <i>period</i> is out
of range.
</returns>
<remarks>
<para>
Call this function immediately before using timer services, and call the
<see cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/> function immediately after you are finished
using the timer services.
</para>
<para>
You must match each call to <b>timeBeginPeriod</b> with a call to
<see cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>, specifying the same minimum resolution in both
calls. An application can make multiple <b>timeBeginPeriod</b> calls as long
as each call is matched with a call to <see cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)">
<summary>
The <b>timeEndPeriod</b> function clears a previously set minimum timer
resolution.
</summary>
<param name="period">
Minimum timer resolution specified in the previous call to the
<see cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/> function.
</param>
<returns>
Returns <see cref="F:Tao.Platform.Windows.Winmm.TIMERR_NOERROR"/> if successful or
<see cref="F:Tao.Platform.Windows.Winmm.TIMERR_NOCANDO"/> if the resolution specified in <i>period</i> is out
of range
</returns>
<remarks>
<para>
Call this function immediately after you are finished using timer services.
</para>
<para>
You must match each call to <see cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/> with a call to
<b>timeEndPeriod</b>, specifying the same minimum resolution in both calls.
An application can make multiple <see cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/> calls as long
as each call is matched with a call to <b>timeEndPeriod</b>.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Winmm.timeGetTime">
<summary>
The <b>timeGetTime</b> function retrieves the system time, in milliseconds.
The system time is the time elapsed since Windows was started.
</summary>
<returns>
Returns the system time, in milliseconds.
</returns>
<remarks>
<para>
The only difference between this function and the <b>timeGetSystemTime</b>
function is that <b>timeGetSystemTime</b> uses the <b>MMTIME</b> structure to
return the system time. The <b>timeGetTime</b> function has less overhead
than <b>timeGetSystemTime</b>.
</para>
<para>
Note that the value returned by the <b>timeGetTime</b> function is a DWORD
value. The return value wraps around to 0 every 2^32 milliseconds, which is
about 49.71 days. This can cause problems in code that directly uses the
<b>timeGetTime</b> return value in computations, particularly where the value
is used to control code execution. You should always use the difference
between two <b>timeGetTime</b> return values in computations.
</para>
<para>
<b>Windows NT/2000:</b> The default precision of the <b>timeGetTime</b>
function can be five milliseconds or more, depending on the machine. You
can use the <see cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/> and <see cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>
functions to increase the precision of <b>timeGetTime</b>. If you do so, the
minimum difference between successive values returned by <b>timeGetTime</b>
can be as large as the minimum period value set using
<see cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/> and <see cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>. Use the
<see cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)"/> and
<see cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceFrequency(System.Int64@)"/> functions to measure short
time intervals at a high resolution.
</para>
<para>
<b>Windows 95:</b> The default precision of the <b>timeGetTime</b> function is
1 millisecond. In other words, the <b>timeGetTime</b> function can return
successive values that differ by just 1 millisecond. This is true no matter
what calls have been made to the <b>timeBeginPeriod</b> and
<b>timeEndPeriod</b> functions.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceCounter(System.Int64@)"/>
<seealso cref="M:Tao.Platform.Windows.Kernel.QueryPerformanceFrequency(System.Int64@)"/>
<seealso cref="M:Tao.Platform.Windows.Winmm.timeBeginPeriod(System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.Winmm.timeEndPeriod(System.Int32)"/>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyConfigChanged(System.Int64)">
<summary>
The joyConfigChanged function informs the joystick driver that the configuration has changed and should be reloaded from the registry.
</summary>
<param name="dwFlags">
Reserved for future use. Must equal zero.
</param>
<returns>
Returns JOYERR_NOERROR if successful. Returns JOYERR_PARMS if the parameter is non-zero.
</returns>
<remarks>
<para>
This function causes a window message to be sent to all top-level windows. This message may be defined by applications that need to respond to changes in joystick calibration by using RegisterWindowMessage with the following message ID:
</para>
<code>
#define JOY_CONFIGCHANGED_MSGSTRING "MSJSTICK_VJOYD_MSGSTR"
</code>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyGetDevCaps(System.IntPtr,Tao.Platform.Windows.Winmm.JOYCAPS@,System.Int32)">
<summary>
The joyGetDevCaps function queries a joystick to determine its capabilities.
</summary>
<param name="uJoyID">
Identifier of the joystick to be queried. Valid values for uJoyID range from -1 to 15. A value of -1 enables retrieval of the szRegKey member of the JOYCAPS structure whether a device is present or not. For Windows NT 4.0, valid values are limited to zero (JOYSTICKID1) and JOYSTICKID2.
</param>
<param name="pjc">
Pointer to a <see cref="T:Tao.Platform.Windows.Winmm.JOYCAPS"/> structure to contain the capabilities of the joystick.
</param>
<param name="cbjc">
Size, in bytes, of the JOYCAPS structure.
</param>
<returns>
<para>
Returns JOYERR_NOERROR if successful or one of the following error values:
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present. Windows NT/2000/XP: The specified joystick identifier is invalid.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - An invalid parameter was passed. Windows 95/98/Me: The specified joystick identifier is invalid.
</para>
</returns>
<remarks>
<para>
Use the <see cref="M:Tao.Platform.Windows.Winmm.joyGetNumDevs"/> function to determine the number of joystick devices supported by the driver.
</para>
<para>
Windows NT/2000/XP: This method fails when passed an invalid value for the cbjc parameter.
Windows 95/98/Me: This method succeeds when passed an invalid value for the cbjc parameter.
</para>
</remarks>
<seealso cref="T:Tao.Platform.Windows.Winmm.JOYCAPS"/>
<seealso cref="M:Tao.Platform.Windows.Winmm.joyGetNumDevs"/>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyGetNumDevs">
<summary>
The joyGetNumDevs function queries the joystick driver for the number of joysticks it supports.
</summary>
<returns>
The joyGetNumDevs function returns the number of joysticks supported by the current driver or zero if no driver is installed.
</returns>
<remarks>
<para>
Use the <see cref="M:Tao.Platform.Windows.Winmm.joyGetPos(System.Int32,Tao.Platform.Windows.Winmm.JOYINFO@)"/> function to determine whether a given joystick is physically attached to the system. If the specified joystick is not connected, joyGetPos returns a <see cref="F:Tao.Platform.Windows.Winmm.JOYERR_UNPLUGGED"/> error value.
</para>
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyGetPos(System.Int32,Tao.Platform.Windows.Winmm.JOYINFO@)">
<summary>
The joyGetPos function queries a joystick for its position and button status.
</summary>
<param name="uJoyID">
Identifier of the joystick to be queried. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<param name="pji">
Pointer to a <see cref="T:Tao.Platform.Windows.Winmm.JOYINFO"/> structure that contains the position and button status of the joystick.
</param>
<returns>
Returns <see cref="F:Tao.Platform.Windows.Winmm.JOYERR_NOERROR"/> if successful or one of the following error values.
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - An invalid parameter was passed.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_UNPLUGGED"/> - The specified joystick is not connected to the system.
</para>
</returns>
<remarks>
For devices that have four to six axes of movement, a point-of-view control, or more than four buttons, use the <see cref="M:Tao.Platform.Windows.Winmm.joyGetPosEx(System.Int32,Tao.Platform.Windows.Winmm.JOYINFOEX@)"/> function.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyGetPosEx(System.Int32,Tao.Platform.Windows.Winmm.JOYINFOEX@)">
<summary>
The joyGetPosEx function queries a joystick for its position and button status.
</summary>
<param name="uJoyID">
Identifier of the joystick to be queried. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<param name="pji">
Pointer to a <see cref="T:Tao.Platform.Windows.Winmm.JOYINFOEX"/> structure that contains extended position information and button status of the joystick. You must set the dwSize and dwFlags members or joyGetPosEx will fail. The information returned from joyGetPosEx depends on the flags you specify in dwFlags.
</param>
<returns>
Returns JOYERR_NOERROR if successful or one of the following error values.
<para>
Returns JOYERR_NOERROR if successful or one of the following error values.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - An invalid parameter was passed. Windows 95/98/Me: The specified joystick identifier is invalid.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_BADDEVICEID"/> - Windows 95/98/Me: The specified joystick identifier is invalid.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_UNPLUGGED"/> - The specified joystick is not connected to the system.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_PARMS"/> - Windows NT/2000/XP: The specified joystick identifier is invalid.
</para>
</returns>
<remarks>
This function provides access to extended devices such as rudder pedals, point-of-view hats, devices with a large number of buttons, and coordinate systems using up to six axes. For joystick devices that use three axes or fewer and have fewer than four buttons, use the joyGetPos function.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyGetThreshold(System.Int32,System.IntPtr)">
<summary>
The joyGetThreshold function queries a joystick for its current movement threshold.
</summary>
<param name="uJoyID">
Identifier of the joystick. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<param name="puThreshold">
Pointer to a variable that contains the movement threshold value.
</param>
<returns>
<para>
Returns JOYERR_NOERROR if successful or one of the following error values.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - An invalid parameter was passed.
</para>
</returns>
<remarks>
The movement threshold is the distance the joystick must be moved before a joystick position-change message (<see cref="F:Tao.Platform.Windows.Winmm.MM_JOY1MOVE"/>, <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY1ZMOVE"/>, <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY2MOVE"/>, or <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY2ZMOVE"/>) is sent to a window that has captured the device. The threshold is initially zero.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joyReleaseCapture(System.Int32)">
<summary>
The joyReleaseCapture function releases the specified captured joystick.
</summary>
<param name="uJoyID">
Identifier of the joystick. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<returns>
<para>
Returns <see cref="F:Tao.Platform.Windows.Winmm.JOYERR_NOERROR"/> if successful or one of the following error values.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - Windows 95/98/Me: The specified joystick device identifier uJoyID is invalid. Windows NT/2000/XP: The specified joystick identifier is valid, but the joystick has not been captured.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_PARMS"/> - Windows NT/2000/XP: The specified joystick device identifier uJoyID is invalid.
</para>
</returns>
<remarks>
Windows 95/98/Me: This method returns JOYERR_NOERROR when passed a valid joystick identifier that has not been captured.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joySetCapture(System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
The joySetCature function captures a joystick by causing its messages to be sent to the specified window.
</summary>
<param name="hwnd">
Handle to the window to receive the joystick messages.
</param>
<param name="uJoyID">
Identifier of the joystick. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<param name="uPeriod">
Polling frequency, in milliseconds.
</param>
<param name="fChanged">
Change position flag. Specify TRUE for this parameter to send messages only when the position changes by a value greater than the joystick movement threshold. Otherwise, messages are sent at the polling frequency specified in uPeriod.
</param>
<returns>
<para>
Returns JOYERR_NOERROR if successful or one of the following error values.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_INVALPARAM"/> - Windows 95/98/Me: Invalid joystick ID or hwnd is NULL.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_NOCANDO"/> - Cannot capture joystick input because a required service (such as a Windows timer) is unavailable.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_UNPLUGGED"/> - The specified joystick is not connected to the system.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_PARMS"/> - Windows NT/2000/XP: Invalid joystick ID or hwnd is NULL.
</para>
</returns>
<remarks>
This function fails if the specified joystick is currently captured. Call the joyReleaseCapture function to release the captured joystick, or destroy the window to release the joystick automatically.
</remarks>
</member>
<member name="M:Tao.Platform.Windows.Winmm.joySetThreshold(System.Int32,System.Int32)">
<summary>
The joySetThreshold function sets the movement threshold of a joystick.
</summary>
<param name="uJoyID">
Identifier of the joystick. Valid values for uJoyID range from zero (<see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/>) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID1"/> and <see cref="F:Tao.Platform.Windows.Winmm.JOYSTICKID2"/>.
</param>
<param name="uThreshold">
New movement threshold.
</param>
<returns>
<para>
Returns JOYERR_NOERROR if successful or one of the following error values.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.MMSYSERR_NODRIVER"/> - The joystick driver is not present.
<see cref="F:Tao.Platform.Windows.Winmm.JOYERR_PARMS"/> - The specified joystick device identifier uJoyID is invalid.
</para>
</returns>
<remarks>
The movement threshold is the distance the joystick must be moved before a joystick position-change message (<see cref="F:Tao.Platform.Windows.Winmm.MM_JOY1MOVE"/>, <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY1ZMOVE"/>, <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY2MOVE"/>, or <see cref="F:Tao.Platform.Windows.Winmm.MM_JOY2ZMOVE"/>) is sent to a window that has captured the device. The threshold is initially zero.
</remarks>
</member>
<member name="T:Tao.Platform.Windows.Winmm.JOYCAPS">
<summary>
The JOYCAPS structure contains information about the joystick capabilities.
</summary>
<remarks>
<para>
<b>Requirements</b>
</para>
<para>
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Mmsystem.h; include Windows.h.
Unicode: Declared as Unicode and ANSI structures.
</para>
</remarks>
<seealso cref="T:Tao.Platform.Windows.Winmm.JOYINFO"/>
<seealso cref="T:Tao.Platform.Windows.Winmm.JOYINFOEX"/>
<seealso cref="M:Tao.Platform.Windows.Winmm.joySetCapture(System.Int32,System.Int32,System.Int32,System.Boolean)"/>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wMid">
<summary>
Manufacturer identifier. Manufacturer identifiers are defined in Manufacturer and Product Identifiers.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wPid">
<summary>
Product identifier. Product identifiers are defined in Manufacturer and Product Identifiers.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.szPname">
<summary>
Null-terminated string containing the joystick product name.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wXmin">
<summary>
Minimum X-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wXmax">
<summary>
Maximum X-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wYmin">
<summary>
Minimum Y-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wYmax">
<summary>
Maximum Y-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wZmin">
<summary>
Minimum Z-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wZmax">
<summary>
Maximum Z-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wNumButtons">
<summary>
Number of joystick buttons.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wPeriodMin">
<summary>
Smallest polling frequency supported when captured by the <see cref="M:Tao.Platform.Windows.Winmm.joySetCapture(System.Int32,System.Int32,System.Int32,System.Boolean)"/> function.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wPeriodMax">
<summary>
Largest polling frequency supported when captured by <see cref="M:Tao.Platform.Windows.Winmm.joySetCapture(System.Int32,System.Int32,System.Int32,System.Boolean)"/>.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wRmin">
<summary>
Minimum rudder value. The rudder is a fourth axis of movement.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wRmax">
<summary>
Maximum rudder value. The rudder is a fourth axis of movement.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wUmin">
<summary>
Minimum u-coordinate (fifth axis) values.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wUmax">
<summary>
Maximum u-coordinate (fifth axis) values.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wVmin">
<summary>
Minimum v-coordinate (sixth axis) values.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wVmax">
<summary>
Maximum v-coordinate (sixth axis) values.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wCaps">
<summary>
Joystick capabilities The following flags define individual capabilities that a joystick might have:
</summary>
<remarks>
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASZ"/> - Joystick has z-coordinate information.
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASR"/> - Joystick has rudder (fourth axis) information.
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASU"/> - Joystick has u-coordinate (fifth axis) information.
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASV"/> - Joystick has v-coordinate (sixth axis) information.
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_HASPOV"/> - Joystick has point-of-view information.
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_POV4DIR"/> - Joystick point-of-view supports discrete values (centered, forward, backward, left, and right).
<see cref="F:Tao.Platform.Windows.Winmm.JOYCAPS_POVCTS"/> - Joystick point-of-view supports continuous degree bearings.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wMaxAxes">
<summary>
Maximum number of axes supported by the joystick.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wNumAxes">
<summary>
Number of axes currently in use by the joystick.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.wMaxButtons">
<summary>
Maximum number of buttons supported by the joystick.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.szRegKey">
<summary>
Null-terminated string containing the registry key for the joystick.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYCAPS.szOEMVxD">
<summary>
Null-terminated string identifying the joystick driver OEM.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Winmm.JOYINFO">
<summary>
The JOYINFO structure contains information about the joystick position and button state.
</summary>
<remarks>
<para>
<b>Requirements</b>
</para>
<para>
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Mmsystem.h; include Windows.h.
</para>
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFO.wXpos">
<summary>
Current X-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFO.wYpos">
<summary>
Current Y-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFO.wZpos">
<summary>
Current Z-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFO.wButtons">
<summary>
Current state of joystick buttons.
</summary>
<remarks>
<para>According to one or more of the following values:</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.JOY_BUTTON1"/> - First joystick button is pressed.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_BUTTON2"/> - Second joystick button is pressed.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_BUTTON3"/> - Third joystick button is pressed.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_BUTTON4"/> - Fourth joystick button is pressed.
</para>
</remarks>
</member>
<member name="T:Tao.Platform.Windows.Winmm.JOYINFOEX">
<summary>
The JOYINFOEX structure contains extended information about the joystick position, point-of-view position, and button state.
</summary>
<remarks>
<para>
The value of the dwSize member is also used to identify the version number for the structure when it's passed to the <see cref="M:Tao.Platform.Windows.Winmm.joyGetPosEx(System.Int32,Tao.Platform.Windows.Winmm.JOYINFOEX@)"/> function.
</para>
<para>
Most devices with a point-of-view control have only five positions. When the JOY_RETURNPOV flag is set, these positions are reported by using the following constants:
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.JOY_POVBACKWARD"/> - Point-of-view hat is pressed backward. The value 18,000 represents an orientation of 180.00 degrees (to the rear).
<see cref="F:Tao.Platform.Windows.Winmm.JOY_POVCENTERED"/> - Point-of-view hat is in the neutral position. The value -1 means the point-of-view hat has no angle to report.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_POVFORWARD"/> - Point-of-view hat is pressed forward. The value 0 represents an orientation of 0.00 degrees (straight ahead).
<see cref="F:Tao.Platform.Windows.Winmm.JOY_POVLEFT"/> - Point-of-view hat is being pressed to the left. The value 27,000 represents an orientation of 270.00 degrees (90.00 degrees to the left).
<see cref="F:Tao.Platform.Windows.Winmm.JOY_POVRIGHT"/> - Point-of-view hat is pressed to the right. The value 9,000 represents an orientation of 90.00 degrees (to the right).
</para>
<para>
The default joystick driver currently supports these five discrete directions. If an application can accept only the defined point-of-view values, it must use the JOY_RETURNPOV flag. If an application can accept other degree readings, it should use the JOY_RETURNPOVCTS flag to obtain continuous data if it is available. The JOY_RETURNPOVCTS flag also supports the JOY_POV constants used with the JOY_RETURNPOV flag.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Winmm.joyGetPosEx(System.Int32,Tao.Platform.Windows.Winmm.JOYINFOEX@)"/>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwSize">
<summary>
Size, in bytes, of this structure.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwFlags">
<summary>
Flags indicating the valid information returned in this structure. Members that do not contain valid information are set to zero.
</summary>
<remarks>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNALL"/> - Equivalent to setting all of the JOY_RETURN bits except JOY_RETURNRAWDATA.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNBUTTONS"/> - The dwButtons member contains valid information about the state of each joystick button.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNCENTERED"/> - Centers the joystick neutral position to the middle value of each axis of movement.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNPOV"/> - The dwPOV member contains valid information about the point-of-view control, expressed in discrete units.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNPOVCTS"/> - The dwPOV member contains valid information about the point-of-view control expressed in continuous, one-hundredth degree units.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNR"/> - The dwRpos member contains valid rudder pedal data. This information represents another (fourth) axis.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNRAWDATA"/> - Data stored in this structure is uncalibrated joystick readings.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNU"/> - The dwUpos member contains valid data for a fifth axis of the joystick, if such an axis is available, or returns zero otherwise.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNV"/> - The dwVpos member contains valid data for a sixth axis of the joystick, if such an axis is available, or returns zero otherwise.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNX"/> - The dwXpos member contains valid data for the x-coordinate of the joystick.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNY"/> - The dwYpos member contains valid data for the y-coordinate of the joystick.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_RETURNZ"/> - The dwZpos member contains valid data for the z-coordinate of the joystick.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_USEDEADZONE"/> - Expands the range for the neutral position of the joystick and calls this range the dead zone. The joystick driver returns a constant value for all positions in the dead zone.
</para>
<para>
The following flags provide data to calibrate a joystick and are intended for custom calibration applications.
</para>
<para>
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ3"/> - Read the x-, y-, and z-coordinates and store the raw values in dwXpos, dwYpos, and dwZpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ4"/> - Read the rudder information and the x-, y-, and z-coordinates and store the raw values in dwXpos, dwYpos, dwZpos, and dwRpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ5"/> - Read the rudder information and the x-, y-, z-, and u-coordinates and store the raw values in dwXpos, dwYpos, dwZpos, dwRpos, and dwUpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READ6"/> - Read the raw v-axis data if a joystick mini driver is present that will provide the data. Returns zero otherwise.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READALWAYS"/> - Read the joystick port even if the driver does not detect a device.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READRONLY"/> - Read the rudder information if a joystick mini-driver is present that will provide the data and store the raw value in dwRpos. Return zero otherwise.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READXONLY"/> - Read the x-coordinate and store the raw (uncalibrated) value in dwXpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READXYONLY"/> - Reads the x- and y-coordinates and place the raw values in dwXpos and dwYpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READYONLY"/> - Reads the y-coordinate and store the raw value in dwYpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READZONLY"/> - Read the z-coordinate and store the raw value in dwZpos.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READUONLY"/> - Read the u-coordinate if a joystick mini-driver is present that will provide the data and store the raw value in dwUpos. Return zero otherwise.
<see cref="F:Tao.Platform.Windows.Winmm.JOY_CAL_READVONLY"/> - Read the v-coordinate if a joystick mini-driver is present that will provide the data and store the raw value in dwVpos. Return zero otherwise.
</para>
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwXpos">
<summary>
Current X-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwYpos">
<summary>
Current Y-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwZpos">
<summary>
Current Z-coordinate.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwRpos">
<summary>
Current position of the rudder or fourth joystick axis.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwUpos">
<summary>
Current fifth axis position.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwVpos">
<summary>
Current sixth axis position.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwButtons">
<summary>
Current state of the 32 joystick buttons. The value of this member can be set to any combination of JOY_BUTTONn flags, where n is a value in the range of 1 through 32 corresponding to the button that is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwButtonNumber">
<summary>
Current button number that is pressed.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwPOV">
<summary>
Current position of the point-of-view control. Values for this member are in the range 0 through 35,900. These values represent the angle, in degrees, of each view multiplied by 100.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwReserved1">
<summary>
Reserved; do not use.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Winmm.JOYINFOEX.dwReserved2">
<summary>
Reserved; do not use.
</summary>
</member>
<member name="T:Tao.Platform.Windows.User">
<summary>
User binding for .NET, implementing Windows-specific user functionality.
</summary>
<remarks>
Binds functions and definitions in user32.dll.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.User.USER_NATIVE_LIBRARY">
<summary>
Specifies User32's native library archive.
</summary>
<remarks>
Specifies user32.dll for Windows.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.User.CALLING_CONVENTION">
<summary>
Specifies the calling convention.
</summary>
<remarks>
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall"/>.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.User.CS_VREDRAW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_HREDRAW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_DBLCLKS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_OWNDC">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_CLASSDC">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_PARENTDC">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_NOCLOSE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_SAVEBITS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_BYTEALIGNCLIENT">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_BYTEALIGNWINDOW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_GLOBALCLASS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_IME">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CS_DROPSHADOW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CDS_UPDATEREGISTRY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CDS_TEST">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.CDS_FULLSCREEN">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.DISP_CHANGE_SUCCESSFUL">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.DISP_CHANGE_RESTART">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.DISP_CHANGE_FAILED">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.ENUM_CURRENT_SETTINGS">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.User.ChangeDisplaySettings(Tao.Platform.Windows.Gdi.DEVMODE@,System.Int32)">
<summary>
<para>
The <b>ChangeDisplaySettings</b> function changes the settings of the default
display device to the specified graphics mode.
</para>
<para>
To change the settings of a specified display device, use the
<b>ChangeDisplaySettingsEx</b> function.
</para>
</summary>
<param name="devMode">
<para>
Pointer to a <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure that describes the new
graphics mode. If <i>devMode</i> is NULL, all the values currently in the
registry will be used for the display setting. Passing NULL for the
<i>devMode</i> parameter and 0 for the <i>flags</i> parameter is the easiest
way to return to the default mode after a dynamic mode change.
</para>
<para>
The <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmSize"/> member of <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
must be initialized to the size, in bytes, of the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
structure. The <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDriverExtra"/> member of
<see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> must be initialized to indicate the number of bytes
of private driver data following the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure. In
addition, you can use any or all of the following members of the
<see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmBitsPerPel"/></term>
<description>Bits per pixel.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsWidth"/></term>
<description>Pixel width.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsHeight"/></term>
<description>Pixel height.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFlags"/></term>
<description>Mode flags.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFrequency"/></term>
<description>Mode frequency.</description>
</item>
<item>
<term>dmPosition</term>
<description>
<b>Windows 98/Me, Windows 2000/XP:</b> Position of the device in
a multimonitor configuration.
</description>
</item>
</list>
</para>
<para>
In addition to using one or more of the preceding <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
members, you must also set one or more of the following values in the
<see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmFields"/> member to change the display setting:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_BITSPERPEL"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmBitsPerPel"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_PELSWIDTH"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsWidth"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_PELSHEIGHT"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsHeight"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFLAGS"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFlags"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFREQUENCY"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFrequency"/> value.
</description>
</item>
<item>
<term>see cref="Gdi.DM_POSITION" </term>
<description>
<b>Windows 98/Me, Windows 2000/XP:</b> Use the dmPosition value.
</description>
</item>
</list>
</para>
</param>
<param name="flags">
<para>
Indicates how the graphics mode should be changed. This parameter can be one
of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>0</term>
<description>
The graphics mode for the current screen will be changed
dynamically.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_FULLSCREEN" </term>
<description>
<para>
The mode is temporary in nature.
</para>
<para>
<b>Windows NT/2000/XP:</b> If you change to and from another
desktop, this mode will not be reset.
</para>
</description>
</item>
<item>
<term>see cref="Gdi.CDS_GLOBAL" </term>
<description>
The settings will be saved in the global settings area so that
they will affect all users on the machine. Otherwise, only the
settings for the user are modified. This flag is only valid when
specified with the see cref="Gdi.CDS_UPDATEREGISTRY" flag.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_NORESET" </term>
<description>
The settings will be saved in the registry, but will not take
affect. This flag is only valid when specified with the
see cref="Gdi.CDS_UPDATEREGISTRY" flag.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_RESET" </term>
<description>
The settings should be changed, even if the requested settings are
the same as the current settings.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_SET_PRIMARY" </term>
<description>
This device will become the primary device.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_TEST" </term>
<description>
The system tests if the requested graphics mode could be set.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_UPDATEREGISTRY" </term>
<description>
The graphics mode for the current screen will be changed
dynamically and the graphics mode will be updated in the registry.
The mode information is stored in the USER profile.
</description>
</item>
</list>
</para>
<para>
Specifying see cref="Gdi.CDS_TEST" allows an application to determine
which graphics modes are actually valid, without causing the system to
change to that graphics mode.
</para>
<para>
If see cref="Gdi.CDS_UPDATEREGISTRY" is specified and it is possible to
change the graphics mode dynamically, the information is stored in the
registry and see cref="Gdi.DISP_CHANGE_SUCCESSFUL" is returned. If it is
not possible to change the graphics mode dynamically, the information is
stored in the registry and see cref="Gdi.DISP_CHANGE_RESTART" is returned.
</para>
<para>
<b>Windows NT/2000/XP:</b> If see cref="Gdi.CDS_UPDATEREGISTRY" is
specified and the information could not be stored in the registry, the
graphics mode is not changed and see cref="Gdi.DISP_CHANGE_NOTUPDATED" is
returned.
</para>
</param>
<returns>
<para>
The <b>ChangeDisplaySettings</b> function returns one of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>see cref="Gdi.DISP_CHANGE_SUCCESSFUL" </term>
<description>
The settings change was successful.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADDUALVIEW" </term>
<description>
<b>Windows XP:</b> The settings change was unsuccessful because
system is DualView capable.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADFLAGS" </term>
<description>
An invalid set of flags was passed in.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADMODE" </term>
<description>
The graphics mode is not supported.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADPARAM" </term>
<description>
An invalid parameter was passed in. This can include an invalid
flag or combination of flags.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_FAILED" </term>
<description>
The display driver failed the specified graphics mode.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_NOTUPDATED" </term>
<description>
<b>Windows NT/2000/XP:</b> Unable to write settings to the
registry.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_RESTART" </term>
<description>
The computer must be restarted in order for the graphics mode to
work.
</description>
</item>
</list>
</para>
</returns>
<remarks>
<para>
To ensure that the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure passed to
<b>ChangeDisplaySettings</b> is valid and contains only values supported by
the display driver, use the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> returned by the
<see cref="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)"/> function.
</para>
<para>
When the display mode is changed dynamically, the <b>WM_DISPLAYCHANGE</b>
message is sent to all running applications with the following message
parameters:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>wParam</term>
<description>New bits per pixel.</description>
</item>
<item>
<term>LOWORD(lParam)</term>
<description>New pixel width.</description>
</item>
<item>
<term>HIWORD(lParam)</term>
<description>New pixel height.</description>
</item>
</list>
</para>
<para>
<b>Windows 95/98/Me:</b> If the calling thread has any windows,
<b>ChangeDisplaySettings</b> sends them the <b>WM_DISPLAYCHANGE</b> message
immediately (for windows in all other threads, the message is sent when the
thread can receive nonqueued messages). This may cause the shell to get its
message too soon and could squash icons. To avoid this problem, have
<b>ChangeDisplaySettings</b> do resolution switching by calling on a thread
with no windows, for example, a new thread.
</para>
</remarks>
seealso cref="CreateDC"
<seealso cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
<seealso cref="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)"/>
</member>
<member name="M:Tao.Platform.Windows.User.ChangeDisplaySettings(System.IntPtr,System.Int32)">
<summary>
<para>
The <b>ChangeDisplaySettings</b> function changes the settings of the default
display device to the specified graphics mode.
</para>
<para>
To change the settings of a specified display device, use the
<b>ChangeDisplaySettingsEx</b> function.
</para>
</summary>
<param name="devMode">
<para>
Pointer to a <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure that describes the new
graphics mode. If <i>devMode</i> is NULL, all the values currently in the
registry will be used for the display setting. Passing NULL for the
<i>devMode</i> parameter and 0 for the <i>flags</i> parameter is the easiest
way to return to the default mode after a dynamic mode change.
</para>
<para>
The <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmSize"/> member of <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
must be initialized to the size, in bytes, of the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
structure. The <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDriverExtra"/> member of
<see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> must be initialized to indicate the number of bytes
of private driver data following the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure. In
addition, you can use any or all of the following members of the
<see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmBitsPerPel"/></term>
<description>Bits per pixel.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsWidth"/></term>
<description>Pixel width.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsHeight"/></term>
<description>Pixel height.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFlags"/></term>
<description>Mode flags.</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFrequency"/></term>
<description>Mode frequency.</description>
</item>
<item>
<term>dmPosition</term>
<description>
<b>Windows 98/Me, Windows 2000/XP:</b> Position of the device in
a multimonitor configuration.
</description>
</item>
</list>
</para>
<para>
In addition to using one or more of the preceding <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
members, you must also set one or more of the following values in the
<see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmFields"/> member to change the display setting:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_BITSPERPEL"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmBitsPerPel"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_PELSWIDTH"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsWidth"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_PELSHEIGHT"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsHeight"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFLAGS"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFlags"/> value.
</description>
</item>
<item>
<term><see cref="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFREQUENCY"/></term>
<description>
Use the <see cref="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFrequency"/> value.
</description>
</item>
<item>
<term>see cref="Gdi.DM_POSITION" /></term>
<description>
<b>Windows 98/Me, Windows 2000/XP:</b> Use the dmPosition value.
</description>
</item>
</list>
</para>
</param>
<param name="flags">
<para>
Indicates how the graphics mode should be changed. This parameter can be one
of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>0</term>
<description>
The graphics mode for the current screen will be changed
dynamically.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_FULLSCREEN" </term>
<description>
<para>
The mode is temporary in nature.
</para>
<para>
<b>Windows NT/2000/XP:</b> If you change to and from another
desktop, this mode will not be reset.
</para>
</description>
</item>
<item>
<term>see cref="Gdi.CDS_GLOBAL" </term>
<description>
The settings will be saved in the global settings area so that
they will affect all users on the machine. Otherwise, only the
settings for the user are modified. This flag is only valid when
specified with the see cref="Gdi.CDS_UPDATEREGISTRY" flag.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_NORESET" </term>
<description>
The settings will be saved in the registry, but will not take
affect. This flag is only valid when specified with the
see cref="Gdi.CDS_UPDATEREGISTRY" flag.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_RESET" </term>
<description>
The settings should be changed, even if the requested settings are
the same as the current settings.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_SET_PRIMARY" </term>
<description>
This device will become the primary device.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_TEST" /></term>
<description>
The system tests if the requested graphics mode could be set.
</description>
</item>
<item>
<term>see cref="Gdi.CDS_UPDATEREGISTRY" /></term>
<description>
The graphics mode for the current screen will be changed
dynamically and the graphics mode will be updated in the registry.
The mode information is stored in the USER profile.
</description>
</item>
</list>
</para>
<para>
Specifying see cref="Gdi.CDS_TEST" /> allows an application to determine
which graphics modes are actually valid, without causing the system to
change to that graphics mode.
</para>
<para>
If see cref="Gdi.CDS_UPDATEREGISTRY" /> is specified and it is possible to
change the graphics mode dynamically, the information is stored in the
registry and see cref="Gdi.DISP_CHANGE_SUCCESSFUL" /> is returned. If it is
not possible to change the graphics mode dynamically, the information is
stored in the registry and see cref="Gdi.DISP_CHANGE_RESTART" /> is returned.
</para>
<para>
<b>Windows NT/2000/XP:</b> If see cref="Gdi.CDS_UPDATEREGISTRY" /> is
specified and the information could not be stored in the registry, the
graphics mode is not changed and see cref="Gdi.DISP_CHANGE_NOTUPDATED" /> is
returned.
</para>
</param>
<returns>
<para>
The <b>ChangeDisplaySettings</b> function returns one of the following values:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>see cref="Gdi.DISP_CHANGE_SUCCESSFUL" /></term>
<description>
The settings change was successful.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADDUALVIEW" /></term>
<description>
<b>Windows XP:</b> The settings change was unsuccessful because
system is DualView capable.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADFLAGS" /></term>
<description>
An invalid set of flags was passed in.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADMODE" </term>
<description>
The graphics mode is not supported.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_BADPARAM" </term>
<description>
An invalid parameter was passed in. This can include an invalid
flag or combination of flags.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_FAILED" /></term>
<description>
The display driver failed the specified graphics mode.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_NOTUPDATED" /></term>
<description>
<b>Windows NT/2000/XP:</b> Unable to write settings to the
registry.
</description>
</item>
<item>
<term>see cref="Gdi.DISP_CHANGE_RESTART" /></term>
<description>
The computer must be restarted in order for the graphics mode to
work.
</description>
</item>
</list>
</para>
</returns>
<remarks>
<para>
To ensure that the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> structure passed to
<b>ChangeDisplaySettings</b> is valid and contains only values supported by
the display driver, use the <see cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/> returned by the
<see cref="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)"/> function.
</para>
<para>
When the display mode is changed dynamically, the <b>WM_DISPLAYCHANGE</b>
message is sent to all running applications with the following message
parameters:
</para>
<para>
<list type="table">
<listheader>
<term>Value</term>
<description>Description</description>
</listheader>
<item>
<term>wParam</term>
<description>New bits per pixel.</description>
</item>
<item>
<term>LOWORD(lParam)</term>
<description>New pixel width.</description>
</item>
<item>
<term>HIWORD(lParam)</term>
<description>New pixel height.</description>
</item>
</list>
</para>
<para>
<b>Windows 95/98/Me:</b> If the calling thread has any windows,
<b>ChangeDisplaySettings</b> sends them the <b>WM_DISPLAYCHANGE</b> message
immediately (for windows in all other threads, the message is sent when the
thread can receive nonqueued messages). This may cause the shell to get its
message too soon and could squash icons. To avoid this problem, have
<b>ChangeDisplaySettings</b> do resolution switching by calling on a thread
with no windows, for example, a new thread.
</para>
</remarks>
seealso cref="CreateDC" />
<seealso cref="T:Tao.Platform.Windows.Gdi.DEVMODE"/>
<seealso cref="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)"/>
</member>
<member name="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)">
<summary>
</summary>
<param name="deviceName"></param>
<param name="modeNumber"></param>
<param name="devMode"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.User.GetDC(System.IntPtr)">
<summary>
<para>
The <b>GetDC</b> function retrieves a handle to a display device context (DC)
for the client area of a specified window or for the entire screen. You can
use the returned handle in subsequent GDI functions to draw in the DC.
</para>
<para>
The see cref="GetDCEx" /> function is an extension to <b>GetDC</b>, which
gives an application more control over how and whether clipping occurs in the
client area.
</para>
</summary>
<param name="windowHandle">
<para>
Handle to the window whose DC is to be retrieved. If this value is null,
<b>GetDC</b> retrieves the DC for the entire screen.
</para>
<para>
<b>Windows 98/Me, Windows 2000/XP:</b> To get the DC for a specific display
monitor, use the see cref="EnumDisplayMonitors" /> and
see cref="Gdi.CreateDC" /> functions.
</para>
</param>
<returns>
<para>
If the function succeeds, the return value is a handle to the DC for the
specified window's client area.
</para>
<para>
If the function fails, the return value is null.
</para>
<para>
<b>Windows NT/2000/XP:</b> To get extended error information, call
<see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
</para>
</returns>
<remarks>
<para>
The <b>GetDC</b> function retrieves a common, class, or private DC depending
on the class style of the specified window. For class and private DCs,
<b>GetDC</b> leaves the previously assigned attributes unchanged. However,
for common DCs, <b>GetDC</b> assigns default attributes to the DC each time
it is retrieved. For example, the default font is System, which is a bitmap
font. Because of this, the handle for a common DC returned by <b>GetDC</b>
does not tell you what font, color, or brush was used when the window was
drawn. To determine the font, call see cref="GetTextFace" />.
</para>
<para>
Note that the handle to the DC can only be used by a single thread at any one
time.
</para>
<para>
After painting with a common DC, the <see cref="M:Tao.Platform.Windows.User.ReleaseDC(System.IntPtr,System.IntPtr)"/> function must
be called to release the DC. Class and private DCs do not have to be
released. <see cref="M:Tao.Platform.Windows.User.ReleaseDC(System.IntPtr,System.IntPtr)"/> must be called from the same thread that
called <b>GetDC</b>. The number of DCs is limited only by available memory.
</para>
<para>
<b>Windows 95/98/Me:</b> There are only 5 common DCs available per thread,
thus failure to release a DC can prevent other applications from accessing
one.
</para>
</remarks>
seealso cref="GetDCEx" />
<seealso cref="M:Tao.Platform.Windows.User.ReleaseDC(System.IntPtr,System.IntPtr)"/>
seealso cref="GetTextFace" />
seealso cref="GetWindowDC" />
</member>
<member name="M:Tao.Platform.Windows.User.ReleaseDC(System.IntPtr,System.IntPtr)">
<summary>
<para>
The <b>ReleaseDC</b> function releases a device context (DC), freeing it for
use by other applications. The effect of the <b>ReleaseDC</b> function
depends on the type of DC. It frees only common and window DCs. It has no
effect on class or private DCs.
</para>
</summary>
<param name="windowHandle">
<para>
Handle to the window whose DC is to be released.
</para>
</param>
<param name="deviceContext">
<para>
Handle to the DC to be released.
</para>
</param>
<returns>
<para>
The return value indicates whether the DC was released. If the DC was
released, the return value is true.
</para>
<para>
If the DC was not released, the return value is false.
</para>
</returns>
<remarks>
<para>
The application must call the <b>ReleaseDC</b> function for each call to the
see cref="GetWindowDC" /> function and for each call to the
<see cref="M:Tao.Platform.Windows.User.GetDC(System.IntPtr)"/> function that retrieves a common DC.
</para>
<para>
An application cannot use the <b>ReleaseDC</b> function to release a DC that
was created by calling the see cref="Gdi.CreateDC" /> function; instead, it
must use the see cref="Gdi.DeleteDC" /> function. <b>ReleaseDC</b> must be
called from the same thread that called <b>GetDC</b>.
</para>
</remarks>
seealso cref="Gdi.CreateDC" />
seealso cref="Gdi.DeleteDC" />
<seealso cref="M:Tao.Platform.Windows.User.GetDC(System.IntPtr)"/>
seealso cref="GetWindowDC" />
</member>
<member name="M:Tao.Platform.Windows.User.SetParent(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hWndChild"></param>
<param name="hWndNewParent"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.User.FindWindow(System.String,System.String)">
<summary>
</summary>
<param name="lpClassName"></param>
<param name="lpWindowName"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.User.ShowWindow(System.IntPtr,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="nCmdShow"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.User.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="hWndInsertAfter"></param>
<param name="X"></param>
<param name="Y"></param>
<param name="cx"></param>
<param name="cy"></param>
<param name="uFlags"></param>
<returns></returns>
</member>
<member name="T:Tao.Platform.Windows.User.SHOWWINDOW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_HIDE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWNORMAL">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_NORMAL">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWMINIMIZED">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWMAXIMIZED">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_MAXIMIZE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWNOACTIVATE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOW">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_MINIMIZE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWMINNOACTIVE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWNA">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_RESTORE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_SHOWDEFAULT">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_FORCEMINIMIZE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.User.SHOWWINDOW.SW_MAX">
<summary>
</summary>
</member>
<member name="T:Tao.Platform.Windows.SimpleOpenGlControl">
<summary>
Provides a simple OpenGL control allowing quick development of Windows Forms-based
OpenGL applications.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.#ctor">
<summary>
Constructor. Creates contexts and sets properties.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.Dispose(System.Boolean)">
<summary>
Disposes the control.
</summary>
<param name="disposing">Was the disposed manually called?</param>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.InitializeBackground">
<summary>
Loads the bitmap from the assembly's manifest resource.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.InitializeComponent">
<summary>
Required for designer support.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.InitializeStyles">
<summary>
Initializes the control's styles.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.DestroyContexts">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.Draw">
<summary>
Sends an see cref="UserControl.Invalidate" command to this control, thus
forcing a redraw to occur.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.InitializeContexts">
<summary>
Creates the OpenGL contexts.
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.MakeCurrent">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.SwapBuffers">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.OnPaint(System.Windows.Forms.PaintEventArgs)">
<summary>
Paints the control.
</summary>
<param name="e">The paint event arguments.</param>
</member>
<member name="M:Tao.Platform.Windows.SimpleOpenGlControl.OnPaintBackground(System.Windows.Forms.PaintEventArgs)">
<summary>
Paints the background.
</summary>
<param name="e"></param>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.LogScaleX">
<summary>
Gets the number of logical pixels or dots per inch (dpi) in X-direction
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.LogScaleY">
<summary>
Gets the number of logical pixels or dots per inch (dpi) in Y-direction
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.AccumBits">
<summary>
Gets and sets the OpenGL control's accumulation buffer depth.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.ColorBits">
<summary>
Gets and sets the OpenGL control's color buffer depth.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.DepthBits">
<summary>
Gets and sets the OpenGL control's depth buffer (Z-buffer) depth.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.StencilBits">
<summary>
Gets and sets the OpenGL control's stencil buffer depth.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.AutoCheckErrors">
<summary>
Gets and sets the OpenGL control's automatic sending of a glGetError command
after drawing.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.AutoFinish">
<summary>
Gets and sets the OpenGL control's automatic sending of a glFinish command
after drawing.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.AutoMakeCurrent">
<summary>
Gets and sets the OpenGL control's automatic forcing of the rendering context to
be current before drawing.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.AutoSwapBuffers">
<summary>
Gets and sets the OpenGL control's automatic sending of a SwapBuffers command
after drawing.
</summary>
</member>
<member name="P:Tao.Platform.Windows.SimpleOpenGlControl.CreateParams">
<summary>
Overrides the control's class style parameters.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Gdi">
<summary>
GDI binding for .NET, implementing Windows-specific GDI functionality.
</summary>
<remarks>
Binds functions and definitions in gdi32.dll.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GDI_NATIVE_LIBRARY">
<summary>
Specifies GDI's native library archive.
</summary>
<remarks>
Specifies gdi32.dll for Windows.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.CALLING_CONVENTION">
<summary>
Specifies the calling convention.
</summary>
<remarks>
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall"/>.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_TYPE_RGBA">
<summary>
RGBA pixels. Each pixel has four components: red, green, blue, and alpha.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_TYPE_COLORINDEX">
<summary>
Color-index pixels. Each pixel uses a color-index value.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_DOUBLEBUFFER">
<summary>
The layer plane is double-buffered. A layer plane can be double-buffered
even when the main plane is single-buffered and vice versa.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_STEREO">
<summary>
The layer plane is stereoscopic. A layer plane can be stereoscopic even
when the main plane is monoscopic and vice versa.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SUPPORT_GDI">
<summary>
The layer plane supports GDI drawing. The current implementation of OpenGL
doesn't support this flag.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SUPPORT_OPENGL">
<summary>
The layer plane supports OpenGL drawing.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SHARE_DEPTH">
<summary>
The layer plane shares the depth buffer with the main plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SHARE_STENCIL">
<summary>
The layer plane shares the stencil buffer with the main plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SHARE_ACCUM">
<summary>
The layer plane shares the accumulation buffer with the main plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SWAP_EXCHANGE">
<summary>
In a double-buffered layer plane, swapping the color buffer exchanges the
front buffer and back buffer contents. The back buffer then contains the
contents of the front buffer before the swap. This flag is a hint only and
might not be provided by a driver.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_SWAP_COPY">
<summary>
In a double-buffered layer plane, swapping the color buffer copies the back
buffer contents to the front buffer. The swap does not affect the back
buffer contents. This flag is a hint only and might not be provided by a driver.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LPD_TRANSPARENT">
<summary>
Contains a transparent color or index value that enables underlying layers
to show through this layer. All layer planes, except the lowest-numbered
underlay layer, have a transparent color or index.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_TYPE_RGBA">
<summary>
RGBA pixels. Each pixel has four components in this order: red, green, blue,
and alpha.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_TYPE_COLORINDEX">
<summary>
Color-index pixels. Each pixel uses a color-index value.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_MAIN_PLANE">
<summary>
The layer is the main plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_OVERLAY_PLANE">
<summary>
The layer is the overlay plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_UNDERLAY_PLANE">
<summary>
The layer is the underlay plane.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_DOUBLEBUFFER">
<summary>
<para>
The buffer is double-buffered. This flag and <see cref="F:Tao.Platform.Windows.Gdi.PFD_SUPPORT_GDI"/>
are mutually exclusive in the current generic implementation.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_STEREO">
<summary>
<para>
The buffer is stereoscopic. This flag is not supported in the current
generic implementation.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_DRAW_TO_WINDOW">
<summary>
<para>
The buffer can draw to a window or device surface.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_DRAW_TO_BITMAP">
<summary>
<para>
The buffer can draw to a memory bitmap.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SUPPORT_GDI">
<summary>
<para>
The buffer supports GDI drawing. This flag and
<see cref="F:Tao.Platform.Windows.Gdi.PFD_DOUBLEBUFFER"/> are mutually exclusive in the current generic
implementation.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SUPPORT_OPENGL">
<summary>
<para>
The buffer supports OpenGL drawing.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_GENERIC_FORMAT">
<summary>
<para>
The pixel format is supported by the GDI software implementation, which is
also known as the generic implementation. If this bit is clear, the pixel
format is supported by a device driver or hardware.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_NEED_PALETTE">
<summary>
<para>
The buffer uses RGBA pixels on a palette-managed device. A logical palette
is required to achieve the best results for this pixel type. Colors in the
palette should be specified according to the values of the <b>cRedBits</b>,
<b>cRedShift</b>, <b>cGreenBits</b>, <b>cGreenShift</b>, <b>cBluebits</b>,
and <b>cBlueShift</b> members. The palette should be created and realized in
the device context before calling <see cref="M:Tao.Platform.Windows.Wgl.wglMakeCurrent(System.IntPtr,System.IntPtr)"/>.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_NEED_SYSTEM_PALETTE">
<summary>
<para>
Defined in the pixel format descriptors of hardware that supports one
hardware palette in 256-color mode only. For such systems to use
hardware acceleration, the hardware palette must be in a fixed order
(for example, 3-3-2) when in RGBA mode or must match the logical palette
when in color-index mode.
</para>
<para>
When this flag is set, you must call see cref="SetSystemPaletteUse" /> in
your program to force a one-to-one mapping of the logical palette and the
system palette. If your OpenGL hardware supports multiple hardware palettes
and the device driver can allocate spare hardware palettes for OpenGL, this
flag is typically clear.
</para>
<para>
This flag is not set in the generic pixel formats.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SWAP_EXCHANGE">
<summary>
<para>
Specifies the content of the back buffer in the double-buffered main color
plane following a buffer swap. Swapping the color buffers causes the
exchange of the back buffer's content with the front buffer's content.
Following the swap, the back buffer's content contains the front buffer's
content before the swap. <b>PFD_SWAP_EXCHANGE</b> is a hint only and might
not be provided by a driver.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SWAP_COPY">
<summary>
<para>
Specifies the content of the back buffer in the double-buffered main color
plane following a buffer swap. Swapping the color buffers causes the content
of the back buffer to be copied to the front buffer. The content of the back
buffer is not affected by the swap. <b>PFD_SWAP_COPY</b> is a hint only and
might not be provided by a driver.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SWAP_LAYER_BUFFERS">
<summary>
<para>
Indicates whether a device can swap individual layer planes with pixel
formats that include double-buffered overlay or underlay planes.
Otherwise all layer planes are swapped together as a group. When this
flag is set, <see cref="M:Tao.Platform.Windows.Wgl.wglSwapLayerBuffers(System.IntPtr,System.Int32)"/> is supported.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_GENERIC_ACCELERATED">
<summary>
<para>
The pixel format is supported by a device driver that accelerates the generic
implementation. If this flag is clear and the
<see cref="F:Tao.Platform.Windows.Gdi.PFD_GENERIC_FORMAT"/> flag is set, the pixel format is supported
by the generic implementation only.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_SUPPORT_DIRECTDRAW">
<summary>
<para>
The buffer supports DirectDraw drawing.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_DEPTH_DONTCARE">
<summary>
<para>
The requested pixel format can either have or not have a depth buffer. To
select a pixel format without a depth buffer, you must specify this flag.
The requested pixel format can be with or without a depth buffer. Otherwise,
only pixel formats with a depth buffer are considered.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_DOUBLEBUFFER_DONTCARE">
<summary>
<para>
The requested pixel format can be either single- or double-buffered.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PFD_STEREO_DONTCARE">
<summary>
<para>
The requested pixel format can be either monoscopic or stereoscopic.
</para>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DM_BITSPERPEL">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DM_PELSWIDTH">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DM_PELSHEIGHT">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFLAGS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DM_DISPLAYFREQUENCY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.OUT_TT_PRECIS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.CLIP_DEFAULT_PRECIS">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEFAULT_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DRAFT_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PROOF_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.NONANTIALIASED_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.ANTIALIASED_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.CLEARTYPE_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.CLEARTYPE_NATURAL_QUALITY">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEFAULT_PITCH">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.FIXED_PITCH">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.VARIABLE_PITCH">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.MONO_FONT">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.ANSI_CHARSET">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEFAULT_CHARSET">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.SYMBOL_CHARSET">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.SHIFTJIS_CHARSET">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.FF_DONTCARE">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.FW_BOLD">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.Gdi._SetPixelFormat(System.IntPtr,System.Int32,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)">
<summary>
</summary>
</member>
<member name="M:Tao.Platform.Windows.Gdi.ChoosePixelFormat(System.IntPtr,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)">
<summary>
The <b>ChoosePixelFormat</b> function attempts to match an appropriate pixel format supported by a device context
to a given pixel format specification.
</summary>
<param name="deviceContext">
Specifies the device context that the function examines to determine the best match for the pixel format
descriptor pointed to by <i>ppfd</i>.
</param>
<param name="pixelFormatDescriptor">
<para>
Pointer to a <see cref="T:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR"/> structure that specifies the requested pixel format.
In this context, the members of the <b>PIXELFORMATDESCRIPTOR</b> structure that <i>ppfd</i>
points to are used as follows:
</para>
<para>
<b>nSize</b><br/>
Specifies the size of the <b>PIXELFORMATDESCRIPTOR</b> data structure. Set this member to
<c>sizeof(PIXELFORMATDESCRIPTOR)</c>.
</para>
<para>
<b>nVersion</b><br/>
Specifies the version number of the <b>PIXELFORMATDESCRIPTOR</b> data structure. Set this member to 1.
</para>
<para>
<b>dwFlags</b><br/>
A set of bit flags that specify properties of the pixel buffer. You can combine the following bit
flag constants by using bitwise-OR.<br/><br/>
If any of the following flags are set, the <b>ChoosePixelFormat</b> function attempts to match pixel
formats that also have that flag or flags set. Otherwise, <b>ChoosePixelFormat</b> ignores that flag
in the pixel formats:<br/><br/>
PFD_DRAW_TO_WINDOW<br/>
PFD_DRAW_TO_BITMAP<br/>
PFD_SUPPORT_GDI<br/>
PFD_SUPPORT_OPENGL<br/><br/>
If any of the following flags are set, <b>ChoosePixelFormat</b> attempts to match pixel formats that
also have that flag or flags set. Otherwise, it attempts to match pixel formats without that flag set:<br/><br/>
PFD_DOUBLEBUFFER<br/>
PFD_STEREO<br/><br/>
If the following flag is set, the function ignores the PFD_DOUBLEBUFFER flag in the pixel formats:<br/><br/>
PFD_DOUBLEBUFFER_DONTCARE<br/><br/>
If the following flag is set, the function ignores the PFD_STEREO flag in the pixel formats:<br/><br/>
PFD_STEREO_DONTCARE<br/>
</para>
<para>
<b>iPixelType</b><br/>
Specifies the type of pixel format for the function to consider:<br/><br/>
PFD_TYPE_RGBA<br/>
PFD_TYPE_COLORINDEX<br/>
</para>
<para>
<b>cColorBits</b><br/>
Zero or greater.
</para>
<para>
<b>cRedBits</b><br/>
Not used.
</para>
<para>
<b>cRedShift</b><br/>
Not used.
</para>
<para>
<b>cGreenBits</b><br/>
Not used.
</para>
<para>
<b>cGreenShift</b><br/>
Not used.
</para>
<para>
<b>cBlueBits</b><br/>
Not used.
</para>
<para>
<b>cBlueShift</b><br/>
Not used.
</para>
<para>
<b>cAlphaBits</b><br/>
Zero or greater.
</para>
<para>
<b>cAlphaShift</b><br/>
Not used.
</para>
<para>
<b>cAccumBits</b><br/>
Zero or greater.
</para>
<para>
<b>cAccumRedBits</b><br/>
Not used.
</para>
<para>
<b>cAccumGreenBits</b><br/>
Not used.
</para>
<para>
<b>cAccumBlueBits</b><br/>
Not used.
</para>
<para>
<b>cAccumAlphaBits</b><br/>
Not used.
</para>
<para>
<b>cDepthBits</b><br/>
Zero or greater.
</para>
<para>
<b>cStencilBits</b><br/>
Zero or greater.
</para>
<para>
<b>cAuxBuffers</b><br/>
Zero or greater.
</para>
<para>
<b>iLayerType</b><br/>
Specifies one of the following layer type values:<br/><br/>
PFD_MAIN_PLANE<br/>
PFD_OVERLAY_PLANE<br/>
PFD_UNDERLAY_PLANE<br/>
</para>
<para>
<b>bReserved</b><br/>
Not used.
</para>
<para>
<b>dwLayerMask</b><br/>
Not used.
</para>
<para>
<b>dwVisibleMask</b><br/>
Not used.
</para>
<para>
<b>dwDamageMask</b><br/>
Not used.
</para>
</param>
<returns>
If the function succeeds, the return value is a pixel format index (one-based) that is the closest match
to the given pixel format descriptor.<br/><br/>
If the function fails, the return value is zero. To get extended error information,
call see cref="Kernel.GetLastError" />.
</returns>
<remarks>
You must ensure that the pixel format matched by the <b>ChoosePixelFormat</b> function satisfies your
requirements. For example, if you request a pixel format with a 24-bit RGB color buffer but the device
context offers only 8-bit RGB color buffers, the function returns a pixel format with an 8-bit RGB color
buffer.<br/><br/>
The following code sample shows how to use <b>ChoosePixelFormat</b> to match a specified pixel
format:<br/><br/>
<code>
HDC hdc;
int pixelFormat;
Gdi.PIXELFORMATDESCRIPTOR pfd;
// size of this pfd
pfd.nSize = (ushort) sizeof(Gdi.PIXELFORMATDESCRIPTOR);
// version number
pfd.nVersion = 1;
// support window, support OpenGL, double buffered
pfd.dwFlags = Gdi.PFD_DRAW_TO_WINDOW | Gdi.PFD_SUPPORT_OPENGL | Gdi.PFD_DOUBLEBUFFER;
// RGBA type
pfd.iPixelType = Gdi.PFD_TYPE_RGBA;
// 24-bit color depth
pfd.cColorBits = 24;
// color bits and shift bits ignored
pfd.cRedBits = 0;
pfd.cRedShift = 0;
pfd.cGreenBits = 0;
pfd.cGreenShift = 0;
pfd.cBlueBits = 0;
pfd.cBlueShift = 0;
pfd.cAlphaBits = 0;
pfd.cAlphaShift = 0;
// no accumulation buffer, accum bits ignored
pfd.cAccumBits = 0;
pfd.cAccumRedBits = 0;
pfd.cAccumGreenBits = 0;
pfd.cAccumBlueBits = 0;
pfd.cAccumAlphaBits = 0;
// no stencil buffer
pfd.cStencilBits = 0;
// no auxiliary buffer
pfd.cAuxBuffers = 0;
// main layer
pfd.iLayerType = Gdi.PFD_MAIN_PLANE;
// reserved
pfd.bReserved = 0;
// layer masks ignored
pfd.dwLayerMask = 0;
pfd.dwVisibleMask = 0;
pfd.dwDamageMask = 0;
pixelFormat = Gdi.ChoosePixelFormat(hdc, &pfd);
</code>
</remarks>
seealso cref="DescribePixelFormat" />
seealso cref="GetPixelFormat" />
<seealso cref="M:Tao.Platform.Windows.Gdi.SetPixelFormat(System.IntPtr,System.Int32,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)"/>
</member>
<member name="M:Tao.Platform.Windows.Gdi.SetPixelFormat(System.IntPtr,System.Int32,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)">
<summary>
The <b>SetPixelFormat</b> function sets the pixel format of the specified device context to the format
specified by the <i>iPixelFormat</i> index.
</summary>
<param name="deviceContext">
Specifies the device context whose pixel format the function attempts to set.
</param>
<param name="pixelFormat">
Index that identifies the pixel format to set. The various pixel formats supported by a device
context are identified by one-based indexes.
</param>
<param name="pixelFormatDescriptor">
Pointer to a <see cref="T:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR"/> structure that contains the logical pixel
format specification. The system's metafile component uses this structure to record the logical
pixel format specification. The structure has no other effect upon the behavior of the
<b>SetPixelFormat</b> function.
</param>
<returns>
If the function succeeds, the return value is true.<br/><br/>
If the function fails, the return value is false. To get extended error information, call
see cref="Kernel.GetLastError" />.
</returns>
<remarks>
If <i>hdc</i> references a window, calling the <b>SetPixelFormat</b> function also changes the pixel format
of the window. Setting the pixel format of a window more than once can lead to significant complications
for the Window Manager and for multithread applications, so it is not allowed. An application can only set
the pixel format of a window one time. Once a window's pixel format is set, it cannot be changed.<br/><br/>
You should select a pixel format in the device context before calling the <see cref="M:Tao.Platform.Windows.Wgl.wglCreateContext(System.IntPtr)"/>
function. The <b>wglCreateContext</b> function creates a rendering context for drawing on the device in the
selected pixel format of the device context.<br/><br/>
An OpenGL window has its own pixel format. Because of this, only device contexts retrieved for the client
area of an OpenGL window are allowed to draw into the window. As a result, an OpenGL window should be created
with the WS_CLIPCHILDREN and WS_CLIPSIBLINGS styles. Additionally, the window class attribute should not
include the CS_PARENTDC style.<br/><br/>
The following code example shows <b>SetPixelFormat</b> usage:<br/><br/>
<code>
HDC hdc;
int pixelFormat;
Gdi.PIXELFORMATDESCRIPTOR pfd;
// size of this pfd
pfd.nSize = (ushort) sizeof(Gdi.PIXELFORMATDESCRIPTOR);
// version number
pfd.nVersion = 1;
// support window, support OpenGL, double buffered
pfd.dwFlags = Gdi.PFD_DRAW_TO_WINDOW | Gdi.PFD_SUPPORT_OPENGL | Gdi.PFD_DOUBLEBUFFER;
// RGBA type
pfd.iPixelType = Gdi.PFD_TYPE_RGBA;
// 24-bit color depth
pfd.cColorBits = 24;
// color bits and shift bits ignored
pfd.cRedBits = 0;
pfd.cRedShift = 0;
pfd.cGreenBits = 0;
pfd.cGreenShift = 0;
pfd.cBlueBits = 0;
pfd.cBlueShift = 0;
pfd.cAlphaBits = 0;
pfd.cAlphaShift = 0;
// no accumulation buffer, accum bits ignored
pfd.cAccumBits = 0;
pfd.cAccumRedBits = 0;
pfd.cAccumGreenBits = 0;
pfd.cAccumBlueBits = 0;
pfd.cAccumAlphaBits = 0;
// no stencil buffer
pfd.cStencilBits = 0;
// no auxiliary buffer
pfd.cAuxBuffers = 0;
// main layer
pfd.iLayerType = Gdi.PFD_MAIN_PLANE;
// reserved
pfd.bReserved = 0;
// layer masks ignored
pfd.dwLayerMask = 0;
pfd.dwVisibleMask = 0;
pfd.dwDamageMask = 0;
pixelFormat = Gdi.ChoosePixelFormat(hdc, &pfd);
// make that the pixel format of the device context
Gdi.SetPixelFormat(hdc, pixelFormat, &pfd);
</code>
</remarks>
<seealso cref="M:Tao.Platform.Windows.Gdi.ChoosePixelFormat(System.IntPtr,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)"/>
seealso cref="DescribePixelFormat" />
seealso cref="GetPixelFormat" />
</member>
<member name="M:Tao.Platform.Windows.Gdi.SwapBuffers(System.IntPtr)">
<summary>
</summary>
<param name="deviceContext"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.Gdi.SwapBuffersFast(System.IntPtr)">
<summary>
</summary>
<param name="deviceContext"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.Gdi.CreateFont(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.String)">
<summary>
</summary>
<param name="height"></param>
<param name="width"></param>
<param name="escapement"></param>
<param name="orientation"></param>
<param name="weight"></param>
<param name="italic"></param>
<param name="underline"></param>
<param name="strikeOut"></param>
<param name="charSet"></param>
<param name="outputPrecision"></param>
<param name="clipPrecision"></param>
<param name="quality"></param>
<param name="pitchAndFamily"></param>
<param name="typeFace"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.Gdi.DeleteObject(System.IntPtr)">
<summary>
</summary>
<param name="objectHandle"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.Gdi.SelectObject(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="deviceContext"></param>
<param name="objectHandle"></param>
<returns></returns>
</member>
<member name="M:Tao.Platform.Windows.Gdi.GetDeviceCaps(System.IntPtr,System.Int32)">
<summary>
Retrieves device-specific information for the specified device.
</summary>
<param name="deviceContext">Handle to the DC</param>
<param name="nIndex">Specifies the item to return</param>
<returns></returns>
</member>
<member name="T:Tao.Platform.Windows.Gdi.DEVMODE">
<summary>
<para>
The <b>DEVMODE</b> data structure contains information about the
initialization and environment of a printer or a display device.
</para>
</summary>
<remarks>
<para>
A device driver's private data follows the public portion of the
<b>DEVMODE</b> structure. The size of the public data can vary for different
versions of the structure. The <i>dmSize</i> member specifies the number of
bytes of public data, and the <i>dmDriverExtra</i> member specifies the
number of bytes of private data.
</para>
</remarks>
<seealso cref="M:Tao.Platform.Windows.User.ChangeDisplaySettings(Tao.Platform.Windows.Gdi.DEVMODE@,System.Int32)"/>
<seealso cref="M:Tao.Platform.Windows.User.EnumDisplaySettings(System.String,System.Int32,Tao.Platform.Windows.Gdi.DEVMODE@)"/>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDeviceName">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmSpecVersion">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDriverVersion">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmSize">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDriverExtra">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmFields">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmOrientation">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPaperSize">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPaperLength">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPaperWidth">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmScale">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmCopies">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDefaultSource">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPrintQuality">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmColor">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDuplex">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmYResolution">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmTTOption">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmCollate">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmFormName">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmLogPixels">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmBitsPerPel">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsWidth">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPelsHeight">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFlags">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDisplayFrequency">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmICMMethod">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmICMIntent">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmMediaType">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmDitherType">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmReserved1">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmReserved2">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPanningWidth">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DEVMODE.dmPanningHeight">
<summary>
</summary>
</member>
<member name="T:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT">
<summary>
The <b>GLYPHMETRICSFLOAT</b> structure contains information about the placement and orientation of a glyph in a
character cell.
</summary>
<remarks>The values of <b>GLYPHMETRICSFLOAT</b> are specified as notional units.</remarks>
<seealso cref="T:Tao.Platform.Windows.Gdi.POINTFLOAT"/>
<seealso cref="M:Tao.Platform.Windows.Wgl.wglUseFontOutlinesA(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Single,System.Single,System.Int32,Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT[])"/>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT.gmfBlackBoxX">
<summary>
Specifies the width of the smallest rectangle (the glyph's black box) that completely encloses the glyph.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT.gmfBlackBoxY">
<summary>
Specifies the height of the smallest rectangle (the glyph's black box) that completely encloses the glyph.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT.gmfptGlyphOrigin">
<summary>
Specifies the x and y coordinates of the upper-left corner of the smallest rectangle that completely encloses the glyph.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT.gmfCellIncX">
<summary>
Specifies the horizontal distance from the origin of the current character cell to the origin of the next character cell.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT.gmfCellIncY">
<summary>
Specifies the vertical distance from the origin of the current character cell to the origin of the next character cell.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR">
<summary>
The <b>PIXELFORMATDESCRIPTOR</b> structure describes the pixel format of a drawing surface.
</summary>
<remarks>
Please notice carefully, as documented in the members, that certain pixel format properties are not supported
in the current generic implementation. The generic implementation is the Microsoft GDI software
implementation of OpenGL. Hardware manufacturers may enhance parts of OpenGL, and may support some
pixel format properties not supported by the generic implementation.
</remarks>
<seealso cref="M:Tao.Platform.Windows.Gdi.ChoosePixelFormat(System.IntPtr,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)"/>
seealso cref="DescribePixelFormat" />
seealso cref="GetPixelFormat" />
<seealso cref="M:Tao.Platform.Windows.Gdi.SetPixelFormat(System.IntPtr,System.Int32,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)"/>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.nSize">
<summary>
Specifies the size of this data structure. This value should be set to <c>sizeof(PIXELFORMATDESCRIPTOR)</c>.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.nVersion">
<summary>
Specifies the version of this data structure. This value should be set to 1.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.dwFlags">
<summary>
A set of bit flags that specify properties of the pixel buffer. The properties are generally not mutually exclusive;
you can set any combination of bit flags, with the exceptions noted.
</summary>
<remarks>
<para>The following bit flag constants are defined:</para>
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>PFD_DRAW_TO_WINDOW</term>
<description>The buffer can draw to a window or device surface.</description>
</item>
<item>
<term>PFD_DRAW_TO_BITMAP</term>
<description>The buffer can draw to a memory bitmap.</description>
</item>
<item>
<term>PFD_SUPPORT_GDI</term>
<description>
The buffer supports GDI drawing. This flag and PFD_DOUBLEBUFFER are mutually exclusive
in the current generic implementation.
</description>
</item>
<item>
<term>PFD_SUPPORT_OPENGL</term>
<description>The buffer supports OpenGL drawing.</description>
</item>
<item>
<term>PFD_GENERIC_ACCELERATED</term>
<description>
The pixel format is supported by a device driver that accelerates the generic implementation.
If this flag is clear and the PFD_GENERIC_FORMAT flag is set, the pixel format is supported by
the generic implementation only.
</description>
</item>
<item>
<term>PFD_GENERIC_FORMAT</term>
<description>
The pixel format is supported by the GDI software implementation, which is also known as the
generic implementation. If this bit is clear, the pixel format is supported by a device
driver or hardware.
</description>
</item>
<item>
<term>PFD_NEED_PALETTE</term>
<description>
The buffer uses RGBA pixels on a palette-managed device. A logical palette is required to achieve
the best results for this pixel type. Colors in the palette should be specified according to the
values of the <b>cRedBits</b>, <b>cRedShift</b>, <b>cGreenBits</b>, <b>cGreenShift</b>,
<b>cBluebits</b>, and <b>cBlueShift</b> members. The palette should be created and realized in
the device context before calling <see cref="M:Tao.Platform.Windows.Wgl.wglMakeCurrent(System.IntPtr,System.IntPtr)"/>.
</description>
</item>
<item>
<term>PFD_NEED_SYSTEM_PALETTE</term>
<description>
Defined in the pixel format descriptors of hardware that supports one hardware palette in
256-color mode only. For such systems to use hardware acceleration, the hardware palette must be in
a fixed order (for example, 3-3-2) when in RGBA mode or must match the logical palette when in
color-index mode.
When this flag is set, you must call SetSystemPaletteUse in your program to force a one-to-one
mapping of the logical palette and the system palette. If your OpenGL hardware supports multiple
hardware palettes and the device driver can allocate spare hardware palettes for OpenGL, this
flag is typically clear.
This flag is not set in the generic pixel formats.
</description>
</item>
<item>
<term>PFD_DOUBLEBUFFER</term>
<description>
The buffer is double-buffered. This flag and PFD_SUPPORT_GDI are mutually exclusive in the
current generic implementation.
</description>
</item>
<item>
<term>PFD_STEREO</term>
<description>
The buffer is stereoscopic. This flag is not supported in the current generic implementation.
</description>
</item>
<item>
<term>PFD_SWAP_LAYER_BUFFERS</term>
<description>
Indicates whether a device can swap individual layer planes with pixel formats that include
double-buffered overlay or underlay planes. Otherwise all layer planes are swapped together
as a group. When this flag is set, <b>wglSwapLayerBuffers</b> is supported.
</description>
</item>
</list>
<para>You can specify the following bit flags when calling <see cref="M:Tao.Platform.Windows.Gdi.ChoosePixelFormat(System.IntPtr,Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR@)"/>.</para>
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>PFD_DEPTH_DONTCARE</term>
<description>
The requested pixel format can either have or not have a depth buffer. To select
a pixel format without a depth buffer, you must specify this flag. The requested pixel format
can be with or without a depth buffer. Otherwise, only pixel formats with a depth buffer
are considered.
</description>
</item>
<item>
<term>PFD_DOUBLEBUFFER_DONTCARE</term>
<description>The requested pixel format can be either single- or double-buffered.</description>
</item>
<item>
<term>PFD_STEREO_DONTCARE</term>
<description>The requested pixel format can be either monoscopic or stereoscopic.</description>
</item>
</list>
<para>
With the <b>glAddSwapHintRectWIN</b> extension function, two new flags are included for the
<b>PIXELFORMATDESCRIPTOR</b> pixel format structure.
</para>
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>PFD_SWAP_COPY</term>
<description>
Specifies the content of the back buffer in the double-buffered main color plane following
a buffer swap. Swapping the color buffers causes the content of the back buffer to be copied
to the front buffer. The content of the back buffer is not affected by the swap. PFD_SWAP_COPY
is a hint only and might not be provided by a driver.
</description>
</item>
<item>
<term>PFD_SWAP_EXCHANGE</term>
<description>
Specifies the content of the back buffer in the double-buffered main color plane following a
buffer swap. Swapping the color buffers causes the exchange of the back buffer's content
with the front buffer's content. Following the swap, the back buffer's content contains the
front buffer's content before the swap. PFD_SWAP_EXCHANGE is a hint only and might not be
provided by a driver.
</description>
</item>
</list>
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.iPixelType">
<summary>
Specifies the type of pixel data. The following types are defined.
</summary>
<remarks>
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>PFD_TYPE_RGBA</term>
<description>
RGBA pixels. Each pixel has four components in this order: red, green, blue, and alpha.
</description>
</item>
<item>
<term>PFD_TYPE_COLORINDEX</term>
<description>Color-index pixels. Each pixel uses a color-index value.</description>
</item>
</list>
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cColorBits">
<summary>
Specifies the number of color bitplanes in each color buffer. For RGBA pixel types, it is the size
of the color buffer, excluding the alpha bitplanes. For color-index pixels, it is the size of the
color-index buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cRedBits">
<summary>
Specifies the number of red bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cRedShift">
<summary>
Specifies the shift count for red bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cGreenBits">
<summary>
Specifies the number of green bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cGreenShift">
<summary>
Specifies the shift count for green bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cBlueBits">
<summary>
Specifies the number of blue bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cBlueShift">
<summary>
Specifies the shift count for blue bitplanes in each RGBA color buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAlphaBits">
<summary>
Specifies the number of alpha bitplanes in each RGBA color buffer. Alpha bitplanes are not supported.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAlphaShift">
<summary>
Specifies the shift count for alpha bitplanes in each RGBA color buffer. Alpha bitplanes are not supported.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAccumBits">
<summary>
Specifies the total number of bitplanes in the accumulation buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAccumRedBits">
<summary>
Specifies the number of red bitplanes in the accumulation buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAccumGreenBits">
<summary>
Specifies the number of green bitplanes in the accumulation buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAccumBlueBits">
<summary>
Specifies the number of blue bitplanes in the accumulation buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAccumAlphaBits">
<summary>
Specifies the number of alpha bitplanes in the accumulation buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cDepthBits">
<summary>
Specifies the depth of the depth (z-axis) buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cStencilBits">
<summary>
Specifies the depth of the stencil buffer.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.cAuxBuffers">
<summary>
Specifies the number of auxiliary buffers. Auxiliary buffers are not supported.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.iLayerType">
<summary>
Ignored. Earlier implementations of OpenGL used this member, but it is no longer used.
</summary>
<remarks>Specifies the type of layer.</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.bReserved">
<summary>
Specifies the number of overlay and underlay planes. Bits 0 through 3 specify up to 15 overlay planes and
bits 4 through 7 specify up to 15 underlay planes.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.dwLayerMask">
<summary>
Ignored. Earlier implementations of OpenGL used this member, but it is no longer used.
</summary>
<remarks>
Specifies the layer mask. The layer mask is used in conjunction with the visible mask to determine
if one layer overlays another.
</remarks>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.dwVisibleMask">
<summary>
Specifies the transparent color or index of an underlay plane. When the pixel type is RGBA, <b>dwVisibleMask</b>
is a transparent RGB color value. When the pixel type is color index, it is a transparent index value.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.PIXELFORMATDESCRIPTOR.dwDamageMask">
<summary>
Ignored. Earlier implementations of OpenGL used this member, but it is no longer used.
</summary>
<remarks>
Specifies whether more than one pixel format shares the same frame buffer. If the result of the bitwise
AND of the damage masks between two pixel formats is nonzero, then they share the same buffers.
</remarks>
</member>
<member name="T:Tao.Platform.Windows.Gdi.POINTFLOAT">
<summary>
The <b>POINTFLOAT</b> structure contains the x and y coordinates of a point.
</summary>
<seealso cref="T:Tao.Platform.Windows.Gdi.GLYPHMETRICSFLOAT"/>
</member>
<member name="F:Tao.Platform.Windows.Gdi.POINTFLOAT.X">
<summary>
Specifies the horizontal (x) coordinate of a point.
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.POINTFLOAT.Y">
<summary>
Specifies the vertical (y) coordinate of a point.
</summary>
</member>
<member name="T:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.nSize">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.nVersion">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.dwFlags">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.iPixelType">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cColorBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cRedBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cRedShift">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cGreenBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cGreenShift">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cBlueBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cBlueShift">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAlphaBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAlphaShift">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAccumBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAccumRedBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAccumGreenBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAccumBlueBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAccumAlphaBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cDepthBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cStencilBits">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.cAuxBuffers">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.iLayerPlane">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.bReserved">
<summary>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.LAYERPLANEDESCRIPTOR.crTransparent">
<summary>
</summary>
</member>
<member name="T:Tao.Platform.Windows.Gdi.DevCaps">
<summary>
Flags for <see cref="M:Tao.Platform.Windows.Gdi.GetDeviceCaps(System.IntPtr,System.Int32)"/>
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.DRIVERVERSION">
<summary>
Device driver version
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.TECHNOLOGY">
<summary>
Device classification
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.HORZSIZE">
<summary>
Horizontal size in millimeters
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.VERTSIZE">
<summary>
Vertical size in millimeters
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.HORZRES">
<summary>
Horizontal width in pixels
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.VERTRES">
<summary>
Vertical height in pixels
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.BITSPIXEL">
<summary>
Number of bits per pixel
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PLANES">
<summary>
Number of planes
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMBRUSHES">
<summary>
Number of brushes the device has
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMPENS">
<summary>
Number of pens the device has
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMMARKERS">
<summary>
Number of markers the device has
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMFONTS">
<summary>
Number of fonts the device has
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMCOLORS">
<summary>
Number of colors the device supports
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PDEVICESIZE">
<summary>
Size required for device descriptor
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.CURVECAPS">
<summary>
Curve capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.LINECAPS">
<summary>
Line capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.POLYGONALCAPS">
<summary>
Polygonal capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.TEXTCAPS">
<summary>
Text capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.CLIPCAPS">
<summary>
Clipping capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.RASTERCAPS">
<summary>
Bitblt capabilities
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.ASPECTX">
<summary>
Length of the X leg
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.ASPECTY">
<summary>
Length of the Y leg
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.ASPECTXY">
<summary>
Length of the hypotenuse
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.SHADEBLENDCAPS">
<summary>
Shading and Blending caps
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.LOGPIXELSX">
<summary>
Logical pixels inch in X
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.LOGPIXELSY">
<summary>
Logical pixels inch in Y
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.SIZEPALETTE">
<summary>
Number of entries in physical palette
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.NUMRESERVED">
<summary>
Number of reserved entries in palette
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.COLORRES">
<summary>
Actual color resolution
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PHYSICALWIDTH">
<summary>
Physical Width in device units
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PHYSICALHEIGHT">
<summary>
Physical Height in device units
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PHYSICALOFFSETX">
<summary>
Physical Printable Area x margin
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.PHYSICALOFFSETY">
<summary>
Physical Printable Area y margin
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.SCALINGFACTORX">
<summary>
Scaling factor x
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.SCALINGFACTORY">
<summary>
Scaling factor y
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.VREFRESH">
<summary>
Current vertical refresh rate of the display device (for displays only) in Hz
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.DESKTOPVERTRES">
<summary>
Horizontal width of entire desktop in pixels
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.DESKTOPHORZRES">
<summary>
Vertical height of entire desktop in pixels
</summary>
</member>
<member name="F:Tao.Platform.Windows.Gdi.DevCaps.BLTALIGNMENT">
<summary>
Preferred blt alignment
</summary>
</member>
</members>
</doc>