void CtestDlg::Decrypt() { CString temp,Alph; alphabet.GetWindowTextW(Alph); offset.GetWindowTextW(temp); int NewState=(int)_wcstoi64(temp.GetBuffer(),NULL,10); text.GetWindowTextW(temp); for(int i=0;i<temp.GetLength();i++) { int c=Alph.Find(temp[i]); if(c!=-1) { c+=NewState-state; if(c<0) c+=Alph.GetLength(); temp.SetAt(i,Alph[c%Alph.GetLength()]); } } state=NewState; text.SetWindowTextW(temp); }
///Button clicked. void XTailForm::buttonClicked(int id) { swprintf_s(tbuffer, L"XTailForm button clicked: %i\n", id); logger->debug(tbuffer); if (id == 99) { if (chunkCount < 1) return; current = -1; id = BTN_NEXT; } if (id == 98) { if (chunkCount < 1) return; current = chunkCount-1; id = BTN_NEXT; } if (id == BTN_PREV || id == BTN_NEXT) { if (id == BTN_PREV) { current -= 1; if (current < 0) current = 0L; } if (id == BTN_NEXT) { current += 1; if (current > chunkCount) current = chunkCount; } //Set the start/end chunks. __int64 len = getXTail()->len; __int64 startXX = (len/chunkCount) * current; __int64 endXX = startXX + MAX_FILE_BUFFER; if (startXX > len) startXX = len; if (endXX > len) endXX = len; swprintf_s(tbuffer, L"Current: %I64i, Start: %I64i, End: %I64i\n", current, startXX, endXX); logger->debug(tbuffer); swprintf_s(tbuffer, L"%I64i", startXX); SendMessageW(getHWND(TXT_BYTE_START), WM_SETTEXT, 2048, (LPARAM) tbuffer); swprintf_s(tbuffer, L"%I64i", endXX); SendMessageW(getHWND(TXT_BYTE_END), WM_SETTEXT, 2048, (LPARAM) tbuffer); id = BTN_LOAD; } if (id == BTN_LOAD) { chunkCount = 0l; ZeroMemory(tmp, sizeof(wchar_t) * 2048); getText(TXT_FILENAME, tmp, 2048); swprintf_s(tbuffer, L"Attempting to load file: %s\n", tmp); logger->debug(tbuffer); wchar_t fileName[2048]; wcscpy_s(fileName, tmp); if (wcslen(tmp) < 1) { MessageBoxExW(hwnd, L"Please enter a valid filename.", L"Invalid Input", MB_OK, NULL); return; } ZeroMemory(tmp, sizeof(wchar_t) * 2048); getText(TXT_BYTE_START, tmp, 2048); swprintf_s(tbuffer, L"Start Pos: %s\n", tmp); logger->debug(tbuffer); if (wcslen(tmp) < 1) { MessageBoxExW(hwnd, L"Please enter a valid file start position.", L"Invalid Input", MB_OK, NULL); return; } wchar_t *tmpX; __int64 start = _wcstoi64(tmp, &tmpX, 10); swprintf_s(tbuffer, L"Got the start pos: %I64i\n", start); logger->debug(tbuffer); ZeroMemory(tmp, sizeof(wchar_t) * 2048); getText(TXT_BYTE_END, tmp, 2048); swprintf_s(tbuffer, L"End Pos: %s\n", tmp); logger->debug(tbuffer); if (wcslen(tmp) < 1) { MessageBoxExW(hwnd, L"Please enter a valid file end position.", L"Invalid Input", MB_OK, NULL); return; } __int64 end = _wcstoi64(tmp, &tmpX, 10); swprintf_s(tbuffer, L"Got the end pos: %I64i\n", end); logger->debug(tbuffer); if (start < 0 || end < 1 || (end < start)) { swprintf_s(tbuffer, L"Invalid start(%I64i) and end(%I64i) pos", start, end); MessageBoxExW(hwnd, tbuffer, L"Invalid Input", MB_OK, NULL); return; } //Get the file/length. __int64 fileLength = getXTail()->getFileLength(fileName); swprintf_s(tbuffer, L"Got the file length: %I64i\n", fileLength); logger->debug(tbuffer); if (fileLength < 1) { swprintf_s(tbuffer, L"File (%s) is not valid.", fileName); MessageBoxExW(hwnd, tbuffer, L"Invalid Input", MB_OK, NULL); return; } if (start > fileLength) { swprintf_s(tbuffer, L"Start(%I64i) is > file length", start); MessageBoxExW(hwnd, tbuffer, L"Invalid Input", MB_OK, NULL); return; } if (end > fileLength) end = fileLength; //Update window caption. char fileNamea[2048]; SendMessageA(getHWND(TXT_FILENAME), WM_GETTEXT, 2048, (LPARAM) fileNamea); wchar_t fmtFileLength[128]; formatBytes(fileLength, fmtFileLength, 128); chunkCount = (fileLength / MAX_FILE_BUFFER); swprintf_s(tbuffer, L"Len(%s) - 63Kb Chunks(%I64i), Current: %I64i", fmtFileLength, chunkCount, current); logger->debug(tbuffer); SendMessageW(getHWND(LBL_CHUNKS), WM_SETTEXT, 2048, (LPARAM) tbuffer); //Attempt to load and display file. ZeroMemory(file_buffer, sizeof(wchar_t) * MAX_FILE_BUFFER); swprintf_s(tbuffer, L"going to call readChunk Start: %I64i, End: %I64i\n", start, end); logger->debug(tbuffer); if (!getXTail()->readChunk(start, end, file_buffer, MAX_FILE_BUFFER)) return; setText(TXT_OUTPUT, file_buffer, MAX_FILE_BUFFER); } }
static TToken getToken() { oSrcString = sSrcString; int ch = getNextChar(); bool verbStr=false; switch (ch) { case EOFCH: case 0: currTok = tEnd; break; case L',': currTok = tComma; break; case L'+': currTok = tPlus; break; case L'-': currTok = tMinus; break; case L'*': currTok = tMul; break; case L'/': currTok = tDiv; break; case L'(': currTok = tLp; break; case L')': currTok = tRp; break; case L'^': if ((ch = getChar()) == L'^') currTok = tBoolXor; else { putBack(ch); currTok = tBitXor; } break; case L'~': if ((ch = getChar()) != L' ') { putBack(ch); currTok = tBitNot; break; } putBack(ch); //???? currTok = tEnd; break; case L'|': if ((ch = getChar()) == L'|') currTok = tBoolOr; else { putBack(ch); currTok = tBitOr; } break; case L'&': if ((ch = getChar()) == L'&') currTok = tBoolAnd; else { putBack(ch); currTok = tBitAnd; } break; case L'=': if ((ch = getChar()) == L'=') currTok = tEq; else { putBack(ch); currTok = tLet; } break; case L'>': switch ((ch = getChar())) { case L'=': currTok = tGe; break; case L'>': currTok = tBitShr; break; default: putBack(ch); currTok = tGt; break; } break; case L'<': switch (ch = getChar()) { case L'=': currTok = tLe; break; case L'<': currTok = tBitShl; break; default: putBack(ch); currTok = tLt; break; } break; case L'!': if ((ch = getChar()) != L'=') { putBack(ch); currTok = tNot; break; } else currTok = tNe; break; case L'@': ch = getChar(); if (ch != L'"') { putBack(ch); break; } verbStr=true; case L'\"': { TToken __currTok = tNo; currVar = L""; while (((ch = getChar()) != EOFCH)) { if (ch == L'\"') { if (verbStr) { ch = getChar(); if (ch != L'\"') { putBack(ch); break; } } else break; } if (ch == L'\\' && !verbStr) { switch (ch = getChar()) { case L'a' : ch = L'\a'; break; case L'b' : ch = L'\b'; break; case L'f' : ch = L'\f'; break; case L'n' : ch = L'\n'; break; case L'r' : ch = L'\r'; break; case L't' : ch = L'\t'; break; case L'v' : ch = L'\v'; break; case L'\'': ch = L'\''; break; case L'\"': ch = L'\"'; break; case L'\\': ch = L'\\'; break; case L'0': case L'1': case L'2': case L'3': case L'4': case L'5': case L'6': case L'7': // octal: \d \dd \ddd { BYTE n = ch - L'0'; if ((unsigned int)(ch = getChar()) >= L'0' && (unsigned int)ch < L'8') { n = 8 * n + ch - L'0'; if ((unsigned int)(ch = getChar()) >= L'0' && (unsigned int)ch < L'8') n = 8 * n + ch - L'0'; else putBack(ch); } else putBack(ch); ch = n; break; } case L'x': { if (iswxdigit(ch = getChar())) { wchar_t value=hex2ch(ch); for (int ii=0; ii<3; ii++) { if (iswxdigit(ch = getChar())) { value=(value<<4)|hex2ch(ch); } else { putBack(ch); break; } } ch = value; } else { keyMacroParseError(err_Bad_Hex_Control_Char,--sSrcString,pSrcString); __currTok = tEnd; } break; } default: { keyMacroParseError(err_Bad_Control_Char,--sSrcString,pSrcString); __currTok = tEnd; break; } } } if (__currTok != tNo) break; currVar.AppendStr((wchar_t)ch); } if (__currTok == tNo) currTok = tStr; else currTok = __currTok; break; } case L'.': { ch = getChar(); if (iswdigit(ch)) { putBack(ch); ch=L'.'; } else { currTok = tEnd; //??? break; } } case L'0': case L'1': case L'2': case L'3': case L'4': case L'5': case L'6': case L'7': case L'8': case L'9': { static wchar_t buffer[256]; wchar_t *ptrbuffer=buffer; bool isNum = false; bool isHex = false; bool isE = false; bool isPoint = false; int ch2; for (;;) { *ptrbuffer++=(wchar_t)ch; switch (ch) { case L'x': case L'X': if (ptrbuffer == buffer + 2) { ch = getChar(); if (iswxdigit(ch)) { isHex=true; putBack(ch); } else { putBack(ch); isNum=true; break; } } break; case L'.': if (isPoint || isE) { isNum=true; break; } isPoint=true; break; case L'e': case L'E': if (isHex) break; if (isE) { isNum=true; break; } isE=true; ch2 = getChar(); if (ch2 == L'-' || ch2 == L'+') { int ch3=getChar(); if (iswdigit(ch3)) { *ptrbuffer++=(wchar_t)ch2; *ptrbuffer++=(wchar_t)ch3; } else { putBack(ch3); // !iswdigit putBack(ch2); // -+ putBack(ch); // eE } } else if (!iswdigit(ch2)) { putBack(ch2); // !iswdigit putBack(ch); // eE } else putBack(ch); break; case L'a': case L'A': case L'b': case L'B': case L'c': case L'C': case L'd': case L'D': case L'f': case L'F': if (!isHex) { isNum=true; break; } case L'0': case L'1': case L'2': case L'3': case L'4': case L'5': case L'6': case L'7': case L'8': case L'9': //isNum=true; break; default: isNum=true; break; } if (isNum) break; ch = getChar(); } if (ch != EOFCH) putBack(ch); *ptrbuffer++=(wchar_t)0; bool CheckIntNumber=true; if (buffer[0]) { if (!(buffer[1] == L'x' || buffer[1] == L'X')) { for (ptrbuffer=buffer; *ptrbuffer ; ptrbuffer++) { if (*ptrbuffer == L'e' || *ptrbuffer == L'E' || *ptrbuffer == L'.') { CheckIntNumber=false; break; } else if (!iswdigit(*ptrbuffer)) break; } } } else CheckIntNumber=false; if (CheckIntNumber) { currVar = _wcstoi64(buffer,&ptrbuffer,0); currTok = tInt; } else { currVar = wcstod(buffer,&ptrbuffer); currTok = tFloat; } break; } case L'%': ch = getChar(); if ((IsAlphaNum(ch) || ch == L'_') || (ch == L'%' && (IsAlphaNum(*sSrcString) || *sSrcString == L'_'))) { getVarName(ch); putBack(ch); currTok = tVar; } else keyMacroParseError(err_Var_Expected,L""); // BUG nameString break; default: { if (IsAlpha(ch)) // || ch == L'_' ???? { TToken __currTok = tNo; getFarName(ch); if (ch == L' ') { while (ch == L' ') ch = getNextChar(); } if (ch == L'(') //!!!! а пробелы пропустить? ДА! __currTok = tFunc; else { putBack(ch); for (int i = 0 ; i < MKeywordsSize ; i++) if (!StrCmpI(nameString, MKeywords[i].Name)) { FARVar = MKeywords[i].Value; __currTok = tFARVar; break; } if (__currTok == tNo) { if (IsProcessFunc || currTok == tFunc || currTok == tLt) // TODO: уточнить { if (KeyNameMacroToKey(nameString) == -1 && KeyNameToKey(nameString) == -1 && checkMacroConst(nameString)) __currTok = tConst; else { DWORD k=KeyNameToKey(nameString); if (k != (DWORD)-1) { currVar = (__int64)k; __currTok = tInt; //?? } else { keyMacroParseError(err_Var_Expected,oSrcString,pSrcString,nameString); } } } else { if (KeyNameMacroToKey(nameString) == -1) { if (KeyNameToKey(nameString) == -1) { if (checkMacroConst(nameString)) __currTok = tConst; else keyMacroParseError(err_Unrecognized_keyword,nameString); } else { currVar = (__int64)KeyNameToKey(nameString); __currTok = tInt; //?? } } } } } if (__currTok != tNo) currTok=__currTok; } else currTok = tEnd; break; } } return currTok; }
static void __cdecl HttpThread(void *pvStartupInfo) { HANDLE hStartEvent = static_cast<HANDLE>(pvStartupInfo); std::wstring l_url = s_url, l_localPath = s_localPath, l_tempLocalPath = s_localPath + L".bak"; HWND l_hDlg = s_hDlg; ::SetEvent(hStartEvent); // get on with the actual downloading business: HINTERNET hInet; BOOL bSuccess = TRUE; hInet = InternetOpen(L"Mozilla/5.0 (compatible; HttpThread/1.0)", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if(hInet) { HINTERNET hRequest; DWORD dwFlags = 0; if(l_url.find(L"https://") == 0) dwFlags |= INTERNET_FLAG_SECURE; hRequest = InternetOpenUrl(hInet, l_url.c_str(), NULL, 0, dwFlags, 0); if(hRequest) { __int64 uFileSize = 0; wchar_t wszSizeBuffer[32]; DWORD dwLengthSizeBuffer = 32; if(HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, wszSizeBuffer, &dwLengthSizeBuffer, NULL) == TRUE) { uFileSize = _wcstoi64(wszSizeBuffer, NULL, 10); SendMessage(l_hDlg, WM_DOWNLOAD_STARTED, (UINT_PTR)&uFileSize, 0); } if(uFileSize > 0) { char szBuffer[8192]; DWORD dwRead; FILE *fFile = NULL; if(_wfopen_s(&fFile, l_tempLocalPath.c_str(), L"wb") != 0) { SendMessage(l_hDlg, WM_DOWNLOAD_FAILED, 0, 0); } s_uBytesReceived = 0; while(InternetReadFile(hRequest, szBuffer, 8191, &dwRead)) { if(!dwRead || dwRead > 8191) { break; } size_t dwWritten = 0; if(fFile) { dwWritten = fwrite(szBuffer, dwRead, 1, fFile); } if(dwWritten != 1) { bSuccess = FALSE; break; } s_uBytesReceived += dwRead; } fclose(fFile); } if(bSuccess) bSuccess = (s_uBytesReceived == uFileSize); InternetCloseHandle(hRequest); } InternetCloseHandle(hInet); } if(!bSuccess) { SendMessage(l_hDlg, WM_DOWNLOAD_FAILED, 0, 0); } else { ::MoveFileEx(l_tempLocalPath.c_str(), l_localPath.c_str(), MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH); SendMessage(l_hDlg, WM_DOWNLOAD_COMPLETE, 0, 0); } s_bDownloading = false; }
void MenuItem::SetIcon() { WCHAR command[MAX_PATH], args[MAX_PATH], lwrValue[MAX_LINE_LENGTH]; HWND task; std::wstring app; wcscpy(lwrValue, menuItemData.value); _wcslwr(lwrValue); switch (menuItemData.type) { case IT_TASK: #ifdef _W64 task = (HWND)_wcstoi64(menuItemData.value, NULL, 10); #else task = (HWND)wcstol(menuItemData.value, NULL, 10); #endif icon = EGGetWindowIcon(NULL, task, true, true); /* If the task icon is NULL, generate a default icon using the * application's icon. */ if (icon == NULL) { app = ELGetWindowApp(task, true); icon = EGGetFileIcon(app.c_str(), 16); } break; case IT_EXECUTABLE: case IT_FILE: if ((_wcsicmp(lwrValue, TEXT("%documents%")) == 0) || (_wcsicmp(lwrValue, TEXT("%commondocuments%")) == 0)) icon = EGGetSpecialFolderIcon(CSIDL_PERSONAL, 16); else if ((_wcsicmp(lwrValue, TEXT("%desktop%")) == 0) || (_wcsicmp(lwrValue, TEXT("%commondesktop%")) == 0)) icon = EGGetSpecialFolderIcon(CSIDL_DESKTOP, 16); else { ELParseCommand(lwrValue, command, args); icon = EGGetFileIcon(command, 16); } break; case IT_INTERNAL_COMMAND: app = menuItemData.value; app = ELToLower(app.substr(0, app.find_first_of(TEXT(" \t")))); if (app == TEXT("logoff")) icon = EGGetSystemIcon(ICON_LOGOFF, 16); else if (app == TEXT("shutdown")) icon = EGGetSystemIcon(ICON_SHUTDOWN, 16); else if (app == TEXT("run")) icon = EGGetSystemIcon(ICON_RUN, 16); else if (app == TEXT("quit")) icon = EGGetSystemIcon(ICON_QUIT, 16); else if (app == TEXT("lock")) icon = EGGetSystemIcon(ICON_LOCK, 16); break; case IT_SPECIAL_FOLDER: { UINT specialFolder = ELGetSpecialFolderIDFromName(menuItemData.value); icon = EGGetSpecialFolderIcon(specialFolder, 16); } break; case IT_FILE_MENU: case IT_FILE_SUBMENU: app = menuItemData.value; app = ELToLower(app.substr(0, app.find_first_of(TEXT("|")))); if ((app == TEXT("%documents%")) || (app == TEXT("%commondocuments%"))) icon = EGGetSpecialFolderIcon(CSIDL_PERSONAL, 16); else if ((app == TEXT("%desktop%")) || (app == TEXT("%commondesktop%"))) icon = EGGetSpecialFolderIcon(CSIDL_DESKTOP, 16); else icon = EGGetFileIcon(app.c_str(), 16); if (icon != NULL) break; case IT_XML_MENU: case IT_TASKS_MENU: wcscpy(command, ELGetCurrentPath().c_str()); icon = EGGetFileIcon(command, 16); break; case IT_SETTINGS_MENU: icon = EGGetSystemIcon(ICON_EMERGE, 16); break; case IT_HELP_MENU: icon = EGGetSystemIcon(ICON_QUESTION, 16); break; } }
int CALLBACK IoSkSortCallback( __in LPARAM First, __in LPARAM Second, __in LPARAM Param ) { WCHAR FirstData[MAX_PATH + 1]; WCHAR SecondData[MAX_PATH + 1]; PDIALOG_OBJECT Object; PIO_FORM_CONTEXT Context; LISTVIEW_OBJECT *ListView; PIO_OBJECT_ON_DISK Object1, Object2; HWND hWnd; int Result; HWND hWndList; __int64 I1,I2; double F1,F2; hWnd = (HWND)Param; hWndList = GetDlgItem(hWnd, IDC_LIST_IO_SOCKET); Object = (PDIALOG_OBJECT)SdkGetObject(hWnd); Context = SdkGetContext(Object, IO_FORM_CONTEXT); ListView = Context->ListView; ListViewGetParam(hWndList, (LONG)First, (LPARAM *)&Object1); ListViewGetParam(hWndList, (LONG)Second, (LPARAM *)&Object2); ASSERT(Object1 != NULL); ASSERT(Object2 != NULL); ListView_GetItemText(hWndList, First, ListView->LastClickedColumn, FirstData, MAX_PATH); ListView_GetItemText(hWndList, Second, ListView->LastClickedColumn, SecondData, MAX_PATH); // // Symbol or Module name or Line // switch(ListView->LastClickedColumn){ case _SkSourcePort: case _SkDestinePort: case _SkIoCount: case _SkReadCount: case _SkWriteCount: case _SkFailedCount: case _SkReadBytes: case _SkWriteBytes: case _SkMaxReadBytes: case _SkMeanReadBytes: case _SkMaxWriteBytes: case _SkMeanWriteBytes: I1 = _wcstoi64(FirstData, NULL, 10); I2 = _wcstoi64(SecondData, NULL, 10); Result = (int)(I1 - I2); break; case _SkSourceAddress: case _SkDestineAddress: case _SkProtocal: Result = wcsicmp(FirstData, SecondData); break; case _SkMaxReadLatency: case _SkMeanReadLatency: case _SkMaxWriteLatency: case _SkMeanWriteLatency: F1 = wcstod(FirstData, NULL); F2 = wcstod(SecondData, NULL); if (F1 < F2) { Result = -1; } else if (fabs(F1 - F2) < 0.0001f) { Result = 0; } else if (F1 > F2) { Result = 1; } else { Result = 0; } break; default: ASSERT(0); Result = 0; } return ListView->SortOrder ? Result : -Result; }
std::string HttpDownloadTextFile(const std::wstring& a_url) { HINTERNET hInet; std::string sText; BOOL bSuccess = TRUE; hInet = ::InternetOpen(L"HttpDownloadTextFile/1.0", INTERNET_OPEN_TYPE_PRECONFIG, nullptr, nullptr, 0); if(hInet) { HINTERNET hRequest; DWORD dwTimeBuffer = 3000; ::InternetSetOption(hInet, INTERNET_OPTION_CONNECT_TIMEOUT, &dwTimeBuffer, sizeof(dwTimeBuffer)); hRequest = ::InternetOpenUrl(hInet, a_url.c_str(), nullptr, 0, INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_AUTH, 0); ::InternetSetOption(hRequest, INTERNET_OPTION_IGNORE_OFFLINE, nullptr, 0); if(hRequest) { long long uFileSize = 0; if(true) { TCHAR szSizeBuffer[32]; DWORD dwLengthSizeBuffer = 32; if(::HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, szSizeBuffer, &dwLengthSizeBuffer, nullptr) == TRUE) { uFileSize = _wcstoi64(szSizeBuffer, nullptr, 10); } } if(uFileSize && uFileSize < 100 * 1024) { char szBuffer[8192] = {0}; DWORD dwRead; while(::InternetReadFile(hRequest, szBuffer, 8191, &dwRead)) { if(!dwRead || dwRead > 8191) { break; } if(lstrlenA(szBuffer) == dwRead) { sText += szBuffer; } else { // we got some binary stuff, but we don't want any. bSuccess = FALSE; break; } } } ::InternetCloseHandle(hRequest); } ::InternetCloseHandle(hInet); } return (bSuccess ? sText : ""); }