15using namespace Microsoft::VisualStudio::CppUnitTestFramework;
22 TEST_CLASS_INITIALIZE (ClassInitialize)
24 Logger::WriteMessage (
"ArrayTest class initialize.\n");
27 TEST_CLASS_CLEANUP (ClassCleanup)
29 Logger::WriteMessage (
"ArrayTest class cleanup.\n");
32 TEST_METHOD_INITIALIZE (MethodInitialize)
34 Logger::WriteMessage (
"ArrayTest method initialize.\n");
37 TEST_METHOD_CLEANUP (MethodCleanup)
39 Logger::WriteMessage (
"ArrayTest method cleanup.\n");
42 typedef struct _Freight1
45 char _message[MAX_PATH]{ 0 };
50 typedef std::function<void (Freight1&,
int,
bool)> MakeFreight1;
51 MakeFreight1 makeFreight1 = [](Freight1& freight,
int i,
bool isRemain)->
void
56 buffer.
ToSJIS (freight._message, MAX_PATH);
58 buffer.
ToSJIS (freight._guid, 40);
59 freight.isRemain = isRemain;
62 typedef std::function<void (Freight1&)> ShowFreight1;
63 ShowFreight1 showFreight1 = [](Freight1& freight)
66 output.
Format (_T (
"%2d:%S %S isRemain=%d\n"),
67 freight._index, freight._message, freight._guid, freight.isRemain);
68 Logger::WriteMessage (output.
Ctr ());
71 typedef struct _Freight2
74 char _message[MAX_PATH]{ 0 };
79 typedef std::function<void (Freight2&,
int,
bool)> MakeFreight2;
80 MakeFreight2 makeFreight2 = [](Freight2& freight,
int i,
bool isRemain)->
void
85 message.
ToSJIS (freight._message, MAX_PATH);
87 freight.isRemain = isRemain;
90 typedef std::function<void (Freight2&)> ShowFreight2;
91 ShowFreight2 showFreight2 = [](Freight2& freight)
94 output.
Format (_T (
"%2d:%S %s isRemain=%d\n"),
95 freight._index, freight._message, freight._guid.Ctr (), freight.isRemain);
96 Logger::WriteMessage (output.
Ctr ());
101 typedef std::function<void (Freight3&)> MakeFreight3;
102 MakeFreight3 makeFreight3 = [](Freight3& freight)->
void
106 freight.SetData (message.
Ptr (), message.
Byte ());
109 typedef std::function<void (Freight3&)> ShowFreight3;
110 ShowFreight3 showFreight3 = [](Freight3& freight)
113 output.
Format (_T (
"%s[%d]\n"), freight.GetData (), freight.GetSize ());
114 Logger::WriteMessage (output.
Ctr ());
117 class Freight4 :
public Freight3
127 Freight4 (
const Freight4& base)
128 :Freight3 ((Freight3)base)
130 _index = base._index;
131 _isRemain = base._isRemain;
142 INT& index, LPTSTR& message,
size_t&
size,
bool& isRemain,
alt::TString& guid)
144 message = Freight3::GetData ();
145 size = Freight3::GetSize ();
148 isRemain = _isRemain;
152 const INT index, LPTSTR message,
const int size,
const bool isRemain,
const alt::TString& guid)
154 Freight3::SetData (message,
size);
157 _isRemain = isRemain;
160 void operator = (
const Freight4& base)
162 Freight3::operator=((Freight3)base);
163 _index = base._index;
165 _isRemain = base._isRemain;
174 typedef std::function<void (Freight4&,
int,
bool)> MakeFreight4;
175 MakeFreight4 makeFreight4 = [](Freight4& freight,
int index,
bool isRemain)->
void
180 freight.SetData (index, message.
Ptr (), message.
Byte (), isRemain, guid);
183 typedef std::function<void (Freight4&)> ShowFreight4;
184 ShowFreight4 showFreight4 = [](Freight4& freight)
188 LPTSTR lptszMessage =
nullptr;
191 freight.GetData (index, lptszMessage,
size, isRemain, guid);
194 output.
Format (_T (
"%2d:%s %s isRemain=%d\n"),
195 index, lptszMessage, guid.
Ctr (), isRemain);
196 Logger::WriteMessage (output.
Ctr ());
199 TEST_METHOD (VectorFreightTest1)
203 message.
Format (_T (
"sizeof(Freight1)=%d\n"),
sizeof (Freight1));
204 Logger::WriteMessage (message.
Ctr ());
205 message.
Format (_T (
"sizeof(Freight2)=%d\n"),
sizeof (Freight2));
206 Logger::WriteMessage (message.
Ctr ());
207 message.
Format (_T (
"sizeof(Freight3)=%d\n"),
sizeof (Freight3));
208 Logger::WriteMessage (message.
Ctr ());
209 message.
Format (_T (
"sizeof(Freight4)=%d\n"),
sizeof (Freight4));
210 Logger::WriteMessage (message.
Ctr ());
213 std::vector<Freight1> vector;
215 makeFreight1 (freight, 128,
false);
216 vector.push_back (freight);
217 auto& val1 = vector.front ();
219 Freight1 val2 = vector.front ();
224 std::vector<Freight2> vector;
226 makeFreight2 (freight, 128,
false);
227 vector.push_back (freight);
228 auto& val1 = vector.front ();
230 Freight2 val2 = vector.front ();
235 std::vector<Freight3> vector;
237 makeFreight3 (freight);
238 vector.push_back (freight);
239 auto& val1 = vector.front ();
241 Freight3 val2 = vector.front ();
246 std::vector<Freight4> vector;
248 makeFreight4 (freight, 128,
false);
249 vector.push_back (freight);
250 auto& val1 = vector.front ();
252 Freight4 val2 = vector.front ();
257 TEST_METHOD (ArrayTest1BA)
262 for (
int i = 0; i < 10; i++)
265 makeFreight1 (freight, i,
true);
266 array1.Add (freight);
269 for (
int i = 0; i < 5; i++)
277 for (
int i = 0; i < 10; i++)
280 makeFreight1 (freight, i,
true);
281 array2.Add (freight);
284 for (
int i = 0; i < 5; i++)
290 Array array3 = array1;
293 Logger::WriteMessage (
"----------------------------------------\n");
294 Assert::AreEqual<SIZE_T> (10, array3.Size ());
295 for (Freight1 freight : array3)
297 showFreight1 (freight);
303 Logger::WriteMessage (
"----------------------------------------\n");
304 Assert::AreEqual<SIZE_T> (5, array2.Size ());
305 for (Freight1 freight : array2)
307 showFreight1 (freight);
313 Logger::WriteMessage (
"----------------------------------------\n");
314 Assert::AreEqual<SIZE_T> (5, array1.Size ());
315 for (Freight1& freight : array1)
317 showFreight1 (freight);
323 TEST_METHOD (ArrayTest2BA)
328 for (
int i = 0; i < 10; i++)
331 makeFreight2 (freight, i,
true);
332 array1.Add (freight);
335 for (
int i = 0; i < 5; i++)
343 for (
int i = 0; i < 10; i++)
346 makeFreight2 (freight, i,
true);
347 array2.Add (freight);
350 for (
int i = 0; i < 5; i++)
356 Array array3 = array1;
359 Logger::WriteMessage (
"----------------------------------------\n");
360 Assert::AreEqual<SIZE_T> (10, array3.Size ());
361 for (Freight2 freight : array3)
363 showFreight2 (freight);
369 Logger::WriteMessage (
"----------------------------------------\n");
370 Assert::AreEqual<SIZE_T> (5, array2.Size ());
371 for (Freight2 freight : array2)
373 showFreight2 (freight);
379 Logger::WriteMessage (
"----------------------------------------\n");
380 Assert::AreEqual<SIZE_T> (5, array1.Size ());
381 for (Freight2& freight : array1)
383 showFreight2 (freight);
389 TEST_METHOD (ArrayTest3BA)
394 for (
int i = 0; i < 10; i++)
397 makeFreight3 (freight);
398 array1.Add (freight);
401 for (
int i = 0; i < 5; i++)
409 for (
int i = 0; i < 10; i++)
412 makeFreight3 (freight);
413 array2.Add (freight);
416 for (
int i = 0; i < 5; i++)
422 Array array3 = array1;
425 Logger::WriteMessage (
"----------------------------------------\n");
426 Assert::AreEqual<SIZE_T> (10, array3.Size ());
427 for (Freight3 freight : array3)
429 showFreight3 (freight);
435 Logger::WriteMessage (
"----------------------------------------\n");
436 Assert::AreEqual<SIZE_T> (5, array2.Size ());
437 for (Freight3 freight : array2)
439 showFreight3 (freight);
445 Logger::WriteMessage (
"----------------------------------------\n");
446 Assert::AreEqual<SIZE_T> (5, array1.Size ());
447 for (Freight3& freight : array1)
449 showFreight3 (freight);
455 TEST_METHOD (ArrayTest4BA)
460 for (
int i = 0; i < 10; i++)
463 makeFreight4 (freight, i,
true);
464 array1.Add (freight);
467 for (
int i = 0; i < 5; i++)
475 for (
int i = 0; i < 10; i++)
478 makeFreight4 (freight, i,
true);
479 array2.Add (freight);
482 for (
int i = 0; i < 5; i++)
488 Array array3 = array1;
491 Logger::WriteMessage (
"----------------------------------------\n");
492 Assert::AreEqual<SIZE_T> (10, array3.Size ());
493 for (Freight4 freight : array3)
495 showFreight4 (freight);
499 Logger::WriteMessage (
"----------------------------------------\n");
500 Assert::AreEqual<SIZE_T> (5, array2.Size ());
501 for (Freight4 freight : array2)
503 showFreight4 (freight);
509 Logger::WriteMessage (
"----------------------------------------\n");
510 Assert::AreEqual<SIZE_T> (5, array1.Size ());
511 for (Freight4& freight : array1)
513 showFreight4 (freight);
519 TEST_METHOD (ArrayTest1HO)
522 Assert::IsTrue (memory.
New ());
523 Assert::IsTrue (memory->Open ());
526 Array array1 (memory.
Get ());
528 for (
int i = 0; i < 10; i++)
531 makeFreight1 (freight, i,
true);
532 array1.Add (freight);
535 for (
int i = 0; i < 5; i++)
543 for (
int i = 0; i < 10; i++)
546 makeFreight1 (freight, i,
true);
547 array2.Add (freight);
550 for (
int i = 0; i < 5; i++)
556 Array array3 = array1;
559 Logger::WriteMessage (
"----------------------------------------\n");
560 Assert::AreEqual<SIZE_T> (10, array3.Size ());
561 for (Freight1 freight : array3)
563 showFreight1 (freight);
569 Logger::WriteMessage (
"----------------------------------------\n");
570 Assert::AreEqual<SIZE_T> (5, array2.Size ());
571 for (Freight1 freight : array2)
573 showFreight1 (freight);
579 Logger::WriteMessage (
"----------------------------------------\n");
580 Assert::AreEqual<SIZE_T> (5, array1.Size ());
581 for (Freight1& freight : array1)
583 showFreight1 (freight);
589 TEST_METHOD (ArrayTest2HO)
592 Assert::IsTrue (memory.
New ());
593 Assert::IsTrue (memory->Open ());
596 Array array1 (memory.
Get ());
598 for (
int i = 0; i < 10; i++)
601 makeFreight2 (freight, i,
true);
602 array1.Add (freight);
605 for (
int i = 0; i < 5; i++)
613 for (
int i = 0; i < 10; i++)
616 makeFreight2 (freight, i,
true);
617 array2.Add (freight);
620 for (
int i = 0; i < 5; i++)
626 Array array3 = array1;
629 Logger::WriteMessage (
"----------------------------------------\n");
630 Assert::AreEqual<SIZE_T> (10, array3.Size ());
631 for (Freight2 freight : array3)
633 showFreight2 (freight);
639 Logger::WriteMessage (
"----------------------------------------\n");
640 Assert::AreEqual<SIZE_T> (5, array2.Size ());
641 for (Freight2 freight : array2)
643 showFreight2 (freight);
649 Logger::WriteMessage (
"----------------------------------------\n");
650 Assert::AreEqual<SIZE_T> (5, array1.Size ());
651 for (Freight2& freight : array1)
653 showFreight2 (freight);
659 TEST_METHOD (ArrayTest3HO)
662 Assert::IsTrue (memory.
New ());
663 Assert::IsTrue (memory->Open ());
666 Array array1 (memory.
Get ());
668 for (
int i = 0; i < 10; i++)
671 makeFreight3 (freight);
672 array1.Add (freight);
675 for (
int i = 0; i < 5; i++)
683 for (
int i = 0; i < 10; i++)
686 makeFreight3 (freight);
687 array2.Add (freight);
690 for (
int i = 0; i < 5; i++)
696 Array array3 = array1;
699 Logger::WriteMessage (
"----------------------------------------\n");
700 Assert::AreEqual<SIZE_T> (10, array3.Size ());
701 for (Freight3 freight : array3)
703 showFreight3 (freight);
709 Logger::WriteMessage (
"----------------------------------------\n");
710 Assert::AreEqual<SIZE_T> (5, array2.Size ());
711 for (Freight3 freight : array2)
713 showFreight3 (freight);
719 Logger::WriteMessage (
"----------------------------------------\n");
720 Assert::AreEqual<SIZE_T> (5, array1.Size ());
721 for (Freight3& freight : array1)
723 showFreight3 (freight);
729 TEST_METHOD (ArrayTest4HO)
732 Assert::IsTrue (memory.
New ());
733 Assert::IsTrue (memory->Open ());
736 Array array1 (memory.
Get ());
738 for (
int i = 0; i < 10; i++)
741 makeFreight4 (freight, i,
true);
742 array1.Add (freight);
745 for (
int i = 0; i < 5; i++)
753 for (
int i = 0; i < 10; i++)
756 makeFreight4 (freight, i,
true);
757 array2.Add (freight);
760 for (
int i = 0; i < 5; i++)
766 Array array3 = array1;
769 Logger::WriteMessage (
"----------------------------------------\n");
770 Assert::AreEqual<SIZE_T> (10, array3.Size ());
771 for (Freight4 freight : array3)
773 showFreight4 (freight);
779 Logger::WriteMessage (
"----------------------------------------\n");
780 Assert::AreEqual<SIZE_T> (5, array2.Size ());
781 for (Freight4 freight : array2)
783 showFreight4 (freight);
789 Logger::WriteMessage (
"----------------------------------------\n");
790 Assert::AreEqual<SIZE_T> (5, array1.Size ());
791 for (Freight4& freight : array1)
793 showFreight4 (freight);
799 TEST_METHOD (ArrayTest1HC)
802 Assert::IsTrue (memory.
New ());
803 Assert::IsTrue (memory->Create ());
806 Array array1 (memory.
Get ());
808 for (
int i = 0; i < 10; i++)
811 makeFreight1 (freight, i,
true);
812 array1.Add (freight);
815 for (
int i = 0; i < 5; i++)
823 for (
int i = 0; i < 10; i++)
826 makeFreight1 (freight, i,
true);
827 array2.Add (freight);
830 for (
int i = 0; i < 5; i++)
836 Array array3 = array1;
839 Logger::WriteMessage (
"----------------------------------------\n");
840 Assert::AreEqual<SIZE_T> (10, array3.Size ());
841 for (Freight1 freight : array3)
843 showFreight1 (freight);
849 Logger::WriteMessage (
"----------------------------------------\n");
850 Assert::AreEqual<SIZE_T> (5, array2.Size ());
851 for (Freight1 freight : array2)
853 showFreight1 (freight);
859 Logger::WriteMessage (
"----------------------------------------\n");
860 Assert::AreEqual<SIZE_T> (5, array1.Size ());
861 for (Freight1& freight : array1)
863 showFreight1 (freight);
869 TEST_METHOD (ArrayTest2HC)
872 Assert::IsTrue (memory.
New ());
873 Assert::IsTrue (memory->Create ());
876 Array array1 (memory.
Get ());
878 for (
int i = 0; i < 10; i++)
881 makeFreight2 (freight, i,
true);
882 array1.Add (freight);
885 for (
int i = 0; i < 5; i++)
893 for (
int i = 0; i < 10; i++)
896 makeFreight2 (freight, i,
true);
897 array2.Add (freight);
900 for (
int i = 0; i < 5; i++)
906 Array array3 = array1;
909 Logger::WriteMessage (
"----------------------------------------\n");
910 Assert::AreEqual<SIZE_T> (10, array3.Size ());
911 for (Freight2 freight : array3)
913 showFreight2 (freight);
919 Logger::WriteMessage (
"----------------------------------------\n");
920 Assert::AreEqual<SIZE_T> (5, array2.Size ());
921 for (Freight2 freight : array2)
923 showFreight2 (freight);
929 Logger::WriteMessage (
"----------------------------------------\n");
930 Assert::AreEqual<SIZE_T> (5, array1.Size ());
931 for (Freight2& freight : array1)
933 showFreight2 (freight);
939 TEST_METHOD (ArrayTest3HC)
942 Assert::IsTrue (memory.
New ());
943 Assert::IsTrue (memory->Create ());
946 Array array1 (memory.
Get ());
948 for (
int i = 0; i < 10; i++)
951 makeFreight3 (freight);
952 array1.Add (freight);
955 for (
int i = 0; i < 5; i++)
963 for (
int i = 0; i < 10; i++)
966 makeFreight3 (freight);
967 array2.Add (freight);
970 for (
int i = 0; i < 5; i++)
976 Array array3 = array1;
979 Logger::WriteMessage (
"----------------------------------------\n");
980 Assert::AreEqual<SIZE_T> (10, array3.Size ());
981 for (Freight3 freight : array3)
983 showFreight3 (freight);
989 Logger::WriteMessage (
"----------------------------------------\n");
990 Assert::AreEqual<SIZE_T> (5, array2.Size ());
991 for (Freight3 freight : array2)
993 showFreight3 (freight);
999 Logger::WriteMessage (
"----------------------------------------\n");
1000 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1001 for (Freight3& freight : array1)
1003 showFreight3 (freight);
1009 TEST_METHOD (ArrayTest4HC)
1012 Assert::IsTrue (memory.
New ());
1013 Assert::IsTrue (memory->Create ());
1016 Array array1 (memory.
Get ());
1018 for (
int i = 0; i < 10; i++)
1021 makeFreight4 (freight, i,
true);
1022 array1.Add (freight);
1025 for (
int i = 0; i < 5; i++)
1033 for (
int i = 0; i < 10; i++)
1036 makeFreight4 (freight, i,
true);
1037 array2.Add (freight);
1040 for (
int i = 0; i < 5; i++)
1046 Array array3 = array1;
1049 Logger::WriteMessage (
"----------------------------------------\n");
1050 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1051 for (Freight4 freight : array3)
1053 showFreight4 (freight);
1059 Logger::WriteMessage (
"----------------------------------------\n");
1060 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1061 for (Freight4 freight : array2)
1063 showFreight4 (freight);
1069 Logger::WriteMessage (
"----------------------------------------\n");
1070 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1071 for (Freight4& freight : array1)
1073 showFreight4 (freight);
1079 TEST_METHOD (ArrayTest1V1)
1082 Assert::IsTrue (memory.
New ());
1085 Array array1 (memory.
Get ());
1087 for (
int i = 0; i < 10; i++)
1090 makeFreight1 (freight, i,
true);
1091 array1.Add (freight);
1094 for (
int i = 0; i < 5; i++)
1102 for (
int i = 0; i < 10; i++)
1105 makeFreight1 (freight, i,
true);
1106 array2.Add (freight);
1109 for (
int i = 0; i < 5; i++)
1115 Array array3 = array1;
1118 Logger::WriteMessage (
"----------------------------------------\n");
1119 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1120 for (Freight1 freight : array3)
1122 showFreight1 (freight);
1128 Logger::WriteMessage (
"----------------------------------------\n");
1129 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1130 for (Freight1 freight : array2)
1132 showFreight1 (freight);
1138 Logger::WriteMessage (
"----------------------------------------\n");
1139 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1140 for (Freight1& freight : array1)
1142 showFreight1 (freight);
1148 TEST_METHOD (ArrayTest2V1)
1151 Assert::IsTrue (memory.
New ());
1154 Array array1 (memory.
Get ());
1156 for (
int i = 0; i < 10; i++)
1159 makeFreight2 (freight, i,
true);
1160 array1.Add (freight);
1163 for (
int i = 0; i < 5; i++)
1171 for (
int i = 0; i < 10; i++)
1174 makeFreight2 (freight, i,
true);
1175 array2.Add (freight);
1178 for (
int i = 0; i < 5; i++)
1184 Array array3 = array1;
1187 Logger::WriteMessage (
"----------------------------------------\n");
1188 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1189 for (Freight2 freight : array3)
1191 showFreight2 (freight);
1197 Logger::WriteMessage (
"----------------------------------------\n");
1198 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1199 for (Freight2 freight : array2)
1201 showFreight2 (freight);
1207 Logger::WriteMessage (
"----------------------------------------\n");
1208 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1209 for (Freight2& freight : array1)
1211 showFreight2 (freight);
1217 TEST_METHOD (ArrayTest3V1)
1220 Assert::IsTrue (memory.
New ());
1223 Array array1 (memory.
Get ());
1225 for (
int i = 0; i < 10; i++)
1228 makeFreight3 (freight);
1229 array1.Add (freight);
1232 for (
int i = 0; i < 5; i++)
1240 for (
int i = 0; i < 10; i++)
1243 makeFreight3 (freight);
1244 array2.Add (freight);
1247 for (
int i = 0; i < 5; i++)
1253 Array array3 = array1;
1256 Logger::WriteMessage (
"----------------------------------------\n");
1257 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1258 for (Freight3 freight : array3)
1260 showFreight3 (freight);
1266 Logger::WriteMessage (
"----------------------------------------\n");
1267 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1268 for (Freight3 freight : array2)
1270 showFreight3 (freight);
1276 Logger::WriteMessage (
"----------------------------------------\n");
1277 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1278 for (Freight3& freight : array1)
1280 showFreight3 (freight);
1286 TEST_METHOD (ArrayTest4V1)
1289 Assert::IsTrue (memory.
New ());
1292 Array array1 (memory.
Get ());
1294 for (
int i = 0; i < 10; i++)
1297 makeFreight4 (freight, i,
true);
1298 array1.Add (freight);
1301 for (
int i = 0; i < 5; i++)
1309 for (
int i = 0; i < 10; i++)
1312 makeFreight4 (freight, i,
true);
1313 array2.Add (freight);
1316 for (
int i = 0; i < 5; i++)
1322 Array array3 = array1;
1325 Logger::WriteMessage (
"----------------------------------------\n");
1326 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1327 for (Freight4 freight : array3)
1329 showFreight4 (freight);
1335 Logger::WriteMessage (
"----------------------------------------\n");
1336 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1337 for (Freight4 freight : array2)
1339 showFreight4 (freight);
1345 Logger::WriteMessage (
"----------------------------------------\n");
1346 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1347 for (Freight4& freight : array1)
1349 showFreight4 (freight);
文字列に関するWindowsAPIを集約したクラス
仮想メモリに関するWindowsAPIを集約したクラス
文字列に関するWindowsAPIを集約したクラス
TString &APIENTRY Format(LPCTSTR format,...)
フォーマットに従ってパラメータを文字列化します。
INT APIENTRY Byte() const
内部で確保している文字列(バイト数)を取得します。
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
int APIENTRY ToSJIS(LPSTR lpszSJIS, DWORD dwLen)
SJIS文字列を出力します。
LPTSTR APIENTRY Ptr() const
内部で確保している文字列ポインタを取得します。
static const TString APIENTRY MakeGUID()
GUIDの作成
static SYSTEMTIME APIENTRY GetLocalTime()
ローカル時間の取得
static TString APIENTRY GetFormatTime(const SYSTEMTIME &systemTime)
SYSTEMTIME構造体の値を文字列化
T *APIENTRY Get() const
管理オブジェクトの取得
bool APIENTRY New(Args... args)
管理オブジェクトの作成