nsIAppShell::GetIID(),
NS_GET_IID(nsIAppShell),
extern "C" void RunPump( void *arg){   ThreadInitInfo *info = (ThreadInitInfo *) arg;   nsIAppShell    *pShell = nsnull;   nsresult        res;   static NS_DEFINE_IID(kAppShellCID, NS_APPSHELL_CID);   res = nsComponentManager::CreateInstance( kAppShellCID, nsnull,                                             nsIAppShell::GetIID(),                                             (void **) &pShell);   NS_ASSERTION( res == NS_OK, "Couldn't create new shell");   pShell->Create( 0, 0);   // do registration and creation in this thread   info->toolkit->CreateInternalWindow( PR_GetCurrentThread());   // let the main thread continue   PR_EnterMonitor( info->pMonitor);   PR_Notify( info->pMonitor);   PR_ExitMonitor( info->pMonitor);   pShell->Run();   NS_RELEASE( pShell);}