//-------------------------------------------------------------------------------- long CTreeView::OnNotify( NotificationMessageHeader* pHdr ) { _WINQ_FCONTEXT( "CTreeView::OnNotify" ); long lResult = 0; if( pHdr != 0 ) { switch ( pHdr->m_uiCode ) { case NM_CLICK: { lResult = static_cast< long >( OnClick( pHdr ) ? 0 : 1 ); } break; case NM_CUSTOMDRAW: { lResult = OnCustomDraw( reinterpret_cast< NMTVCUSTOMDRAW* >( pHdr ) ); } break; case NM_DBLCLK: { lResult = static_cast< long >( OnDblClick( pHdr ) ? 0 : 1 ); } break; case NM_KILLFOCUS: { OnKillFocus( pHdr ); } break; case NM_RCLICK: { lResult = static_cast< long >( OnRClick( pHdr ) ? 0 : 1 ); } break; case NM_RDBLCLK: { lResult = static_cast< long >( OnRDblClick( pHdr ) ? 0 : 1 ); } break; case NM_RETURN: { lResult = static_cast< long >( OnReturn( pHdr ) ? 0 : 1 ); } break; #if ( _WIN32_IE >= 0x0400 ) case NM_SETCURSOR: { lResult = static_cast< long >( OnSetCursor( reinterpret_cast< NMMOUSE* >( pHdr ) ) ? 0 : 1 ); } break; #endif//( _WIN32_IE >= 0x0400 ) case NM_SETFOCUS: { OnSetFocus( pHdr ); } break; #if ( _WIN32_IE >= 0x0600 ) case TVN_ASYNCDRAW: { OnAsyncDraw( reinterpret_cast< NMTVASYNCDRAW* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0600 ) case TVN_BEGINDRAG: { OnBeginDrag( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_BEGINLABELEDIT: { lResult = static_cast< long >( OnBeginLabelEdit( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_BEGINRDRAG: { OnBeginRDrag( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_DELETEITEM: { OnDeleteItem( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_ENDLABELEDIT: { lResult = static_cast< long >( OnEndLabelEdit( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ) ? 1 : 0 ); } break; case TVN_GETDISPINFO: { OnGetDispInfo( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ); } break; #if ( _WIN32_IE >= 0x0400 ) case TVN_GETINFOTIP: { OnGetInfoTip( reinterpret_cast< NMTVGETINFOTIP* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0400 ) #if ( _WIN32_IE > 0x0600 ) case TVN_ITEMCHANGED: { lResult = static_cast< long >( OnItemChanged( reinterpret_cast< NMTVITEMCHANGE* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_ITEMCHANGING: { lResult = static_cast< long >( OnItemChanging( reinterpret_cast< NMTVITEMCHANGE* >( pHdr ) ) ? 0 : 1 ); } break; #endif//( _WIN32_IE > 0x0600 ) case TVN_ITEMEXPANDED: { OnItemExpanded( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_ITEMEXPANDING: { lResult = static_cast< long >( OnItemExpanding( reinterpret_cast< NMTREEVIEW* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_KEYDOWN: { lResult = static_cast< long >( OnKeyDown( reinterpret_cast< NMTVKEYDOWN* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_SELCHANGED: { OnSelChanged( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_SELCHANGING: { lResult = static_cast< long >( OnSelChanging( reinterpret_cast< NMTREEVIEW* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_SETDISPINFO: { OnSetDispInfo( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ); } break; #if ( _WIN32_IE >= 0x0400 ) case TVN_SINGLEEXPAND: { lResult = OnSingleExpand( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0400 ) default: { lResult = OnUnknownNotification( pHdr ); } break; } } return lResult; }
INT_PTR CALLBACK ConnDlgProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch( Msg ) { case WM_INITDIALOG: { HWND hList = GetDlgItem(hWnd, IDC_CONNLIST); ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT); LV_COLUMN lvc = { 0 }; lvc.mask = LVCF_TEXT|LVCF_FMT|LVCF_WIDTH; lvc.fmt = LVCFMT_LEFT; lvc.cx = 40; lvc.pszText = _T("ID"); ListView_InsertColumn(hList, 0, &lvc); lvc.cx = 50; lvc.pszText = TranslateT("User"); ListView_InsertColumn(hList, 1, &lvc); lvc.cx = 250; lvc.pszText = TranslateT("File"); ListView_InsertColumn(hList, 2, &lvc); lvc.cx = 50; lvc.pszText = TranslateT("Access"); ListView_InsertColumn(hList, 3, &lvc); KillTimer(NULL, 777); lst = cpy_list(&list); if (IsUserAnAdmin()) SetTimer(NULL, 777, TIME, TimerProc); else MessageBox(NULL, TranslateT("Plugin WhoUsesMyFiles requires admin privileges in order to work."), _T("Miranda NG"), MB_OK); ShowList(lst, hList); } Utils_RestoreWindowPosition(hWnd, NULL, MODULENAME,"conn"); return TRUE; case WM_CLOSE: PostMessage( hWnd, WM_COMMAND, IDCANCEL, 0l ); break; case WM_COMMAND: switch( LOWORD(wParam)) { case IDOK: case IDCANCEL: PostMessage(hWnd, WM_DESTROY, 0, 0); break; } break; case WM_SIZE: { UTILRESIZEDIALOG urd = { sizeof(urd) }; urd.hwndDlg = hWnd; urd.hInstance = hInst; urd.lpTemplate = MAKEINTRESOURCEA(IDD_CONNLIST); urd.lParam = (LPARAM)NULL; urd.pfnResizer = DlgResizer; CallService(MS_UTILS_RESIZEDIALOG, 0, (LPARAM)&urd); } Utils_SaveWindowPosition(hWnd, NULL, MODULENAME,"conn"); return TRUE; case WM_MOVE: Utils_SaveWindowPosition(hWnd, NULL, MODULENAME,"conn"); break; case WM_NOTIFY: switch (((LPNMHDR) lParam)->code) { case LVN_GETDISPINFO: OnGetDispInfo((NMLVDISPINFO*)lParam); break; } break; case WM_DESTROY: del_all(&lst); PostQuitMessage(0); break; } return FALSE; }
BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result) { NMLVDISPINFO* Info; int iSortingColumn; UNREFERENCED_PARAMETER(wParam); *Result = TRUE; switch (((LPNMHDR)lParam)->code) { case LVN_GETDISPINFO: OnGetDispInfo((NMLVDISPINFO*)lParam); return TRUE; case LVN_COLUMNCLICK: iSortingColumn = ((LPNMLISTVIEW)lParam)->iSubItem; (void)ListView_Sort(hWnd, iSortingColumn, g_iSortedColumn); g_iSortedColumn = iSortingColumn; return TRUE; case NM_DBLCLK: case NM_RETURN: { SendMessageW(hFrameWnd, WM_COMMAND, MAKEWPARAM(ID_EDIT_MODIFY, 0), 0); } return TRUE; case NM_SETFOCUS: g_pChildWnd->nFocusPanel = 0; break; case LVN_BEGINLABELEDIT: Info = (NMLVDISPINFO*)lParam; if(Info) { PLINE_INFO lineinfo = (PLINE_INFO)Info->item.lParam; if(!lineinfo->name || !wcscmp(lineinfo->name, L"")) { *Result = TRUE; } else { *Result = FALSE; } } else *Result = TRUE; return TRUE; case LVN_ENDLABELEDIT: Info = (NMLVDISPINFO*)lParam; if(Info && Info->item.pszText) { PLINE_INFO lineinfo = (PLINE_INFO)Info->item.lParam; if(!lineinfo->name || !wcscmp(lineinfo->name, L"")) { *Result = FALSE; } else { if(wcslen(Info->item.pszText) == 0) { WCHAR msg[128], caption[128]; LoadStringW(hInst, IDS_ERR_RENVAL_TOEMPTY, msg, COUNT_OF(msg)); LoadStringW(hInst, IDS_ERR_RENVAL_CAPTION, caption, COUNT_OF(caption)); MessageBoxW(0, msg, caption, 0); *Result = TRUE; } else { HKEY hKeyRoot; LPCWSTR keyPath; LONG lResult; keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot); lResult = RenameValue(hKeyRoot, keyPath, Info->item.pszText, lineinfo->name); lineinfo->name = realloc(lineinfo->name, (wcslen(Info->item.pszText)+1)*sizeof(WCHAR)); if (lineinfo->name != NULL) wcscpy(lineinfo->name, Info->item.pszText); *Result = TRUE; return (lResult == ERROR_SUCCESS); } } } else *Result = TRUE; return TRUE; } return FALSE; }