[Ttssh2-commit] [9015] ダイアログキャプション文字列をUnicode化

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 11月 2日 (月) 00:40:16 JST


Revision: 9015
          https://osdn.net/projects/ttssh2/scm/svn/commits/9015
Author:   zmatsuo
Date:     2020-11-02 00:40:16 +0900 (Mon, 02 Nov 2020)
Log Message:
-----------
ダイアログキャプション文字列をUnicode化

- デフォルトダイアログ文字列を ttftypes.h から filesys_proto.h, bplus.h へ移動

Modified Paths:
--------------
    branches/proto_unicode/teraterm/common/ttftypes.h
    branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp
    branches/proto_unicode/teraterm/teraterm/filesys_proto.h
    branches/proto_unicode/teraterm/ttpfile/bplus.c
    branches/proto_unicode/teraterm/ttpfile/bplus.h

-------------- next part --------------
Modified: branches/proto_unicode/teraterm/common/ttftypes.h
===================================================================
--- branches/proto_unicode/teraterm/common/ttftypes.h	2020-11-01 15:40:01 UTC (rev 9014)
+++ branches/proto_unicode/teraterm/common/ttftypes.h	2020-11-01 15:40:16 UTC (rev 9015)
@@ -39,17 +39,3 @@
 
 #define TitLog      "Log"
 #define TitSendFile "Send file"
-#define TitKmtRcv   "Kermit Receive"
-#define TitKmtGet   "Kermit Get"
-#define TitKmtSend  "Kermit Send"
-#define TitKmtFin   "Kermit Finish"
-#define TitXRcv     "XMODEM Receive"
-#define TitXSend    "XMODEM Send"
-#define TitYRcv     "YMODEM Receive"
-#define TitYSend    "YMODEM Send"
-#define TitZRcv     "ZMODEM Receive"
-#define TitZSend    "ZMODEM Send"
-#define TitBPRcv    "B-Plus Receive"
-#define TitBPSend   "B-Plus Send"
-#define TitQVRcv    "Quick-VAN Receive"
-#define TitQVSend   "Quick-VAN Send"

Modified: branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp
===================================================================
--- branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp	2020-11-01 15:40:01 UTC (rev 9014)
+++ branches/proto_unicode/teraterm/teraterm/filesys_proto.cpp	2020-11-01 15:40:16 UTC (rev 9015)
@@ -80,6 +80,19 @@
 #define OpYRcv     15
 #define OpYSend    16
 
+#define TitKmtRcv   L"Kermit Receive"
+#define TitKmtGet   L"Kermit Get"
+#define TitKmtSend  L"Kermit Send"
+#define TitKmtFin   L"Kermit Finish"
+#define TitXRcv     L"XMODEM Receive"
+#define TitXSend    L"XMODEM Send"
+#define TitYRcv     L"YMODEM Receive"
+#define TitYSend    L"YMODEM Send"
+#define TitZRcv     L"ZMODEM Receive"
+#define TitZSend    L"ZMODEM Send"
+#define TitQVRcv    L"Quick-VAN Receive"
+#define TitQVSend   L"Quick-VAN Send"
+
 static PFileVarProto FileVar = NULL;
 static int ProtoId;
 
@@ -169,6 +182,18 @@
 	SetTimer(fv->HMainWin, IdProtoTimer, T*1000, NULL);
 }
 
+static void SetDialogCation(struct FileVarProto *fv, const char *key, const wchar_t *default_caption)
+{
+	const char *UILanguageFile = ts.UILanguageFile;
+	wchar_t uimsg[MAX_UIMSG];
+	wchar_t caption[MAX_UIMSG];
+	wcsncpy_s(caption, _countof(caption), L"Tera Term: ", _TRUNCATE);
+	get_lang_msgW(key, uimsg, sizeof(uimsg), default_caption, UILanguageFile);
+	wcsncat_s(caption, _countof(caption), uimsg, _TRUNCATE);
+	free((void *)fv->DlgCaption);
+	fv->DlgCaption = _wcsdup(caption);
+}
+
 static BOOL NewFileVar_(PFileVarProto *pfv)
 {
 	if (*pfv != NULL) {
@@ -197,6 +222,7 @@
 	fv->GetNextFname = GetNextFname;
 	fv->GetRecievePath = GetRecievePath;
 	fv->FTSetTimeOut = FTSetTimeOut;
+	fv->SetDialogCation = SetDialogCation;
 
 	fv->InitDlgProgress = _InitDlgProgress;
 	fv->SetDlgTime = _SetDlgTime;
@@ -225,6 +251,8 @@
 		free(fv->FileNames);
 	}
 	fv->file->FileSysDestroy(fv->file);
+	free(fv->DlgCaption);
+	fv->DlgCaption = NULL;
 	free(fv);
 
 	*pfv = NULL;
@@ -302,7 +330,7 @@
 		fv->Destroy(fv);
 		return FALSE;
 	}
