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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? shbrowse.cpp

?? 大量windows shell編程例子
?? CPP
字號(hào):
/*****************************************************************
*
*  Project.....:  Demonstrating SHBrowseForFolder
*  Application.:  SHBROWSE.exe
*  Module......:  SHBROWSE.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.
// In doing so we prevent the use of MFC classes.
#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")

#endif

/*---------------------------------------------------------------*/
//                        INCLUDE section
/*---------------------------------------------------------------*/
#include "SHBrowse.h"
#include <commctrl.h>
#include <shellapi.h>
#include <shlobj.h>
#include "resource.h"

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

// Functions
void OnInitDialog(HWND);
void OnOK(HWND);
HICON SHGetSystemIcon(int);
HRESULT SHPathToPIDL(LPCTSTR, LPITEMIDLIST*);

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

/*---------------------------------------------------------------*/
// 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 IDOK:
         OnOK(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)
{
   BROWSEINFO bi;
   TCHAR szTitle[MAX_PATH] = {0};
   TCHAR szPath[MAX_PATH] = {0};
   TCHAR szDisplay[MAX_PATH] = {0};
   LPITEMIDLIST pidl = NULL;
   LPMALLOC pMalloc = NULL;

   // Prepare the call
   ZeroMemory(&bi, sizeof(BROWSEINFO));
   bi.hwndOwner = hDlg;

   // Title and display name
   GetDlgItemText(hDlg, IDC_TITLE, szTitle, MAX_PATH);
   bi.lpszTitle = szTitle;
   bi.pszDisplayName = szDisplay;

   // Initial directory
   if(IsDlgButtonChecked(hDlg, IDC_USEPIDL))
   {
      HWND hwndCbo = GetDlgItem(hDlg, IDC_SPECIAL);
      int i = ComboBox_GetCurSel(hwndCbo);
      int nFolder = ComboBox_GetItemData(hwndCbo, i);

      SHGetSpecialFolderLocation(NULL, nFolder, &pidl);
      bi.pidlRoot = pidl;
   }
   else
   {
      // Convert a path name to a PIDL
      GetDlgItemText(hDlg, IDC_FOLDER, szPath, MAX_PATH);
      if(lstrlen(szPath) == 0)
         GetCurrentDirectory(MAX_PATH, szPath);
      SHPathToPIDL(szPath, &pidl);
      bi.pidlRoot = pidl;
   }

   // Collect the flags
   UINT uiFlags = 0;
   if(IsDlgButtonChecked(hDlg, IDC_NOBELOW))
      uiFlags |= BIF_DONTGOBELOWDOMAIN;
   if(IsDlgButtonChecked(hDlg, IDC_ONLYDIRS))
      uiFlags |= BIF_RETURNONLYFSDIRS;
   if(IsDlgButtonChecked(hDlg, IDC_INCLUDEFILES))
      uiFlags |= BIF_BROWSEINCLUDEFILES;
   if(IsDlgButtonChecked(hDlg, IDC_EDITBOX))
      uiFlags |= BIF_EDITBOX | BIF_VALIDATE;
   if(IsDlgButtonChecked(hDlg, IDC_STATUS))
      uiFlags |= BIF_STATUSTEXT;
   if(IsDlgButtonChecked(hDlg, IDC_COMPUTER))
      uiFlags |= BIF_BROWSEFORCOMPUTER;
   bi.ulFlags = uiFlags;

   // Set up the callback
   bi.lpfn = BrowseCallbackProc;
   bi.lParam = 0;

   // Call the function
   LPITEMIDLIST pidlFolder = SHBrowseForFolder(&bi);
   if(pidlFolder == NULL)
      return;

   // Display the results...
   // Show the display name
   SetDlgItemText(hDlg, IDC_DISPLAYNAME, bi.pszDisplayName);

   // Show the path name
   SHGetPathFromIDList(pidlFolder, szPath);
   SetDlgItemText(hDlg, IDC_PATHNAME, szPath);

   // Show the folder icon
   HICON hIcon = SHGetSystemIcon(bi.iImage);
   SendDlgItemMessage(hDlg, IDI_ICON, STM_SETICON, reinterpret_cast<WPARAM>(hIcon), 0);

   // Free
   SHGetMalloc(&pMalloc);
   pMalloc->Free(pidl);
   pMalloc->Free(pidlFolder);
   pMalloc->Release();
}


/*---------------------------------------------------------------*/
// Procedure...: OnInitDialog()
// Description.: Initialize the dialog
// INPUT.......: HWND
// OUTPUT......: void
/*---------------------------------------------------------------*/
void OnInitDialog(HWND hDlg)
{
   // 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));

   // Fill the combo box
   HWND hwndCbo = GetDlgItem(hDlg, IDC_SPECIAL);
   int i = ComboBox_AddString(hwndCbo, "Control Panel");
   ComboBox_SetItemData(hwndCbo, i, CSIDL_CONTROLS);
   i = ComboBox_AddString(hwndCbo, "Favorites");
   ComboBox_SetItemData(hwndCbo, i, CSIDL_FAVORITES);
   i = ComboBox_AddString(hwndCbo, "Printers");
   ComboBox_SetItemData(hwndCbo, i, CSIDL_PRINTERS);
   i = ComboBox_AddString(hwndCbo, "Fonts");
   ComboBox_SetItemData(hwndCbo, i, CSIDL_FONTS);
   i = ComboBox_AddString(hwndCbo, "SendTo");
   ComboBox_SetItemData(hwndCbo, i, CSIDL_SENDTO);
   ComboBox_SetCurSel(hwndCbo, 0);
}


