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

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

?? version.cpp

?? 大量windows shell編程例子
?? CPP
字號:
/*****************************************************************
*
*  Project.....:  Version Checker
*  Application.:  VERSION.exe
*  Module......:  VERSION.cpp
*  Description.:  Application main module
*  Compiler....:  MS Visual C++
*  Written by..:  D. Esposito
*  Environment.:  Windows 9x/NT
*
******************************************************************/

/*---------------------------------------------------------------*/
//                        PRAGMA section
/*---------------------------------------------------------------*/
// Force the linker to add the following libraries.
#ifdef _MSC_VER

#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "comctl32.lib")
#pragma comment(lib, "comdlg32.lib")
#pragma comment(lib, "version.lib")

#endif

/*---------------------------------------------------------------*/
//                        INCLUDE section
/*---------------------------------------------------------------*/
#include "Version.h"
#include <commctrl.h>
#include <commdlg.h>
#include <shellapi.h>
#include "resource.h"

/*---------------------------------------------------------------*/
//                        GLOBAL section
/*---------------------------------------------------------------*/
// Data
HICON g_hIconLarge;
HICON g_hIconSmall;

const int BUFSIZE = 1024;
const int MSGSIZE = 40;

// Functions
void OnInitDialog(HWND);
void OnOK(HWND);
void OnBrowse(HWND, WPARAM);
void DoGetVersionInfo(HWND);

DWORD SHGetVersionOfFile(LPTSTR, LPTSTR, LPINT, int);

// Callbacks
BOOL CALLBACK APP_DlgProc(HWND, UINT, WPARAM, LPARAM);

// List view helpers
void MakeReportView(HWND hwndList, LPTSTR* psz, int iNumOfCols)
{
   RECT rc;

   DWORD dwStyle = GetWindowStyle(hwndList);
   SetWindowLong(hwndList, GWL_STYLE, dwStyle | LVS_REPORT);
   GetClientRect(hwndList, &rc);

   // Handle pairs of entries. Array size is assumed to be 2 * iNumOfCols
   for(int i = 0 ; i < 2 * iNumOfCols ; i = i + 2)
   {
      LV_COLUMN lvc;
      ZeroMemory(&lvc, sizeof(LV_COLUMN));
      lvc.mask = LVCF_TEXT | LVCF_WIDTH;
      lvc.pszText = psz[i];
      if(reinterpret_cast<int>(psz[i + 1]) == 0)
         lvc.cx = rc.right / iNumOfCols;
      else
         lvc.cx = reinterpret_cast<int>(psz[i + 1]);

      ListView_InsertColumn(hwndList, i, &lvc);
   }
   return;
}


void AddStringToReportView(HWND hwndList, LPTSTR psz, int iNumOfCols)
{
   LV_ITEM lvi;
   ZeroMemory(&lvi, sizeof(LV_ITEM));
   lvi.mask = LVIF_TEXT;
   lvi.pszText = psz;
   lvi.cchTextMax = lstrlen(psz);
   lvi.iItem = 0;
   ListView_InsertItem(hwndList, &lvi);

   // Other columns
   for(int i = 1 ; i < iNumOfCols ; i++)
   {
      psz += lstrlen(psz) + 1;
      ListView_SetItemText(hwndList, 0, i, psz);
   }
   return;
}

/*---------------------------------------------------------------*/
// Procedure....: WinMain()
// Description..: Entry point in any Windows program
// Input........: HINSTANCE, HINSTANCE, LPSTR, int
// Output.......: int
/*---------------------------------------------------------------*/
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevious, 
                     LPTSTR lpsz, int iCmd)
{
   // Save global data
   g_hIconLarge = static_cast<HICON>(
              LoadImage(hInstance, "APP_ICON", IMAGE_ICON,
              GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CXICON), 0));
   g_hIconSmall = static_cast<HICON>(
              LoadImage(hInstance, "APP_ICON", IMAGE_ICON,
              GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CXSMICON), 0));

   // Enable common controls
   INITCOMMONCONTROLSEX iccex;
   iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
   iccex.dwICC = ICC_WIN95_CLASSES;
   InitCommonControlsEx(&iccex);

   // Run main dialog
   BOOL b = DialogBox(hInstance, "DLG_MAIN", NULL, APP_DlgProc);

   // Exit
   DestroyIcon(g_hIconLarge);
   DestroyIcon(g_hIconSmall);
   return b;
}


/*---------------------------------------------------------------*/
// Procedure....: APP_DlgProc()
// Description..: Responds to all messages sent to the dialog
// Input........: HWND, UINT, WPARAM, LPARAM
// Output.......: BOOL
/*---------------------------------------------------------------*/
BOOL CALLBACK APP_DlgProc(HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
   switch(uiMsg)
   {
   case WM_INITDIALOG:
      OnInitDialog(hDlg);
      break;

   case WM_COMMAND:
      switch(wParam)
      {
      case IDC_BROWSE:
         OnBrowse(hDlg, IDC_FILENAME);
         return FALSE;
      
	  case IDOK:
         DoGetVersionInfo(hDlg);
         return FALSE;

      case IDCANCEL:
         EndDialog(hDlg, FALSE);
         return FALSE;
      }
      break;
   }

   return FALSE;
}


/*****************************************************************
*
*  Internals:
*    - OnOK()
*    - OnInitDialog()
*
******************************************************************/

/*---------------------------------------------------------------*/
// Procedure...: OnOK()
// Description.: Do something
// INPUT.......: HWND
// OUTPUT......: void
/*---------------------------------------------------------------*/
void OnOK(HWND hDlg)
{
   return;
}


/*---------------------------------------------------------------*/
// Procedure...: OnInitDialog()
// Description.: Initialize the dialog
// INPUT.......: HWND
// OUTPUT......: void
/*---------------------------------------------------------------*/
void OnInitDialog(HWND hDlg)
{
   // Initialize the report view with 2 columns: File and Version
   HWND hwndList = GetDlgItem(hDlg, IDC_VIEW);
   LPTSTR psz[] = { __TEXT("File"), reinterpret_cast<TCHAR*>(350),
                    __TEXT("Version"), reinterpret_cast<TCHAR*>(95) };
   MakeReportView(hwndList, psz, 2);

   // Set the icons (T/F as to Large/Small icon)
   SendMessage(hDlg, WM_SETICON, FALSE, reinterpret_cast<LPARAM>(g_hIconSmall));
   SendMessage(hDlg, WM_SETICON, TRUE, reinterpret_cast<LPARAM>(g_hIconLarge));
}


void OnBrowse(HWND hDlg, WPARAM wID)
{
   TCHAR szFile[MAX_PATH] = {0};
   TCHAR szWinDir[MAX_PATH] = {0};
   GetWindowsDirectory(szWinDir, MAX_PATH);

   OPENFILENAME ofn;
   ZeroMemory(&ofn, sizeof(OPENFILENAME));
   ofn.lStructSize = sizeof(OPENFILENAME);
   ofn.lpstrFilter = __TEXT("Executable\0*.exe;*.dll;*.drv;*.vxd\0");
   ofn.nMaxFile = MAX_PATH;
   ofn.lpstrInitialDir = szWinDir;
   ofn.lpstrFile = szFile;

   if(!GetOpenFileName(&ofn))
      return;
   else
      SetDlgItemText(hDlg, wID, ofn.lpstrFile);
}


void DoGetVersionInfo(HWND hDlg)
{
   TCHAR szTemp[MAX_PATH] = {0};
   HWND hwndList = GetDlgItem(hDlg, IDC_VIEW);
   GetDlgItemText(hDlg, IDC_FILENAME, szTemp, MAX_PATH);

   // Create the string for the list view
   TCHAR pszBuf[BUFSIZE] = {0};
   LPTSTR psz = pszBuf;

   lstrcpy(psz, szTemp);
   lstrcat(psz, __TEXT("\0"));
   psz += lstrlen(psz) + 1;

   // Get the version info
   TCHAR szInfo[MSGSIZE] = {0};
   SHGetVersionOfFile(szTemp, szInfo, NULL, 0);
   lstrcpy(psz, szInfo);
   lstrcat(psz, __TEXT("\0"));
   psz += lstrlen(psz) + 1;

   // Add the two column text
   AddStringToReportView(hwndList, pszBuf, 2);
}


