Примерно так (непроверено, и вы также должны проверить коды ошибок HRESULTS):
CAtlFile f;
f.Create( L"MyFile.txt", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, OPEN_ALWAYS );
CAtlFileMapping<BYTE> map;
map.MapFile( f , 0, 0, PAGE_READWRITE, FILE_MAP_ALL_ACCESS );
printf( "%d bytes\n", (int)map.GetMappingSize() );
// Overwrite the 3-rd byte with 21
map[2] = 21;