Ejemplo n.º 1
0
//----------------------------------------------------------------------------------------------------------------------
//   HOT MACH
//   returns handle, i.e., dwSerialNum
//----------------------------------------------------------------------------------------------------------------------
DWORD cListViewComputers :: hot_mach ()
{
	int iItem = ListView_GetHotItem ( hwnd );

	if ( -1 == iItem )
		return (DWORD) -1;

	LVITEM item;
	item.mask = LVIF_PARAM;
	item.iItem = iItem;

	if ( FALSE == ListView_GetItem ( hwnd, &item ) )
	{
		LOG_SYSTEM_ERROR_T ( L"ListView_GetItem" );
		return (DWORD) -1;
	}

	return item.lParam;
}
Ejemplo n.º 2
0
INT_PTR CALLBACK UpdateNotifyOptsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	HWND hwndList = GetDlgItem(hwndDlg, IDC_FEEDLIST);
	switch (msg) {
	case WM_INITDIALOG:
		TranslateDialogDefault(hwndDlg);
		SetWindowLongPtr(hwndDlg, GWLP_USERDATA, 0);
		CreateList(hwndList);
		UpdateList(hwndList);
		CheckDlgButton(hwndDlg, IDC_STARTUPRETRIEVE, db_get_b(NULL, MODULE, "StartupRetrieve", 1));
		return TRUE;

	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDC_ADD:
			CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDFEED), hwndDlg, DlgProcAddFeedOpts, (LPARAM)hwndList);
			return FALSE;

		case IDC_CHANGE:
			{
				ItemInfo SelItem = {0};
				int sel = ListView_GetSelectionMark(hwndList);
				ListView_GetItemText(hwndList, sel, 0, SelItem.nick, MAX_PATH);
				ListView_GetItemText(hwndList, sel, 1, SelItem.url, MAX_PATH);
				SelItem.hwndList = hwndList;
				SelItem.SelNumber = sel;
				CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDFEED), hwndDlg, DlgProcChangeFeedOpts, (LPARAM)&SelItem);
			}
			return FALSE;

		case IDC_REMOVE:
			if (MessageBox(hwndDlg, TranslateT("Are you sure?"), TranslateT("Contact deleting"), MB_YESNO | MB_ICONWARNING) == IDYES) {
				TCHAR nick[MAX_PATH], url[MAX_PATH];
				int sel = ListView_GetSelectionMark(hwndList);
				ListView_GetItemText(hwndList, sel, 0, nick, MAX_PATH);
				ListView_GetItemText(hwndList, sel, 1, url, MAX_PATH);

				for (HANDLE hContact = db_find_first(MODULE); hContact; hContact = db_find_next(hContact, MODULE)) {
					ptrT dbNick( db_get_tsa(hContact, MODULE, "Nick"));
					if (dbNick == NULL)
						break;
					if ( lstrcmp(dbNick, nick))
						continue;
						
					ptrT dbURL( db_get_tsa(hContact, MODULE, "URL"));
					if (dbURL == NULL)
						break;
					if ( lstrcmp(dbURL, url))
						continue;

					CallService(MS_DB_CONTACT_DELETE, (WPARAM)hContact, 0);
					ListView_DeleteItem(hwndList, sel);
					break;
				}
			}
			return FALSE;

		case IDC_IMPORT:
			CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_FEEDIMPORT), hwndDlg, DlgProcImportOpts, (LPARAM)hwndList);
			return FALSE;

		case IDC_EXPORT:
			CreateDialog(hInst, MAKEINTRESOURCE(IDD_FEEDEXPORT), hwndDlg, DlgProcExportOpts);
			return FALSE;

		case IDC_STARTUPRETRIEVE:
			SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
			break;
		}
		break;

	case WM_NOTIFY:
		{
			NMHDR *hdr = (NMHDR *)lParam;
			switch (hdr->code) {
			case PSN_APPLY:
				{
					db_set_b(NULL, MODULE, "StartupRetrieve", IsDlgButtonChecked(hwndDlg, IDC_STARTUPRETRIEVE));
					int i = 0;
					for (HANDLE hContact = db_find_first(MODULE); hContact; hContact = db_find_next(hContact, MODULE)) {
						db_set_b(hContact, MODULE, "CheckState", ListView_GetCheckState(hwndList, i));
						if (!ListView_GetCheckState(hwndList, i))
							db_set_b(hContact, "CList", "Hidden", 1);
						else
							db_unset(hContact,"CList","Hidden");
						i += 1;
					}
				}
				break;

			case NM_DBLCLK:
				{
					ItemInfo SelItem = {0};
					int sel = ListView_GetHotItem(hwndList);
					if (sel != -1) {
						ListView_GetItemText(hwndList, sel, 0, SelItem.nick, MAX_PATH);
						ListView_GetItemText(hwndList, sel, 1, SelItem.url, MAX_PATH);
						SelItem.hwndList = hwndList;
						SelItem.SelNumber = sel;
						CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDFEED), hwndDlg, DlgProcChangeFeedOpts, (LPARAM)&SelItem);
					}
					break;
				}

			case LVN_ITEMCHANGED:
				{
					NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam;
					if (((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK) && !UpdateListFlag)
						SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
					break;
				}
			}
		}
	}//end* switch (msg)
	return FALSE;
}