152 lines
3.4 KiB
C++
152 lines
3.4 KiB
C++
|
#include "private.h" // Class Definitions
|
||
|
|
||
|
|
||
|
|
||
|
BOOL PromptToGoOffline(VOID);
|
||
|
BOOL PromptToGoOnline(VOID);
|
||
|
BOOL CALLBACK GoOfflinePromptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||
|
LPARAM lParam);
|
||
|
BOOL CALLBACK GoOnlinePromptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||
|
LPARAM lParam);
|
||
|
|
||
|
// Make sure that Notification Sinks are apartment model and hence are always called back
|
||
|
// on the same thread making it unnecessary to use any critical sections -- APPCOMPAT
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
// TRUE means that the state now is Online
|
||
|
// FALSE means that the user chose to remain Offline
|
||
|
|
||
|
BOOL
|
||
|
OnConnectedNotification(void)
|
||
|
{
|
||
|
BOOL fRet = TRUE;
|
||
|
|
||
|
// Check to see if the user is offline and wants to "go online"
|
||
|
if((IsGlobalOffline()))
|
||
|
{
|
||
|
//Ask the user with a dialog
|
||
|
fRet = PromptToGoOnline();
|
||
|
}
|
||
|
|
||
|
return fRet;
|
||
|
}
|
||
|
|
||
|
// TRUE means that the state now is Offline
|
||
|
// FALSE means that the user chose to remain Online
|
||
|
|
||
|
BOOL
|
||
|
OnDisconnectedNotification(void)
|
||
|
{
|
||
|
BOOL fRet = TRUE;
|
||
|
// Check to see if the user wants to go offline
|
||
|
if(!(IsGlobalOffline()))
|
||
|
{
|
||
|
//Ask the user with a dialog, if the user says yes, then
|
||
|
// toggle to offline mode by calling wininet
|
||
|
fRet = PromptToGoOffline();
|
||
|
}
|
||
|
|
||
|
|
||
|
return fRet;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL PromptToGoOffline(VOID)
|
||
|
{
|
||
|
|
||
|
// run the dialog
|
||
|
BOOL fRet = DialogBoxParam(MLGetHinst(),MAKEINTRESOURCE(IDD_GO_OFFLINE_DLG),
|
||
|
NULL,GoOfflinePromptDlgProc,(LPARAM) 0);
|
||
|
|
||
|
return fRet;
|
||
|
}
|
||
|
|
||
|
/*******************************************************************
|
||
|
|
||
|
NAME: GoOfflinePromptDlgProc
|
||
|
|
||
|
SYNOPSIS: Dialog proc for Go Offline dialog
|
||
|
|
||
|
********************************************************************/
|
||
|
BOOL CALLBACK GoOfflinePromptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||
|
LPARAM lParam)
|
||
|
{
|
||
|
switch (uMsg) {
|
||
|
case WM_INITDIALOG:
|
||
|
SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0,
|
||
|
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||
|
return TRUE;
|
||
|
break;
|
||
|
case WM_COMMAND:
|
||
|
switch (wParam) {
|
||
|
case IDOK:
|
||
|
SetGlobalOffline(TRUE);
|
||
|
EndDialog(hDlg,TRUE);
|
||
|
return TRUE;
|
||
|
break;
|
||
|
case IDCANCEL:
|
||
|
EndDialog(hDlg,FALSE);
|
||
|
return TRUE;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL PromptToGoOnline(VOID)
|
||
|
{
|
||
|
|
||
|
// run the dialog
|
||
|
BOOL fRet = DialogBoxParam(MLGetHinst(),MAKEINTRESOURCE(IDD_GO_ONLINE_DLG),
|
||
|
NULL,GoOnlinePromptDlgProc,(LPARAM) 0);
|
||
|
|
||
|
return fRet;
|
||
|
}
|
||
|
|
||
|
/*******************************************************************
|
||
|
|
||
|
NAME: GoOnlinePromptDlgProc
|
||
|
|
||
|
SYNOPSIS: Dialog proc for Go Online dialog
|
||
|
|
||
|
********************************************************************/
|
||
|
BOOL CALLBACK GoOnlinePromptDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||
|
LPARAM lParam)
|
||
|
{
|
||
|
switch (uMsg) {
|
||
|
case WM_INITDIALOG:
|
||
|
return TRUE;
|
||
|
break;
|
||
|
case WM_COMMAND:
|
||
|
switch (wParam) {
|
||
|
case IDOK:
|
||
|
SetGlobalOffline(FALSE);
|
||
|
EndDialog(hDlg,TRUE);
|
||
|
return TRUE;
|
||
|
break;
|
||
|
case IDCANCEL:
|
||
|
EndDialog(hDlg,FALSE);
|
||
|
return TRUE;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return FALSE;
|
||
|
}
|