home *** CD-ROM | disk | FTP | other *** search
- HRESULT HrStartOleAndRegisterClassFactory(void);
- HRESULT HrStopForms(void);
-
- #define NOTPURE
- #define MAX_ADVISE 48
-
- /*
- * Types
- */
-
- // ----- class factory
- class FRMFAC : public IClassFactory
- {
- protected:
- ULONG cRef;
- CLSID clsid;
-
- ~FRMFAC(void);
-
- public:
- FRMFAC();
-
- // *** IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
- STDMETHOD_(ULONG,AddRef) (THIS);
- STDMETHOD_(ULONG,Release) (THIS);
-
- // *** IClassFactory methods
- STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObject);
- STDMETHOD(LockServer) (THIS_ BOOL fLock);
- };
-
- class FRMFMR : public FRMFAC
- {
- public:
- FRMFMR();
- };
-
- // ----- The minimal interface a form can support
- class FRM : public IPersistMessage, public IMAPIForm
- {
- protected:
- ULONG cRef; // Reference count
- CLSID clsid;
-
- BOOL fDirty; // Is our message dirty?
- BOOL fNoScribble; // Are we in no-scribble mode?
- BOOL fSentMessage; // Are we reading a sent message?
-
- // advise handling
-
- BOOL afAdvisee[MAX_ADVISE];
- LPMAPIVIEWADVISESINK aAdvisePtrs[MAX_ADVISE];
-
- // data
-
- SQUARE b[SQRS_MAX]; // The board
- int turn; // Who's turn it is
- long movenum;
- long score;
-
- ~FRM(void);
-
- public:
- LPMESSAGE pMessage;
- LPMAPIMESSAGESITE pMessageSite;
- LPMAPISESSION pSession;
-
- LPMAPIFORMMGR pFormMgr;
- LPMAPIFORMINFO pFormInfo;
-
- FRM(REFCLSID clsid);
-
- MAPI_IUNKNOWN_METHODS(NOTPURE)
- MAPI_GETLASTERROR_METHOD(NOTPURE)
- MAPI_IPERSISTMESSAGE_METHODS(NOTPURE)
- MAPI_IMAPIFORM_METHODS(NOTPURE)
-
- HRESULT ShowCurrentMessage(ULONG ulhwndParent);
- HRESULT LaunchReplyMessage(ULONG ulhwndParent);
- VOID FRM::GetCheckersData(SQUARE* out_b, int* out_turn, long* out_movenum, long* out_score);
- VOID FRM::SetCheckersData(SQUARE* in_b, int in_turn, long in_movenumber, long in_score);
- HRESULT FRM::Remember(LPMAPIMESSAGESITE pmsite, LPMESSAGE pmsg);
- HRESULT FRM::Forget(VOID);
- HRESULT SendForm(VOID);
- HRESULT FRM::AddressForm(HWND hwnd, BOOL fDontShowIfRecipsExist);
- SCODE FRM::ScGetRecipientAdrlist(LPMESSAGE pmsg, LPADRLIST * ppal);
-
- };
-
- /*
- * Macros
- */
-
- #define ADVISE(X) \
- for (LONG i = 0; i < MAX_ADVISE; i++) \
- if (afAdvisee[i]) \
- aAdvisePtrs[i]->X
-
- #define ReleaseObj(_pobj) \
- if (_pobj) \
- (_pobj)->Release()
-
- /*
- * Dependencies specific to this form
- */
-
- #define CHKR_FORM
- extern HWND hMainWnd;
-
- #define PR_BOARD PROP_TAG( PT_BINARY, 0x6800)
- #define PR_TURN PROP_TAG( PT_LONG, 0x6801)
- #define PR_MOVENUMBER PROP_TAG( PT_LONG, 0x6802)
- #define PR_SCORINGFUNC PROP_TAG( PT_LONG, 0x6803)
-
-