+ // ここで全てUTF-8へ変換する\r
+ // TODO: SJIS以外も直接UTF-8へ変換\r
+// if(Pkt->KanjiCode == KANJI_JIS)\r
+// Continue = ConvJIStoSJIS(&cInfo);\r
+// else\r
+// Continue = ConvEUCtoSJIS(&cInfo);\r
+ switch(Pkt->KanjiCode)\r
+ {\r
+ case KANJI_SJIS:\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
+ // カナ変換のため\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
+ Continue = ConvSJIStoUTF8N(&cInfo);\r
+ memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+ cInfo2.OutLen = cInfo.OutLen;\r
+ break;\r
+ case KANJI_UTF8BOM:\r
+ if(ProcessedBOM == NO)\r
+ {\r
+ memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+ cInfo2.OutLen = 3;\r
+ Continue = YES;\r
+ ProcessedBOM = YES;\r
+ break;\r
+ }\r
+ Continue = ConvSJIStoUTF8N(&cInfo);\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
+ Continue = ConvJIStoSJIS(&cInfo);\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
+ // カナ変換のため\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
+ Continue = ConvJIStoSJIS(&cInfo);\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
+ case KANJI_UTF8BOM:\r
+ if(ProcessedBOM == NO)\r
+ {\r
+ memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+ cInfo2.OutLen = 3;\r
+ Continue = YES;\r
+ ProcessedBOM = YES;\r
+ break;\r
+ }\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
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_EUC:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ Continue = ConvEUCtoSJIS(&cInfo);\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
+ // カナ変換のため\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
+ Continue = ConvEUCtoSJIS(&cInfo);\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
+ case KANJI_UTF8BOM:\r
+ if(ProcessedBOM == NO)\r
+ {\r
+ memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+ cInfo2.OutLen = 3;\r
+ Continue = YES;\r
+ ProcessedBOM = YES;\r
+ break;\r
+ }\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
+ ConvSJIStoUTF8N(&cInfo2);\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_UTF8N:\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\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
+ cInfo2.OutLen = cInfo.StrLen;\r
+ Continue = NO;\r
+ break;\r
+ case KANJI_UTF8BOM:\r
+ if(ProcessedBOM == NO)\r
+ {\r
+ memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+ cInfo2.OutLen = 3;\r
+ Continue = YES;\r
+ ProcessedBOM = YES;\r
+ break;\r
+ }\r
+ memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+ cInfo2.OutLen = cInfo.StrLen;\r
+ Continue = NO;\r
+ break;\r
+ }\r
+ break;\r
+ case KANJI_UTF8BOM:\r
+ if(ProcessedBOM == NO)\r
+ {\r
+ if(memcmp(Buf, "\xEF\xBB\xBF", 3) == 0)\r
+ {\r
+ cInfo.Str += 3;\r
+ cInfo.StrLen -= 3;\r
+ }\r
+ cInfo2.OutLen = 0;\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_UTF8BOM:\r
+ memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+ cInfo2.OutLen = 3;\r
+ break;\r
+ }\r
+ Continue = YES;\r
+ ProcessedBOM = YES;\r
+ break;\r
+ }\r
+ switch(Pkt->KanjiCodeDesired)\r
+ {\r
+ case KANJI_SJIS:\r
+ Continue = ConvUTF8NtoSJIS(&cInfo);\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
+ cInfo2.OutLen = cInfo.StrLen;\r
+ Continue = NO;\r
+ break;\r
+ case KANJI_UTF8BOM:\r
+ memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+ cInfo2.OutLen = cInfo.StrLen;\r
+ Continue = NO;\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