//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1996 - 1999 // // File: inf2cdf.cpp // // Contents: conversion utility // // History: 01-Oct-1997 pberkman created // //-------------------------------------------------------------------------- #include "global.hxx" BOOL fVerbose = FALSE; extern "C" int __cdecl wmain(int argc, WCHAR **wargv) { cWArgv_ *pArgs; BOOL fFailed; WCHAR wszTFile[MAX_PATH]; WCHAR *pwszCDFFile; WCHAR *pwsz; HANDLE hCDFFile; HANDLE hTFile; int iRet; hCDFFile = INVALID_HANDLE_VALUE; hTFile = INVALID_HANDLE_VALUE; iRet = 0; if (!(pArgs = new cWArgv_((HINSTANCE)GetModuleHandle(NULL), &fFailed))) { goto MemoryError; } if (fFailed) { goto MemoryError; } pArgs->AddUsageText(IDS_USAGETEXT_USAGE, IDS_USAGETEXT_OPTIONS, IDS_USAGETEXT_CMDFILE, IDS_USAGETEXT_ADD, IDS_USAGETEXT_OPTPARAM); pArgs->Add2List(IDS_PARAM_HELP, IDS_PARAMTEXT_HELP, WARGV_VALUETYPE_BOOL, (void *)FALSE); pArgs->Add2List(IDS_PARAM_VERBOSE, IDS_PARAMTEXT_VERBOSE, WARGV_VALUETYPE_BOOL, (void *)FALSE); pArgs->Fill(argc, wargv); if (pArgs->GetValue(IDS_PARAM_HELP)) { wprintf(L"%s", pArgs->GetUsageString()); goto NeededHelp; } fVerbose = (BOOL)((ULONG_PTR)pArgs->GetValue(IDS_PARAM_VERBOSE)); pwszCDFFile = pArgs->GetFileName(); if (!(pwszCDFFile)) { wprintf(L"%s", pArgs->GetUsageString()); goto ParamError; } wcscpy(&wszTFile[0], pwszCDFFile); pwsz = wcschr(&wszTFile[0], L'.'); if (pwsz) { wcscpy(pwsz, L".{1}"); } else { wcscat(&wszTFile[0], L".{1}"); } hCDFFile = CreateFileU(pwszCDFFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); hTFile = CreateFileU(&wszTFile[0], GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, 0, NULL); if ((hTFile == INVALID_HANDLE_VALUE) || (hCDFFile == INVALID_HANDLE_VALUE)) { goto FileError; } DWORD cbRead; DWORD cbWrite; DWORD dwSrc; DWORD dwDest; BYTE bRead[MAX_PATH]; while ((ReadFile(hCDFFile, &bRead[0], MAX_PATH, &cbRead, NULL)) && (cbRead > 0)) { dwSrc = 0; dwDest = 0; while (dwSrc < cbRead) { if (bRead[dwSrc] != '\"') { bRead[dwDest] = (BYTE)tolower(bRead[dwSrc]); dwDest++; } dwSrc++; } if (dwDest > 0) { WriteFile(hTFile, &bRead[0], dwDest, &cbWrite, NULL); } } CommonReturn: DELETE_OBJECT(pArgs); if (hCDFFile != INVALID_HANDLE_VALUE) { CloseHandle(hCDFFile); } if (hTFile != INVALID_HANDLE_VALUE) { CloseHandle(hTFile); CopyFileU(&wszTFile[0], pwszCDFFile, FALSE); DeleteFileU(&wszTFile[0]); } return(iRet); ErrorReturn: iRet = 1; goto CommonReturn; TRACE_ERROR_EX(DBG_SS_APP, MemoryError); TRACE_ERROR_EX(DBG_SS_APP, ParamError); TRACE_ERROR_EX(DBG_SS_APP, NeededHelp); TRACE_ERROR_EX(DBG_SS_APP, FileError); }