-	SetWindowText(fv->HWin, fv->DlgCaption);
+	_SetWindowTextW(fv->HWin, fv->DlgCaption);
 
 	PtDlg = pd;
 	return TRUE;
@@ -637,7 +665,7 @@
 	return ret;
 }
 
-static char **_GetXFname(HWND HWin, BOOL Receive, const char *caption, LPLONG Option)
+static char **_GetXFname(HWND HWin, BOOL Receive, const wchar_t *caption, LPLONG Option)
 {
 	char FileDirExpanded[MAX_PATH];
 	ExpandEnvironmentStrings(ts.FileDir, FileDirExpanded, sizeof(FileDirExpanded));
@@ -675,7 +703,7 @@
 	ofn.Flags |= OFN_ENABLETEMPLATE | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_ENABLESIZING;
 	ofn.Flags |= OFN_SHOWHELP;
 	ofn.lCustData = (LPARAM)&opt;
-	ofn.lpstrTitle = caption;
+	ofn.lpstrTitle = ToCharW(caption);
 	ofn.lpfnHook = XFnHook;
 	ofn.lpTemplateName = MAKEINTRESOURCE(IDD_XOPT);
 	ofn.hInstance = hInst;
@@ -692,6 +720,7 @@
 		Ok = GetSaveFileName(&ofn);
 	}
 	free(FNFilter);
+	free((void *)ofn.lpstrTitle);
 	_SetCurrentDirectoryW(TempDir);
 
 	char **ret = NULL;
@@ -887,7 +916,7 @@
 #define GMF_Y  3     /* YMODEM Send */
 
 
-static char **_GetMultiFname(HWND hWnd, WORD FuncId, const char *caption, LPWORD Option)
+static char **_GetMultiFname(HWND hWnd, WORD FuncId, const wchar_t *caption, LPWORD Option)
 {
 #define FnStrMemSize 4096
 	wchar_t TempDir[MAX_PATH];
@@ -923,7 +952,7 @@
 	ofn.nFilterIndex = 1;
 	ofn.lpstrFile = FnStrMem;
 	ofn.nMaxFile = FnStrMemSize / sizeof(char);
-	ofn.lpstrTitle= caption;
+	ofn.lpstrTitle= ToCharW(caption);
 	ofn.lpstrInitialDir = CurDir;
 	ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
 	ofn.Flags |= OFN_ALLOWMULTISELECT | OFN_EXPLORER;
@@ -943,6 +972,7 @@
 
 	BOOL Ok = GetOpenFileName(&ofn);
 	free(FNFilter);
+	free((void *)ofn.lpstrTitle);
 
 	char **ret = NULL;
 	if (Ok) {
@@ -986,11 +1016,7 @@
 
 	FileVar->OpId = OpKmtSend;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_KMTSEND", uimsg, sizeof(uimsg), TitKmtSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTSEND", TitKmtSend);
 
 	if (filename == NULL) {
 		WORD w = 0;
@@ -1023,11 +1049,7 @@
 	TFileVarProto *fv = FileVar;
 	FileVar->OpId = OpKmtSend;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_KMTGET", uimsg, sizeof(uimsg), TitKmtGet, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTGET", TitKmtGet);
 
 	if (filename == NULL) {
 		if (! _GetGetFname(FileVar->HMainWin,FileVar, &ts) || FileVar->FileNames == NULL) {
@@ -1057,11 +1079,7 @@
 	TFileVarProto *fv = FileVar;
 	FileVar->OpId = OpKmtRcv;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_KMTRCV", uimsg, sizeof(uimsg), TitKmtRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTRCV", TitKmtRcv);
 
 	if (macro) {
 		// \x83}\x83N\x83\x8D\x82\xA9\x82\xE7
@@ -1086,11 +1104,7 @@
 
 	FileVar->OpId = OpKmtFin;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_KMTFIN", uimsg, sizeof(uimsg), TitKmtFin, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTFIN", TitKmtFin);
 
 	if (macro) {
 		FileVar->NoMsg = TRUE;
@@ -1117,11 +1131,7 @@
 	TFileVarProto *fv = FileVar;
 	FileVar->OpId = OpXRcv;
 
-	const char *UILanguageFile = ts.UILanguageFile;
-	char uimsg[MAX_UIMSG];
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_XRCV", uimsg, sizeof(uimsg), TitXRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_XRCV", TitXRcv);
 
 	if (filename == NULL) {
 		LONG Option = MAKELONG(ts.XmodemBin,ts.XmodemOpt);
@@ -1207,11 +1217,7 @@
 	TFileVarProto *fv = FileVar;
 	FileVar->OpId = OpXSend;
 
-	const char *UILanguageFile = ts.UILanguageFile;
-	char uimsg[MAX_UIMSG];
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_XSEND", uimsg, sizeof(uimsg), TitXSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_XSEND", TitXSend);
 
 	if (filename == NULL) {
 		LONG Option = MAKELONG(ts.XmodemBin,ts.XmodemOpt);
@@ -1303,11 +1309,7 @@
 
 	FileVar->OpId = OpYRcv;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_YRCV", uimsg, sizeof(uimsg), TitYRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_YRCV", TitYRcv);
 
 	// \x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x8E\x9E\x82̃I\x83v\x83V\x83\x87\x83\x93\x82\xCD"Yopt1K"\x82Ɍ\x88\x82ߑł\xBF\x81B
 	WORD Opt = Yopt1K;
@@ -1345,11 +1347,7 @@
 
 	TFileVarProto *fv = FileVar;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_YSEND", uimsg, sizeof(uimsg), TitYSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_YSEND", TitYSend);
 
 	// \x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x8E\x9E\x82̃I\x83v\x83V\x83\x87\x83\x93\x82\xCD"Yopt1K"\x82Ɍ\x88\x82ߑł\xBF\x81B
 	// TODO: "Yopt1K", "YoptG", "YoptSingle"\x82\xF0\x8B\xE6\x95ʂ\xB5\x82\xBD\x82\xA2\x82Ȃ\xE7\x82΁AIDD_FOPT\x82\xF0\x8Ag\x92\xA3\x82\xB7\x82\xE9\x95K\x97v\x82\xA0\x82\xE8\x81B
@@ -1410,11 +1408,7 @@
 	/* IdZReceive or IdZAutoR */
 	FileVar->OpId = OpZRcv;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_ZRCV", uimsg, sizeof(uimsg), TitZRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_ZRCV", TitZRcv);
 
 	TalkStatus = IdTalkQuiet;
 
@@ -1453,11 +1447,7 @@
 
 	TFileVarProto *fv = FileVar;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_ZSEND", uimsg, sizeof(uimsg), TitZSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_ZSEND", TitZSend);
 
 	WORD Opt = ts.XmodemBin;
 	FileVar->OpId = OpZSend;
@@ -1492,7 +1482,7 @@
 	return TRUE;
 }
 
-static char **_GetTransFname(HWND hWnd, const char *DlgCaption)
+static char **_GetTransFname(HWND hWnd, const wchar_t *DlgCaption)
 {
 	wchar_t TempDir[MAX_PATH];
 	char FileName[MAX_PATH];
@@ -1516,11 +1506,12 @@
 	ofn.nMaxFile = _countof(FileName);
 	ofn.lpstrInitialDir = CurDir;
 	ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_SHOWHELP;
-	ofn.lpstrTitle = DlgCaption;
+	ofn.lpstrTitle = ToCharW(DlgCaption);
 	ofn.hInstance = hInst;
 
 	BOOL Ok = GetOpenFileName(&ofn);
 	free(FNFilter);
+	free((void *)ofn.lpstrTitle);
 
 	char **ret = NULL;
 	if (Ok) {
@@ -1543,11 +1534,7 @@
 	TFileVarProto *fv = FileVar;
 	FileVar->OpId = OpBPSend;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_BPSEND", uimsg, sizeof(uimsg), TitBPSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPSEND", TitBPSend);
 
 	if (! ProtoStart())
 		return FALSE;
@@ -1598,11 +1585,7 @@
 	/* IdBPReceive or IdBPAuto */
 	FileVar->OpId = OpBPRcv;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_BPRCV", uimsg, sizeof(uimsg), TitBPRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPRCV", TitBPRcv);
 
 	TalkStatus = IdTalkQuiet;
 
