You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
621 lines
18 KiB
621 lines
18 KiB
//---------------------------------------------------------------------------
|
|
// 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;
|
|
};
|
|
|
|
};
|
|
|