Windows-Server-2003/inetcore/outlookexpress/inc/msoeopt.h

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