Files
TeslaRel410/BORLAND/BC45/SOURCE/OCF/BOCOLE/BOLE.H
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- 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>
2026-07-19 07:33:26 -05:00

175 lines
5.1 KiB
C++

//
//**************************************************************************
//
// BOle.h -- Common private header file for BOle modules.
//
// Copyright (c) 1993,94 by Borland International, Inc. All rights reserved
//
//**************************************************************************
#ifndef _BOLE_H
#define _BOLE_H 1
#pragma warn -par // Turn off warning "Parameter is never used"
#include <BOle32.h>
#if !defined(__DEFS_H)
#include <_defs.h>
#endif
#if !defined(__WINDOWS_H)
// #undef NULL
#define STRICT
#include <windows.h>
#endif
#include <Ole2.h>
#include <BOleintf.h> // ole2 must come before boleintf.h
#if defined(WIN32)
#include <oleauto.h>
#else
#include <Dispatch.h>
#endif
#define OLE /* use OLE::func to disambiguate OLEAPI global functions */
#define WIN /* use WIN::func to disambiguate WINAPI global functions */
#define OUI /* use OUI::func to identify helper funcs not part of OLE.DLL */
//#undef NOERROR /* OLE defines as simply 0 */
//#define NOERROR ((void FAR*)0L)
#if defined(INITGUID)
#if defined(WIN32)
#include <cguid.h>
#else
#include <oleguid.h>
#endif
#endif
PREDECLARE_INTERFACE(IClassFactory)
PREDECLARE_INTERFACE(IDropSource)
PREDECLARE_INTERFACE(IDropTarget)
PREDECLARE_INTERFACE(IPersist)
PREDECLARE_INTERFACE(IPersistFile)
PREDECLARE_INTERFACE(IPersistStream)
PREDECLARE_INTERFACE(IOleClientSite)
PREDECLARE_INTERFACE(IAdviseSink)
PREDECLARE_INTERFACE(IDataObject)
PREDECLARE_INTERFACE(IOleObject)
PREDECLARE_INTERFACE(IViewObject)
PREDECLARE_INTERFACE(IViewObject2)
PREDECLARE_INTERFACE(IPersistStorage)
PREDECLARE_INTERFACE(IMalloc)
PREDECLARE_INTERFACE(IParseDisplayName)
PREDECLARE_INTERFACE(IOleContainer)
PREDECLARE_INTERFACE(IOleItemContainer)
// In-place interfaces
PREDECLARE_INTERFACE(IOleWindow)
PREDECLARE_INTERFACE(IOleInPlaceActiveObject)
PREDECLARE_INTERFACE(IOleInPlaceObject)
PREDECLARE_INTERFACE(IOleInPlaceSite)
PREDECLARE_INTERFACE(IOleInPlaceUIWindow)
PREDECLARE_INTERFACE(IOleInPlaceFrame)
// Automation interfaces
PREDECLARE_INTERFACE(IDispatch)
// assorted hookables
PREDECLARE_INTERFACE(IMarshal)
PREDECLARE_INTERFACE(IEnumUnknown)
PREDECLARE_INTERFACE(IEnumString)
PREDECLARE_INTERFACE(IEnumSTATDATA)
PREDECLARE_INTERFACE(IEnumFORMATETC)
PREDECLARE_INTERFACE(IEnumOLEVERB)
PREDECLARE_INTERFACE(IEnumMoniker)
PREDECLARE_INTERFACE(IRunningObjectTable)
PREDECLARE_INTERFACE(IMoniker)
PREDECLARE_INTERFACE(IBindCtx)
PREDECLARE_INTERFACE(IRootStorage)
PREDECLARE_INTERFACE(IStorage)
PREDECLARE_INTERFACE(IStream)
PREDECLARE_INTERFACE(ILockBytes)
PREDECLARE_INTERFACE(IEnumSTATSTG)
PREDECLARE_INTERFACE(IOleLink)
PREDECLARE_INTERFACE(IDataAdviseHolder)
PREDECLARE_INTERFACE(IAdviseSink2)
PREDECLARE_INTERFACE(IOleAdviseHolder)
PREDECLARE_INTERFACE(IOleCache)
PREDECLARE_INTERFACE(IExternalConnection)
PREDECLARE_INTERFACE(IRunnableObject)
//DEFINE_INLINE_QI(IClassFactory,IUnknown) // moved to boledefs.h
DEFINE_INLINE_QI(IDropSource,IUnknown)
DEFINE_INLINE_QI(IDropTarget,IUnknown)
DEFINE_INLINE_QI(IPersist,IUnknown)
DEFINE_INLINE_QI(IPersistFile,IPersist)
DEFINE_INLINE_QI(IPersistStream,IPersist)
DEFINE_INLINE_QI(IOleClientSite,IUnknown)
DEFINE_INLINE_QI(IAdviseSink,IUnknown)
DEFINE_INLINE_QI(IDataObject,IUnknown)
DEFINE_INLINE_QI(IOleObject,IUnknown)
DEFINE_INLINE_QI(IViewObject,IUnknown)
DEFINE_INLINE_QI(IViewObject2,IViewObject)
DEFINE_INLINE_QI(IPersistStorage,IPersist)
DEFINE_INLINE_QI(IMalloc,IUnknown)
DEFINE_INLINE_QI(IParseDisplayName,IUnknown)
DEFINE_INLINE_QI(IOleContainer,IParseDisplayName)
DEFINE_INLINE_QI(IOleItemContainer,IOleContainer)
// In-place interfaces
DEFINE_INLINE_QI(IOleWindow,IUnknown)
DEFINE_INLINE_QI(IOleInPlaceActiveObject,IOleWindow)
DEFINE_INLINE_QI(IOleInPlaceObject,IOleWindow)
DEFINE_INLINE_QI(IOleInPlaceSite,IOleWindow)
DEFINE_INLINE_QI(IOleInPlaceUIWindow,IOleWindow)
DEFINE_INLINE_QI(IOleInPlaceFrame,IOleInPlaceUIWindow)
// Automation interfaces
DEFINE_INLINE_QI(IDispatch, IUnknown)
// assorted hookables
DEFINE_INLINE_QI(IMarshal,IUnknown)
DEFINE_INLINE_QI(IEnumUnknown,IUnknown)
DEFINE_INLINE_QI(IEnumString,IUnknown)
DEFINE_INLINE_QI(IEnumSTATDATA,IUnknown)
DEFINE_INLINE_QI(IEnumFORMATETC,IUnknown)
DEFINE_INLINE_QI(IEnumOLEVERB, IUnknown)
DEFINE_INLINE_QI(IEnumMoniker, IUnknown)
DEFINE_INLINE_QI(IRunningObjectTable, IUnknown)
DEFINE_INLINE_QI(IMoniker, IPersistStream)
DEFINE_INLINE_QI(IBindCtx, IUnknown)
DEFINE_INLINE_QI(IRootStorage, IUnknown)
DEFINE_INLINE_QI(IStorage, IUnknown)
DEFINE_INLINE_QI(IStream, IUnknown)
DEFINE_INLINE_QI(ILockBytes, IUnknown)
DEFINE_INLINE_QI(IEnumSTATSTG, IUnknown)
DEFINE_INLINE_QI(IOleLink, IUnknown)
DEFINE_INLINE_QI(IDataAdviseHolder, IUnknown)
DEFINE_INLINE_QI(IAdviseSink2, IAdviseSink)
DEFINE_INLINE_QI(IOleAdviseHolder, IUnknown)
DEFINE_INLINE_QI(IOleCache, IUnknown)
DEFINE_INLINE_QI(IExternalConnection, IUnknown)
DEFINE_INLINE_QI(IRunnableObject, IUnknown)
#include "oledebug.h"
extern HINSTANCE boleInst;
#ifdef ANSI
#include "Utils.h"
#endif
#endif