/[gpgoe]/trunk/src/GPGOE.h
ViewVC logotype

Annotation of /trunk/src/GPGOE.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 19 - (hide annotations)
Sun Jun 4 10:12:47 2006 UTC (18 years, 11 months ago) by twoaday
File MIME type: text/plain
File size: 5124 byte(s)
Prepare new release.


1 twoaday 1 /* GPGOE.h - GnuPG for Outlook Express
2     * Copyright (C) 2001, 2002, 2003, 2006 Timo Schulz
3     *
4     * This file is part of GPGOE.
5     *
6     * GPGOE is free software; you can redistribute it and/or modify
7     * it under the terms of the GNU Lesser General Public License as published by
8     * the Free Software Foundation; either version 2.1 of the License, or
9     * (at your option) any later version.
10     *
11     * GPGOE 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 General Public License for more details.
15     *
16     * You should have received a copy of the GNU Lesser General Public License
17     * along with GPGOE; if not, write to the Free Software Foundation,
18     * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19     */
20    
21     #ifndef GPGOE_H
22     #define GPGOE_H
23    
24 twoaday 19 /* Macros to support a separate section for variables. */
25     #ifdef __GNUC__
26     #define ATTR_SEC __attribute__((section (".SHARDAT"), shared))
27     #else
28     #define ATTR_SEC
29     #endif
30    
31     #define HASH_BUCKETS 3
32    
33 twoaday 12 /* gettext support. */
34     const char *gettext (const char *msgid);
35     #define _(X) gettext ((X))
36 twoaday 1
37 twoaday 12
38 twoaday 1 #include <malloc.h>
39 twoaday 16 /* safe wrapper around free. */
40 twoaday 1 #define free_if_alloc(ptr) \
41 twoaday 11 do { \
42 twoaday 1 if (ptr) free (ptr); \
43     ptr = NULL; \
44 twoaday 11 } while (0)
45 twoaday 1
46    
47     /* Wrapper for memory deallocation but overwrite the buffer before.
48     Useful for sentensive information like PINs or passwords. */
49     #define wipememory2(_ptr,_set,_len) do { \
50     volatile char *_vptr = (volatile char *)(_ptr); \
51     size_t _vlen = (_len); \
52     while (_vlen) { *_vptr = (_set); _vptr++; _vlen--; } \
53     } while(0)
54    
55     #define wipememory(_ptr,_len) wipememory2 (_ptr,0,_len)
56    
57 twoaday 16 /* Dialog IDs for the various operations. */
58 twoaday 12 #define ID_OE_SELECTALL 40125
59     #define ID_OE_COPY 40484
60     #define ID_OE_PASTE 40231
61     #define ID_OE_SAVE_ATT 40104
62 twoaday 1
63 twoaday 12 /* Common dialogs (Get{Open,Save}FileName) */
64     #define ID_OF_OK 1
65     #define ID_OF_CANCEL 2
66     #define ID_OF_OPEN_FILE 1152
67     #define ID_OF_SAVE_FILE 1148
68 twoaday 1
69    
70 twoaday 19 /* Supported plug-in modes. */
71     enum gpgoe_mode_t {
72     GPGOE_MODE_NORMAL = 0,
73     GPGOE_MODE_PLAINREPLY = 1, /* decrypt mails before a reply. */
74     GPGOE_MODE_CACHEPASS = 2, /* cache passphrase. */
75     };
76    
77 twoaday 1 /* Context for the recipient list. */
78     struct recip_list_s {
79     struct recip_list_s *next;
80     gpgme_key_t key;
81     char *addr;
82     };
83     typedef struct recip_list_s *recip_list_t;
84    
85     /* Actual plugin context. */
86     struct plugin_ctx_s {
87     HWND msg_wnd, main_wnd, addr_wnd;
88     HWND to_wnd, cc_wnd, bcc_wnd;
89 twoaday 12 HWND attach;
90 twoaday 1 char *to;
91     char *cc;
92     char *bcc;
93     int sign;
94     int encrypt;
95     recip_list_t rset;
96     char errbuf[256];
97 twoaday 11 char *orig_text;
98 twoaday 12 int use_utf8;
99 twoaday 1 };
100     typedef struct plugin_ctx_s *plugin_ctx_t;
101    
102     /* Viewer context. */
103     struct viewer_ctx_s {
104 twoaday 16 HWND main_wnd;
105 twoaday 1 const char *msg;
106     };
107     typedef struct viewer_ctx_s *viewer_ctx_t;
108    
109    
110 twoaday 19 struct verify_ctx_s {
111     gpgme_signature_t sig;
112     gpgme_data_t text;
113     };
114     typedef struct verify_ctx_s *verify_ctx_t;
115    
116 twoaday 11 /*-- GPGOE.c --*/
117     /*EXPORT*/ int gpgoe_initialize (void);
118     /*EXPORT*/ int gpgoe_remove (void);
119 twoaday 19 /*EXPORT*/ void gpgoe_set_active_modes (int mode);
120     /*EXPORT*/ int gpgoe_get_active_modes (void);
121 twoaday 11
122 twoaday 1 /*-- OEProc.c --*/
123 twoaday 16 extern plugin_ctx_t oe_plug;
124 twoaday 1 extern HINSTANCE mod_hinst_dll;
125 twoaday 16 extern HANDLE plugin_active;
126    
127     /* support for the mailer window. */
128 twoaday 1 extern WNDPROC oe_proc_old;
129 twoaday 16 LRESULT CALLBACK oe_proc (HWND hwnd, UINT msg,
130     WPARAM wparam, LPARAM lparam);
131    
132     /* support for the common dialogs. */
133 twoaday 12 extern WNDPROC of_proc_old;
134 twoaday 16 LRESULT CALLBACK of_proc (HWND hwnd, UINT msg,
135     WPARAM wparam, LPARAM lparam);
136 twoaday 1
137 twoaday 16 /* support for the main window. */
138     extern WNDPROC oe_main_proc_old;
139     LRESULT CALLBACK oe_main_proc (HWND hwnd, UINT msg,
140     WPARAM wparam, LPARAM lparam);
141    
142    
143 twoaday 1 /*-- OECrypto.c --*/
144     gpgme_error_t oe_handle_mail (plugin_ctx_t ctx);
145 twoaday 16 gpgme_error_t oe_decrypt_msg (HWND main_wnd, char **r_msg);
146 twoaday 1
147     /*-- OEMisc.c --*/
148 twoaday 16 void center_window (HWND hwndChild, HWND parent);
149 twoaday 1 char* utf8_to_native (const char *string);
150 twoaday 12 char* native_to_utf8 (const char *string);
151 twoaday 1 char* get_clip_text (HWND hwnd);
152     int set_clip_text (HWND hwnd, const char *text, int nbytes);
153     void show_error (HWND hwnd, const char *caption,
154     UINT type, const char *fmt, ...);
155     void* xcalloc (size_t n, size_t m);
156     char* xstrdup (const char *s);
157 twoaday 12 void xfree (void *p);
158 twoaday 16 void quote_msg_text (const char *inp, char **r_outp);
159 twoaday 1
160     /*-- dialogs --*/
161     BOOL CALLBACK encrypt_dlg_proc (HWND dlg, UINT msg, WPARAM wparam,
162     LPARAM lparam);
163     BOOL CALLBACK viewer_dlg_proc (HWND dlg, UINT msg, WPARAM wparam,
164     LPARAM lparam);
165     BOOL CALLBACK verify_dlg_proc (HWND dlg, UINT msg, WPARAM wparam,
166     LPARAM lparam);
167    
168 twoaday 11 /* Opaque passphrase callback handle. */
169 twoaday 1 struct pass_cb_s;
170     typedef struct pass_cb_s *pass_cb_t;
171    
172     gpgme_error_t passphrase_cb (void *hook,
173     const char *uid_hint,
174     const char *passphrase_info,
175     int prev_was_bad, int fd);
176     void free_pass_cb (pass_cb_t cb);
177     pass_cb_t new_pass_cb (HWND main);
178 twoaday 18 int pass_cb_cancelled (pass_cb_t cb);
179 twoaday 19 void reset_pass_cache (void);
180 twoaday 1
181 twoaday 12 /*-- OENLS.c --*/
182     int setup_gettext (void);
183    
184 twoaday 1 #endif /* GPGOE_H */

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26