summaryrefslogtreecommitdiff
path: root/mapi/pmapi.h
diff options
context:
space:
mode:
authorEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
committerEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
commit094ca96844842928810f14844413109fc6cdd890 (patch)
treee60efbb980f38ba9308ccb4fb2b77b87bbc115f3 /mapi/pmapi.h
downloadalpine-094ca96844842928810f14844413109fc6cdd890.tar.xz
Initial Alpine Version
Diffstat (limited to 'mapi/pmapi.h')
-rw-r--r--mapi/pmapi.h244
1 files changed, 244 insertions, 0 deletions
diff --git a/mapi/pmapi.h b/mapi/pmapi.h
new file mode 100644
index 00000000..2a8d28f8
--- /dev/null
+++ b/mapi/pmapi.h
@@ -0,0 +1,244 @@
+/*
+ * ========================================================================
+ * Copyright 2006 University of Washington
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ========================================================================
+ */
+
+#include "windows.h"
+
+#include "mapi.h"
+#include "io.h"
+#include "fcntl.h"
+#include "sys/stat.h"
+#include "string.h"
+#include "stdio.h"
+#include "errno.h"
+#include "process.h"
+#include "resource.h"
+#include "time.h"
+#undef ERROR
+#include "../c-client-dll/mail.h"
+#include "../c-client-dll/rfc822.h"
+#include "../c-client-dll/osdep.h"
+#include "../c-client-dll/smtp.h"
+#include "../c-client-dll/misc.h"
+#include "ctype.h"
+
+#define USER_ID 0
+#define PERSONAL_NAME 1
+#define USER_DOMAIN 2
+#define SMTP_SERVER 3
+#define INBOX_PATH 4
+#define FEATURE_LIST 5
+#define CHARACTER_SET 6
+#define FOLDER_COLLECTIONS 7
+#define PMAPI_SEND_BEHAVIOR 8
+#define DEFAULT_FCC 9
+#define PMAPI_SUPPRESS_DIALOGS 10
+#define PMAPI_STRICT_NO_DIALOG 11
+#define NUMPRCVARS 12
+#define ENABLE8BIT 0
+#define NUMPRCFEATS 1
+#define PMSB_ALWAYS_PROMPT 0
+#define PMSB_ALWAYS_SEND 1
+#define PMSB_NEVER_SEND 2
+#define PMSD_NO 0
+#define PMSD_YES 1
+#define PMSD_PROMPT 2
+#define errBufSize 300 /* for buffers to sprintf %.200s error messages into */
+#define BUFLEN 1024
+#define EDITLEN 128
+#define MSDEBUG ms_global && ms_global->debug
+#define NOT_PINERC 0
+#define IS_PINERC 1
+#define PINERC_FILE "tmpmapiuwpinerc"
+#define ErrorBox(msg,parm){ \
+ char buf[errBufSize]; \
+ sprintf(buf, msg, parm); \
+ ErrorBoxFunc(buf); \
+ } /* a macro so parm can be a pointer or a value as per % format */
+#define DEBUG_WRITE(msg, parm) { if(MSDEBUG) fprintf(ms_global->dfd,msg,parm);}
+
+#ifdef ANSI
+#define PROTO(args) args
+#else
+#define PROTO(args) ()
+#endif
+
+/* used for pine pwd file */
+#define FIRSTCH 0x20
+#define LASTCH 0x7e
+#define TABSZ (LASTCH - FIRSTCH + 1)
+
+
+typedef struct rc_entry{
+ char *var;
+ union {
+ char *p;
+ char **l;
+ } val;
+ int islist;
+ int ispmapivar;
+} rc_entry_s;
+
+typedef struct rc_feat {
+ char *var;
+ int is_set;
+} rc_feat_s;
+
+typedef struct STRLIST{
+ char *str;
+ struct STRLIST *next;
+} STRLIST_S;
+
+typedef struct file_struct{
+ char *filename;
+ struct file_struct *next;
+} file_s;
+
+typedef enum {RecipDesc, Message} BufType;
+
+typedef struct mbuffer_list{
+ void *buf;
+ int arraysize; /* should always be 1 unless it's one of those silly arrays */
+ BufType type;
+ struct mbuffer_list *next;
+} MBUFFER_LIST_S;
+
+typedef struct strbuffer{
+ char *buf;
+ unsigned long cur_bytes;
+ unsigned long increment;
+ unsigned long bufsize;
+} STRBUFFER_S;
+
+typedef struct dlg_edits{
+ char edit1[EDITLEN];
+ char edit2[EDITLEN];
+} dlg_edits_s;
+
+typedef struct pw_cache {
+ char user[EDITLEN];
+ char pwd[EDITLEN];
+ char host[EDITLEN];
+ int validpw;
+ struct pw_cache *next;
+} pw_cache_s;
+
+typedef struct sessionl{
+ NETMBX *mb;
+ dlg_edits_s dlge;
+ pw_cache_s *pwc;
+ MAILSTREAM *open_stream;
+ char *currently_open;
+ struct {
+ unsigned dlg_cancel:1;
+ unsigned int mapi_logon_ui:1;
+ unsigned int check_stream:1;
+ /* int passfile_checked; */
+ } flags;
+ file_s *fs;
+ lpMapiMessage FAR lpm;
+ HWND mhwnd;
+ unsigned long session_number;
+ struct sessionl *next;
+} sessionlist_s;
+
+typedef struct mapi_global{
+ char *debugFile;
+ int debug;
+ FILE *dfd;
+ char *pineExe;
+ char *pineExeAlt;
+ char *pinerc;
+ char *pineconf;
+ char *pinercex;
+ char *fccfolder;
+ int inited;
+ char *tmpmbxptr;
+ rc_entry_s *prcvars[NUMPRCVARS];
+ rc_feat_s *prcfeats[NUMPRCFEATS];
+ int pmapi_send_behavior;
+ int pmapi_suppress_dialogs;
+ int pmapi_strict_no_dialog;
+ sessionlist_s *sessionlist;
+ sessionlist_s *cs; /* the current session, used for logins */
+ unsigned long next_session;
+ unsigned long attach_no;
+ unsigned long attached;
+ MBUFFER_LIST_S *mapi_bufs;
+ char *attachDir;
+ HINSTANCE mhinst;
+} mapi_global_s;
+
+extern struct mapi_global *ms_global;
+
+void ErrorBoxFunc(char *msg);
+char *quote(char *old);
+char *mstrdup(char *old);
+int msprint(char *str);
+int msprint1(char *str, void *arg1);
+int msprint_message_structure(lpMapiMessage lpm);
+int msprint_recipient_structure(lpMapiRecipDesc lmrd, int mapi_orig_is_unexpected);
+int msprint_file_structure(lpMapiFileDesc lmfd);
+
+int est_size(ADDRESS *a);
+int send_documents(char *files, char sep);
+unsigned long send_msg_nodlg(LHANDLE lhSession, ULONG ulUIParam,
+ lpMapiMessage lpMessage, FLAGS flFlags, ULONG ulReserved);
+ADDRESS *mapirecip2address(lpMapiRecipDesc lpmrd);
+long pmapi_soutr(STRBUFFER_S *s, char *str);
+char *TmpCopy(char *srcFile, int is_pinerc);
+sessionlist_s *new_sessionlist();
+sessionlist_s *free_sessionlist_node(sessionlist_s *cs);
+sessionlist_s *get_session(unsigned long num);
+lpMapiRecipDesc new_MapiRecipDesc(int arraysize);
+void free_MapiRecipDesc(lpMapiRecipDesc buf, int arraysize);
+lpMapiMessage new_MapiMessage(int arraysize);
+void free_MapiMessage(lpMapiMessage buf, int arraysize);
+int new_mbuffer(void *buf, int arraysize, BufType type);
+int free_mbuffer(void *buf);
+int InitPineSpecific(sessionlist_s *cs);
+MAILSTREAM *mapi_mail_open(sessionlist_s *cs, MAILSTREAM *stream, char *name, long options);
+MAILSTREAM *check_mailstream(sessionlist_s *cs);
+unsigned long convert_to_msgno(char *msgid);
+int fetch_structure_and_attachments(long msgno, long flags,
+ FLAGS MAPIflags, sessionlist_s *cs);
+char *message_structure_to_mailto_url(lpMapiMessage lpm);
+ULONG FAR PASCAL MAPISendMail(LHANDLE lhSession, ULONG ulUIParam, lpMapiMessage lpMessage,
+ FLAGS flFlags, ULONG ulReserved);
+ULONG FAR PASCAL MAPILogon(ULONG ulUIParam, LPTSTR lpszProfileName, LPTSTR lpszPassword,
+ FLAGS flFlags, ULONG ulReserved, LPLHANDLE lplhSession);
+ULONG FAR PASCAL MAPILogoff (LHANDLE lhSession, ULONG ulUIParam, FLAGS flFlags, ULONG ulReserved);
+ULONG FAR PASCAL MAPIFindNext (LHANDLE lhSession, ULONG ulUIParam, LPSTR lpszMessageType,
+ LPSTR lpszSeedMessageID, FLAGS flFlags, ULONG ulReserved,
+ LPSTR lpszMessageID);
+ULONG FAR PASCAL MAPIReadMail(LHANDLE lhSession, ULONG ulUIParam, LPSTR lpszMessageID,
+ FLAGS flFlags, ULONG ulReserved, lpMapiMessage FAR *lppMessage);
+ULONG FAR PASCAL MAPIAddress(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszCaption,
+ ULONG nEditFields, LPTSTR lpszLabels, ULONG nRecips,
+ lpMapiRecipDesc lpRecips, FLAGS flFlags, ULONG ulReserved,
+ LPULONG lpnNewRecips, lpMapiRecipDesc FAR * lppNewRecips);
+ULONG FAR PASCAL MAPIDeleteMail(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszMessageID,
+ FLAGS flFlags, ULONG ulReserved);
+ULONG FAR PASCAL MAPIDetails(LHANDLE lhSession, ULONG ulUIParam, lpMapiRecipDesc lpRecip,
+ FLAGS flFlags, ULONG ulReserved);
+ULONG FAR PASCAL MAPIFreeBuffer(LPVOID pv);
+ULONG FAR PASCAL MAPIResolveName(LHANDLE lhSession, ULONG ulUIParam, LPTSTR lpszName,
+ FLAGS flFlags, ULONG ulReserved, lpMapiRecipDesc FAR * lppRecip);
+ULONG FAR PASCAL MAPISaveMail(LHANDLE lhSession, ULONG ulUIParam, lpMapiMessage lpMessage,
+ FLAGS flFlags, ULONG ulReserved, LPTSTR lpszMessageID);
+ULONG FAR PASCAL MAPISendDocuments(ULONG ulUIParam, LPTSTR lpszDelimChar, LPTSTR lpszFullPaths,
+ LPTSTR lpszFileNames, ULONG ulReserved);
+
+/* rfc1522.c */
+char *rfc1522_encode PROTO((char *, size_t, unsigned char *, char *));
+void get_pair PROTO((char *, char **, char **, int, int));
+void removing_leading_and_trailing_white_space PROTO((char *));