Acessadores são normalmente criados usando as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP . Isso garante que MoveNext irá recuperar dados para todas as colunas especificadas automaticamente. Em alguns casos, você não poderá recuperar todas as colunas em cada movimento (por exemplo, se uma das colunas contém um elemento gráfico grande). Nesse caso, você pode colocar uma coluna específica em um acessador separado e fazer que um acessador nonautomatic, como mostrado abaixo. Quando você chamar MoveNext, este código recupera apenas o ID de produto automaticamente. Se você precisar o nome longo, você deve chamar GetData explicitamente, passando o número de acessador (1, neste caso) para recuperar os dados.
classe CProduct
{
público:
nProductID longo;
Char szVeryLong&Name [2048];
BEGIN_ACCESSOR_MAP (CProduct, 2) / / passar o número de assessores
BEGIN_ACCESSOR (0, true) / / true = um acessador automático
COLUMN_ENTRY (1, nProductID)
END_ACCESSOR()
BEGIN_ACCESSOR (1, falso) nbsp; / / false = não um autoaccessor
COLUMN_ENTRY (2, szVeryLongName)
END_ACCESSOR()
END_ACCESSOR_MAP()
};