📄 chnconv_opt.cpp
字号:
// chnconv_opt.cpp
#include <windows.h>
#include "msc.h"
#include "codepage.h"
#include "resource.h"
#include "chnconv.h"
#define CHNCONV_OPT_GLOBAL(type,name) extern type name ; type name = (type) 0
#define CHNCONV_OPT_GLOBAL_INIT(type,name,init) extern type name ; type name = init
#define CHNCONV_OPT_GLOBAL_ARRAY(type,name,size) extern type name [] ; type name [size] = { 0 }
// C++ 偱偼 const 偼僨僼僅儖僩偱偼撪晹寢崌偵側傞偺偱丄extern 偱偺愰尵傕昁梫
#include "chnconv_opt.h"
////////////////////////////////////////
// 僆僾僔儑儞僼傽僀儖偺撉傒庢傝 //
////////////////////////////////////////
// 惍悢偺僆僾僔儑儞
const OPTION_INTEGER OptionIntegerList [] = {
{ & IsGb2big5N, "IsGb2big5N" },
{ & IsBig52gbN, "IsBig52gbN" },
{ & IsGb2cwN, "IsGb2cwN" },
{ & IsSenceCwFanti, "IsSenceCwFanti" },
{ & IsCwTxtFanti, "IsCwTxtFanti" },
{ & IsOutputNumber, "IsOutputNumber" },
{ & IsInputNumber, "IsInputNumber" },
{ & IsOneQuestionMark, "IsOneQuestionMark" },
{ & IsConvertQuotation, "IsConvertQuotation" },
{ & IsUseSameFont, "IsUseSameFont" },
{ & IsOutputCwNewFont, "IsOutputCwNewFont" },
{ & IsTxtUnicodeHtml, "IsTxtUnicodeHtml" },
{ & IsNoUseUnicode, "IsNoUseUnicode" },
{ & IsConvertCjkEx, "IsConvertCjkEx" },
{ & IsLinshiDaimaToCjkEx, "IsLinshiDaimaToCjkEx" },
{ & IsCjkExToLinshiDaima, "IsCjkExToLinshiDaima" },
{ & nTmFontSize, "TmFontSize" },
{ & IsWriteTmComment, "IsWriteTmComment" } ,
#ifdef CHNCONV_EXE
{ & IsNoConfirm, "IsNoConfirm" },
{ & IsNoRecycle, "IsNoRecycle" },
{ & IsNoMessage, "IsNoMessage" },
{ & IsNoAddExtension, "IsNoAddExtension" },
{ & IsConfirmOnExit, "IsConfirmOnExit" },
{ & nSavedMuiLangId, "MuiLangId" },
{ & nSavedSrcType, "SrcType" },
{ & nSavedDstType, "DstType" },
{ & nSavedSrcCode, "SrcCode" },
{ & nSavedDstCode, "DstCode" },
{ & nSavedWindowX, "WindowX" },
{ & nSavedWindowY, "WindowY" },
#endif
} ;
const int OPTION_INTEGER_LIST_NELEM = NELEMOF ( OptionIntegerList ) ;
// 暥帤楍偺僆僾僔儑儞 (ANSI)
const OPTION_STRING_A OptionStringListA [] = {
{ szGbFont, "GbFont", FONTNAME_MAX },
{ szGbGothicFont, "GbGothicFont", FONTNAME_MAX },
{ szBig5Font, "Big5Font", FONTNAME_MAX },
{ szBig5GothicFont, "Big5GothicFont", FONTNAME_MAX },
{ szPinyinFont, "PinyinFont", FONTNAME_MAX },
{ szPinyinGothicFont,"PinyinGothicFont",FONTNAME_MAX },
#ifdef CHNCONV_EXE
{ szBrowsePathA, "BrowsePathA", MAX_PATH },
#endif
} ;
const int OPTION_STRING_LIST_A_NELEM = NELEMOF ( OptionStringListA ) ;
#if defined CHNCONV_EXE || defined SETUP_C
// 暥帤楍偺僆僾僔儑儞 (UNICODE)
const OPTION_STRING_W OptionStringListW [] = {
{ szBrowsePathW, "BrowsePathW", MAX_PATH },
} ;
const int OPTION_STRING_LIST_W_NELEM = NELEMOF ( OptionStringListW ) ;
#endif
////////////////////////////////////////
// 僐乕僪儁乕僕偺慖戰 //
////////////////////////////////////////
#ifdef CHNCONV_EXE
// 僐乕僪儁乕僕偺慖戰
const CODEPAGE AvailableCodeList [] = {
{ CP_JAPANESE_CW, IDS_CP_JAPANESE_CW },
{ CP_JAPANESE_NH, IDS_CP_JAPANESE_NH },
{ CP_JAPANESE_CWN, IDS_CP_JAPANESE_CWN },
{ CP_JAPANESE_ZQ, IDS_CP_JAPANESE_ZQ },
{ CP_JAPANESE_CX, IDS_CP_JAPANESE_CX },
{ CP_JAPANESE_ZJ, IDS_CP_JAPANESE_ZJ },
{ CP_JAPANESE_TM, IDS_CP_JAPANESE_TM },
{ CP_JAPANESE_FW, IDS_CP_JAPANESE_FW },
} ;
const int AVAILABLE_CODE_LIST_NELEM = NELEMOF ( AvailableCodeList ) ;
#endif
////////////////////////////////////////
// 僆僾僔儑儞偺夝庍 //
////////////////////////////////////////
// 僆僾僔儑儞偺夝庍
unsigned long TranslateConversionMode ( int nSrcCodePage, int nDstCodePage ) {
unsigned long dwConversionMode = 0 ;
if ( IsOutputNumber ) dwConversionMode |= CONVMODE_OUTPUT_CODE_NUMBER ;
if ( IsInputNumber ) dwConversionMode |= CONVMODE_INPUT_CODE_NUMBER ;
if ( IsOneQuestionMark ) dwConversionMode |= CONVMODE_ONE_QUESTION_MARK ;
if ( IsConvertQuotation ) dwConversionMode |= CONVMODE_QUOTATION_MARK ;
if ( IsGb2big5N && nDstCodePage == CP_CHINESE_TRADITIONAL ) dwConversionMode |= CONVMODE_CHNCONV_NO_VARIANT ;
if ( IsBig52gbN && nSrcCodePage == CP_CHINESE_TRADITIONAL ) dwConversionMode |= CONVMODE_CHNCONV_NO_VARIANT ;
if ( IsGb2cwN ) dwConversionMode |= CONVMODE_CHNCONV_NO_GBK ;
if ( IsSenceCwFanti ) dwConversionMode |= CONVMODE_SENSE_CW_FANTIZI ;
if ( IsCwTxtFanti ) dwConversionMode |= CONVMODE_CW_TXT_FANTIZI ;
if ( ! IsUseSameFont ) dwConversionMode |= CONVMODE_PINYIN_BY_ASCII ;
if ( IsOutputCwNewFont ) dwConversionMode |= CONVMODE_OUTPUT_NEW_FONT ;
if ( IsTxtUnicodeHtml ) dwConversionMode |= CONVMODE_TXT_UNICODE_HTML ;
if ( IsNoUseUnicode ) dwConversionMode |= CONVMODE_NO_USE_UNICODE ;
if ( IsConvertCjkEx ) dwConversionMode |= CONVMODE_CONVERT_CJKEX ;
if ( IsLinshiDaimaToCjkEx ) dwConversionMode |= CONVMODE_LINGSHIDAIMA_TO_CJKEX ;
if ( IsCjkExToLinshiDaima ) dwConversionMode |= CONVMODE_CJKEX_TO_LINGSHIDAIMA ;
#ifdef CHNCONV_CONSOLE
if ( IsConvertTxt ) dwConversionMode |= CONVMODE_CONVERT_TXT ;
if ( IsConvertRtf ) dwConversionMode |= CONVMODE_CONVERT_RTF ;
#endif
return dwConversionMode ;
}
// 奼挘僆僾僔儑儞偺夝庍
unsigned long TranslateAdditionalMode ( int nSrcCodePage, int nDstCodePage ) {
unsigned long dwAdditionalMode = 0 ;
if ( IsWriteTmComment ) dwAdditionalMode |= ADDITIONAL_MODE_WRITE_TM_COMMENT ;
return dwAdditionalMode ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -