Здравствуйте.
Нашел сегодня на msdn пример программы для захвата изображения окна - http://msdn.microsoft.com/en-us/library/dd183402(v=vs.85).aspx
И моё внимание привлёк один момент, смысл которого мне до конца не ясен.
//пропущено
bi.biBitCount = 32;
//пропущено
DWORD dwBmpSize = ((bmpScreen.bmWidth * bi.biBitCount + 31) / 32) * 4 * bmpScreen.bmHeight;
Здесь вычисляется необходимое количество байт для изображения. Назначение переменных не трудно узнать из их имён. DWORD из msdn - «A DWORD is a 32-bit unsigned integer». Так на кой случай считают (bmpScreen.bmWidth * bi.biBitCount + 31) / 32? Разве результат вычисления будет отличен от значения bmpScreen.bmWidth?
Извиняюсь если вопрос из разряда оффтопов, но действительно интересно.