I would like to make/use/remake something that uses the same interface as CSimpleList that is included with Microsoft Commerce Server 2000. I have lots of existing code and I do not want to change the code, I'm OK with changing the back end and making a facade.

Currently the application I am working on uses the CSimpleList like a Recordset.

rstUser = datasource.execute("SELECT user_name FROM Users")
Calls like: rstUser.user_name
Where rstUser is a CSimpleList
datasource is an IDatasource
and user_name is a column name in a table

I have a snip-it from the header of CSimpleList operator overloading:
operator TYPE()
{ return (TYPE)CSimpleList::GetHead(); }

I'm wondering how CSimpleList works because it has no idea of the variable "user_name" until run-time.