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

📄 hookhelper.cpp

📁 在vc环境下
💻 CPP
字号:
// HookHelper.cpp: implementation of the CHookHelper class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HookHelper.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CHookHelper::CHookHelper()
{

}

CHookHelper::~CHookHelper()
{

}

HRESULT CHookHelper::putref_Hook(IDispatch *hook)
{
  m_cpHook              = hook;
  m_cpApp               = hook;
  m_cpMapControl        = hook;
  m_cpPageLayoutControl = hook;

  return S_OK;
}

HRESULT CHookHelper::get_Hook(IDispatch **hook)
{
  if (*hook == 0)
    return E_POINTER;

  *hook = m_cpHook;
  if (*hook != 0)
    (*hook)->AddRef();

  return S_OK;
}

HRESULT CHookHelper::get_FocusMap(IMap **ppMap)
{
  if (ppMap == 0)
    return E_POINTER;

  HRESULT hr = S_OK;

  *ppMap = 0;
  if (m_cpApp != 0)
  {
	  IMxDocumentPtr cpMxDoc;
	  IDocumentPtr cpDoc;
    m_cpApp->get_Document(&cpDoc);
    cpMxDoc = cpDoc;
    if (cpMxDoc)
      hr = cpMxDoc->get_FocusMap(ppMap);
  }
  else if (m_cpMapControl != 0)
    hr = m_cpMapControl->get_Map(ppMap);
  else if (m_cpPageLayoutControl != 0)
  {
	  IActiveViewPtr cpActiveView;
    hr = m_cpPageLayoutControl->get_ActiveView(&cpActiveView);

    if (SUCCEEDED(hr))
      hr = cpActiveView->get_FocusMap(ppMap);
  }

  return hr;
}

HRESULT CHookHelper::get_ActiveView(IActiveView **ppActiveView)
{
  if (ppActiveView == 0)
    return E_POINTER;

  HRESULT hr = S_OK;
  *ppActiveView = 0;

  if (m_cpApp != 0)
  {
    IMxDocumentPtr cpMxDoc;
    IDocumentPtr cpDoc;
    m_cpApp->get_Document(&cpDoc);
    cpMxDoc = cpDoc;
    if (cpMxDoc)
      hr = cpMxDoc->get_ActiveView(ppActiveView);
  }
  if (m_cpMapControl != 0)
    hr = m_cpMapControl->get_ActiveView(ppActiveView);
  else if (m_cpPageLayoutControl != 0)
    hr = m_cpPageLayoutControl->get_ActiveView(ppActiveView);

  return hr;
}



HRESULT CHookHelper::get_hWnd(HWND *phWnd)
{
  if (phWnd==0)
    return E_POINTER;

  HRESULT hr = S_OK;
  *phWnd = 0;

  if (m_cpApp != 0)
  {
    IMxDocumentPtr cpMxDoc;
    IDocumentPtr cpDoc;
    m_cpApp->get_Document(&cpDoc);
    cpMxDoc = cpDoc;
    IActiveViewPtr cpActiveView;
    IScreenDisplayPtr cpScreenDisplay;
    if (cpMxDoc)
      hr = cpMxDoc->get_ActiveView(&cpActiveView);
    if (SUCCEEDED(hr) && cpActiveView!=0)
      hr = cpActiveView->get_ScreenDisplay(&cpScreenDisplay);
    if (SUCCEEDED(hr) && cpScreenDisplay!=0)
      hr = cpScreenDisplay->get_hWnd((OLE_HANDLE*) phWnd);
  }
  else if (m_cpMapControl != 0)
    hr = m_cpMapControl->get_hWnd((long*) phWnd);
  else if (m_cpPageLayoutControl != 0)
    hr = m_cpPageLayoutControl->get_hWnd((long*) phWnd);

  return hr;
}

⌨️ 快捷键说明

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