PRUnichar           *playURI = nsnull;
HackUpAURIToPlayWith(void){  PRUnichar           *playURI = nsnull;  char                *folderURI = nsnull;  nsresult            rv = NS_OK;  // temporary hack to get the current identity  NS_WITH_SERVICE(nsIMsgMailSession, mailSession, kCMsgMailSessionCID, &rv);  if (NS_FAILED(rv))     return nsnull;    nsCOMPtr<nsIMsgIdentity> identity = nsnull;  rv = mailSession->GetCurrentIdentity(getter_AddRefs(identity));  if (NS_FAILED(rv))     return nsnull;  //   // Find the users drafts folder...  //  NS_WITH_SERVICE(nsIPref, prefs, kPrefCID, &rv);   if (NS_SUCCEEDED(rv) && prefs)    prefs->CopyCharPref("mail.default_drafts_uri", &folderURI);  //   // Now, get the drafts folder...  //  nsIMsgFolder *folder = LocateMessageFolder(identity, nsMsgSaveAsDraft, folderURI);  PR_FREEIF(folderURI);  if (!folder)    return nsnull;  nsIEnumerator           *enumerator;  rv = folder->GetMessages(&enumerator);  if (NS_FAILED(rv) || (!enumerator))  {    // RICHIE - Possible bug that will bite us in this hack...    printf("*** NOTICE *** If you failed, more than likely, this is the problem\ndescribed by Bug #10344.\n\7");        return nsnull;  }  enumerator->First();  if (enumerator->IsDone() == NS_OK)   {    NS_IF_RELEASE(enumerator);    return nsnull;  }  nsCOMPtr<nsISupports>   currentItem;  rv = enumerator->CurrentItem(getter_AddRefs(currentItem));  if (NS_FAILED(rv))  {    NS_IF_RELEASE(enumerator);    return nsnull;  }  nsCOMPtr<nsIMessage>      message;  message = do_QueryInterface(currentItem);   if (!message)  {    NS_IF_RELEASE(enumerator);    return nsnull;  }  nsCOMPtr<nsIRDFResource>  myRDFNode;  myRDFNode = do_QueryInterface(message, &rv);  if (NS_FAILED(rv) || (!myRDFNode))  {    NS_IF_RELEASE(enumerator);    return nsnull;  }  NS_IF_RELEASE(enumerator);  char    *tURI;  myRDFNode->GetValue(&tURI);  nsString2   workURI(tURI);  return workURI.ToNewUnicode(); }