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

// (DO NOT EDIT: machine generated header) 'Smipst.pas' rev: 21.00

#ifndef SmipstHPP
#define SmipstHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Activex.hpp>	// Pascal unit
#include <Comobj.hpp>	// Pascal unit
#include <Smcells.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit

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

namespace Smipst
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TSMIOutlookItemType { oitMail, oitAppointment, oitContact, oitTask, oitJournal, oitNote, oitPost };
#pragma option pop

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


typedef StaticArray<TSMIOutlookField, 20> Smipst__1;

typedef StaticArray<TSMIOutlookField, 22> Smipst__2;

typedef StaticArray<TSMIOutlookField, 88> Smipst__3;

typedef StaticArray<TSMIOutlookField, 23> Smipst__4;

typedef StaticArray<TSMIOutlookField, 20> Smipst__5;

typedef StaticArray<TSMIOutlookField, 12> Smipst__6;

typedef StaticArray<TSMIOutlookField, 19> Smipst__7;

class DELPHICLASS TSMIOutlookProperties;
class PASCALIMPLEMENTATION TSMIOutlookProperties : public Classes::TPersistent
{
	typedef Classes::TPersistent inherited;
	
private:
	TSMIOutlookItemType FItemType;
	System::UnicodeString FFolderName;
	bool FLoadSubFolders;
	
public:
	__fastcall virtual TSMIOutlookProperties(void);
	virtual void __fastcall Assign(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};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TSMIOutlookProperties(void) { }
	
};


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(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(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 ShortInt olMailItem = 0x0;
static const ShortInt olAppointmentItem = 0x1;
static const ShortInt olContactItem = 0x2;
static const ShortInt olTaskItem = 0x3;
static const ShortInt olJournalItem = 0x4;
static const ShortInt olNoteItem = 0x5;
static const ShortInt olPostItem = 0x6;
static const ShortInt olDistributionListItem = 0x7;
extern PACKAGE StaticArray<System::Word, 7> 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 */
using namespace Smipst;
#pragma pack(pop)
#pragma option pop

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