@@ -1638,11 +1621,7 @@
 
 	FileVar->OpId = OpQVRcv;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_QVRCV", uimsg, sizeof(uimsg), TitQVRcv, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_QVRCV", TitQVRcv);
 
 	TalkStatus = IdTalkQuiet;
 
@@ -1673,11 +1652,7 @@
 
 	FileVar->OpId = OpQVSend;
 
-	char uimsg[MAX_UIMSG];
-	const char *UILanguageFile = ts.UILanguageFile;
-	strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE);
-	get_lang_msg("FILEDLG_TRANS_TITLE_QVSEND", uimsg, sizeof(uimsg), TitQVSend, UILanguageFile);
-	strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE);
+	SetDialogCation(fv, "FILEDLG_TRANS_TITLE_QVSEND", TitQVSend);
 
 	if (filename == NULL) {
 		WORD Opt;

Modified: branches/proto_unicode/teraterm/teraterm/filesys_proto.h
===================================================================
--- branches/proto_unicode/teraterm/teraterm/filesys_proto.h	2020-11-01 15:40:01 UTC (rev 9014)
+++ branches/proto_unicode/teraterm/teraterm/filesys_proto.h	2020-11-01 15:40:16 UTC (rev 9015)
@@ -36,7 +36,7 @@
 
 	HWND HMainWin;
 	HWND HWin;
-	char DlgCaption[40];
+	wchar_t *DlgCaption;
 
 	// \x91\x97\x90M\x83t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1
 	//	\x83t\x83\x8B\x83p\x83X\x82̃t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1(\x88\xEA\x94ԍŌ\xE3\x82\xCDNULL)
@@ -69,6 +69,7 @@
 	char *(*GetNextFname)(struct FileVarProto *fv);
 	char *(*GetRecievePath)(struct FileVarProto *fv);
 	void (*FTSetTimeOut)(struct FileVarProto *fv, int T);
+	void (*SetDialogCation)(struct FileVarProto *fv, const char *key, const wchar_t *default_caption);
 
 	// protocol entrys, data
 	BOOL (*Init)(struct FileVarProto *fv, PComVar cv, PTTSet ts);

Modified: branches/proto_unicode/teraterm/ttpfile/bplus.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/bplus.c	2020-11-01 15:40:01 UTC (rev 9014)
+++ branches/proto_unicode/teraterm/ttpfile/bplus.c	2020-11-01 15:40:16 UTC (rev 9015)
@@ -38,6 +38,7 @@
 #include "ftlib.h"
 #include "ttcommon.h"
 #include "ttlib.h"
+#include "layer_for_unicode.h"
 
 #include "bplus.h"
 
@@ -118,20 +119,20 @@
   return fv->FileOpen;
 }
 
+// \x92ʐM\x92\x86\x82Ɏ\xF3\x90M/\x91\x97\x90M\x82\xAA\x90؂\xE8\x91ւ\xED\x82\xE9?
 static void BPDispMode(PFileVarProto fv, PBPVar bv)
 {
-  strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: B-Plus ", _TRUNCATE);
-  switch (bv->BPMode) {
+	switch (bv->BPMode) {
     case IdBPSend:
-      strncat_s(fv->DlgCaption,sizeof(fv->DlgCaption),"Send",_TRUNCATE);
-      break;
+		fv->SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPSEND", TitBPSend);
+		break;
     case IdBPReceive:
     case IdBPAuto:
-      strncat_s(fv->DlgCaption,sizeof(fv->DlgCaption),"Receive",_TRUNCATE);
-      break;
-  }
+		fv->SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPRCV", TitBPRcv);
+		break;
+	}
 
-  SetWindowText(fv->HWin,fv->DlgCaption);
+	_SetWindowTextW(fv->HWin,fv->DlgCaption);
 }
 
 static BOOL BPInit(PFileVarProto fv, PComVar cv, PTTSet ts)

Modified: branches/proto_unicode/teraterm/ttpfile/bplus.h
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/bplus.h	2020-11-01 15:40:01 UTC (rev 9014)
+++ branches/proto_unicode/teraterm/ttpfile/bplus.h	2020-11-01 15:40:16 UTC (rev 9015)
@@ -36,6 +36,9 @@
 extern "C" {
 #endif
 
+#define TitBPRcv    L"B-Plus Receive"
+#define TitBPSend   L"B-Plus Send"
+
   /* B-Plus function id */
 #define IdBPReceive 1
 #define IdBPSend    2


Ttssh2-commit メーリングリストの案内
Back to archive index