int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM dwData)
{
   switch(uMsg)
   {
   case BFFM_INITIALIZED:
      {
         // Remove the ? from the caption
         DWORD dwStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
         SetWindowLong(hwnd, GWL_EXSTYLE, dwStyle & ~WS_EX_CONTEXTHELP);

         // Add a 3D border to the status text
         HWND hwndLabel = GetDlgItem(hwnd, 0x3743);

         // Check if it is a valid window
         if(IsWindow(hwndLabel))
         {
            // Now check if it is window of class 'static'
            TCHAR szClass[MAX_PATH] = {0};
            GetClassName(hwndLabel, szClass, MAX_PATH);
            if(lstrcmpi(szClass, __TEXT("static")))
               break;
         }
         else
            break;

         dwStyle = GetWindowLong(hwndLabel, GWL_EXSTYLE);
         SetWindowLong(hwndLabel, GWL_EXSTYLE, dwStyle | WS_EX_STATICEDGE);
         SetWindowPos(hwndLabel, NULL, 0, 0, 0, 0,
                                   SWP_NOSIZE | SWP_NOMOVE | SWP_DRAWFRAME);
      }
      break;

   case BFFM_SELCHANGED:
      {
         TCHAR szText[MAX_PATH] = {0};
         SHGetPathFromIDList(reinterpret_cast<LPITEMIDLIST>(lParam), szText);
         SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, reinterpret_cast<LPARAM>(szText));
      }
      break;

   case BFFM_VALIDATEFAILED:
      Msg("\"%s\" is a wrong path name.", reinterpret_cast<LPTSTR>(lParam));
      return 1;
   }

   return 0;
}


HICON SHGetSystemIcon(int iIconIndex)
{
   SHFILEINFO sfi;
   ZeroMemory(&sfi, sizeof(SHFILEINFO));

   // We aren't specifying a file name, since all we want is the handle...
   HIMAGELIST himl = reinterpret_cast<HIMAGELIST>(SHGetFileInfo(
      "*.*", 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SYSICONINDEX));

   HICON hIcon = ImageList_ExtractIcon(0, himl, iIconIndex);
   return hIcon;
}


HRESULT SHPathToPIDL(LPCTSTR szPath, LPITEMIDLIST* ppidl)
{
   LPSHELLFOLDER pShellFolder = NULL;
   OLECHAR wszPath[MAX_PATH] = {0};
   ULONG nCharsParsed = 0;

   // Get an IShellFolder interface pointer
   HRESULT hr = SHGetDesktopFolder(&pShellFolder);
   if(FAILED(hr))
      return hr;

   // Convert the path name to Unicode
   MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, wszPath, MAX_PATH);

   // Call ParseDisplayName() to do the job
   hr = pShellFolder->ParseDisplayName(NULL, NULL, wszPath, &nCharsParsed, ppidl, NULL);

   // Clean up
   pShellFolder->Release();
   return hr;
}

