private void Scan(uint id)
{
uint currentItem = id;
while (currentItem != NullItem)
{
RaiseItemAddedEvent(currentItem);
if (CanRecurseInto(currentItem))
{
object child = GetFirstChild(currentItem);
if (child != null)
Scan(GetItemID(child));
}
currentItem = MoveNext(currentItem);
}
}