⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filterwnd.c

📁 一文件过滤与加密,系统监视以及控制的东东,自己看
💻 C
📖 第 1 页 / 共 3 页
字号:
	      {		_FilterWnd_RemoveProgramItem (g_hwndPrograms, g_hfltCurrent) ;		hFilterSet = SpySrv_GetFilterSet () ;				SpySrv_LockFilterSet () ;		FilterSet_Remove (hFilterSet, g_hfltCurrent) ;		SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;				Filter_Destroy (g_hfltCurrent) ;		g_hfltCurrent = NULL ;				SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;	      }	  }	  return 0 ; //  ======== "Remove" command on program list ========	case IDM_RULE_ADD: //  ======== "Add" command on rule list ========	  {	    FILTRULE * pRule ;	    	    // is the filter selected ?	    if( ! g_hfltCurrent )  return 0 ;	    	    // alloc new rule	    pRule = (FILTRULE*) calloc (1, sizeof(FILTRULE)) ;	    	    // change rule	    if( IDOK==RuleDlg_DialogBox (g_hInstance, hwnd, Filter_GetProgram(g_hfltCurrent), pRule, TRUE) )	      {		SpySrv_LockFilterSet () ;		Filter_AddRule (g_hfltCurrent, pRule) ;		SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;		g_pCurRule = pRule ;		SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;	      }	    else free (pRule) ;	      	  }	  	  return 0 ;  //  ======== "Add" command on rule list ========	case IDM_RULE_EDIT: // ======== 'Edit rule' command on 'rules' list-view ========	  {	    if( !g_hfltCurrent || !g_pCurRule ) return 0 ;	    	    if( IDOK==RuleDlg_DialogBox (g_hInstance, hwnd, Filter_GetProgram(g_hfltCurrent), g_pCurRule, FALSE) )	      {		SpySrv_LockFilterSet () ;				SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;		_FilterWnd_UpdateRuleItem (g_hwndRules, g_pCurRule) ;	      }	  }	  	  return 0 ; // ======== 'Edit rule' command on 'rules' list-view ========      	case IDM_RULE_REMOVE: // ======== 'Remove rule' command on 'rules' list-view ========	  {	    LPCTSTR szMessage  = STR_DEF(_SURE_REMOVE_RULE,					 TEXT("Are you sure you want to remove this rule ?")) ;	    	    if( !g_hfltCurrent || !g_pCurRule ) return 0 ;	    	    if( IDYES==MessageBox(hwnd,szMessage,TEXT(APPLICATION_NAME),				  MB_ICONQUESTION|MB_YESNO) )	      {				_FilterWnd_RemoveRuleItem (g_hwndRules, g_pCurRule) ;		SpySrv_LockFilterSet () ;		Filter_DeleteRule (g_hfltCurrent, g_pCurRule) ;		SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;		g_pCurRule = NULL ;	      }		 		  } 	  	  return 0 ; // ======== 'Remove rule' command on 'rules' list-view ========	case IDM_RULE_UP: // ======== 'Move rule up' command on 'rules' list-view ========	  {	    if( g_hfltCurrent && g_pCurRule )	      {		SpySrv_LockFilterSet () ;		Filter_MoveRuleUp (g_hfltCurrent, g_pCurRule) ;		SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;		SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;		 	      }	  }	  	  return 0 ; // ======== 'Move rule up' command on 'rules' list-view ========	case IDM_RULE_DOWN: // ======== 'Move rule down' command on 'rules' list-view ========	  {	    if( g_hfltCurrent && g_pCurRule )	      {		SpySrv_LockFilterSet () ;		Filter_MoveRuleDown (g_hfltCurrent, g_pCurRule) ;		SpySrv_SendFilterSetToDriver () ;		SpySrv_UnlockFilterSet () ;		SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;		 	      }	  }	  return 0 ; // ======== 'Move rule down' command on 'rules' list-view ========/*	case IDC_ENABLE_HOOK:	  	  if( ! g_hfltCurrent ) return 0 ;	  if( HIWORD(wParam)==BN_CLICKED )	    {	      Filter_EnableHook (g_hfltCurrent, TRUE) ;	      SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;	    }	  return 0 ; // case IDC_ENABLE_HOOK:	case IDC_DISABLE_HOOK:	  if( ! g_hfltCurrent ) return 0 ;	  if( HIWORD(wParam)==BN_CLICKED ) 	    {	      Filter_EnableHook (g_hfltCurrent, FALSE) ;	      SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;	    }	  return 0 ; // case IDC_DISABLE_HOOK:*/	} // switch( LOWORD(wParam) )            break ; // case WM_COMMAND:      case WM_NOTIFY:            pnm.header = (NMHDR*)lParam ;            switch( pnm.header->idFrom )	{	case IDC_PROGRAMLIST:	  	  switch( pnm.header->code )	    {	    case LVN_ITEMCHANGED:	      	      if( pnm.listview->uNewState & LVIS_SELECTED )		{		  hFilterSet = SpySrv_GetFilterSet () ;		  g_hfltCurrent = FilterSet_GetFilterByNum (hFilterSet, pnm.listview->iItem) ;		  g_pCurRule = NULL ;		  if( pnm.listview->iItem>0 && ListView_GetSelectedCount(g_hwndPrograms)>0 ) {		    SendMessage (g_hwndProgTools, TB_ENABLEBUTTON, IDM_PROGRAM_EDIT, MAKELONG(TRUE,0)) ;		    SendMessage (g_hwndProgTools, TB_ENABLEBUTTON, IDM_PROGRAM_REMOVE, MAKELONG(TRUE,0)) ;		  } 		  else {		    SendMessage (g_hwndProgTools, TB_ENABLEBUTTON, IDM_PROGRAM_EDIT, MAKELONG(FALSE,0)) ; 		    SendMessage (g_hwndProgTools, TB_ENABLEBUTTON, IDM_PROGRAM_REMOVE, MAKELONG(FALSE,0)) ; 		  } 		  		  		  SendMessage (hwnd, WM_UPDATERULELIST, 0, 0) ;		}		      	      return 0 ; // case LVN_ITEMCHANGED:	    case LVN_ITEMACTIVATE:	      	      // simulate a click on the menu	      if( pnm.listview->iItem>0 )		SendMessage (hwnd, WM_COMMAND, IDM_PROGRAM_EDIT, 0) ;	      	      return 0 ; // case NM_DBLCLICK:	      	    case NM_RCLICK: //  ======== Right click on "programs" list-view ======== 	      {		BOOL		bEnable ;		POINT		pt ;				// enable/disable "edit" and "remove" menu item		bEnable = g_hfltCurrent!=NULL && !Filter_GetProtected(g_hfltCurrent) ;		EnableMenuItem (g_hmenuPrograms, IDM_PROGRAM_EDIT, MF_BYCOMMAND|(bEnable?MF_ENABLED:MF_GRAYED)) ;		EnableMenuItem (g_hmenuPrograms, IDM_PROGRAM_REMOVE, MF_BYCOMMAND|(bEnable?MF_ENABLED:MF_GRAYED)) ;				// get mouse position		GetCursorPos (&pt) ;		// display menu		TrackPopupMenu (g_hmenuPrograms, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hwnd, NULL) ;			      }	      return 0 ; //  ======== Right click on "programs" list-view ======== 	    case LVN_KEYDOWN:	      switch( pnm.keydown->wVKey )		{		case VK_DELETE:		  PostMessage (hwnd, WM_COMMAND, IDM_PROGRAM_REMOVE, 0) ;		  break ;		}	      return 0 ;	      	    } //  switch( pnmh->code )	  	  break ; // case IDC_PROGRAMLIST:	  	case IDC_RULELIST:	  	  switch( pnm.header->code )	    {	    case LVN_ITEMACTIVATE:	      // simulate a click on the menu	      SendMessage (hwnd, WM_COMMAND, IDM_RULE_EDIT, 0) ;	      return 0 ; // case LVN_ITEMACTIVATE:	    case LVN_ITEMCHANGED:	      if( pnm.listview->uNewState & LVIS_SELECTED )		{		  ASSERT (g_hfltCurrent) ;		  ASSERT (pnm.listview->lParam!=0) ;		  g_pCurRule = (FILTRULE*)pnm.listview->lParam ;		  if( Filter_CanMoveUpRule(g_hfltCurrent,g_pCurRule) )		    SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_UP, MAKELONG(TRUE,0)) ;		  else		    SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_UP, MAKELONG(FALSE,0)) ;		  if( Filter_CanMoveDownRule(g_hfltCurrent,g_pCurRule) )		    SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_DOWN, MAKELONG(TRUE,0)) ;		  else		    SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_DOWN, MAKELONG(FALSE,0)) ;		}	      	      if( ListView_GetSelectedCount(g_hwndRules)>0 ) {		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_EDIT, MAKELONG(TRUE,0)) ;		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_REMOVE, MAKELONG(TRUE,0)) ;	      } 	      else {		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_EDIT, MAKELONG(FALSE,0)) ;		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_REMOVE, MAKELONG(FALSE,0)) ;		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_UP, MAKELONG(FALSE,0)) ;		SendMessage (g_hwndRulesTools, TB_ENABLEBUTTON, IDM_RULE_DOWN, MAKELONG(FALSE,0)) ;	      } 		  	      	      return 0 ; // case LVN_ITEMCHANGED:	    case NM_RCLICK:	      	      if( ! g_hfltCurrent ) return 0 ;	      	      GetCursorPos (&point) ;	      	      if( ListView_GetSelectedCount(g_hwndRules)>0 ) {		EnableMenuItem (g_hmenuRules, IDM_RULE_EDIT, MF_BYCOMMAND|MF_ENABLED) ;		EnableMenuItem (g_hmenuRules, IDM_RULE_REMOVE, MF_BYCOMMAND|MF_ENABLED) ;		  		} 	      else {		EnableMenuItem (g_hmenuRules, IDM_RULE_EDIT, MF_BYCOMMAND|MF_GRAYED) ;		EnableMenuItem (g_hmenuRules, IDM_RULE_REMOVE, MF_BYCOMMAND|MF_GRAYED) ;		  	      } 	      	      TrackPopupMenu (g_hmenuRules, TPM_RIGHTBUTTON, 			      point.x, point.y, 0, hwnd, NULL) ;	      	      return 0 ; // case NM_RCLICK:	    case LVN_KEYDOWN:	      switch( pnm.keydown->wVKey )		{		case VK_DELETE:		  PostMessage (hwnd, WM_COMMAND, IDM_RULE_REMOVE, 0) ;		  break ;		}	      return 0 ;	    }	  	  break ; // case IDC_RULELIST:	   	case IDM_PROGRAM_ADD:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_ADD_PROGRAM,g_szAddProgram) ;  	  return 0 ; // IDM_PROGRAM_ADD:	case IDM_PROGRAM_EDIT:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_EDIT_PROGRAM,g_szEditProgram) ;  	  return 0 ; // IDM_PROGRAM_EDIT:	  	case IDM_PROGRAM_REMOVE:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_REMOVE_PROGRAM,g_szRemoveProgram) ;  	  return 0 ; // IDM_PROGRAM_ADD:	case IDM_RULE_ADD:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_ADD_RULE,g_szAddRule) ;  	  return 0 ; // IDM_RULE_ADD:	case IDM_RULE_EDIT:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_EDIT_RULE,g_szEditRule) ;  	  return 0 ; // IDM_RULE_EDIT:	  	case IDM_RULE_REMOVE:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_REMOVE_RULE,g_szRemoveRule) ;  	  return 0 ; // IDM_RULE_ADD:	case IDM_RULE_UP:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_MOVE_UP_RULE,g_szMoveUpRule) ;  	  return 0 ; // IDM_RULE_UP:	case IDM_RULE_DOWN:	  if( pnm.header->code == TTN_GETDISPINFO )	    pnm.getdispinfo->lpszText = (LPTSTR) STR_DEF (_MOVE_DOWN_RULE,g_szMoveDownRule) ;  	  return 0 ; // IDM_RULE_DOWN:	  	} // switch( pnm.header->idFrom )      return 0 ;    }  return DefWindowProc (hwnd, message, wParam, lParam) ;}/******************************************************************//* Internal function : WndProc                                    *//******************************************************************/DWORD WINAPI _FilterWnd_UpdateIconThread (VOID * pContext) {  HWND		hwndList = (HWND)pContext ;   HIMAGELIST	hImageList = ListView_GetImageList (hwndList, LVSIL_SMALL) ;  TCHAR		szBuffer[MAX_PATH] ;  int		i ;  ImageList_RemoveAll (hImageList) ;  for( i=0 ; i<ListView_GetItemCount(hwndList) ; i++ )    {      LVITEM	lvi ;      ZeroMemory (&lvi, sizeof(lvi)) ;      lvi.mask		= LVIF_TEXT| LVIF_STATE ;      lvi.iItem		= i ;      lvi.iSubItem	= COL_PROGRAM ;      lvi.pszText	= szBuffer ;      lvi.cchTextMax	= MAX_PATH ;      if( ListView_GetItem (hwndList, &lvi) )	{	  HICON	hIcon ;	  	  if( i==0 ) // default filter	    {	      hIcon = LoadIcon (GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_DEFAULT)) ;	    }	  else	    {	      SHFILEINFO sfi ;	      	      if( SHGetFileInfo (szBuffer, 0, &sfi, sizeof(sfi), SHGFI_ICON|SHGFI_SMALLICON) )		{		  hIcon = sfi.hIcon ;		}	      else		{		  hIcon = LoadIcon (GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_UNKNOWN)) ;		}	      	    }	  	  ImageList_AddIcon (hImageList, hIcon) ;	  DestroyIcon (hIcon) ;	  	  lvi.mask	= LVIF_IMAGE;	  lvi.iImage	= i ;	  	  ListView_SetItem (hwndList, &lvi) ;	}         }  return 0 ;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -