decryptAttachments (hwnd);
decryptAttachments (hwnd, msg);
MapiGPGMEImpl::decrypt (HWND hwnd, GpgMsg * msg){  log_debug ("%s:%s: enter\n", __FILE__, __func__);  openpgp_t mtype;  char *plaintext = NULL;  int has_attach;  int err;  mtype = msg->getMessageType ();  if (mtype == OPENPGP_CLEARSIG)    {      log_debug ("%s:%s: leave (passing on to verify)\n", __FILE__, __func__);      return verify (hwnd, msg);    }  /* Check whether the possible encrpted message as attachments. */  has_attach = msg->hasAttachments ();  if (mtype == OPENPGP_NONE && !has_attach )     {      MessageBox (NULL, "No valid OpenPGP data found.",                  "GPG Decryption", MB_ICONERROR|MB_OK);      log_debug ("MapiGPGME.decrypt: leave (no OpenPGP data)\n");      return 0;    }  err = op_decrypt_start (msg->getOrigText (), &plaintext, nstorePasswd);  if (err)    {      if (has_attach && gpg_err_code (err) == GPG_ERR_NO_DATA)        ;      else        MessageBox (NULL, op_strerror (err),                    "GPG Decryption", MB_ICONERROR|MB_OK);    }  else if (plaintext && *plaintext)    {	      int is_html = is_html_body (plaintext);      msg->setPlainText (plaintext);      plaintext = NULL;      /* Also set PR_BODY but do not use 'SaveChanges' to make it         permanently.  This way the user can reply with the         plaintext but the ciphertext is still stored. */      log_debug ("decrypt isHtml=%d\n", is_html);      /* XXX: find a way to handle text/html message in a better way! */      if (is_html || update_display (hwnd, msg))        {          const char s[] =             "The message text cannot be displayed.\n"            "You have to save the decrypted message to view it.\n"            "Then you need to re-open the message.\n\n"            "Do you want to save the decrypted message?";          int what;                    what = MessageBox (NULL, s, "GPG Decryption",                             MB_YESNO|MB_ICONWARNING);          if (what == IDYES)             {              log_debug ("decrypt: saving plaintext message.\n");              msg->saveChanges (1);            }	}      else        msg->saveChanges (0);    }  if (has_attach)    {      log_debug ("decrypt attachments\n");      decryptAttachments (hwnd);    }  log_debug ("%s:%s: leave (rc=%d)\n", __FILE__, __func__, err);  return err;}