POLYPROP.H
/* 
 * POLYPROP.H 
 * Polyline Property Page, Chapter 24 
 * 
 * Copyright (c)1993-1995 Microsoft Corporation, All Right Reserved 
 * 
 * Kraig Brockschmidt, Microsoft 
 * Internet  :  kraigb@microsoft.com 
 * Compuserve:  >INTERNET:kraigb@microsoft.com 
 */ 
 
 
#ifndef _POLYPROP_H_ 
#define _POLYPROP_H_ 
 
#define INC_AUTOMATION 
#define INC_CONTROLS 
#define INC_CLASSLIB 
#define GUIDS_FROM_TYPELIB 
#define CHAPTER24 
#include <inole.h> 
 
//Get IPolylineControl definitions for the object we work with 
#include "..\polyline\ipoly.h" 
 
//Dialog template 
#define IDD_POLYLINEPROPS                 100 
 
 
#define ID_GROUPSTYLE       199 
#define ID_LINEMIN          200 
#define ID_LINESOLID        200     //(ID_LINEMIN+PS_SOLID) 
#define ID_LINEDASH         201     //(ID_LINEMIN+PS_DASH) 
#define ID_LINEDOT          202     //(ID_LINEMIN+PS_DOT) 
#define ID_LINEDASHDOT      203     //(ID_LINEMIN+PS_DASHDOT) 
#define ID_LINEDASHDOTDOT   204     //(ID_LINEMIN+PS_DASHDOTDOT) 
 
#define ID_GROUPCOLORS      300 
#define ID_COLORBACK        301 
#define ID_COLORLINE        302 
 
 
//This class factory object creates other objects 
 
class CPolyPPFactory : public IClassFactory 
    { 
    protected: 
        ULONG           m_cRef; 
 
    public: 
        CPolyPPFactory(void); 
        ~CPolyPPFactory(void); 
 
        //IUnknown members 
        STDMETHODIMP         QueryInterface(REFIID, PPVOID); 
        STDMETHODIMP_(ULONG) AddRef(void); 
        STDMETHODIMP_(ULONG) Release(void); 
 
        //IClassPPFactory members 
        STDMETHODIMP     CreateInstance(LPUNKNOWN, REFIID, PPVOID); 
        STDMETHODIMP     LockServer(BOOL); 
    }; 
 
typedef CPolyPPFactory *PCPolyPPFactory; 
 
 
//Our property page class 
 
BOOL APIENTRY PolyPropPageProc(HWND, UINT, WPARAM, LPARAM); 
 
class CPolyPropPage : public IPropertyPage 
    { 
    friend BOOL APIENTRY PolyPropPageProc(HWND, UINT, WPARAM, LPARAM); 
 
    protected: 
        ULONG           m_cRef;         //Reference count 
        HINSTANCE       m_hInst;        //Module instance 
        HWND            m_hDlg;         //Dialog handle 
 
        ULONG           m_cx;           //Dialog size 
        ULONG           m_cy; 
        UINT            m_cObjects;     //Number of objects 
        UINT            m_uIDLastLine;  //Last selected in page 
        COLORREF        m_crLastBack;   //Last background color 
        COLORREF        m_crLastLine;   //Last line color 
        BOOL            m_fDirty;       //Page dirty? 
 
        IPolylineControl **m_ppObj; 
 
        IPropertyPageSite *m_pIPropertyPageSite;    //Frame's 
 
    public: 
        CPolyPropPage(HINSTANCE); 
        ~CPolyPropPage(void); 
 
        BOOL Init(void); 
        void FreeAllObjects(void); 
 
        STDMETHODIMP QueryInterface(REFIID, LPVOID *); 
        STDMETHODIMP_(ULONG) AddRef(void); 
        STDMETHODIMP_(ULONG) Release(void); 
 
    STDMETHODIMP SetPageSite(LPPROPERTYPAGESITE); 
    STDMETHODIMP Activate(HWND, LPCRECT, BOOL); 
    STDMETHODIMP Deactivate(void); 
    STDMETHODIMP GetPageInfo(LPPROPPAGEINFO); 
    STDMETHODIMP SetObjects(ULONG, LPUNKNOWN *); 
    STDMETHODIMP Show(UINT); 
    STDMETHODIMP Move(LPCRECT); 
    STDMETHODIMP IsPageDirty(void); 
    STDMETHODIMP Apply(void); 
    STDMETHODIMP Help(LPCOLESTR); 
    STDMETHODIMP TranslateAccelerator(LPMSG); 
    }; 
 
typedef CPolyPropPage *PCPolyPropPage; 
 
 
#endif //_POLYPROP_H_