--- /dev/null
+
+// CArrayList - \93®\93I\94z\97ñ
+// \81@\92l\8c^\82Æ\8eQ\8fÆ\8c^\82Ì\82Q\8eí\97Þ\82ª\82 \82é\81i\90¶\90¬\8e\9e\82É\8ew\92è\81j\81B
+
+#pragma once
+
+namespace FDK {
+ namespace General {
+
+class CArrayList
+{
+public:
+ static const enum ARRAYLISTTYPE {
+ ALT_VALUE, // \92l\8c^
+ ALT_REFERENCE // \8eQ\8fÆ\8c^
+ };
+
+public:
+ // \83R\83\93\83X\83g\83\89\83N\83^
+ // \81@Type ... \92l\8c^ or \8eQ\8fÆ\8c^\81B
+ // \81@n\97v\91f\83T\83C\83Y ... \82P\97v\91f\82Ì\83T\83C\83Y\81B\8eQ\8fÆ\8c^\82Å\82Í\88Ó\96¡\82È\82µ\81B
+ CArrayList( ARRAYLISTTYPE Type, UINT n\97v\91f\83T\83C\83Y = 0 );
+
+ // \83f\83X\83g\83\89\83N\83^
+ // \81@\93®\93I\94z\97ñ\82ð\89ð\95ú\82·\82é\81B
+ ~CArrayList();
+
+ // \97v\91f\82ð\92Ç\89Á\82·\82é\81B
+ // \81@\90³\8fí\82È\82ç S_OK \82ð\95Ô\82·\81B
+ HRESULT t\97v\91f\82ð\92Ç\89Á\82·\82é( void* pEntry );
+
+ // \97v\91f\82ð\8dí\8f\9c\82·\82é\81B
+ // \81@nIndex ... \97v\91f\82Ì\83C\83\93\83f\83b\83N\83X(0..)
+ void t\97v\91f\82ð\8dí\8f\9c\82·\82é( UINT nIndex );
+
+ // \97v\91f\82ð\8eæ\93¾\82·\82é\81B
+ // \81@nIndex ... \97v\91f\82Ì\83C\83\93\83f\83b\83N\83X(0..)
+ void* p\97v\91f\82ð\8eæ\93¾\82·\82é( UINT nIndex );
+
+ // \8ew\92è\82µ\82½\97v\91f\82ª\94z\97ñ\93à\82É\91¶\8dÝ\82·\82é\82È\82ç true \82ð\95Ô\82·\81B
+ bool b\97v\91f\82ª\94z\97ñ\93à\82É\91¶\8dÝ\82·\82é( void* pEntryData );
+
+ UINT Count() { return n\8c»\8dÝ\82Ì\97v\91f\90\94; } // \8c»\8dÝ\82Ì\97v\91f\90\94\82ð\95Ô\82·\81B
+ void Clear() { n\8c»\8dÝ\82Ì\97v\91f\90\94 = 0; } // \93®\93I\94z\97ñ\82ð\83N\83\8a\83A\82·\82é\81B
+
+protected:
+ ARRAYLISTTYPE arrayListType; // \92l\8c^\82©\8eQ\8fÆ\8c^\82©\81H
+ void* p\93®\93I\94z\97ñ;
+ UINT n\97v\91f\83T\83C\83Y; // \82P\97v\91f\82Ì\91å\82«\82³\81B\8eQ\8fÆ\8c^\82Å\82Í sizeof(LPVOID) \82Æ\82È\82é\81B
+ UINT n\8c»\8dÝ\82Ì\97v\91f\90\94;
+ UINT n\8c»\8dÝ\82Ì\93®\93I\94z\97ñ\82Ì\83T\83C\83Y;
+
+private:
+ HRESULT t\90V\82µ\82¢\93®\93I\94z\97ñ\82ð\8am\95Û\82·\82é();
+};
+
+ }//General
+}//FDK
+
+using namespace FDK::General;