Fix bugs of UTF-8 to UTF-16 API bridge.
Recover compatibility of registry settings.
Fix bugs of behavior of toolbar buttons.
Add support for JIS and EUC text mode transfer.
cInfo->KanjiFst = 0;\r
cInfo->KanaPrev = 0;\r
cInfo->KanaProc = NULL;\r
+ // UTF-8\91Î\89\9e\r
+ cInfo->EscUTF8Len = 0;\r
return;\r
}\r
\r
*Put++ = cInfo->EscCode[0];\r
if(cInfo->EscProc == 2)\r
*Put++ = cInfo->EscCode[1];\r
+ // UTF-8\91Î\89\9e\r
+ memcpy(Put, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ Put += cInfo->EscUTF8Len;\r
\r
cInfo->OutLen = Put - cInfo->Buf;\r
\r
{\r
int Continue;\r
\r
- char temp_string[2048];\r
+// char temp_string[2048];\r
int string_length;\r
\r
+ // \91å\82«\82¢\83T\83C\83Y\82É\91Î\89\9e\r
+ // \8fI\92[\82ÌNULL\82ð\8aÜ\82Þ\83o\83O\82ð\8fC\90³\r
+ int SrcLength;\r
+ char* pSrc;\r
+ wchar_t* pUTF16;\r
+ int UTF16Length;\r
+ int Count;\r
+\r
Continue = NO;\r
\r
// \90¶\90¬\82³\82ê\82é\92\86\8aÔ\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = MultiByteToWideChar(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// string_length = MultiByteToWideChar(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ // \91O\89ñ\82Ì\95Ï\8a·\95s\94\\82È\8ec\82è\82Ì\95¶\8e\9a\97ñ\82ð\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ SrcLength = cInfo->StrLen + cInfo->EscUTF8Len;\r
+ if(!(pSrc = (char*)malloc(sizeof(char) * (SrcLength + 1))))\r
+ {\r
+ *(cInfo->Buf) = '\0';\r
+ cInfo->BufSize = 0;\r
+ return Continue;\r
+ }\r
+ memcpy(pSrc, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ memcpy(pSrc + cInfo->EscUTF8Len, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ *(pSrc + SrcLength) = '\0';\r
+ // UTF-8\82Ì\8fê\8d\87\81A\95s\8a®\91S\82È\95¶\8e\9a\82Í\8fí\82É\95Ï\8a·\82³\82ê\82È\82¢\r
+ UTF16Length = MultiByteToWideChar(CP_UTF8, 0, pSrc, SrcLength, NULL, 0);\r
\r
// \83T\83C\83Y0 or \83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= 1024 ){\r
+// if( string_length == 0 ||\r
+// string_length >= 1024 ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
+ if(!(pUTF16 = (wchar_t*)malloc(sizeof(wchar_t) * UTF16Length)))\r
+ {\r
+ free(pSrc);\r
*(cInfo->Buf) = '\0';\r
cInfo->BufSize = 0;\r
- return(Continue);\r
+ return Continue;\r
}\r
\r
// \92\86\8aÔ\83R\81[\83h(unicode)\82É\95Ï\8a·\r
- MultiByteToWideChar(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 1024 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// MultiByteToWideChar(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 1024 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ MultiByteToWideChar(CP_UTF8, 0, pSrc, SrcLength, pUTF16, UTF16Length);\r
\r
// \90¶\90¬\82³\82ê\82éUTF-8\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = WideCharToMultiByte(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// string_length = WideCharToMultiByte(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ string_length = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
\r
// \83T\83C\83Y0 or \8fo\97Í\83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= cInfo->BufSize ){\r
- *(cInfo->Buf) = '\0';\r
- cInfo->BufSize = 0;\r
- return(Continue);\r
- }\r
+// if( string_length == 0 ||\r
+// string_length >= cInfo->BufSize ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
\r
// \8fo\97Í\83T\83C\83Y\82ð\90Ý\92è\r
- cInfo->OutLen = string_length;\r
+// cInfo->OutLen = string_length;\r
\r
// UTF-8\83R\81[\83h\82É\95Ï\8a·\r
- WideCharToMultiByte(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
- cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// WideCharToMultiByte(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
+// cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ cInfo->OutLen = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ // \83o\83b\83t\83@\82É\8eû\82Ü\82ç\82È\82¢\82½\82ß\95Ï\8a·\95¶\8e\9a\90\94\82ð\94¼\8c¸\r
+ while(cInfo->OutLen == 0 && UTF16Length > 0)\r
+ {\r
+ UTF16Length = UTF16Length / 2;\r
+ cInfo->OutLen = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ }\r
+ // \95Ï\8a·\82³\82ê\82½\8c³\82Ì\95¶\8e\9a\97ñ\82Å\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ Count = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
+ // \95Ï\8a·\89Â\94\\82È\8ec\82è\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ UTF16Length = MultiByteToWideChar(CP_UTF8, 0, pSrc + Count, SrcLength - Count, NULL, 0);\r
+ cInfo->Str += Count - cInfo->EscUTF8Len;\r
+ cInfo->StrLen -= Count - cInfo->EscUTF8Len;\r
+ cInfo->EscUTF8Len = 0;\r
+ if(UTF16Length > 0)\r
+ Continue = YES;\r
+ else\r
+ {\r
+ // \95Ï\8a·\95s\94\\82È\82½\82ß\8e\9f\82Ì\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ memcpy(cInfo->EscUTF8, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ cInfo->EscUTF8Len = cInfo->StrLen;\r
+ cInfo->Str += cInfo->StrLen;\r
+ cInfo->StrLen = 0;\r
+ Continue = NO;\r
+ }\r
+\r
+ free(pSrc);\r
+ free(pUTF16);\r
\r
return(Continue);\r
}\r
{\r
int Continue;\r
\r
- char temp_string[2048];\r
+// char temp_string[2048];\r
int string_length;\r
\r
+ // \91å\82«\82¢\83T\83C\83Y\82É\91Î\89\9e\r
+ // \8fI\92[\82ÌNULL\82ð\8aÜ\82Þ\83o\83O\82ð\8fC\90³\r
+ int SrcLength;\r
+ char* pSrc;\r
+ wchar_t* pUTF16;\r
+ int UTF16Length;\r
+ int Count;\r
+\r
Continue = NO;\r
\r
// \90¶\90¬\82³\82ê\82é\92\86\8aÔ\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = MultiByteToWideChar(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// string_length = MultiByteToWideChar(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ // \91O\89ñ\82Ì\95Ï\8a·\95s\94\\82È\8ec\82è\82Ì\95¶\8e\9a\97ñ\82ð\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ SrcLength = cInfo->StrLen + cInfo->EscUTF8Len;\r
+ if(!(pSrc = (char*)malloc(sizeof(char) * (SrcLength + 1))))\r
+ {\r
+ *(cInfo->Buf) = '\0';\r
+ cInfo->BufSize = 0;\r
+ return Continue;\r
+ }\r
+ memcpy(pSrc, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ memcpy(pSrc + cInfo->EscUTF8Len, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ *(pSrc + SrcLength) = '\0';\r
+ // Shift_JIS\82Ì\8fê\8d\87\81A\95s\8a®\91S\82È\95¶\8e\9a\82Å\82à\95Ï\8a·\82³\82ê\82é\82±\82Æ\82ª\82 \82é\82½\82ß\81A\96\96\94ö\82Ì\95s\8a®\91S\82È\95\94\95ª\82ð\8dí\82é\r
+ Count = 0;\r
+ while(Count < SrcLength)\r
+ {\r
+ if(((unsigned char)*(pSrc + Count) >= 0x81 && (unsigned char)*(pSrc + Count) <= 0x9f) || (unsigned char)*(pSrc + Count) >= 0xe0)\r
+ {\r
+ if((unsigned char)*(pSrc + Count + 1) >= 0x40)\r
+ Count += 2;\r
+ else\r
+ {\r
+ if(Count + 2 > SrcLength)\r
+ break;\r
+ Count += 1;\r
+ }\r
+ }\r
+ else\r
+ Count += 1;\r
+ }\r
+ SrcLength = Count;\r
+ UTF16Length = MultiByteToWideChar(CP_ACP, 0, pSrc, SrcLength, NULL, 0);\r
\r
// \83T\83C\83Y0 or \83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= 1024 ){\r
+// if( string_length == 0 ||\r
+// string_length >= 1024 ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
+ if(!(pUTF16 = (wchar_t*)malloc(sizeof(wchar_t) * UTF16Length)))\r
+ {\r
+ free(pSrc);\r
*(cInfo->Buf) = '\0';\r
cInfo->BufSize = 0;\r
- return(Continue);\r
+ return Continue;\r
}\r
\r
// \92\86\8aÔ\83R\81[\83h(unicode)\82É\95Ï\8a·\r
- MultiByteToWideChar(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 1024 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// MultiByteToWideChar(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 1024 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ MultiByteToWideChar(CP_ACP, 0, pSrc, SrcLength, pUTF16, UTF16Length);\r
\r
// \90¶\90¬\82³\82ê\82éUTF-8\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = WideCharToMultiByte(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// string_length = WideCharToMultiByte(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ string_length = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
\r
// \83T\83C\83Y0 or \8fo\97Í\83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= cInfo->BufSize ){\r
- *(cInfo->Buf) = '\0';\r
- cInfo->BufSize = 0;\r
- return(Continue);\r
- }\r
+// if( string_length == 0 ||\r
+// string_length >= cInfo->BufSize ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
\r
// \8fo\97Í\83T\83C\83Y\82ð\90Ý\92è\r
- cInfo->OutLen = string_length;\r
+// cInfo->OutLen = string_length;\r
\r
/*\r
// \81«\95t\82¯\82¿\82á\82¾\82ß \83R\83}\83\93\83h\82É\82à\92Ç\89Á\82³\82ê\82Ä\82µ\82Ü\82¤\r
*/\r
\r
// UTF-8\83R\81[\83h\82É\95Ï\8a·\r
- WideCharToMultiByte(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
- cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// WideCharToMultiByte(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
+// cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ cInfo->OutLen = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ // \83o\83b\83t\83@\82É\8eû\82Ü\82ç\82È\82¢\82½\82ß\95Ï\8a·\95¶\8e\9a\90\94\82ð\94¼\8c¸\r
+ while(cInfo->OutLen == 0 && UTF16Length > 0)\r
+ {\r
+ UTF16Length = UTF16Length / 2;\r
+ cInfo->OutLen = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ }\r
+ // \95Ï\8a·\82³\82ê\82½\8c³\82Ì\95¶\8e\9a\97ñ\82Å\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ Count = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
+ // \95Ï\8a·\89Â\94\\82È\8ec\82è\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ UTF16Length = MultiByteToWideChar(CP_ACP, 0, pSrc + Count, SrcLength - Count, NULL, 0);\r
+ cInfo->Str += Count - cInfo->EscUTF8Len;\r
+ cInfo->StrLen -= Count - cInfo->EscUTF8Len;\r
+ cInfo->EscUTF8Len = 0;\r
+ if(UTF16Length > 0)\r
+ Continue = YES;\r
+ else\r
+ {\r
+ // \95Ï\8a·\95s\94\\82È\82½\82ß\8e\9f\82Ì\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ memcpy(cInfo->EscUTF8, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ cInfo->EscUTF8Len = cInfo->StrLen;\r
+ cInfo->Str += cInfo->StrLen;\r
+ cInfo->StrLen = 0;\r
+ Continue = NO;\r
+ }\r
+\r
+ free(pSrc);\r
+ free(pUTF16);\r
\r
return(Continue);\r
}\r
\r
/*===== \8a¿\8e\9a\83R\81[\83h\95Ï\8a· =====*/\r
\r
-#define KANJI_SJIS 1 /* SJIS */\r
-#define KANJI_JIS 2 /* JIS */\r
-#define KANJI_EUC 3 /* EUC */\r
-#define KANJI_SMB_HEX 4 /* Samba-HEX */\r
-#define KANJI_SMB_CAP 5 /* Samba-CAP */\r
-#define KANJI_UTF8N 6 /* UTF-8N */\r
+#define KANJI_SJIS 0 /* SJIS */\r
+#define KANJI_JIS 1 /* JIS */\r
+#define KANJI_EUC 2 /* EUC */\r
+#define KANJI_SMB_HEX 3 /* Samba-HEX */\r
+#define KANJI_SMB_CAP 4 /* Samba-CAP */\r
+#define KANJI_UTF8N 5 /* UTF-8N */\r
\r
-#define KANJI_NOCNV 0 /* \8a¿\8e\9a\83R\81[\83h\95Ï\8a·\82È\82µ */\r
+#define KANJI_NOCNV -1 /* \8a¿\8e\9a\83R\81[\83h\95Ï\8a·\82È\82µ */\r
\r
-#define KANJI_AUTO 0\r
+#define KANJI_AUTO -1\r
\r
/*===== \83T\83E\83\93\83h =====*/\r
\r
char KanjiFst; /* \8a¿\8e\9a\83R\81[\83h\82P\83o\83C\83g\96Ú\95Û\91¶\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
char KanaPrev; /* \94¼\8ap\83J\83^\83J\83i\95Û\91¶\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
funcptr KanaProc; /* \94¼\8ap\83J\83^\83J\83i\8f\88\97\9d\83\8b\81[\83`\83\93 (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
+ char EscUTF8[8];\r
+ int EscUTF8Len;\r
} CODECONVINFO;\r
\r
\r
void DispHostKanjiCode(void);\r
int AskHostKanjiCode(void);\r
void HideHostKanjiButton(void);\r
-void SetHostKanaCnvImm(int Mode);\r
-void SetHostKanaCnv(void);\r
-void DispHostKanaCnv(void);\r
-int AskHostKanaCnv(void);\r
// \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\r
void SetLocalKanjiCodeImm(int Mode);\r
void SetLocalKanjiCode(int Type);\r
int AskLocalKanjiCode(void);\r
void HideLocalKanjiButton(void);\r
// \82±\82±\82Ü\82Å\r
+void SetHostKanaCnvImm(int Mode);\r
+void SetHostKanaCnv(void);\r
+void DispHostKanaCnv(void);\r
+int AskHostKanaCnv(void);\r
void SetSortTypeImm(int LFsort, int LDsort, int RFsort, int RDsort);\r
void SetSortTypeByColumn(int Win, int Tab);\r
int AskSortType(int Name);\r
if((iFileHandle = CreateFile(Pkt->LocalFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, &Sec, CreateMode, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
{\r
// UTF-8\91Î\89\9e\r
+ char Buf3[(BUFSIZE + 3) * 4];\r
+ CODECONVINFO cInfo2;\r
int ProcessedBOM = NO;\r
if(CreateMode == OPEN_ALWAYS)\r
SetFilePointer(iFileHandle, 0, 0, FILE_END);\r
InitCodeConvInfo(&cInfo);\r
cInfo.KanaCnv = Pkt->KanaCnv;\r
\r
+ InitCodeConvInfo(&cInfo2);\r
+ cInfo2.KanaCnv = Pkt->KanaCnv;\r
+\r
/*===== \83t\83@\83C\83\8b\82ð\8eó\90M\82·\82é\83\8b\81[\83v =====*/\r
while((Pkt->Abort == ABORT_NONE) && (ForceAbort == NO))\r
{\r
switch(Pkt->KanjiCodeDesired)\r
{\r
case KANJI_SJIS:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvSJIStoJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvJIStoSJIS(&cInfo2);\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvSJIStoJIS(&cInfo);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvSJIStoEUC(&cInfo);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvSJIStoUTF8N(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
}\r
{\r
case KANJI_SJIS:\r
Continue = ConvJIStoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvJIStoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvJIStoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvJIStoSJIS(&cInfo);\r
- InitCodeConvInfo(&cInfo2);\r
- cInfo2.KanaCnv = NO;\r
cInfo2.Str = cInfo.Buf;\r
cInfo2.StrLen = cInfo.OutLen;\r
cInfo2.Buf = Buf3;\r
{\r
case KANJI_SJIS:\r
Continue = ConvEUCtoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvEUCtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvEUCtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvEUCtoSJIS(&cInfo);\r
- InitCodeConvInfo(&cInfo2);\r
- cInfo2.KanaCnv = NO;\r
cInfo2.Str = cInfo.Buf;\r
cInfo2.StrLen = cInfo.OutLen;\r
cInfo2.Buf = Buf3;\r
{\r
case KANJI_SJIS:\r
Continue = ConvUTF8NtoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
cInfo.Buf = Buf2;\r
cInfo.BufSize = BUFSIZE+3;\r
FlushRestData(&cInfo);\r
- if(WriteFile(iFileHandle, Buf2, cInfo.OutLen, &Writed, NULL) == FALSE)\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvJIStoSJIS(&cInfo2);\r
+ break;\r
+ case KANJI_JIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_EUC:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_UTF8N:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_JIS:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_EUC:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_UTF8N:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ }\r
+ break;\r
+ }\r
+// if(WriteFile(iFileHandle, Buf2, cInfo.OutLen, &Writed, NULL) == FALSE)\r
+ if(WriteFile(iFileHandle, Buf3, cInfo2.OutLen, &Writed, NULL) == FALSE)\r
+ Pkt->Abort = ABORT_DISKFULL;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ FlushRestData(&cInfo2);\r
+ if(WriteFile(iFileHandle, Buf3, cInfo2.OutLen, &Writed, NULL) == FALSE)\r
Pkt->Abort = ABORT_DISKFULL;\r
}\r
\r
FILE_SHARE_READ|FILE_SHARE_WRITE, &Sec, OPEN_EXISTING, 0, NULL)) != INVALID_HANDLE_VALUE)\r
{\r
// UTF-8\91Î\89\9e\r
+ char Buf3[(BUFSIZE + 3) * 4];\r
+ CODECONVINFO cInfo2;\r
int ProcessedBOM = NO;\r
if(Pkt->hWndTrans != NULL)\r
{\r
cInfo.KanaCnv = Pkt->KanaCnv;\r
InitTermCodeConvInfo(&tInfo);\r
\r
+ InitCodeConvInfo(&cInfo2);\r
+ cInfo2.KanaCnv = Pkt->KanaCnv;\r
+\r
/*===== \83t\83@\83C\83\8b\82ð\91\97\90M\82·\82é\83\8b\81[\83v =====*/\r
while((Pkt->Abort == ABORT_NONE) &&\r
(ForceAbort == NO) &&\r
// Continue = ConvSJIStoJIS(&cInfo);\r
// else\r
// Continue = ConvSJIStoEUC(&cInfo);\r
- char Buf3[(BUFSIZE + 3) * 4];\r
- CODECONVINFO cInfo2;\r
switch(Pkt->KanjiCodeDesired)\r
{\r
case KANJI_SJIS:\r
switch(Pkt->KanjiCode)\r
{\r
case KANJI_SJIS:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvSJIStoJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvJIStoSJIS(&cInfo2);\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvSJIStoJIS(&cInfo);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvSJIStoEUC(&cInfo);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvSJIStoUTF8N(&cInfo);\r
- memcpy(Buf3, cInfo.Str, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
}\r
{\r
case KANJI_SJIS:\r
Continue = ConvJIStoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvJIStoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvJIStoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvJIStoSJIS(&cInfo);\r
- InitCodeConvInfo(&cInfo2);\r
- cInfo2.KanaCnv = NO;\r
cInfo2.Str = cInfo.Buf;\r
cInfo2.StrLen = cInfo.OutLen;\r
cInfo2.Buf = Buf3;\r
{\r
case KANJI_SJIS:\r
Continue = ConvEUCtoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvEUCtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
- memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
- cInfo2.OutLen = cInfo.StrLen;\r
- Continue = NO;\r
+// memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+// cInfo2.OutLen = cInfo.StrLen;\r
+// Continue = NO;\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ Continue = ConvEUCtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
if(ProcessedBOM == NO)\r
break;\r
}\r
Continue = ConvEUCtoSJIS(&cInfo);\r
- InitCodeConvInfo(&cInfo2);\r
- cInfo2.KanaCnv = NO;\r
cInfo2.Str = cInfo.Buf;\r
cInfo2.StrLen = cInfo.OutLen;\r
cInfo2.Buf = Buf3;\r
{\r
case KANJI_SJIS:\r
Continue = ConvUTF8NtoSJIS(&cInfo);\r
- memcpy(Buf3, Buf2, cInfo.OutLen);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
cInfo2.OutLen = cInfo.OutLen;\r
break;\r
case KANJI_JIS:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
break;\r
case KANJI_EUC:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
break;\r
case KANJI_UTF8N:\r
memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
cInfo.Buf = Buf2;\r
cInfo.BufSize = BUFSIZE+3;\r
FlushRestData(&cInfo);\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvJIStoSJIS(&cInfo2);\r
+ break;\r
+ case KANJI_JIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_EUC:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_UTF8N:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_JIS:\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_EUC:\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ // \83J\83i\95Ï\8a·\82Ì\82½\82ß\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_UTF8N:\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_JIS:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoJIS(&cInfo2);\r
+ break;\r
+ case KANJI_EUC:\r
+ cInfo2.Str = cInfo.Buf;\r
+ cInfo2.StrLen = cInfo.OutLen;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ ConvSJIStoEUC(&cInfo2);\r
+ break;\r
+ case KANJI_UTF8N:\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ }\r
+ break;\r
+ }\r
\r
- if(TermCodeConvAndSend(&tInfo, dSkt, Buf2, cInfo.OutLen, Pkt->Type) == FAIL)\r
+// if(TermCodeConvAndSend(&tInfo, dSkt, Buf2, cInfo.OutLen, Pkt->Type) == FAIL)\r
+ if(TermCodeConvAndSend(&tInfo, dSkt, Buf3, cInfo2.OutLen, Pkt->Type) == FAIL)\r
+ Pkt->Abort = ABORT_ERROR;\r
+ cInfo2.Buf = Buf3;\r
+ cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+ FlushRestData(&cInfo2);\r
+ if(TermCodeConvAndSend(&tInfo, dSkt, Buf3, cInfo2.OutLen, Pkt->Type) == FAIL)\r
Pkt->Abort = ABORT_ERROR;\r
}\r
\r
else if(Pkt->Type == TYPE_A)\r
SendDlgItemMessage(Pkt->hWndTrans, TRANS_MODE, WM_SETTEXT, 0, (LPARAM)MSGJPN120);\r
\r
+ // UTF-8\91Î\89\9e\r
if(Pkt->KanjiCode == KANJI_NOCNV)\r
SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN121);\r
+ else if(Pkt->KanjiCode == KANJI_SJIS)\r
+ SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN305);\r
else if(Pkt->KanjiCode == KANJI_JIS)\r
SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN122);\r
else if(Pkt->KanjiCode == KANJI_EUC)\r
SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN123);\r
+ else if(Pkt->KanjiCode == KANJI_UTF8N)\r
+ SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN306);\r
}\r
else\r
{\r
int Sts;\r
\r
Sts = NO;\r
- if((_stricmp(Fname, "CON") == 0) ||\r
- (_stricmp(Fname, "PRN") == 0) ||\r
- (_stricmp(Fname, "AUX") == 0) ||\r
- (_strnicmp(Fname, "CON.", 4) == 0) ||\r
- (_strnicmp(Fname, "PRN.", 4) == 0) ||\r
- (_strnicmp(Fname, "AUX.", 4) == 0))\r
+ // \83o\83O\8fC\90³\r
+// if((_stricmp(Fname, "CON") == 0) ||\r
+// (_stricmp(Fname, "PRN") == 0) ||\r
+// (_stricmp(Fname, "AUX") == 0) ||\r
+// (_strnicmp(Fname, "CON.", 4) == 0) ||\r
+// (_strnicmp(Fname, "PRN.", 4) == 0) ||\r
+// (_strnicmp(Fname, "AUX.", 4) == 0))\r
+// {\r
+// Sts = YES;\r
+// }\r
+ if(_strnicmp(Fname, "AUX", 3) == 0|| _strnicmp(Fname, "CON", 3) == 0 || _strnicmp(Fname, "NUL", 3) == 0 || _strnicmp(Fname, "PRN", 3) == 0)\r
+ {\r
+ if(*(Fname + 3) == '\0' || *(Fname + 3) == '.')\r
+ Sts = YES;\r
+ }\r
+ else if(_strnicmp(Fname, "COM", 3) == 0 || _strnicmp(Fname, "LPT", 3) == 0)\r
{\r
- Sts = YES;\r
+ if(isdigit(*(Fname + 3)) != 0)\r
+ {\r
+ if(*(Fname + 4) == '\0' || *(Fname + 4) == '.')\r
+ Sts = YES;\r
+ }\r
}\r
return(Sts);\r
}\r
break;\r
\r
case MENU_KNJ_SJIS :\r
- lpttt->lpszText = MSGJPN305;\r
+ lpttt->lpszText = MSGJPN307;\r
break;\r
\r
case MENU_KNJ_EUC :\r
break;\r
\r
case MENU_KNJ_UTF8N :\r
- lpttt->lpszText = MSGJPN306;\r
+ lpttt->lpszText = MSGJPN308;\r
break;\r
\r
case MENU_KNJ_NONE :\r
break;\r
\r
case MENU_L_KNJ_SJIS :\r
- lpttt->lpszText = MSGJPN307;\r
+ lpttt->lpszText = MSGJPN309;\r
break;\r
\r
case MENU_L_KNJ_EUC :\r
- lpttt->lpszText = MSGJPN308;\r
+ lpttt->lpszText = MSGJPN310;\r
break;\r
\r
case MENU_L_KNJ_JIS :\r
- lpttt->lpszText = MSGJPN309;\r
+ lpttt->lpszText = MSGJPN311;\r
break;\r
\r
case MENU_L_KNJ_UTF8N :\r
- lpttt->lpszText = MSGJPN310;\r
+ lpttt->lpszText = MSGJPN312;\r
break;\r
\r
case MENU_KANACNV :\r
MainTransPkt.Type = AskTransferTypeAssoc(MainTransPkt.RemoteFile, AskTransferType());\r
MainTransPkt.Size = 1;\r
MainTransPkt.KanjiCode = AskHostKanjiCode();\r
+ MainTransPkt.KanjiCodeDesired = AskLocalKanjiCode();\r
MainTransPkt.KanaCnv = AskHostKanaCnv();\r
MainTransPkt.Mode = EXIST_OVW;\r
MainTransPkt.ExistSize = 0;\r
break;
default:
GetClassNameW(hWnd, ClassName, sizeof(ClassName) / sizeof(wchar_t));
- if(wcsicmp(ClassName, WC_EDITW) == 0)
+ if(_wcsicmp(ClassName, WC_EDITW) == 0)
{
switch(Msg)
{
break;
}
}
- else if(wcsicmp(ClassName, WC_COMBOBOXW) == 0)
+ else if(_wcsicmp(ClassName, WC_COMBOBOXW) == 0)
{
switch(Msg)
{
break;
}
}
- else if(wcsicmp(ClassName, WC_LISTBOXW) == 0)
+ else if(_wcsicmp(ClassName, WC_LISTBOXW) == 0)
{
switch(Msg)
{
break;
}
}
- else if(wcsicmp(ClassName, WC_LISTVIEWW) == 0)
+ else if(_wcsicmp(ClassName, WC_LISTVIEWW) == 0)
{
switch(Msg)
{
break;
}
}
- else if(wcsicmp(ClassName, STATUSCLASSNAMEW) == 0)
+ else if(_wcsicmp(ClassName, STATUSCLASSNAMEW) == 0)
{
switch(Msg)
{
{
LSTATUS r = 0;
wchar_t* pw0 = NULL;
+ wchar_t* pw1 = NULL;
+ DWORD dwType;
+ DWORD wcbData;
START_ROUTINE
pw0 = DuplicateMtoW(lpValueName, -1);
- // TODO: \83\8c\83W\83X\83g\83\8a\82ÍUTF-8\82Å\95Û\91¶\82³\82ê\82Ä\82µ\82Ü\82¤\81i\88È\91O\82Ì\83o\81[\83W\83\87\83\93\82Æ\8cÝ\8a·\90«\82È\82µ\81j
- // UTF-16\82Å\95Û\91¶\82·\82é\82×\82«
- r = RegQueryValueExW(hKey, pw0, lpReserved, lpType, lpData, lpcbData);
+ if(RegQueryValueExW(hKey, pw0, NULL, &dwType, NULL, 0) == ERROR_SUCCESS)
+ {
+ switch(dwType)
+ {
+ case REG_SZ:
+ case REG_EXPAND_SZ:
+ case REG_MULTI_SZ:
+ if(lpData && lpcbData)
+ {
+ pw1 = AllocateStringW(*lpcbData / sizeof(char) * 4);
+ wcbData = *lpcbData / sizeof(char) * 4;
+ r = RegQueryValueExW(hKey, pw0, lpReserved, lpType, (LPBYTE)pw1, &wcbData);
+ *lpcbData = sizeof(char) * WtoM((char*)lpData, *lpcbData / sizeof(char), pw1, wcbData / sizeof(wchar_t));
+ }
+ break;
+ default:
+ r = RegQueryValueExW(hKey, pw0, lpReserved, lpType, lpData, lpcbData);
+ break;
+ }
+ }
+ else
+ r = RegQueryValueExW(hKey, pw0, lpReserved, lpType, lpData, lpcbData);
END_ROUTINE
FreeDuplicatedString(pw0);
+ FreeDuplicatedString(pw1);
return r;
}
{
LSTATUS r = 0;
wchar_t* pw0 = NULL;
+ wchar_t* pw1 = NULL;
+ DWORD wcbData;
START_ROUTINE
pw0 = DuplicateMtoW(lpValueName, -1);
- // TODO: \83\8c\83W\83X\83g\83\8a\82ÍUTF-8\82Å\95Û\91¶\82³\82ê\82Ä\82µ\82Ü\82¤\81i\88È\91O\82Ì\83o\81[\83W\83\87\83\93\82Æ\8cÝ\8a·\90«\82È\82µ\81j
- // UTF-16\82Å\95Û\91¶\82·\82é\82×\82«
+ switch(dwType)
+ {
+ case REG_SZ:
+ case REG_EXPAND_SZ:
+ case REG_MULTI_SZ:
+ wcbData = MtoW(NULL, 0, (char*)lpData, cbData / sizeof(char));
+ pw1 = AllocateStringW(wcbData);
+ MtoW(pw1, wcbData, (char*)lpData, cbData / sizeof(char));
+ wcbData = sizeof(wchar_t) * wcbData;
+ lpData = (BYTE*)pw1;
+ cbData = wcbData;
+ break;
+ }
r = RegSetValueExW(hKey, pw0, Reserved, dwType, lpData, cbData);
END_ROUTINE
FreeDuplicatedString(pw0);
+ FreeDuplicatedString(pw1);
return r;
}
HWND HtmlHelpM(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData)
{
- HINSTANCE r = NULL;
+ HWND r = NULL;
wchar_t* pw0 = NULL;
START_ROUTINE
pw0 = DuplicateMtoW(pszFile, -1);
return r;
}
+BOOL CreateProcessM(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
+{
+ BOOL r = FALSE;
+ wchar_t* pw0 = NULL;
+ wchar_t* pw1 = NULL;
+ wchar_t* pw2 = NULL;
+ wchar_t* pw3 = NULL;
+ wchar_t* pw4 = NULL;
+ wchar_t* pw5 = NULL;
+ STARTUPINFOW wStartupInfo;
+START_ROUTINE
+ pw0 = DuplicateMtoW(lpApplicationName, -1);
+ pw1 = DuplicateMtoWBuffer(lpCommandLine, -1, (strlen(lpCommandLine) + 1) * 4);
+ pw2 = DuplicateMtoW(lpCurrentDirectory, -1);
+ wStartupInfo.cb = sizeof(LPSTARTUPINFOW);
+ pw3 = DuplicateMtoW(lpStartupInfo->lpReserved, -1);
+ wStartupInfo.lpReserved = pw3;
+ pw4 = DuplicateMtoW(lpStartupInfo->lpDesktop, -1);
+ wStartupInfo.lpDesktop = pw4;
+ pw5 = DuplicateMtoW(lpStartupInfo->lpTitle, -1);
+ wStartupInfo.lpTitle = pw5;
+ wStartupInfo.dwX = lpStartupInfo->dwX;
+ wStartupInfo.dwY = lpStartupInfo->dwY;
+ wStartupInfo.dwXSize = lpStartupInfo->dwXSize;
+ wStartupInfo.dwYSize = lpStartupInfo->dwYSize;
+ wStartupInfo.dwXCountChars = lpStartupInfo->dwXCountChars;
+ wStartupInfo.dwYCountChars = lpStartupInfo->dwYCountChars;
+ wStartupInfo.dwFillAttribute = lpStartupInfo->dwFillAttribute;
+ wStartupInfo.dwFlags = lpStartupInfo->dwFlags;
+ wStartupInfo.wShowWindow = lpStartupInfo->wShowWindow;
+ wStartupInfo.cbReserved2 = lpStartupInfo->cbReserved2;
+ wStartupInfo.lpReserved2 = lpStartupInfo->lpReserved2;
+ wStartupInfo.hStdInput = lpStartupInfo->hStdInput;
+ wStartupInfo.hStdOutput = lpStartupInfo->hStdOutput;
+ wStartupInfo.hStdError = lpStartupInfo->hStdError;
+ r = CreateProcessW(pw0, pw1, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, pw2, &wStartupInfo, lpProcessInformation);
+ WtoM(lpCommandLine, strlen(lpCommandLine) + 1, pw1, -1);
+END_ROUTINE
+ FreeDuplicatedString(pw0);
+ FreeDuplicatedString(pw1);
+ FreeDuplicatedString(pw2);
+ FreeDuplicatedString(pw3);
+ FreeDuplicatedString(pw4);
+ FreeDuplicatedString(pw5);
+ return r;
+}
+
+HINSTANCE FindExecutableM(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult)
+{
+ HINSTANCE r = NULL;
+ wchar_t* pw0 = NULL;
+ wchar_t* pw1 = NULL;
+ wchar_t* pw2 = NULL;
+ wchar_t* pw3 = NULL;
+START_ROUTINE
+ pw0 = DuplicateMtoW(lpFile, -1);
+ pw1 = DuplicateMtoW(lpDirectory, -1);
+ pw2 = AllocateStringW(MAX_PATH * 4);
+ r = FindExecutableW(pw0, pw1, pw2);
+ // \83o\83b\83t\83@\92·\95s\96¾\82Ì\82½\82ß\83I\81[\83o\81[\83\89\83\93\82Ì\89Â\94\\90«\82 \82è
+ WtoM(lpResult, MAX_PATH, pw2, -1);
+ TerminateStringM(lpResult, MAX_PATH);
+END_ROUTINE
+ FreeDuplicatedString(pw0);
+ FreeDuplicatedString(pw1);
+ FreeDuplicatedString(pw2);
+ FreeDuplicatedString(pw3);
+ return r;
+}
+
HINSTANCE ShellExecuteM(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd)
{
HINSTANCE r = NULL;
return r;
}
-
+INT_PTR DialogBoxParamM(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
+{
+ INT_PTR r = 0;
+ wchar_t* pw0 = NULL;
+START_ROUTINE
+ pw0 = DuplicateMtoW(lpTemplateName, -1);
+ r = DialogBoxParamW(hInstance, pw0, hWndParent, lpDialogFunc, dwInitParam);
+END_ROUTINE
+ FreeDuplicatedString(pw0);
+ return r;
+}
#define GetSaveFileName GetSaveFileNameM
#undef HtmlHelp
#define HtmlHelp HtmlHelpM
+#undef CreateProcess
+#define CreateProcess CreateProcessM
+#undef FindExecutable
+#define FindExecutable FindExecutableM
#undef ShellExecute
#define ShellExecute ShellExecuteM
#undef SHBrowseForFolder
#define CreateFontIndirect CreateFontIndirectM
#undef ChooseFont
#define ChooseFont ChooseFontM
+#undef DialogBoxParam
+#define DialogBoxParam DialogBoxParamM
#undef CreateWindow
#define CreateWindow(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowEx(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
#define MSGJPN302 "Master password checker looks broken."\r
#define MSGJPN303 "Master password has been changed."\r
#define MSGJPN304 "Speecified master password is not correct.\r\nAre you sure you want to re-enter?\r\nNo memorized FTP password is available if you choose 'NO'"\r
-#define MSGJPN305 "Shift_JIS Kanji Code"\r
-#define MSGJPN306 "UTF-8 Kanji Code"\r
-#define MSGJPN307 "Shift_JIS Kanji Code (Local)"\r
-#define MSGJPN308 "EUC Kanji Code (Local)"\r
-#define MSGJPN309 "JIS Kanji Code (Local)"\r
-#define MSGJPN310 "UTF-8 Kanji Code (Local)"\r
+#define MSGJPN305 "Shift_JIS"\r
+#define MSGJPN306 "UTF-8N"\r
+#define MSGJPN307 "Shift_JIS Kanji Code"\r
+#define MSGJPN308 "UTF-8N Kanji Code"\r
+#define MSGJPN309 "Shift_JIS Kanji Code (Local)"\r
+#define MSGJPN310 "EUC Kanji Code (Local)"\r
+#define MSGJPN311 "JIS Kanji Code (Local)"\r
+#define MSGJPN312 "UTF-8N Kanji Code (Local)"\r
#define MSGJPN302 "Master password checker looks broken."
#define MSGJPN303 "Master password has been changed."
#define MSGJPN304 "Speecified master password is not correct.\r\nAre you sure you want to re-enter?\r\nNo memorized FTP password is available if you choose 'NO'"
-#define MSGJPN305 "Shift_JIS Kanji Code"
-#define MSGJPN306 "UTF-8 Kanji Code"
-#define MSGJPN307 "Shift_JIS Kanji Code (Local)"
-#define MSGJPN308 "EUC Kanji Code (Local)"
-#define MSGJPN309 "JIS Kanji Code (Local)"
-#define MSGJPN310 "UTF-8 Kanji Code (Local)"
+#define MSGJPN305 "Shift_JIS"
+#define MSGJPN306 "UTF-8N"
+#define MSGJPN307 "Shift_JIS Kanji Code"
+#define MSGJPN308 "UTF-8N Kanji Code"
+#define MSGJPN309 "Shift_JIS Kanji Code (Local)"
+#define MSGJPN310 "EUC Kanji Code (Local)"
+#define MSGJPN311 "JIS Kanji Code (Local)"
+#define MSGJPN312 "UTF-8N Kanji Code (Local)"
#define MSGJPN302 "\xE7\xA2\xBA\xE8\xAA\x8D\xE7\x94\xA8\xE3\x83\x87\xE3\x83\xBC\xE3\x82\xBF\xE3\x81\x8C\xE5\xA3\x8A\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x82\x8B\xE3\x81\x9F\xE3\x82\x81\xEF\xBC\x8C\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE6\xAD\xA3\xE5\xBD\x93\xE6\x80\xA7\xE3\x82\x92\xE7\xA2\xBA\xE8\xAA\x8D\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F\xEF\xBC\x8E"\r
#define MSGJPN303 "\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
#define MSGJPN304 "\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE7\x99\xBB\xE9\x8C\xB2\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\xE3\x82\x82\xE3\x81\xAE\xE3\x81\xA8\xE4\xB8\x80\xE8\x87\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E\r\n\xE5\x86\x8D\xE5\xBA\xA6\xE5\x85\xA5\xE5\x8A\x9B\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B\xEF\xBC\x9F\r\n\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE3\x81\xB6\xE3\x81\xA8\xE8\xA8\x98\xE6\x86\xB6\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\x46TP\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE5\x88\xA9\xE7\x94\xA8\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E"\r
-#define MSGJPN305 "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
-#define MSGJPN306 "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8"\r
-#define MSGJPN307 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
-#define MSGJPN308 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\x45UC"\r
-#define MSGJPN309 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFJIS"\r
-#define MSGJPN310 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8"\r
+#define MSGJPN305 "Shift_JIS"\r
+#define MSGJPN306 "UTF-8N"\r
+#define MSGJPN307 "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
+#define MSGJPN308 "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8N"\r
+#define MSGJPN309 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
+#define MSGJPN310 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\x45UC"\r
+#define MSGJPN311 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFJIS"\r
+#define MSGJPN312 "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8N"\r
#define MSGJPN302 "\8am\94F\97p\83f\81[\83^\82ª\89ó\82ê\82Ä\82¢\82é\82½\82ß\81C\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\90³\93\96\90«\82ð\8am\94F\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81D"
#define MSGJPN303 "\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ü\82µ\82½"
#define MSGJPN304 "\8ew\92è\82³\82ê\82½\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\93o\98^\82³\82ê\82½\82à\82Ì\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81D\r\n\8dÄ\93x\93ü\97Í\82µ\82Ü\82·\82©\81H\r\n\81u\82¢\82¢\82¦\81v\82ð\91I\82Ô\82Æ\8bL\89¯\82³\82ê\82½FTP\83p\83X\83\8f\81[\83h\82Í\97\98\97p\82Å\82«\82Ü\82¹\82ñ\81D"
-#define MSGJPN305 "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
-#define MSGJPN306 "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8"
-#define MSGJPN307 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
-#define MSGJPN308 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍEUC"
-#define MSGJPN309 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍJIS"
-#define MSGJPN310 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8"
+#define MSGJPN305 "Shift_JIS"
+#define MSGJPN306 "UTF-8N"
+#define MSGJPN307 "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
+#define MSGJPN308 "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8N"
+#define MSGJPN309 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
+#define MSGJPN310 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍEUC"
+#define MSGJPN311 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍJIS"
+#define MSGJPN312 "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8N"
EnableWindow(hWndDirLocal, TRUE);\r
EnableWindow(hWndDirRemote, TRUE);\r
\r
+ // \91I\91ð\95s\89Â\82È\8a¿\8e\9a\83R\81[\83h\82Ì\83{\83^\83\93\82ª\95\\8e¦\82³\82ê\82é\83o\83O\82ð\8fC\90³\r
+ HideHostKanjiButton();\r
+ HideLocalKanjiButton();\r
+\r
HideUI = NO;\r
\r
MakeButtonsFocus();\r
SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
- if(TmpHostKanjiCode != KANJI_NOCNV)\r
- SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
- else\r
- SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
- break;\r
+// if(TmpHostKanjiCode != KANJI_NOCNV)\r
+// SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
+// else\r
+// SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
+// break;\r
+ // \8c»\8dÝ\83J\83i\95Ï\8a·\82ÍShift_JIS\81AJIS\81AEUC\8aÔ\82Å\82Ì\82Ý\8b@\94\\82·\82é\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
+ switch(TmpHostKanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ case KANJI_JIS:\r
+ case KANJI_EUC:\r
+ switch(TmpLocalKanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ case KANJI_JIS:\r
+ case KANJI_EUC:\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
+ break;\r
+ }\r
+ break;\r
+ }\r
}\r
return;\r
}\r
break;\r
\r
case MENU_L_KNJ_EUC :\r
-// TmpLocalKanjiCode = KANJI_EUC;\r
+ TmpLocalKanjiCode = KANJI_EUC;\r
break;\r
\r
case MENU_L_KNJ_JIS :\r
-// TmpLocalKanjiCode = KANJI_JIS;\r
+ TmpLocalKanjiCode = KANJI_JIS;\r
break;\r
\r
case MENU_L_KNJ_UTF8N :\r
break;\r
\r
case KANJI_EUC :\r
-// SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+ SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
break;\r
\r
case KANJI_JIS :\r
-// SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+ SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
break;\r
\r
case KANJI_UTF8N :\r
\r
default :\r
SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
-// SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
-// SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
- // TODO: \8c»\8dÝEUC\82ÆJIS\82Í\94ñ\91Î\89\9e\r
- SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
- SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
+ // \8c»\8dÝ\83J\83i\95Ï\8a·\82ÍShift_JIS\81AJIS\81AEUC\8aÔ\82Å\82Ì\82Ý\8b@\94\\82·\82é\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
+ switch(TmpHostKanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ case KANJI_JIS:\r
+ case KANJI_EUC:\r
+ switch(TmpLocalKanjiCode)\r
+ {\r
+ case KANJI_SJIS:\r
+ case KANJI_JIS:\r
+ case KANJI_EUC:\r
+ SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
+ break;\r
+ }\r
+ break;\r
+ }\r
break;\r
}\r
return;\r