Index: trunk/Include/Classes/ActiveBasic/Core/TypeInfo.ab
===================================================================
--- trunk/Include/Classes/ActiveBasic/Core/TypeInfo.ab	(revision 411)
+++ trunk/Include/Classes/ActiveBasic/Core/TypeInfo.ab	(revision 413)
@@ -10,4 +10,7 @@
 	name As String
 	fullName As String
+
+	ptrType As TypeBaseImpl
+	ptrLevel As Long
 
 	' メンバ情報
@@ -27,8 +30,25 @@
 		This.fullName = fullName
 		This.baseType = Nothing
+
+		ptrType = Nothing
+		ptrLevel = 0
 	End Sub
 
 	Sub ~TypeBaseImpl()
 	End Sub
+
+	Sub PtrLevelUp()
+		ptrLevel ++
+		fullName = "*" + fullName
+	End Sub
+
+	Function Clone() As TypeBaseImpl
+		Dim result = New TypeBaseImpl( strNamespace, name, fullName )
+		result.SetBaseType( baseType )
+		result.SetMembers( memberNames, memberTypeFullNames, memberCounts )
+		result.memberInfosCache = This.memberInfosCache
+		result.ptrLevel = This.ptrLevel
+		Return result
+	End Function
 
 Public
@@ -51,4 +71,14 @@
 	End Sub
 
+	Function GetPtrType() As TypeBaseImpl
+		If Object.ReferenceEquals( ptrType, Nothing ) Then
+			Dim clone = This.Clone()
+
+			ptrType = clone
+			ptrType.PtrLevelUp()
+		End If
+		Return ptrType
+	End Function
+
 
 	'----------------------------------------------------------------
@@ -89,5 +119,5 @@
 
 	Override Function IsPointer() As Boolean
-		Return False
+		Return ( ptrLevel > 0 )
 	End Function
 
@@ -258,4 +288,9 @@
 		End If
 
+		If fullName[0] = &H2A Then		' fullName[0] = '*'
+			Dim result = Search( fullName.Substring( 1 ) )
+			Return result.GetPtrType()
+		End If
+
 		Search = types.Item(fullName)
 
