Rename VBX control from MSComm to KPComCtl
Files: mscomm.{c,h,def,rc,bmp} -> kpcomctl.{c,h,def,rc,bmp}
Output: mscomm.vbx -> kpcomctl.vbx
Types: MsCommDataT -> KpComCtlDataT, MsCommCtlProc -> KpComCtlProc
LIBRARY name: MSCOMM -> KPCOMCTL
VB control name: MSComm -> KPComCtl
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4218da32eb
commit
bf5268ade8
7 changed files with 74 additions and 77 deletions
|
|
@ -1,4 +1,4 @@
|
|||
// mscomm.c - MSComm VBX control implementation
|
||||
// kpcomctl.c - KPComCtl VBX control implementation
|
||||
//
|
||||
// Provides high-speed serial communications for 16-bit Visual Basic 4.
|
||||
// Implements MODEL, control procedure, property/event handling, and
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
#include <string.h>
|
||||
#include "vbapi.h"
|
||||
#include "serial.h"
|
||||
#include "mscomm.h"
|
||||
#include "kpcomctl.h"
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Global data
|
||||
|
|
@ -23,23 +23,23 @@ HANDLE ghInstance = NULL;
|
|||
// -----------------------------------------------------------------------
|
||||
// Convenience macro for re-dereferencing control data after VB API calls
|
||||
// -----------------------------------------------------------------------
|
||||
#define DEREF(hctl) ((MsCommDataT FAR *)VBDerefControl(hctl))
|
||||
#define DEREF(hctl) ((KpComCtlDataT FAR *)VBDerefControl(hctl))
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Forward declarations - Control procedure
|
||||
// -----------------------------------------------------------------------
|
||||
LONG FAR PASCAL _export MsCommCtlProc(HCTL hctl, HWND hwnd, USHORT msg, USHORT wp, LONG lp);
|
||||
LONG FAR PASCAL _export KpComCtlProc(HCTL hctl, HWND hwnd, USHORT msg, USHORT wp, LONG lp);
|
||||
LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Forward declarations - Internal functions (alphabetical)
|
||||
// -----------------------------------------------------------------------
|
||||
static void closePort(HCTL hctl, MsCommDataT FAR *pData);
|
||||
static void fireOnComm(HCTL hctl, MsCommDataT FAR *pData, int16_t eventCode);
|
||||
static LONG handleGetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp);
|
||||
static LONG handleSetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp, LONG lp);
|
||||
static void closePort(HCTL hctl, KpComCtlDataT FAR *pData);
|
||||
static void fireOnComm(HCTL hctl, KpComCtlDataT FAR *pData, int16_t eventCode);
|
||||
static LONG handleGetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp);
|
||||
static LONG handleSetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp, LONG lp);
|
||||
static void initControlData(HCTL hctl);
|
||||
static int16_t openPort(HCTL hctl, MsCommDataT FAR *pData);
|
||||
static int16_t openPort(HCTL hctl, KpComCtlDataT FAR *pData);
|
||||
static void processEventNotify(HCTL hctl, int16_t commId);
|
||||
static void processReceiveNotify(HCTL hctl, int16_t commId);
|
||||
static void processTransmitNotify(HCTL hctl, int16_t commId);
|
||||
|
|
@ -63,29 +63,29 @@ static char szInputMode[] = "Text\0Binary";
|
|||
// Property descriptors
|
||||
// -----------------------------------------------------------------------
|
||||
// offset default enum list enumMax
|
||||
static PROPINFO propCommPort = { "CommPort", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, commPort), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propCommPort = { "CommPort", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, commPort), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propSettings = { "Settings", PF_fSetMsg | PF_fGetMsg | DT_HSZ, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propPortOpen = { "PortOpen", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, portOpen), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propPortOpen = { "PortOpen", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, portOpen), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propInput = { "Input", PF_fGetMsg | PF_fNoShow | DT_HSZ, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propOutput = { "Output", PF_fSetMsg | PF_fNoShow | DT_HSZ, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propInBufferSize = { "InBufferSize", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, inBufferSize), 0, 4096L, NULL, 0 };
|
||||
static PROPINFO propOutBufferSize = { "OutBufferSize", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, outBufferSize), 0, 4096L, NULL, 0 };
|
||||
static PROPINFO propInBufferSize = { "InBufferSize", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, inBufferSize), 0, 4096L, NULL, 0 };
|
||||
static PROPINFO propOutBufferSize = { "OutBufferSize", PF_fSetMsg | PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, outBufferSize), 0, 4096L, NULL, 0 };
|
||||
static PROPINFO propInBufferCount = { "InBufferCount", PF_fGetMsg | PF_fNoShow | DT_SHORT, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propOutBufferCount= { "OutBufferCount",PF_fGetMsg | PF_fNoShow | DT_SHORT, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propRThreshold = { "RThreshold", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, rThreshold), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propSThreshold = { "SThreshold", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, sThreshold), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propHandshaking = { "Handshaking", PF_fSetMsg | PF_fGetData | DT_ENUM, OFFSETIN(MsCommDataT, handshaking), 0, 0L, szHandshaking, 3 };
|
||||
static PROPINFO propInputLen = { "InputLen", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(MsCommDataT, inputLen), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propInputMode = { "InputMode", PF_fSetData| PF_fGetData | DT_ENUM, OFFSETIN(MsCommDataT, inputMode), 0, 0L, szInputMode, 1 };
|
||||
static PROPINFO propDTREnable = { "DTREnable", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, dtrEnable), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propRTSEnable = { "RTSEnable", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, rtsEnable), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propRThreshold = { "RThreshold", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, rThreshold), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propSThreshold = { "SThreshold", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, sThreshold), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propHandshaking = { "Handshaking", PF_fSetMsg | PF_fGetData | DT_ENUM, OFFSETIN(KpComCtlDataT, handshaking), 0, 0L, szHandshaking, 3 };
|
||||
static PROPINFO propInputLen = { "InputLen", PF_fSetData| PF_fGetData | DT_SHORT, OFFSETIN(KpComCtlDataT, inputLen), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propInputMode = { "InputMode", PF_fSetData| PF_fGetData | DT_ENUM, OFFSETIN(KpComCtlDataT, inputMode), 0, 0L, szInputMode, 1 };
|
||||
static PROPINFO propDTREnable = { "DTREnable", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, dtrEnable), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propRTSEnable = { "RTSEnable", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, rtsEnable), 0, 1L, NULL, 0 };
|
||||
static PROPINFO propCDHolding = { "CDHolding", PF_fGetMsg | PF_fNoShow | DT_BOOL, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propCTSHolding = { "CTSHolding", PF_fGetMsg | PF_fNoShow | DT_BOOL, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propDSRHolding = { "DSRHolding", PF_fGetMsg | PF_fNoShow | DT_BOOL, 0, 0, 0L, NULL, 0 };
|
||||
static PROPINFO propBreak = { "Break", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, breakState), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propCommEvent = { "CommEvent", PF_fGetData| PF_fNoShow | DT_SHORT, OFFSETIN(MsCommDataT, commEvent), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propNullDiscard = { "NullDiscard", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, nullDiscard), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propEOFEnable = { "EOFEnable", PF_fSetData| PF_fGetData | DT_BOOL, OFFSETIN(MsCommDataT, eofEnable), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propBreak = { "Break", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, breakState), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propCommEvent = { "CommEvent", PF_fGetData| PF_fNoShow | DT_SHORT, OFFSETIN(KpComCtlDataT, commEvent), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propNullDiscard = { "NullDiscard", PF_fSetMsg | PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, nullDiscard), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propEOFEnable = { "EOFEnable", PF_fSetData| PF_fGetData | DT_BOOL, OFFSETIN(KpComCtlDataT, eofEnable), 0, 0L, NULL, 0 };
|
||||
static PROPINFO propParityReplace = { "ParityReplace", PF_fSetMsg | PF_fGetMsg | DT_HSZ, 0, 0, 0L, NULL, 0 };
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
@ -138,16 +138,16 @@ static PEVENTINFO eventList[] = {
|
|||
// -----------------------------------------------------------------------
|
||||
// MODEL definition
|
||||
// -----------------------------------------------------------------------
|
||||
static char szCtlName[] = "MSComm";
|
||||
static char szCtlName[] = "KPComCtl";
|
||||
|
||||
MODEL modelMsComm = {
|
||||
MODEL modelKpComCtl = {
|
||||
VB300_VERSION, // usVersion
|
||||
MODEL_fInitMsg | MODEL_fInvisAtRun,// fl
|
||||
(PCTLPROC)MsCommCtlProc, // pctlproc
|
||||
(PCTLPROC)KpComCtlProc, // pctlproc
|
||||
0, // fsClassStyle
|
||||
WS_CHILD, // flWndStyle
|
||||
sizeof(MsCommDataT), // cbCtlExtra
|
||||
IDB_MSCOMM, // idBmpPalette
|
||||
sizeof(KpComCtlDataT), // cbCtlExtra
|
||||
IDB_KPCOMCTL, // idBmpPalette
|
||||
szCtlName, // npszDefCtlName
|
||||
NULL, // npszClassName
|
||||
NULL, // npszParentClassName
|
||||
|
|
@ -169,7 +169,7 @@ MODEL modelMsComm = {
|
|||
//
|
||||
// No VB API calls here, so pData remains valid throughout.
|
||||
// -----------------------------------------------------------------------
|
||||
static void closePort(HCTL hctl, MsCommDataT FAR *pData)
|
||||
static void closePort(HCTL hctl, KpComCtlDataT FAR *pData)
|
||||
{
|
||||
if (pData->commId >= 0) {
|
||||
if (pData->breakState) {
|
||||
|
|
@ -199,7 +199,7 @@ static void closePort(HCTL hctl, MsCommDataT FAR *pData)
|
|||
// WARNING: After this function returns, any previously obtained pData
|
||||
// pointer is INVALID. Callers must re-deref via DEREF(hctl).
|
||||
// -----------------------------------------------------------------------
|
||||
static void fireOnComm(HCTL hctl, MsCommDataT FAR *pData, int16_t eventCode)
|
||||
static void fireOnComm(HCTL hctl, KpComCtlDataT FAR *pData, int16_t eventCode)
|
||||
{
|
||||
pData->commEvent = eventCode;
|
||||
VBFireEvent(hctl, IEVENT_ONCOMM, NULL);
|
||||
|
|
@ -210,7 +210,7 @@ static void fireOnComm(HCTL hctl, MsCommDataT FAR *pData, int16_t eventCode)
|
|||
// -----------------------------------------------------------------------
|
||||
// handleGetProperty - Process VBM_GETPROPERTY for message-based props
|
||||
// -----------------------------------------------------------------------
|
||||
static LONG handleGetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp)
|
||||
static LONG handleGetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp)
|
||||
{
|
||||
switch (iProp) {
|
||||
case IPROP_SETTINGS:
|
||||
|
|
@ -308,7 +308,7 @@ static LONG handleGetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp)
|
|||
// -----------------------------------------------------------------------
|
||||
// handleSetProperty - Process VBM_SETPROPERTY for message-based props
|
||||
// -----------------------------------------------------------------------
|
||||
static LONG handleSetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp, LONG lp)
|
||||
static LONG handleSetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp, LONG lp)
|
||||
{
|
||||
int16_t val;
|
||||
|
||||
|
|
@ -511,7 +511,7 @@ static LONG handleSetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp, L
|
|||
// -----------------------------------------------------------------------
|
||||
static void initControlData(HCTL hctl)
|
||||
{
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
HSZ hsz;
|
||||
|
||||
pData = DEREF(hctl);
|
||||
|
|
@ -553,7 +553,7 @@ static void initControlData(HCTL hctl)
|
|||
// Saves all needed control data to locals before VB API calls to avoid
|
||||
// stale pointer issues. Re-derefs when writing results back.
|
||||
// -----------------------------------------------------------------------
|
||||
static int16_t openPort(HCTL hctl, MsCommDataT FAR *pData)
|
||||
static int16_t openPort(HCTL hctl, KpComCtlDataT FAR *pData)
|
||||
{
|
||||
int16_t commId;
|
||||
int16_t port;
|
||||
|
|
@ -653,7 +653,7 @@ static int16_t openPort(HCTL hctl, MsCommDataT FAR *pData)
|
|||
// -----------------------------------------------------------------------
|
||||
static void processEventNotify(HCTL hctl, int16_t commId)
|
||||
{
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
UINT evtMask;
|
||||
|
||||
evtMask = serialGetEventMask(commId, EV_CTS | EV_DSR | EV_RLSD | EV_RING | EV_ERR | EV_BREAK);
|
||||
|
|
@ -721,7 +721,7 @@ static void processEventNotify(HCTL hctl, int16_t commId)
|
|||
// -----------------------------------------------------------------------
|
||||
static void processReceiveNotify(HCTL hctl, int16_t commId)
|
||||
{
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
COMSTAT stat;
|
||||
|
||||
pData = DEREF(hctl);
|
||||
|
|
@ -744,7 +744,7 @@ static void processReceiveNotify(HCTL hctl, int16_t commId)
|
|||
// -----------------------------------------------------------------------
|
||||
static void processTransmitNotify(HCTL hctl, int16_t commId)
|
||||
{
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
COMSTAT stat;
|
||||
|
||||
pData = DEREF(hctl);
|
||||
|
|
@ -796,7 +796,7 @@ LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM
|
|||
{
|
||||
if (msg == WM_COMMNOTIFY) {
|
||||
HCTL hctl;
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
int16_t commId;
|
||||
UINT notifyCode;
|
||||
|
||||
|
|
@ -836,9 +836,9 @@ LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM
|
|||
// VBX Control procedure
|
||||
// =======================================================================
|
||||
|
||||
LONG FAR PASCAL _export MsCommCtlProc(HCTL hctl, HWND hwnd, USHORT msg, USHORT wp, LONG lp)
|
||||
LONG FAR PASCAL _export KpComCtlProc(HCTL hctl, HWND hwnd, USHORT msg, USHORT wp, LONG lp)
|
||||
{
|
||||
MsCommDataT FAR *pData;
|
||||
KpComCtlDataT FAR *pData;
|
||||
|
||||
switch (msg) {
|
||||
case VBM_INITIALIZE:
|
||||
|
|
@ -913,7 +913,7 @@ BOOL FAR PASCAL _export VBINITCC(USHORT usVersion, BOOL fRuntime)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
return VBRegisterModel(ghInstance, &modelMsComm);
|
||||
return VBRegisterModel(ghInstance, &modelKpComCtl);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
; mscomm.def - Module definition for MSComm VBX control
|
||||
; kpcomctl.def - Module definition for KPComCtl VBX control
|
||||
|
||||
LIBRARY MSCOMM
|
||||
DESCRIPTION 'MSComm Serial Communications Control for VB4'
|
||||
LIBRARY KPCOMCTL
|
||||
DESCRIPTION 'KPComCtl Serial Communications Control for VB4'
|
||||
EXETYPE WINDOWS
|
||||
|
||||
CODE PRELOAD MOVEABLE DISCARDABLE
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
// mscomm.h - MSComm VBX control definitions
|
||||
// kpcomctl.h - KPComCtl VBX control definitions
|
||||
//
|
||||
// Property/event IDs, comm event constants, and control instance data.
|
||||
|
||||
#ifndef MSCOMM_H
|
||||
#define MSCOMM_H
|
||||
#ifndef KPCOMCTL_H
|
||||
#define KPCOMCTL_H
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Resource IDs
|
||||
// -----------------------------------------------------------------------
|
||||
#define IDB_MSCOMM 8000
|
||||
#define IDB_KPCOMCTL 8000
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
|
||||
|
|
@ -128,12 +128,12 @@ typedef struct {
|
|||
BOOL dsrState; // Shadow state: DSR line level
|
||||
BOOL cdState; // Shadow state: CD (RLSD) line level
|
||||
HSZ hszParityReplace; // Parity error replacement character
|
||||
} MsCommDataT;
|
||||
} KpComCtlDataT;
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Hidden notification window class name
|
||||
// -----------------------------------------------------------------------
|
||||
#define NOTIFY_CLASS "MsCommNotify"
|
||||
#define NOTIFY_CLASS "KpComCtlNotify"
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Global instance handle (set in LibMain)
|
||||
|
|
@ -142,4 +142,4 @@ extern HANDLE ghInstance;
|
|||
|
||||
#endif // RC_INVOKED
|
||||
|
||||
#endif // MSCOMM_H
|
||||
#endif // KPCOMCTL_H
|
||||
7
vbx/kpcomctl.rc
Normal file
7
vbx/kpcomctl.rc
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
// kpcomctl.rc - KPComCtl VBX resource script
|
||||
//
|
||||
// Defines the toolbox bitmap displayed in the VB IDE custom controls palette.
|
||||
|
||||
#include "kpcomctl.h"
|
||||
|
||||
IDB_KPCOMCTL BITMAP kpcomctl.bmp
|
||||
33
vbx/makefile
33
vbx/makefile
|
|
@ -1,4 +1,4 @@
|
|||
# makefile - MSComm VBX control for MSVC 1.52
|
||||
# makefile - KPComCtl VBX control for MSVC 1.52
|
||||
#
|
||||
# Build: nmake
|
||||
# Clean: nmake clean
|
||||
|
|
@ -11,17 +11,14 @@
|
|||
# The stock Windows 3.1 COMM.DRV enables the 16550 FIFO for receive only,
|
||||
# with a trigger level of 14 (leaving only 2 bytes of headroom). This causes
|
||||
# overruns at baud rates above 9600 under load. For reliable operation at
|
||||
# 57600 or 115200, install CyberCom V1.1.0.0P -- a freeware drop-in
|
||||
# replacement included in ..\drivers\CYBERCOM.DRV. It enables both RX and TX
|
||||
# FIFOs with a trigger level of 8, dramatically reducing interrupt overhead.
|
||||
# 57600 or 115200, install KPCOMM.DRV (built from ..\drv\) or CyberCom
|
||||
# V1.1.0.0P (..\drivers\CYBERCOM.DRV).
|
||||
#
|
||||
# Install:
|
||||
# 1. Copy ..\drivers\CYBERCOM.DRV to \WINDOWS\SYSTEM
|
||||
# 2. Edit SYSTEM.INI [boot] section: comm.drv=cybercom.drv
|
||||
# Install (KPCOMM):
|
||||
# 1. Copy ..\drv\KPCOMM.DRV to \WINDOWS\SYSTEM
|
||||
# 2. Edit SYSTEM.INI [boot] section: comm.drv=kpcomm.drv
|
||||
# 3. Add to [386Enh] section: COM1FIFO=1 (for each port in use)
|
||||
# 4. Restart Windows
|
||||
#
|
||||
# CyberCom is free for non-commercial use. (C) CyberSoft Corp 1993
|
||||
|
||||
CC = cl
|
||||
LINK = link
|
||||
|
|
@ -51,28 +48,28 @@ LFLAGS = /NOD /NOE /AL:16
|
|||
LIBS = sdllcew libw commdlg vbapi
|
||||
|
||||
# Output
|
||||
TARGET = mscomm.vbx
|
||||
TARGET = kpcomctl.vbx
|
||||
|
||||
# Objects
|
||||
OBJS = mscomm.obj serial.obj
|
||||
OBJS = kpcomctl.obj serial.obj
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Build rules
|
||||
# -----------------------------------------------------------------------
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS) mscomm.def mscomm.res vbapi.lib
|
||||
$(LINK) $(LFLAGS) $(OBJS), $(TARGET),,$(LIBS), mscomm.def
|
||||
$(RC) mscomm.res $(TARGET)
|
||||
$(TARGET): $(OBJS) kpcomctl.def kpcomctl.res vbapi.lib
|
||||
$(LINK) $(LFLAGS) $(OBJS), $(TARGET),,$(LIBS), kpcomctl.def
|
||||
$(RC) kpcomctl.res $(TARGET)
|
||||
|
||||
mscomm.obj: mscomm.c mscomm.h vbapi.h serial.h
|
||||
$(CC) $(CFLAGS) mscomm.c
|
||||
kpcomctl.obj: kpcomctl.c kpcomctl.h vbapi.h serial.h
|
||||
$(CC) $(CFLAGS) kpcomctl.c
|
||||
|
||||
serial.obj: serial.c serial.h
|
||||
$(CC) $(CFLAGS) serial.c
|
||||
|
||||
mscomm.res: mscomm.rc mscomm.h mscomm.bmp
|
||||
$(RC) -r mscomm.rc
|
||||
kpcomctl.res: kpcomctl.rc kpcomctl.h kpcomctl.bmp
|
||||
$(RC) -r kpcomctl.rc
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Generate VBAPI.LIB from vbapi.def if not present
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
// mscomm.rc - MSComm VBX resource script
|
||||
//
|
||||
// Defines the toolbox bitmap displayed in the VB IDE custom controls palette.
|
||||
|
||||
#include "mscomm.h"
|
||||
|
||||
IDB_MSCOMM BITMAP mscomm.bmp
|
||||
Loading…
Add table
Reference in a new issue