ShutdownBlockReasonQuery 函数 (winuser.h)
检索 ShutdownBlockReasonCreate 函数设置的原因字符串。
语法
BOOL ShutdownBlockReasonQuery(
[in] HWND hWnd,
[out, optional] LPWSTR pwszBuff,
[in, out] DWORD *pcchBuff
);
参数
[in] hWnd
应用程序main窗口的句柄。
[out, optional] pwszBuff
指向接收原因字符串的缓冲区的指针。 如果此参数为 NULL,则该函数将检索原因字符串中的字符数。
[in, out] pcchBuff
指向变量的指针,该变量指定 pwszBuff 缓冲区的大小(以字符为单位)。 如果函数成功,则此变量接收复制到缓冲区中的字符数,包括 null 终止字符。 如果缓冲区太小,变量将接收所需的缓冲区大小(以字符为单位),不包括 null 终止字符。
返回值
如果调用成功,则返回值为非零值。
如果调用失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
只能从创建 由 hWnd 参数指定的窗口的线程调用此函数。 否则,函数将失败,最后一个错误代码ERROR_ACCESS_DENIED。
示例
以下示例检索所需的缓冲区大小,为原因字符串分配内存,检索原因字符串,并将字符串显示为调试输出。
#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;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |