Compartir a través de


Función ShutdownBlockReasonQuery (winuser.h)

Recupera la cadena de motivo establecida por la función ShutdownBlockReasonCreate .

Sintaxis

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

Parámetros

[in] hWnd

Identificador de la ventana principal de la aplicación.

[out, optional] pwszBuff

Puntero a un búfer que recibe la cadena de motivo. Si este parámetro es NULL, la función recupera el número de caracteres de la cadena de motivo.

[in, out] pcchBuff

Puntero a una variable que especifica el tamaño del búfer pwszBuff , en caracteres. Si la función se ejecuta correctamente, esta variable recibe el número de caracteres copiados en el búfer, incluido el carácter de terminación null. Si el búfer es demasiado pequeño, la variable recibe el tamaño de búfer necesario, en caracteres, no incluido el carácter de terminación null.

Valor devuelto

Si la llamada se realiza correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la llamada, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Esta función solo se puede llamar desde el subproceso que creó la ventana especificada por el parámetro hWnd . De lo contrario, se produce un error en la función y se ERROR_ACCESS_DENIED el último código de error.

Ejemplos

En el ejemplo siguiente se recupera el tamaño de búfer necesario, se asigna memoria para la cadena de motivo, se recupera la cadena de motivo y se muestra la cadena como salida de depuración.

#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;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

ShutdownBlockReasonCreate

Cerrando