123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621 |
- //---------------------------------------------------------------------------
- // OERules.idl
- //---------------------------------------------------------------------------
- import "objidl.idl";
- import "ocidl.idl";
- import "mimeole.idl";
- import "oestore.idl";
- //---------------------------------------------------------------------------
- // Interfaces
- //---------------------------------------------------------------------------
- interface IOERulesManager;
- interface IOEEnumRules;
- interface IOEExecRules;
- interface IOERule;
- interface IOECriteria;
- interface IOEActions;
- // Make sure we only bring in this file only once
- cpp_quote("// Bring in only once")
- cpp_quote("#if _MSC_VER > 1000")
- cpp_quote("#pragma once")
- cpp_quote("#endif")
- cpp_quote("")
- //---------------------------------------------------------------------------
- // HRESULT Macros
- //---------------------------------------------------------------------------
- cpp_quote("#ifndef FACILITY_INTERNET")
- cpp_quote("#define FACILITY_INTERNET 12")
- cpp_quote("#endif")
- cpp_quote("#ifndef HR_E")
- cpp_quote("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)")
- cpp_quote("#endif")
- cpp_quote("#ifndef HR_S")
- cpp_quote("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)")
- cpp_quote("#endif")
- cpp_quote("#ifndef HR_CODE")
- cpp_quote("#define HR_CODE(hr) (INT)(hr & 0xffff)")
- cpp_quote("#endif")
- cpp_quote("")
- typedef struct tagRULEFOLDERDATA
- {
- FILETIME ftStamp;
- FOLDERID idFolder;
- } RULEFOLDERDATA, * PRULEFOLDERDATA;
- typedef enum tagRULE_TYPE
- {
- RULE_TYPE_MAIL = 0,
- RULE_TYPE_NEWS,
- RULE_TYPE_FILTER,
- RULE_TYPE_MAX
- } RULE_TYPE;
- typedef DWORD RULE_SESSION;
- typedef enum tagACT_TYPE
- {
- ACT_TYPE_NULL = 0,
- ACT_TYPE_COPY,
- ACT_TYPE_FWD,
- ACT_TYPE_NOTIFYMSG,
- ACT_TYPE_NOTIFYSND,
- ACT_TYPE_REPLY,
- ACT_TYPE_MOVE,
- ACT_TYPE_DELETE,
- ACT_TYPE_DELETESERVER,
- ACT_TYPE_DONTDOWNLOAD,
- ACT_TYPE_HIGHLIGHT,
- ACT_TYPE_FLAG,
- ACT_TYPE_STOP,
- ACT_TYPE_READ,
- ACT_TYPE_MARKDOWNLOAD,
- ACT_TYPE_SHOW,
- ACT_TYPE_JUNKMAIL,
- ACT_TYPE_WATCH,
- ACT_TYPE_MAX
- } ACT_TYPE;
- const DWORD ACT_FLAG_DEFAULT = 0x00000000;
- const DWORD ACT_FLAG_INVERT = 0x00000001;
- typedef struct tagACT_ITEM
- {
- ACT_TYPE type;
- DWORD dwFlags;
- PROPVARIANT propvar;
- } ACT_ITEM, * PACT_ITEM;
- typedef struct tagRULEINFO
- {
- RULEID ridRule;
- IOERule * pIRule;
- } RULEINFO, *PRULEINFO;
- //---------------------------------------------------------------------------
- // Rules Manager IDs
- //---------------------------------------------------------------------------
- // For Rules
- const RULEID RULEID_JUNK = (RULEID) -3;
- const RULEID RULEID_SENDERS = (RULEID) -2;
- // For Views
- const RULEID RULEID_VIEW_ALL = (RULEID) 0x00000FFA;
- const RULEID RULEID_VIEW_UNREAD = (RULEID) 0x00000FFB;
- const RULEID RULEID_VIEW_DOWNLOADED = (RULEID) 0x00000FFC;
- const RULEID RULEID_VIEW_DELETED = (RULEID) 0x00000FFD;
- const RULEID RULEID_VIEW_REPLIES = (RULEID) 0x00000FFE;
- const RULEID RULEID_VIEW_IGNORED = (RULEID) 0x00000FFF;
- //---------------------------------------------------------------------------
- // Rules Manager HRESULTs
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- // IOERulesManager interface
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafe0-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOERulesManager : IUnknown
- {
- const DWORD RULESMGR_VERSION = 0x00050000;
-
- HRESULT Initialize(
- [in] DWORD dwFlags);
- HRESULT GetRule(
- [in] RULEID ridRule,
- [in] RULE_TYPE type,
- [in] DWORD dwFlags,
- [out] IOERule ** ppIRule);
- HRESULT FindRule(
- [in] LPCSTR pszRuleName,
- [in] RULE_TYPE type,
- [out] IOERule ** ppIRule);
- const DWORD GETF_ALL = 0x00000000;
- const DWORD GETF_EDIT = 0x00000001;
- const DWORD GETF_SENDER = 0x00000002;
- const DWORD GETF_JUNK = 0x00000004;
- const DWORD GETF_POP3 = 0x00000008;
- const DWORD GETF_NNTP = 0x00000010;
- const DWORD GETF_IMAP = 0x00000020;
- const DWORD GETF_HTTPMAIL = 0x00000040;
-
- HRESULT GetRules(
- [in] DWORD dwFlags,
- [in] RULE_TYPE typeRule,
- [in] RULEINFO ** ppinfoRule,
- [in] ULONG * pcpinfoRule);
-
- const DWORD SETF_APPEND = 0x00000000;
- const DWORD SETF_CLEAR = 0x00000001;
- const DWORD SETF_SENDER = 0x00000002;
- const DWORD SETF_JUNK = 0x00000004;
- const DWORD SETF_REPLACE = 0x00000008;
-
- HRESULT SetRules(
- [in] DWORD dwFlags,
- [in] RULE_TYPE typeRule,
- [in] RULEINFO * pinfoRule,
- [in] ULONG cpIRule);
-
- const DWORD ENUMF_ALL = 0x00000001;
- const DWORD ENUMF_EDIT = 0x00000002;
- const DWORD ENUMF_SENDER = 0x00000004;
- const DWORD ENUMF_POP3 = 0x00000008;
- const DWORD ENUMF_NNTP = 0x00000010;
- const DWORD ENUMF_IMAP = 0x00000020;
- const DWORD ENUMF_HTTPMAIL = 0x00000040;
-
- HRESULT EnumRules(
- [in] DWORD dwFlags,
- [in] RULE_TYPE type,
- [out] IOEEnumRules ** ppIEnumRules);
- HRESULT GetState(
- [in] RULE_TYPE type,
- [in] DWORD dwFlags,
- [out] DWORD * pdwState);
- const DWORD EXECF_ALL = 0x00000001;
- const DWORD EXECF_APPLY = 0x00000002;
-
- HRESULT ExecRules(
- [in] DWORD dwFlags,
- [in] RULE_TYPE type,
- [out] IOEExecRules ** ppIExecRules);
- HRESULT ExecuteRules(
- [in] RULE_TYPE typeRule,
- [in] DWORD dwFlags,
- [in] HWND hwndUI,
- [in] IOEExecRules * pIExecRules,
- [in] MESSAGEINFO * pMsgInfo,
- [in] IMessageFolder * pFolder,
- [in] IMimeMessage * pIMMsg);
- };
- //---------------------------------------------------------------------------
- // Interface IOEEnumRules
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafe2-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOEEnumRules : IUnknown
- {
- typedef [unique] IOEEnumRules *LPENUMRULES;
- HRESULT Next(
- [in] ULONG cpIRule,
- [out, size_is(cpIRule), length_is(*pcpIRuleFetched)]
- IOERule ** rgpIRule,
- [out] ULONG * pcpIRuleFetched);
- HRESULT Skip(
- [in] ULONG cpIRule);
- HRESULT Reset();
- HRESULT Clone(
- [out] IOEEnumRules ** ppIEnumRules);
- };
- //---------------------------------------------------------------------------
- // Interface IOEExecRules
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafe4-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOEExecRules : IUnknown
- {
- typedef [unique] IOEExecRules *LPEXECRULES;
- HRESULT GetState(
- [out] DWORD * pdwState);
- const DWORD ERF_ONLYSERVER = 0x00000001;
- const DWORD ERF_NOSERVER = 0x00000002;
- const DWORD ERF_SKIPPARTIALS = 0x00000004;
-
- HRESULT ExecuteRules(
- [in] DWORD dwFlags,
- [in] LPCSTR pszAcct,
- [in] MESSAGEINFO * pMsgInfo,
- [in] IMessageFolder * pFolder,
- [in] IMimePropertySet * pIMPropSet,
- [in] IMimeMessage * pIMMsg,
- [in] ULONG cbMsgSize,
- [out] ACT_ITEM ** ppActions,
- [out] ULONG * pcActions);
- HRESULT ReleaseObjects();
- HRESULT GetRuleFolder(
- [in] FOLDERID idfolder,
- [out] DWORD_PTR * pdwFolder);
- const DWORD RFT_FILE = 0x00000000;
- const DWORD RFT_HTML = 0x00000001;
- const DWORD RFT_TEXT = 0x00000002;
- const DWORD RFT_MESSAGE = 0x00000003;
-
- HRESULT GetRuleFile(
- [in] LPCSTR pszFile,
- [out] IStream ** ppstmFile,
- [out] DWORD * pdwType);
- const DWORD ASF_PLAYIFNEW = 0x00000001;
-
- HRESULT AddSoundFile(
- [in] DWORD dwFlags,
- [in] LPCSTR pszSndFile);
- HRESULT PlaySounds(
- [in] DWORD dwFlags);
- };
- //---------------------------------------------------------------------------
- // Interface IOERule
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafe6-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOERule : IUnknown
- {
- typedef enum tagRULE_PROP
- {
- RULE_PROP_NAME = 0,
- RULE_PROP_DISABLED,
- RULE_PROP_CRITERIA,
- RULE_PROP_ACTIONS,
- RULE_PROP_STATE,
- RULE_PROP_VERSION,
- RULE_PROP_READONLY,
- RULE_PROP_JUNKPCT,
- RULE_PROP_EXCPT_WAB,
- RULE_PROP_MAX
- } RULE_PROP;
- HRESULT Reset();
-
- const DWORD RULE_STATE_NULL = 0x00000000;
- const DWORD RULE_STATE_HEADER = 0x00000001;
- const DWORD RULE_STATE_ALL = 0x00000002;
-
- HRESULT GetState(
- [out] DWORD * pdwState);
- HRESULT Validate(
- [in] DWORD dwFlags);
-
- HRESULT GetProp(
- [in] RULE_PROP prop,
- [in] DWORD dwFlags,
- [in, out] PROPVARIANT * pvarResult);
- HRESULT SetProp(
- [in] RULE_PROP prop,
- [in] DWORD dwFlags,
- [in] PROPVARIANT * pvarValue);
- HRESULT Evaluate(
- [in] LPCSTR pszAcct,
- [in] MESSAGEINFO * pMsgInfo,
- [in] IMessageFolder * pFolder,
- [in] IMimePropertySet * pIMPropSet,
- [in] IMimeMessage * pIMMsg,
- [in] ULONG cbMsgSize,
- [out] ACT_ITEM ** ppActions,
- [out] ULONG * pcActions);
- HRESULT LoadReg(
- [in] LPCSTR szRegPath);
- HRESULT SaveReg(
- [in] LPCSTR szRegPath,
- [in] BOOL fClearDirty);
-
- HRESULT Clone(
- [out] IOERule ** ppIRule);
- };
- //---------------------------------------------------------------------------
- // Interface IOECriteria
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafe8-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOECriteria : IUnknown
- {
- typedef enum tagCRIT_TYPE
- {
- CRIT_TYPE_NULL = 0,
- CRIT_TYPE_NEWSGROUP,
- CRIT_TYPE_TOME,
- CRIT_TYPE_CCME,
- CRIT_TYPE_BCCME,
- CRIT_TYPE_TOADDR,
- CRIT_TYPE_CCADDR,
- CRIT_TYPE_FROMADDR,
- CRIT_TYPE_SUBJECT,
- CRIT_TYPE_BODY,
- CRIT_TYPE_TO,
- CRIT_TYPE_CC,
- CRIT_TYPE_FROM,
- CRIT_TYPE_PRIORITY,
- CRIT_TYPE_ATTACH,
- CRIT_TYPE_SIZE,
- CRIT_TYPE_DATE,
- CRIT_TYPE_HEADER,
- CRIT_TYPE_JUNK,
- CRIT_TYPE_ACCOUNT,
- CRIT_TYPE_ALL,
- CRIT_TYPE_TOORCCADDR,
- CRIT_TYPE_TOORCC,
- CRIT_TYPE_SENDER,
- CRIT_TYPE_REPLIES,
- CRIT_TYPE_DOWNLOADED,
- CRIT_TYPE_DELETED,
- CRIT_TYPE_THREADSTATE,
- CRIT_TYPE_READ,
- CRIT_TYPE_LINES,
- CRIT_TYPE_AGE,
- CRIT_TYPE_SECURE,
- CRIT_TYPE_FLAGGED,
- CRIT_TYPE_MAX
- } CRIT_TYPE;
-
- const DWORD CRIT_FLAG_DEFAULT = 0x00000000;
- const DWORD CRIT_FLAG_INVERT = 0x00000001;
- const DWORD CRIT_FLAG_MULTIPLEAND = 0x00000002;
- const DWORD CRIT_DATA_IGNORETHREAD = 0x00000002;
- const DWORD CRIT_DATA_WATCHTHREAD = 0x00000001;
- const DWORD CRIT_DATA_NORMALTHREAD = 0x00000000;
-
- const DWORD CRIT_DATA_HIPRI = 0x00000002;
- const DWORD CRIT_DATA_LOPRI = 0x00000001;
- const DWORD CRIT_DATA_NORMALPRI = 0x00000000;
-
- const DWORD CRIT_DATA_ENCRYPTSECURE = 0x00000002;
- const DWORD CRIT_DATA_SIGNEDSECURE = 0x00000001;
- const DWORD CRIT_DATA_NOSECURE = 0x00000000;
-
- typedef enum tagCRIT_LOGIC
- {
- CRIT_LOGIC_NULL = 0,
- CRIT_LOGIC_OR,
- CRIT_LOGIC_AND,
- CRIT_LOGIC_MAX
- } CRIT_LOGIC;
-
- typedef struct tagCRIT_ITEM
- {
- CRIT_TYPE type;
- DWORD dwFlags;
- PROPVARIANT propvar;
- CRIT_LOGIC logic;
- } CRIT_ITEM, * PCRIT_ITEM;
-
- HRESULT Reset();
- const DWORD CRIT_STATE_NULL = 0x00000000;
- const DWORD CRIT_STATE_DIRTY = 0x00000001;
- const DWORD CRIT_STATE_LOADED = 0x00000002;
-
- const DWORD CRIT_STATE_HEADER = 0x00010000;
- const DWORD CRIT_STATE_ALL = 0x00020000;
- const DWORD CRIT_STATE_MASK = 0x00FF0000;
-
- HRESULT GetState(
- [out] DWORD * pdwState);
-
- HRESULT GetCriteria(
- [in] DWORD dwFlags,
- [out] PCRIT_ITEM * ppItem,
- [out] ULONG * pcItem);
- HRESULT SetCriteria(
- [in] DWORD dwFlags,
- [in] CRIT_ITEM * pItem,
- [in] ULONG cItem);
- HRESULT Validate(
- [in] DWORD dwFlags);
-
- HRESULT AppendCriteria(
- [in] DWORD dwFlags,
- [in] CRIT_LOGIC logic,
- [in] CRIT_ITEM * pItem,
- [in] ULONG cItem,
- [out] ULONG * pcItemAppended);
-
- HRESULT MatchMessage(
- [in] LPCSTR pszAcct,
- [in] MESSAGEINFO * pMsgInfo,
- [in] IMessageFolder * pFolder,
- [in] IMimePropertySet * pIMPropSet,
- [in] IMimeMessage * pIMMsg,
- [in] ULONG cbMsgSize);
- HRESULT LoadReg(
- [in] LPCSTR szRegPath);
- HRESULT SaveReg(
- [in] LPCSTR szRegPath,
- [in] BOOL fClearDirty);
-
- HRESULT Clone(
- [out] IOECriteria ** ppICriteria);
- };
- //---------------------------------------------------------------------------
- // Interface IOEActions
- //---------------------------------------------------------------------------
- [
- object,
- uuid(626bafea-e5d6-11d1-b1dd-006097d503d9),
- pointer_default(unique),
- version(1.0)
- ]
- interface IOEActions : IUnknown
- {
- const DWORD ACT_DATA_NULL = 0x00000000;
-
- const DWORD ACT_DATA_WATCHTHREAD = 0x00000001;
- const DWORD ACT_DATA_IGNORETHREAD = 0x00000002;
-
- const DWORD ACT_DATA_SHOW = 0x00000001;
- const DWORD ACT_DATA_HIDE = 0x00000002;
-
- HRESULT Reset();
-
- const DWORD ACT_STATE_NULL = 0x00000000;
- const DWORD ACT_STATE_DIRTY = 0x00000100;
- const DWORD ACT_STATE_LOADED = 0x00000200;
-
- const DWORD ACT_STATE_SERVER = 0x01000000;
- const DWORD ACT_STATE_LOCAL = 0x02000000;
- const DWORD ACT_STATE_MASK = 0xFF000000;
-
- HRESULT GetState(
- [out] DWORD * pdwState);
-
- HRESULT GetActions(
- [in] DWORD dwFlags,
- [out] PACT_ITEM * ppItem,
- [out] ULONG * pcItem);
- HRESULT SetActions(
- [in] DWORD dwFlags,
- [in] ACT_ITEM * pItem,
- [in] ULONG cItem);
-
- HRESULT Validate(
- [in] DWORD dwFlags);
-
- HRESULT AppendActions(
- [in] DWORD dwFlags,
- [in] ACT_ITEM * pItem,
- [in] ULONG cItem,
- [out] ULONG * pcItemAppended);
-
- HRESULT LoadReg(
- [in] LPCSTR szRegPath);
- HRESULT SaveReg(
- [in] LPCSTR szRegPath,
- [in] BOOL fClearDirty);
- HRESULT Clone(
- [out] IOEActions ** ppIActions);
- };
- //---------------------------------------------------------------------------
- // OE Rules Type Library
- //---------------------------------------------------------------------------
- [
- uuid(626bafec-e5d6-11d1-b1dd-006097d503d9),
- version(1.0),
- helpstring("Microsoft Outlook Express Rules Type Library")
- ]
- library OERules
- {
- importlib("stdole2.tlb");
- [
- uuid(626bafe1-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OERulesManager
- {
- [default] interface IOERulesManager;
- };
- [
- uuid(626bafe3-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OEEnumRules
- {
- [default] interface IOEEnumRules;
- };
- [
- uuid(626bafe5-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OEExecRules
- {
- [default] interface IOEExecRules;
- };
- [
- uuid(626bafe7-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OERule
- {
- [default] interface IOERule;
- interface IPersistStream;
- };
- [
- uuid(626bafe9-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OECriteria
- {
- [default] interface IOECriteria;
- interface IPersistStream;
- };
- [
- uuid(626bafeb-e5d6-11d1-b1dd-006097d503d9),
- ]
- coclass OEActions
- {
- [default] interface IOEActions;
- interface IPersistStream;
- };
- };
|