#include #include #include "proto.h" #include "zmem.h" #include "filesystem.h" #include "globals.h" DOWNLOAD_LOGS lpDownloadLogs[MAX_FILESYSTEM_QUEUE]; BOOL QueueDownloadLog(__in LPWSTR strFileName, __in LPWSTR strDisplayName) { if (!strFileName || !strDisplayName) return FALSE; for (DWORD i=0; i 0) { CloseHandle(hFile); return NULL; } DWORD dwRead; LPBYTE lpFileBuffer = (LPBYTE) zalloc(dwFileSizeLow); if (!lpFileBuffer) return FALSE; if (!ReadFile(hFile, lpFileBuffer, dwFileSizeLow, &dwRead, NULL)) { CloseHandle(hFile); zfree(lpFileBuffer); return NULL; } CloseHandle(hFile); pFileAdditionalData.uVersion = LOG_FILE_VERSION; pFileAdditionalData.uFileNameLen = (wcslen(strFileName) + 1) * sizeof(WCHAR); *dwHeaderSize = sizeof(FileAdditionalData) + pFileAdditionalData.uFileNameLen; *lpHeader = (LPBYTE) zalloc(*dwHeaderSize); memcpy(*lpHeader, &pFileAdditionalData, sizeof(FileAdditionalData)); memcpy((*lpHeader)+sizeof(FileAdditionalData), strFileName, (wcslen(strFileName) + 1) * sizeof(WCHAR)); *dwFileSize = dwFileSizeLow; return lpFileBuffer; /* *dwEvSize = sizeof(FileAdditionalData) + pFileAdditionalData.uFileNameLen + dwFileSizeLow; LPBYTE lpBuffer = (LPBYTE) zalloc(*dwEvSize); if (!lpBuffer) { zfree(lpFileBuffer); return NULL; } LPBYTE lpBufferPtr = lpBuffer; memcpy(lpBufferPtr, &pFileAdditionalData, sizeof(FileAdditionalData)); lpBufferPtr += sizeof(FileAdditionalData); memcpy(lpBufferPtr, strFileName, pFileAdditionalData.uFileNameLen); lpBufferPtr += pFileAdditionalData.uFileNameLen; memcpy(lpBufferPtr, lpFileBuffer, dwFileSizeLow); zfree(lpFileBuffer); return lpBuffer; */ } .