#if 0 BOOL UUEncode::encode(const String &srcPathFileName,const String &dstPathFileName) { int ch(0); char readBuff[45]; int readCount; int byteCount; char *ptrBuff; String outLine; BYTE chByte; if(srcPathFileName.isNull()||dstPathFileName.isNull())return FALSE; FileHandle readFile(srcPathFileName,FileHandle::Read,FileHandle::ShareRead); if(!readFile.isOkay())return FALSE; FileHandle writeFile(dstPathFileName,FileHandle::Write,FileHandle::ShareRead,FileHandle::Overwrite); if(!writeFile.isOkay())return FALSE; FileMap readMap(readFile); PureViewOfFile readView(readMap); ::sprintf(outLine,"begin %d %s",644,srcPathFileName); writeFile.writeLine(outLine); while(readCount=readView.read(readBuff,45)) { ch=chEncode(readCount); chByte=ch; writeFile.write(chByte); for(ptrBuff=readBuff,byteCount=readCount;byteCount>0;byteCount-=3,ptrBuff+=3) { ch=*ptrBuff>>2; ch=chEncode(ch); chByte=ch; writeFile.write(chByte); ch=(*ptrBuff<<4)&0x30|(ptrBuff[1]>>4)&0x0F; ch=chEncode(ch); chByte=ch; writeFile.write(chByte); ch=(ptrBuff[1]<<2)&0x3C|(ptrBuff[2]>>6)&0x03; ch=chEncode(ch); chByte=ch; writeFile.write(chByte); ch=ptrBuff[2]&0x3F; ch=chEncode(ch); chByte=ch; writeFile.write(chByte); } writeFile.write((BYTE)'\n'); if(readCount!=45)break; } ch=('\0'?('\0'&0x3F)+' ':'`'); writeFile.write((BYTE)ch); writeFile.write((BYTE)'\n'); ::sprintf(outLine,"end"); writeFile.writeLine(outLine); return TRUE; } #endif #if 0 FILE_SHARE_READ equ 00000001h FILE_SHARE_WRITE equ 00000002h FILE_SHARE_DELETE equ 00000004h FILE_ATTRIBUTE_READONLY equ 00000001h FILE_ATTRIBUTE_HIDDEN equ 00000002h FILE_ATTRIBUTE_SYSTEM equ 00000004h FILE_ATTRIBUTE_DIRECTORY equ 00000010h FILE_ATTRIBUTE_ARCHIVE equ 00000020h FILE_ATTRIBUTE_NORMAL equ 00000080h FILE_ATTRIBUTE_TEMPORARY equ 00000100h FILE_ATTRIBUTE_COMPRESSED equ 00000800h FILE_ATTRIBUTE_OFFLINE equ 00001000h CREATE_NEW equ 00000001h CREATE_ALWAYS equ 00000002h OPEN_EXISTING equ 00000003h OPEN_ALWAYS equ 00000004h TRUNCATE_EXISTING equ 00000005h DELETE equ 00010000h READ_CONTROL equ 00020000h WRITE_DAC equ 00040000h WRITE_OWNER equ 00080000h SYNCHRONIZE equ 00100000h STANDARD_RIGHTS_REQUIRED equ 000F0000h STANDARD_RIGHTS_READ equ READ_CONTROL STANDARD_RIGHTS_WRITE equ READ_CONTROL STANDARD_RIGHTS_EXECUTE equ READ_CONTROL STANDARD_RIGHTS_ALL equ 001F0000h SPECIFIC_RIGHTS_ALL equ 0000FFFFh FILE_READ_DATA equ 0001h FILE_LIST_DIRECTORY equ 0001h FILE_WRITE_DATA equ 0002h FILE_ADD_FILE equ 0002h FILE_APPEND_DATA equ 0004h FILE_ADD_SUBDIRECTORY equ 0004h FILE_CREATE_PIPE_INSTANCE equ 0004h FILE_READ_EA equ 0008h FILE_WRITE_EA equ 0010h FILE_EXECUTE equ 0020h FILE_TRAVERSE equ 0020h FILE_DELETE_CHILD equ 0040h FILE_READ_ATTRIBUTES equ 0080h FILE_WRITE_ATTRIBUTES equ 0100h FILE_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 1FFh FILE_GENERIC_READ equ STANDARD_RIGHTS_READ or FILE_READ_DATA or FILE_READ_ATTRIBUTES or FILE_READ_EA or SYNCHRONIZE FILE_GENERIC_WRITE equ STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or FILE_APPEND_DATA or SYNCHRONIZE FILE_GENERIC_EXECUTE equ STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES or FILE_EXECUTE or SYNCHRONIZE GENERIC_READ equ 80000000h GENERIC_WRITE equ 40000000h GENERIC_EXECUTE equ 20000000h GENERIC_ALL equ 10000000h #endif FileReadData=0x0001,FileListDirectory=0x0001,FileWriteData=0x0002, FileAddFile=0x0002,FileAppendData=0x0004,FileAddSubDir=0x0004, FileCreatePipeInstance=0x0004,FileReadEA=0x0008,FileWriteEA=0x0010, FileExecute=0x0020,FileTraverse=0x0020,FileDeleteChild=0x0040, FileReadAttributes=0x0080,FileWriteAttributes=0x0100, FileAllAccess=StandardRightsRequired|Synchronize|0x1FF, FileGenericRead=StandardRightsRead|FileReadData|FileReadAttributes|FileReadEA|Synchronize, enum Rights{ReadControl=0x00020000,WriteDAC=0x00040000,WriteOwner=0x00080000,Synchronize=0x00100000}; enum Standard{StandardRightsRequired=0x000F0000,StandardRightsRead=ReadControl, StandardRightsWrite=ReadControl,StandardRightsExecute=ReadControl, StandardRightsAll=0x001F0000,SpecificRightsAll=0x0000FFFF}; ;FWRITE MACRO sFileInfo,ptrByte ; LOCAL @@FWRITEsimpleWrite,@@FWRITEuseBuffer ; cmp sFileInfo.FileInfo@@mBufferIndex,MaxLength ; compare buffer index to MaxLength ; jl @@FWRITEsimpleWrite ; if it's less then insert char into buffer ; WRITEFILE sFileInfo.FileInfo@@mhFileHandle,sFileInfo.FileInfo@@mszBuffer,MaxLength ; other wise ; mov sFileInfo.FileInfo@@mBufferIndex,0000h ; set buffer index to zero ; mov eax,offset sFileInfo.FileInfo@@mszBuffer ; move address of buffer to eax ; mov sFileInfo.FileInfo@@mlpBufferPointer,eax ; move address of buffer to lpBufferPointer ;@@FWRITEsimpleWrite: ; simple write sync address ; cmp sFileInfo.FileInfo@@mlpBufferPointer,0000h ; is buffer pointer null? ; jne @@FWRITEuseBuffer ; if not then just use it ; mov eax,offset sFileInfo.FileInfo@@mszBuffer ; move address of buffer to eax ; mov sFileInfo.FileInfo@@mlpBufferPointer,eax ; move address of buffer to lpBufferPointer ;@@FWRITEuseBuffer: ; use buffer sync address ; mov cl,byte ptr[ptrByte] ; move byte to write to cl ; mov eax,sFileInfo.FileInfo@@mlpBufferPointer ; move address of buffer to eax ; mov byte ptr[eax],cl ; move byte into buffer ; inc sFileInfo.FileInfo@@mlpBufferPointer ; increment buffer pointer ; inc sFileInfo.FileInfo@@mBufferIndex ; increment buffer index ; mov eax,01h ; set return code ;ENDM // char strLine[128]; // while(openFile.readLine((BYTE*)strLine)); // openFile.writeFile((BYTE*)"I wonder what line this is?\n"); // openFile.flushFile(); //#if 0 // byteCount=0; // DWORD elapsedTime(::GetTickCount()); // while(openFile.readFile(&ptrByte))++byteCount; // elapsedTime=::GetTickCount()-elapsedTime; // elapsedTime/=1000L; // ::sprintf(strMessage,"%ld bytes read int %ld seconds\n",byteCount,elapsedTime); // ::MessageBox(::GetFocus(),strMessage,(LPSTR)"FileIO",MB_OK); //#endif // openFile.closeFile();