The row in the grid is a visible entity that has its index in the grid's context. Note that indexes in both scrollable and fixed contexts begin from 0. i.e if there are some 'freezed' rows, the index of the first scrollable row will anyway start from 0.
for(int i = 0; i < m_Grid1.GetRowCount(Dapfor::GUI::ScrollableContext); ++i)
{
Dapfor::GUI::HITEM handle = m_Grid.GetItem(i);
}
Dapfor::GUI::Handles handles = m_Grid.GetChildren(Dapfor::GUI::GI_SCROLLABLE_ROOT, true);
3. You can use Dapfor::GUI::IForEach interface that is very useful to iterate items in the grid. See this example that explanes how this interface can be used.