rv = prov->GetFile(fileData->property, &fileData->persistent, &(fileData->file) ); if (NS_SUCCEEDED(rv) && fileData->file) return PR_FALSE;
if (fileData->uuid.Equals(NS_GET_IID(nsISimpleEnumerator))) {  nsCOMPtr<nsIDirectoryServiceProvider2> prov2 = do_QueryInterface(aElement); if (prov2) { rv = prov2->GetFiles(fileData->property, (nsISimpleEnumerator **)&fileData->data); if (NS_SUCCEEDED(rv) && fileData->data) return PR_FALSE; } } else { nsCOMPtr<nsIDirectoryServiceProvider> prov = do_QueryInterface(aElement); if (!prov) return PR_FALSE; rv = prov->GetFile(fileData->property, &fileData->persistent, (nsIFile **)&fileData->data); if (NS_SUCCEEDED(rv) && fileData->data) return PR_FALSE; }
static PRBool FindProviderFile(nsISupports* aElement, void *aData){  nsresult rv;  nsCOMPtr<nsIDirectoryServiceProvider> prov = do_QueryInterface(aElement);  if (!prov)      return PR_FALSE;  FileData* fileData = (FileData*)aData;  rv = prov->GetFile(fileData->property, &fileData->persistent, &(fileData->file) );  if (NS_SUCCEEDED(rv) && fileData->file)      return PR_FALSE;  return PR_TRUE;}