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

📄 etc_uty.cpp

📁 日本的开源编辑器源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	nBgn = *pnBgn;
	if( nBgn >= nTextLen ){
		return NULL;
	}
	for( i = nBgn; i + 1 < nTextLen; ++i ){
		nCharChars = CMemory::MemCharNext( pText, nTextLen, &pText[i] ) - &pText[i];
		if( 0 == nCharChars ){
			nCharChars = 1;
		}
		if( i + nCharChars - nBgn >= nLimitLen ){
			break;
		}
		i += ( nCharChars - 1 );
	}
	*pnBgn = i;
	*pnLineLen = i - nBgn;
	return &pText[nBgn];
}




/* データを指定バイト数以内に切り詰める */
int LimitStringLengthB( const char* pszData, int nDataLength, int nLimitLengthB, CMemory& cmemDes )
{
	int	i;
	int	nCharChars;
	int	nDesLen;
	nDesLen = 0;
	for( i = 0; i < nDataLength; ){
		nCharChars = CMemory::MemCharNext( pszData, nDataLength, &pszData[i] ) - &pszData[i];
		if( 0 == nCharChars ){
			nCharChars = 1;
		}
		if( nDesLen + nCharChars > nLimitLengthB ){
			break;
		}
		nDesLen += nCharChars;
		i += nCharChars;
	}
	cmemDes.SetData( pszData, nDesLen );
	return nDesLen;
}




/* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない */
void CutLastYenFromDirectoryPath( char* pszFolder )
{
	if( 3 == strlen( pszFolder )
	 && pszFolder[1] == ':'
	 && pszFolder[2] == '\\'
	){
		/* ドライブ名:\ */
	}else{
		/* フォルダの最後が半角かつ'\\'の場合は、取り除く */
		int	nFolderLen;
		int	nCharChars;
		nFolderLen = strlen( pszFolder );
		if( 0 < nFolderLen ){
			nCharChars = &pszFolder[nFolderLen] - CMemory::MemCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
			if( 1 == nCharChars && '\\' == pszFolder[nFolderLen - 1] ){
				pszFolder[nFolderLen - 1] = '\0';
			}
		}
	}
	return;
}




/* フォルダの最後が半角かつ'\\'でない場合は、付加する */
void AddLastYenFromDirectoryPath( char* pszFolder )
{
	if( 3 == strlen( pszFolder )
	 && pszFolder[1] == ':'
	 && pszFolder[2] == '\\'
	){
		/* ドライブ名:\ */
	}else{
		/* フォルダの最後が半角かつ'\\'でない場合は、付加する */
		int	nFolderLen;
		int	nCharChars;
		nFolderLen = strlen( pszFolder );
		if( 0 < nFolderLen ){
			nCharChars = &pszFolder[nFolderLen] - CMemory::MemCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
			if( 1 == nCharChars && '\\' == pszFolder[nFolderLen - 1] ){
			}else{
				pszFolder[nFolderLen] = '\\';
				pszFolder[nFolderLen + 1] = '\0';
			}
		}
	}
	return;
}


/*!	文字列が指定された文字で終わっていなかった場合には
	末尾にその文字を付加する.

	@param pszPath [i/o]操作する文字列
	@param nMaxLen [in]バッファ長
	@param c [in]追加したい文字
	@retval  0 \が元から付いていた
	@retval  1 \を付加した
	@retval -1 バッファが足りず、\を付加できなかった
	@date 2003.06.24 Moca 新規作成
*/
int AddLastChar( char* pszPath, int nMaxLen, char c ){
	int pos = strlen( pszPath );
	// 何もないときは\を付加
	if( 0 == pos ){
		if( nMaxLen <= pos + 1 ){
			return -1;
		}
		pszPath[0] = c;
		pszPath[1] = '\0';
		return 1;
	}
	// 最後が\でないときも\を付加(日本語を考慮)
	else if( *::CharPrev( pszPath, &pszPath[pos] ) != c ){
		if( nMaxLen <= pos + 1 ){
			return -1;
		}
		pszPath[pos] = c;
		pszPath[pos + 1] = '\0';
		return 1;
	}
	return 0;
}


