- 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>
235 lines
7.4 KiB
C++
235 lines
7.4 KiB
C++
/* bivbx.h
|
|
|
|
Defines structs and functions for dealing with VBX controls.
|
|
|
|
*/
|
|
/*
|
|
* C/C++ Run Time Library - Version 6.0
|
|
*
|
|
* Copyright (c) 1993, 1994 by Borland International
|
|
* All Rights Reserved.
|
|
*
|
|
*/
|
|
|
|
#ifndef __BIVBX_H
|
|
#define __BIVBX_H
|
|
|
|
#define STRICT
|
|
#include <windows.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" { /* Assume C declarations for C++ */
|
|
#endif
|
|
|
|
#include <pshpack1.h>
|
|
|
|
#ifndef __VBX_H
|
|
|
|
#if ! defined(__DDEML_H) && ! defined(_HSZ_DEFINED)
|
|
#define _HSZ_DEFINED
|
|
typedef LPSTR HSZ;
|
|
#endif
|
|
typedef unsigned char ENUM;
|
|
typedef LPVOID HCTL;
|
|
typedef short SHORT;
|
|
typedef unsigned short USHORT;
|
|
typedef HANDLE HFORMFILE;
|
|
typedef USHORT ERR;
|
|
typedef WORD HPIC;
|
|
typedef LPVOID HLSTR;
|
|
|
|
#ifdef RC_INVOKED
|
|
#define DLGINIT 240
|
|
#else
|
|
#define RT_DLGINIT MAKEINTRESOURCE(240)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/* VBX Window Messages */
|
|
#define WM_VBXFIREEVENT 0x0360
|
|
|
|
/* VBX Event Structure */
|
|
typedef struct VBXEVENT {
|
|
HCTL Control;
|
|
HWND Window;
|
|
int ID;
|
|
int EventIndex;
|
|
LPCSTR EventName;
|
|
int NumParams;
|
|
LPVOID ParamList;
|
|
} VBXEVENT, FAR * LPVBXEVENT, NEAR * NPVBXEVENT;
|
|
|
|
/* macros for accessing event arguments */
|
|
#define VBX_EVENTARGNUM(event,type,index) \
|
|
*(((type FAR * FAR *)(event)->ParamList)[(event)->NumParams - (index) - 1])
|
|
#define VBX_EVENTARGSTR(event,index) \
|
|
(((HLSTR FAR *)(event)->ParamList)[(event)->NumParams - (index) - 1])
|
|
|
|
/* Initialization */
|
|
BOOL WINAPI VBXInit(HINSTANCE instance, LPCSTR classPrefix);
|
|
void WINAPI VBXTerm(void);
|
|
BOOL WINAPI VBXEnableDLL(HINSTANCE instApp, HINSTANCE instDLL);
|
|
|
|
/* Controls */
|
|
HCTL WINAPI VBXGetHctl(HWND window);
|
|
HWND WINAPI VBXGetHwnd(HCTL control);
|
|
HCTL WINAPI VBXCreate(HWND windowParent, UINT id,
|
|
LPCSTR library, LPCSTR cls,
|
|
LPCSTR title, DWORD style,
|
|
int x, int y, int w, int h,
|
|
HFORMFILE file);
|
|
|
|
/* Dialogs */
|
|
BOOL WINAPI VBXInitDialog(HWND window, HINSTANCE instance, LPSTR id);
|
|
|
|
/* Properties */
|
|
#define PTYPE_CSTRING 0x01 /* HSZ */
|
|
#define PTYPE_SHORT 0x02 /* short */
|
|
#define PTYPE_LONG 0x03 /* LONG */
|
|
#define PTYPE_BOOL 0x04 /* BOOL */
|
|
#define PTYPE_COLOR 0x05 /* COLORREF or DWORD */
|
|
#define PTYPE_ENUM 0x06 /* BYTE */
|
|
#define PTYPE_REAL 0x07 /* float */
|
|
#define PTYPE_XPOS 0x08 /* LONG (twips) */
|
|
#define PTYPE_XSIZE 0x09 /* LONG (twips) */
|
|
#define PTYPE_YPOS 0x0A /* LONG (twips) */
|
|
#define PTYPE_YSIZE 0x0B /* LONG (twips) */
|
|
#define PTYPE_PICTURE 0x0C /* HPIC */
|
|
#define PTYPE_BSTRING 0x0D /* HLSTR */
|
|
|
|
BOOL WINAPI VBXGetArrayProp(HCTL control, int index, int element, LPVOID value);
|
|
BOOL WINAPI VBXGetArrayPropByName(HCTL control, LPSTR name, int element, LPVOID value);
|
|
int WINAPI VBXGetNumProps(HCTL control);
|
|
BOOL WINAPI VBXGetProp(HCTL control, int index, LPVOID value);
|
|
ERR WINAPI VBXGetPropByName(HCTL control, LPSTR name, LPVOID value);
|
|
int WINAPI VBXGetPropIndex(HCTL control, LPCSTR name);
|
|
int WINAPI VBXGetPropNameBuf(HCTL control, int index, LPSTR buffer, int len);
|
|
USHORT WINAPI VBXGetPropType(HCTL control, int index);
|
|
BOOL WINAPI VBXIsArrayProp(HCTL control, int index);
|
|
BOOL WINAPI VBXSetArrayProp(HCTL control, int index, int element, LONG value);
|
|
BOOL WINAPI VBXSetArrayPropByName(HCTL control, LPSTR name, int element, LONG value);
|
|
BOOL WINAPI VBXSetProp(HCTL control, int index, LONG value);
|
|
ERR WINAPI VBXSetPropByName(HCTL control, LPSTR name, LONG value);
|
|
|
|
/* Events */
|
|
int WINAPI VBXGetEventIndex(HCTL control, LPCSTR name);
|
|
int WINAPI VBXGetEventNameBuf(HCTL control, int index, LPSTR buffer, int len);
|
|
int WINAPI VBXGetNumEvents(HCTL control);
|
|
|
|
/* methods */
|
|
BOOL WINAPI VBXMethodAddItem(HCTL control, int index, LPCSTR item);
|
|
BOOL WINAPI VBXMethodDrag(HCTL control, int action);
|
|
BOOL WINAPI VBXMethodMove(HCTL control, long x, long y, long w, long h);
|
|
BOOL WINAPI VBXMethodRefresh(HCTL control);
|
|
BOOL WINAPI VBXMethodRemoveItem(HCTL control, int item);
|
|
|
|
/* pixel/twips conversions */
|
|
SHORT WINAPI VBXTwp2PixY(LONG twips);
|
|
SHORT WINAPI VBXTwp2PixX(LONG twips);
|
|
LONG WINAPI VBXPix2TwpY(SHORT pixels);
|
|
LONG WINAPI VBXPix2TwpX(SHORT pixels);
|
|
|
|
/* dynamic strings (HSZ) */
|
|
HSZ WINAPI VBXCreateCString(HANDLE segment, LPSTR string);
|
|
HSZ WINAPI VBXDestroyCString(HSZ string);
|
|
int WINAPI VBXGetCStringBuf(HSZ string, LPSTR buffer, int len);
|
|
int WINAPI VBXGetCStringLength(HSZ string);
|
|
int WINAPI VBXLockCStringBuf(HSZ string, LPSTR buffer, int len);
|
|
VOID WINAPI VBXUnlockCString(HSZ string);
|
|
|
|
/* color properties */
|
|
#define COLOR_SYSCOLOR 0x80000000L
|
|
#define MAKESYSCOLOR(iColor) ((COLORREF)((iColor)|COLOR_SYSCOLOR))
|
|
|
|
/* pictures */
|
|
typedef struct PICTURE {
|
|
BYTE Type;
|
|
union {
|
|
struct {
|
|
HBITMAP Bitmap;
|
|
HPALETTE Palette;
|
|
} Bitmap;
|
|
struct {
|
|
HANDLE Metafile;
|
|
int xExtent;
|
|
int yExtent;
|
|
} Metafile;
|
|
struct {
|
|
HICON Icon;
|
|
} Icon;
|
|
} Data;
|
|
BYTE unused0;
|
|
BYTE unused1;
|
|
BYTE unused2;
|
|
BYTE unused3;
|
|
} PICTURE;
|
|
|
|
#define PICTURE_EMPTY 0
|
|
#define PICTURE_BMP 1
|
|
#define PICTURE_META 2
|
|
#define PICTURE_ICON 3
|
|
|
|
HPIC WINAPI VBXCreatePicture(PICTURE FAR * picture);
|
|
VOID WINAPI VBXDestroyPicture(HPIC pic);
|
|
HPIC WINAPI VBXGetPicture(HPIC pic, PICTURE FAR * picture);
|
|
ERR WINAPI VBXGetPictureFromClipboard(HPIC FAR *pic, HANDLE data, WORD format);
|
|
HPIC WINAPI VBXReferencePicture(HPIC pic);
|
|
|
|
/* Basic language strings (HLSTR) */
|
|
HLSTR WINAPI VBXCreateBasicString(LPVOID buffer, USHORT len);
|
|
VOID WINAPI VBXDestroyBasicString(HLSTR string);
|
|
int WINAPI VBXGetBasicStringBuf(HLSTR string, LPSTR buffer, int len);
|
|
USHORT WINAPI VBXGetBasicStringLength(HLSTR string);
|
|
ERR WINAPI VBXSetBasicString(HLSTR far *string, LPVOID buffer, USHORT len);
|
|
|
|
/* form files */
|
|
HFORMFILE WINAPI VBXCreateFormFile(LONG len, LPVOID data);
|
|
BOOL WINAPI VBXDeleteFormFile(HFORMFILE file);
|
|
|
|
/*
|
|
* obsolete functions - these functions are limited to 16-bit only
|
|
* and should be replaced as follows:
|
|
*
|
|
* Old (16-bit only) New (16-bit and 32-bit)
|
|
* ----------------- -----------------------
|
|
* VBXGetBasicStringPtr VBXGetBasicStringBuf
|
|
* VBXGetCStringPtr VBXGetCStringBuf
|
|
* VBXGetEventName VBXGetEventNameBuf
|
|
* VBXGetPropName VBXGetPropNameBuf
|
|
* VBXLockCString VBXLockCStringBuf
|
|
* VBXGetProp w/ELEMENTSTRUCT VBXGetArrayProp
|
|
* VBXSetProp w/ELEMENTSTRUCT VBXSetArrayProp
|
|
* VBXMethod not supported
|
|
*
|
|
*/
|
|
|
|
#if !defined(__FLAT__)
|
|
|
|
LPSTR WINAPI VBXGetBasicStringPtr(HLSTR string);
|
|
LPSTR WINAPI VBXGetCStringPtr(HSZ string);
|
|
LPCSTR WINAPI VBXGetEventName(HCTL control, int index);
|
|
LPCSTR WINAPI VBXGetPropName(HCTL control, int index);
|
|
LPSTR WINAPI VBXLockCString(HSZ string);
|
|
BOOL WINAPI VBXMethod(HCTL control, int method, long far * args);
|
|
|
|
typedef struct ELEMENTSTRUCT {
|
|
LONG Value;
|
|
USHORT NumElems;
|
|
struct {
|
|
USHORT Type;
|
|
LONG Index;
|
|
} Element[1];
|
|
} ELEMENTSTRUCT, FAR * LPELEMENTSTRUCT, NEAR * NPELEMENTSTRUCT;
|
|
|
|
#endif
|
|
|
|
#include <poppack.h>
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __BIVBX_H */
|
|
|