Yes, it is possible!
I just figured it out!
code:
//Change color of a ChatWnd.
Interop.Call("user32", "SendMessageW", ChatWnd.Handle, 0x0111 /* WM_COMMAND */, 35117, 0);
//Change color of the contact list (thus also the default color in new conversations). Make sure the contact list is open for this to work.
Interop.Call("user32", "SendMessageW", Messenger.ContactListWndHandle, 0x0111 /* WM_COMMAND */, 35117, 0);
//Reset the color in a ChatWnd to the default (contact list) color.
Interop.Call("user32", "SendMessageW", ChatWnd.Handle, 0x0111 /* WM_COMMAND */, 35119, 0);
//Reset the color of the contact list to the default Messenger color (#feffff). Or in other words: set the color to the first color swatch.
Interop.Call("user32", "SendMessageW", Messenger.ContactListWndHandle, 0x0111 /* WM_COMMAND */, 35100, 0);
//Reset the color of a ChatWnd to the default Messenger color.
Interop.Call("user32", "SendMessageW", ChatWnd.Handle, 0x0111 /* WM_COMMAND */, 35100, 0);
A note on the last 2 commands: you can choose from any swatch available on the panel. There are 12 swatches and to get the command, you'll need to add 35100 to the index, e.g. the 2nd color has index 1 (counting starts at 0) so the command would be 35101... or just look it up in ResHack > msgsres.dll > 4004 > 945 beginning at line 131.