Marshal.GetHRForLastWin32Error Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne le HRESULT correspondant à la dernière erreur provoquée par du code Win32 exécuté en utilisant Marshal.
public:
static int GetHRForLastWin32Error();
[System.Security.SecurityCritical]
public static int GetHRForLastWin32Error ();
public static int GetHRForLastWin32Error ();
[<System.Security.SecurityCritical>]
static member GetHRForLastWin32Error : unit -> int
static member GetHRForLastWin32Error : unit -> int
Public Shared Function GetHRForLastWin32Error () As Integer
Retours
HRESULT correspondant au dernier code d'erreur Win32.
- Attributs
Exemples
L’exemple suivant montre comment récupérer un HRESULT correspondant à un code d’erreur Win32 à l’aide de la GetHRForLastWin32Error méthode .
using System;
using System.Runtime.InteropServices;
internal class Win32
{
// Use DllImportAttribute to inport the Win32 MessageBox
// function. Set the SetLastError flag to true to allow
// the function to set the Win32 error.
[DllImportAttribute("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hwnd, String text, String caption, uint type);
}
class Program
{
static void Run()
{
// Call the MessageBox with an invalid window handle to
// produce a Win32 error.
Console.WriteLine("Calling Win32 MessageBox with error...");
Win32.MessageBox(new IntPtr(123132), "Press OK...", "Press OK Dialog", 0);
// Get the last error and display it.
int HRESULT = Marshal.GetHRForLastWin32Error();
Console.WriteLine("The last Win32 Error was: " + HRESULT);
}
static void Main(string[] args)
{
Run();
}
}
// This code example displays the following to the console:
//
// Calling Win32 MessageBox with error...
// The last Win32 Error was: -2147023496
Imports System.Runtime.InteropServices
Module Win32
' Use DllImportAttribute to inport the Win32 MessageBox
' function. Set the SetLastError flag to true to allow
' the function to set the Win32 error.
<DllImportAttribute("user32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)> _
Function MessageBox(ByVal hwnd As IntPtr, ByVal text As String, ByVal caption As String, ByVal type As UInt32) As Integer
End Function
End Module
Module Program
Sub Run()
' Call the MessageBox with an invalid window handle to
' produce a Win32 error.
Console.WriteLine("Calling Win32 MessageBox with error...")
Win32.MessageBox(New IntPtr(123132), "Press OK...", "Press OK Dialog", 0)
' Get the last error and display it.
Dim HRESULT As Integer
HRESULT = Marshal.GetHRForLastWin32Error()
Console.WriteLine("The last Win32 Error was: " + HRESULT)
End Sub
Sub Main(ByVal args() As String)
Run()
End Sub
End Module
' This code example displays the following to the console:
'
' Calling Win32 MessageBox with error...
' The last Win32 Error was: -2147023496
Remarques
L’indicateur de métadonnées doit être défini sur la setLastError
fonction cible. Par exemple, le SetLastError
champ du System.Runtime.InteropServices.DllImportAttribute doit être true
. Le processus de définition de cet indicateur dépend du langage source utilisé : C# et C++ sont false
par défaut, mais l’instruction Declare
dans Visual Basic est true
.