Annotation of mstools/samples/sdktools/perfmon/fileutil.c, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: //#include <string.h>
        !             4: //#include <tchar.h>
        !             5: 
        !             6: #include <stdio.h>
        !             7: #include "perfmon.h"
        !             8: #include "fileutil.h"
        !             9: #include "utils.h"
        !            10: 
        !            11: #include <string.h>     // for strncpy
        !            12: #ifdef UNICODE
        !            13: #define _tcsrchr       wcsrchr
        !            14: #else
        !            15: #define _tcsrchr       strrchr
        !            16: #endif
        !            17: 
        !            18: #define DRIVE_DELIMITER          TEXT(':')
        !            19: #define DIRECTORY_DELIMITER      TEXT('\\')
        !            20: #define EXTENSION_DELIMITER      TEXT('.')
        !            21: 
        !            22: 
        !            23: #if 0
        !            24: VOID FileErrorMessageBox(HWND hWnd, LPTSTR lpszFileName, DWORD ErrorCode)
        !            25:    {
        !            26:    TCHAR szErrorMessage[FILE_ERROR_MESSAGE_SIZE] ;
        !            27:    TCHAR szErrorMessageTemplate[FILE_ERROR_MESSAGE_SIZE] ;
        !            28: 
        !            29:    StringLoad (IDS_FILE_ERROR, szErrorMessageTemplate) ;
        !            30:    TSPRINTF((LPTSTR)szErrorMessage,
        !            31:             (LPTSTR)szErrorMessageTemplate,
        !            32:             lpszFileName,
        !            33:             ErrorCode) ;
        !            34: 
        !            35:    MessageBox (hWnd, (LPTSTR)szErrorMessage, NULL,
        !            36:               MB_OK | MB_ICONSTOP | MB_TASKMODAL);
        !            37:    return ;
        !            38:    }
        !            39: #endif
        !            40: 
        !            41: 
        !            42: BOOL FileRead (HANDLE hFile,
        !            43:                LPMEMORY lpMemory,
        !            44:                DWORD nAmtToRead)
        !            45:    {  // FileRead
        !            46:    BOOL           bSuccess ;
        !            47:    DWORD          nAmtRead ;
        !            48: 
        !            49:    bSuccess = ReadFile (hFile, lpMemory, nAmtToRead, &nAmtRead, NULL) ;
        !            50:    return (bSuccess && (nAmtRead == nAmtToRead)) ;
        !            51:    }  // FileRead
        !            52: 
        !            53: 
        !            54: 
        !            55: BOOL FileWrite (HANDLE hFile,
        !            56:                 LPMEMORY lpMemory,
        !            57:                 DWORD nAmtToWrite)
        !            58:    {  // FileWrite
        !            59:    BOOL           bSuccess ;
        !            60:    DWORD          nAmtWritten ;
        !            61: 
        !            62:    bSuccess = WriteFile (hFile, lpMemory, nAmtToWrite, &nAmtWritten, NULL) ;
        !            63:    return (bSuccess && (nAmtWritten == nAmtToWrite)) ;
        !            64:    }  // FileWrite
        !            65: 
        !            66:                 
        !            67: #if 0
        !            68: HANDLE FileHandleOpen (LPTSTR lpszFilePath)
        !            69:    {  // FileHandleOpen
        !            70:    return ((HANDLE) CreateFile (lpszFilePath,
        !            71:                                 GENERIC_READ |
        !            72:                                 GENERIC_WRITE,
        !            73:                                 FILE_SHARE_READ |
        !            74:                                 FILE_SHARE_WRITE,
        !            75:                                 NULL, 
        !            76:                                 OPEN_EXISTING,
        !            77:                                 0,
        !            78:                                 NULL)) ;
        !            79:    }  // FileHandleOpen
        !            80: 
        !            81: 
        !            82: HANDLE FileHandleCreate (LPTSTR lpszFilePath)
        !            83:    {  // FileHandleCreate
        !            84:    return ((HANDLE) CreateFile (lpszFilePath, 
        !            85:                                GENERIC_READ | GENERIC_WRITE,
        !            86:                                FILE_SHARE_READ,
        !            87:                                NULL,
        !            88:                                CREATE_ALWAYS,
        !            89:                                FILE_ATTRIBUTE_NORMAL,
        !            90:                                NULL)) ;
        !            91:    }  // FileHandleCreate
        !            92: 
        !            93: 
        !            94: 
        !            95: long FileSeekEnd (HANDLE hFile,
        !            96:                   long lAmtToMove)
        !            97:    {  // FileSeekEnd
        !            98:    return (SetFilePointer (hFile, lAmtToMove, NULL, FILE_END)) ;
        !            99:    }  // FileSeekEnd
        !           100: 
        !           101: 
        !           102: long FileSeekBegin (HANDLE hFile,
        !           103:                     long lAmtToMove)
        !           104:    {  // FileSeekBegin
        !           105:    return (SetFilePointer (hFile, lAmtToMove, NULL, FILE_BEGIN)) ;
        !           106:    }  // FileSeekBegin
        !           107: 
        !           108: 
        !           109: long FileSeekCurrent (HANDLE hFile,
        !           110:                       long lAmtToMove)
        !           111:    {  // FileSeekCurrent
        !           112:    return  (SetFilePointer (hFile, lAmtToMove, NULL, FILE_CURRENT)) ;
        !           113:    }  // FileSeekCurrent
        !           114:    
        !           115: 
        !           116: 
        !           117: long FileTell (HANDLE hFile)
        !           118:    {  // FileTell
        !           119:    return (SetFilePointer (hFile, 0, NULL, FILE_CURRENT)) ;
        !           120:    }  // FileTell
        !           121: #endif
        !           122: 
        !           123: 
        !           124: 
        !           125: LPMEMORY FileMap (HANDLE hFile, HANDLE *phMapHandle)
        !           126: /*
        !           127:    To Do:         Error reporting!!
        !           128: */
        !           129:    {  // FileMap
        !           130:    HANDLE         hMapping ;
        !           131: 
        !           132: 
        !           133:    *phMapHandle = 0 ;
        !           134:    hMapping = CreateFileMapping (hFile, NULL, PAGE_READONLY,
        !           135:                                  0, 0, NULL) ;
        !           136:    if (!hMapping)
        !           137:       return (NULL) ;
        !           138: 
        !           139:    *phMapHandle = hMapping ;
        !           140:    return (MapViewOfFile (hMapping, FILE_MAP_READ, 0, 0, 0)) ;
        !           141:    }  // FileMap
        !           142: 
        !           143: 
        !           144: 
        !           145: BOOL FileUnMap (LPVOID pBase, HANDLE hMapping)
        !           146: /*
        !           147:    To Do:         Error reporting!!
        !           148: */
        !           149:    {  // FileUnMap
        !           150:    UnmapViewOfFile(pBase) ;
        !           151:    CloseHandle (hMapping) ;
        !           152:    return (TRUE) ;
        !           153:    }  // FileUnMap
        !           154: 
        !           155: 
        !           156: 
        !           157: void FileNameExtension (LPTSTR lpszSpec,
        !           158:                         LPTSTR lpszFileNameExtension)
        !           159: /*
        !           160:    Effect:        Return the name and extension portion only of lpszSpec
        !           161:                   int lpszFileNameExtension.
        !           162: 
        !           163:    Assert:        lpszFileNameExtension is large enough to hold a name,
        !           164:                   delimiter, extension, and terminating null character.
        !           165: */
        !           166:    {  // FileNameExtension
        !           167:    LPTSTR          lpszDelimiter ;
        !           168: 
        !           169:    lpszDelimiter = _tcsrchr ((LPCTSTR)lpszSpec, (TCHAR)DIRECTORY_DELIMITER) ;
        !           170:    if (!lpszDelimiter)
        !           171:       lpszDelimiter = _tcsrchr ((LPCTSTR)lpszSpec, (TCHAR)DRIVE_DELIMITER) ;
        !           172: 
        !           173:    lstrcpy (lpszFileNameExtension, 
        !           174:            lpszDelimiter ? ++lpszDelimiter : lpszSpec) ;
        !           175:    }  // FileNameExtension
        !           176: 
        !           177: 
        !           178: 
        !           179: void FileDriveDirectory (LPTSTR lpszFileSpec,
        !           180:                          LPTSTR lpszDirectory)
        !           181: /*
        !           182:    Effect:        Extract the drive and directory from the file 
        !           183:                   specification lpszFileSpec, and return the it in
        !           184:                   lpszDirectory.
        !           185: 
        !           186:    Internals:     Copy the the whole spec to lpszDirectory. Use lstrrchr
        !           187:                   to find the *last* directory delimiter ('\') and 
        !           188:                   truncate the string right after that. 
        !           189: 
        !           190:    Note:          This function assumes that the specification lpszFileSpec
        !           191:                   is fairly complete, in that it contains both a directory
        !           192:                   and a file name.
        !           193: */
        !           194:    {  // FileDriveDirectory
        !           195:    LPTSTR          lpszDelimiter ;
        !           196: 
        !           197:    lstrcpy (lpszDirectory, lpszFileSpec) ;
        !           198:    lpszDelimiter = _tcsrchr ((LPCTSTR)lpszDirectory, (TCHAR)DIRECTORY_DELIMITER) ;
        !           199:    if (lpszDelimiter)
        !           200:       *(++lpszDelimiter) = TEXT('\0') ;
        !           201:    }  // FileDriveDirectory
        !           202: 
        !           203: 
        !           204: 
        !           205: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.