Partager via


Fonction ShutdownBlockReasonQuery (winuser.h)

Récupère la chaîne de raison définie par la fonction ShutdownBlockReasonCreate .

Syntaxe

BOOL ShutdownBlockReasonQuery(
  [in]            HWND   hWnd,
  [out, optional] LPWSTR pwszBuff,
  [in, out]       DWORD  *pcchBuff
);

Paramètres

[in] hWnd

Handle de la fenêtre main de l’application.

[out, optional] pwszBuff

Pointeur vers une mémoire tampon qui reçoit la chaîne de motif. Si ce paramètre a la valeur NULL, la fonction récupère le nombre de caractères dans la chaîne de motif.

[in, out] pcchBuff

Pointeur vers une variable qui spécifie la taille de la mémoire tampon pwszBuff , en caractères. Si la fonction réussit, cette variable reçoit le nombre de caractères copiés dans la mémoire tampon, y compris le caractère de fin null. Si la mémoire tampon est trop petite, la variable reçoit la taille de mémoire tampon requise, en caractères, sans compter le caractère de fin null.

Valeur retournée

Si l’appel réussit, la valeur de retour est différente de zéro.

Si l’appel échoue, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Cette fonction ne peut être appelée qu’à partir du thread qui a créé la fenêtre spécifiée par le paramètre hWnd . Sinon, la fonction échoue et le dernier code d’erreur est ERROR_ACCESS_DENIED.

Exemples

L’exemple suivant récupère la taille de mémoire tampon requise, alloue de la mémoire pour la chaîne de raison, récupère la chaîne de raison et affiche la chaîne en tant que sortie de débogage.

#include <windows.h>

#pragma comment(lib, "User32.lib")

HWND hWnd;

BOOL DisplayShutdownBlockReason()
{
    DWORD cch=0;

    if (ShutdownBlockReasonQuery(hWnd, NULL, &cch)) 
    { 
        WCHAR *pch = (WCHAR *)LocalAlloc(LMEM_FIXED, cch * sizeof(*pch)); 
        if (NULL != pch) 
        { 
            if (ShutdownBlockReasonQuery(hWnd, pch, &cch)) 
            { 
                OutputDebugStringW(L"Shutdown block reason: "); 
                OutputDebugStringW(pch); 
                OutputDebugStringW(L"\n"); 
            } 
            LocalFree(pch); 
            return TRUE;
        } 
    }
    return FALSE;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

ShutdownBlockReasonCreate

Fermeture