proxyObjectFactory->GetProxyObject(argsStruct->queue, nsITestXPCFoo::GetIID(), foo2, (void**)&proxyObject2);
proxyObjectFactory->GetProxyObject(argsStruct->queue, nsITestXPCFoo::GetIID(), foo2, PROXY_ASYNC, (void**)&proxyObject2);
void TestCase_TwoClassesOneInterface(void *arg){    ArgsStruct *argsStruct = (ArgsStruct*) arg;    nsIProxyObjectManager*  proxyObjectFactory;        nsComponentManager::CreateInstance(kProxyObjectManagerCID,                                          nsnull,                                       nsIProxyObjectManager::GetIID(),                                       (void**)&proxyObjectFactory);    PR_ASSERT(proxyObjectFactory);    nsITestXPCFoo         *proxyObject;    nsITestXPCFoo         *proxyObject2;    nsTestXPCFoo*        foo   = new nsTestXPCFoo();    nsTestXPCFoo2*       foo2  = new nsTestXPCFoo2();            PR_ASSERT(foo);    PR_ASSERT(foo2);    proxyObjectFactory->GetProxyObject(argsStruct->queue, nsITestXPCFoo::GetIID(), foo, (void**)&proxyObject);        proxyObjectFactory->GetProxyObject(argsStruct->queue, nsITestXPCFoo::GetIID(), foo2, (void**)&proxyObject2);    if (proxyObject && proxyObject2)    {    // release ownership of the real object.                //printf("Deleting real Object (%ld)\n", threadNumber);        NS_RELEASE(foo);           //printf("Deleting real Object 2 (%ld)\n", threadNumber);        NS_RELEASE(foo2);            PRInt32 a;        nsresult rv;        PRInt32 threadNumber = argsStruct->threadNumber;        //printf("Thread (%ld) Prior to calling proxyObject->Test.\n", threadNumber);        rv = proxyObject->Test(threadNumber, 0, &a);           //printf("Thread (%ld) error: %ld.\n", threadNumber, rv);        //printf("Thread (%ld) Prior to calling proxyObject->Test2.\n", threadNumber);        rv = proxyObject->Test2();           //printf("Thread (%ld) error: %ld.\n", threadNumber, rv);        //printf("Thread (%ld) Prior to calling proxyObject2->Test.\n", threadNumber);        rv = proxyObject2->Test(threadNumber, 0, &a);           //printf("Thread (%ld) proxyObject2 error: %ld.\n", threadNumber, rv);        //printf("Thread (%ld) Prior to calling proxyObject2->Test2.\n", threadNumber);        rv = proxyObject2->Test2();           //printf("Thread (%ld) proxyObject2 error: %ld.\n", threadNumber, rv);        //printf("Deleting Proxy Object (%ld)\n", threadNumber );        NS_RELEASE(proxyObject);        //printf("Deleting Proxy Object 2 (%ld)\n", threadNumber );        NS_RELEASE(proxyObject2);    }    }