⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brsfile.cpp

📁 This software performs code conversion of Chinese characters, including GB2312/GBK and BIG5. It a
💻 CPP
字号:
// brsfile.cpp

#include <windows.h>
#include <string.h>
#include "msc.h"
#include "brsfile.h"


#ifndef OFN_DONTADDTORECENT
#define OFN_DONTADDTORECENT   0x02000000    // Win2K or later only
#endif



//////////////////////////////
//          ANSI斉          //
//////////////////////////////



// 僼傽僀儖柤傪僽儔僂僘偟偰庢摼偡傞乮ANSI斉乯
// nMaxLen 偼 MAX_PATH 埲忋傪巜掕
// szFilter 偼 "暥帤楍\0僷僗儅僗僋\0\0" 傪巜掕
// 惉岟側傜 0 傪丄幐攕側傜 0 埲奜傪曉偡
int WINAPI BrowseForFileA ( HWND hWnd, char *szSelectedFile, int nMaxLen, const char *szInitialDir, const char *szTitle, const char *szFilter, int IsAllowMultiSelect ) {

   unsigned long dwFlags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR ;
   if ( IsWin2000orLater() ) dwFlags |= OFN_DONTADDTORECENT ;
   if ( IsAllowMultiSelect ) dwFlags |= OFN_ALLOWMULTISELECT ;

   // szInitialDir 偲 szSelectedFile 偑摨偠僶僢僼傽偩偭偨偲偒偺懳嶔
   char szInitialDirSaved [ MAX_PATH ] ;
   if ( szInitialDir ) {
      if ( strlen ( szInitialDir ) >= MAX_PATH ) szInitialDir = "" ;
      else szInitialDir = strcpy ( szInitialDirSaved, szInitialDir ) ;
   }

   if ( nMaxLen ) *szSelectedFile = 0 ;

   OPENFILENAMEA OpenFileName = { 0 } ;
   OpenFileName.lStructSize   = sizeof(OPENFILENAMEA) ;
   OpenFileName.hwndOwner     = hWnd ;
   OpenFileName.lpstrFile     = szSelectedFile ;
   OpenFileName.nMaxFile      = nMaxLen ;
   OpenFileName.Flags         = dwFlags ;
   OpenFileName.lpstrInitialDir = szInitialDir ;
   OpenFileName.lpstrTitle    = szTitle ;
   OpenFileName.lpstrFilter   = szFilter ;

   if ( GetOpenFileNameA ( & OpenFileName ) ) return 0 ;

   if ( nMaxLen ) *szSelectedFile = 0 ;
   if ( IsAllowMultiSelect && nMaxLen > 1 ) *( szSelectedFile + 1 ) = 0 ;

   return 1 ;
}



//////////////////////////////
//         UNICODE斉        //
//////////////////////////////



// 僼傽僀儖柤傪僽儔僂僘偟偰庢摼偡傞乮UNICODE斉乯
// nMaxLen 偼 MAX_PATH 埲忋傪巜掕
// szFilter 偼 "暥帤楍\0僷僗儅僗僋\0\0" 傪巜掕
// 惉岟側傜 0 傪丄幐攕側傜 0 埲奜傪曉偡
int WINAPI BrowseForFileW ( HWND hWnd, wchar_t *szSelectedFile, int nMaxLen, const wchar_t *szInitialDir, const wchar_t *szTitle, const wchar_t *szFilter, int IsAllowMultiSelect ) {

   unsigned long dwFlags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR ;
   if ( IsWin2000orLater() ) dwFlags |= OFN_DONTADDTORECENT ;
   if ( IsAllowMultiSelect ) dwFlags |= OFN_ALLOWMULTISELECT ;

   // szInitialDir 偲 szSelectedFile 偑摨偠僶僢僼傽偩偭偨偲偒偺懳嶔
   wchar_t szInitialDirSaved [ MAX_PATH ] ;
   if ( szInitialDir ) {
      if ( wcslen ( szInitialDir ) >= MAX_PATH ) szInitialDir = L"" ;
      else szInitialDir = wcscpy ( szInitialDirSaved, szInitialDir ) ;
   }

   if ( nMaxLen ) *szSelectedFile = 0 ;

   OPENFILENAMEW OpenFileName = { 0 } ;
   OpenFileName.lStructSize   = sizeof(OPENFILENAMEW) ;
   OpenFileName.hwndOwner     = hWnd ;
   OpenFileName.lpstrFile     = szSelectedFile ;
   OpenFileName.nMaxFile      = nMaxLen ;
   OpenFileName.Flags         = dwFlags ;
   OpenFileName.lpstrInitialDir = szInitialDir ;
   OpenFileName.lpstrTitle    = szTitle ;
   OpenFileName.lpstrFilter   = szFilter ;

   if ( GetOpenFileNameW ( & OpenFileName ) ) return 0 ;

   if ( nMaxLen ) *szSelectedFile = 0 ;
   if ( IsAllowMultiSelect && nMaxLen > 1 ) *( szSelectedFile + 1 ) = 0 ;

   return 1 ;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -