Changeset 7474 for trunk/src/kernel32/hmparport.cpp
- Timestamp:
- Nov 29, 2001, 12:33:37 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmparport.cpp
r7457 r7474 1 /* $Id: hmparport.cpp,v 1. 8 2001-11-26 14:54:03 sandervlExp $ */1 /* $Id: hmparport.cpp,v 1.9 2001-11-28 23:33:37 phaller Exp $ */ 2 2 3 3 /* … … 152 152 153 153 // add symbolic links to the "real name" of the device 154 HandleNamesAddSymbolicLink("\\Device\\ParallelPort1", "LPT1"); 155 HandleNamesAddSymbolicLink("\\Device\\ParallelPort2", "LPT2"); 156 HandleNamesAddSymbolicLink("\\Device\\ParallelPort3", "LPT3"); 154 { 155 PSZ pszLPT = strdup("\\\\.\\LPTx"); 156 PSZ pszLPT2 = strdup("\\Device\\ParallelPort1"); 157 for (char ch = '1'; ch <= '3'; ch++) 158 { 159 pszLPT[7] = ch; 160 pszLPT2[20] = ch; 161 HandleNamesAddSymbolicLink(pszLPT, pszLPT+4); 162 HandleNamesAddSymbolicLink(pszLPT2, pszLPT+4); 163 } 164 free(pszLPT); 165 free(pszLPT2); 166 } 157 167 } 158 168 … … 172 182 BOOL HMDeviceParPortClass::FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength) 173 183 { 174 dprintf(("HMDeviceParPortClass::FindDevice(%s,%s)\n", 175 lpClassDevName, 176 lpDeviceName)); 177 184 // can be both, "LPT1" and "LPT1:" 178 185 if(namelength > 5) 179 186 return FALSE; //can't be lpt name … … 208 215 pHMHandleDataTemplate)); 209 216 210 char comname[6];217 char lptname[6]; 211 218 212 219 dprintf(("HMDeviceParPortClass: Parallel port %s open request\n", lpFileName)); 213 220 214 if(strlen(lpFileName) > 5) { 215 return -1; //safety check (unnecessary..) 216 } 217 pHMHandleData->hHMHandle = 0; 218 219 strcpy(comname, lpFileName); 220 comname[4] = 0; //get rid of : (if present) (eg LPT1:) 221 strcpy(lptname, lpFileName); 222 lptname[4] = 0; //get rid of : (if present) (eg LPT1:) 221 223 222 224 //AH: TODO parse Win32 security handles 223 225 ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS); 224 pHMHandleData->hHMHandle = OSLibDosOpen( comname,226 pHMHandleData->hHMHandle = OSLibDosOpen(lptname, 225 227 OSLIB_ACCESS_READWRITE | 226 228 OSLIB_ACCESS_SHAREDENYREAD | 227 229 OSLIB_ACCESS_SHAREDENYWRITE); 228 230 SetErrorMode(oldmode); 229 231 232 // check if handle could be opened properly 233 if (0 == pHMHandleData->hHMHandle) 234 { 235 // @@@PH we need to get an OS/2 return code from OSLibDosOpen! 236 // and translate it via error2WinError 237 return ERROR_ACCESS_DENIED; // signal failure 238 } 239 230 240 #if 0 231 241 if (pHMHandleData->hHMHandle != 0) … … 256 266 " XON Char : 0x%x\n" 257 267 " XOFF Char : 0x%x\n", 258 comname,268 lptname, 259 269 ((PHMDEVCOMDATA)pHMHandleData->lpHandlerData)->dcbOS2.usWriteTimeout, 260 270 ((PHMDEVCOMDATA)pHMHandleData->lpHandlerData)->dcbOS2.usReadTimeout, … … 610 620 #endif 611 621 612 return(rc== 0);622 return(rc==NO_ERROR); 613 623 } 614 624
Note:
See TracChangeset
for help on using the changeset viewer.