Changeset 5531 for trunk/tools/common/kFileLX.cpp
- Timestamp:
- Apr 17, 2001, 2:26:28 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/common/kFileLX.cpp
r5053 r5531 1 /* $Id: kFileLX.cpp,v 1. 4 2001-02-02 08:45:41 bird Exp $1 /* $Id: kFileLX.cpp,v 1.5 2001-04-17 00:26:11 bird Exp $ 2 2 * 3 3 * … … 64 64 65 65 66 66 /******************************************************************************* 67 * Global Variables * 68 *******************************************************************************/ 69 #if 0 70 static kFileLX tst((kFile*)NULL); 71 #endif 72 73 74 /** 75 * Internal worker which lookup the name corresponding to an ordinal. 76 * @returns Success indicator. 77 * @param iOrdinal ( >= 0). 78 * @param pszBuffer. 79 */ 67 80 BOOL kFileLX::queryExportName(int iOrdinal, char *pszBuffer) 68 81 { … … 119 132 120 133 /* create filemapping */ 121 pvBase = kFile FormatBase::readfile(pszFilename);134 pvBase = kFile::readFile(pszFilename); 122 135 if (pvBase == NULL) 123 136 throw(1); … … 192 205 193 206 194 BOOL kFileLX::queryModuleName(char *pszBuffer) 207 /** 208 * Query for the module name. 209 * @returns Success indicator. TRUE / FALSE. 210 * @param pszBuffer Pointer to buffer which to put the name into. 211 * @param cchBuffer Size of the buffer (defaults to 260 chars). 212 */ 213 BOOL kFileLX::moduleGetName(char *pszBuffer, int cchBuffer/*= 260*/) 195 214 { 196 215 /* The module name is the 0 ordinal entry in resident name table */ 216 assert(cchBuffer >= 255); 197 217 return queryExportName(0, pszBuffer); 198 218 } 199 219 200 220 201 202 BOOL kFileLX::findFirstExport(PEXPORTENTRY pExport) 221 /** 222 * Finds the first exports. 223 * @returns Success indicator. TRUE / FALSE. 224 * @param pExport Pointer to export structure. 225 */ 226 BOOL kFileLX::exportFindFirst(kExportEntry *pExport) 203 227 { 204 228 struct b32_bundle * pBundle = (struct b32_bundle*)((char*)pvBase + pe32->e32_enttab + offLXHdr); … … 239 263 { 240 264 case ENTRY16: 241 pExport-> offset = pEntry->e32_variant.e32_offset.offset16;265 pExport->ulOffset = pEntry->e32_variant.e32_offset.offset16; 242 266 break; 243 267 244 268 case ENTRY32: 245 pExport-> offset = pEntry->e32_variant.e32_offset.offset32;269 pExport->ulOffset = pEntry->e32_variant.e32_offset.offset32; 246 270 break; 247 271 248 272 case GATE16: 249 pExport-> offset = pEntry->e32_variant.e32_callgate.offset;273 pExport->ulOffset = pEntry->e32_variant.e32_callgate.offset; 250 274 break; 251 275 default: … … 260 284 pExpState->pe32 = pEntry; 261 285 pExpState->iOrdinal = iOrdinal; 286 pExport->ulAddress = ~0UL; /* TODO */ 262 287 return TRUE; 263 288 } … … 270 295 271 296 272 273 BOOL kFileLX::findNextExport(PEXPORTENTRY pExport) 297 /** 298 * Finds the next export. 299 * @returns Success indicator. TRUE / FALSE. 300 * @param pExport Pointer to export structure. 301 */ 302 BOOL kFileLX::exportFindNext(kExportEntry *pExport) 274 303 { 275 304 static int acbEntry[] = … … 283 312 284 313 PEXPSTATE pExpState = (PEXPSTATE)pExport->pv; 314 pExport->ulAddress = ~0UL; /* TODO */ 285 315 286 316 /* … … 303 333 pExport->achName[0] = '\0'; 304 334 305 /* offset */335 /* ulOffset */ 306 336 switch (pExpState->pb32->b32_type & ~TYPEINFO) 307 337 { 308 338 case ENTRY16: 309 pExport-> offset = pExpState->pe32->e32_variant.e32_offset.offset16;339 pExport->ulOffset = pExpState->pe32->e32_variant.e32_offset.offset16; 310 340 break; 311 341 312 342 case ENTRY32: 313 pExport-> offset = pExpState->pe32->e32_variant.e32_offset.offset32;343 pExport->ulOffset = pExpState->pe32->e32_variant.e32_offset.offset32; 314 344 break; 315 345 316 346 case GATE16: 317 pExport-> offset = pExpState->pe32->e32_variant.e32_callgate.offset;347 pExport->ulOffset = pExpState->pe32->e32_variant.e32_callgate.offset; 318 348 break; 319 349 } … … 360 390 { 361 391 case ENTRY16: 362 pExport-> offset = pExpState->pe32->e32_variant.e32_offset.offset16;392 pExport->ulOffset = pExpState->pe32->e32_variant.e32_offset.offset16; 363 393 break; 364 394 365 395 case ENTRY32: 366 pExport-> offset = pExpState->pe32->e32_variant.e32_offset.offset32;396 pExport->ulOffset = pExpState->pe32->e32_variant.e32_offset.offset32; 367 397 break; 368 398 369 399 case GATE16: 370 pExport-> offset = pExpState->pe32->e32_variant.e32_callgate.offset;400 pExport->ulOffset = pExpState->pe32->e32_variant.e32_callgate.offset; 371 401 break; 372 402 default: … … 384 414 free(pExport->pv); 385 415 pExport->pv = NULL; 416 return FALSE; 417 } 418 419 420 /** 421 * Frees resources associated with the communicatin area. 422 * It's not necessary to call this when exportFindNext has return FALSE. 423 * @param pExport Communication area which has been successfully 424 * processed by findFirstExport. 425 */ 426 void kFileLX::exportFindClose(kExportEntry *pExport) 427 { 428 free(pExport->pv); 429 pExport->pv = NULL; 430 return; 431 } 432 433 434 /** 435 * Lookup information on a spesific export given by ordinal number. 436 * @returns Success indicator. 437 * @param pExport Communication area containing export information 438 * on successful return. 439 * @remark stub 440 */ 441 BOOL kFileLX::exportLookup(unsigned long ulOrdinal, kExportEntry *pExport) 442 { 443 assert(!"not implemented."); 444 ulOrdinal = ulOrdinal; 445 pExport = pExport; 446 return FALSE; 447 } 448 449 /** 450 * Lookup information on a spesific export given by name. 451 * @returns Success indicator. 452 * @param pExport Communication area containing export information 453 * on successful return. 454 * @remark stub 455 */ 456 BOOL kFileLX::exportLookup(const char * pszName, kExportEntry *pExport) 457 { 458 assert(!"not implemented."); 459 pszName = pszName; 460 pExport = pExport; 386 461 return FALSE; 387 462 }
Note:
See TracChangeset
for help on using the changeset viewer.