DWORD SHGetVersionOfFile(LPTSTR szFile, LPTSTR szBuf, LPINT lpiBuf, int iNumOfFields)
{
   DWORD dwUseless = 0;
   UINT iBufSize = 0;
   VS_FIXEDFILEINFO* lpFFI = NULL;
   TCHAR s[MAX_PATH] = {0};

   DWORD dwLen = GetFileVersionInfoSize(szFile, &dwUseless);
   if(dwLen == 0)
   {
      if(szBuf)
         lstrcpy(szBuf, __TEXT("<unknown>"));
      return 0;
   }

   LPVOID lpVI = GlobalAllocPtr(GHND, dwLen);
   GetFileVersionInfo(szFile, NULL, dwLen, lpVI);
   VerQueryValue(lpVI, __TEXT("\\"), reinterpret_cast<LPVOID*>(&lpFFI), &iBufSize);
   DWORD dwVer1 = lpFFI->dwFileVersionMS;
   DWORD dwVer2 = lpFFI->dwFileVersionLS;
   GlobalFreePtr(lpVI);

   // Fill return buffers
   if(szBuf != NULL)
   {
      wsprintf(s, __TEXT("%d.%d.%d.%d"), HIWORD(dwVer1), LOWORD(dwVer1), HIWORD(dwVer2), LOWORD(dwVer2));
      lstrcpy(szBuf, s);
   }

   if(lpiBuf != NULL)
   {
      for(int i = 0 ; i < iNumOfFields ; i++)
      {
         if(i == 0)
            lpiBuf[i] = HIWORD(dwVer1);
         if(i == 1)
            lpiBuf[i] = LOWORD(dwVer1);
         if(i == 2)
            lpiBuf[i] = HIWORD(dwVer2);
         if(i == 3)
            lpiBuf[i] = LOWORD(dwVer2);
      }
   }

   return dwVer1;
}


