На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Handling Logoff Events



Win32 services that interact with the user should be prepared to handle logoff events. When a logoff event occurs, the Win32 service must close all handles to the user's window station and desktop.

This sample demonstrates how the message box in the interaction example code should be dismissed at logoff. The ConsoleCtrlHandler function in this example is a HandlerRoutine that was specified by a call to the SetConsoleCtrlHandler function.

BOOL CALLBACK EnumProc(
HWND hwnd,
LPARAM lParam)
{
/*
* Send a WM_CLOSE to destroy the window, because DestroyWindow does
* not work across threads.
*/
SendMessage(hwnd, WM_CLOSE, 0, 0);
return TRUE;
}

BOOL ConsoleCtrlHandler(
DWORD dwCtrlType)
{
if (dwCtrlType == CTRL_LOGOFF_EVENT && dwGuiThreadId != 0) {
SetThreadDesktop(GetThreadDesktop(dwGuiThreadId));
EnumThreadWindows(dwGuiThreadId, EnumProc, 0);

}
return FALSE;
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Обработка Конца сеанса Событий



Win32 обслуживает, что взаимодействует с потребителем должно быть подготовлено, чтобы оперировать конец сеанса событий. Когда конец сеанса случая происходит, услуга Win32 должна закрыть всем ручкам на станцию окна потребителя и настольной системы.

Этот образец демонстрирует как ящик сообщения в коде примера взаимодействия должен быть распущен в конце сеанса. Функция ConsoleCtrlHandler в этом примере - HandlerRoutine, что был определен вызовом в функцию SetConsoleCtrlHandler.

BOOL CALLBACK EnumProc( HWND hwnd, LPARAM lParam)
{
/*
* Пошлите WM_CLOSE, чтобы уничтожать окно, поскольку DestroyWindow делает
* не работа через резьбу.
*/
SendMessage(hwnd, WM_CLOSE, 0, 0);
возвращайтесь ВЕРНО;
}

BOOL ConsoleCtrlHandler( DWORD dwCtrlType)
{
если (dwCtrlType == CTRL_LOGOFF_EVENT && dwGuiThreadId != 0) { SetThreadDesktop(GetThreadDesktop(dwGuiThreadId));
EnumThreadWindows(dwGuiThreadId, EnumProc, 0);

}
обратная ЛОЖЬ;
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz