SITE.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:
Windows编程
开发平台:
Visual C++
- /*
- * SITE.H
- * View Site for Document Objects.
- *
- * Copyright (c)1995-1997 Microsoft Corporation, All Rights Reserved
- */
- #ifndef _SITE_H_
- #define _SITE_H_
- class CImpIOleClientSite : public IOleClientSite
- {
- protected:
- ULONG m_cRef;
- class CSite *m_pSite;
- LPUNKNOWN m_pUnkOuter;
- public:
- CImpIOleClientSite(class CSite *, IUnknown *);
- ~CImpIOleClientSite(void);
- STDMETHODIMP QueryInterface(REFIID, void **);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- STDMETHODIMP SaveObject(void);
- STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);
- STDMETHODIMP GetContainer(LPOLECONTAINER *);
- STDMETHODIMP ShowObject(void);
- STDMETHODIMP OnShowWindow(BOOL);
- STDMETHODIMP RequestNewObjectLayout(void);
- };
- typedef CImpIOleClientSite *PCImpIOleClientSite;
- class CImpIAdviseSink : public IAdviseSink
- {
- protected:
- ULONG m_cRef;
- class CSite *m_pSite;
- LPUNKNOWN m_pUnkOuter;
- public:
- CImpIAdviseSink(class CSite *, IUnknown *);
- ~CImpIAdviseSink(void);
- STDMETHODIMP QueryInterface(REFIID, void **);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- STDMETHODIMP_(void) OnDataChange(LPFORMATETC, LPSTGMEDIUM);
- STDMETHODIMP_(void) OnViewChange(DWORD, LONG);
- STDMETHODIMP_(void) OnRename(LPMONIKER);
- STDMETHODIMP_(void) OnSave(void);
- STDMETHODIMP_(void) OnClose(void);
- };
- typedef CImpIAdviseSink *PCImpIAdviseSink;
- class CImpIOleInPlaceSite : public IOleInPlaceSite
- {
- protected:
- ULONG m_cRef;
- class CSite *m_pSite;
- LPUNKNOWN m_pUnkOuter;
- public:
- CImpIOleInPlaceSite(class CSite *, IUnknown *);
- ~CImpIOleInPlaceSite(void);
- STDMETHODIMP QueryInterface(REFIID, void **);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- STDMETHODIMP GetWindow(HWND *);
- STDMETHODIMP ContextSensitiveHelp(BOOL);
- STDMETHODIMP CanInPlaceActivate(void);
- STDMETHODIMP OnInPlaceActivate(void);
- STDMETHODIMP OnUIActivate(void);
- STDMETHODIMP GetWindowContext(LPOLEINPLACEFRAME *
- , LPOLEINPLACEUIWINDOW *, LPRECT, LPRECT
- , LPOLEINPLACEFRAMEINFO);
- STDMETHODIMP Scroll(SIZE);
- STDMETHODIMP OnUIDeactivate(BOOL);
- STDMETHODIMP OnInPlaceDeactivate(void);
- STDMETHODIMP DiscardUndoState(void);
- STDMETHODIMP DeactivateAndUndo(void);
- STDMETHODIMP OnPosRectChange(LPCRECT);
- };
- typedef CImpIOleInPlaceSite *PCImpIOleInPlaceSite;
- class CImpIOleDocumentSite : public IOleDocumentSite
- {
- protected:
- ULONG m_cRef;
- class CSite *m_pSite;
- LPUNKNOWN m_pUnkOuter;
- public:
- CImpIOleDocumentSite(class CSite *, IUnknown *);
- ~CImpIOleDocumentSite(void);
- STDMETHODIMP QueryInterface(REFIID, void **);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- STDMETHODIMP ActivateMe(IOleDocumentView *);
- };
- typedef CImpIOleDocumentSite *PCImpIOleDocumentSite;
- /*
- * The CSite class, a COM object with the interfaces IOleClientSite,
- * IAdviseSink, IOleInPlaceSite, and IOleDocumentSite.
- */
- class CSite : public IUnknown
- {
- friend CImpIOleClientSite;
- friend CImpIAdviseSink;
- friend CImpIOleInPlaceSite;
- friend CImpIOleDocumentSite;
- private:
- ULONG m_cRef;
- DWORD m_dwID;
- HWND m_hWnd; //Client area window of parent
- class CFrame *m_pFR;
- BOOL m_fInitialized; //Something here?
- LPSTORAGE m_pIStorage; //Storage for object
- LPSTREAM m_pIStream; //Info stream for object
- //Object interfaces
- IUnknown *m_pObj;
- IOleObject *m_pIOleObject;
- IOleInPlaceObject *m_pIOleIPObject;
- IOleDocumentView *m_pIOleDocView;
- BOOL m_fDocObj; //Document object here?
- //Our interfaces
- PCImpIOleClientSite m_pImpIOleClientSite;
- PCImpIAdviseSink m_pImpIAdviseSink;
- PCImpIOleInPlaceSite m_pImpIOleIPSite;
- PCImpIOleDocumentSite m_pImpIOleDocumentSite;
- protected:
- BOOL ObjectInitialize(LPUNKNOWN);
- public:
- CSite(DWORD, HWND, CFrame *);
- ~CSite(void);
- //Gotta have an IUnknown for delegation
- STDMETHODIMP QueryInterface(REFIID, void **);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
- BOOL Create(LPTSTR, IStorage *);
- BOOL CreateStorage(IStorage *);
- void Close(BOOL);
- void Update(void);
- void Destroy(IStorage *);
- void Activate(LONG);
- void UpdateObjectRects(void);
- };
- typedef CSite *PCSite;
- #endif //_SITE_H_