And I just remembered Tuples can be constructed just like regular structs (which they are underneath): RGBTuple GetRGB(COLORREF cref) { return RGBTuple(GetRValue(cref), GetGValue(cref), GetBValue(cref)); }