#ifndef _INC_MSOEOPT_H #define _INC_MSOEOPT_H #include interface IOptionBucketEx; // {ED5EE630-5BA4-11d1-AA16-006097D474C4} DEFINE_GUID(IID_IOptionBucketNotify, 0xed5ee630, 0x5ba4, 0x11d1, 0xaa, 0x16, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); interface IOptionBucketNotify : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE DoNotification(IOptionBucketEx *pBckt, HWND hwnd, PROPID id) = 0; }; MSOEACCTAPI CreatePropertyBucket(IPropertyBucket **ppPropBckt); typedef HRESULT (CALLBACK *PFNVALIDPROP)(PROPID, LPCPROPVARIANT); typedef struct tagOPTIONINFO { PROPID id; VARTYPE vt; int iszRegKey; // index into rgpszRegKey LPCSTR pszRegValue; LPCSTR pszDef; int cbDefBinary; // if pszDef points to a binary struct, this is the size DWORD dwMin; DWORD dwMax; PFNVALIDPROP pfnValid; } OPTIONINFO; typedef const OPTIONINFO *LPCOPTIONINFO; // {4091C7B0-5557-11d1-AA13-006097D474C4} DEFINE_GUID(IID_IOptionBucketEx, 0x4091c7b0, 0x5557, 0x11d1, 0xaa, 0x13, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); // flags for ISetProperty #define SP_DONOTIFY 0x0001 typedef struct tagOPTBCKTINIT { LPCOPTIONINFO rgInfo; int cInfo; HKEY hkey; LPCSTR pszRegKeyBase; LPCSTR *rgpszRegSubKey; int cszRegKey; } OPTBCKTINIT, *LPOPTBCKTINIT; typedef const OPTBCKTINIT *LPCOPTBCKTINIT; // implemented by athena // used by options and accounts interface IOptionBucketEx : public IOptionBucket { public: virtual HRESULT STDMETHODCALLTYPE Initialize(LPCOPTBCKTINIT pInit) = 0; virtual HRESULT STDMETHODCALLTYPE ISetProperty(HWND hwnd, LPCSTR pszProp, LPCPROPVARIANT pVar, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE SetNotification(IOptionBucketNotify *pNotify) = 0; virtual HRESULT STDMETHODCALLTYPE EnableNotification(BOOL fEnable) = 0; virtual LONG STDMETHODCALLTYPE GetValue(LPCSTR szSubKey, LPCSTR szValue, DWORD *ptype, LPBYTE pb, DWORD *pcb) = 0; virtual LONG STDMETHODCALLTYPE SetValue(LPCSTR szSubKey, LPCSTR szValue, DWORD type, LPBYTE pb, DWORD cb) = 0; }; MSOEACCTAPI CreateOptionBucketEx(IOptionBucketEx **ppOptBcktEx); #ifdef DEAD // IDisplayOption::SetOption flags #define SETOPTION_DISABLE 0x0001 #define SETOPTION_HIDE 0x0002 // {EC320F22-4B33-11d1-AA10-006097D474C4} DEFINE_GUID(IID_IDisplayOptions, 0xec320f22, 0x4b33, 0x11d1, 0xaa, 0x10, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); // implemented by athena interface IDisplayOptions : public IOptionBucket { public: virtual HRESULT STDMETHODCALLTYPE InsertPage(HPROPSHEETPAGE hpage, DWORD dwBeforePageID, DWORD dwReserved) = 0; virtual HRESULT STDMETHODCALLTYPE RemovePage(DWORD dwPageID, DWORD dwReserved) = 0; virtual HRESULT STDMETHODCALLTYPE SetOption(PROPID id, DWORD dwFlags) = 0; }; // {EC320F23-4B33-11d1-AA10-006097D474C4} DEFINE_GUID(IID_IOptionsExtension, 0xec320f23, 0x4b33, 0x11d1, 0xaa, 0x10, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); // implemented by externals interface IOptionsExtension : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE DisplayOptions(HWND hwndParent, IOptionBucket *pCont, DWORD dwReserved) = 0; virtual HRESULT STDMETHODCALLTYPE InitializeOptions(IDisplayOptions *pOpt, DWORD dwReserved) = 0; }; interface IAccount; // {EC320F24-4B33-11d1-AA10-006097D474C4} DEFINE_GUID(IID_IAccountExtension, 0xec320f24, 0x4b33, 0x11d1, 0xaa, 0x10, 0x0, 0x60, 0x97, 0xd4, 0x74, 0xc4); // implemented by externals interface IAccountExtension : public IOptionsExtension { public: virtual HRESULT STDMETHODCALLTYPE NewAccountWizard(HWND hwndParent, IAccount *pAcctNew) = 0; }; #endif // DEAD #endif // _INC_MSOEOPT_H