亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? intrface.cpp

?? zip壓縮
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
   // Store the directory for when we do an extract.   TSTRTOMBS(g_szExtractToDirectory, szDirectory, countof(g_szExtractToDirectory));   // We always want a wack at the end of our path.   strcat(g_szExtractToDirectory, "\\");   // Add the wack back to the end of the path.   if (fNeedToAddWack) {      _tcscat(szDirectory, TEXT("\\"));   }   return TRUE;}//******************************************************************************//***** Internal functions//******************************************************************************Uz_Globs* InitGlobals(LPCSTR szZipFile) {   // Create our global structure - pG   CONSTRUCTGLOBALS();   // Bail out if we failed to allocate our Globals structure.   if (!pG) {      return NULL;   }   // Clear our USERFUNCTIONS structure   ZeroMemory(&g_uf, sizeof(g_uf));   // Initialize a global pointer to our USERFUNCTIONS structure that is   // used by WINMAIN.CPP to access it (without using the pG construction).   lpUserFunctions = &g_uf;   // Store a global pointer to our USERFUNCTIONS structure in pG so that   // the generic Info-ZIP code LIST.C and PROCESS.C can access it.   pG->lpUserFunctions = &g_uf;   // Fill in all our callback functions.   pG->message      = UzpMessagePrnt2;   pG->input        = UzpInput2;   pG->mpause       = UzpMorePause;   pG->statreportcb = CheckForAbort2;   pG->lpUserFunctions->replace                = UzpReplace;   pG->lpUserFunctions->sound                  = UzpSound;   pG->lpUserFunctions->SendApplicationMessage = SendAppMsg;#if CRYPT   pG->decr_passwd = UzpPassword;#endif   // Match filenames case-sensitively.  We can do this since we can guarantee   // exact case because the user can only select files via our UI.   pG->UzO.C_flag = FALSE;   // Allocate and store the ZIP file name in pG->zipfn   if (!(pG->zipfnPtr = new char[FILNAMSIZ])) {      FreeGlobals(pG);      return NULL;   }   pG->zipfn = pG->zipfnPtr;   strcpy(pG->zipfn, szZipFile);   // Allocate and store the ZIP file name in pG->zipfn.  This needs to done   // so that do_wild() does not wind up clearing out the zip file name when   // it returns in process.c   if (!(pG->wildzipfnPtr = new char[FILNAMSIZ])) {      FreeGlobals(pG);      return NULL;   }   pG->wildzipfn = pG->wildzipfnPtr;   strcpy(pG->wildzipfn, szZipFile);   return pG;}//******************************************************************************void FreeGlobals(Uz_Globs *pG) {   // Free our ZIP file name   if (pG->zipfnPtr) {      delete[] pG->zipfnPtr;      pG->zipfnPtr = pG->zipfn = NULL;   }   // Free our wild name buffer   if (pG->wildzipfnPtr) {      delete[] pG->wildzipfnPtr;      pG->wildzipfnPtr = pG->wildzipfn = NULL;   }   // Free everything else.   DESTROYGLOBALS();}//******************************************************************************int IsFileOrDirectory(LPCTSTR szPath) {   // Geth the attributes of the item.   DWORD dwAttribs = GetFileAttributes(szPath);   // Bail out now if we could not find the path at all.   if (dwAttribs == 0xFFFFFFFF) {      return 0;   }   // Return 1 for file and 2 for directory.   return ((dwAttribs & FILE_ATTRIBUTE_DIRECTORY) ? 2 : 1);}//******************************************************************************BOOL SmartCreateDirectory(Uz_Globs *pG, LPCSTR szDirectory) {   // Copy path to a UNICODE buffer.   TCHAR szBuffer[_MAX_PATH];   MBSTOTSTR(szBuffer, szDirectory, countof(szBuffer));   int x = IsFileOrDirectory(szBuffer);   // Create the directory if it does not exist.   if (x == 0) {      if (!CreateDirectory(szBuffer, NULL)) {         Info(slide, 1, ((char *)slide, "error creating directory: %s\n",           FnFilter1( szDirectory)));         return FALSE;      }   // If there is a file with the same name, then display an error.   } else if (x == 1) {      Info(slide, 1, ((char *)slide,           "cannot create %s as a file with same name already exists.\n",           FnFilter1(szDirectory)));      return FALSE;   }   // If the directory already exists or was created, then return success.   return TRUE;}//******************************************************************************#ifdef _WIN32_WCE// On WinCE, we declare our thread function the way CreateThread() likes it.DWORD WINAPI ExtractOrTestFilesThread(LPVOID lpv) {#else// On WinNT, we declare our thread function the way _beginthreadex likes it.unsigned __stdcall ExtractOrTestFilesThread(void *lpv) {#endif   Uz_Globs *pG = (Uz_Globs*)lpv;   if (g_pExtractInfo->fExtract) {      pG->extract_flag = TRUE;      switch (g_pExtractInfo->overwriteMode) {         case OM_NEWER:         // Update (extract only newer/brand-new files)            pG->UzO.uflag = TRUE;            break;         case OM_ALWAYS:        // OK to overwrite files without prompting            pG->UzO.overwrite_all = TRUE;            break;         case OM_NEVER:         // Never overwrite files (no prompting)            pG->UzO.overwrite_none = TRUE;            break;         default:               // Force a prompt            pG->UzO.overwrite_all = FALSE;            pG->UzO.overwrite_none = FALSE;            pG->UzO.uflag = FALSE;            break;      }      // Throw away paths if requested.      pG->UzO.jflag = !g_pExtractInfo->fRestorePaths;   } else {      pG->UzO.tflag = TRUE;   }   if (g_pExtractInfo->szFileList) {      pG->filespecs = g_pExtractInfo->dwFileCount;      pG->pfnames = g_pExtractInfo->szFileList;   } else {      // Improves performance if all files are being extracted.      pG->process_all_files = TRUE;   }   // Invalidate our file offset to show that we are starting a new operation.   g_pExtractInfo->dwFileOffset = 0xFFFFFFFF;   // We wrap some exception handling around the entire Info-ZIP engine to be   // safe.  Since we are running on a device with tight memory configurations,   // all sorts of problems can arise when we run out of memory.   __try {      // Put a jump marker on our stack so the user can abort.      int error = setjmp(dll_error_return);      // If setjmp() returns 0, then we just set our jump marker and we can      // continue with the operation.  If setjmp() returned something else,      // then we reached this point because the operation was aborted and      // set our instruction pointer back here.      if (error > 0) {         // We already called process_zipfiles() and were thrown back here.         g_pExtractInfo->result = (error == 1) ? PK_BADERR : error;      } else {         // Entering Info-ZIP... close your eyes.         g_pExtractInfo->result = process_zipfiles(pG);      }   } __except(EXCEPTION_EXECUTE_HANDLER) {      // Catch any exception here.      DebugOut(TEXT("Exception 0x%08X occurred in ExtractOrTestFilesThread()"),               GetExceptionCode());      g_pExtractInfo->result = PK_EXCEPTION;   }   // Free our globals.   FreeGlobals(pG);   // Tell the progress dialog that we are done.   SendMessage(g_hDlgProgress, WM_PRIVATE, MSG_OPERATION_COMPLETE,               (LPARAM)g_pExtractInfo);   // Clear our global pointer as we are done with it.   g_pExtractInfo = NULL;#ifndef _WIN32_WCE   // On NT, we need to free any CRT allocated memory.   _endthreadex(0);#endif   return 0;}//******************************************************************************void SetCurrentFile(Uz_Globs *pG) {   // Reset all our counters as we about to process a new file.   g_pExtractInfo->dwFileOffset = (DWORD)pG->pInfo->offset;   g_pExtractInfo->dwFile++;   g_pExtractInfo->dwBytesWrittenThisFile = 0;   g_pExtractInfo->dwBytesWrittenPreviousFiles += g_pExtractInfo->dwBytesTotalThisFile;   g_pExtractInfo->dwBytesTotalThisFile = pG->lrec.ucsize;   g_pExtractInfo->szFile = pG->filename;   g_pExtractInfo->fNewLineOfText = TRUE;   // Pass control to our GUI thread to do a full update our progress dialog.   SendMessage(g_hWndMain, WM_PRIVATE, MSG_UPDATE_PROGRESS_COMPLETE,               (LPARAM)g_pExtractInfo);   // Check our abort flag.}//******************************************************************************//***** Callbacks from Info-ZIP code.//******************************************************************************int UZ_EXP UzpMessagePrnt2(zvoid *pG, uch *buffer, ulg size, int flag){   // Some ZIP files cause us to get called during DoListFiles(). We only handle   // messages while processing DoExtractFiles().   if (!g_pExtractInfo) {      if (g_hWndEdit) {         SendMessage(g_hWndMain, WM_PRIVATE, MSG_ADD_TEXT_TO_EDIT,                     (LPARAM)buffer);      } else {#ifdef UNICODE         DebugOut(TEXT("Unhandled call to UzpMessagePrnt2(\"%S\")"), buffer);#else         DebugOut(TEXT("Unhandled call to UzpMessagePrnt2(\"%s\")"), buffer);#endif      }      return 0;   }   // When extracting, mapname() will get called for every file which in turn   // will call SetCurrentFile().  For testing though, mapname() never gets   // called so we need to be on the lookout for a new file.   if (g_pExtractInfo->dwFileOffset != (DWORD)((Uz_Globs*)pG)->pInfo->offset) {      SetCurrentFile((Uz_Globs*)pG);   }   // Make sure this message was intended for us to display.   if (!MSG_NO_WGUI(flag) && !MSG_NO_WDLL(flag)) {      // Insert a leading newline if requested to do so.      if (MSG_LNEWLN(flag) && !g_pExtractInfo->fNewLineOfText) {         SendMessage(g_hWndMain, WM_PRIVATE, MSG_ADD_TEXT_TO_EDIT, (LPARAM)"\n");         g_pExtractInfo->fNewLineOfText = TRUE;      }      // Since we use a proportional font, we need to do a little cleanup of the      // text we are passed since it assumes a fixed font and adds padding to try      // to line things up.  We remove leading whitespace on any new line of text.      if (g_pExtractInfo->fNewLineOfText) {         while (*buffer == ' ') {            buffer++;         }      }      // We always remove trailing whitespace.      LPSTR psz = (LPSTR)buffer;      LPSTR pszn;      while ((pszn = MBSCHR(psz, ' ')) != NULL) {         for (psz = pszn+1; *psz == ' '; psz++);         if (*psz == '\0') {            *pszn = '\0';            break;         }      }      // Determine if the next line of text will be a new line of text.      g_pExtractInfo->fNewLineOfText = ((*psz == '\r') || (*psz == '\n'));      // Change all forward slashes to back slashes in the buffer      ForwardSlashesToBackSlashesA((LPSTR)buffer);      // Add the cleaned-up text to our extraction log edit control.      SendMessage(g_hWndMain, WM_PRIVATE, MSG_ADD_TEXT_TO_EDIT, (LPARAM)buffer);      // Append a trailing newline if requested to do so.      if (MSG_TNEWLN(flag) || MSG_MNEWLN(flag) && !g_pExtractInfo->fNewLineOfText) {         SendMessage(g_hWndMain, WM_PRIVATE, MSG_ADD_TEXT_TO_EDIT, (LPARAM)"\n");         g_pExtractInfo->fNewLineOfText = TRUE;      }   }   return 0;}//******************************************************************************int UZ_EXP UzpInput2(zvoid *pG, uch *buffer, int *size, int flag){   DebugOut(TEXT("WARNING: UzpInput2(...) called"));   return 0;}//******************************************************************************void UZ_EXP UzpMorePause(zvoid *pG, const char *szPrompt, int flag){   DebugOut(TEXT("WARNING: UzpMorePause(...) called"));}//******************************************************************************int UZ_EXP UzpPassword(zvoid *pG, int *pcRetry, char *szPassword, int nSize,                       const char *szZipFile, const char *szFile){   // Return Values:   //    IZ_PW_ENTERED    got some PWD string, use/try it   //    IZ_PW_CANCEL     no password available (for this entry)   //    IZ_PW_CANCELALL  no password, skip any further PWD request   //    IZ_PW_ERROR      failure (no mem, no tty, ...)#if CRYPT   // Build the data structure for our dialog.   DECRYPT_INFO di;   di.retry      = *pcRetry;   di.szPassword = szPassword;   di.nSize      = nSize;   di.szFile     = szFile;   // Clear the password to be safe.   *di.szPassword = '\0';   // On our first call for a file, *pcRetry == 0.  If we would like to allow   // for retries, then we set the value of *pcRetry to the number of retries we   // are willing to allow.  We will be recalled as neccessary, each time with   // *pcRetry being decremented once.  1 is the last retry we will get.   *pcRetry = (*pcRetry == 0) ? MAX_PASSWORD_RETRIES : (*pcRetry - 1);   // Pass control to our GUI thread which will prompt the user for a password.   return SendMessage(g_hWndMain, WM_PRIVATE, MSG_PROMPT_FOR_PASSWORD, (LPARAM)&di);#else   return -2;#endif}//******************************************************************************int UZ_EXP CheckForAbort2(zvoid *pG, int fnflag, ZCONST char *zfn,                    ZCONST char *efn, ZCONST zvoid *details){   int rval = UZ_ST_CONTINUE;   if (g_pExtractInfo->fAbort) {      // Add a newline to our log if we are in the middle of a line of text.      if (!g_pExtractInfo->fNewLineOfText) {         SendMessage(g_hWndMain, WM_PRIVATE, MSG_ADD_TEXT_TO_EDIT, (LPARAM)"\n");      }      // Make sure whatever file we are currently processing gets closed.      if (((int)((Uz_Globs *)pG)->outfile != 0) &&          ((int)((Uz_Globs *)pG)->outfile != -1)) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区四区| 1000部国产精品成人观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品 欧美精品| 亚洲最快最全在线视频| 久久精品夜夜夜夜久久| 欧美高清一级片在线| 91小视频免费看| 国产一区二区免费看| 亚洲成av人片观看| 亚洲日本在线a| 国产三级三级三级精品8ⅰ区| 欧美日韩国产精品自在自线| 不卡一二三区首页| 国内精品在线播放| 日本在线不卡视频一二三区| 亚洲人成网站在线| 久久久亚洲欧洲日产国码αv| 欧美日韩精品三区| 色网综合在线观看| 成人精品电影在线观看| 国产美女精品人人做人人爽| 日本在线观看不卡视频| 五月天国产精品| 亚洲第一狼人社区| 亚洲乱码国产乱码精品精小说| 国产精品三级电影| 国产日韩三级在线| 久久久久久久久久看片| 精品嫩草影院久久| 日韩免费视频线观看| 制服丝袜一区二区三区| 欧美亚洲图片小说| 91蝌蚪porny九色| 91在线视频播放| 99热国产精品| 91猫先生在线| 在线观看国产日韩| 欧美日韩视频在线观看一区二区三区| 色噜噜狠狠成人网p站| 在线一区二区三区做爰视频网站| 91老司机福利 在线| 在线视频综合导航| 色网综合在线观看| 欧美少妇xxx| 91精品国产综合久久精品麻豆| 欧美久久久一区| 日韩精品一区二区三区三区免费| 91精品综合久久久久久| 日韩午夜激情视频| 久久综合九色综合97婷婷女人 | 欧美日韩精品一区视频| 制服丝袜中文字幕一区| 日韩精品中文字幕一区| 精品sm在线观看| 国产欧美精品在线观看| 国产精品久久久久久久第一福利| 中文字幕永久在线不卡| 亚洲美女淫视频| 亚洲成人av电影| 久久97超碰色| 成人一区在线看| 91精品办公室少妇高潮对白| 欧美日韩和欧美的一区二区| 日韩一区二区麻豆国产| 久久人人爽人人爽| 一色屋精品亚洲香蕉网站| 亚洲一区在线播放| 全部av―极品视觉盛宴亚洲| 国产一区二区三区在线观看免费 | 99re这里只有精品视频首页| 欧美中文字幕一区二区三区亚洲| 3d动漫精品啪啪1区2区免费| 国产午夜精品一区二区三区视频| 亚洲视频在线一区| 亚洲成人综合网站| 黄色日韩三级电影| av在线这里只有精品| 欧美精品一二三| 亚洲国产精华液网站w| 亚洲电影第三页| 国产成人aaaa| 欧美女孩性生活视频| 久久九九久精品国产免费直播| 一区二区三区中文在线| 精品一区二区三区在线播放| 91免费在线视频观看| 日韩免费观看高清完整版| 国产精品久线在线观看| 日日噜噜夜夜狠狠视频欧美人| 粉嫩一区二区三区性色av| 欧美肥妇bbw| 中文字幕色av一区二区三区| 免费美女久久99| 在线免费观看视频一区| 国产欧美精品日韩区二区麻豆天美| 亚洲成在线观看| 99久久伊人网影院| 日韩午夜中文字幕| 亚洲综合视频在线观看| 成人免费电影视频| 日韩三级中文字幕| 亚洲一区在线观看网站| 国产成人免费在线观看| 欧美一区二区精品久久911| 一区二区三区中文字幕| 国产大陆亚洲精品国产| 日韩欧美一区二区久久婷婷| 亚洲国产欧美日韩另类综合| 成人h动漫精品| 精品sm在线观看| 日韩激情中文字幕| 91久久精品午夜一区二区| 欧美国产日韩一二三区| 久久国产精品色婷婷| 欧美日韩一本到| 亚洲精品第1页| 97久久人人超碰| 国产精品入口麻豆原神| 国产一区二区在线影院| 欧美xxxx老人做受| 性久久久久久久久久久久| 欧洲日韩一区二区三区| 亚洲三级在线播放| 成人永久免费视频| 国产免费成人在线视频| 国产精品99久久久久久有的能看 | 天天综合色天天综合| 色综合久久久久综合| 国产精品久久久久久久久久久免费看| 国产又黄又大久久| 久久久久亚洲蜜桃| 国产一区二区三区蝌蚪| 久久影院视频免费| 国内成人精品2018免费看| 日韩欧美国产一区在线观看| 蜜臀av国产精品久久久久| 日韩欧美一二三四区| 久久精品国产精品亚洲红杏| 日韩精品一区二区三区视频播放| 日本 国产 欧美色综合| 日韩一级大片在线观看| 黄色精品一二区| 久久人人超碰精品| 成人午夜免费电影| 亚洲欧洲精品天堂一级| 91麻豆免费看| 亚洲18女电影在线观看| 欧美群妇大交群中文字幕| 日韩精品亚洲一区| 日韩亚洲国产中文字幕欧美| 国产一区二区电影| 国产精品国产自产拍在线| 99re8在线精品视频免费播放| 一区二区三区在线不卡| 欧美精品三级在线观看| 精品一区二区av| 国产欧美日韩亚州综合| 色94色欧美sute亚洲13| 日韩经典一区二区| 久久只精品国产| 成年人网站91| 亚洲成人自拍偷拍| 欧美大度的电影原声| 粉嫩欧美一区二区三区高清影视| 中文字幕一区二区三区四区| 91成人免费在线视频| 欧美aⅴ一区二区三区视频| 久久久精品2019中文字幕之3| aaa亚洲精品| 亚洲一区二区三区免费视频| 精品久久久久久亚洲综合网| 成人av在线电影| 午夜av一区二区| 国产亚洲欧美日韩俺去了| 一本大道久久a久久综合| 午夜婷婷国产麻豆精品| 久久蜜桃av一区二区天堂| 91污片在线观看| 免费在线观看日韩欧美| 国产精品久久久久影视| 538在线一区二区精品国产| 成人午夜视频在线| 亚洲精品久久久蜜桃| 精品99999| 欧美性猛交xxxxxx富婆| 国产成人av电影在线播放| 五月天久久比比资源色| 国产精品网曝门| 日韩三级.com| 91麻豆高清视频| 激情亚洲综合在线| 亚洲最色的网站| 国产精品美女久久久久久久 | 国产一区二区三区| 一区二区三区四区亚洲| 久久一二三国产| 91精品一区二区三区在线观看| 不卡欧美aaaaa| 激情伊人五月天久久综合|