OSDN Git Service

#xxxxx DTXViewerのプロジェクトを追加。
[dtxmania/dtxmania.git] / DTXViewerプロジェクト / @FDK10プロジェクト / CArrayList.h
diff --git a/DTXViewerプロジェクト/@FDK10プロジェクト/CArrayList.h b/DTXViewerプロジェクト/@FDK10プロジェクト/CArrayList.h
new file mode 100644 (file)
index 0000000..3e3bdef
--- /dev/null
@@ -0,0 +1,60 @@
+
+// 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;