First of all: format your question! No one will bother to read the question if you just post it as a random mix of text and code.
Secondly in a COM/ATL question it might be a good idea to also post your *.idl file contents.
And finally looking at your code one thing pops to mind: BSTR should be allocated on the server side and freed on the client side. Look at: SysAllocString and SysFreeString.