/*  End of file: SHBrowse.c  */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久毛片| 亚洲图片你懂的| 97久久精品人人澡人人爽| 亚洲一区二区欧美日韩| 久久久亚洲精品一区二区三区| 91福利国产成人精品照片| 国产ts人妖一区二区| 美腿丝袜在线亚洲一区| 亚洲男同性恋视频| 日本一区二区三区视频视频| 日韩天堂在线观看| 欧美这里有精品| 99热精品一区二区| 国产成人免费9x9x人网站视频| 三级影片在线观看欧美日韩一区二区| 中文天堂在线一区| 国产欧美日韩在线| 久久亚洲一区二区三区四区| 欧美精品久久99久久在免费线| 色综合久久综合网97色综合| 国产成人福利片| 国产精品综合二区| 久久99最新地址| 久久精品国产精品亚洲红杏| 日韩国产欧美三级| 亚洲成av人片在线| 亚洲一区二区精品3399| 亚洲欧美另类图片小说| 亚洲欧美激情一区二区| 一区二区中文字幕在线| 中文字幕亚洲一区二区va在线| 国产欧美一区二区三区网站| 久久久久久久av麻豆果冻| 久久综合九色综合97婷婷女人| 日韩欧美成人激情| 久久综合久色欧美综合狠狠| 欧美xxxx在线观看| 精品国产sm最大网站免费看| 精品少妇一区二区| 久久亚区不卡日本| 久久精品人人爽人人爽| 国产欧美精品一区aⅴ影院| 久久精品人人做人人综合| 久久影院电视剧免费观看| 久久综合久久鬼色中文字| www精品美女久久久tv| 久久综合精品国产一区二区三区 | 久久久久久久精| 久久久久久一级片| 欧美激情中文字幕一区二区| 国产精品久久久久久久久免费相片 | 成人性视频网站| 成人av网站免费| 97se亚洲国产综合自在线不卡 | 色伊人久久综合中文字幕| 91麻豆swag| 精品婷婷伊人一区三区三| 欧美老女人第四色| 精品国精品自拍自在线| 国产亚洲成aⅴ人片在线观看| 国产亚洲综合在线| 综合av第一页| 视频一区二区欧美| 极品瑜伽女神91| 99综合电影在线视频| 欧美亚洲动漫精品| 精品国产亚洲一区二区三区在线观看| 久久久久久亚洲综合影院红桃| 欧美激情一区在线| 一区二区三区日韩精品| 日产国产高清一区二区三区| 九色porny丨国产精品| 粉嫩aⅴ一区二区三区四区 | 成人性视频网站| 欧美三级一区二区| 久久亚洲一区二区三区四区| 亚洲欧美日韩在线不卡| 男女激情视频一区| www.欧美日韩| 欧美一区二区三区白人| 国产精品久久久久aaaa樱花| 性做久久久久久| www.亚洲人| 日韩精品影音先锋| 一区二区在线观看视频| 经典三级在线一区| 欧美日韩一区二区不卡| 久久精品视频一区二区三区| 亚洲第一综合色| 国产 日韩 欧美大片| 欧美精品aⅴ在线视频| 国产日韩欧美精品综合| 奇米777欧美一区二区| 91视频.com| 久久久青草青青国产亚洲免观| 亚洲一区在线视频观看| 国产风韵犹存在线视精品| 欧美怡红院视频| 国产精品久久免费看| 麻豆免费精品视频| 欧美日韩视频一区二区| 中文字幕日韩精品一区| 国产麻豆精品一区二区| 51精品秘密在线观看| 亚洲桃色在线一区| 国产成人精品影院| 日韩精品自拍偷拍| 亚洲v精品v日韩v欧美v专区| 不卡一区二区中文字幕| 国产清纯白嫩初高生在线观看91 | 久久久久久久久久久久久女国产乱| 一区二区三区在线观看欧美 | 欧美一区二区美女| 一区二区高清免费观看影视大全| 国产成人免费视频网站| 精品国产欧美一区二区| 久久国产生活片100| 欧美日韩国产一级| 亚洲自拍另类综合| 色婷婷综合视频在线观看| 欧美激情中文不卡| 丰满少妇在线播放bd日韩电影| 日韩视频一区二区三区在线播放 | 性做久久久久久| 欧美亚洲综合色| 亚洲精品成人在线| 97国产一区二区| 亚洲欧洲制服丝袜| 色综合亚洲欧洲| 亚洲欧美经典视频| 在线中文字幕一区| 一区二区视频免费在线观看| 99国产精品久久久久久久久久 | 亚洲视频图片小说| av福利精品导航| 亚洲日本中文字幕区| 色婷婷久久久久swag精品| 亚洲欧美日韩在线| 日本乱人伦aⅴ精品| 一区二区三区中文在线| 在线观看成人免费视频| 亚洲影院在线观看| 国产亚洲欧美一区在线观看| 精品在线一区二区三区| www久久精品| 粉嫩绯色av一区二区在线观看| 国产精品午夜春色av| av电影在线观看完整版一区二区| 亚洲你懂的在线视频| 欧美天堂一区二区三区| 偷拍与自拍一区| 欧美www视频| 国产成人午夜高潮毛片| 亚洲男同1069视频| 欧美精品v国产精品v日韩精品 | 中文字幕一区二区三区四区| 99久久精品国产观看| 亚洲综合色婷婷| 欧美丰满嫩嫩电影| 国产精品996| 亚洲三级在线播放| 678五月天丁香亚洲综合网| 精品一区二区三区香蕉蜜桃| 国产亚洲欧美色| 欧美性感一类影片在线播放| 蜜桃视频在线观看一区二区| 久久久久国产精品免费免费搜索| www.综合网.com| 日日摸夜夜添夜夜添国产精品| 欧美va亚洲va在线观看蝴蝶网| 福利一区二区在线| 一区二区三区美女| 欧美电影在哪看比较好| 国产精品一级二级三级| 亚洲综合久久久| 精品蜜桃在线看| 91久久香蕉国产日韩欧美9色| 首页国产丝袜综合| 国产日韩欧美制服另类| 欧美无人高清视频在线观看| 国产真实精品久久二三区| 亚洲女同ⅹxx女同tv| 日韩一区二区三区在线观看| 成人小视频在线| 日韩av电影免费观看高清完整版| 中日韩av电影| 日韩欧美一区二区三区在线| 97久久超碰国产精品| 激情五月播播久久久精品| 亚洲女厕所小便bbb| 久久精品欧美一区二区三区不卡| 欧美天堂一区二区三区| 成人精品视频网站| 麻豆成人av在线| 亚洲一区二区三区视频在线 | 亚洲伊人色欲综合网| 日本一区二区综合亚洲| 欧美一区二区福利视频| 色综合久久久久综合体桃花网| 国产真实乱对白精彩久久|