Annotation of mstools/ole20/samples/spoly2/cpoint.h, revision 1.1.1.1

1.1       root        1: /*** 
                      2: *cpoint.h
                      3: *
                      4: *  Copyright (C) 1992, Microsoft Corporation.  All Rights Reserved.
                      5: *  Information Contained Herein Is Proprietary and Confidential.
                      6: *
                      7: *Purpose:
                      8: *  Definition of the CPoint class.
                      9: *
                     10: *  The CPoint object exposes two properties for programatic access
                     11: *  via the IDispatch interface.
                     12: *
                     13: *  properties:
                     14: *    X                         - the 'x' coordinate of the point
                     15: *    Y                         - the 'y' coordinate of the point
                     16: *
                     17: *Implementation Notes:
                     18: *
                     19: *****************************************************************************/
                     20: 
                     21: #ifndef        CLASS
                     22: #ifdef __TURBOC__
                     23: #define CLASS class huge
                     24: #else
                     25: #define CLASS class FAR
                     26: #endif
                     27: #endif
                     28: 
                     29: class CPoly;
                     30: 
                     31: CLASS CPoint : public IDispatch {
                     32:     friend class CPoly;
                     33: 
                     34: public:
                     35:     static CPoint FAR* Create();
                     36: 
                     37:     /* IUnknown methods */
                     38:     STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR* ppvObj);
                     39:     STDMETHOD_(ULONG, AddRef)(void);
                     40:     STDMETHOD_(ULONG, Release)(void);
                     41: 
                     42:     /* IDispatch methods */
                     43:     STDMETHOD(GetTypeInfoCount)(UINT FAR* pcTypeInfo);
                     44: 
                     45:     STDMETHOD(GetTypeInfo)(
                     46:       UINT iTypeInfo,
                     47:       LCID lcid,
                     48:       ITypeInfo FAR* FAR* ppTypeInfo);
                     49: 
                     50:     STDMETHOD(GetIDsOfNames)(
                     51:       REFIID riid,
                     52:       char FAR* FAR* rgszNames,
                     53:       UINT cNames,
                     54:       LCID lcid,
                     55:       DISPID FAR* rgdispid);
                     56: 
                     57:     STDMETHOD(Invoke)(
                     58:       LONG dispidMember,
                     59:       REFIID riid,
                     60:       LCID lcid,
                     61:       WORD wFlags,
                     62:       DISPPARAMS FAR* pdispparams,
                     63:       VARIANT FAR* pvarResult,
                     64:       EXCEPINFO FAR* pexcepinfo,
                     65:       UINT FAR* pwArgErr);
                     66: 
                     67:     /* Introduced methods */
                     68: 
                     69:     virtual short METHODCALLTYPE EXPORT GetX(void);
                     70:     virtual void  METHODCALLTYPE EXPORT SetX(short x);
                     71:     virtual short METHODCALLTYPE EXPORT GetY(void);
                     72:     virtual void  METHODCALLTYPE EXPORT SetY(short y);
                     73: 
                     74: private:
                     75:     CPoint();
                     76:     ~CPoint();
                     77: 
                     78:     ULONG m_refs;
                     79: 
                     80:     short m_x;
                     81:     short m_y;
                     82: 
                     83:     ITypeInfo FAR* m_ptinfo;
                     84: };
                     85: 
                     86: // member DISPIDs
                     87: //
                     88: enum IDMEMBER_CPOINT {
                     89:     IDMEMBER_CPOINT_GETX = 1,
                     90:     IDMEMBER_CPOINT_SETX,
                     91:     IDMEMBER_CPOINT_GETY,
                     92:     IDMEMBER_CPOINT_SETY,
                     93:     IDMEMBER_CPOINT_MAX
                     94: };
                     95: 
                     96: // member indices - this is an enumeration of all members on CPoint
                     97: //
                     98: enum IMETH_CPOINT {
                     99:     IMETH_CPOINT_QUERYINTERFACE = 0,
                    100:     IMETH_CPOINT_ADDREF,
                    101:     IMETH_CPOINT_RELEASE,
                    102:     IMETH_CPOINT_GETTYPEINFOCOUNT,
                    103:     IMETH_CPOINT_GETTYPEINFO,
                    104:     IMETH_CPOINT_GETIDSOFNAMES,
                    105:     IMETH_CPOINT_INVOKE,
                    106: 
                    107:     IMETH_CPOINT_GETX,
                    108:     IMETH_CPOINT_SETX,
                    109:     IMETH_CPOINT_GETY,
                    110:     IMETH_CPOINT_SETY
                    111: };
                    112: 
                    113: // structure used to link together lists of points
                    114: //
                    115: struct POINTLINK {
                    116:     POINTLINK FAR* next;
                    117:     CPoint FAR* ppoint;
                    118: };
                    119: 
                    120: // The CPoint Class Factory
                    121: //
                    122: CLASS CPointCF : public IClassFactory
                    123: {
                    124: public:
                    125:     static IClassFactory FAR* Create();
                    126: 
                    127:     /* IUnknown methods */
                    128:     STDMETHOD(QueryInterface)(REFIID iid, void FAR* FAR* ppv);
                    129:     STDMETHOD_(ULONG, AddRef)(void);
                    130:     STDMETHOD_(ULONG, Release)(void);
                    131: 
                    132:     /* IClassFactory methods */
                    133:     STDMETHOD(CreateInstance)(
                    134:       IUnknown FAR* pUnkOuter, REFIID iid, void FAR* FAR* ppv);
                    135:     STDMETHOD(LockServer)(BOOL fLock);
                    136: 
                    137: private:
                    138:     CPointCF();
                    139:     ~CPointCF();
                    140: 
                    141:     ULONG m_refs;
                    142: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.