home *** CD-ROM | disk | FTP | other *** search
- // ScrMain.cpp : implementation of the CScrMain class
- //
-
- #include "stdafx.h"
- #include "ScrDemo.h"
- #include "ScrMain.h"
- #include "..\\..\\..\\..\\include\\ltscrocx.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- extern CScrDemo theApp;
-
- /////////////////////////////////////////////////////////////////////////////
- // CScrMain
-
- IMPLEMENT_DYNAMIC(CScrMain, CMDIFrameWnd)
-
- BEGIN_MESSAGE_MAP(CScrMain, CMDIFrameWnd)
- //{{AFX_MSG_MAP(CScrMain)
- ON_WM_CREATE()
- ON_COMMAND(IDM_CAPTURE_ACTIVECLIENT, OnCaptureActiveclient)
- ON_COMMAND(IDM_CAPTURE_ACTIVEWINDOW, OnCaptureActivewindow)
- ON_COMMAND(IDM_CAPTURE_FROMEXEDLGTABBEDVIEW, OnCaptureFromexedlgtabbedview)
- ON_COMMAND(IDM_CAPTURE_FROMEXEDLGTREE, OnCaptureFromexedlgtree)
- ON_COMMAND(IDM_CAPTURE_FULLSCREEN, OnCaptureFullscreen)
- ON_COMMAND(IDM_CAPTURE_MENUUNDERCURSOR, OnCaptureMenuundercursor)
- ON_COMMAND(IDM_CAPTURE_MOUSECURSOR, OnCaptureMousecursor)
- ON_COMMAND(IDM_CAPTURE_SELECTEDAREA, OnCaptureSelectedarea)
- ON_COMMAND(IDM_CAPTURE_SELECTEDOBJECT, OnCaptureSelectedobject)
- ON_COMMAND(IDM_CAPTURE_WALLPAPER, OnCaptureWallpaper)
- ON_COMMAND(IDM_CAPTURE_WINDOWUNDERCURSOR, OnCaptureWindowundercursor)
- ON_COMMAND(IDM_OPTIONS_AREA, OnOptionsArea)
- ON_COMMAND(IDM_OPTIONS_OBJECT, OnOptionsObject)
- ON_COMMAND(IDM_OPTIONS_OPTIONS, OnOptionsOptions)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVECLIENT, OnUpdateCaptureActiveclient)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVEWINDOW, OnUpdateCaptureActivewindow)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_FROMEXEDLGTABBEDVIEW, OnUpdateCaptureFromexedlgtabbedview)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_FROMEXEDLGTREE, OnUpdateCaptureFromexedlgtree)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_FULLSCREEN, OnUpdateCaptureFullscreen)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MENUUNDERCURSOR, OnUpdateCaptureMenuundercursor)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MOUSECURSOR, OnUpdateCaptureMousecursor)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_SELECTEDAREA, OnUpdateCaptureSelectedarea)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_SELECTEDOBJECT, OnUpdateCaptureSelectedobject)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WALLPAPER, OnUpdateCaptureWallpaper)
- ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WINDOWUNDERCURSOR, OnUpdateCaptureWindowundercursor)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- static UINT indicators[] =
- {
- ID_SEPARATOR, // status line indicator
- ID_INDICATOR_CAPS,
- ID_INDICATOR_NUM,
- ID_INDICATOR_SCRL,
- };
-
- enum
- {
- SCRCAP_NONE,
- SCRCAP_FROM_EXE,
- SCRCAP_ACTIVE_WINDOW,
- SCRCAP_ACTIVE_CLIENT,
- SCRCAP_FULL_SCREEN,
- SCRCAP_SELECTED_OBJECT,
- SCRCAP_MENU_UNDERCURSOR,
- SCRCAP_AREA_RECT,
- SCRCAP_AREA_ROUNDRECT,
- SCRCAP_AREA_ELLIPSE,
- SCRCAP_AREA_POLYGON,
- SCRCAP_AREA_FREEHAND,
- SCRCAP_AREA_TRIANGLE,
- SCRCAP_MOUSE_CURSOR,
- SCRCAP_WINDOW_UNDER_CURSOR,
- SCRCAP_WALLPAPER,
- };
-
- /////////////////////////////////////////////////////////////////////////////
- // CScrMain construction/destruction
-
- CScrMain::CScrMain()
- {
- m_nCapture = SCRCAP_NONE;
- }
-
- CScrMain::~CScrMain()
- {
- }
-
- int CScrMain::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- if (!m_wndToolBar.Create(this) ||
- !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
- {
- TRACE0("Failed to create toolbar\n");
- return -1; // fail to create
- }
-
- if (!m_wndStatusBar.Create(this) ||
- !m_wndStatusBar.SetIndicators(indicators,
- sizeof(indicators)/sizeof(UINT)))
- {
- TRACE0("Failed to create status bar\n");
- return -1; // fail to create
- }
-
- // TODO: Remove this if you don't want tool tips or a resizeable toolbar
- m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
- CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
-
- // TODO: Delete these three lines if you don't want the toolbar to
- // be dockable
- m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
- EnableDocking(CBRS_ALIGN_ANY);
- DockControlBar(&m_wndToolBar);
-
- ///////////////////////////////////////
- // This is my code.
- m_CapOCX.Create(NULL,WS_CHILD,CRect(0,0,0,0),this, IDC_CAPTUREWINDOW);
- m_CapOCX.SetEnableMethodErrors(FALSE);
- m_CapOCX.SetCaptureHotKey(VK_F11);
- // My code ends here
- ///////////////////////////////////////
- return 0;
- }
-
- BOOL CScrMain::PreCreateWindow(CREATESTRUCT& cs)
- {
- // TODO: Modify the Window class or styles here by modifying
- // the CREATESTRUCT cs
-
- return CMDIFrameWnd::PreCreateWindow(cs);
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CScrMain diagnostics
-
- #ifdef _DEBUG
- void CScrMain::AssertValid() const
- {
- CMDIFrameWnd::AssertValid();
- }
-
- void CScrMain::Dump(CDumpContext& dc) const
- {
- CMDIFrameWnd::Dump(dc);
- }
-
- #endif //_DEBUG
-
- /////////////////////////////////////////////////////////////////////////////
- // CScrMain message handlers
-
-
- void CScrMain::OnCaptureFullscreen()
- {
- int nResult, nType=SCRCAP_FULL_SCREEN;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureFullScreen();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureFullScreen();
- }
-
-
- void CScrMain::OnCaptureActiveclient()
- {
- int nResult, nType=SCRCAP_ACTIVE_CLIENT;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureActiveClient();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureActiveClient();
- }
-
- void CScrMain::OnCaptureActivewindow()
- {
- int nResult, nType=SCRCAP_ACTIVE_WINDOW;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureActiveWindow();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureActiveWindow();
- }
-
- void CScrMain::OnOptionsArea()
- {
- m_nCapture = SCRCAP_NONE;
- m_CapOCX.StopCapture();
-
- m_CapOCX.CaptureAreaOptionDlg ((short)m_hWnd);
- }
-
- void CScrMain::OnCaptureFromexedlgtabbedview()
- {
- m_nCapture = SCRCAP_NONE;
- m_CapOCX.StopCapture();
-
- m_CapOCX.CaptureEXEDlg ((short)m_hWnd, NULL, 0, SCR_CAP_EXEDLG_TABVIEW);
- }
-
- void CScrMain::OnCaptureMenuundercursor()
- {
- int nResult, nType=SCRCAP_MENU_UNDERCURSOR;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureMenuUnderCursor();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureMenuUnderCursor();
- }
-
- void CScrMain::OnOptionsObject()
- {
- m_nCapture = SCRCAP_NONE;
- m_CapOCX.StopCapture();
-
- m_CapOCX.CaptureObjectOptionDlg ((short)m_hWnd);
- }
-
- void CScrMain::OnCaptureSelectedobject()
- {
- int nResult, nType=SCRCAP_SELECTED_OBJECT;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureSelectedObject();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureSelectedObject();
- }
-
- void CScrMain::OnCaptureSelectedarea()
- {
- int nResult, nType=SCRCAP_AREA_TRIANGLE;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureArea(0);
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureArea(0);
- }
-
- void CScrMain::OnCaptureMousecursor()
- {
- int nResult, nType=SCRCAP_MOUSE_CURSOR;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureMouseCursor();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureMouseCursor();
- }
-
- void CScrMain::OnOptionsOptions()
- {
- m_nCapture = SCRCAP_NONE;
- m_CapOCX.StopCapture();
-
- m_CapOCX.CaptureOptionDlg ((short)m_hWnd);
- }
-
- void CScrMain::OnCaptureWallpaper()
- {
- int nResult, nType=SCRCAP_WALLPAPER;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureWallPaper();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureWallPaper();
- }
-
- void CScrMain::OnCaptureFromexedlgtree()
- {
- m_nCapture = SCRCAP_NONE;
- m_CapOCX.StopCapture();
-
- m_CapOCX.CaptureEXEDlg ((short)m_hWnd, NULL, 0, SCR_CAP_EXEDLG_TREEVIEW);
- }
-
- void CScrMain::OnCaptureWindowundercursor()
- {
- int nResult, nType=SCRCAP_WINDOW_UNDER_CURSOR;
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- if (m_nCapture == nType)
- {
- return;
- }
-
- m_nCapture = nType;
- m_CapOCX.StopCapture();
-
- if(m_CapOCX.GetCaptureHotKey()!=0)
- {
- while (m_nCapture == nType)
- {
- nResult = m_CapOCX.CaptureWindowUnderCursor();
- if (nResult != 0)
- {
- m_nCapture = SCRCAP_NONE;
- }
- }
- }
- else
- nResult = m_CapOCX.CaptureWindowUnderCursor();
- }
-
- void CScrMain::OnUpdateCaptureActiveclient(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_ACTIVE_CLIENT);
- }
-
- void CScrMain::OnUpdateCaptureActivewindow(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_ACTIVE_WINDOW);
- }
-
- void CScrMain::OnUpdateCaptureFromexedlgtabbedview(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_FROM_EXE);
- }
-
- void CScrMain::OnUpdateCaptureFromexedlgtree(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_FROM_EXE);
- }
-
- void CScrMain::OnUpdateCaptureFullscreen(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_FULL_SCREEN);
- }
-
- void CScrMain::OnUpdateCaptureMenuundercursor(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_MENU_UNDERCURSOR);
- }
-
- void CScrMain::OnUpdateCaptureMousecursor(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_MOUSE_CURSOR);
- }
-
- void CScrMain::OnUpdateCaptureSelectedarea(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_AREA_TRIANGLE);
- }
-
- void CScrMain::OnUpdateCaptureSelectedobject(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_SELECTED_OBJECT);
- }
-
- void CScrMain::OnUpdateCaptureWallpaper(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_WALLPAPER);
- }
-
- void CScrMain::OnUpdateCaptureWindowundercursor(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck(m_nCapture == SCRCAP_WINDOW_UNDER_CURSOR);
- }
-