93 lines
1.9 KiB
C++
93 lines
1.9 KiB
C++
|
#include "pch.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#define STRING_BUFFER_SIZE 80
|
||
|
|
||
|
void InitReminderComboBox(HWND hDlg, HWND combo)
|
||
|
{
|
||
|
for(int i = 0; i < TIMEOUT_INX_COUNT; i++)
|
||
|
{
|
||
|
TCHAR buffer[STRING_BUFFER_SIZE];
|
||
|
if (0 == LoadString(ghInstance, ReminderTimes[i].stringResId, buffer, STRING_BUFFER_SIZE))
|
||
|
{
|
||
|
DEBUGMSG("WUAUCLT String resource %d not found", ReminderTimes[i].stringResId);
|
||
|
QUITAUClient();
|
||
|
return;
|
||
|
}
|
||
|
LRESULT lr = SendMessage(combo, CB_INSERTSTRING, i, (LPARAM)buffer);
|
||
|
if (CB_ERR == lr)
|
||
|
{
|
||
|
DEBUGMSG("REMINDER: fail to insert string to combobox %S", buffer);
|
||
|
}
|
||
|
}
|
||
|
SendMessage(combo, CB_SETCURSEL, 0, 0);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
BOOL CALLBACK ReminderDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM /*lParam*/)
|
||
|
{
|
||
|
//fixcode: no need static
|
||
|
static HWND combo;
|
||
|
static HWND oldCurrentDlg;
|
||
|
|
||
|
switch(message)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
oldCurrentDlg = ghCurrentDialog;
|
||
|
ghCurrentDialog = hWnd;
|
||
|
gTopWins.Add(hWnd);
|
||
|
combo = GetDlgItem(hWnd, IDC_REMINDTIME);
|
||
|
InitReminderComboBox(hWnd, combo);
|
||
|
SetFocus(combo);
|
||
|
return TRUE;
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
switch(LOWORD(wParam))
|
||
|
{
|
||
|
case IDC_OK:
|
||
|
{
|
||
|
#ifdef TESTUI
|
||
|
EndDialog(hWnd, S_OK);
|
||
|
return 0;
|
||
|
#else
|
||
|
UINT index = (LONG)SendMessage(combo, CB_GETCURSEL, 0, 0);
|
||
|
gInternals->m_setReminderTimeout(index);
|
||
|
EndDialog(hWnd, S_OK);
|
||
|
QUITAUClient(); //Stop the client's execution when user sets remind me later
|
||
|
return 0;
|
||
|
#endif
|
||
|
}
|
||
|
case IDCANCEL:
|
||
|
case IDC_CANCEL:
|
||
|
{
|
||
|
EndDialog(hWnd, S_FALSE);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
/*
|
||
|
case WM_CLOSE:
|
||
|
{
|
||
|
UINT index = SendMessage(combo, CB_GETCURSEL, 0, 0);
|
||
|
|
||
|
setReminderTime(index);
|
||
|
EndDialog(hWnd, S_FALSE);
|
||
|
return TRUE;
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
case WM_DESTROY:
|
||
|
ghCurrentDialog = oldCurrentDlg;
|
||
|
gTopWins.Remove(hWnd);
|
||
|
return 0;
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
return FALSE;
|
||
|
}
|