113 lines
3.7 KiB
C++
113 lines
3.7 KiB
C++
#ifndef _INC_MSOEOPT_H
|
|
#define _INC_MSOEOPT_H
|
|
|
|
#include <msoeprop.h>
|
|
|
|
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
|