/* ショートカット(.lnk)の解決 */
BOOL ResolveShortcutLink( HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath )
{
	BOOL			bRes;
	HRESULT			hRes;
	IShellLink*		pIShellLink;
	IPersistFile*	pIPersistFile;
	char			szGotPath[MAX_PATH];
	char			szDescription[MAX_PATH];
	WIN32_FIND_DATA	wfd;
	WCHAR			wsz[MAX_PATH];
	/* 初期化 */
	pIShellLink = NULL;
	pIPersistFile = NULL;
	*lpszPath = 0; // assume failure
	bRes = FALSE;
	szGotPath[0] = '\0';

	// COMライブラリの初期化
	hRes = ::CoInitialize( NULL );
	if( hRes == E_OUTOFMEMORY
	 || hRes == E_INVALIDARG
	 || hRes == E_UNEXPECTED
	){
		return FALSE;
	}

	// Get a pointer to the IShellLink interface.
//	hRes = 0;
	if( SUCCEEDED( hRes = ::CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&pIShellLink ) ) ){
		// Get a pointer to the IPersistFile interface.
		if( SUCCEEDED(hRes = pIShellLink->QueryInterface( IID_IPersistFile, (void**)&pIPersistFile ) ) ){
			// Ensure that the string is Unicode.
			MultiByteToWideChar( CP_ACP, 0, lpszLinkFile, -1, wsz, MAX_PATH );
			// Load the shortcut.
			if( SUCCEEDED(hRes = pIPersistFile->Load( wsz, STGM_READ ) ) ){
				// Resolve the link.
				if( SUCCEEDED( hRes = pIShellLink->Resolve(hwnd, SLR_ANY_MATCH ) ) ){
					// Get the path to the link target.
					if( SUCCEEDED( hRes = pIShellLink->GetPath(szGotPath, MAX_PATH, (WIN32_FIND_DATA *)&wfd, SLGP_SHORTPATH ) ) ){
						// Get the description of the target.
						if( SUCCEEDED(hRes = pIShellLink->GetDescription(szDescription, MAX_PATH ) ) ){
							if( '\0' != szGotPath[0] ){
								/* 正常終了 */
								lstrcpy( lpszPath, szGotPath );
								bRes = TRUE;
							}
						}
					}
				}
			}
		}
	}
	// Release the pointer to the IPersistFile interface.
	if( NULL != pIPersistFile ){
		pIPersistFile->Release();
		pIPersistFile = NULL;
	}
	// Release the pointer to the IShellLink interface.
	if( NULL != pIShellLink ){
		pIShellLink->Release();
		pIShellLink = NULL;
	}
	// COMライブラリの後始末処理
	::CoUninitialize();
	return bRes;
}




/*!
	処理中のユーザー操作を可能にする
	ブロッキングフック(?)(メッセージ配送

	@date 2003.07.04 genta 一回の呼び出しで複数メッセージを処理するように
*/
BOOL BlockingHook( HWND hwndDlgCancel )
{
		MSG		msg;
		BOOL	ret;
		//	Jun. 04, 2003 genta メッセージをあるだけ処理するように
		while(( ret = (BOOL)::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE )) != 0 ){
			if ( msg.message == WM_QUIT ){
				return FALSE;
			}
			if( NULL != hwndDlgCancel && IsDialogMessage( hwndDlgCancel, &msg ) ){
			}else{
				::TranslateMessage( &msg );
				::DispatchMessage( &msg );
			}
		}
		return TRUE/*ret*/;
}




