home *** CD-ROM | disk | FTP | other *** search
- /*
- * _ S M H . H
- *
- * Sample mail handling hook
- * Copyright 1992-95 Microsoft Corporation. All Rights Reserved.
- */
-
- /* RICHEDIT OLE callback object method definitions */
- /* IRichEditOleCallback Interface --------------------------------------------- */
-
- #define MAPI_IRICHEDITOLECALLBACK_METHODS(IPURE) \
- MAPIMETHOD(GetNewStorage) \
- (THIS_ LPSTORAGE FAR * lppstg) IPURE; \
- MAPIMETHOD(GetInPlaceContext) \
- (THIS_ LPOLEINPLACEFRAME FAR * ppipframe, \
- LPOLEINPLACEUIWINDOW FAR * ppipuiDoc, \
- LPOLEINPLACEFRAMEINFO pipfinfo) IPURE; \
- MAPIMETHOD(ShowContainerUI) \
- (THIS_ BOOL fShow) IPURE; \
- MAPIMETHOD(QueryInsertObject) \
- (THIS_ LPCLSID pclsid, \
- LPSTORAGE pstg, \
- LONG cp) IPURE; \
- MAPIMETHOD(DeleteObject) \
- (THIS_ LPOLEOBJECT poleobj) IPURE; \
- MAPIMETHOD(QueryAcceptData) \
- (THIS_ LPDATAOBJECT lpdataobj, \
- CLIPFORMAT FAR * lpcfFormat, \
- DWORD reco, \
- BOOL fReally, \
- HGLOBAL hMetaPict) IPURE; \
- MAPIMETHOD(ContextSensitiveHelp) \
- (THIS_ BOOL fEnterMode) IPURE; \
- MAPIMETHOD(GetClipboardData) \
- (THIS_ CHARRANGE FAR * lpchrg, \
- DWORD reco, \
- LPDATAOBJECT FAR * lppdataobj); \
- MAPIMETHOD(GetDragDropEffect) \
- (THIS_ BOOL fDrag, \
- DWORD grfKeyState, \
- LPDWORD pdwEffect) IPURE; \
- MAPIMETHOD(GetContextMenu) \
- (THIS_ WORD seltype, \
- LPOLEOBJECT lpoleobj, \
- CHARRANGE FAR * lpchrg, \
- HMENU FAR * lphmenu) IPURE; \
-
- /*
- /* Object Vtable definition and declairation
- */
- #undef INTERFACE
- #define INTERFACE struct _REOC
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, REOC_)
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_IRICHEDITOLECALLBACK_METHODS (IMPL)
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, REOC_)
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_IRICHEDITOLECALLBACK_METHODS (IMPL)
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
- DECLARE_MAPI_INTERFACE (REOC_)
- {
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_IRICHEDITOLECALLBACK_METHODS (IMPL)
- };
-
-
- /*
- * Object Vtable definition and declairation
- */
- #undef INTERFACE
- #define INTERFACE struct _SMH
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, SMH_)
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_ISPOOLERHOOK_METHODS (IMPL)
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, SMH_)
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_ISPOOLERHOOK_METHODS (IMPL)
- #undef MAPIMETHOD_
- #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
- DECLARE_MAPI_INTERFACE (SMH_)
- {
- MAPI_IUNKNOWN_METHODS (IMPL)
- MAPI_ISPOOLERHOOK_METHODS (IMPL)
- };
-
- /*
- * Misc. Defines
- *
- * GROW_SIZE is the incremental amount to grow buffers that hold arrays
- * of structures. This is used to reduce the number of allocations in
- * certain situations (ie. configuration)
- */
- #define GROW_SIZE 4
-
- /*
- * cStoMax is the maximum number of stores per profile supported by SMH.
- * This limit is purely an imposed limit and can be increased or
- * decreased with no other changes required.
- */
- #define cStoMax 64
-
- /*
- * cchNameMax is used to limit the names and values of filters.
- */
- #define cchNameMax MAX_PATH
-
- /*
- * Store table structure definitions
- *
- * STOENTRY
- * This structure is used as a part of the STOTABLE structure.
- * The union component to the structure allows SMH to cast an
- * LPSPropValue pointer to a LPSTOENTRY where the first property
- * is dropped in favor of storing an LPMDB.
- *
- * STO
- * This stucture is defined such that SMH can cast an SRow pointer
- * to an LPSTO. Again, this construct is used extensively by the
- * STOTABLE implementation.
- *
- * STOTABLE
- * This stucture can be mapped to an SRowSet. The store table
- * implementation uses this to let MAPI allocate the memory needed
- * for keeping pointers to open stores.
- */
- typedef struct _STOENTRY
- {
- union
- {
- LPMDB lpmdb;
- SPropValue valPad;
- };
- SPropValue lpProps[];
-
- } STOENTRY, FAR * LPSTOENTRY;
-
- typedef struct _STO
- {
- ULONG ulReserved;
- ULONG cValues;
- union
- {
- LPSTOENTRY lpstoe;
- LPSPropValue lpProps;
- };
-
- } STO, FAR * LPSTO;
-
- typedef struct _STOTABLE
- {
- ULONG cSto;
- STO aSto[cStoMax];
-
- } STOTABLE, FAR * LPSTOTABLE;
-
-
- /*
- * Archive bucket structures definitions
- *
- * DFT
- * The DFT structure contains two FILETIMEs that define the delta of
- * time supported by the archive folder.
- *
- * BKIT
- * The BKIT structure contains all the information required to
- * process the archival of a message into that bucket.
- *
- * The EntryID of the parent folder, the year folder, and the
- * monthly folder are all cashed as is the MAPIFOLDER object. The
- * DFT for the year and month are cached as well.
- */
- typedef struct _DFT
- {
- FILETIME ftStart;
- FILETIME ftEnd;
-
- } DFT, FAR * LPDFT;
-
- typedef struct _BKIT
- {
- ULONG cbeid;
- LPENTRYID lpeid;
- LPMAPIFOLDER lpfldr;
- DFT dft;
-
- ULONG cbeidYr;
- LPENTRYID lpeidYr;
- LPMAPIFOLDER lpfldrYr;
- DFT dftYr;
-
- ULONG cbeidParent;
- LPENTRYID lpeidParent;
- LPMAPIFOLDER lpfldrParent;
-
- } BKIT, FAR * LPBKIT;
-
-
- /*
- * SMH stucture definitions
- *
- * WB
- * The WB (wastebasket) structure contains the information
- * required to archive deleted mail on any given message store
- *
- * RULE
- * The RULE structure contains the information required to filter an
- * inbound message into the desired target folder
- *
- * OOF
- * The OOF structure contains the information required to generate
- * out-of-office responses to incoming messages
- *
- * SMH
- * The SMH object is supports the ISpoolerHook interface and is the
- * object handed to mapi to facilitate all message filtering.
- *
- */
- typedef struct _WB
- {
- struct _WB FAR * wbNext; /* next pointer */
- struct _SMH FAR * lpsmh; /* owning SMH object */
-
- LPMDB lpmdb; /* MDB on which this WB applies */
- LPMAPITABLE lptbl; /* contents table of the wastebasket */
- LPMAPIFOLDER lpfldr; /* folder object of the wastebasket */
- LPSPropValue lpvalEid; /* entryid of the wastebasket */
- ULONG ulAdvz; /* connection ID returned from Advise() */
- BKIT bkit; /* bucket cache for this WB */
- HANDLE ht; /* filtering thread */
- BOOL fBail; /* bailout flag */
-
- } WB, FAR * LPWB;
-
- typedef struct _RULE
- {
- struct _RULE FAR * rlNext; /* next pointer */
-
- MAPIUID muid; /* profile section UID */
- UINT rlTyp; /* rule type */
- ULONG ulFlags; /* rule attributes */
- SRestriction FAR * lpres; /* recipient rule restriction */
- LPTSTR lpszData; /* value to filter against */
- LPTSTR rgszSnd[3]; /* sound to play */
- LPMDB lpmdb; /* MDB owning the target folder */
- LPMAPIFOLDER lpfldr; /* target folder for filter */
- LPSPropValue lpvalEid; /* entryid of target folder */
- LPTSTR lpszAnno; /* auto-response annotation */
- LPBYTE lpbRTF; /* auto-response RTF */
- ULONG cbRTF; /* auto-response RTF size */
- ULONG cvalRecip; /* auto-response recip prop count */
- LPSPropValue lpvalRecip; /* auto-response recip */
- BKIT bkit; /* bucket cache for rule */
-
- } RULE, FAR * LPRULE;
-
- typedef struct _OOF
- {
- LPTABLEDATA lptad; /* Table data object */
- LPMAPITABLE lptbl; /* Table data view */
- ULONG cRecips; /* Count of recips */
- LPTSTR lpszBody; /* Oof Body Text */
- LPBYTE lpbRTF; /* Body RTF */
- ULONG cbRTF; /* RTF size */
-
- } OOF, FAR * LPOOF;
-
- typedef struct _SMH
- {
- SMH_Vtbl FAR * lpVtbl;
- ULONG lcInit; /* object refcount */
- HINSTANCE hinst; /* DLL instance */
- HANDLE hevtCfg; /* configuration event */
-
- LPMAPISESSION lpsess; /* client session */
- LPALLOCATEBUFFER lpfnAlloc; /* MAPIAllocateBuffer */
- LPALLOCATEMORE lpfnAllocMore; /* MAPIAllocateMore */
- LPFREEBUFFER lpfnFree; /* MAPIFreeBuffer */
- MAPIUID muid; /* hook provider section UID */
-
- unsigned int fCatSm:1; /* options flags */
- unsigned int fCatSmByYr:1;
- unsigned int fCatWb:1;
- unsigned int fOof:1;
- unsigned int fAtp:1;
- LPSTOTABLE lpstotbl; /* store table */
- SPropValue valEx; /* msg class exclustions */
- LPWB lstWb; /* list pointer of WBs */
- LPRULE lstRl; /* list pointer of rules */
- BKIT bkitSm; /* bucket cache for sent mail */
- OOF oof; /* OOF information */
-
- } SMH, FAR * LPSMH;
-
- /*
- * Configuration dialog structure definition
- *
- * REOC
- * The Richedit OLE Callback structure refers to an object that is
- * used by the configuration dialogs that support RTF edit controls
- *
- * SCD (SMH Configuration Dialog)
- * The SMH Configuration Dialog structure is used to pass
- * important information in and out of the configuration dialogs
- * and property sheets.
- */
- typedef struct _SCD
- {
- HINSTANCE hinst; /* DLL instance */
- HWND hwnd; /* parent window */
-
- LPALLOCATEBUFFER lpfnAlloc; /* MAPIAllocateBuffer */
- LPALLOCATEMORE lpfnAllocMore; /* MAPIAllocateMore */
- LPFREEBUFFER lpfnFree; /* MAPIFreeBuffer */
- LPMALLOC lpmalloc; /* pointer to LPMALLOC obj */
- LPMAPISUP lpsup; /* pointer to support obj */
- LPPROVIDERADMIN lpadmin; /* pointer to profile admin obj */
- LPPROFSECT lpsec; /* profile section obj */
-
- LPMAPISESSION lpsess; /* session pointer used in filters */
-
- TCHAR rgch[cchNameMax];
- LPSPropValue lpval; /* current set of property values */
-
- UINT crl; /* count of current rules */
- UINT crlMax; /* count of maximum rules */
- LPTSTR FAR * lppsz; /* pointer to array of names */
- LPSBinary lpbin; /* pointer to array of muids */
-
- ULONG ulFlags; /* configuration flags */
- SCODE sc; /* dialog failure error code */
-
- } SCD, FAR * LPSCD;
-
- typedef struct _FORMATBAR
- {
- LPSCD lpscd; /* owning config dialog */
- CHARFORMAT cf; /* character format */
- HBRUSH hbrBtnFace; /* button face color brush */
- HDC hdc; /* device context */
- HMENU hmnuColor; /* color picker menu */
- HWND hwndEdit; /* associated edit control */
- HWND hwndFont; /* font name combo */
- HWND hwndFrame; /* toolbar HWND */
- HWND hwndSize; /* font size combo */
- HWND hwndTb; /* toolbar */
- HANDLE hfnt; /* toolbar font */
- PARAFORMAT pf; /* paragraph format */
- UINT cSize; /* font entry count */
- WNDPROC lpfnToolbar; /* subclassed toolbar proc */
- struct _REOC FAR * lpreoc; /* richedit ole callback */
-
- } FORMATBAR, FAR * LPFORMATBAR;
-
- typedef struct _REOC
- {
- REOC_Vtbl FAR * lpVtbl;
- ULONG lcInit; /* object refcount */
- LPSTORAGE lpstg; /* root storage obj */
- UINT cSub; /* count of sub obj's */
- LPALLOCATEBUFFER lpfnAlloc; /* MAPIAllocateBuffer */
- LPALLOCATEMORE lpfnAllocMore; /* MAPIAllocateMore */
- LPFREEBUFFER lpfnFree; /* MAPIFreeBuffer */
- LPFORMATBAR lpfb; /* formatting bar */
-
- } REOC, FAR * LPREOC;
-
- typedef struct _RTFS
- {
- LPALLOCATEBUFFER lpfnAlloc; /* MAPIAllocateBuffer */
- LPFREEBUFFER lpfnFree; /* MAPIFreeBuffer */
- LPBYTE lpb; /* stream data */
- LONG cb; /* stream data size */
- LONG cbMax; /* max stream size */
-
- } RTFS, FAR * LPRTFS;
-
- /*
- * SMH proptags
- */
- #define PR_SMH_FLAGS PROP_TAG(PT_LONG, 0x6600)
- #define PR_SMH_RULES PROP_TAG(PT_MV_BINARY, 0x6601)
- #define PR_SMH_EXCLUSIONS PROP_TAG(PT_MV_TSTRING, 0x6602)
- #define PR_SMH_EXCLUSIONS_A PROP_TAG(PT_MV_STRING8, 0x6602)
- #define PR_SMH_EXCLUSIONS_W PROP_TAG(PT_MV_UNICODE, 0x6602)
- #define PR_SMH_RULE_NAMES PROP_TAG(PT_MV_TSTRING, 0x6603)
- #define PR_SMH_RULE_NAMES_A PROP_TAG(PT_MV_STRING8, 0x6603)
- #define PR_SMH_RULE_NAMES_W PROP_TAG(PT_MV_UNICODE, 0x6603)
- #define PR_SMH_OOF_ENABLED PROP_TAG(PT_BOOLEAN, 0x6604)
- #define PR_SMH_OOF_TEXT PROP_TAG(PT_TSTRING, 0x6605)
- #define PR_SMH_OOF_TEXT_A PROP_TAG(PT_STRING8, 0x6605)
- #define PR_SMH_OOF_TEXT_W PROP_TAG(PT_UNICODE, 0x6605)
- #define PR_SMH_OOF_RTF PROP_TAG(PT_BINARY, 0x6606)
- #define PR_SMH_SOUND_SCHEMES PROP_TAG(PT_MV_BINARY, 0x6607)
- #define PR_SMH_REPFWD_SCHEMES PROP_TAG(PT_MV_BINARY, 0x6608)
-
- /*
- * Value for PR_SMH_VERSION
- */
- #define MAKE_SMH_VERSION(_mj,_mn) (((ULONG)(0x0000FFFF & _mj) << 16) | \
- (ULONG)(0x0000FFFF & _mn))
- #define SMH_VERSION MAKE_SMH_VERSION (1,0)
-
- /*
- * Values for PR_SMH_FLAGS
- */
- #define SMH_ADD_TO_PAB ((ULONG)0x00000001)
- #define SMH_FILTER_DELETED ((ULONG)0x00000010)
- #define SMH_FILTER_DELETED_YR ((ULONG)0x00000020)
- #define SMH_FILTER_INBOUND ((ULONG)0x00000100)
- #define SMH_FILTER_SENTMAIL ((ULONG)0x00001000)
- #define SMH_FILTER_SENTMAIL_YR ((ULONG)0x00002000)
- #define SMH_UNREAD_VIEWER ((ULONG)0x00010000)
-
- /*
- * Filtering rule proptags
- */
- #define PR_RULE_TYPE PROP_TAG(PT_LONG, 0x6610)
- #define PR_RULE_DATA PROP_TAG(PT_BINARY, 0x6611)
- #define PR_RULE_FLAGS PROP_TAG(PT_LONG, 0x6612)
- #define PR_RULE_TARGET_ENTRYID PROP_TAG(PT_BINARY, 0x6613)
- #define PR_RULE_TARGET_PATH PROP_TAG(PT_TSTRING, 0x6614)
- #define PR_RULE_TARGET_PATH_A PROP_TAG(PT_STRING8, 0x6614)
- #define PR_RULE_TARGET_PATH_W PROP_TAG(PT_UNICODE, 0x6614)
- #define PR_RULE_STORE_ENTRYID PROP_TAG(PT_BINARY, 0x6615)
- #define PR_RULE_STORE_DISPLAY_NAME PROP_TAG(PT_TSTRING, 0x6616)
- #define PR_RULE_STORE_DISPLAY_NAME_A PROP_TAG(PT_STRING8, 0x6616)
- #define PR_RULE_STORE_DISPLAY_NAME_W PROP_TAG(PT_UNICODE, 0x6616)
- #define PR_RULE_SOUND_NORMAL PROP_TAG(PT_TSTRING, 0x6617)
- #define PR_RULE_SOUND_NORMAL_A PROP_TAG(PT_STRING8, 0x6617)
- #define PR_RULE_SOUND_NORMAL_W PROP_TAG(PT_UNICODE, 0x6617)
- #define PR_RULE_SOUND_HIPRI PROP_TAG(PT_TSTRING, 0x6618)
- #define PR_RULE_SOUND_HIPRI_A PROP_TAG(PT_STRING8, 0x6618)
- #define PR_RULE_SOUND_HIPRI_W PROP_TAG(PT_UNICODE, 0x6618)
- #define PR_RULE_SOUND_LOPRI PROP_TAG(PT_TSTRING, 0x6619)
- #define PR_RULE_SOUND_LOPRI_A PROP_TAG(PT_STRING8, 0x6619)
- #define PR_RULE_SOUND_LOPRI_W PROP_TAG(PT_UNICODE, 0x6619)
-
- #define PR_RULE_FORWARD_RECIP PROP_TAG(PT_TSTRING, 0x6620)
- #define PR_RULE_FORWARD_RECIP_A PROP_TAG(PT_STRING8, 0x6620)
- #define PR_RULE_FORWARD_RECIP_W PROP_TAG(PT_UNICODE, 0x6620)
- #define PR_RULE_FORWARD_RECIP_ENTRYID PROP_TAG(PT_BINARY, 0x6621)
- #define PR_RULE_REP_FWD_TEXT PROP_TAG(PT_TSTRING, 0x6624)
- #define PR_RULE_REP_FWD_TEXT_A PROP_TAG(PT_STRING8, 0x6624)
- #define PR_RULE_REP_FWD_TEXT_W PROP_TAG(PT_UNICODE, 0x6624)
- #define PR_RULE_REP_FWD_RTF PROP_TAG(PT_BINARY, 0x6625)
-
- /*
- * Values for PR_RULE_TYPE
- */
- #define RL_ANY_RECIP ((UINT)0x0001)
- #define RL_BCC_RECIP ((UINT)0x0002)
- #define RL_BODY ((UINT)0x0003)
- #define RL_CC_RECIP ((UINT)0x0004)
- #define RL_HAS_ATTACH ((UINT)0x0005)
- #define RL_MSG_CLASS ((UINT)0x0006)
- #define RL_SENDER ((UINT)0x0007)
- #define RL_SUBJECT ((UINT)0x0008)
- #define RL_TO_RECIP ((UINT)0x0009)
- #define RL_TYPE_MAX ((UINT)0x0010)
-
- /*
- * Values for PR_RULE_FLAGS
- */
- #define RULE_ARCHIVED ((ULONG)0x00000001)
- #define RULE_ARCHIVED_BY_YEAR ((ULONG)0x00000002)
- #define RULE_NOT ((ULONG)0x00000004)
- #define RULE_DELETE ((ULONG)0x00000008)
- #define RULE_AUTO_RESPONSE ((ULONG)0x00000010)
- #define RULE_AUTO_REPLY ((ULONG)0x00000020)
- #define RULE_AUTO_FORWARD ((ULONG)0x00000040)
- #define RULE_AUTO_APPEND_ORIG ((ULONG)0x00000080)
- #define RULE_PLAY_SOUNDS ((ULONG)0x00000100)
- #define RULE_NO_MOVE ((ULONG)0x10000000)
- #define RULE_TERMINAL ((ULONG)0x80000000)
-
- /*
- * Rule configuration flags
- */
- #define NEW_RULE ((UINT)1)
- #define EDIT_RULE ((UINT)2)
-
- /* Logon properties */
-
- enum {
- ipProfile,
- ipFlags,
- ipRules,
- ipNames,
- ipOof,
- ipOofEnabled,
- ipOofRtf,
- ipSounds,
- ipRepFwd,
- ipExc,
- cpMax
- };
-
- /* Rule properties */
-
- enum {
- ipRLDisp,
- ipRLType,
- ipRLData,
- ipRLFlags,
- ipRLEid,
- ipRLPath,
- ipRLSEid,
- ipRLStore,
- ipRLLoPri,
- ipRLSound,
- ipRLHiPri,
- ipRLFwdRecip,
- ipRLFwdEid,
- ipRLRepFwdRTF,
- ipRLRepFwd,
- cpRLMax
- };
-
- enum {
- isndLo, /* IMPORTANCE_LOW */
- isndNorm, /* IMPORTANCE_NORMAL */
- isndHi, /* IMPORTANCE_HIGH */
- csndMax
- };
-
- /* Message properties */
-
- enum {
- ipMsgFlgs,
- ipMsgSubj,
- ipMsgSentRep,
- ipMsgSentRepEA,
- ipPriority,
- cpMsgPrps
- };
-
- /* Recipient restriction enums */
-
- enum {ivRecip, ivEmail, ivDispNm, cvMax };
- enum {iresAnd, iresRecip, iresOr, iresEmail, iresDispNm, cresMax };
-
-
- /*
- * Configuration dialogs
- */
-
- typedef HRESULT (STDMETHODCALLTYPE FAR * LPOPENPROFSECT) (
- LPVOID lpvOPSCtxt,
- LPMAPIUID lpUID,
- LPCIID lpInterface,
- ULONG ulFlags,
- LPPROFSECT FAR * lppProfSect);
-
- HRESULT
- HrUpdateProfileFormat (LPVOID lpvOPSCtxt,
- LPOPENPROFSECT lpfnOpenProfSect,
- LPALLOCATEMORE lpfnMore,
- LPFREEBUFFER lpfnFree,
- LPSPropValue lpvalNew,
- LPSPropValue lpvalOld);
-
- extern LPVOID lpCtl3D;
- #if 0
- #if !defined (_WIN95)
- #define RegDlg3D(_inst) Ctl3dRegister (_inst);
- #define MakeDlg3D(_dlg) Ctl3dSubclassDlgEx(_dlg, CTL3D_ALL)
- #define UnregDlg3D(_inst) Ctl3dUnregister (_inst);
- #else
- #define RegDlg3D(_inst)
- #define MakeDlg3D(_dlg)
- #define UnregDlg3D(_inst)
- #endif
- #endif
-
- #ifdef WIN32
- #define FWin4Shell() ((GetVersion() & 0x000000FF) >= 0x04)
- #else
- #define FWin4Shell() (FALSE)
- #endif
-
- #define FHandleWm(_fn,_dlg,_wm,_wp,_lp) HANDLE_WM_##_wm(_dlg,_wp,_lp,_fn##_##_wm)
- HRESULT HrDisplayPropSheets (HINSTANCE hinst, HWND hwnd, LPSCD lpscd);
- STDMETHODIMP_(SCODE) ScCreateToolbar (LPSCD lpscd, HWND hwnd, UINT idPeg, BOOL fPropsheet, LPFORMATBAR FAR *);
- STDMETHODIMP_(BOOL) EXPORT FDoRTFCommand (HWND hctrl, UINT id, UINT command);
- void UpdateFormatBar (HWND hdlg);
-
- SCODE ScExportFilters (LPSCD lpscd, HWND hwnd);
- SCODE ScImportFilters (LPSCD lpscd, HWND hwnd, HWND hctrl);
-
- DWORD CALLBACK WriteRTFToBuffer (DWORD dwCookie, LPBYTE lpb, LONG cb, LONG FAR * lpcb);
- DWORD CALLBACK ReadRTFFromBuffer (DWORD dwCookie, LPBYTE lpb, LONG cb, LONG FAR * lpcb);
-
- HRESULT HrInitOof (LPSMH lpsmh, LPSPropValue lpvalAnno, LPSPropValue lpvalRTF);
-
-
- /*
- * Configuration Events
- */
- #ifdef _WIN32
- HRESULT HrGetConfigEvent (HANDLE FAR *);
- VOID SignalConfigChanged (VOID);
- BOOL FConfigChanged (HANDLE);
- #endif
-
- /*
- * FLpszContainsLpsz()
- *
- * Purpose:
- *
- * Finds the given sub-string in the passed in string.
- *
- * Arguments:
- *
- * _s source string
- * _p pattern string
- *
- * Returns:
- *
- * FALSE iff the string was not found, TRUE otherwise.
- */
- #define FLpszContainsLpsz(_s,_p) FRKFindSubpsz(_s,lstrlen(_s),_p,lstrlen(_p),FL_IGNORECASE)
-
-
- /*
- * Message Archive Functions
- */
- HRESULT
- HrArchiveMessage (LPSMH lpsmh,
- LPMESSAGE lpmsg,
- LPMAPIFOLDER lpfldrDef,
- LPMDB lpmdbDef,
- LPBKIT lpbkit,
- BOOL fCatByYear,
- ULONG FAR * lpcbeid,
- LPBYTE FAR * lppeid);
-
- HRESULT
- HrArchiveByDate (LPSMH lpsmh,
- FILETIME FAR * lpft,
- LPMAPIFOLDER lpfldrDef,
- LPMDB lpmdbDef,
- LPBKIT lpbkit,
- BOOL fCatByYear,
- ULONG cbeid,
- LPBYTE lpeid);
-
-
- HRESULT HrInitDeletedMailFilter (LPSMH lpsmh);
-
- BOOL
- FRKFindSubpsz (LPSTR pszTarget,
- ULONG cbTarget,
- LPSTR pszPattern,
- ULONG cbPattern,
- ULONG ulFuzzyLevel);
-
- /*
- * Stores table
- */
- HRESULT HrInitStoresTable (LPSMH, LPMAPISESSION);
- HRESULT HrOpenMdbFromEid (LPSMH, ULONG, LPENTRYID, LPMDB FAR *);
- HRESULT HrOpenMdbFromName (LPSMH, LPTSTR, LPMDB FAR *);
- HRESULT HrOpenStoEntry (LPMAPISESSION, LPSTO, LPMDB FAR *);
- VOID ReleaseStoresTable (LPSMH);
-
-
- /*
- * Automated Response Functions
- */
- HRESULT HrGenerateResponse (LPSMH lpsmf, LPRULE lprl, LPMAPIFOLDER lpfldr, LPMESSAGE lpmsg);
- VOID ReleaseOof (LPOOF lpoof);
-
-
- /*
- * Automated PAB additions
- */
- HRESULT HrAddEntriesToPab (LPSMH, LPMESSAGE);
-
-
- /*
- * RTF\Richedit Components
- */
- #ifdef _WIN32
- #define RICHEDIT_LIB "RICHED32.DLL"
- #else
- #define RICHEDIT_LIB "RICHED.DLL"
- #endif
-
- STDMETHODIMP_(SCODE)
- ScNewRicheditCallback (LPFORMATBAR lpfb,
- LPALLOCATEBUFFER lpfnAlloc,
- LPALLOCATEMORE lpfnMore,
- LPFREEBUFFER lpfnFree,
- LPREOC FAR * lppreoc);
-
- /*
- * WM_NOTIFY #defines (taken from WINUSER.H)
- */
- #ifdef WIN16
- #define WM_NOTIFY 0x004E
- #define HANDLE_WM_NOTIFY(hwnd,wParam,lParam,fn) (fn)((hwnd),(int)(wParam),(NMHDR FAR*)(lParam))
-
- /*
- * Mapped bitmapi #defines (taken from COMMCTRL.H)
- */
- typedef struct
- {
- COLORREF from;
- COLORREF to;
- } COLORMAP, FAR * LPCOLORMAP;
-
- /*
- * Toolbar button #defines (taken from COMMCTRL.H)
- */
- typedef struct _TBBUTTON {
- int iBitmap;
- int idCommand;
- BYTE fsState;
- BYTE fsStyle;
- BYTE bReserved[2];
- DWORD dwData;
- int iString;
- } TBBUTTON, NEAR* PTBBUTTON, FAR* LPTBBUTTON;
- typedef const TBBUTTON FAR* LPCTBBUTTON;
- #define TBSTATE_ENABLED 0x04
- #define TBSTYLE_BUTTON 0x00
- #define TBSTYLE_SEP 0x01
- #define TBSTYLE_CHECK 0x02
- #define TB_CHECKBUTTON (WM_USER + 2)
- #define TB_GETITEMRECT (WM_USER + 29)
- #define CCS_TOP 0x00000001L
-
- WINCOMMCTRLAPI HWND WINAPI CreateToolbarEx (HWND hwnd, DWORD ws, UINT wID, int nBitmaps,
- HINSTANCE hBMInst, UINT wBMID, LPCTBBUTTON lpButtons,
- int iNumButtons, int dxButton, int dyButton,
- int dxBitmap, int dyBitmap, UINT uStructSize);
-
- HBITMAP WINAPI CreateMappedBitmap (HINSTANCE hInstance, INT idBitmap, BOOL bDiscardable,
- LPCOLORMAP lpColorMap, INT iNumMaps);
- #endif /* WIN16 */
-