home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / inole2 / chap24 / polyprop / polyprop.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  3KB  |  120 lines

  1. /*
  2.  * POLYPROP.H
  3.  * Polyline Property Page, Chapter 24
  4.  *
  5.  * Copyright (c)1993-1995 Microsoft Corporation, All Right Reserved
  6.  *
  7.  * Kraig Brockschmidt, Microsoft
  8.  * Internet  :  kraigb@microsoft.com
  9.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  10.  */
  11.  
  12.  
  13. #ifndef _POLYPROP_H_
  14. #define _POLYPROP_H_
  15.  
  16. #define INC_AUTOMATION
  17. #define INC_CONTROLS
  18. #define INC_CLASSLIB
  19. #define GUIDS_FROM_TYPELIB
  20. #define CHAPTER24
  21. #include <inole.h>
  22.  
  23. //Get IPolylineControl definitions for the object we work with
  24. #include "..\polyline\ipoly.h"
  25.  
  26. //Dialog template
  27. #define IDD_POLYLINEPROPS                 100
  28.  
  29.  
  30. #define ID_GROUPSTYLE       199
  31. #define ID_LINEMIN          200
  32. #define ID_LINESOLID        200     //(ID_LINEMIN+PS_SOLID)
  33. #define ID_LINEDASH         201     //(ID_LINEMIN+PS_DASH)
  34. #define ID_LINEDOT          202     //(ID_LINEMIN+PS_DOT)
  35. #define ID_LINEDASHDOT      203     //(ID_LINEMIN+PS_DASHDOT)
  36. #define ID_LINEDASHDOTDOT   204     //(ID_LINEMIN+PS_DASHDOTDOT)
  37.  
  38. #define ID_GROUPCOLORS      300
  39. #define ID_COLORBACK        301
  40. #define ID_COLORLINE        302
  41.  
  42.  
  43. //This class factory object creates other objects
  44.  
  45. class CPolyPPFactory : public IClassFactory
  46.     {
  47.     protected:
  48.         ULONG           m_cRef;
  49.  
  50.     public:
  51.         CPolyPPFactory(void);
  52.         ~CPolyPPFactory(void);
  53.  
  54.         //IUnknown members
  55.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  56.         STDMETHODIMP_(ULONG) AddRef(void);
  57.         STDMETHODIMP_(ULONG) Release(void);
  58.  
  59.         //IClassPPFactory members
  60.         STDMETHODIMP     CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  61.         STDMETHODIMP     LockServer(BOOL);
  62.     };
  63.  
  64. typedef CPolyPPFactory *PCPolyPPFactory;
  65.  
  66.  
  67. //Our property page class
  68.  
  69. BOOL APIENTRY PolyPropPageProc(HWND, UINT, WPARAM, LPARAM);
  70.  
  71. class CPolyPropPage : public IPropertyPage
  72.     {
  73.     friend BOOL APIENTRY PolyPropPageProc(HWND, UINT, WPARAM, LPARAM);
  74.  
  75.     protected:
  76.         ULONG           m_cRef;         //Reference count
  77.         HINSTANCE       m_hInst;        //Module instance
  78.         HWND            m_hDlg;         //Dialog handle
  79.  
  80.         ULONG           m_cx;           //Dialog size
  81.         ULONG           m_cy;
  82.         UINT            m_cObjects;     //Number of objects
  83.         UINT            m_uIDLastLine;  //Last selected in page
  84.         COLORREF        m_crLastBack;   //Last background color
  85.         COLORREF        m_crLastLine;   //Last line color
  86.         BOOL            m_fDirty;       //Page dirty?
  87.  
  88.         IPolylineControl **m_ppObj;
  89.  
  90.         IPropertyPageSite *m_pIPropertyPageSite;    //Frame's
  91.  
  92.     public:
  93.         CPolyPropPage(HINSTANCE);
  94.         ~CPolyPropPage(void);
  95.  
  96.         BOOL Init(void);
  97.         void FreeAllObjects(void);
  98.  
  99.         STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  100.         STDMETHODIMP_(ULONG) AddRef(void);
  101.         STDMETHODIMP_(ULONG) Release(void);
  102.  
  103.         STDMETHODIMP SetPageSite(LPPROPERTYPAGESITE);
  104.         STDMETHODIMP Activate(HWND, LPCRECT, BOOL);
  105.         STDMETHODIMP Deactivate(void);
  106.         STDMETHODIMP GetPageInfo(LPPROPPAGEINFO);
  107.         STDMETHODIMP SetObjects(ULONG, LPUNKNOWN *);
  108.         STDMETHODIMP Show(UINT);
  109.         STDMETHODIMP Move(LPCRECT);
  110.         STDMETHODIMP IsPageDirty(void);
  111.         STDMETHODIMP Apply(void);
  112.         STDMETHODIMP Help(LPCOLESTR);
  113.         STDMETHODIMP TranslateAccelerator(LPMSG);
  114.     };
  115.  
  116. typedef CPolyPropPage *PCPolyPropPage;
  117.  
  118.  
  119. #endif //_POLYPROP_H_
  120.