Update signature status display
[gpgol.git] / src / ribbon-callbacks.h
1 /* ribbon-callbacks.h - Callbacks for the ribbon extension interface
2  *    Copyright (C) 2013 Intevation GmbH
3  *
4  * This file is part of GpgOL.
5  *
6  * GpgOL is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * GpgOL is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef RIBBON_CALLBACKS_H
21 #define RIBBON_CALLBACKS_H
22
23 #include "gpgoladdin.h"
24
25 /* For the Icon IDS */
26 #include "dialogs.h"
27
28 /* Id's of our callbacks */
29 #define ID_CMD_DECRYPT           2
30 #define ID_CMD_ENCRYPT_SELECTION 3
31 #define ID_CMD_DECRYPT_SELECTION 4
32 #define ID_CMD_CERT_MANAGER      5
33 #define ID_CMD_ENCRYPT_BODY      6
34 #define ID_CMD_DECRYPT_BODY      8
35 #define ID_CMD_ATT_ENCSIGN_FILE  9
36 #define ID_CMD_SIGN_BODY        10
37 #define ID_CMD_ATT_ENC_FILE     11
38 #define ID_CMD_VERIFY_BODY      12
39 #define ID_CMD_MIME_SIGN        13
40 #define ID_CMD_MIME_ENCRYPT     14
41 #define ID_GET_SIGN_PRESSED     15
42 #define ID_GET_ENCRYPT_PRESSED  16
43 #define ID_ON_LOAD              17
44 #define ID_CMD_OPEN_OPTIONS     18
45 #define ID_GET_IS_CRYPTO        19
46 #define ID_CMD_MIME_SIGN_EX     21
47 #define ID_CMD_MIME_ENCRYPT_EX  22
48 #define ID_GET_SIGN_PRESSED_EX  23
49 #define ID_GET_ENCRYPT_PRESSED_EX 24
50 #define ID_GET_SIG_STIP         25
51 #define ID_GET_SIG_TTIP         26
52 #define ID_GET_SIG_LABEL        27
53 #define ID_LAUNCH_CERT_DETAILS  28
54 #define ID_BTN_SIGSTATE_LARGE   29
55 #define ID_GET_SIGN_ENCRYPT_PRESSED   30
56 #define ID_GET_SIGN_ENCRYPT_PRESSED_EX 31
57 #define ID_CMD_SIGN_ENCRYPT_MIME 32
58 #define ID_CMD_SIGN_ENCRYPT_MIME_EX 33
59
60 #define ID_BTN_CERTMANAGER       IDI_KEY_MANAGER_64_PNG
61 #define ID_BTN_DECRYPT           IDI_DECRYPT_16_PNG
62 #define ID_BTN_DECRYPT_LARGE     IDI_DECRYPT_48_PNG
63 #define ID_BTN_ENCRYPT           IDI_ENCRYPT_16_PNG
64 #define ID_BTN_ENCRYPT_LARGE     IDI_ENCRYPT_48_PNG
65 #define ID_BTN_ENCSIGN_LARGE     IDI_ENCSIGN_FILE_48_PNG
66 #define ID_BTN_SIGN_LARGE        IDI_SIGN_48_PNG
67 #define ID_BTN_VERIFY_LARGE      IDI_VERIFY_48_PNG
68
69 #define OP_ENCRYPT     1 /* Encrypt the data */
70 #define OP_SIGN        2 /* Sign the data */
71
72 HRESULT decryptAttachments (LPDISPATCH ctrl);
73 HRESULT encryptSelection (LPDISPATCH ctrl);
74 HRESULT decryptSelection (LPDISPATCH ctrl);
75 HRESULT decryptBody (LPDISPATCH ctrl);
76 HRESULT encryptBody (LPDISPATCH ctrl);
77 HRESULT addEncSignedAttachment (LPDISPATCH ctrl);
78 HRESULT addEncAttachment (LPDISPATCH ctrl);
79 HRESULT getIcon (int id, VARIANT* result);
80 HRESULT startCertManager (LPDISPATCH ctrl);
81 HRESULT signBody (LPDISPATCH ctrl);
82 HRESULT verifyBody (LPDISPATCH ctrl);
83
84 /* Get the toggle state of a crypt button. Flag value 1: encrypt, 2: sign */
85 HRESULT get_crypt_pressed (LPDISPATCH ctrl, int flags, VARIANT *result, bool is_explorer);
86 /* Mark the mail to be mime encrypted on send. Flags as above */
87 HRESULT mark_mime_action (LPDISPATCH ctrl, int flags, bool is_explorer);
88 /* Check the if the mail was signed. Returns BOOL */
89 HRESULT get_is_crypto (LPDISPATCH ctrl, VARIANT *result);
90 /* Get the label for the signature. Returns BSTR */
91 HRESULT get_sig_label (LPDISPATCH ctrl, VARIANT *result);
92 /* Get the tooltip for the signature. Returns BSTR */
93 HRESULT get_sig_ttip (LPDISPATCH ctrl, VARIANT *result);
94 /* Get the supertip for the signature. Returns BSTR */
95 HRESULT get_sig_stip (LPDISPATCH ctrl, VARIANT *result);
96 /* Show a certificate details dialog. Returns nothing. */
97 HRESULT launch_cert_details (LPDISPATCH ctrl);
98 /* Callback to get the sigstate icon. */
99 HRESULT get_crypto_icon (LPDISPATCH ctrl, VARIANT *result);
100 /* Callback to get our own control reference */
101 HRESULT ribbon_loaded (LPDISPATCH ctrl);
102 #endif