得到目录类.rar

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 9
    下载次数
  • 2005-08-03 07:29
    上传日期
我所写的一个c++类,可以得到目录,只要复制过去就可以直接运行.
得到目录类.rar
  • 得到目录类
  • BrowseDirDialog.cpp
    2.3KB
  • BrowseDirDialog.h
    522B
  • www.pudn.com.txt
    218B
内容介绍
/////////////////////////////////////////////////////////////////////////// // BrowseDirDialog.cpp ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "BrowseDirDialog.h" #include "shlobj.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif //SHBrowseForFolder控件在初始化或选择改变后的回调函数 static int __stdcall BrowseCtrlCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { CBrowseDirDialog* pBrowseDirDialogObj = (CBrowseDirDialog*)lpData; if (uMsg == BFFM_INITIALIZED && !pBrowseDirDialogObj->m_SelDir.IsEmpty()) { ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)(LPCTSTR)(pBrowseDirDialogObj->m_SelDir)); } else // uMsg == BFFM_SELCHANGED { } return 0; } //构造函数 CBrowseDirDialog::CBrowseDirDialog() { } //析构函数 CBrowseDirDialog::~CBrowseDirDialog() { } int CBrowseDirDialog::DoBrowse() { LPMALLOC pMalloc; if (SHGetMalloc (&pMalloc)!= NOERROR) { return 0; } BROWSEINFO bInfo; LPITEMIDLIST pidl; ZeroMemory ( (PVOID) &bInfo,sizeof (BROWSEINFO)); if (!m_InitDir.IsEmpty ()) { OLECHAR olePath[MAX_PATH]; ULONG chEaten; ULONG dwAttributes; HRESULT hr; LPSHELLFOLDER pDesktopFolder; if (SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder))) { MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED, m_InitDir.GetBuffer(MAX_PATH), -1, olePath, MAX_PATH); m_InitDir.ReleaseBuffer (-1); //转换路径为ITEMLIST hr = pDesktopFolder->ParseDisplayName(NULL,NULL,olePath,&chEaten,&pidl, &dwAttributes); if (FAILED(hr)) { pMalloc ->Free (pidl); pMalloc ->Release (); return 0; } bInfo.pidlRoot = pidl; } } bInfo.hwndOwner = NULL; bInfo.pszDisplayName = m_Path.GetBuffer (MAX_PATH); bInfo.lpszTitle = (m_Title.IsEmpty()) ? "打开":m_Title; bInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS; bInfo.lpfn = BrowseCtrlCallback; //回调函数地址 bInfo.lParam = (LPARAM)this; if ((pidl = ::SHBrowseForFolder(&bInfo)) == NULL) { return 0; } m_Path.ReleaseBuffer(); m_ImageIndex = bInfo.iImage; if (::SHGetPathFromIDList(pidl,m_Path.GetBuffer(MAX_PATH)) == FALSE) { pMalloc ->Free(pidl); pMalloc ->Release(); return 0; } m_Path.ReleaseBuffer(); pMalloc ->Free(pidl); pMalloc ->Release(); return 1; }
评论
    相关推荐
    • MyRedsnake_veryhuo.com.rar
      让你不在怕指针,很清晰的介绍了指针的用法和区别各类指针
    • 539587.zip
      一个直接进行查询有关学生信息,源程有效尽显全面性
    • usinmchat.rar
      VB的聊天工具将服务端与客户端分开编写,使用机器需先打开服务端,
    • FEZE.rar
      在原来的基础上进行修改 1,就是把接受线程放在了chat,
    • oabookat.rar
      该文件是运用qtp软件进行对云图书管理系统的测试代码,用vbs脚本语言编写
    • UDP.1.zip
      UDP源程序,方便大家使用,在Eclipe上运行完整,主要包括服务器和服务器
    • COM-technology.zip
      COM技术内幕,熟悉多语言调用方式,代码和理论都比较详尽。
    • seryscn.rar
      类似163,263等使用的webmail系统,可以配合一个服务器对外提供Webmail服务
    • carisully.rar
      数字信道仿真,认真复习数据链路层内容,熟悉编程语言C,C++
    • database-exam.rar
      包含06、07、08、09、10年的数据库系统工程师的历年真题和答案详解,对于需要考软件考试的同学有非常大的帮助