📄 polyline.h
字号:
class CImpIPersistStorage : public IPersistStorage
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Back pointer to object
LPUNKNOWN m_pUnkOuter; //Controlling unknown
PSSTATE m_psState; //Storage state
public:
CImpIPersistStorage(PCPolyline, LPUNKNOWN);
~CImpIPersistStorage(void);
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetClassID(LPCLSID);
STDMETHODIMP IsDirty(void);
STDMETHODIMP InitNew(LPSTORAGE);
STDMETHODIMP Load(LPSTORAGE);
STDMETHODIMP Save(LPSTORAGE, BOOL);
STDMETHODIMP SaveCompleted(LPSTORAGE);
STDMETHODIMP HandsOffStorage(void);
};
class CImpIPersistStreamInit : public IPersistStreamInit
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Back pointer to object
LPUNKNOWN m_pUnkOuter; //Controlling unknown
public:
CImpIPersistStreamInit(PCPolyline, LPUNKNOWN);
~CImpIPersistStreamInit(void);
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetClassID(LPCLSID);
STDMETHODIMP IsDirty(void);
STDMETHODIMP Load(LPSTREAM);
STDMETHODIMP Save(LPSTREAM, BOOL);
STDMETHODIMP GetSizeMax(ULARGE_INTEGER *);
STDMETHODIMP InitNew(void);
};
//IDATAOBJ.CPP
class CImpIDataObject : public IDataObject
{
private:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Back pointer to object
LPUNKNOWN m_pUnkOuter; //Controlling unknown
public:
CImpIDataObject(PCPolyline, LPUNKNOWN);
~CImpIDataObject(void);
//IUnknown members that delegate to m_pUnkOuter.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IDataObject members
STDMETHODIMP GetData(LPFORMATETC, LPSTGMEDIUM);
STDMETHODIMP GetDataHere(LPFORMATETC, LPSTGMEDIUM);
STDMETHODIMP QueryGetData(LPFORMATETC);
STDMETHODIMP GetCanonicalFormatEtc(LPFORMATETC,LPFORMATETC);
STDMETHODIMP SetData(LPFORMATETC, LPSTGMEDIUM, BOOL);
STDMETHODIMP EnumFormatEtc(DWORD, LPENUMFORMATETC *);
STDMETHODIMP DAdvise(LPFORMATETC, DWORD, LPADVISESINK
, DWORD *);
STDMETHODIMP DUnadvise(DWORD);
STDMETHODIMP EnumDAdvise(LPENUMSTATDATA *);
};
//IENUMFE.CPP
class CEnumFormatEtc : public IEnumFORMATETC
{
private:
ULONG m_cRef;
LPUNKNOWN m_pUnkRef;
ULONG m_iCur;
ULONG m_cfe;
LPFORMATETC m_prgfe;
public:
CEnumFormatEtc(LPUNKNOWN, ULONG, LPFORMATETC);
~CEnumFormatEtc(void);
//IUnknown members that delegate to m_pUnkRef.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IEnumFORMATETC members
STDMETHODIMP Next(ULONG, LPFORMATETC, ULONG *);
STDMETHODIMP Skip(ULONG);
STDMETHODIMP Reset(void);
STDMETHODIMP Clone(IEnumFORMATETC **);
};
typedef CEnumFormatEtc *PCEnumFormatEtc;
//CHAPTER24MOD
//Our own properties verb
#define POLYLINEVERB_PROPERTIES 1
//End CHAPTER24MOD
class CImpIOleObject : public IOleObject
{
private:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
public:
CImpIOleObject(PCPolyline, LPUNKNOWN);
~CImpIOleObject(void);
//IUnknown members that delegate to m_pUnkOuter.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IOleObject members
STDMETHODIMP SetClientSite(LPOLECLIENTSITE);
STDMETHODIMP GetClientSite(LPOLECLIENTSITE *);
STDMETHODIMP SetHostNames(LPCOLESTR, LPCOLESTR);
STDMETHODIMP Close(DWORD);
STDMETHODIMP SetMoniker(DWORD, LPMONIKER);
STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);
STDMETHODIMP InitFromData(LPDATAOBJECT, BOOL, DWORD);
STDMETHODIMP GetClipboardData(DWORD, LPDATAOBJECT *);
STDMETHODIMP DoVerb(LONG, LPMSG, LPOLECLIENTSITE, LONG
, HWND, LPCRECT);
STDMETHODIMP EnumVerbs(LPENUMOLEVERB *);
STDMETHODIMP Update(void);
STDMETHODIMP IsUpToDate(void);
STDMETHODIMP GetUserClassID(CLSID *);
STDMETHODIMP GetUserType(DWORD, LPOLESTR *);
STDMETHODIMP SetExtent(DWORD, LPSIZEL);
STDMETHODIMP GetExtent(DWORD, LPSIZEL);
STDMETHODIMP Advise(LPADVISESINK, DWORD *);
STDMETHODIMP Unadvise(DWORD);
STDMETHODIMP EnumAdvise(LPENUMSTATDATA *);
STDMETHODIMP GetMiscStatus(DWORD, DWORD *);
STDMETHODIMP SetColorScheme(LPLOGPALETTE);
};
//IVIEWOBJ.CPP
class CImpIViewObject : public IViewObject2
{
private:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
public:
CImpIViewObject(PCPolyline, LPUNKNOWN);
~CImpIViewObject(void);
//IUnknown members that delegate to m_pUnkOuter.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IViewObject members
STDMETHODIMP Draw(DWORD, LONG, LPVOID
, DVTARGETDEVICE *, HDC, HDC, LPCRECTL
, LPCRECTL, BOOL (CALLBACK *)(DWORD), DWORD);
STDMETHODIMP GetColorSet(DWORD, LONG, LPVOID
, DVTARGETDEVICE *, HDC, LPLOGPALETTE *);
STDMETHODIMP Freeze(DWORD, LONG, LPVOID, LPDWORD);
STDMETHODIMP Unfreeze(DWORD);
STDMETHODIMP SetAdvise(DWORD, DWORD, LPADVISESINK);
STDMETHODIMP GetAdvise(LPDWORD, LPDWORD, LPADVISESINK *);
STDMETHODIMP GetExtent(DWORD, LONG, DVTARGETDEVICE *
, LPSIZEL);
};
class CImpIRunnableObject : public IRunnableObject
{
protected:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
public:
CImpIRunnableObject(PCPolyline, LPUNKNOWN);
~CImpIRunnableObject(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetRunningClass(LPCLSID);
STDMETHODIMP Run(LPBINDCTX);
STDMETHODIMP_(BOOL) IsRunning(void);
STDMETHODIMP LockRunning(BOOL, BOOL);
STDMETHODIMP SetContainedObject(BOOL);
};
class CImpIExternalConnection : public IExternalConnection
{
protected:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
DWORD m_cLockStrong;
public:
CImpIExternalConnection(PCPolyline, LPUNKNOWN);
~CImpIExternalConnection(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP_(DWORD) AddConnection(DWORD, DWORD);
STDMETHODIMP_(DWORD) ReleaseConnection(DWORD, DWORD, BOOL);
};
class CImpIOleInPlaceObject : public IOleInPlaceObject
{
protected:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
public:
CImpIOleInPlaceObject(PCPolyline, LPUNKNOWN);
~CImpIOleInPlaceObject(void);
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetWindow(HWND *);
STDMETHODIMP ContextSensitiveHelp(BOOL);
STDMETHODIMP InPlaceDeactivate(void);
STDMETHODIMP UIDeactivate(void);
STDMETHODIMP SetObjectRects(LPCRECT, LPCRECT);
STDMETHODIMP ReactivateAndUndo(void);
};
class CImpIOleInPlaceActiveObject
: public IOleInPlaceActiveObject
{
protected:
ULONG m_cRef;
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
public:
CImpIOleInPlaceActiveObject(PCPolyline, LPUNKNOWN);
~CImpIOleInPlaceActiveObject(void);
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetWindow(HWND *);
STDMETHODIMP ContextSensitiveHelp(BOOL);
STDMETHODIMP TranslateAccelerator(LPMSG);
STDMETHODIMP OnFrameWindowActivate(BOOL);
STDMETHODIMP OnDocWindowActivate(BOOL);
STDMETHODIMP ResizeBorder(LPCRECT, LPOLEINPLACEUIWINDOW
, BOOL);
STDMETHODIMP EnableModeless(BOOL);
};
//CHAPTER24MOD
#define CPROPPAGES 1 //Total property page count.
class CImpISpecifyPP : public ISpecifyPropertyPages
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Backpointer to the object
LPUNKNOWN m_pUnkOuter; //For delegation
public:
CImpISpecifyPP(PCPolyline, LPUNKNOWN);
~CImpISpecifyPP(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetPages(CAUUID *);
};
class CImpIProvideClassInfo : public IProvideClassInfo
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Backpointer to the object
LPUNKNOWN m_pUnkOuter; //For delegation
public:
CImpIProvideClassInfo(PCPolyline, LPUNKNOWN);
~CImpIProvideClassInfo(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetClassInfo(LPTYPEINFO *);
};
class CImpIDispatch : public IDispatch
{
public:
private:
ULONG m_cRef; //For debugging
PCPolyline m_pObj;
LPUNKNOWN m_pUnkOuter;
ITypeInfo *m_pITI; //Type information
public:
CImpIDispatch(PCPolyline, LPUNKNOWN);
~CImpIDispatch(void);
//IUnknown members that delegate to m_pUnkOuter.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IDispatch members
STDMETHODIMP GetTypeInfoCount(UINT *);
STDMETHODIMP GetTypeInfo(UINT, LCID, ITypeInfo **);
STDMETHODIMP GetIDsOfNames(REFIID, OLECHAR **, UINT, LCID
, DISPID *);
STDMETHODIMP Invoke(DISPID, REFIID, LCID, WORD
, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
};
class CImpIPolylineControl : public IPolylineControl
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Back pointer to object
LPUNKNOWN m_pUnkOuter; //Controlling unknown
public:
CImpIPolylineControl(PCPolyline, LPUNKNOWN);
~CImpIPolylineControl(void);
//IUnknown members.
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//Manipulation members:
STDMETHODIMP_(void) put_BackColor(OLE_COLOR);
STDMETHODIMP_(OLE_COLOR) get_BackColor(void);
STDMETHODIMP_(void) put_LineColor(OLE_COLOR);
STDMETHODIMP_(OLE_COLOR) get_LineColor(void);
STDMETHODIMP_(void) put_LineStyle(short);
STDMETHODIMP_(short) get_LineStyle(void);
STDMETHODIMP Clear(void);
STDMETHODIMP RemoveLastPoint(void);
};
class CImpIOleControl : public IOleControl
{
protected:
ULONG m_cRef; //Interface reference count
PCPolyline m_pObj; //Backpointer to the object
LPUNKNOWN m_pUnkOuter; //For delegation
public:
CImpIOleControl(PCPolyline, LPUNKNOWN);
~CImpIOleControl(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP GetControlInfo(LPCONTROLINFO);
STDMETHODIMP OnMnemonic(LPMSG);
STDMETHODIMP OnAmbientPropertyChange(DISPID);
STDMETHODIMP FreezeEvents(BOOL);
};
class CAdviseRouter : public IPolylineAdviseSink10
{
private:
ULONG m_cRef;
PCPolyline m_pObj;
IDispatch *m_pIDispatch;
public:
CAdviseRouter(IDispatch *, PCPolyline);
~CAdviseRouter(void);
void Invoke(DISPID);
//IUnknown members
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//Advise members.
STDMETHODIMP_(void) OnPointChange(void);
STDMETHODIMP_(void) OnSizeChange(void);
STDMETHODIMP_(void) OnColorChange(void);
STDMETHODIMP_(void) OnLineStyleChange(void);
};
//These values match the ID's in polyline.odl
enum
{
EVENT_ONPOINTCHANGE=0,
EVENT_ONSIZECHANGE=1,
EVENT_ONCOLORCHANGE=2,
EVENT_ONLINESTYLECHANGE=3
};
//End CHAPTER24MOD
#endif //_POLYLINE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -