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.
|
// 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
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
|
# 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
|
||||||
|
|
|
||||||
|
|
@ -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