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:
Scott Duensing 2026-02-24 20:16:02 -06:00
parent 4218da32eb
commit bf5268ade8
7 changed files with 74 additions and 77 deletions

View file

@ -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. // Provides high-speed serial communications for 16-bit Visual Basic 4.
// Implements MODEL, control procedure, property/event handling, and // Implements MODEL, control procedure, property/event handling, and
@ -13,7 +13,7 @@
#include <string.h> #include <string.h>
#include "vbapi.h" #include "vbapi.h"
#include "serial.h" #include "serial.h"
#include "mscomm.h" #include "kpcomctl.h"
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Global data // Global data
@ -23,23 +23,23 @@ HANDLE ghInstance = NULL;
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Convenience macro for re-dereferencing control data after VB API calls // 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 // 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); LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Forward declarations - Internal functions (alphabetical) // Forward declarations - Internal functions (alphabetical)
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static void closePort(HCTL hctl, MsCommDataT FAR *pData); static void closePort(HCTL hctl, KpComCtlDataT FAR *pData);
static void fireOnComm(HCTL hctl, MsCommDataT FAR *pData, int16_t eventCode); static void fireOnComm(HCTL hctl, KpComCtlDataT FAR *pData, int16_t eventCode);
static LONG handleGetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp); static LONG handleGetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp);
static LONG handleSetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp, LONG lp); static LONG handleSetProperty(HCTL hctl, KpComCtlDataT FAR *pData, USHORT iProp, LONG lp);
static void initControlData(HCTL hctl); 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 processEventNotify(HCTL hctl, int16_t commId);
static void processReceiveNotify(HCTL hctl, int16_t commId); static void processReceiveNotify(HCTL hctl, int16_t commId);
static void processTransmitNotify(HCTL hctl, int16_t commId); static void processTransmitNotify(HCTL hctl, int16_t commId);
@ -63,29 +63,29 @@ static char szInputMode[] = "Text\0Binary";
// Property descriptors // Property descriptors
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// offset default enum list enumMax // 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 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 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 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 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(MsCommDataT, outBufferSize), 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 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 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 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(MsCommDataT, sThreshold), 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(MsCommDataT, handshaking), 0, 0L, szHandshaking, 3 }; 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(MsCommDataT, inputLen), 0, 0L, NULL, 0 }; 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(MsCommDataT, inputMode), 0, 0L, szInputMode, 1 }; 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(MsCommDataT, dtrEnable), 0, 1L, NULL, 0 }; 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(MsCommDataT, rtsEnable), 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 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 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 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 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(MsCommDataT, commEvent), 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(MsCommDataT, nullDiscard), 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(MsCommDataT, eofEnable), 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 }; static PROPINFO propParityReplace = { "ParityReplace", PF_fSetMsg | PF_fGetMsg | DT_HSZ, 0, 0, 0L, NULL, 0 };
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
@ -138,16 +138,16 @@ static PEVENTINFO eventList[] = {
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// MODEL definition // MODEL definition
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static char szCtlName[] = "MSComm"; static char szCtlName[] = "KPComCtl";
MODEL modelMsComm = { MODEL modelKpComCtl = {
VB300_VERSION, // usVersion VB300_VERSION, // usVersion
MODEL_fInitMsg | MODEL_fInvisAtRun,// fl MODEL_fInitMsg | MODEL_fInvisAtRun,// fl
(PCTLPROC)MsCommCtlProc, // pctlproc (PCTLPROC)KpComCtlProc, // pctlproc
0, // fsClassStyle 0, // fsClassStyle
WS_CHILD, // flWndStyle WS_CHILD, // flWndStyle
sizeof(MsCommDataT), // cbCtlExtra sizeof(KpComCtlDataT), // cbCtlExtra
IDB_MSCOMM, // idBmpPalette IDB_KPCOMCTL, // idBmpPalette
szCtlName, // npszDefCtlName szCtlName, // npszDefCtlName
NULL, // npszClassName NULL, // npszClassName
NULL, // npszParentClassName NULL, // npszParentClassName
@ -169,7 +169,7 @@ MODEL modelMsComm = {
// //
// No VB API calls here, so pData remains valid throughout. // 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->commId >= 0) {
if (pData->breakState) { if (pData->breakState) {
@ -199,7 +199,7 @@ static void closePort(HCTL hctl, MsCommDataT FAR *pData)
// WARNING: After this function returns, any previously obtained pData // WARNING: After this function returns, any previously obtained pData
// pointer is INVALID. Callers must re-deref via DEREF(hctl). // 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; pData->commEvent = eventCode;
VBFireEvent(hctl, IEVENT_ONCOMM, NULL); 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 // 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) { switch (iProp) {
case IPROP_SETTINGS: 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 // 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; int16_t val;
@ -511,7 +511,7 @@ static LONG handleSetProperty(HCTL hctl, MsCommDataT FAR *pData, USHORT iProp, L
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static void initControlData(HCTL hctl) static void initControlData(HCTL hctl)
{ {
MsCommDataT FAR *pData; KpComCtlDataT FAR *pData;
HSZ hsz; HSZ hsz;
pData = DEREF(hctl); 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 // Saves all needed control data to locals before VB API calls to avoid
// stale pointer issues. Re-derefs when writing results back. // 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 commId;
int16_t port; int16_t port;
@ -653,7 +653,7 @@ static int16_t openPort(HCTL hctl, MsCommDataT FAR *pData)
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static void processEventNotify(HCTL hctl, int16_t commId) static void processEventNotify(HCTL hctl, int16_t commId)
{ {
MsCommDataT FAR *pData; KpComCtlDataT FAR *pData;
UINT evtMask; UINT evtMask;
evtMask = serialGetEventMask(commId, EV_CTS | EV_DSR | EV_RLSD | EV_RING | EV_ERR | EV_BREAK); 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) static void processReceiveNotify(HCTL hctl, int16_t commId)
{ {
MsCommDataT FAR *pData; KpComCtlDataT FAR *pData;
COMSTAT stat; COMSTAT stat;
pData = DEREF(hctl); pData = DEREF(hctl);
@ -744,7 +744,7 @@ static void processReceiveNotify(HCTL hctl, int16_t commId)
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static void processTransmitNotify(HCTL hctl, int16_t commId) static void processTransmitNotify(HCTL hctl, int16_t commId)
{ {
MsCommDataT FAR *pData; KpComCtlDataT FAR *pData;
COMSTAT stat; COMSTAT stat;
pData = DEREF(hctl); pData = DEREF(hctl);
@ -796,7 +796,7 @@ LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM
{ {
if (msg == WM_COMMNOTIFY) { if (msg == WM_COMMNOTIFY) {
HCTL hctl; HCTL hctl;
MsCommDataT FAR *pData; KpComCtlDataT FAR *pData;
int16_t commId; int16_t commId;
UINT notifyCode; UINT notifyCode;
@ -836,9 +836,9 @@ LRESULT FAR PASCAL _export NotifyWndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM
// VBX Control procedure // 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) { switch (msg) {
case VBM_INITIALIZE: case VBM_INITIALIZE:
@ -913,7 +913,7 @@ BOOL FAR PASCAL _export VBINITCC(USHORT usVersion, BOOL fRuntime)
return FALSE; return FALSE;
} }
return VBRegisterModel(ghInstance, &modelMsComm); return VBRegisterModel(ghInstance, &modelKpComCtl);
} }

View file

@ -1,7 +1,7 @@
; mscomm.def - Module definition for MSComm VBX control ; kpcomctl.def - Module definition for KPComCtl VBX control
LIBRARY MSCOMM LIBRARY KPCOMCTL
DESCRIPTION 'MSComm Serial Communications Control for VB4' DESCRIPTION 'KPComCtl Serial Communications Control for VB4'
EXETYPE WINDOWS EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE CODE PRELOAD MOVEABLE DISCARDABLE

View file

@ -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. // Property/event IDs, comm event constants, and control instance data.
#ifndef MSCOMM_H #ifndef KPCOMCTL_H
#define MSCOMM_H #define KPCOMCTL_H
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Resource IDs // Resource IDs
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
#define IDB_MSCOMM 8000 #define IDB_KPCOMCTL 8000
#ifndef RC_INVOKED #ifndef RC_INVOKED
@ -128,12 +128,12 @@ typedef struct {
BOOL dsrState; // Shadow state: DSR line level BOOL dsrState; // Shadow state: DSR line level
BOOL cdState; // Shadow state: CD (RLSD) line level BOOL cdState; // Shadow state: CD (RLSD) line level
HSZ hszParityReplace; // Parity error replacement character HSZ hszParityReplace; // Parity error replacement character
} MsCommDataT; } KpComCtlDataT;
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Hidden notification window class name // Hidden notification window class name
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
#define NOTIFY_CLASS "MsCommNotify" #define NOTIFY_CLASS "KpComCtlNotify"
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Global instance handle (set in LibMain) // Global instance handle (set in LibMain)
@ -142,4 +142,4 @@ extern HANDLE ghInstance;
#endif // RC_INVOKED #endif // RC_INVOKED
#endif // MSCOMM_H #endif // KPCOMCTL_H

7
vbx/kpcomctl.rc Normal file
View 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

View file

@ -1,4 +1,4 @@
# makefile - MSComm VBX control for MSVC 1.52 # makefile - KPComCtl VBX control for MSVC 1.52
# #
# Build: nmake # Build: nmake
# Clean: nmake clean # Clean: nmake clean
@ -11,17 +11,14 @@
# The stock Windows 3.1 COMM.DRV enables the 16550 FIFO for receive only, # 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 # 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 # 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 # 57600 or 115200, install KPCOMM.DRV (built from ..\drv\) or CyberCom
# replacement included in ..\drivers\CYBERCOM.DRV. It enables both RX and TX # V1.1.0.0P (..\drivers\CYBERCOM.DRV).
# FIFOs with a trigger level of 8, dramatically reducing interrupt overhead.
# #
# Install: # Install (KPCOMM):
# 1. Copy ..\drivers\CYBERCOM.DRV to \WINDOWS\SYSTEM # 1. Copy ..\drv\KPCOMM.DRV to \WINDOWS\SYSTEM
# 2. Edit SYSTEM.INI [boot] section: comm.drv=cybercom.drv # 2. Edit SYSTEM.INI [boot] section: comm.drv=kpcomm.drv
# 3. Add to [386Enh] section: COM1FIFO=1 (for each port in use) # 3. Add to [386Enh] section: COM1FIFO=1 (for each port in use)
# 4. Restart Windows # 4. Restart Windows
#
# CyberCom is free for non-commercial use. (C) CyberSoft Corp 1993
CC = cl CC = cl
LINK = link LINK = link
@ -51,28 +48,28 @@ LFLAGS = /NOD /NOE /AL:16
LIBS = sdllcew libw commdlg vbapi LIBS = sdllcew libw commdlg vbapi
# Output # Output
TARGET = mscomm.vbx TARGET = kpcomctl.vbx
# Objects # Objects
OBJS = mscomm.obj serial.obj OBJS = kpcomctl.obj serial.obj
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# Build rules # Build rules
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
all: $(TARGET) all: $(TARGET)
$(TARGET): $(OBJS) mscomm.def mscomm.res vbapi.lib $(TARGET): $(OBJS) kpcomctl.def kpcomctl.res vbapi.lib
$(LINK) $(LFLAGS) $(OBJS), $(TARGET),,$(LIBS), mscomm.def $(LINK) $(LFLAGS) $(OBJS), $(TARGET),,$(LIBS), kpcomctl.def
$(RC) mscomm.res $(TARGET) $(RC) kpcomctl.res $(TARGET)
mscomm.obj: mscomm.c mscomm.h vbapi.h serial.h kpcomctl.obj: kpcomctl.c kpcomctl.h vbapi.h serial.h
$(CC) $(CFLAGS) mscomm.c $(CC) $(CFLAGS) kpcomctl.c
serial.obj: serial.c serial.h serial.obj: serial.c serial.h
$(CC) $(CFLAGS) serial.c $(CC) $(CFLAGS) serial.c
mscomm.res: mscomm.rc mscomm.h mscomm.bmp kpcomctl.res: kpcomctl.rc kpcomctl.h kpcomctl.bmp
$(RC) -r mscomm.rc $(RC) -r kpcomctl.rc
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# Generate VBAPI.LIB from vbapi.def if not present # Generate VBAPI.LIB from vbapi.def if not present

View file

@ -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