logDebug ( "encrypt attachments");
logDebug ("MapiGPGME.signEncrypt: have attachments\n");
MapiGPGMEImpl::signEncrypt (void){    bool isHtml = isHtmlMessage ();    char *body = getBody (isHtml);    char *newBody = NULL;    char **recipients = getRecipients (TRUE);    char **unknown = NULL;    gpgme_key_t locusr=NULL, *keys = NULL, *keys2 =NULL;    if (body == NULL || strlen (body) == 0) {	freeRecipients (recipients);	if (body != NULL)	    delete_buf (body);	return 0;    }    if (signer_dialog_box (&locusr, NULL) == -1) {	freeRecipients (recipients);	delete_buf (body);	return 0;    }    logDebug ("locusr keyid:%s\r\n", keyid_from_key (locusr));    size_t all;    int n = op_lookup_keys (recipients, &keys, &unknown, &all);    if (n != countRecipients (recipients)) {	recipient_dialog_box2 (keys, unknown, all, &keys2, NULL);	xfree (keys);	keys = keys2;    }    log_key_info (this, keys, locusr);    int err = op_sign_encrypt ((void *)keys, (void*)locusr, body, &newBody);    if (err)	MessageBox (NULL, op_strerror (err), "GPG Sign Encrypt", MB_ICONERROR|MB_OK);    else {	if (isHtml) {	    char *p = addHtmlLineEndings (newBody);	    setBody (p, true);	    xfree (p);	}	else	    setBody (newBody, false);    }    delete_buf (body);    xfree (newBody);    freeUnknownKeys (unknown, n);    if (!err && hasAttachments ()) {	logDebug ( "encrypt attachments");	recipSet = (void *)keys;	encryptAttachments (parent);    }    freeKeyArray ((void **)keys);    gpgme_key_release (locusr);    freeRecipients (recipients);    return err;}