If I use the code:
#define RGB32BIT(a, r, g, b) ((b) + (g << 8) + (r << 16) + (a << 24)

buffer[y * lpitch32 + x] = RGB32BIT(0, 0, 255, 0);

How do I get back the alpha, red, green, and blue values? Something like?

UCHAR b = buffer[y * lpitch32 + x];
UCHAR g = buffer[y * lpitch32 + x] >> 8;
UCHAR r = buffer[y * lpitch32 + x] >> 16;
UCHAR a = buffer[y * lpitch32 + x] >> 24;