A template function can pass the size of a static array:
template
DWORD allocateAddress(DWORD baseAddress, DWORD (&offsets)[COUNT]) {
// now, sizeof(offsets) gives the expected size
// as a bonus, you could also access the element count in COUNT
}
Usually, templates are inlined inside the Window class definition, in the header file (so I got rid of the Window:: scope specifier).