//! 機能番号に応じてヘルプトピック番号を返す
/*!
	@author Stonee
	@date	2001/02/23
	@param nFuncID 機能番号
	@return ヘルプトピック番号。該当IDが無い場合には0を返す。

	内容はcase文の羅列。

	@par history
	2001.12.22 YAZAKI sakura.hhを参照するように変更
*/
int FuncID_To_HelpContextID( int nFuncID )
{
	switch( nFuncID ){

	/* ファイル操作系 */
	case F_FILENEW:				return HLP000025;			//新規作成
	case F_FILEOPEN:			return HLP000015;			//開く
	case F_FILEOPEN_DROPDOWN:	return HLP000015;			//開く(ドロップダウン)	//@@@ 2002.06.15 MIK
	case F_FILESAVE:			return HLP000020;			//上書き保存
	case F_FILESAVEAS_DIALOG:	return HLP000021;			//名前を付けて保存
	case F_FILECLOSE:			return HLP000017;			//閉じて(無題)	//Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
	case F_FILECLOSE_OPEN:		return HLP000119;			//閉じて開く
	case F_FILE_REOPEN:			return HLP000283;			//開き直す	//@@@ 2003.06.15 MIK
	case F_FILE_REOPEN_SJIS:	return HLP000156;			//SJISで開き直す
	case F_FILE_REOPEN_JIS:		return HLP000157;			//JISで開き直す
	case F_FILE_REOPEN_EUC:		return HLP000158;			//EUCで開き直す
	case F_FILE_REOPEN_UNICODE:	return HLP000159;			//Unicodeで開き直す
	case F_FILE_REOPEN_UNICODEBE:	return HLP000256;		//UnicodeBEで開き直す
	case F_FILE_REOPEN_UTF8:	return HLP000160;			//UTF-8で開き直す
	case F_FILE_REOPEN_UTF7:	return HLP000161;			//UTF-7で開き直す
	case F_PRINT:				return HLP000162;			//印刷				//Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
	case F_PRINT_PREVIEW:		return HLP000120;			//印刷プレビュー
	case F_PRINT_PAGESETUP:		return HLP000122;			//印刷ページ設定	//Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
	case F_OPEN_HfromtoC:		return HLP000192;			//同名のC/C++ヘッダ(ソース)を開く	//Feb. 7, 2001 JEPRO 追加
	case F_OPEN_HHPP:			return HLP000024;			//同名のC/C++ヘッダファイルを開く	//Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
	case F_OPEN_CCPP:			return HLP000026;			//同名のC/C++ソースファイルを開く	//Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
	case F_ACTIVATE_SQLPLUS:	return HLP000132;			/* Oracle SQL*Plusをアクティブ表示 */
	case F_PLSQL_COMPILE_ON_SQLPLUS:	return HLP000027;	/* Oracle SQL*Plusで実行 */
	case F_BROWSE:				return HLP000121;			//ブラウズ
	case F_READONLY:			return HLP000249;			//読み取り専用
	case F_PROPERTY_FILE:		return HLP000022;			/* ファイルのプロパティ */

//	case IDM_EXITALL:			return 28;			//テキストエディタの全終了
	case F_EXITALL:			return HLP000028;				//サクラエディタの全終了	//Dec. 26, 2000 JEPRO F_に変更


	/* 編集系 */
	case F_UNDO:						return HLP000032;	//元に戻す(Undo)
	case F_REDO:						return HLP000033;	//やり直し(Redo)
	case F_DELETE:						return HLP000041;	//削除
	case F_DELETE_BACK:					return HLP000042;	//カーソル前を削除
	case F_WordDeleteToStart:			return HLP000166;	//単語の左端まで削除
	case F_WordDeleteToEnd:				return HLP000167;	//単語の右端まで削除
	case F_WordCut:						return HLP000169;	//単語切り取り
	case F_WordDelete:					return HLP000168;	//単語削除
	case F_LineCutToStart:				return HLP000172;	//行頭まで切り取り(改行単位)
	case F_LineCutToEnd:				return HLP000173;	//行末まで切り取り(改行単位)
	case F_LineDeleteToStart:			return HLP000170;	//行頭まで削除(改行単位)
	case F_LineDeleteToEnd:				return HLP000171;	//行末まで削除(改行単位)
	case F_CUT_LINE:					return HLP000174;	//行切り取り(折り返し単位)
	case F_DELETE_LINE:					return HLP000137;	//行削除(折り返し単位)
	case F_DUPLICATELINE:				return HLP000043;	//行の二重化(折り返し単位)
	case F_INDENT_TAB:					return HLP000113;	//TABインデント
	case F_UNINDENT_TAB:				return HLP000113;	//逆TABインデント
	case F_INDENT_SPACE:				return HLP000114;	//SPACEインデント
	case F_UNINDENT_SPACE:				return HLP000114;	//逆SPACEインデント
	case F_RECONVERT:					return HLP000218;	//再変換
//	case ORDSREFERENCE:					return ;	//単語リファレンス


	/* カーソル移動系 */
//	case F_UP:				return ;	//カーソル上移動
//	case F_DOWN:			return ;	//カーソル下移動
//	case F_LEFT:			return ;	//カーソル左移動
//	case F_RIGHT:			return ;	//カーソル右移動
	case F_UP2:				return HLP000220;	//カーソル上移動(2行ごと)
	case F_DOWN2:			return HLP000221;	//カーソル下移動(2行ごと)
	case F_WORDLEFT:		return HLP000222;	//単語の左端に移動
	case F_WORDRIGHT:		return HLP000223;	//単語の右端に移動
	case F_GOLINETOP:		return HLP000224;	//行頭に移動(折り返し単位)
	case F_GOLINEEND:		return HLP000225;	//行末に移動(折り返し単位)
//	case F_ROLLDOWN:		return ;	//スクロールダウン
//	case F_ROLLUP:			return ;	//スクロールアップ
	case F_HalfPageUp:		return HLP000245;	//半ページアップ	//Oct. 17, 2000 JEPRO 以下「1ページダウン」まで追加
	case F_HalfPageDown:	return HLP000246;	//半ページダウン
	case F_1PageUp:			return HLP000226;	//1ページアップ
	case F_1PageDown:		return HLP000227;	//1ページダウン
	case F_GOFILETOP:		return HLP000228;	//ファイルの先頭に移動
	case F_GOFILEEND:		return HLP000229;	//ファイルの最後に移動
	case F_CURLINECENTER:	return HLP000230;	//カーソル行をウィンドウ中央へ
	case F_JUMP_SRCHSTARTPOS:	return HLP000264; //検索開始位置へ戻る
	case F_JUMPHIST_PREV:		return HLP000231;	//移動履歴: 前へ	//Oct. 17, 2000 JEPRO 以下「移動履歴:次へ」まで追加
	case F_JUMPHIST_NEXT:		return HLP000232;	//移動履歴: 次へ
	case F_JUMPHIST_SET:	return HLP000265;	//現在位置を移動履歴に登録
	case F_WndScrollDown:	return HLP000198;	//テキストを1行下へスクロール	//Jul. 05, 2001 JEPRO 追加
	case F_WndScrollUp:		return HLP000199;	//テキストを1行上へスクロール	//Jul. 05, 2001 JEPRO 追加
	case F_GONEXTPARAGRAPH:	return HLP000262;	//前の段落に移動
	case F_GOPREVPARAGRAPH:	return HLP000263;	//前の段落に移動

	/* 選択系 */	//Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
	case F_SELECTWORD:		return HLP000045;	//現在位置の単語選択
	case F_SELECTALL:		return HLP000044;	//すべて選択
	case F_BEGIN_SEL:		return HLP000233;	//範囲選択開始
//	case F_UP_SEL:			return ;	//(範囲選択)カーソル上移動
//	case F_DOWN_SEL:		return ;	//(範囲選択)カーソル下移動
//	case F_LEFT_SEL:		return ;	//(範囲選択)カーソル左移動
//	case F_RIGHT_SEL:		return ;	//(範囲選択)カーソル右移動
	case F_UP2_SEL:			return HLP000234;	//(範囲選択)カーソル上移動(2行ごと)
	case F_DOWN2_SEL:		return HLP000235;	//(範囲選択)カーソル下移動(2行ごと)
	case F_WORDLEFT_SEL:	return HLP000236;	//(範囲選択)単語の左端に移動
	case F_WORDRIGHT_SEL:	return HLP000237;	//(範囲選択)単語の右端に移動
	case F_GONEXTPARAGRAPH_SEL:	return HLP000273;	//(範囲選択)前の段落に移動	//@@@ 2003.06.15 MIK
	case F_GOPREVPARAGRAPH_SEL:	return HLP000274;	//(範囲選択)前の段落に移動	//@@@ 2003.06.15 MIK
	case F_GOLINETOP_SEL:	return HLP000238;	//(範囲選択)行頭に移動(折り返し単位)
	case F_GOLINEEND_SEL:	return HLP000239;	//(範囲選択)行末に移動(折り返し単位)
//	case F_ROLLDOWN_SEL:	return ;	//(範囲選択)スクロールダウン
//	case F_ROLLUP_SEL:		return ;	//(範囲選択)スクロールアップ
	case F_HalfPageUp_Sel:	return HLP000247;	//(範囲選択)半ページアップ		//Oct. 17, 2000 JEPRO 以下「1ページダウン」まで追加
	case F_HalfPageDown_Sel:return HLP000248;	//(範囲選択)半ページダウン
	case F_1PageUp_Sel:		return HLP000240;	//(範囲選択)1ページアップ
	case F_1PageDown_Sel:	return HLP000241;	//(範囲選択)1ページダウン
	case F_GOFILETOP_SEL:	return HLP000242;	//(範囲選択)ファイルの先頭に移動
	case F_GOFILEEND_SEL:	return HLP000243;	//(範囲選択)ファイルの最後に移動
//	case F_GONEXTPARAGRAPH_SEL:	return HLP000262;	//(範囲選択)次の段落へ
//	case F_GOPREVPARAGRAPH_SEL:	return HLP000263;	//(範囲選択)前の段落へ


	/* 矩形選択系 */	//Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
//	case F_BOXSELALL:		return ;	//矩形ですべて選択
	case F_BEGIN_BOX:		return HLP000244;	//矩形範囲選択開始
/*
	case F_UP_BOX:			return ;	//(矩形選択)カーソル上移動	//Oct. 17, 2000 JEPRO 以下「ファイルの最後に移動」まで追加
	case F_DOWN_BOX:		return ;	//(矩形選択)カーソル下移動
	case F_LEFT_BOX:		return ;	/(矩形選択)カーソル左移動
	case F_RIGHT_BOX:		return ;	//(矩形選択)カーソル右移動
	case F_UP2_BOX:			return ;	//(矩形選択)カーソル上移動(2行ごと)
	case F_DOWN2_BOX:		return ;	//(矩形選択)カーソル下移動(2行ごと)
	case F_WORDLEFT_BOX:	return ;	//(矩形選択)単語の左端に移動
	case F_WORDRIGHT_BOX:	return ;	//(矩形選択)単語の右端に移動
	case F_GOLINETOP_BOX:	return ;	//(矩形選択)行頭に移動(折り返し単位)
	case F_GOLINEEND_BOX:	return ;	//(矩形選択)行末に移動(折り返し単位)
	case F_HalfPageUp_Box:	return ;	//(矩形選択)半ページアップ
	case F_HalfPageDown_Box:return ;	//(矩形選択)半ページダウン
	case F_1PageUp_Box:		return ;	//(矩形選択)1ページアップ
	case F_1PageDown_Box:	return ;	//(矩形選択)1ページダウン
	case F_GOFILETOP_BOX:	return ;	//(矩形選択)ファイルの先頭に移動
	case F_GOFILEEND_BOX:	return ;	//(矩形選択)ファイルの最後に移動
*/
	/* 整形系 2002/04/17 YAZAKI */
	case F_LTRIM:		return HLP000210;	//左(先頭)の空白を削除
	case F_RTRIM:		return HLP000211;	//右(末尾)の空白を削除
	case F_SORT_ASC:	return HLP000212;	//選択行の昇順ソート
	case F_SORT_DESC:	return HLP000213;	//選択行の降順ソート
	case F_MERGE:		return HLP000214;	//選択行のマージ

	/* クリップボード系 */
	case F_CUT:				return HLP000034;			//切り取り(選択範囲をクリップボードにコピーして削除)
	case F_COPY:			return HLP000035;			//コピー(選択範囲をクリップボードにコピー)
	case F_COPY_ADDCRLF:	return HLP000219;			//折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
	case F_COPY_CRLF:		return HLP000163;			//CRLF改行でコピー(選択範囲をクリップボードにコピー)	//Feb. 23, 2001 JEPRO 抜けていたので追加
	case F_PASTE:			return HLP000039;			//貼り付け(クリップボードから貼り付け)
	case F_PASTEBOX:		return HLP000040;			//矩形貼り付け(クリップボードから矩形貼り付け)
//	case F_INSTEXT:			return ;			// テキストを貼り付け
	case F_COPYLINES:				return HLP000036;	//選択範囲内全行コピー
	case F_COPYLINESASPASSAGE:		return HLP000037;	//選択範囲内全行引用符付きコピー
	case F_COPYLINESWITHLINENUMBER:	return HLP000038;	//選択範囲内全行行番号付きコピー
	case F_COPYPATH:		return HLP000056;			//このファイルのパス名をクリップボードにコピー
	case F_COPYTAG:			return HLP000175;			//このファイルのパス名とカーソル位置をコピー	//Oct. 17, 2000 JEPRO 追加
	case F_COPYFNAME:		return HLP000303;			//このファイル名をクリップボードにコピー // 2002/2/3 aroka
//	case IDM_TEST_CREATEKEYBINDLIST:	return 57;	//キー割り当て一覧をクリップボードへコピー	//Sept. 15, 2000 jepro「リスト」を「一覧」に変更
	case F_CREATEKEYBINDLIST:		return HLP000057;	//キー割り当て一覧をクリップボードへコピー	//Sept. 15, 2000 JEPRO 「リスト」を「一覧」に変更、IDM_TESTをFに変更したがうまくいかないので殺してある	//Dec. 25, 2000 復活


	/* 挿入系 */
	case F_INS_DATE:				return HLP000164;	// 日付挿入
	case F_INS_TIME:				return HLP000165;	// 時刻挿入
	case F_CTRL_CODE_DIALOG:		return HLP000255;	/* コントロールコード入力 */


	/* 変換系 */
	case F_TOLOWER:					return HLP000047;	//英大文字→英小文字
	case F_TOUPPER:					return HLP000048;	//英小文字→英大文字
	case F_TOHANKAKU:				return HLP000049;	/* 全角→半角 */
	case F_TOHANKATA:				return HLP000258;	//全角カタカナ→半角カタカナ
	case F_TOZENKAKUKATA:			return HLP000050;	/* 半角+全ひら→全角?カタカナ */	//Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
	case F_TOZENKAKUHIRA:			return HLP000051;	/* 半角+全カタ→全角?ひらがな */	//Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
	case F_HANKATATOZENKAKUKATA:	return HLP000123;	/* 半角カタカナ→全角カタカナ */
	case F_HANKATATOZENKAKUHIRA:	return HLP000124;	/* 半角カタカナ→全角ひらがな */
	case F_TOZENEI:					return HLP000200;	/* 半角英数→全角英数 */			//July. 30, 2001 Misaka //Stonee, 2001/09/26 番号修正
	case F_TOHANEI:					return HLP000215;	/* 全角英数→半角英数 */			//@@@ 2002.2.11 YAZAKI
	case F_TABTOSPACE:				return HLP000182;	/* TAB→空白 */
	case F_SPACETOTAB:				return HLP000196;	/* 空白→TAB */	//#### Stonee, 2001/05/27	//Jul. 03, 2001 JEPRO 番号修正
	case F_CODECNV_AUTO2SJIS:		return HLP000178;	/* 自動判別→SJISコード変換 */
	case F_CODECNV_EMAIL:			return HLP000052;	//E-Mail(JIS→SJIS)コード変換
	case F_CODECNV_EUC2SJIS:		return HLP000053;	//EUC→SJISコード変換
	case F_CODECNV_UNICODE2SJIS:	return HLP000179;	//Unicode→SJISコード変換
	case F_CODECNV_UNICODEBE2SJIS:	return HLP000257;	//UnicodeBE→SJISコード変換
	case F_CODECNV_UTF82SJIS:		return HLP000142;	/* UTF-8→SJISコード変換 */
	case F_CODECNV_UTF72SJIS:		return HLP000143; /* UTF-7→SJISコード変換 */
	case F_CODECNV_SJIS2JIS:		return HLP000117;	/* SJIS→JISコード変換 */
	

⌨️ 快捷键说明

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