home *** CD-ROM | disk | FTP | other *** search
/ BUG 4 / BUGCD1997_05.BIN / aplic / visualj / vjtrial.exe / RCDATA / CABINET / mfcapwz.dll / TEMPLATE / SRVRITEM.CPP < prev    next >
C/C++ Source or Header  |  1997-01-28  |  4KB  |  149 lines

  1. // $$srvritem_ifile$$.cpp : implementation of the $$SRVRITEM_CLASS$$ class
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "$$root$$.h"
  6.  
  7. $$IF(CRecordView || CDaoRecordView)
  8. #include "$$recset_hfile$$.h"
  9. $$ENDIF
  10. #include "$$doc_hfile$$.h"
  11. #include "$$srvritem_hfile$$.h"
  12. $$IF(CONTAINER_SERVER)
  13. #include "$$cntritem_hfile$$.h"
  14. $$ENDIF
  15.  
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21.  
  22. /////////////////////////////////////////////////////////////////////////////
  23. // $$SRVRITEM_CLASS$$ implementation
  24.  
  25. IMPLEMENT_DYNAMIC($$SRVRITEM_CLASS$$, $$SRVRITEM_BASE_CLASS$$)
  26.  
  27. $$SRVRITEM_CLASS$$::$$SRVRITEM_CLASS$$($$DOC_CLASS$$* pContainerDoc)
  28.     : $$SRVRITEM_BASE_CLASS$$(pContainerDoc, TRUE)
  29. {
  30. $$IF(VERBOSE)
  31.     // TODO: add one-time construction code here
  32.     //  (eg, adding additional clipboard formats to the item's data source)
  33. $$ENDIF
  34. }
  35.  
  36. $$SRVRITEM_CLASS$$::~$$SRVRITEM_CLASS$$()
  37. {
  38. $$IF(VERBOSE)
  39.     // TODO: add cleanup code here
  40. $$ENDIF
  41. }
  42.  
  43. void $$SRVRITEM_CLASS$$::Serialize(CArchive& ar)
  44. {
  45. $$IF(VERBOSE)
  46.     // $$SRVRITEM_CLASS$$::Serialize will be called by the framework if
  47.     //  the item is copied to the clipboard.  This can happen automatically
  48.     //  through the OLE callback OnGetClipboardData.  A good default for
  49.     //  the embedded item is simply to delegate to the document's Serialize
  50.     //  function.  If you support links, then you will want to serialize
  51.     //  just a portion of the document.
  52.  
  53. $$ENDIF
  54.     if (!IsLinkedItem())
  55.     {
  56.         $$DOC_CLASS$$* pDoc = GetDocument();
  57.         ASSERT_VALID(pDoc);
  58.         pDoc->Serialize(ar);
  59.     }
  60. }
  61.  
  62. BOOL $$SRVRITEM_CLASS$$::OnGetExtent(DVASPECT dwDrawAspect, CSize& rSize)
  63. {
  64. $$IF(VERBOSE)
  65.     // Most applications, like this one, only handle drawing the content
  66.     //  aspect of the item.  If you wish to support other aspects, such
  67.     //  as DVASPECT_THUMBNAIL (by overriding OnDrawEx), then this
  68.     //  implementation of OnGetExtent should be modified to handle the
  69.     //  additional aspect(s).
  70.  
  71. $$ENDIF
  72.     if (dwDrawAspect != DVASPECT_CONTENT)
  73.         return $$SRVRITEM_BASE_CLASS$$::OnGetExtent(dwDrawAspect, rSize);
  74. $$IF(VERBOSE)
  75.  
  76.     // $$SRVRITEM_CLASS$$::OnGetExtent is called to get the extent in
  77.     //  HIMETRIC units of the entire item.  The default implementation
  78.     //  here simply returns a hard-coded number of units.
  79. $$ENDIF
  80.  
  81.     $$DOC_CLASS$$* pDoc = GetDocument();
  82.     ASSERT_VALID(pDoc);
  83.  
  84. $$IF(VERBOSE)
  85.     // TODO: replace this arbitrary size
  86.  
  87. $$ENDIF
  88.     rSize = CSize(3000, 3000);   // 3000 x 3000 HIMETRIC units
  89.  
  90.     return TRUE;
  91. }
  92.  
  93. BOOL $$SRVRITEM_CLASS$$::OnDraw(CDC* pDC, CSize& rSize)
  94. {
  95. $$IF(VERBOSE)
  96.     // Remove this if you use rSize
  97. $$ENDIF
  98.     UNREFERENCED_PARAMETER(rSize);
  99.  
  100.     $$DOC_CLASS$$* pDoc = GetDocument();
  101.     ASSERT_VALID(pDoc);
  102.  
  103. $$IF(VERBOSE)
  104.     // TODO: set mapping mode and extent
  105.     //  (The extent is usually the same as the size returned from OnGetExtent)
  106. $$ENDIF
  107.     pDC->SetMapMode(MM_ANISOTROPIC);
  108.     pDC->SetWindowOrg(0,0);
  109.     pDC->SetWindowExt(3000, 3000);
  110.  
  111. $$IF(VERBOSE)
  112.     // TODO: add drawing code here.  Optionally, fill in the HIMETRIC extent.
  113.     //  All drawing takes place in the metafile device context (pDC).
  114.  
  115. $$IF(CONTAINER_SERVER)
  116.     // TODO: also draw embedded $$CNTRITEM_CLASS$$ objects.
  117.  
  118. $$ENDIF
  119. $$ENDIF
  120. $$IF(CONTAINER_SERVER)
  121.     // The following code draws the first item at an arbitrary position.
  122.  
  123.     // TODO: remove this code when your real drawing code is complete
  124.  
  125.     POSITION pos = pDoc->GetStartPosition();
  126.     $$CNTRITEM_CLASS$$* pItem = ($$CNTRITEM_CLASS$$*)pDoc->GetNextClientItem(pos);
  127.     if (pItem != NULL)
  128.         pItem->Draw(pDC, CRect(10, 10, 1010, 1010));
  129. $$ENDIF
  130.     return TRUE;
  131. }
  132.  
  133. /////////////////////////////////////////////////////////////////////////////
  134. // $$SRVRITEM_CLASS$$ diagnostics
  135.  
  136. #ifdef _DEBUG
  137. void $$SRVRITEM_CLASS$$::AssertValid() const
  138. {
  139.     $$SRVRITEM_BASE_CLASS$$::AssertValid();
  140. }
  141.  
  142. void $$SRVRITEM_CLASS$$::Dump(CDumpContext& dc) const
  143. {
  144.     $$SRVRITEM_BASE_CLASS$$::Dump(dc);
  145. }
  146. #endif
  147.  
  148. /////////////////////////////////////////////////////////////////////////////
  149.