diff options
author | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:56:41 -0800 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:59:33 -0800 |
commit | d577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch) | |
tree | 590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/srcole/tOleHandler.h |
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/srcole/tOleHandler.h')
-rwxr-xr-x | iup/srcole/tOleHandler.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/iup/srcole/tOleHandler.h b/iup/srcole/tOleHandler.h new file mode 100755 index 0000000..966cb30 --- /dev/null +++ b/iup/srcole/tOleHandler.h @@ -0,0 +1,139 @@ +// tOleHandler.h: interface for the tOleHandler class. +// +////////////////////////////////////////////////////////////////////// + +#if !defined(AFX_TOLEHANDLER_H__49B97C12_8DEB_11D3_A906_0004ACE655F9__INCLUDED_) +#define AFX_TOLEHANDLER_H__49B97C12_8DEB_11D3_A906_0004ACE655F9__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#include <windows.h> +#include <olectl.h> + +#include "tOleClientSite.h" +#include "tOleInPlaceSite.h" +#include "tOleControlSite.h" +#include "tDispatch.h" +#include "tAmbientProperties.h" +#include "tLegacy.h" + +#ifndef LPOLEINPLACEOBJECT +typedef interface IOleInPlaceObject *LPOLEINPLACEOBJECT; +#endif + +class tOleClientSite; + +class tOleHandler : public IUnknown +{ +public: + friend class tOleClientSite; + friend class tOleInPlaceSite; + friend class tOleControlSite; + friend class tDispatch; + tOleHandler(); + virtual ~tOleHandler(); + tAmbientProperties m_ambientProp; + + HWND m_hWnd; +private: + + DWORD m_cOpens; //Count calls to Open + + BOOL m_fInitialized; //Something here? + LPUNKNOWN m_pObj; //The object here + LPSTORAGE m_pIStorage; //Sub-storage for tenant + + FORMATETC m_fe; //Used to create the object + DWORD m_dwState; //State flags + RECTL m_rcl; //Space of this object + CLSID m_clsID; //Object class (for statics) + BOOL m_fSetExtent; //Call SetExtent on next run + + ULONG m_cRef; //We're an object now + LPOLEOBJECT m_pIOleObject; //IOleObject on m_pObj + LPVIEWOBJECT2 m_pIViewObject2; //IViewObject2 on m_pObj + ULONG m_grfMisc; //OLEMISC flags + BOOL m_fRepaintEnabled; //No redundant paints + + //Our interfaces + tOleClientSite *m_pImpIOleClientSite; + + tOleInPlaceSite *m_pImpIOleIPSite; //Our interface + LPOLEINPLACEOBJECT m_pIOleIPObject; //The object + RECT m_rcPos; //Last object rect + BOOL m_fInRectSet; //Prevent reentrancy + + //CHAPTER24MOD + tOleControlSite *m_pImpIOleControlSite; //Implemented + tDispatch *m_pImpIDispatch; //Implemented + + //Control interfaces + LPOLECONTROL m_pIOleControl; //Used + + //Other state information + BOOL m_fHaveControlInfo; + CONTROLINFO m_ctrlInfo; + ULONG m_cLockInPlace; + BOOL m_fPendingDeactivate; + //End CHAPTER24MOD + + +/* +* This flag is used exculsively by the implementation of +* IOleUILinkContainer on the page we're in for the Links +* Dialog. Since we never use it ourselves, public here +* is no big deal. +*/ +public: + BOOL m_fLinkAvail; + +protected: + void CalcNaturalSize(void); + long natural_height; + long natural_width; + BOOL ObjectInitialize(LPUNKNOWN); + + //CHAPTER24MOD + BOOL ControlInitialize(void); + //End CHAPTER24MOD + +public: + void setDesignMode(bool value, bool notify); + void GetNaturalSize(long *pWidth, long *pHeight); + void OnShow(void); + //Gotta have an IUnknown for delegation + STDMETHODIMP QueryInterface(REFIID, LPVOID *); + STDMETHODIMP_(ULONG) AddRef(void); + STDMETHODIMP_(ULONG) Release(void); + + UINT Create(LPVOID); + BOOL Open(LPSTORAGE); + void Close(BOOL); + + + BOOL Activate(LONG, LPMSG); + + void EnableRepaint(BOOL); + + void ObjectGet(LPUNKNOWN *); + void SizeGet(LPSIZEL, BOOL); + void SizeSet(LPSIZEL, BOOL, BOOL); + void RectGet(LPRECTL, BOOL); + void RectSet(LPRECTL, BOOL, BOOL); + + void DeactivateInPlaceObject(BOOL); + void UpdateInPlaceObjectRects(LPCRECT, BOOL); + HWND ObjectWindow(void); + + //CHAPTER24MOD + DWORD GetControlFlags(); + BOOL TryMnemonic(LPMSG); + void AmbientChange(DISPID); + //End CHAPTER24MOD + + +}; + +#endif // !defined(AFX_TOLEHANDLER_H__49B97C12_8DEB_11D3_A906_0004ACE655F9__INCLUDED_) |