• 打开文件夹


     1 BOOL OpenFilePath( LPCTSTR lpszFile )
     2 {
     3     HINSTANCE hInst;
     4     HRESULT hr;
     5     LPITEMIDLIST pidFile;
     6     TCHAR szFile[MAX_PATH];
     7     USES_CONVERSION;
     8 
     9     if ( lpszFile == NULL || *lpszFile == 0 )
    10     {
    11         return FALSE;
    12     }
    13 
    14     memcpy( szFile, lpszFile, sizeof( szFile ) );
    15 
    16     if ( ::PathFileExists( szFile ) )
    17     {
    18         hr = ::SHParseDisplayName( T2W( szFile ), NULL, &pidFile, 0, NULL );
    19         if ( hr != S_OK )
    20         {
    21             return FALSE;
    22         }
    23 
    24         hr = ::SHOpenFolderAndSelectItems( pidFile, 0, NULL, 0 );
    25         if ( hr != S_OK )
    26         {
    27             ::CoTaskMemFree( pidFile );
    28             return FALSE;
    29         }
    30 
    31         ::CoTaskMemFree( pidFile );
    32     }
    33     else
    34     {
    35         ::PathRemoveFileSpec( szFile );
    36 
    37         if ( !::PathIsDirectory( szFile ) )
    38         {
    39             return FALSE;
    40         }
    41 
    42         hInst = ::ShellExecute( NULL, NULL, NULL, NULL, szFile, SW_SHOWNORMAL );
    43         if ( ( DWORD )hInst <= 32 )
    44         {
    45             return FALSE;
    46         }
    47     }
    48 
    49     return TRUE;
    50 }
  • 相关阅读:
    jqmodal遮罩层的实现
    让Editplus和SVN集成
    asp.net很有用的字符串操作类
    TCP socket编程
    Adroid: ProgressBar 的使用
    在想的事情......
    I'm new to CNBlogs!
    压力
    开心工作
    feature
  • 原文地址:https://www.cnblogs.com/javado/p/2809860.html
Copyright © 2020-2023  润新知