i have tried to use CoMarshalInterThreadInterfaceInStream to marshal the interface in client and CoGetInterfaceAndReleaseStream to unmarshal the interface in server application, but still dont solve the problem. it even give a new error "invalid variant type" each time i try to access the interface after i use the CoGetInterfaceAndReleaseStream. it seems that i have problem passing the IStream pointer from the client to the server , so CoGetInterfaceAndReleaseStream wont unmarshal the right interface.
i also have tried to use the IGlobalInterfaceTable, but still dont work. thanks for any suggestion rey

