Registering for Policy Refresh Notification
The following code example shows how to be aware of a policy refresh by using a background thread to receive notifications.
//
// Call CreateThread to monitor for Group Policy notifications.
//
hThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) NotifyThread,
0, 0, &dwID);
// Group Policy notification thread.
// When the events are signaled, a message is added to the main window.
DWORD NotifyThread (DWORD dwDummy)
{
HANDLE hHandles[3];
DWORD dwResult;
// This code assumes that hMachineEvent and hUserEvent
// have been initialized.
RegisterGPNotification(hMachineEvent, TRUE);
RegisterGPNotification(hUserEvent, FALSE);
hHandles[0] = hExit;
hHandles[1] = hMachineEvent;
hHandles[2] = hUserEvent;
while (TRUE)
{
dwResult = WaitForMultipleObjects (3, hHandles, FALSE, INFINITE);
if ((dwResult == WAIT_FAILED) || ((dwResult - WAIT_OBJECT_0) == 0)) {
if (dwResult == WAIT_FAILED) {
AddString (TEXT("WaitForMultipleObjects failed."));
}
break;
}
if ((dwResult - WAIT_OBJECT_0) == 1) {
AddString (TEXT("Machine notify event signaled."));
} else {
AddString (TEXT("User notify event signaled."));
}
}
UnregisterGPNotification(hMachineEvent);
UnregisterGPNotification(hUserEvent);
return 0;
}