home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 May
/
Pcwk5b98.iso
/
Borland
/
Cplus45
/
BC45
/
BOCOLE.PAK
/
BOLEPART.H
< prev
next >
Wrap
C/C++ Source or Header
|
1995-08-29
|
8KB
|
228 lines
//
//**************************************************************************
//
// BOlePart.h -- Declares the Bolero half of the site object. BOlePart
// looks to the user like a server object
//
// Copyright (c) 1993,94 by Borland International, Inc. All rights reserved
//
//**************************************************************************
#ifndef _BOLEPART_H
#define _BOLEPART_H 1
#include "BOleComp.h"
#if !defined(__SHELLAPI_H) && !defined(__WIN32__)
#include <shellapi.h>
#endif
extern "C"{
#include "ole2ui.h"
}
class _ICLASS BOleDocument;
class _ICLASS BOlePart : public BOleComponent, public IBPart2,
public IOleClientSite, public IAdviseSink,
public IOleInPlaceSite, public IBLinkInfo,
public IBLinkable, public IDropSource
{
protected:
IBSite * pSite;
IBContainer * pContainer;
IBLinkable * pILinkCont;
BOleDocument * pDoc;
IViewObject * pViewObject;
IEnumFORMATETC * pEnumFE;
IOleInPlaceObject * pInPlaceObject;
IEnumOLEVERB * pVerbEnumerator;
IOleLink * pLinkObject;
IStorage * pStgFromInit;
BOOL IsOpen : 1;
BOOL IsOpenInPlace : 1;
BOOL IsOpenInsideOut : 1;
BOOL HasMoniker : 1;
BOOL IsLink : 1;
BOOL MonikerAssigned : 1;
BOOL fLinkSrcAvail : 1;
LPOLESTR pShortName;
LPOLESTR pLongName;
LPOLESTR pAppName;
WORD verbIndex;
OLEVERB oleVerb;
DWORD dwDrawAspect, dwExtAspect;
HGLOBAL mfpIcon;
BOlePart * pNextPart, *pPrevPart;
LPOLESTR pszInstName;
BOleScaleFactor scaleSite;
SIZEL CachedExtent;
public:
IOleObject * pOleObject;
IDataObject * pDataObject;
LPUNKNOWN pDocument;
private:
void AddToList ();
void RemoveFromList ();
public:
BOlePart (BOleClassManager *pF, IBUnknownMain * pO, BOleDocument * pOD);
~BOlePart ();
virtual HRESULT _IFUNC GetParentIPS(LPOLEINPLACESITE *pIPSite);
virtual IMoniker * _IFUNC GetObjectMoniker (DWORD dwAssign);
virtual BOOL _IFUNC GetLinkAvailability() {return fLinkSrcAvail;}
virtual BOlePart * _IFUNC GetNextLink (BOOL);
virtual BOOL _IFUNC SourceGet(LPOLESTR FAR *,LPOLESTR FAR *,
LPOLESTR FAR *,DWORD FAR *);
virtual BOOL _IFUNC CacheIconicAspect (HGLOBAL);
virtual BOOL _IFUNC InitAdvises(LPOLEOBJECT, DWORD, LPOLESTR, LPOLESTR,
LPADVISESINK, BOOL);
HRESULT CreateFromBOleInitInfo(BOleInitInfo *pBI, BOOL &fShowAfterCreate);
void UpdateSiteScaleFactor();
void DeleteTypeNames();
virtual HRESULT _IFUNC CopyFromOriginal (LPFORMATETC, LPDATAOBJECT FAR*);
virtual HRESULT _IFUNC AddCachedData (IDataObject *pTarget);
virtual HRESULT _IFUNC AddLinkSourceData (IDataObject *pTarget);
virtual HRESULT _IFUNC AddSiteData (IDataObject *pTarget);
virtual HRESULT _IFUNC ConvertUI (PIBApplication, BOOL, BOleConvertInfo FAR*);
virtual HRESULT _IFUNC ConvertGuts (BOOL, BOleConvertInfo FAR*);
virtual HRESULT _IFUNC ConvertHelper (LPCLSID, LPOLESTR FAR *, WORD FAR*);
virtual BOOL _IFUNC IsInPlace () {return IsOpenInPlace;}
virtual void _IFUNC ResetObjectRects ();
virtual BOlePart* _IFUNC GetNextPart () {return pNextPart;}
HRESULT _IFUNC SwitchDisplayAspect(
LPOLEOBJECT lpOleObj,
LPDWORD lpdwCurAspect,
DWORD dwNewAspect,
HGLOBAL hMetaPict,
BOOL fDeleteOldAspect,
BOOL fSetupViewAdvise,
LPADVISESINK lpAdviseSink,
BOOL FAR* lpfMustUpdate,
BOOL fRunIfNecessary);
void _IFUNC HandleLinkError();
public:
// IPart methods
virtual HRESULT _IFUNC Init(PIBSite, BOleInitInfo FAR*);
virtual HRESULT _IFUNC Save (PIStorage, BOOL, BOOL);
// Information
virtual HRESULT _IFUNC CanOpenInPlace ();
virtual HRESULT _IFUNC GetPalette (LPLOGPALETTE FAR*);
virtual HRESULT _IFUNC SetHost (IBContainer FAR *pObjContainer);
virtual LPOLESTR _IFUNC GetName (BOlePartName);
// Server part state changes
virtual HRESULT _IFUNC Open (BOOL );
virtual HRESULT _IFUNC Show (BOOL );
virtual HRESULT _IFUNC Close ();
virtual HRESULT _IFUNC Activate (BOOL fActivate);
virtual HWND _IFUNC OpenInPlace (HWND);
// Part size and update methods
virtual HRESULT _IFUNC GetPartSize (LPSIZE);
virtual HRESULT _IFUNC SetPartSize (LPSIZE);
virtual HRESULT _IFUNC SetPartPos (LPRECT);
virtual HRESULT _IFUNC Draw (HDC, LPCRECTL lpExtent, LPCRECTL lpClip, BOleAspect, BOleDraw);
// Tool handling
virtual HRESULT _IFUNC InsertMenus (HMENU, BOleMenuWidths*);
virtual void _IFUNC FrameResized (const RECT *, BOOL);
virtual HRESULT _IFUNC ShowTools (BOOL);
virtual HRESULT _IFUNC EnumVerbs (BOleVerb*);
virtual HRESULT _IFUNC DragFeedback(POINT*,BOOL);
virtual HRESULT _IFUNC DoVerb (UINT);
//IBLinkInfo methods
virtual HRESULT _IFUNC SourceBreak();
virtual HRESULT _IFUNC SourceGet(LPOLESTR, UINT);
virtual HRESULT _IFUNC SourceSet(LPOLESTR);
virtual HRESULT _IFUNC SourceOpen();
virtual HRESULT _IFUNC UpdateGet(BOleLinkUpdate*);
virtual HRESULT _IFUNC UpdateSet(BOleLinkUpdate);
virtual HRESULT _IFUNC UpdateNow();
//Clipboard methods inherited from IBDataProvider
virtual UINT _IFUNC CountFormats ();
virtual HRESULT _IFUNC GetFormat (UINT, BOleFormat*);
virtual HANDLE _IFUNC GetFormatData (BOleFormat*);
virtual HRESULT _IFUNC SetFormatData(BOleFormat FAR* fmt, HANDLE data, BOOL release);
virtual HRESULT _IFUNC DoQueryInterface(REFIID iid, void FAR* FAR* pif);
// IUnknown Methods
//
DEFINE_IUNKNOWN(pObjOuter);
virtual HRESULT _IFUNC QueryInterfaceMain(REFIID iid, LPVOID FAR* pif);
protected:
// IOleClientSite Methods
//
HRESULT _IFUNC SaveObject();
HRESULT _IFUNC GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker,
IMoniker* FAR* ppmk);
HRESULT _IFUNC GetContainer(IOleContainer* FAR* ppContainer);
HRESULT _IFUNC ShowObject();
HRESULT _IFUNC OnShowWindow(BOOL fShow);
HRESULT _IFUNC RequestNewObjectLayout();
// IAdviseSink Methods
//
void _IFUNC OnDataChange(FORMATETC FAR* pFormatetc,
STGMEDIUM FAR* pStgmed);
void _IFUNC OnViewChange(DWORD aspects, LONG lindex);
void _IFUNC OnRename(IMoniker* pmk);
void _IFUNC OnSave();
void _IFUNC OnClose();
// IOleWindow methods, base of IOleInPlaceUIWindow and IOleInPlaceSite
//
HRESULT _IFUNC GetWindow(HWND FAR* lphwnd);
HRESULT _IFUNC ContextSensitiveHelp(BOOL fEnterMode);
// IOleInPlaceSite methods
//
HRESULT _IFUNC CanInPlaceActivate();
HRESULT _IFUNC OnInPlaceActivate();
HRESULT _IFUNC OnUIActivate();
HRESULT _IFUNC GetWindowContext(IOleInPlaceFrame* FAR* lplpFrame,
IOleInPlaceUIWindow* FAR* lplpDoc,
LPRECT lprcPosRect,
LPRECT lprcClipRect,
LPOLEINPLACEFRAMEINFO lpFrameInfo);
HRESULT _IFUNC Scroll(SIZE scrollExtent);
HRESULT _IFUNC OnUIDeactivate(BOOL fUndoable);
HRESULT _IFUNC OnInPlaceDeactivate();
HRESULT _IFUNC DiscardUndoState();
HRESULT _IFUNC DeactivateAndUndo();
HRESULT _IFUNC OnPosRectChange(LPCRECT lprcPosRect);
// IBLinkable methods
//
virtual HRESULT _IFUNC GetMoniker(IMoniker FAR* FAR* ppMon);
virtual HRESULT _IFUNC OnRename(PIBLinkable pContainer, LPCOLESTR szName);
// IDropSource methods
//
HRESULT _IFUNC QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState);
HRESULT _IFUNC GiveFeedback(DWORD dwEffect);
};
#endif