Changeset 242 for trunk/DirectShowSpy/FilterGraphList.h
- Timestamp:
- Jan 11, 2014, 2:53:56 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DirectShowSpy/FilterGraphList.h
r231 r242 18 18 // CFilterGraphListPropertySheet 19 19 20 INT_PTR DoFilterGraphListPropertySheetModal(HWND hParentWindow = GetActiveWindow()); 21 20 22 class CFilterGraphListPropertySheet : 21 public CSizablePropertySheetT<CFilterGraphListPropertySheet> 23 public CSizablePropertySheetT<CFilterGraphListPropertySheet>, 24 public CPropertySheetWithAcceleratorsT<CFilterGraphListPropertySheet> 22 25 { 23 26 public: … … 35 38 class CListPropertyPage : 36 39 public CPropertyPageT<CListPropertyPage>, 37 public CDialogResize<CListPropertyPage> 40 public CDialogResize<CListPropertyPage>, 41 public CPropertyPageWithAcceleratorsT<CListPropertyPage> 38 42 { 39 43 public: … … 44 48 CHAIN_MSG_MAP(CPropertyPage) 45 49 CHAIN_MSG_MAP(CDialogResize<CListPropertyPage>) 50 CHAIN_MSG_MAP(CPropertyPageWithAccelerators) 46 51 MSG_WM_INITDIALOG(OnInitDialog) 47 52 MSG_WM_DESTROY(OnDestroy) … … 50 55 MSG_LVN_ITEMCHANGED(IDC_FILTERGRAPHLIST_LIST_GRAPH, OnGraphListViewItemChanged) 51 56 MSG_LVN_DBLCLK(IDC_FILTERGRAPHLIST_LIST_GRAPH, OnGraphListViewDblClk) 57 MSG_WM_CONTEXTMENU(OnContextMenu) 52 58 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_REFRESH, OnRefresh) 53 59 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_CHECK, OnCheck) 60 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_CHECKALL, OnCheckAll) 54 61 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_COPYTOCLIPBOARD, OnCopyToClipboard) 55 62 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_PROPERTIES, OnProperties) 63 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_OPENGSN, OnOpenGsn) 64 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHLIST_LIST_OPENGE, OnOpenGe) 56 65 REFLECT_NOTIFICATIONS() 57 66 END_MSG_MAP() … … 81 90 CComPtr<IUnknown> m_pFilterGraphUnknown; 82 91 CComPtr<IFilterGraph> m_pFilterGraph; 92 CStringW m_sFriendlyName; 83 93 SIZE_T m_nFilterCount; 84 94 CString m_sState; … … 108 118 m_pFilterGraphUnknown = pUnknown; 109 119 m_pFilterGraph = pFilterGraph; 120 _ATLTRY 121 { 122 const CComQIPtr<ISpy> pSpy = pFilterGraph; 123 if(pSpy) 124 { 125 CComBSTR sFriendlyName; 126 __C(pSpy->get_FriendlyName(&sFriendlyName)); 127 m_sFriendlyName = sFriendlyName; 128 } 129 } 130 _ATLCATCHALL() 131 { 132 _Z_EXCEPTION(); 133 } 110 134 m_nFilterCount = 0; 111 135 m_sState.Empty(); … … 185 209 { 186 210 const UINT nSelectedCount = m_GraphListView.GetSelectedCount(); 211 m_CheckButton.EnableWindow(nSelectedCount > 0); 187 212 m_CopyToClipboardButton.EnableWindow(nSelectedCount > 0); 188 213 m_PropertiesButton.EnableWindow(nSelectedCount == 1); … … 369 394 return 0; 370 395 } 396 LRESULT OnTranslateAccelerator(MSG* pMessage) 397 { 398 return TranslateAccelerator(m_hWnd, m_hAccelerators, pMessage) ? PSNRET_MESSAGEHANDLED : PSNRET_NOERROR; 399 } 371 400 LRESULT OnGraphListViewGetDispInfo(NMLVDISPINFO* pHeader) 372 401 { … … 383 412 sTextBuffer = Item.m_sTime; 384 413 break; 385 case 3: // Filter Count 414 case 3: // Friendly Name 415 sTextBuffer = CString(Item.m_sFriendlyName); 416 break; 417 case 4: // Filter Count 386 418 if(Item.m_pFilterGraph) 387 419 sTextBuffer = AtlFormatString(_T("%d"), Item.m_nFilterCount); 388 420 break; 389 case 4: // State421 case 5: // State 390 422 if(Item.m_pFilterGraph) 391 423 sTextBuffer = Item.m_sState; 392 424 break; 393 case 5: // Process Image Directory425 case 6: // Process Image Directory 394 426 sTextBuffer = (LPCTSTR) GetPathDirectory(Item.m_sProcessImagePath); 395 427 break; … … 407 439 sTextBuffer.AppendFormat(_T("Process: %d (0x%X) %s\r\n"), Item.m_nProcessIdentifier, Item.m_nProcessIdentifier, CString(FindFileName(Item.m_sProcessImagePath))); 408 440 if(!Item.m_sTime.IsEmpty()) 409 sTextBuffer.AppendFormat(_T("CreationTime: %s\r\n"), Item.m_sTime); 441 sTextBuffer.AppendFormat(_T("Creation Time: %s\r\n"), Item.m_sTime); 442 if(!Item.m_sFriendlyName.IsEmpty()) 443 sTextBuffer.AppendFormat(_T("Friendly Name: %ls\r\n"), Item.m_sFriendlyName); 410 444 if(Item.m_pFilterGraph) 411 445 { … … 452 486 return 0; 453 487 } 488 LRESULT OnContextMenu(CWindow Window, CPoint Position) 489 { 490 if(Window == m_GraphListView) 491 { 492 CMenu ContainerMenu = AtlLoadMenu(IDD); 493 CMenuHandle Menu = ContainerMenu.GetSubMenu(0); 494 const UINT nCount = m_GraphListView.GetItemCount(); 495 const UINT nSelectedCount = m_GraphListView.GetSelectedCount(); 496 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_CHECK, MF_BYCOMMAND | (m_CheckButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 497 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_CHECKALL, MF_BYCOMMAND | ((nCount > 0) ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 498 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_COPYTOCLIPBOARD, MF_BYCOMMAND | (m_CopyToClipboardButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 499 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_OPENGSN, MF_BYCOMMAND | ((nSelectedCount == 1) ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 500 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_OPENGE, MF_BYCOMMAND | ((nSelectedCount == 1) ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 501 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_REFRESH, MF_BYCOMMAND | (m_RefreshButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 502 Menu.EnableMenuItem(IDC_FILTERGRAPHLIST_LIST_PROPERTIES, MF_BYCOMMAND | (m_PropertiesButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED | MF_DISABLED)); 503 Menu.SetMenuDefaultItem(IDC_FILTERGRAPHLIST_LIST_PROPERTIES); 504 Menu.TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN | TPM_TOPALIGN, Position.x, Position.y, m_hWnd); 505 } 506 return 0; 507 } 454 508 LRESULT OnRefresh(UINT, INT, HWND) 455 509 { … … 463 517 CWaitCursor WaitCursor; 464 518 for(INT nItem = m_GraphListView.GetNextItem(-1, LVNI_SELECTED); nItem >= 0; nItem = m_GraphListView.GetNextItem(nItem, LVNI_SELECTED)) 519 { 520 CItem& Item = m_GraphListView.GetItemData(nItem); 521 if(Item.FilterGraphNeeded(m_pRunningObjectTable)) 522 if(Item.Check()) 523 m_GraphListView.RedrawItems(nItem, nItem); 524 } 525 return 0; 526 } 527 LRESULT OnCheckAll(UINT, INT, HWND) 528 { 529 CWaitCursor WaitCursor; 530 for(INT nItem = m_GraphListView.GetItemCount() - 1; nItem >= 0; nItem--) 465 531 { 466 532 CItem& Item = m_GraphListView.GetItemData(nItem); … … 493 559 pFilterGraphHelper->SetFilterGraph(Item.m_pFilterGraph); 494 560 _V(pFilterGraphHelper->DoPropertyFrameModal((LONG) (LONG_PTR) m_hWnd)); 561 return 0; 562 } 563 LRESULT OnOpenGsn(UINT, INT, HWND) 564 { 565 const INT nItem = m_GraphListView.GetNextItem(-1, LVNI_SELECTED); 566 if(nItem < 0) 567 return 0; 568 CItem& Item = m_GraphListView.GetItemData(nItem); 569 if(!Item.FilterGraphNeeded(m_pRunningObjectTable)) 570 return 0; 571 CFilterGraphHelper::OpenMonikerWithGsn(Item.m_sDisplayName, m_hWnd); 572 return 0; 573 } 574 LRESULT OnOpenGe(UINT, INT, HWND) 575 { 576 const INT nItem = m_GraphListView.GetNextItem(-1, LVNI_SELECTED); 577 if(nItem < 0) 578 return 0; 579 CItem& Item = m_GraphListView.GetItemData(nItem); 580 if(!Item.FilterGraphNeeded(m_pRunningObjectTable)) 581 return 0; 582 CFilterGraphHelper::OpenMonikerWithGe(Item.m_sDisplayName, m_hWnd); 495 583 return 0; 496 584 } … … 532 620 return TRUE; 533 621 } 622 INT_PTR DoModal(HWND hParentWindow) 623 { 624 return CPropertySheetWithAccelerators::DoModal(hParentWindow); 625 } 534 626 535 627 // Window message handelrs … … 551 643 }; 552 644 645 inline INT_PTR DoFilterGraphListPropertySheetModal(HWND hParentWindow) 646 { 647 CFilterGraphListPropertySheet PropertySheet; 648 return PropertySheet.DoModal(hParentWindow); 649 }
Note: See TracChangeset
for help on using the changeset viewer.