// CodeGear C++Builder
// Copyright (c) 1995, 2012 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SMIWAB.pas' rev: 24.00 (Win32)

#ifndef SmiwabHPP
#define SmiwabHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <Winapi.Windows.hpp>	// Pascal unit
#include <Winapi.ActiveX.hpp>	// Pascal unit
#include <System.Win.ComObj.hpp>	// Pascal unit
#include <SMCells.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Smiwab
{
//-- type declarations -------------------------------------------------------
typedef char * LPTSTR;

struct _MAPIERROR;
typedef _MAPIERROR *PMapiError;

struct DECLSPEC_DRECORD _MAPIERROR
{
public:
	unsigned ulVersion;
	char *lpszError;
	char *lpszComponent;
	unsigned ulLowLevelError;
	unsigned ulContext;
};


typedef _MAPIERROR TMapiError;

struct _SPropTagArray;
typedef _SPropTagArray *PSPropTagArray;

struct DECLSPEC_DRECORD _SPropTagArray
{
public:
	unsigned cValues;
	System::StaticArray<unsigned, 1> aulPropTag;
};


typedef _SPropTagArray TSPropTagArray;

struct _SBinary;
typedef _SBinary *PSBinary;

struct DECLSPEC_DRECORD _SBinary
{
public:
	unsigned cb;
	void *lpb;
};


typedef _SBinary TSBinary;

struct _SShortArray;
typedef _SShortArray *PSShortArray;

struct DECLSPEC_DRECORD _SShortArray
{
public:
	unsigned cValues;
	short *lpi;
};


typedef _SShortArray TSShortArray;

struct _SLongArray;
typedef _SLongArray *PSLongArray;

struct DECLSPEC_DRECORD _SLongArray
{
public:
	unsigned cValues;
	int *lpl;
};


typedef _SLongArray TSLongArray;

struct _SRealArray;
typedef _SRealArray *PSRealArray;

struct DECLSPEC_DRECORD _SRealArray
{
public:
	unsigned cValues;
	float *lpflt;
};


typedef _SRealArray TSRealArray;

struct _SCurrencyArray;
typedef _SCurrencyArray *PSCurrencyArray;

struct DECLSPEC_DRECORD _SCurrencyArray
{
public:
	unsigned cValues;
	System::Currency *lpcur;
};


typedef _SCurrencyArray TSCurrencyArray;

struct _SDoubleArray;
typedef _SDoubleArray *PSDoubleArray;

struct DECLSPEC_DRECORD _SDoubleArray
{
public:
	unsigned cValues;
	double *lpdbl;
};


typedef _SDoubleArray TSDoubleArray;

struct _SBinaryArray;
typedef _SBinaryArray *PSBinaryArray;

struct DECLSPEC_DRECORD _SBinaryArray
{
public:
	unsigned cValues;
	_SBinary *lpbin;
};


typedef _SBinaryArray TSBinaryArray;

struct _SDateTimeArray;
typedef _SDateTimeArray *PSDateTimeArray;

struct DECLSPEC_DRECORD _SDateTimeArray
{
public:
	unsigned cValues;
	_FILETIME *lpft;
};


typedef _SDateTimeArray TSDateTimeArray;

struct _SAppTimeArray;
typedef _SAppTimeArray *PSAppTimeArray;

struct DECLSPEC_DRECORD _SAppTimeArray
{
public:
	unsigned cValues;
	double *lpat;
};


typedef _SAppTimeArray TSAppTimeArray;

struct _SWStringArray;
typedef _SWStringArray *PSWStringArray;

struct DECLSPEC_DRECORD _SWStringArray
{
public:
	unsigned cValues;
	System::WideChar * *lppszW;
};


typedef _SWStringArray TSWStringArray;

struct _SLPSTRArray;
typedef _SLPSTRArray *PSLPSTRArray;

struct DECLSPEC_DRECORD _SLPSTRArray
{
public:
	unsigned cValues;
	char * *lppszA;
};


typedef _SLPSTRArray TSLPSTRArray;

struct _SGuidArray;
typedef _SGuidArray *PSGuidArray;

struct DECLSPEC_DRECORD _SGuidArray
{
public:
	unsigned cValues;
	GUID *lpguid;
};


typedef _SGuidArray TSGuidArray;

struct _SLargeIntegerArray;
typedef _SLargeIntegerArray *PSLargeIntegerArray;

struct DECLSPEC_DRECORD _SLargeIntegerArray
{
public:
	unsigned cValues;
	__int64 *lpli;
};


typedef _SLargeIntegerArray TSLargeIntegerArray;

struct DECLSPEC_DRECORD __UPV
{
	#pragma pack(push,1)
	union
	{
		struct 
		{
			int x;
		};
		struct 
		{
			int err;
		};
		struct 
		{
			_SLargeIntegerArray MVli;
		};
		struct 
		{
			_SGuidArray MVguid;
		};
		struct 
		{
			_SWStringArray MVszW;
		};
		struct 
		{
			_SLPSTRArray MVszA;
		};
		struct 
		{
			_SBinaryArray MVbin;
		};
		struct 
		{
			_SDateTimeArray MVft;
		};
		struct 
		{
			_SAppTimeArray MVat;
		};
		struct 
		{
			_SCurrencyArray MVcur;
		};
		struct 
		{
			_SDoubleArray MVdbl;
		};
		struct 
		{
			_SRealArray MVflt;
		};
		struct 
		{
			_SLongArray MVl;
		};
		struct 
		{
			_SShortArray MVi;
		};
		struct 
		{
			__int64 li;
		};
		struct 
		{
			GUID *lpguid;
		};
		struct 
		{
			System::WideChar *lpszW;
		};
		struct 
		{
			_SBinary bin;
		};
		struct 
		{
			char *lpszA;
		};
		struct 
		{
			_FILETIME ft;
		};
		struct 
		{
			double at;
		};
		struct 
		{
			System::CurrencyBase cur;
		};
		struct 
		{
			System::Word b;
		};
		struct 
		{
			double dbl;
		};
		struct 
		{
			float flt;
		};
		struct 
		{
			unsigned ul;
		};
		struct 
		{
			int l;
		};
		struct 
		{
			short i;
		};
		
	};
	#pragma pack(pop)
};


typedef __UPV _PV;

struct _SPropValue;
typedef _SPropValue *PSPropValue;

struct DECLSPEC_DRECORD _SPropValue
{
public:
	unsigned ulPropTag;
	unsigned dwAlignPad;
	__UPV Value;
};


typedef _SPropValue TSPropValue;

struct _SPropProblem;
typedef _SPropProblem *PSPropProblem;

struct DECLSPEC_DRECORD _SPropProblem
{
public:
	unsigned ulIndex;
	unsigned ulPropTag;
	int _scode;
};


typedef _SPropProblem TSPropProblem;

struct _SPropProblemArray;
typedef _SPropProblemArray *PSPropProblemArray;

struct DECLSPEC_DRECORD _SPropProblemArray
{
public:
	unsigned cProblem;
	System::StaticArray<_SPropProblem, 1> aProblem;
};


typedef _SPropProblemArray TSPropProblemArray;

typedef GUID *PCIID;

__interface IMAPIProgress;
typedef System::DelphiInterface<IMAPIProgress> _di_IMAPIProgress;
__interface IMAPIProgress  : public System::IInterface 
{
	
public:
	virtual HRESULT __stdcall Progress(unsigned ulValue, unsigned ulCount, unsigned ulTotal) = 0 ;
	virtual HRESULT __stdcall GetFlags(unsigned &lpulFlags) = 0 ;
	virtual HRESULT __stdcall GetMax(unsigned &lpulMax) = 0 ;
	virtual HRESULT __stdcall GetMin(unsigned &lpulMin) = 0 ;
	virtual HRESULT __stdcall SetLimits(PULONG lpulMin, PULONG lpulMax, PULONG lpulFlags) = 0 ;
};

struct _MAPINAMEID;
typedef _MAPINAMEID *PMapiNameID;

struct DECLSPEC_DRECORD _MAPINAMEID
{
public:
	GUID *lpguid;
	unsigned ulKind;
	#pragma pack(push,1)
	union
	{
		struct 
		{
			System::WideChar *lpwstrName;
		};
		struct 
		{
			int lID;
		};
		
	};
	#pragma pack(pop)
};


typedef _MAPINAMEID TMapiNameID;

__interface IMAPIProp;
typedef System::DelphiInterface<IMAPIProp> _di_IMAPIProp;
__interface IMAPIProp  : public System::IInterface 
{
	
public:
	virtual HRESULT __stdcall GetLastError(HRESULT hResult, unsigned ulFlags, _MAPIERROR &lppMAPIError) = 0 ;
	virtual HRESULT __stdcall SaveChanges(unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall GetProps(PSPropTagArray lpPropTagArray, unsigned ulFlags, PULONG lpcValues, PSPropValue &lppPropArray) = 0 ;
	virtual HRESULT __stdcall GetPropList(unsigned ulFlags, PSPropTagArray &lppPropTagArray) = 0 ;
	virtual HRESULT __stdcall OpenProperty(unsigned ulPropTag, const GUID &lpiid, unsigned ulInterfaceOptions, unsigned ulFlags, /* out */ System::_di_IInterface &lppUnk) = 0 ;
	virtual HRESULT __stdcall SetProps(unsigned cValues, PSPropValue lpPropArray, PSPropProblemArray lppProblems) = 0 ;
	virtual HRESULT __stdcall DeleteProps(PSPropTagArray lpPropTagArray, PSPropProblemArray lppProblems) = 0 ;
	virtual HRESULT __stdcall CopyTo(unsigned ciidExclude, PCIID rgiidExclude, PSPropTagArray lpExcludeProps, unsigned ulUIParam, _di_IMAPIProgress lpProgress, System::PGUID lpInterface, void * lpDestObj, unsigned ulFlags, PSPropProblemArray lppProblems) = 0 ;
	virtual HRESULT __stdcall CopyProps(PSPropTagArray lpIncludeProps, unsigned ulUIParam, _di_IMAPIProgress lpProgress, System::PGUID lpInterface, void * lpDestObj, unsigned ulFlags, PSPropProblemArray lppProblems) = 0 ;
	virtual HRESULT __stdcall GetNamesFromIDs(PSPropTagArray lppPropTags, System::PGUID lpPropSetGuid, unsigned ulFlags, unsigned &lpcPropNames, _MAPINAMEID &lpppPropNames) = 0 ;
	virtual HRESULT __stdcall GetIDsFromNames(unsigned cPropNames, PMapiNameID lppPropNames, unsigned ulFlags, PSPropTagArray &lppPropTags) = 0 ;
};

struct _ENTRYID;
typedef _ENTRYID *PEntryID;

struct DECLSPEC_DRECORD _ENTRYID
{
public:
	System::StaticArray<System::Byte, 4> abFlags;
	System::StaticArray<System::Byte, 1> ab;
};


typedef _ENTRYID TEntryID;

typedef System::StaticArray<_SPropValue, 256> TSPropsArray;

typedef TSPropsArray *PSPropsArray;

struct _SRow;
typedef _SRow *PSRow;

struct DECLSPEC_DRECORD _SRow
{
public:
	unsigned ulAdrEntryPad;
	unsigned cValues;
	TSPropsArray *lpProps;
};


typedef _SRow TSRow;

struct _SRowSet;
typedef _SRowSet *PSRowSet;

struct DECLSPEC_DRECORD _SRowSet
{
public:
	unsigned cRows;
	System::StaticArray<_SRow, 1> aRow;
};


typedef _SRowSet TSRowSet;

struct _ERROR_NOTIFICATION;
typedef _ERROR_NOTIFICATION *PErrorNotification;

struct DECLSPEC_DRECORD _ERROR_NOTIFICATION
{
public:
	unsigned cbEntryID;
	_ENTRYID *lpEntryID;
	int scode;
	unsigned ulFlags;
	_MAPIERROR *lpMAPIError;
};


typedef _ERROR_NOTIFICATION TErrorNotification;

struct _NEWMAIL_NOTIFICATION;
typedef _NEWMAIL_NOTIFICATION *PNewMailNotification;

struct DECLSPEC_DRECORD _NEWMAIL_NOTIFICATION
{
public:
	unsigned cbEntryID;
	_ENTRYID *lpEntryID;
	unsigned cbParentID;
	_ENTRYID *lpParentID;
	unsigned ulFlags;
	char *lpszMessageClass;
	unsigned ulMessageFlags;
};


typedef _NEWMAIL_NOTIFICATION TNewMailNotification;

struct _OBJECT_NOTIFICATION;
typedef _OBJECT_NOTIFICATION *PObjectNotification;

struct DECLSPEC_DRECORD _OBJECT_NOTIFICATION
{
public:
	unsigned cbEntryID;
	_ENTRYID *lpEntryID;
	unsigned ulObjType;
	unsigned cbParentID;
	_ENTRYID *lpParentID;
	unsigned cbOldID;
	_ENTRYID *lpOldID;
	unsigned cbOldParentID;
	_ENTRYID *lpOldParentID;
	_SPropTagArray *lpPropTagArray;
};


typedef _OBJECT_NOTIFICATION TObjectNotification;

struct _TABLE_NOTIFICATION;
typedef _TABLE_NOTIFICATION *PTableNotification;

struct DECLSPEC_DRECORD _TABLE_NOTIFICATION
{
public:
	unsigned ulTableEvent;
	HRESULT hResult;
	_SPropValue propIndex;
	_SPropValue propPrior;
	_SRow row;
	unsigned ulPad;
};


typedef _TABLE_NOTIFICATION TTableNotification;

struct _EXTENDED_NOTIFICATION;
typedef _EXTENDED_NOTIFICATION *PExtendedNotification;

struct DECLSPEC_DRECORD _EXTENDED_NOTIFICATION
{
public:
	unsigned ulEvent;
	unsigned cb;
	void *pbEventParameters;
};


typedef _EXTENDED_NOTIFICATION TExtendedNotification;

struct STATUS_OBJECT_NOTIFICATION;
typedef STATUS_OBJECT_NOTIFICATION *PStatusObjectNotification;

struct DECLSPEC_DRECORD STATUS_OBJECT_NOTIFICATION
{
public:
	unsigned cbEntryID;
	_ENTRYID *lpEntryID;
	unsigned cValues;
	_SPropValue *lpPropVals;
};


typedef STATUS_OBJECT_NOTIFICATION TStatusObjectNotification;

struct _NOTIFICATION;
typedef _NOTIFICATION *PNotification;

struct DECLSPEC_DRECORD _NOTIFICATION
{
public:
	unsigned ulEventType;
	unsigned ulAlignPad;
	#pragma pack(push,1)
	union
	{
		struct 
		{
			STATUS_OBJECT_NOTIFICATION statobj;
		};
		struct 
		{
			_EXTENDED_NOTIFICATION ext;
		};
		struct 
		{
			_TABLE_NOTIFICATION tab;
		};
		struct 
		{
			_OBJECT_NOTIFICATION obj;
		};
		struct 
		{
			_NEWMAIL_NOTIFICATION newmail;
		};
		struct 
		{
			_ERROR_NOTIFICATION err;
		};
		
	};
	#pragma pack(pop)
};


typedef _NOTIFICATION TNotification;

__interface IMAPIAdviseSink;
typedef System::DelphiInterface<IMAPIAdviseSink> _di_IMAPIAdviseSink;
__interface IMAPIAdviseSink  : public System::IInterface 
{
	
public:
	virtual unsigned __stdcall OnNotify(unsigned cNotif, PNotification lpNotifications) = 0 ;
};

struct _ADRENTRY;
typedef _ADRENTRY *PAdrEntry;

struct DECLSPEC_DRECORD _ADRENTRY
{
public:
	unsigned ulReserved1;
	unsigned cValues;
	_SPropValue *rgPropVals;
};


typedef _ADRENTRY TAdrEntry;

struct _ADRLIST;
typedef _ADRLIST *PAdrList;

struct DECLSPEC_DRECORD _ADRLIST
{
public:
	unsigned cEntries;
	System::StaticArray<_ADRENTRY, 1> aEntries;
};


typedef _ADRLIST TAdrList;

struct _SRestriction;
typedef _SRestriction *PSRestriction;

struct _SAndRestriction;
typedef _SAndRestriction *PSAndRestriction;

struct DECLSPEC_DRECORD _SAndRestriction
{
public:
	unsigned cRes;
	_SRestriction *lpRes;
};


typedef _SAndRestriction TSAndRestriction;

struct _SOrRestriction;
typedef _SOrRestriction *PSOrRestriction;

struct DECLSPEC_DRECORD _SOrRestriction
{
public:
	unsigned cRes;
	_SRestriction *lpRes;
};


typedef _SOrRestriction TSOrRestriction;

struct _SNotRestriction;
typedef _SNotRestriction *PSNotRestriction;

struct DECLSPEC_DRECORD _SNotRestriction
{
public:
	unsigned ulReserved;
	_SRestriction *lpRes;
};


typedef _SNotRestriction TSNotRestriction;

struct _SContentRestriction;
typedef _SContentRestriction *PSContentRestriction;

struct DECLSPEC_DRECORD _SContentRestriction
{
public:
	unsigned ulFuzzyLevel;
	unsigned ulPropTag;
	_SPropValue *lpProp;
};


typedef _SContentRestriction TSContentRestriction;

struct _SBitMaskRestriction;
typedef _SBitMaskRestriction *PSBitMaskRestriction;

struct DECLSPEC_DRECORD _SBitMaskRestriction
{
public:
	unsigned relBMR;
	unsigned ulPropTag;
	unsigned ulMask;
};


typedef _SBitMaskRestriction TSBitMaskRestriction;

struct _SPropertyRestriction;
typedef _SPropertyRestriction *PSPropertyRestriction;

struct DECLSPEC_DRECORD _SPropertyRestriction
{
public:
	unsigned relop;
	unsigned ulPropTag;
	_SPropValue *lpProp;
};


typedef _SPropertyRestriction TSPropertyRestriction;

struct _SComparePropsRestriction;
typedef _SComparePropsRestriction *PSComparePropsRestriction;

struct DECLSPEC_DRECORD _SComparePropsRestriction
{
public:
	unsigned relop;
	unsigned ulPropTag1;
	unsigned ulPropTag2;
};


typedef _SComparePropsRestriction TSComparePropsRestriction;

struct _SSizeRestriction;
typedef _SSizeRestriction *PSSizeRestriction;

struct DECLSPEC_DRECORD _SSizeRestriction
{
public:
	unsigned relop;
	unsigned ulPropTag;
	unsigned cb;
};


typedef _SSizeRestriction TSSizeRestriction;

struct _SExistRestriction;
typedef _SExistRestriction *PSExistRestriction;

struct DECLSPEC_DRECORD _SExistRestriction
{
public:
	unsigned ulReserved1;
	unsigned ulPropTag;
	unsigned ulReserved2;
};


typedef _SExistRestriction TSExistRestriction;

struct _SSubRestriction;
typedef _SSubRestriction *PSSubRestriction;

struct DECLSPEC_DRECORD _SSubRestriction
{
public:
	unsigned ulSubObject;
	_SRestriction *lpRes;
};


typedef _SSubRestriction TSSubRestriction;

struct _SCommentRestriction;
typedef _SCommentRestriction *PSCommentRestriction;

struct DECLSPEC_DRECORD _SCommentRestriction
{
public:
	unsigned cValues;
	_SRestriction *lpRes;
	_SPropValue *lpProp;
};


typedef _SCommentRestriction TSCommentRestriction;

struct DECLSPEC_DRECORD _SRestriction
{
public:
	unsigned rt;
	#pragma pack(push,1)
	union
	{
		struct 
		{
			_SCommentRestriction resComment;
		};
		struct 
		{
			_SSubRestriction resSub;
		};
		struct 
		{
			_SExistRestriction resExist;
		};
		struct 
		{
			_SSizeRestriction resSize;
		};
		struct 
		{
			_SBitMaskRestriction resBitMask;
		};
		struct 
		{
			_SPropertyRestriction resProperty;
		};
		struct 
		{
			_SContentRestriction resContent;
		};
		struct 
		{
			_SNotRestriction resNot;
		};
		struct 
		{
			_SOrRestriction resOr;
		};
		struct 
		{
			_SAndRestriction resAnd;
		};
		struct 
		{
			_SComparePropsRestriction resCompareProps;
		};
		
	};
	#pragma pack(pop)
};


typedef _SRestriction TSRestriction;

typedef BOOL __stdcall (*ACCELERATEABSDI)(unsigned ulUIParam, void * lpvmsg);

typedef ACCELERATEABSDI *PFnABSDI;

typedef ACCELERATEABSDI TAccelerateABSDI;

typedef void * __stdcall (*DISMISSMODELESS)(unsigned ulUIParam, void * lpvContext);

typedef DISMISSMODELESS *PFnDismiss;

typedef DISMISSMODELESS TDismissModeless;

typedef int __stdcall (*FNBUTTON)(unsigned ulUIParam, void * lpvContext, unsigned cbEntryID, PEntryID lpSelection, unsigned ulFlags);

typedef FNBUTTON *PFnButton;

typedef FNBUTTON TFnButton;

struct _ADRPARM;
typedef _ADRPARM *PAdrParam;

struct DECLSPEC_DRECORD _ADRPARM
{
public:
	unsigned cbABContEntryID;
	_ENTRYID *lpABContEntryID;
	unsigned ulFlags;
	void *lpReserved;
	unsigned ulHelpContext;
	char *lpszHelpFileName;
	ACCELERATEABSDI *lpfnABSDI;
	DISMISSMODELESS *lpfnDismiss;
	void *lpvDismissContext;
	char *lpszCaption;
	char *lpszNewEntryTitle;
	char *lpszDestWellsTitle;
	unsigned cDestFields;
	unsigned nDestFieldFocus;
	char * *lppszDestTitles;
	unsigned *lpulDestComps;
	_SRestriction *lpContRestriction;
	_SRestriction *lpHierRestriction;
};


typedef _ADRPARM TAdrParam;

__interface IAddrBook;
typedef System::DelphiInterface<IAddrBook> _di_IAddrBook;
__interface IAddrBook  : public IMAPIProp 
{
	
public:
	virtual HRESULT __stdcall OpenEntry(unsigned cbEntryID, PEntryID lpEntryID, System::PGUID lpInterface, unsigned ulFlags, unsigned &lpulObjType, /* out */ System::_di_IInterface &lppUnk) = 0 ;
	virtual HRESULT __stdcall CompareEntryIDs(unsigned cbEntryID1, PEntryID lpEntryID1, unsigned cbEntryID2, PEntryID lpEntryID2, unsigned ulFlags, unsigned &lpulResult) = 0 ;
	virtual HRESULT __stdcall Advise(unsigned cbEntryID, PEntryID lpEntryID, unsigned ulEventMask, _di_IMAPIAdviseSink lpAdviseSink, unsigned &lpulConnection) = 0 ;
	virtual HRESULT __stdcall Unadvise(unsigned ulConnection) = 0 ;
	virtual HRESULT __stdcall CreateOneOff(char * lpszName, char * lpszAdrType, char * lpszAddress, unsigned ulFlags, unsigned &lpcbEntryID, PEntryID &lppEntryID) = 0 ;
	virtual HRESULT __stdcall NewEntry(unsigned ulUIParam, unsigned ulFlags, unsigned cbEIDContainer, PEntryID lpEIDContainer, unsigned cbEIDNewEntryTpl, PEntryID lpEIDNewEntryTpl, unsigned &lpcbEIDNewEntry, PEntryID &lppEIDNewEntry) = 0 ;
	virtual HRESULT __stdcall ResolveName(unsigned ulUIParam, unsigned ulFlags, char * lpszNewEntryTitle, PAdrList &lpAdrList) = 0 ;
	virtual HRESULT __stdcall Address(unsigned &lpulUIParam, PAdrParam lpAdrParms, PAdrList &lppAdrList) = 0 ;
	virtual HRESULT __stdcall Details(unsigned &lpulUIParam, PFnDismiss lpfnDismiss, void * lpvDismissContext, unsigned cbEntryID, PEntryID lpEntryID, PFnButton lpfButtonCallback, void * lpvButtonContext, char * lpszButtonText, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall RecipOptions(unsigned ulUIParam, unsigned ulFlags, PAdrEntry lpRecip) = 0 ;
	virtual HRESULT __stdcall QueryDefaultRecipOpt(char * lpszAdrType, unsigned ulFlags, unsigned &lpcValues, PSPropValue &lppOptions) = 0 ;
	virtual HRESULT __stdcall GetPAB(unsigned &lpcbEntryID, PEntryID &lppEntryID) = 0 ;
	virtual HRESULT __stdcall SetPAB(unsigned cbEntryID, PEntryID lpEntryID) = 0 ;
	virtual HRESULT __stdcall GetDefaultDir(unsigned &lpcbEntryID, PEntryID &lppEntryID) = 0 ;
	virtual HRESULT __stdcall SetDefaultDir(unsigned cbEntryID, PEntryID lpEntryID) = 0 ;
	virtual HRESULT __stdcall GetSearchPath(unsigned ulFlags, PSRowSet &lppSearchPath) = 0 ;
	virtual HRESULT __stdcall SetSearchPath(unsigned ulFlags, PSRowSet lpSearchPath) = 0 ;
	virtual HRESULT __stdcall PrepareRecips(unsigned ulFlags, PSPropTagArray lpPropTagArray, PSPropTagArray lpRecipList) = 0 ;
};

__interface IMailUser;
typedef System::DelphiInterface<IMailUser> _di_IMailUser;
__interface IMailUser  : public IMAPIProp 
{
	
};

__interface IWabObject;
typedef System::DelphiInterface<IWabObject> _di_IWabObject;
__interface IWabObject  : public System::IInterface 
{
	
public:
	virtual HRESULT __stdcall GetLastError(HRESULT hResult, unsigned ulFlags, _MAPIERROR &lppMAPIError) = 0 ;
	virtual HRESULT __stdcall AllocateBuffer(unsigned cbSize, /* out */ void * &lppBuffer) = 0 ;
	virtual HRESULT __stdcall AllocateMore(unsigned cbSize, void * lpObject, /* out */ void * &lppBuffer) = 0 ;
	virtual HRESULT __stdcall FreeBuffer(void * lpBuffer) = 0 ;
	virtual HRESULT __stdcall Backup(char * lpFileName) = 0 ;
	virtual HRESULT __stdcall Import(char * lpImportParam) = 0 ;
	virtual HRESULT __stdcall Find(_di_IAddrBook lpIAB, HWND hWnd) = 0 ;
	virtual HRESULT __stdcall VCardDisplay(_di_IAddrBook lpIAB, HWND hWnd, char * lpszFileName) = 0 ;
	virtual HRESULT __stdcall LDAPUrl(_di_IAddrBook lpIAB, HWND hWnd, unsigned Flags, char * lpszURL, _di_IMailUser lppMailUser) = 0 ;
	virtual HRESULT __stdcall VCardCreate(_di_IAddrBook lpIAB, unsigned ulFlags, char * lpszVCard, _di_IMailUser lppMailUser) = 0 ;
	virtual HRESULT __stdcall VCardRetrieve(_di_IAddrBook lpIAB, unsigned ulFlags, char * lpszVCard, /* out */ _di_IMailUser &lppMailUser) = 0 ;
	virtual HRESULT __stdcall GetMe(_di_IAddrBook lpIAB, unsigned ulFlags, PDWORD lpdwAction, PSBinary lpsbEID, unsigned ulParam) = 0 ;
	virtual HRESULT __stdcall SetMe(_di_IAddrBook lpIAB, unsigned ulFlags, PSBinary sbEID, unsigned ulParam) = 0 ;
};

typedef unsigned *PBookMark;

typedef unsigned BOOKMARK;

typedef unsigned TBookMark;

struct _SSortOrder;
typedef _SSortOrder *PSSortOrder;

struct DECLSPEC_DRECORD _SSortOrder
{
public:
	unsigned ulPropTag;
	unsigned ulOrder;
};


typedef _SSortOrder TSSortOrder;

struct _SSortOrderSet;
typedef _SSortOrderSet *PSSortOrderSet;

struct DECLSPEC_DRECORD _SSortOrderSet
{
public:
	unsigned cSorts;
	unsigned cCategories;
	unsigned cExpanded;
	System::StaticArray<_SSortOrder, 1> aSort;
};


typedef _SSortOrderSet TSSortOrderSet;

__interface IMAPITable;
typedef System::DelphiInterface<IMAPITable> _di_IMAPITable;
__interface IMAPITable  : public System::IInterface 
{
	
public:
	virtual HRESULT __stdcall GetLastError(HRESULT hResult, unsigned ulFlags, _MAPIERROR &lppMAPIError) = 0 ;
	virtual HRESULT __stdcall Advise(unsigned ulEventMask, _di_IMAPIAdviseSink lpAdviseSink, unsigned &lpulConnection) = 0 ;
	virtual HRESULT __stdcall Unadvise(unsigned ulConnection) = 0 ;
	virtual HRESULT __stdcall GetStatus(unsigned &lpulTableStatus, unsigned &lpulTableType) = 0 ;
	virtual HRESULT __stdcall SetColumns(PSPropTagArray lpPropTagArray, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall QueryColumns(unsigned ulFlags, PSPropTagArray &lpPropTagArray) = 0 ;
	virtual HRESULT __stdcall GetRowCount(unsigned ulFlags, unsigned &lpulCount) = 0 ;
	virtual HRESULT __stdcall SeekRow(unsigned bkOrigin, int lRowCount, System::PLongInt lplRowsSought) = 0 ;
	virtual HRESULT __stdcall SeekRowApprox(unsigned ulNumerator, unsigned ulDenominator) = 0 ;
	virtual HRESULT __stdcall QueryPosition(unsigned &lpulRow, unsigned &lpulNumerator, unsigned &lpulDenominator) = 0 ;
	virtual HRESULT __stdcall FindRow(PSRestriction lpRestriction, unsigned bkOrigin, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall Restrict(PSRestriction lpRestriction, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall CreateBookmark(unsigned &lpbkPosition) = 0 ;
	virtual HRESULT __stdcall FreeBookmark(unsigned bkPosition) = 0 ;
	virtual HRESULT __stdcall SortTable(PSSortOrderSet lpSortCriteria, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall QuerySortOrder(PSSortOrderSet &lppSortCriteria) = 0 ;
	virtual HRESULT __stdcall QueryRows(int lRowCount, unsigned ulFlags, PSRowSet &lppRows) = 0 ;
	virtual HRESULT __stdcall Abort(void) = 0 ;
	virtual HRESULT __stdcall ExpandRow(unsigned cbInstanceKey, void * pbInstanceKey, unsigned ulRowCount, unsigned ulFlags, PSRowSet lppRows, unsigned &lpulMoreRows) = 0 ;
	virtual HRESULT __stdcall CollapseRow(unsigned cbInstanceKey, void * pbInstanceKey, unsigned ulFlags, unsigned &lpulRowCount) = 0 ;
	virtual HRESULT __stdcall WaitForCompletion(unsigned ulFlags, unsigned ulTimeout, PULONG lpulTableStatus) = 0 ;
	virtual HRESULT __stdcall GetCollapseState(unsigned ulFlags, unsigned cbInstanceKey, void * lpbInstanceKey, unsigned &lpcbCollapseState, void * &lppbCollapseState) = 0 ;
	virtual HRESULT __stdcall SetCollapseState(unsigned ulFlags, unsigned cbCollapseState, void * pbCollapseState, unsigned &lpbkLocation) = 0 ;
};

typedef _SBinaryArray *PEntryList;

typedef _SBinaryArray ENTRYLIST;

typedef _SBinaryArray TEntryList;

__interface IMAPIContainer;
typedef System::DelphiInterface<IMAPIContainer> _di_IMAPIContainer;
__interface IMAPIContainer  : public IMAPIProp 
{
	
public:
	virtual HRESULT __stdcall GetContentsTable(unsigned ulFlags, /* out */ _di_IMAPITable &lppTable) = 0 ;
	virtual HRESULT __stdcall GetHierarchyTable(unsigned ulFlags, /* out */ _di_IMAPITable &lppTable) = 0 ;
	virtual HRESULT __stdcall OpenEntry(unsigned cbEntryID, PEntryID lpEntryID, System::PGUID lpInterface, unsigned ulFlags, unsigned &lpulObjType, /* out */ System::_di_IInterface &lppUnk) = 0 ;
	virtual HRESULT __stdcall SetSearchCriteria(PSRestriction lpRestriction, PEntryList lpContainerList, unsigned ulSearchFlags) = 0 ;
	virtual HRESULT __stdcall GetSearchCriteria(unsigned ulFlags, PSRestriction &lppRestriction, PEntryList &lppContainerList, unsigned &lpulSearchState) = 0 ;
};

struct _flaglist;
typedef _flaglist *PFlagList;

struct DECLSPEC_DRECORD _flaglist
{
public:
	unsigned cFlags;
	System::StaticArray<unsigned, 1> ulFlag;
};


typedef _flaglist TFlagList;

__interface IABContainer;
typedef System::DelphiInterface<IABContainer> _di_IABContainer;
__interface IABContainer  : public IMAPIContainer 
{
	
public:
	virtual HRESULT __stdcall CreateEntry(unsigned cbEntryID, PEntryID lpEntryID, unsigned ulCreateFlags, /* out */ _di_IMAPIProp &lppMAPIPropEntry) = 0 ;
	virtual HRESULT __stdcall CopyEntries(PEntryList lpEntries, unsigned ulUIParam, _di_IMAPIProgress lpProgress, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall DeleteEntries(PEntryList lpEntries, unsigned ulFlags) = 0 ;
	virtual HRESULT __stdcall ResolveNames(PSPropTagArray lpPropTagArray, unsigned ulFlags, PAdrList lpAdrList, PFlagList lpFlagList) = 0 ;
};

struct _tagWAB_PARAM;
typedef _tagWAB_PARAM *PWabParam;

struct DECLSPEC_DRECORD _tagWAB_PARAM
{
public:
	unsigned cbSize;
	HWND hwnd;
	char *szFileName;
	unsigned ulFlags;
	GUID guidPSExt;
};


typedef _tagWAB_PARAM TWabParam;

typedef int __stdcall (*ALLOCATEBUFFER)(unsigned cbSize, void * &lppBuffer);

typedef ALLOCATEBUFFER *PAllocateBuffer;

typedef ALLOCATEBUFFER TAllocateBuffer;

typedef int __stdcall (*ALLOCATEMORE)(unsigned cbSize, void * lpObject, void * &lppBuffer);

typedef ALLOCATEMORE *PAllocateMore;

typedef ALLOCATEMORE TAllocateMore;

typedef unsigned __stdcall (*FREEBUFFER)(void * lpBuffer);

typedef FREEBUFFER *PFreeBuffer;

typedef FREEBUFFER TFreeBuffer;

typedef HRESULT __stdcall (*TWABOpen)(/* out */ _di_IAddrBook &lppAdrBook, /* out */ _di_IWabObject &lppWABObject, PWabParam lpWP, unsigned Reserved2);

typedef HRESULT __stdcall (*TWABOpenEx)(/* out */ _di_IAddrBook &lppAdrBook, /* out */ _di_IWabObject &lppWABObject, PWabParam lpWP, unsigned Reserved, ALLOCATEBUFFER fnAllocateBuffer, ALLOCATEMORE fnAllocateMore, FREEBUFFER fnFreeBuffer);

struct DECLSPEC_DRECORD Smiwab__1
{
public:
	unsigned Tag;
	System::UnicodeString Name;
	System::UnicodeString Caption;
};


typedef System::StaticArray<Smiwab__1, 291> Smiwab__2;

class DELPHICLASS TSMIWAB;
class PASCALIMPLEMENTATION TSMIWAB : public Smcells::TSpreadSheetFile
{
	typedef Smcells::TSpreadSheetFile inherited;
	
protected:
	_SRowSet *TableRow;
	_di_IAddrBook AddrBook;
	_di_IWabObject WabObject;
	
public:
	__fastcall virtual TSMIWAB(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMIWAB(void);
	__classmethod System::UnicodeString __fastcall GetDefaultWABFileName();
	__classmethod System::UnicodeString __fastcall GetWABDLLName();
	virtual void __fastcall LoadFromStream(System::Classes::TStream* AStream);
	virtual void __fastcall LoadFromFile(const System::WideString FileName);
	virtual void __fastcall BeforeLoad(void);
	virtual bool __fastcall LoadRecord(int RecNo);
	virtual int __fastcall FindColumn(const System::UnicodeString AFieldName);
	virtual void __fastcall FillColumnList(System::Classes::TStrings* lst, const System::UnicodeString strFieldList);
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAPI_DIM = System::Int8(0x1);
static const System::Int8 MNID_ID = System::Int8(0x0);
static const System::Int8 MNID_STRING = System::Int8(0x1);
static const unsigned MAPI_STORE = unsigned(0x1);
static const unsigned MAPI_ADDRBOOK = unsigned(0x2);
static const unsigned MAPI_FOLDER = unsigned(0x3);
static const unsigned MAPI_ABCONT = unsigned(0x4);
static const unsigned MAPI_MESSAGE = unsigned(0x5);
static const unsigned MAPI_MAILUSER = unsigned(0x6);
static const unsigned MAPI_ATTACH = unsigned(0x7);
static const unsigned MAPI_DISTLIST = unsigned(0x8);
static const unsigned MAPI_PROFSECT = unsigned(0x9);
static const unsigned MAPI_STATUS = unsigned(0xa);
static const unsigned MAPI_SESSION = unsigned(0xb);
static const unsigned MAPI_FORMINFO = unsigned(0xc);
static const System::Word MV_FLAG = System::Word(0x1000);
static const unsigned PT_UNSPECIFIED = unsigned(0x0);
static const unsigned PT_NULL = unsigned(0x1);
static const unsigned PT_I2 = unsigned(0x2);
static const unsigned PT_LONG = unsigned(0x3);
static const unsigned PT_R4 = unsigned(0x4);
static const unsigned PT_DOUBLE = unsigned(0x5);
static const unsigned PT_CURRENCY = unsigned(0x6);
static const unsigned PT_APPTIME = unsigned(0x7);
static const unsigned PT_ERROR = unsigned(0xa);
static const unsigned PT_BOOLEAN = unsigned(0xb);
static const unsigned PT_OBJECT = unsigned(0xd);
static const unsigned PT_I8 = unsigned(0x14);
static const unsigned PT_STRING8 = unsigned(0x1e);
static const unsigned PT_UNICODE = unsigned(0x1f);
static const unsigned PT_SYSTIME = unsigned(0x40);
static const unsigned PT_CLSID = unsigned(0x48);
static const unsigned PT_BINARY = unsigned(0x102);
static const unsigned PT_TSTRING = unsigned(0x1e);
static const System::Word PT_MV_TSTRING = System::Word(0x101e);
static const unsigned PT_SHORT = unsigned(0x2);
static const unsigned PT_I4 = unsigned(0x3);
static const unsigned PT_FLOAT = unsigned(0x4);
static const unsigned PT_R8 = unsigned(0x5);
static const unsigned PT_LONGLONG = unsigned(0x14);
static const System::Word PT_MV_I2 = System::Word(0x1002);
static const System::Word PT_MV_LONG = System::Word(0x1003);
static const System::Word PT_MV_R4 = System::Word(0x1004);
static const System::Word PT_MV_DOUBLE = System::Word(0x1005);
static const System::Word PT_MV_CURRENCY = System::Word(0x1006);
static const System::Word PT_MV_APPTIME = System::Word(0x1007);
static const System::Word PT_MV_SYSTIME = System::Word(0x1040);
static const System::Word PT_MV_STRING8 = System::Word(0x101e);
static const System::Word PT_MV_BINARY = System::Word(0x1102);
static const System::Word PT_MV_UNICODE = System::Word(0x101f);
static const System::Word PT_MV_CLSID = System::Word(0x1048);
static const System::Word PT_MV_I8 = System::Word(0x1014);
static const System::Word PT_MV_SHORT = System::Word(0x1002);
static const System::Word PT_MV_I4 = System::Word(0x1003);
static const System::Word PT_MV_FLOAT = System::Word(0x1004);
static const System::Word PT_MV_R8 = System::Word(0x1005);
static const System::Word PT_MV_LONGLONG = System::Word(0x1014);
static const int PR_ENTRYID = int(0xfff0102);
static const int PR_OBJECT_TYPE = int(0xffe0003);
static const int PR_ICON = int(0xffd0102);
static const int PR_MINI_ICON = int(0xffc0102);
static const int PR_STORE_ENTRYID = int(0xffb0102);
static const int PR_STORE_RECORD_KEY = int(0xffa0102);
static const int PR_RECORD_KEY = int(0xff90102);
static const int PR_MAPPING_SIGNATURE = int(0xff80102);
static const int PR_ACCESS_LEVEL = int(0xff70003);
static const int PR_INSTANCE_KEY = int(0xff60102);
static const int PR_ROW_TYPE = int(0xff50003);
static const int PR_ACCESS = int(0xff40003);
static const int PR_ROWID = int(0x30000003);
static const int PR_DISPLAY_NAME = int(0x3001001e);
static const int PR_DISPLAY_NAME_W = int(0x3001001f);
static const int PR_DISPLAY_NAME_A = int(0x3001001e);
static const int PR_ADDRTYPE = int(0x3002001e);
static const int PR_ADDRTYPE_W = int(0x3002001f);
static const int PR_ADDRTYPE_A = int(0x3002001e);
static const int PR_EMAIL_ADDRESS = int(0x3003001e);
static const int PR_EMAIL_ADDRESS_W = int(0x3003001f);
static const int PR_EMAIL_ADDRESS_A = int(0x3003001e);
static const int PR_COMMENT = int(0x3004001e);
static const int PR_COMMENT_W = int(0x3004001f);
static const int PR_COMMENT_A = int(0x3004001e);
static const int PR_DEPTH = int(0x30050003);
static const int PR_PROVIDER_DISPLAY = int(0x3006001e);
static const int PR_PROVIDER_DISPLAY_W = int(0x3006001f);
static const int PR_PROVIDER_DISPLAY_A = int(0x3006001e);
static const int PR_CREATION_TIME = int(0x30070040);
static const int PR_LAST_MODIFICATION_TIME = int(0x30080040);
static const int PR_RESOURCE_FLAGS = int(0x30090003);
static const int PR_PROVIDER_DLL_NAME = int(0x300a001e);
static const int PR_PROVIDER_DLL_NAME_W = int(0x300a001f);
static const int PR_PROVIDER_DLL_NAME_A = int(0x300a001e);
static const int PR_SEARCH_KEY = int(0x300b0102);
static const int PR_PROVIDER_UID = int(0x300c0102);
static const int PR_PROVIDER_ORDINAL = int(0x300d0003);
static const int PR_ACCOUNT = int(0x3a00001e);
static const int PR_ACCOUNT_W = int(0x3a00001f);
static const int PR_ACCOUNT_A = int(0x3a00001e);
static const int PR_ALTERNATE_RECIPIENT = int(0x3a010102);
static const int PR_CALLBACK_TELEPHONE_NUMBER = int(0x3a02001e);
static const int PR_CALLBACK_TELEPHONE_NUMBER_W = int(0x3a02001f);
static const int PR_CALLBACK_TELEPHONE_NUMBER_A = int(0x3a02001e);
static const int PR_CONVERSION_PROHIBITED = int(0x3a03000b);
static const int PR_DISCLOSE_RECIPIENTS = int(0x3a04000b);
static const int PR_GENERATION = int(0x3a05001e);
static const int PR_GENERATION_W = int(0x3a05001f);
static const int PR_GENERATION_A = int(0x3a05001e);
static const int PR_GIVEN_NAME = int(0x3a06001e);
static const int PR_GIVEN_NAME_W = int(0x3a06001f);
static const int PR_GIVEN_NAME_A = int(0x3a06001e);
static const int PR_GOVERNMENT_ID_NUMBER = int(0x3a07001e);
static const int PR_GOVERNMENT_ID_NUMBER_W = int(0x3a07001f);
static const int PR_GOVERNMENT_ID_NUMBER_A = int(0x3a07001e);
static const int PR_BUSINESS_TELEPHONE_NUMBER = int(0x3a08001e);
static const int PR_BUSINESS_TELEPHONE_NUMBER_W = int(0x3a08001f);
static const int PR_BUSINESS_TELEPHONE_NUMBER_A = int(0x3a08001e);
static const int PR_OFFICE_TELEPHONE_NUMBER = int(0x3a08001e);
static const int PR_OFFICE_TELEPHONE_NUMBER_W = int(0x3a08001f);
static const int PR_OFFICE_TELEPHONE_NUMBER_A = int(0x3a08001e);
static const int PR_HOME_TELEPHONE_NUMBER = int(0x3a09001e);
static const int PR_HOME_TELEPHONE_NUMBER_W = int(0x3a09001f);
static const int PR_HOME_TELEPHONE_NUMBER_A = int(0x3a09001e);
static const int PR_INITIALS = int(0x3a0a001e);
static const int PR_INITIALS_W = int(0x3a0a001f);
static const int PR_INITIALS_A = int(0x3a0a001e);
static const int PR_KEYWORD = int(0x3a0b001e);
static const int PR_KEYWORD_W = int(0x3a0b001f);
static const int PR_KEYWORD_A = int(0x3a0b001e);
static const int PR_LANGUAGE = int(0x3a0c001e);
static const int PR_LANGUAGE_W = int(0x3a0c001f);
static const int PR_LANGUAGE_A = int(0x3a0c001e);
static const int PR_LOCATION = int(0x3a0d001e);
static const int PR_LOCATION_W = int(0x3a0d001f);
static const int PR_LOCATION_A = int(0x3a0d001e);
static const int PR_MAIL_PERMISSION = int(0x3a0e000b);
static const int PR_MHS_COMMON_NAME = int(0x3a0f001e);
static const int PR_MHS_COMMON_NAME_W = int(0x3a0f001f);
static const int PR_MHS_COMMON_NAME_A = int(0x3a0f001e);
static const int PR_ORGANIZATIONAL_ID_NUMBER = int(0x3a10001e);
static const int PR_ORGANIZATIONAL_ID_NUMBER_W = int(0x3a10001f);
static const int PR_ORGANIZATIONAL_ID_NUMBER_A = int(0x3a10001e);
static const int PR_SURNAME = int(0x3a11001e);
static const int PR_SURNAME_W = int(0x3a11001f);
static const int PR_SURNAME_A = int(0x3a11001e);
static const int PR_ORIGINAL_ENTRYID = int(0x3a120102);
static const int PR_ORIGINAL_DISPLAY_NAME = int(0x3a13001e);
static const int PR_ORIGINAL_DISPLAY_NAME_W = int(0x3a13001f);
static const int PR_ORIGINAL_DISPLAY_NAME_A = int(0x3a13001e);
static const int PR_ORIGINAL_SEARCH_KEY = int(0x3a140102);
static const int PR_POSTAL_ADDRESS = int(0x3a15001e);
static const int PR_POSTAL_ADDRESS_W = int(0x3a15001f);
static const int PR_POSTAL_ADDRESS_A = int(0x3a15001e);
static const int PR_COMPANY_NAME = int(0x3a16001e);
static const int PR_COMPANY_NAME_W = int(0x3a16001f);
static const int PR_COMPANY_NAME_A = int(0x3a16001e);
static const int PR_TITLE = int(0x3a17001e);
static const int PR_TITLE_W = int(0x3a17001f);
static const int PR_TITLE_A = int(0x3a17001e);
static const int PR_DEPARTMENT_NAME = int(0x3a18001e);
static const int PR_DEPARTMENT_NAME_W = int(0x3a18001f);
static const int PR_DEPARTMENT_NAME_A = int(0x3a18001e);
static const int PR_OFFICE_LOCATION = int(0x3a19001e);
static const int PR_OFFICE_LOCATION_W = int(0x3a19001f);
static const int PR_OFFICE_LOCATION_A = int(0x3a19001e);
static const int PR_PRIMARY_TELEPHONE_NUMBER = int(0x3a1a001e);
static const int PR_PRIMARY_TELEPHONE_NUMBER_W = int(0x3a1a001f);
static const int PR_PRIMARY_TELEPHONE_NUMBER_A = int(0x3a1a001e);
static const int PR_BUSINESS2_TELEPHONE_NUMBER = int(0x3a1b001e);
static const int PR_BUSINESS2_TELEPHONE_NUMBER_W = int(0x3a1b001f);
static const int PR_BUSINESS2_TELEPHONE_NUMBER_A = int(0x3a1b001e);
static const int PR_OFFICE2_TELEPHONE_NUMBER = int(0x3a1b001e);
static const int PR_OFFICE2_TELEPHONE_NUMBER_W = int(0x3a1b001f);
static const int PR_OFFICE2_TELEPHONE_NUMBER_A = int(0x3a1b001e);
static const int PR_MOBILE_TELEPHONE_NUMBER = int(0x3a1c001e);
static const int PR_MOBILE_TELEPHONE_NUMBER_W = int(0x3a1c001f);
static const int PR_MOBILE_TELEPHONE_NUMBER_A = int(0x3a1c001e);
static const int PR_CELLULAR_TELEPHONE_NUMBER = int(0x3a1c001e);
static const int PR_CELLULAR_TELEPHONE_NUMBER_W = int(0x3a1c001f);
static const int PR_CELLULAR_TELEPHONE_NUMBER_A = int(0x3a1c001e);
static const int PR_RADIO_TELEPHONE_NUMBER = int(0x3a1d001e);
static const int PR_RADIO_TELEPHONE_NUMBER_W = int(0x3a1d001f);
static const int PR_RADIO_TELEPHONE_NUMBER_A = int(0x3a1d001e);
static const int PR_CAR_TELEPHONE_NUMBER = int(0x3a1e001e);
static const int PR_CAR_TELEPHONE_NUMBER_W = int(0x3a1e001f);
static const int PR_CAR_TELEPHONE_NUMBER_A = int(0x3a1e001e);
static const int PR_OTHER_TELEPHONE_NUMBER = int(0x3a1f001e);
static const int PR_OTHER_TELEPHONE_NUMBER_W = int(0x3a1f001f);
static const int PR_OTHER_TELEPHONE_NUMBER_A = int(0x3a1f001e);
static const int PR_TRANSMITABLE_DISPLAY_NAME = int(0x3a20001e);
static const int PR_TRANSMITABLE_DISPLAY_NAME_W = int(0x3a20001f);
static const int PR_TRANSMITABLE_DISPLAY_NAME_A = int(0x3a20001e);
static const int PR_PAGER_TELEPHONE_NUMBER = int(0x3a21001e);
static const int PR_PAGER_TELEPHONE_NUMBER_W = int(0x3a21001f);
static const int PR_PAGER_TELEPHONE_NUMBER_A = int(0x3a21001e);
static const int PR_BEEPER_TELEPHONE_NUMBER = int(0x3a21001e);
static const int PR_BEEPER_TELEPHONE_NUMBER_W = int(0x3a21001f);
static const int PR_BEEPER_TELEPHONE_NUMBER_A = int(0x3a21001e);
static const int PR_USER_CERTIFICATE = int(0x3a220102);
static const int PR_PRIMARY_FAX_NUMBER = int(0x3a23001e);
static const int PR_PRIMARY_FAX_NUMBER_W = int(0x3a23001f);
static const int PR_PRIMARY_FAX_NUMBER_A = int(0x3a23001e);
static const int PR_BUSINESS_FAX_NUMBER = int(0x3a24001e);
static const int PR_BUSINESS_FAX_NUMBER_W = int(0x3a24001f);
static const int PR_BUSINESS_FAX_NUMBER_A = int(0x3a24001e);
static const int PR_HOME_FAX_NUMBER = int(0x3a25001e);
static const int PR_HOME_FAX_NUMBER_W = int(0x3a25001f);
static const int PR_HOME_FAX_NUMBER_A = int(0x3a25001e);
static const int PR_COUNTRY = int(0x3a26001e);
static const int PR_COUNTRY_W = int(0x3a26001f);
static const int PR_COUNTRY_A = int(0x3a26001e);
static const int PR_LOCALITY = int(0x3a27001e);
static const int PR_LOCALITY_W = int(0x3a27001f);
static const int PR_LOCALITY_A = int(0x3a27001e);
static const int PR_STATE_OR_PROVINCE = int(0x3a28001e);
static const int PR_STATE_OR_PROVINCE_W = int(0x3a28001f);
static const int PR_STATE_OR_PROVINCE_A = int(0x3a28001e);
static const int PR_STREET_ADDRESS = int(0x3a29001e);
static const int PR_STREET_ADDRESS_W = int(0x3a29001f);
static const int PR_STREET_ADDRESS_A = int(0x3a29001e);
static const int PR_POSTAL_CODE = int(0x3a2a001e);
static const int PR_POSTAL_CODE_W = int(0x3a2a001f);
static const int PR_POSTAL_CODE_A = int(0x3a2a001e);
static const int PR_POST_OFFICE_BOX = int(0x3a2b001e);
static const int PR_POST_OFFICE_BOX_W = int(0x3a2b001f);
static const int PR_POST_OFFICE_BOX_A = int(0x3a2b001e);
static const int PR_BUSINESS_ADDRESS_POST_OFFICE_BOX = int(0x3a2b001e);
static const int PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_W = int(0x3a2b001f);
static const int PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_A = int(0x3a2b001e);
static const int PR_TELEX_NUMBER = int(0x3a2c001e);
static const int PR_TELEX_NUMBER_W = int(0x3a2c001f);
static const int PR_TELEX_NUMBER_A = int(0x3a2c001e);
static const int PR_ISDN_NUMBER = int(0x3a2d001e);
static const int PR_ISDN_NUMBER_W = int(0x3a2d001f);
static const int PR_ISDN_NUMBER_A = int(0x3a2d001e);
static const int PR_ASSISTANT_TELEPHONE_NUMBER = int(0x3a2e001e);
static const int PR_ASSISTANT_TELEPHONE_NUMBER_W = int(0x3a2e001f);
static const int PR_ASSISTANT_TELEPHONE_NUMBER_A = int(0x3a2e001e);
static const int PR_HOME2_TELEPHONE_NUMBER = int(0x3a2f001e);
static const int PR_HOME2_TELEPHONE_NUMBER_W = int(0x3a2f001f);
static const int PR_HOME2_TELEPHONE_NUMBER_A = int(0x3a2f001e);
static const int PR_ASSISTANT = int(0x3a30001e);
static const int PR_ASSISTANT_W = int(0x3a30001f);
static const int PR_ASSISTANT_A = int(0x3a30001e);
static const int PR_SEND_RICH_INFO = int(0x3a40000b);
static const int PR_WEDDING_ANNIVERSARY = int(0x3a410040);
static const int PR_BIRTHDAY = int(0x3a420040);
static const int PR_HOBBIES = int(0x3a43001e);
static const int PR_HOBBIES_W = int(0x3a43001f);
static const int PR_HOBBIES_A = int(0x3a43001e);
static const int PR_MIDDLE_NAME = int(0x3a44001e);
static const int PR_MIDDLE_NAME_W = int(0x3a44001f);
static const int PR_MIDDLE_NAME_A = int(0x3a44001e);
static const int PR_DISPLAY_NAME_PREFIX = int(0x3a45001e);
static const int PR_DISPLAY_NAME_PREFIX_W = int(0x3a45001f);
static const int PR_DISPLAY_NAME_PREFIX_A = int(0x3a45001e);
static const int PR_PROFESSION = int(0x3a46001e);
static const int PR_PROFESSION_W = int(0x3a46001f);
static const int PR_PROFESSION_A = int(0x3a46001e);
static const int PR_PREFERRED_BY_NAME = int(0x3a47001e);
static const int PR_PREFERRED_BY_NAME_W = int(0x3a47001f);
static const int PR_PREFERRED_BY_NAME_A = int(0x3a47001e);
static const int PR_SPOUSE_NAME = int(0x3a48001e);
static const int PR_SPOUSE_NAME_W = int(0x3a48001f);
static const int PR_SPOUSE_NAME_A = int(0x3a48001e);
static const int PR_COMPUTER_NETWORK_NAME = int(0x3a49001e);
static const int PR_COMPUTER_NETWORK_NAME_W = int(0x3a49001f);
static const int PR_COMPUTER_NETWORK_NAME_A = int(0x3a49001e);
static const int PR_CUSTOMER_ID = int(0x3a4a001e);
static const int PR_CUSTOMER_ID_W = int(0x3a4a001f);
static const int PR_CUSTOMER_ID_A = int(0x3a4a001e);
static const int PR_TTYTDD_PHONE_NUMBER = int(0x3a4b001e);
static const int PR_TTYTDD_PHONE_NUMBER_W = int(0x3a4b001f);
static const int PR_TTYTDD_PHONE_NUMBER_A = int(0x3a4b001e);
static const int PR_FTP_SITE = int(0x3a4c001e);
static const int PR_FTP_SITE_W = int(0x3a4c001f);
static const int PR_FTP_SITE_A = int(0x3a4c001e);
static const int PR_GENDER = int(0x3a4d0002);
static const int PR_MANAGER_NAME = int(0x3a4e001e);
static const int PR_MANAGER_NAME_W = int(0x3a4e001f);
static const int PR_MANAGER_NAME_A = int(0x3a4e001e);
static const int PR_NICKNAME = int(0x3a4f001e);
static const int PR_NICKNAME_W = int(0x3a4f001f);
static const int PR_NICKNAME_A = int(0x3a4f001e);
static const int PR_PERSONAL_HOME_PAGE = int(0x3a50001e);
static const int PR_PERSONAL_HOME_PAGE_W = int(0x3a50001f);
static const int PR_PERSONAL_HOME_PAGE_A = int(0x3a50001e);
static const int PR_BUSINESS_HOME_PAGE = int(0x3a51001e);
static const int PR_BUSINESS_HOME_PAGE_W = int(0x3a51001f);
static const int PR_BUSINESS_HOME_PAGE_A = int(0x3a51001e);
static const int PR_CONTACT_VERSION = int(0x3a520048);
static const int PR_CONTACT_ENTRYIDS = int(0x3a531102);
static const int PR_CONTACT_ADDRTYPES = int(0x3a54101e);
static const int PR_CONTACT_ADDRTYPES_W = int(0x3a54101f);
static const int PR_CONTACT_ADDRTYPES_A = int(0x3a54101e);
static const int PR_CONTACT_DEFAULT_ADDRESS_INDEX = int(0x3a550003);
static const int PR_CONTACT_EMAIL_ADDRESSES = int(0x3a56101e);
static const int PR_CONTACT_EMAIL_ADDRESSES_W = int(0x3a56101f);
static const int PR_CONTACT_EMAIL_ADDRESSES_A = int(0x3a56101e);
static const int PR_COMPANY_MAIN_PHONE_NUMBER = int(0x3a57001e);
static const int PR_COMPANY_MAIN_PHONE_NUMBER_W = int(0x3a57001f);
static const int PR_COMPANY_MAIN_PHONE_NUMBER_A = int(0x3a57001e);
static const int PR_CHILDRENS_NAMES = int(0x3a58101e);
static const int PR_CHILDRENS_NAMES_W = int(0x3a58101f);
static const int PR_CHILDRENS_NAMES_A = int(0x3a58101e);
static const int PR_HOME_ADDRESS_CITY = int(0x3a59001e);
static const int PR_HOME_ADDRESS_CITY_W = int(0x3a59001f);
static const int PR_HOME_ADDRESS_CITY_A = int(0x3a59001e);
static const int PR_HOME_ADDRESS_COUNTRY = int(0x3a5a001e);
static const int PR_HOME_ADDRESS_COUNTRY_W = int(0x3a5a001f);
static const int PR_HOME_ADDRESS_COUNTRY_A = int(0x3a5a001e);
static const int PR_HOME_ADDRESS_POSTAL_CODE = int(0x3a5b001e);
static const int PR_HOME_ADDRESS_POSTAL_CODE_W = int(0x3a5b001f);
static const int PR_HOME_ADDRESS_POSTAL_CODE_A = int(0x3a5b001e);
static const int PR_HOME_ADDRESS_STATE_OR_PROVINCE = int(0x3a5c001e);
static const int PR_HOME_ADDRESS_STATE_OR_PROVINCE_W = int(0x3a5c001f);
static const int PR_HOME_ADDRESS_STATE_OR_PROVINCE_A = int(0x3a5c001e);
static const int PR_HOME_ADDRESS_STREET = int(0x3a5d001e);
static const int PR_HOME_ADDRESS_STREET_W = int(0x3a5d001f);
static const int PR_HOME_ADDRESS_STREET_A = int(0x3a5d001e);
static const int PR_HOME_ADDRESS_POST_OFFICE_BOX = int(0x3a5e001e);
static const int PR_HOME_ADDRESS_POST_OFFICE_BOX_W = int(0x3a5e001f);
static const int PR_HOME_ADDRESS_POST_OFFICE_BOX_A = int(0x3a5e001e);
static const int PR_OTHER_ADDRESS_CITY = int(0x3a5f001e);
static const int PR_OTHER_ADDRESS_CITY_W = int(0x3a5f001f);
static const int PR_OTHER_ADDRESS_CITY_A = int(0x3a5f001e);
static const int PR_OTHER_ADDRESS_COUNTRY = int(0x3a60001e);
static const int PR_OTHER_ADDRESS_COUNTRY_W = int(0x3a60001f);
static const int PR_OTHER_ADDRESS_COUNTRY_A = int(0x3a60001e);
static const int PR_OTHER_ADDRESS_POSTAL_CODE = int(0x3a61001e);
static const int PR_OTHER_ADDRESS_POSTAL_CODE_W = int(0x3a61001f);
static const int PR_OTHER_ADDRESS_POSTAL_CODE_A = int(0x3a61001e);
static const int PR_OTHER_ADDRESS_STATE_OR_PROVINCE = int(0x3a62001e);
static const int PR_OTHER_ADDRESS_STATE_OR_PROVINCE_W = int(0x3a62001f);
static const int PR_OTHER_ADDRESS_STATE_OR_PROVINCE_A = int(0x3a62001e);
static const int PR_OTHER_ADDRESS_STREET = int(0x3a63001e);
static const int PR_OTHER_ADDRESS_STREET_W = int(0x3a63001f);
static const int PR_OTHER_ADDRESS_STREET_A = int(0x3a63001e);
static const int PR_OTHER_ADDRESS_POST_OFFICE_BOX = int(0x3a64001e);
static const int PR_OTHER_ADDRESS_POST_OFFICE_BOX_W = int(0x3a64001f);
static const int PR_OTHER_ADDRESS_POST_OFFICE_BOX_A = int(0x3a64001e);
static const int PR_USER_X509_CERTIFICATE = int(0x3a701102);
static const int PR_SEND_INTERNET_ENCODING = int(0x3a710003);
static const int PR_BUSINESS_ADDRESS_CITY = int(0x3a27001e);
static const int PR_BUSINESS_ADDRESS_COUNTRY = int(0x3a26001e);
static const int PR_BUSINESS_ADDRESS_POSTAL_CODE = int(0x3a2a001e);
static const int PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE = int(0x3a28001e);
static const int PR_BUSINESS_ADDRESS_STREET = int(0x3a29001e);
static const int PR_RECIPIENT_TYPE = int(0xc150003);
extern PACKAGE Smiwab__2 WABTagNames;
}	/* namespace Smiwab */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMIWAB)
using namespace Smiwab;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// SmiwabHPP
