There's some hiddeous technical reason why you can't pass out UDTs also, it's considdered bad practice to expose a UDT anyway, expose the red green and blue values as properties and expose a long representing the RGB Triple (Use the CopyMemory API inside your class to copy the RGB tripple into a long.)