2018-05-13 23:41:49 -04:00
|
|
|
|
using System;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
|
|
|
|
namespace Vanara.PInvoke
|
|
|
|
|
{
|
|
|
|
|
public static partial class Kernel32
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
2019-07-20 12:29:06 -04:00
|
|
|
|
/// Generates simple tones on the speaker. The function is synchronous; it performs an alertable wait and does not return control to
|
|
|
|
|
/// its caller until the sound finishes.
|
2018-05-13 23:41:49 -04:00
|
|
|
|
/// </summary>
|
2019-07-20 12:29:06 -04:00
|
|
|
|
/// <param name="dwFreq">
|
|
|
|
|
/// The frequency of the sound, in hertz. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF).
|
|
|
|
|
/// </param>
|
2018-05-13 23:41:49 -04:00
|
|
|
|
/// <param name="dwDuration">The duration of the sound, in milliseconds.</param>
|
|
|
|
|
/// <returns>
|
|
|
|
|
/// <para>If the function succeeds, the return value is nonzero.</para>
|
|
|
|
|
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
|
|
|
|
|
/// </returns>
|
|
|
|
|
// BOOL WINAPI Beep( _In_ DWORD dwFreq, _In_ DWORD dwDuration); https://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
|
|
|
|
|
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
|
|
|
|
|
[PInvokeData("WinBase.h", MSDNShortId = "ms679277")]
|
|
|
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
|
|
|
public static extern bool Beep(uint dwFreq, uint dwDuration);
|
|
|
|
|
|
|
|
|
|
/// <summary>Decodes a pointer that was previously encoded with <c>EncodePointer</c>.</summary>
|
|
|
|
|
/// <param name="Ptr">The pointer to be decoded.</param>
|
|
|
|
|
/// <returns>The function returns the decoded pointer.</returns>
|
|
|
|
|
// PVOID DecodePointer( PVOID Ptr ); https://msdn.microsoft.com/en-us/library/bb432242(v=vs.85).aspx
|
|
|
|
|
[DllImport(Lib.Kernel32, SetLastError = false, ExactSpelling = true)]
|
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "bb432242")]
|
|
|
|
|
public static extern IntPtr DecodePointer([In] IntPtr Ptr);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <para>
|
2019-07-20 12:29:06 -04:00
|
|
|
|
/// [Some information relates to pre-released product which may be substantially modified before it's commercially released.
|
|
|
|
|
/// Microsoft makes no warranties, express or implied, with respect to the information provided here.]
|
2018-05-13 23:41:49 -04:00
|
|
|
|
/// </para>
|
|
|
|
|
/// <para>Decodes a pointer in a specified process that was previously encoded with <c>EncodePointer</c> or <c>EncodeRemotePointer</c>.</para>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ProcessHandle">Handle to the remote process that owns the pointer.</param>
|
|
|
|
|
/// <param name="Ptr">The pointer to be decoded.</param>
|
|
|
|
|
/// <param name="DecodedPtr">The decoded pointer.</param>
|
|
|
|
|
/// <returns>Returns S_OK if successful, otherwise the function failed.</returns>
|
|
|
|
|
// HRESULT WINAPI DecodeRemotePointer( _In_ HANDLE ProcessHandle, _In_opt_ PVOID Ptr, _Out_ PVOID * DecodedPtr ); https://msdn.microsoft.com/en-us/library/dn877133(v=vs.85).aspx
|
2019-07-20 12:29:06 -04:00
|
|
|
|
[DllImport(Lib.KernelBase, SetLastError = false, ExactSpelling = true)]
|
2018-05-13 23:41:49 -04:00
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "dn877133")]
|
2018-10-26 14:24:07 -04:00
|
|
|
|
public static extern HRESULT DecodeRemotePointer(HPROCESS ProcessHandle, IntPtr Ptr, out IntPtr DecodedPtr);
|
2018-05-13 23:41:49 -04:00
|
|
|
|
|
|
|
|
|
/// <summary>Decodes a pointer that was previously encoded with EncodeSystemPointer.</summary>
|
|
|
|
|
/// <param name="Ptr">The system pointer to be decoded.</param>
|
|
|
|
|
/// <returns>The function returns the decoded pointer.</returns>
|
|
|
|
|
// PVOID DecodeSystemPointer( PVOID Ptr ); https://msdn.microsoft.com/en-us/library/bb432243(v=vs.85).aspx
|
|
|
|
|
[DllImport(Lib.Kernel32, SetLastError = false, ExactSpelling = true)]
|
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "bb432243")]
|
|
|
|
|
public static extern IntPtr DecodeSystemPointer([In] IntPtr Ptr);
|
|
|
|
|
|
|
|
|
|
/// <summary>Encodes the specified pointer. Encoded pointers can be used to provide another layer of protection for pointer values.</summary>
|
|
|
|
|
/// <param name="Ptr">The pointer to be encoded.</param>
|
|
|
|
|
/// <returns>The function returns the encoded pointer.</returns>
|
|
|
|
|
// PVOID EncodePointer( _In_ PVOID Ptr ); https://msdn.microsoft.com/en-us/library/bb432254(v=vs.85).aspx
|
|
|
|
|
[DllImport(Lib.Kernel32, SetLastError = false, ExactSpelling = true)]
|
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "bb432254")]
|
|
|
|
|
public static extern IntPtr EncodePointer([In] IntPtr Ptr);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <para>
|
2019-07-20 12:29:06 -04:00
|
|
|
|
/// [Some information relates to pre-released product which may be substantially modified before it's commercially released.
|
|
|
|
|
/// Microsoft makes no warranties, express or implied, with respect to the information provided here.]
|
|
|
|
|
/// </para>
|
|
|
|
|
/// <para>
|
|
|
|
|
/// Encodes the specified pointer of the specified process. Encoded pointers can be used to provide another layer of protection for
|
|
|
|
|
/// pointer values.
|
2018-05-13 23:41:49 -04:00
|
|
|
|
/// </para>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ProcessHandle">Handle to the remote process that owns the pointer.</param>
|
|
|
|
|
/// <param name="Ptr">The pointer to be encoded.</param>
|
|
|
|
|
/// <param name="EncodedPtr">The encoded pointer.</param>
|
|
|
|
|
/// <returns>Returns S_OK if successful, otherwise the function failed.</returns>
|
|
|
|
|
// HRESULT WINAPI EncodeRemotePointer( _In_ HANDLE ProcessHandle, _In_opt_ PVOID Ptr, _Out_ PVOID * EncodedPtr ); https://msdn.microsoft.com/en-us/library/dn877135(v=vs.85).aspx
|
2019-07-20 12:29:06 -04:00
|
|
|
|
[DllImport(Lib.KernelBase, SetLastError = false, ExactSpelling = true)]
|
2018-05-13 23:41:49 -04:00
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "dn877135")]
|
2018-10-26 14:24:07 -04:00
|
|
|
|
public static extern HRESULT EncodeRemotePointer(HPROCESS ProcessHandle, IntPtr Ptr, out IntPtr EncodedPtr);
|
2018-05-13 23:41:49 -04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2019-07-20 12:29:06 -04:00
|
|
|
|
/// Encodes the specified pointer with a system-specific value. Encoded pointers can be used to provide another layer of protection
|
|
|
|
|
/// for pointer values.
|
2018-05-13 23:41:49 -04:00
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="Ptr">The system pointer to be encoded.</param>
|
|
|
|
|
/// <returns>The function returns the encoded pointer.</returns>
|
|
|
|
|
// PVOID EncodeSystemPointer( PVOID Ptr ); https://msdn.microsoft.com/en-us/library/bb432255(v=vs.85).aspx
|
|
|
|
|
[DllImport(Lib.Kernel32, SetLastError = false, ExactSpelling = true)]
|
|
|
|
|
[PInvokeData("UtilApiSet.h", MSDNShortId = "bb432255")]
|
|
|
|
|
public static extern IntPtr EncodeSystemPointer([In] IntPtr Ptr);
|
|
|
|
|
}
|
|
|
|
|
}
|