/*  End of file: Version.cpp  */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩在线| 欧美极品少妇xxxxⅹ高跟鞋| 日韩美女视频在线| 久久久蜜桃精品| 亚洲国产你懂的| 成人精品国产免费网站| 欧美男生操女生| 亚洲欧美在线另类| 国产伦精品一区二区三区视频青涩 | 亚洲一二三专区| 国内一区二区在线| 56国语精品自产拍在线观看| 中文字幕亚洲一区二区av在线 | 成人高清视频在线| 欧美伦理视频网站| 亚洲一区二区三区四区五区黄| 欧美精品一区二区三| 亚洲成人资源网| 91成人免费网站| 亚洲美女屁股眼交3| 成人动漫一区二区在线| 日韩欧美国产一区二区三区 | 日韩欧美在线网站| 午夜私人影院久久久久| 色哟哟在线观看一区二区三区| 99久久综合狠狠综合久久| 精品处破学生在线二十三| 欧美aa在线视频| 欧美成人性战久久| 久久精品国产第一区二区三区| 精品一二三四在线| 精品处破学生在线二十三| 久国产精品韩国三级视频| 日韩欧美黄色影院| 国产综合色产在线精品| 久久伊99综合婷婷久久伊| 伦理电影国产精品| 欧美成人精品高清在线播放| 麻豆91在线看| 精品乱人伦小说| 国产成人亚洲综合a∨婷婷| 国产午夜三级一区二区三| 高清国产午夜精品久久久久久| 色8久久人人97超碰香蕉987| 亚洲精品伦理在线| 欧美亚洲一区二区在线| 亚洲一卡二卡三卡四卡无卡久久 | 成人开心网精品视频| 中文字幕欧美激情| av在线不卡网| 性做久久久久久久久| 日韩午夜av电影| 国产另类ts人妖一区二区| 亚洲欧洲99久久| 欧美日韩国产综合一区二区| 婷婷中文字幕综合| 2024国产精品| 91网上在线视频| 日韩电影在线看| 欧美精品一区二区三区高清aⅴ | 亚洲欧洲无码一区二区三区| 91视频你懂的| 日韩国产欧美视频| 国产精品视频一区二区三区不卡| 日韩av电影天堂| 国产日韩综合av| 欧美日韩高清一区二区| 国产精品自拍三区| 亚洲精品中文字幕在线观看| 3d动漫精品啪啪1区2区免费| 国产成人免费视频一区| 亚洲成av人片一区二区| 久久精品一区蜜桃臀影院| 在线免费一区三区| 国产一区欧美日韩| 中文字幕在线观看一区| 国产原创一区二区| 9191精品国产综合久久久久久| 精品电影一区二区三区| 国产一区美女在线| 亚洲欧洲在线观看av| 91精品国产欧美日韩| 99久久精品国产精品久久| 亚洲国产乱码最新视频| 欧美极品美女视频| 日韩色视频在线观看| 在线视频国内自拍亚洲视频| 国产精品一区二区在线播放| 日韩中文字幕一区二区三区| 国产精品电影一区二区三区| 日韩一区二区三区电影| 在线亚洲高清视频| 成人免费视频视频在线观看免费| 久久精品一二三| 欧美人牲a欧美精品| 不卡大黄网站免费看| 亚洲视频一区在线| 欧美欧美欧美欧美| 午夜精品国产更新| 亚洲综合小说图片| 亚洲精品自拍动漫在线| 国产精品美女久久久久久久久| 成人网页在线观看| 国产一区二三区好的| 日本欧美久久久久免费播放网| 日韩精品最新网址| 欧美日韩精品一区二区三区四区| 免费成人在线观看| 天天色天天操综合| 日韩成人免费在线| 日韩高清一级片| 日韩 欧美一区二区三区| 亚洲一区精品在线| 亚洲小说欧美激情另类| 亚洲一二三四区不卡| 亚洲国产精品自拍| 图片区日韩欧美亚洲| 午夜视频一区二区三区| 奇米色一区二区三区四区| 婷婷综合久久一区二区三区| 日韩av中文在线观看| 日本午夜精品一区二区三区电影| 久久一日本道色综合| 久久精品亚洲一区二区三区浴池 | 国产乱子伦视频一区二区三区| 国产精品视频观看| 国产精品久线观看视频| 日韩毛片精品高清免费| 在线不卡中文字幕| 久久色在线观看| 精品国产一区二区亚洲人成毛片 | 国产在线不卡视频| 国产黄色精品视频| av电影在线观看完整版一区二区| 午夜日韩在线观看| 麻豆国产精品官网| 国产精品亚洲综合一区在线观看| 五月综合激情日本mⅴ| 国产一区二区导航在线播放| 国产盗摄精品一区二区三区在线 | 国产精品福利av | 91激情五月电影| 欧美人妇做爰xxxⅹ性高电影| 成人亚洲一区二区一| 色天天综合久久久久综合片| 欧美一区二区三区视频在线观看| 91理论电影在线观看| 欧美日韩国产综合视频在线观看 | 一区二区三区日韩精品| 一区二区日韩av| 久久综合久久鬼色| 国产精品萝li| 亚欧色一区w666天堂| 国产一级精品在线| 欧美在线free| 久久综合99re88久久爱| 亚洲欧美一区二区不卡| 日本三级韩国三级欧美三级| 国产激情91久久精品导航| 欧洲一区二区三区免费视频| 精品久久久久一区| 亚洲一区中文在线| 国产激情91久久精品导航 | 国内精品国产成人国产三级粉色| 亚洲图片欧美综合| 国产99久久久精品| 欧美网站大全在线观看| 国产校园另类小说区| 首页国产丝袜综合| 国v精品久久久网| 国产成人亚洲精品狼色在线| 欧美三级欧美一级| 91麻豆精品国产91久久久久| 亚洲精品一区二区三区福利| 欧美一卡二卡三卡四卡| 日韩欧美专区在线| 亚洲精品一二三区| 国产白丝网站精品污在线入口 | 欧美刺激午夜性久久久久久久| 欧美在线免费视屏| 2023国产精品视频| 美女视频一区在线观看| 欧美性感一区二区三区| 国产精品久久久久久亚洲伦| 国内外精品视频| 欧美v日韩v国产v| 人人精品人人爱| 制服丝袜亚洲播放| 亚洲aaa精品| 欧美日韩一区二区三区四区| 亚洲欧美日韩一区| 色综合视频一区二区三区高清| 欧洲视频一区二区| 亚洲综合久久久| 日本精品一区二区三区高清| caoporn国产一区二区| 夜夜爽夜夜爽精品视频| 日韩一区二区免费高清| 天天射综合影视| 91在线视频播放地址|