static COMMAND_FUNC( do_if_info ) { Image_File *ifp; ifp = PICK_IMG_FILE(""); if( ifp == NO_IMAGE_FILE ) return; if_info(QSP_ARG ifp); }
nsresult nsScriptNameSpaceManager::FillHashWithDOMInterfaces() { nsCOMPtr<nsIInterfaceInfoManager> iim(do_GetService(NS_INTERFACEINFOMANAGER_SERVICE_CONTRACTID)); NS_ENSURE_TRUE(iim, NS_ERROR_UNEXPECTED); // First look for all interfaces whose name starts with nsIDOM nsCOMPtr<nsIEnumerator> domInterfaces; nsresult rv = iim->EnumerateInterfacesWhoseNamesStartWith(NS_DOM_INTERFACE_PREFIX, getter_AddRefs(domInterfaces)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsISupports> entry; rv = domInterfaces->First(); if (NS_FAILED(rv)) { // Empty interface list? NS_WARNING("What, no nsIDOM interfaces installed?"); return NS_OK; } bool found_old; nsCOMPtr<nsIInterfaceInfo> if_info; const char *if_name = nsnull; const nsIID *iid; for ( ; domInterfaces->IsDone() == NS_ENUMERATOR_FALSE; domInterfaces->Next()) { rv = domInterfaces->CurrentItem(getter_AddRefs(entry)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIInterfaceInfo> if_info(do_QueryInterface(entry)); if_info->GetNameShared(&if_name); if_info->GetIIDShared(&iid); rv = RegisterInterface(if_name + sizeof(NS_DOM_INTERFACE_PREFIX) - 1, iid, &found_old); #ifdef DEBUG NS_ASSERTION(!found_old, "Whaaa, interface name already in hash!"); #endif } // Next, look for externally registered DOM interfaces rv = RegisterExternalInterfaces(false); return rv; }