Sorry if I'm mistaken, but if you want to hide the contactlist, why don't you simply close it (because as you know, when you close the contactlist, it will actually be hidden from sight, but still accessable)?
Interop.Call("User32", "SendMessageW", hWnd, 0x10, 0, 0);
Doing this will even not tamper with the normal flow of program or whatever messenger might wanna do with the contactlist.
You see, there are many things which all do sort of the same, but are slightly different. It helps if you state exactly, in full detail what you want to do and for what this is. In that way we can give you the proper code/advise...
"
I want to hide the contactlist" is still vague as hiding can mean hundreds of things in Windows.