Changeset 4588 for trunk/src/kernel32/hmcomm.cpp
- Timestamp:
- Nov 14, 2000, 3:27:04 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmcomm.cpp
r4285 r4588 1 /* $Id: hmcomm.cpp,v 1. 5 2000-09-20 21:32:51 hughExp $ */1 /* $Id: hmcomm.cpp,v 1.6 2000-11-14 14:26:59 sandervl Exp $ */ 2 2 3 3 /* … … 14 14 #include <os2win.h> 15 15 #include <string.h> 16 #include "handlemanager.h" 16 #include <handlemanager.h> 17 #include <heapstring.h> 17 18 #include "hmdevice.h" 18 19 #include "hmcomm.h" … … 97 98 } HMDEVCOMDATA, *PHMDEVCOMDATA; 98 99 99 VOID * 100 VOID *CreateDevData() 100 101 { 101 102 PHMDEVCOMDATA pData; … … 126 127 if(pData!= NULL) 127 128 HMDeviceRegisterEx("COM1", this, pData); 128 pData = CreateDevData(); 129 if(pData!= NULL) 130 HMDeviceRegisterEx("COM2", this, pData); 131 pData = CreateDevData(); 132 if(pData!= NULL) 133 HMDeviceRegisterEx("COM3", this, pData); 134 pData = CreateDevData(); 135 if(pData!= NULL) 136 HMDeviceRegisterEx("COM4", this, pData); 137 pData = CreateDevData(); 138 if(pData!= NULL) 139 HMDeviceRegisterEx("COM5", this, pData); 140 pData = CreateDevData(); 141 if(pData!= NULL) 142 HMDeviceRegisterEx("COM6", this, pData); 143 pData = CreateDevData(); 144 if(pData!= NULL) 145 HMDeviceRegisterEx("COM7", this, pData); 146 pData = CreateDevData(); 147 if(pData!= NULL) 148 HMDeviceRegisterEx("COM8", this, pData); 129 } 130 131 /***************************************************************************** 132 * Name : HMDeviceCommClass::FindDevice 133 * Purpose : Checks if lpDeviceName belongs to this device class 134 * Parameters: LPCSTR lpClassDevName 135 * LPCSTR lpDeviceName 136 * int namelength 137 * Variables : 138 * Result : checks if name is COMx or COMx: (x=1..8) 139 * Remark : 140 * Status : 141 * 142 * Author : SvL 143 *****************************************************************************/ 144 BOOL HMDeviceCommClass::FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength) 145 { 146 if(namelength > 5) 147 return FALSE; //can't be com name 148 149 //first 3 letters 'COM'? 150 if(lstrncmpiA(lpDeviceName, lpClassDevName, 3) != 0) { 151 return FALSE; 152 } 153 154 if(namelength == 5 && lpDeviceName[4] != ':') { 155 return FALSE; 156 } 157 switch(lpDeviceName[3]) { 158 case '1': 159 case '2': 160 case '3': 161 case '4': 162 case '5': 163 case '6': 164 case '7': 165 case '8': 166 return TRUE; //we support up to COM8 167 } 168 return FALSE; 149 169 } 150 170 … … 154 174 PHMHANDLEDATA pHMHandleDataTemplate) 155 175 { 176 char comname[6]; 177 156 178 dprintf(("HMComm: Serial communication port %s open request\n", lpFileName)); 157 179 180 if(strlen(lpFileName) > 5) { 181 return -1; //safety check (unnecessary..) 182 } 158 183 pHMHandleData->hHMHandle = 0; 184 185 strcpy(comname, lpFileName); 186 comname[4] = 0; //get rid of : (if present) (eg COM1:) 159 187 160 188 //AH: TODO parse Win32 security handles 161 189 OSLibDosDisableHardError(TRUE); 162 pHMHandleData->hHMHandle = OSLibDosOpen( (char*)lpFileName,190 pHMHandleData->hHMHandle = OSLibDosOpen(comname, 163 191 OSLIB_ACCESS_READWRITE | 164 192 OSLIB_ACCESS_SHAREDENYREAD | … … 184 212 &((PHMDEVCOMDATA)pHMHandleData->lpHandlerData)->dcbOS2,ulLen,&ulLen); 185 213 186 if( !rc)214 if(rc) 187 215 { 188 216 return -1;
Note:
See TracChangeset
for help on using the changeset viewer.