--- /dev/null
+// TsUtilClass.h: TS\83\86\81[\83e\83B\83\8a\83e\83B\81[\83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\r
+//\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+#pragma once\r
+#include "W2L.h"\r
+#include <pthread.h>
+\r
+#define DWORD unsigned long
+
+/////////////////////////////////////////////////////////////////////////////\r
+// \83_\83C\83i\83~\83b\83N\83\8a\83t\83@\83\8c\83\93\83X\8aÇ\97\9d\83x\81[\83X\83N\83\89\83X\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class CDynamicReferenceable\r
+{\r
+public:\r
+ CDynamicReferenceable();\r
+ virtual ~CDynamicReferenceable();\r
+\r
+ void AddRef(void);\r
+ void ReleaseRef(void);\r
+\r
+private:\r
+ DWORD m_dwRefCount;\r
+};\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\83\89\83b\83p\81[\83N\83\89\83X\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class CCriticalLock\r
+{\r
+public:\r
+ CCriticalLock();\r
+ virtual ~CCriticalLock();\r
+ \r
+ void Lock(void);\r
+ void Unlock(void);\r
+ \r
+private:\r
+ pthread_mutex_t m_CriticalSection;\r
+};\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// \83u\83\8d\83b\83N\83X\83R\81[\83v\83\8d\83b\83N\83N\83\89\83X\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+class CBlockLock\r
+{\r
+public:\r
+ CBlockLock(CCriticalLock *pCriticalLock);\r
+ virtual ~CBlockLock();\r
+ \r
+private:\r
+ CCriticalLock *m_pCriticalLock;\r
+};\r
+\r
+\r