- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
392 lines
16 KiB
C++
392 lines
16 KiB
C++
//
|
|
//**************************************************************************
|
|
//
|
|
// BOleIntf.h -- Contains the main interfaces (abstract base classes) used by
|
|
// Bolero to encapsulate OLE2 compound document functionality
|
|
//
|
|
// Copyright (c) 1993,94 by Borland International, Inc. All rights reserved
|
|
//
|
|
//**************************************************************************
|
|
|
|
#ifndef _boleintf_h
|
|
#define _boleintf_h
|
|
|
|
#if ((defined __BORLANDC__) && (!defined WIN32))
|
|
#pragma option -po-
|
|
#endif
|
|
|
|
#include <BoleDefs.h>
|
|
|
|
#if ((defined __BORLANDC__) && (!defined WIN32))
|
|
#pragma option -po-
|
|
#endif
|
|
|
|
#ifdef WIN32
|
|
#include "pshpack8.h"
|
|
#endif
|
|
|
|
PREDECLARE_INTERFACE( IBClassMgr )
|
|
PREDECLARE_INTERFACE( IBPart )
|
|
PREDECLARE_INTERFACE( IBService )
|
|
PREDECLARE_INTERFACE( IBLinkable)
|
|
PREDECLARE_INTERFACE( IBRootLinkable)
|
|
PREDECLARE_INTERFACE( IBContains)
|
|
PREDECLARE_INTERFACE( IBDocument )
|
|
PREDECLARE_INTERFACE( IBContainer )
|
|
PREDECLARE_INTERFACE( IBSite )
|
|
PREDECLARE_INTERFACE( IBApplication )
|
|
PREDECLARE_INTERFACE( IBLinkInfo)
|
|
PREDECLARE_INTERFACE( IBDataNegotiator)
|
|
PREDECLARE_INTERFACE( IBDataProvider)
|
|
PREDECLARE_INTERFACE( IBDataConsumer)
|
|
PREDECLARE_INTERFACE( IBWindow)
|
|
PREDECLARE_INTERFACE( IBDropDest)
|
|
PREDECLARE_INTERFACE( IBClass)
|
|
PREDECLARE_INTERFACE( IBOverrideBrowseLinks)
|
|
PREDECLARE_INTERFACE( IBSite2)
|
|
PREDECLARE_INTERFACE( IBOverrideHelpButton)
|
|
PREDECLARE_INTERFACE( IBPart2 )
|
|
PREDECLARE_INTERFACE( IBDataProvider2 )
|
|
|
|
// IClassMgr abstract base class
|
|
//
|
|
class _ICLASS IBClassMgr : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC ComponentCreate(
|
|
PIUnknown FAR* ppRet,
|
|
PIUnknown pAggregator,
|
|
BCID idClass
|
|
) = 0;
|
|
virtual HRESULT _IFUNC ComponentInfoGet(
|
|
PIUnknown FAR* ppInfo,
|
|
PIUnknown pAggregator,
|
|
BCID idClass
|
|
) = 0;
|
|
};
|
|
|
|
// IBDataNegotiator -- Enumerats formats for drag/drop and paste
|
|
//
|
|
class _ICLASS IBDataNegotiator : public IUnknown {
|
|
public:
|
|
|
|
virtual UINT _IFUNC CountFormats () = 0;
|
|
virtual HRESULT _IFUNC GetFormat (UINT, BOleFormat FAR*) = 0;
|
|
};
|
|
|
|
// IBDataConsumer -- Supported by containers who want to accept drag/drop
|
|
// and paste. No new methods over the negotiator, so
|
|
// this is just a placeholder for the consumer name.
|
|
//
|
|
class _ICLASS IBDataConsumer : public IBDataNegotiator {
|
|
};
|
|
|
|
// IBDataProvider -- Supported by parts and/or sites which can be
|
|
// copied to the OLE2 clipboard
|
|
//
|
|
class _ICLASS IBDataProvider : public IBDataNegotiator {
|
|
public:
|
|
|
|
virtual HANDLE _IFUNC GetFormatData (BOleFormat FAR*) = 0;
|
|
virtual HRESULT _IFUNC Draw (HDC,LPCRECTL,LPCRECTL,BOleAspect,
|
|
BOleDraw bd = BOLE_DRAW_NONE) = 0;
|
|
virtual HRESULT _IFUNC GetPartSize (LPSIZE) = 0;
|
|
virtual HRESULT _IFUNC Save (IStorage FAR*, BOOL fSamAsLoad,
|
|
BOOL fRemember) = 0;
|
|
};
|
|
|
|
// IBDataProvider2 -- new version of IBDataProvider
|
|
//
|
|
class _ICLASS IBDataProvider2 : public IBDataProvider {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC SetFormatData (BOleFormat FAR* fmt, HANDLE data, BOOL release) = 0;
|
|
};
|
|
|
|
// IBPart -- Supported by server objects
|
|
//
|
|
class _ICLASS IBPart : public IBDataProvider {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC Init (PIBSite,BOleInitInfo FAR*) = 0;
|
|
virtual HRESULT _IFUNC Close () = 0;
|
|
virtual HRESULT _IFUNC CanOpenInPlace () = 0;
|
|
virtual HRESULT _IFUNC SetPartSize (LPSIZE) = 0;
|
|
virtual HRESULT _IFUNC SetPartPos (LPRECT) = 0;
|
|
virtual HRESULT _IFUNC Activate (BOOL) = 0;
|
|
virtual HRESULT _IFUNC Show (BOOL) = 0;
|
|
virtual HRESULT _IFUNC Open (BOOL) = 0;
|
|
virtual HRESULT _IFUNC EnumVerbs (BOleVerb FAR*) = 0;
|
|
virtual HRESULT _IFUNC DoVerb (UINT) = 0;
|
|
virtual HWND _IFUNC OpenInPlace (HWND) = 0;
|
|
virtual HRESULT _IFUNC InsertMenus (HMENU,BOleMenuWidths FAR*) = 0;
|
|
virtual HRESULT _IFUNC ShowTools (BOOL) = 0;
|
|
virtual void _IFUNC FrameResized (LPCRECT,BOOL) = 0;
|
|
virtual HRESULT _IFUNC DragFeedback (LPPOINT,BOOL) = 0;
|
|
virtual HRESULT _IFUNC GetPalette (LPLOGPALETTE FAR*) = 0;
|
|
virtual HRESULT _IFUNC SetHost (PIBContainer pObjContainer) = 0;
|
|
virtual HRESULT _IFUNC DoQueryInterface(REFIID iid, void FAR* FAR* pif)= 0;
|
|
|
|
virtual LPOLESTR _IFUNC GetName (BOlePartName) = 0;
|
|
};
|
|
|
|
|
|
// IBPart2 -- Supported by server objects
|
|
//
|
|
class _ICLASS IBPart2 : public IBPart,
|
|
public IBDataProvider2 {
|
|
};
|
|
|
|
// IService abstract base class
|
|
//
|
|
class _ICLASS IBService : public IUnknown {
|
|
public:
|
|
|
|
virtual void _IFUNC OnResize () = 0;
|
|
virtual void _IFUNC OnActivate (BOOL) = 0;
|
|
virtual HRESULT _IFUNC OnModalDialog (BOOL) = 0;
|
|
virtual HRESULT _IFUNC OnSetFocus(BOOL) = 0;
|
|
|
|
virtual HRESULT _IFUNC Init (PIBApplication) = 0;
|
|
virtual HRESULT _IFUNC RegisterClass (LPCOLESTR,PIBClassMgr,BCID,
|
|
BOOL fEmbedInSelf, BOOL fSingleUse) = 0;
|
|
virtual HRESULT _IFUNC UnregisterClass (LPCOLESTR) = 0;
|
|
virtual HRESULT _IFUNC TranslateAccel (LPMSG) = 0;
|
|
virtual BOleHelp _IFUNC HelpMode (BOleHelp) = 0;
|
|
virtual HRESULT _IFUNC CanClose () = 0;
|
|
|
|
virtual HRESULT _IFUNC BrowseClipboard (BOleInitInfo FAR*) = 0;
|
|
virtual HRESULT _IFUNC Browse (BOleInitInfo FAR*) = 0;
|
|
|
|
virtual HRESULT _IFUNC Paste (BOleInitInfo FAR*) = 0;
|
|
virtual HRESULT _IFUNC Clip (PIBDataProvider, BOOL, BOOL, BOOL) = 0;
|
|
virtual HRESULT _IFUNC Drag (PIBDataProvider, BOleDropAction, BOleDropAction FAR*) = 0;
|
|
virtual IStorage FAR* _IFUNC CreateStorageOnFile (LPCOLESTR, BOOL) = 0;
|
|
virtual HRESULT _IFUNC ConvertUI (PIBPart, BOOL,
|
|
BOleConvertInfo FAR*) = 0;
|
|
virtual HRESULT _IFUNC ConvertGuts (PIBPart, BOOL,
|
|
BOleConvertInfo FAR*) = 0;
|
|
virtual BOleMenuEnable _IFUNC EnableEditMenu (BOleMenuEnable,
|
|
PIBDataConsumer)= 0;
|
|
};
|
|
|
|
// ILinkable abstract base class
|
|
//
|
|
class _ICLASS IBLinkable : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC GetMoniker(IMoniker FAR* FAR* ppMon) = 0;
|
|
virtual HRESULT _IFUNC OnRename(PIBLinkable pContainer, LPCOLESTR szName) = 0;
|
|
// pass NULL szName when Doc closes
|
|
// pass boledoc for pContainer if root part (file)
|
|
};
|
|
class _ICLASS IBRootLinkable : public IBLinkable {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC Init (PIBContains pC, LPCOLESTR szProgId) = 0;
|
|
virtual HRESULT _IFUNC SetMoniker (IMoniker FAR* pMon) = 0;
|
|
};
|
|
/*
|
|
* on BOleLinkDoc used by Part servers and Linking Containers
|
|
* on BOleSite used by parts
|
|
*/
|
|
|
|
// IContains abstract base class
|
|
//
|
|
class _ICLASS IBContains : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC Init(LPCOLESTR) = 0;
|
|
virtual HRESULT _IFUNC GetPart(PIBPart FAR*, LPCOLESTR) = 0;
|
|
};
|
|
/*
|
|
* on linkable containers (all Containers with BOleLinkDoc helper)
|
|
* on linkable server documents (with BOleLinkDoc helper)
|
|
* on intermediate parts (in addition to IPart)
|
|
*/
|
|
|
|
// IBDocument -- Supported by BOleDocument one per container child window
|
|
//
|
|
class _ICLASS IBDocument : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC Init (PIBContainer) = 0;
|
|
virtual void _IFUNC OnResize () = 0;
|
|
virtual void _IFUNC OnActivate (BOOL) = 0;
|
|
virtual void _IFUNC OnClose () = 0;
|
|
virtual HRESULT _IFUNC OnSetFocus(BOOL) = 0;
|
|
|
|
virtual HRESULT _IFUNC EnumLinks (PIBLinkInfo FAR*) = 0;
|
|
virtual HRESULT _IFUNC BrowseLinks () = 0;
|
|
virtual HRESULT _IFUNC UpdateLinks () = 0;
|
|
};
|
|
|
|
|
|
|
|
// IBWindow -- Supported on child window *and* frame window of container apps
|
|
//
|
|
class _ICLASS IBWindow : public IUnknown {
|
|
public:
|
|
virtual HWND _IFUNC GetWindow () = 0;
|
|
virtual HRESULT _IFUNC GetWindowRect (LPRECT) = 0;
|
|
virtual LPCOLESTR _IFUNC GetWindowTitle () = 0;
|
|
virtual void _IFUNC AppendWindowTitle (LPCOLESTR) = 0;
|
|
virtual HRESULT _IFUNC SetStatusText (LPCOLESTR) = 0;
|
|
|
|
virtual HRESULT _IFUNC RequestBorderSpace (LPCRECT) = 0;
|
|
virtual HRESULT _IFUNC SetBorderSpace (LPCRECT) = 0;
|
|
|
|
virtual HRESULT _IFUNC InsertContainerMenus (HMENU,BOleMenuWidths FAR*) = 0;
|
|
virtual HRESULT _IFUNC SetFrameMenu (HMENU) = 0;
|
|
virtual void _IFUNC RestoreUI () = 0;
|
|
virtual HRESULT _IFUNC Accelerator (LPMSG) = 0;
|
|
virtual HRESULT _IFUNC GetAccelerators (HACCEL FAR*, int FAR*) = 0;
|
|
};
|
|
|
|
// IBContainer -- Supported by container app's document window
|
|
//
|
|
class _ICLASS IBContainer : public IBWindow {
|
|
public:
|
|
virtual HRESULT _IFUNC FindDropDest (LPPOINT, PIBDropDest FAR*) = 0;
|
|
virtual HRESULT _IFUNC AllowInPlace () = 0;
|
|
virtual HRESULT _IFUNC BringToFront () = 0;
|
|
};
|
|
|
|
// IBDropDest -- Supported by container app's document window and/or other
|
|
// areas inside the window.
|
|
//
|
|
class _ICLASS IBDropDest : public IBDataConsumer {
|
|
public:
|
|
virtual HRESULT _IFUNC Drop (BOleInitInfo FAR*, LPPOINT, LPCRECT) = 0;
|
|
virtual void _IFUNC DragFeedback (LPPOINT, LPCRECT,
|
|
BOleMouseAction, UINT, HRESULT&) = 0;
|
|
virtual HRESULT _IFUNC Scroll (BOleScroll scrollDir) = 0;
|
|
virtual HRESULT _IFUNC GetScrollRect (LPRECT) = 0;
|
|
};
|
|
|
|
// IBApplication -- Supported at frame window/app object of container apps
|
|
//
|
|
class _ICLASS IBApplication : public IBWindow {
|
|
public:
|
|
|
|
virtual LPCOLESTR _IFUNC GetAppName () = 0;
|
|
virtual BOleHelp _IFUNC HelpMode (BOleHelp) = 0;
|
|
virtual HRESULT _IFUNC CanLink () = 0;
|
|
virtual HRESULT _IFUNC CanEmbed () = 0;
|
|
virtual HRESULT _IFUNC IsMDI () = 0;
|
|
virtual HRESULT _IFUNC OnModalDialog (BOOL) = 0;
|
|
virtual void _IFUNC DialogHelpNotify (BOleDialogHelp) = 0;
|
|
virtual void _IFUNC ShutdownMaybe () = 0;
|
|
};
|
|
|
|
// IBSite -- Supported by container apps for each linked/embedded object
|
|
//
|
|
class _ICLASS IBSite : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC SiteShow (BOOL) = 0;
|
|
virtual HRESULT _IFUNC DiscardUndo () = 0;
|
|
virtual HRESULT _IFUNC GetSiteRect (LPRECT,LPRECT) = 0;
|
|
virtual HRESULT _IFUNC SetSiteRect (LPCRECT) = 0;
|
|
virtual HRESULT _IFUNC SetSiteExtent (LPCSIZE) = 0;
|
|
virtual HRESULT _IFUNC GetZoom(BOleScaleFactor FAR* pScale) = 0;
|
|
virtual void _IFUNC Invalidate (BOleInvalidate) = 0;
|
|
virtual void _IFUNC OnSetFocus(BOOL) = 0;
|
|
virtual HRESULT _IFUNC Init (PIBDataProvider, PIBPart, LPCOLESTR, BOOL) = 0;
|
|
virtual void _IFUNC Disconnect () = 0;
|
|
};
|
|
|
|
// IBSite2 -- Add flexibility to have parent of site not be container
|
|
//
|
|
class _ICLASS IBSite2 : public IBSite {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC GetParentWindow (HWND FAR*) = 0;
|
|
};
|
|
|
|
// IBLinkInfo -- Supported by BOleParts which are link objects
|
|
//
|
|
class _ICLASS IBLinkInfo : public IUnknown {
|
|
public:
|
|
|
|
virtual HRESULT _IFUNC SourceBreak () = 0;
|
|
virtual HRESULT _IFUNC SourceGet (LPOLESTR, UINT count) = 0;
|
|
virtual HRESULT _IFUNC SourceSet (LPOLESTR) = 0;
|
|
virtual HRESULT _IFUNC SourceOpen () = 0;
|
|
virtual HRESULT _IFUNC UpdateGet (BOleLinkUpdate FAR*) = 0;
|
|
virtual HRESULT _IFUNC UpdateSet (BOleLinkUpdate) = 0;
|
|
virtual HRESULT _IFUNC UpdateNow () = 0;
|
|
};
|
|
|
|
// IBClass -- Supported by BOleFactory
|
|
//
|
|
class _ICLASS IBClass : public IClassFactory {
|
|
public:
|
|
virtual HRESULT _IFUNC Init(BOOL fSelfEmbed, LPCOLESTR pszProgId, IBClassMgr *pCM, BCID rid) = 0;
|
|
virtual HRESULT _IFUNC Register(BOOL fSingleUse) = 0;
|
|
virtual HRESULT _IFUNC Revoke() = 0;
|
|
virtual HRESULT _IFUNC GetClassID(LPCLSID pOut) = 0;
|
|
virtual BOOL _IFUNC IsA(REFCLSID pOut) = 0;
|
|
virtual BOOL _IFUNC AllowEmbedFromSelf() = 0;
|
|
virtual HRESULT _IFUNC GetEmbeddingHelperFactory(LPUNKNOWN *ppF) = 0;
|
|
};
|
|
|
|
// IBOverrideBrowseLinks -- Supported by containers (who aggregate BOleDoc)
|
|
// who want to override our BrowseLinks dialog.
|
|
//
|
|
class _ICLASS IBOverrideBrowseLinks : public IUnknown {
|
|
public:
|
|
virtual HRESULT _IFUNC BrowseLinks () = 0;
|
|
};
|
|
|
|
// IBOverrideHelpButton -- Supported by container apps (who aggregate
|
|
// BOleService) who want to suppress the help
|
|
// button in our dialogs.
|
|
//
|
|
class _ICLASS IBOverrideHelpButton : public IUnknown {
|
|
public:
|
|
virtual HRESULT _IFUNC ShowHelpButton (BOleDialogHelp) = 0;
|
|
};
|
|
|
|
DEFINE_INLINE_QI( IBDataNegotiator, IUnknown)
|
|
DEFINE_INLINE_QI( IBDataConsumer, IUnknown)
|
|
DEFINE_INLINE_QI( IBDropDest, IBDataConsumer)
|
|
DEFINE_INLINE_QI( IBDataProvider, IBDataNegotiator)
|
|
DEFINE_INLINE_QI( IBPart, IBDataProvider)
|
|
|
|
DEFINE_INLINE_QI( IBWindow, IUnknown)
|
|
DEFINE_INLINE_QI( IBContainer, IBWindow)
|
|
DEFINE_INLINE_QI( IBApplication, IBWindow)
|
|
|
|
DEFINE_INLINE_QI( IBDocument, IUnknown)
|
|
DEFINE_INLINE_QI( IBService, IUnknown)
|
|
DEFINE_INLINE_QI( IBClassMgr, IUnknown)
|
|
DEFINE_INLINE_QI( IBLinkInfo, IUnknown)
|
|
DEFINE_INLINE_QI( IBSite, IUnknown)
|
|
DEFINE_INLINE_QI( IBSite2, IBSite)
|
|
DEFINE_INLINE_QI( IBContains, IUnknown)
|
|
|
|
DEFINE_INLINE_QI( IBLinkable, IUnknown)
|
|
DEFINE_INLINE_QI( IBRootLinkable, IBLinkable)
|
|
DEFINE_INLINE_QI( IClassFactory, IUnknown)
|
|
DEFINE_INLINE_QI( IBClass, IClassFactory)
|
|
|
|
DEFINE_INLINE_QI( IBOverrideBrowseLinks, IUnknown)
|
|
DEFINE_INLINE_QI( IBOverrideHelpButton, IUnknown)
|
|
|
|
DEFINE_INLINE_QI( IBDataProvider2, IBDataProvider)
|
|
DEFINE_INLINE_QI2(IBPart2, IBPart, IBDataProvider2)
|
|
|
|
|
|
#if ((defined __BORLANDC__) && (!defined WIN32))
|
|
#pragma option -po.
|
|
#endif
|
|
|
|
#ifdef WIN32
|
|
#include "poppack.h"
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|