Building an ArcGIS Controls map viewer application
PageLayoutControlEvents.h
// Copyright 2011 ESRI
// 
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
// 
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
// 
// See the use restrictions.
// 

 
#ifndef __PAGELAYOUTCONTROLEVENTS_H_
#define __PAGELAYOUTCONTROLEVENTS_H_

// ArcObjects Headers 
// Engine
#include <ArcSDK.h>
#include <Ao/AoControls.h>

extern IPageLayoutControlPtr g_ipPageLayoutControl;
extern IMapControl3Ptr g_ipMapControl;
extern IToolbarMenuPtr g_ipPopupMenu;
extern IEnvelopePtr g_ipCurrentExtent;
extern IEventListenerHelperPtr g_ipTransEventHelper;

class PageLayoutControlEvents : public IPageLayoutControlEventsHelper
{
 public:
  
  // IUnknown
  HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObj) { return S_OK; }
  ULONG   __stdcall AddRef()                                   { return 0;    }
  ULONG   __stdcall Release()                                  { return 0;    }

    
  // IPageLayoutControlEvents
  void __stdcall OnAfterDraw(VARIANT display, long viewDrawPhase);
  void __stdcall OnAfterScreenDraw(long hdc);
  void __stdcall OnBeforeScreenDraw(long hdc);
  void __stdcall OnDoubleClick(long button, long shift, long x, long y, double mapX, double mapY);
  void __stdcall OnExtentUpdated(VARIANT displayTransformation, VARIANT_BOOL sizeChanged, VARIANT newEnvelope);
  void __stdcall OnFullExtentUpdated(VARIANT displayTransformation, VARIANT newEnvelope);
  void __stdcall OnKeyDown(long keyCode, long shift);
  void __stdcall OnKeyUp(long keyCode, long shift);
  void __stdcall OnFocusMapChanged();
  void __stdcall OnPageLayoutReplaced(VARIANT newPageLayout);
  void __stdcall OnPageSizeChanged();
  void __stdcall OnMouseDown(long button, long shift, long x, long y, double mapX, double mapY);
  void __stdcall OnMouseMove(long button, long shift, long x, long y, double mapX, double mapY);
  void __stdcall OnMouseUp(long button, long shift, long x, long y, double mapX, double mapY);
  void __stdcall OnOleDrop(esriControlsDropAction dropAction, VARIANT dataObjectHelper, 
                 long* effect, long button, long shift, long x, long y);
  void __stdcall OnSelectionChanged();
  void __stdcall OnViewRefreshed(VARIANT ActiveView, long viewDrawPhase, 
                       VARIANT layerOrElement, VARIANT envelope);
};

#endif // __PAGELAYOUTCONTROLEVENTS_H_