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

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

#ifndef SmipstHPP
#define SmipstHPP

#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
#include <System.Variants.hpp>	// Pascal unit

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

namespace Smipst
{
//-- type declarations -------------------------------------------------------
enum TSMIOutlookItemType : unsigned char { oitMail, oitAppointment, oitContact, oitTask, oitJournal, oitNote, oitPost, oitDeleted, oitDraft, oitInBox, oitJunk, oitOutBox, oitSent };

struct DECLSPEC_DRECORD TSMIOutlookField
{
public:
	System::UnicodeString Name;
	System::UnicodeString Caption;
	Smcells::TSMICellType FieldType;
	int Width;
};


typedef System::StaticArray<TSMIOutlookField, 20> Smipst__1;

typedef System::StaticArray<TSMIOutlookField, 22> Smipst__2;

typedef System::StaticArray<TSMIOutlookField, 88> Smipst__3;

typedef System::StaticArray<TSMIOutlookField, 23> Smipst__4;

typedef System::StaticArray<TSMIOutlookField, 20> Smipst__5;

typedef System::StaticArray<TSMIOutlookField, 12> Smipst__6;

typedef System::StaticArray<TSMIOutlookField, 19> Smipst__7;

class DELPHICLASS TSMIOutlookProperties;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TSMIOutlookProperties : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	TSMIOutlookItemType FItemType;
	System::UnicodeString FFolderName;
	System::WideString FFolderEntryID;
	System::WideString FFolderStoreID;
	bool FLoadSubFolders;
	
public:
	__fastcall virtual TSMIOutlookProperties(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property TSMIOutlookItemType ItemType = {read=FItemType, write=FItemType, default=0};
	__property bool LoadSubFolders = {read=FLoadSubFolders, write=FLoadSubFolders, default=0};
	__property System::UnicodeString FolderName = {read=FFolderName, write=FFolderName};
	__property System::WideString FolderEntryID = {read=FFolderEntryID, write=FFolderEntryID};
	__property System::WideString FolderStoreID = {read=FFolderStoreID, write=FFolderStoreID};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TSMIOutlookProperties(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TSMIOutlook;
class PASCALIMPLEMENTATION TSMIOutlook : public Smcells::TSpreadSheetFile
{
	typedef Smcells::TSpreadSheetFile inherited;
	
private:
	TSMIOutlookProperties* FProperties;
	void __fastcall SetProperties(TSMIOutlookProperties* Value);
	
protected:
	System::OleVariant outlook;
	System::OleVariant NameSpace;
	System::OleVariant FFolder;
	
public:
	__fastcall virtual TSMIOutlook(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMIOutlook(void);
	virtual void __fastcall LoadFromFile(const System::WideString FileName);
	virtual void __fastcall BeforeLoad(void);
	virtual void __fastcall AfterLoad(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);
	
__published:
	__property TSMIOutlookProperties* Properties = {read=FProperties, write=SetProperties};
};


typedef void __fastcall (*TSMIOutlookFolderCallback)(System::TObject* Sender, const System::UnicodeString ParentName, const System::UnicodeString ItemName, const System::UnicodeString ParentEntryID, const System::UnicodeString ItemEntryID, TSMIOutlookItemType DefItemType);

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 olMailItem = System::Int8(0x0);
static const System::Int8 olAppointmentItem = System::Int8(0x1);
static const System::Int8 olContactItem = System::Int8(0x2);
static const System::Int8 olTaskItem = System::Int8(0x3);
static const System::Int8 olJournalItem = System::Int8(0x4);
static const System::Int8 olNoteItem = System::Int8(0x5);
static const System::Int8 olPostItem = System::Int8(0x6);
static const System::Int8 olDistributionListItem = System::Int8(0x7);
static const System::Int8 olDeleted = System::Int8(0x8);
static const System::Int8 olDraft = System::Int8(0x9);
static const System::Int8 olInBox = System::Int8(0xa);
static const System::Int8 olJunk = System::Int8(0xb);
static const System::Int8 olOutBox = System::Int8(0xc);
static const System::Int8 olSent = System::Int8(0xd);
extern PACKAGE System::StaticArray<System::Word, 13> arrOutlookItemTypes;
extern PACKAGE Smipst__1 arrOutlookMailNames;
extern PACKAGE Smipst__2 arrOutlookAppointmentNames;
extern PACKAGE Smipst__3 arrOutlookContactNames;
extern PACKAGE Smipst__4 arrOutlookTaskNames;
extern PACKAGE Smipst__5 arrOutlookJournalNames;
extern PACKAGE Smipst__6 arrOutlookNoteNames;
extern PACKAGE Smipst__7 arrOutlookPostNames;
extern PACKAGE void __fastcall SMIRetrieveOutlookFolders(System::TObject* Sender, TSMIOutlookFolderCallback Callback);
}	/* namespace Smipst */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMIPST)
using namespace Smipst;
#endif
#pragma pack(pop)
#pragma option pop

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