mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """cmtest - List all components in the system"""
 | |
| 
 | |
| import Cm
 | |
| import Res
 | |
| import sys
 | |
| 
 | |
| def getstr255(r):
 | |
| 	"""Get string from str255 resource"""
 | |
| 	if not r.data: return ''
 | |
| 	len = ord(r.data[0])
 | |
| 	return r.data[1:1+len]
 | |
| 
 | |
| def getinfo(c):
 | |
| 	"""Return (type, subtype, creator, fl1, fl2, name, description) for component"""
 | |
| 	h1 = Res.Resource('')
 | |
| 	h2 = Res.Resource('')
 | |
| 	h3 = Res.Resource('')
 | |
| 	type, subtype, creator, fl1, fl2 = c.GetComponentInfo(h1, h2, h3)
 | |
| 	name = getstr255(h1)
 | |
| 	description = getstr255(h2)
 | |
| 	return type, subtype, creator, fl1, fl2, name, description
 | |
| 	
 | |
| def getallcomponents():
 | |
| 	"""Return list with info for all components, sorted"""
 | |
| 	any = ('\0\0\0\0', '\0\0\0\0', '\0\0\0\0', 0, 0)
 | |
| 	c = None
 | |
| 	rv = []
 | |
| 	while 1:
 | |
| 		try:
 | |
| 			c = Cm.FindNextComponent(c, any)
 | |
| 		except Cm.Error:
 | |
| 			break
 | |
| 		rv.append(getinfo(c))
 | |
| 	rv.sort()
 | |
| 	return rv
 | |
| 	
 | |
| def main():
 | |
| 	"""Print info for all components"""
 | |
| 	info = getallcomponents()
 | |
| 	for type, subtype, creator, f1, f2, name, description in info:
 | |
| 		print '%4.4s %4.4s %4.4s %s 0x%x 0x%x'%(type, subtype, creator, name, f1, f2)
 | |
| 		print '              ', description
 | |
| 	sys.exit(1)
 | |
| 
 | |
| main()
 | 
