// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Filehistoryapi.pas' rev: 10.00

#ifndef FilehistoryapiHPP
#define FilehistoryapiHPP

#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 <Windows.hpp>	// Pascal unit
#include <Commctrl.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Activex.hpp>	// Pascal unit
#include <Toolsapi.hpp>	// Pascal unit

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

namespace Filehistoryapi
{
//-- type declarations -------------------------------------------------------
#pragma option push -b
enum TOTAHistoryStyle { hsBuffer, hsFile, hsLocalFile, hsRemoteRevision, hsActiveRevision };
#pragma option pop

typedef DynamicArray<WideString >  TOTAFileNameArray;

__interface IOTAFileHistoryManager;
typedef System::DelphiInterface<IOTAFileHistoryManager> _di_IOTAFileHistoryManager;
__interface IOTAFileHistoryNotifier;
typedef System::DelphiInterface<IOTAFileHistoryNotifier> _di_IOTAFileHistoryNotifier;
__interface IOTAFileHistoryProvider;
typedef System::DelphiInterface<IOTAFileHistoryProvider> _di_IOTAFileHistoryProvider;
__interface  INTERFACE_UUID("{55A2BEE4-A64C-4749-8388-070CAEFDEFA5}") IOTAFileHistoryManager  : public IInterface 
{
	
public:
	virtual int __fastcall AddNotifier(const _di_IOTAFileHistoryNotifier ANotifier) = 0 ;
	virtual void __fastcall AddTemporaryLabel(const WideString ALabelName, const TOTAFileNameArray AFiles) = 0 ;
	virtual int __fastcall Get_Count(void) = 0 ;
	virtual _di_IOTAFileHistoryProvider __fastcall GetFileHistoryProvider(int Index) = 0 ;
	virtual int __fastcall RegisterHistoryProvider(const _di_IOTAFileHistoryProvider HistoryProvider) = 0 ;
	virtual void __fastcall RemoveNotifier(int Index) = 0 ;
	virtual void __fastcall RevertTemporaryLabel(const WideString ALabelName) = 0 ;
	virtual void __fastcall UnregisterHistoryProvider(int Index) = 0 ;
	virtual void __fastcall UpdateProviders(void) = 0 ;
	__property int Count = {read=Get_Count};
	__property _di_IOTAFileHistoryProvider FileHistoryProvider[int Index] = {read=GetFileHistoryProvider};
};

__interface  INTERFACE_UUID("{286AC9E5-875A-4402-AF70-8ACDD6757EC8}") IOTAFileHistoryNotifier  : public IOTANotifier 
{
	
public:
	virtual void __fastcall ProvidersUpdated(void) = 0 ;
};

__interface IOTAFileHistory;
typedef System::DelphiInterface<IOTAFileHistory> _di_IOTAFileHistory;
__interface  INTERFACE_UUID("{B8CDB02D-93D8-4088-AE03-A28052AD0FAD}") IOTAFileHistoryProvider  : public IDispatch 
{
	
public:
	virtual HRESULT __safecall Get_Ident(WideString &Get_Ident_result) = 0 ;
	virtual HRESULT __safecall Get_Name(WideString &Get_Name_result) = 0 ;
	virtual HRESULT __safecall GetFileHistory(const WideString AFileName, _di_IOTAFileHistory &GetFileHistory_result) = 0 ;
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_Get_Ident() { WideString r; HRESULT hr = Get_Ident(r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Ident = {read=_scw_Get_Ident};
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_Get_Name() { WideString r; HRESULT hr = Get_Name(r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Name = {read=_scw_Get_Name};
};

__interface  INTERFACE_UUID("{92E624D2-A7CD-4C89-9B4E-71170955E96C}") IOTAFileHistory  : public IDispatch 
{
	
public:
	virtual HRESULT __safecall Get_Count(int &Get_Count_result) = 0 ;
	virtual HRESULT __safecall GetAuthor(int Index, WideString &GetAuthor_result) = 0 ;
	virtual HRESULT __safecall GetComment(int Index, WideString &GetComment_result) = 0 ;
	virtual HRESULT __safecall GetContent(int Index, _di_IStream &GetContent_result) = 0 ;
	virtual HRESULT __safecall GetDate(int Index, System::TDateTime &GetDate_result) = 0 ;
	virtual HRESULT __safecall GetIdent(int Index, WideString &GetIdent_result) = 0 ;
	virtual HRESULT __safecall GetHistoryStyle(int Index, TOTAHistoryStyle &GetHistoryStyle_result) = 0 ;
	virtual HRESULT __safecall GetLabelCount(int Index, int &GetLabelCount_result) = 0 ;
	virtual HRESULT __safecall GetLabels(int Index, int LabelIndex, WideString &GetLabels_result) = 0 ;
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_GetAuthor(int Index) { WideString r; HRESULT hr = GetAuthor(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Author[int Index] = {read=_scw_GetAuthor};
	#pragma option push -w-inl
	/* safecall wrapper */ inline int _scw_Get_Count() { int r; HRESULT hr = Get_Count(r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property int Count = {read=_scw_Get_Count};
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_GetComment(int Index) { WideString r; HRESULT hr = GetComment(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Comment[int Index] = {read=_scw_GetComment};
	#pragma option push -w-inl
	/* safecall wrapper */ inline _di_IStream _scw_GetContent(int Index) { _di_IStream r; HRESULT hr = GetContent(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property _di_IStream Content[int Index] = {read=_scw_GetContent};
	#pragma option push -w-inl
	/* safecall wrapper */ inline System::TDateTime _scw_GetDate(int Index) { System::TDateTime r; HRESULT hr = GetDate(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property System::TDateTime Date[int Index] = {read=_scw_GetDate};
	#pragma option push -w-inl
	/* safecall wrapper */ inline TOTAHistoryStyle _scw_GetHistoryStyle(int Index) { TOTAHistoryStyle r; HRESULT hr = GetHistoryStyle(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property TOTAHistoryStyle HistoryStyle[int Index] = {read=_scw_GetHistoryStyle};
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_GetIdent(int Index) { WideString r; HRESULT hr = GetIdent(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Ident[int Index] = {read=_scw_GetIdent};
	#pragma option push -w-inl
	/* safecall wrapper */ inline int _scw_GetLabelCount(int Index) { int r; HRESULT hr = GetLabelCount(Index, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property int LabelCount[int Index] = {read=_scw_GetLabelCount};
	#pragma option push -w-inl
	/* safecall wrapper */ inline WideString _scw_GetLabels(int Index, int LabelIndex) { WideString r; HRESULT hr = GetLabels(Index, LabelIndex, r); System::CheckSafecallResult(hr); return r; }
	#pragma option pop
	__property WideString Labels[int Index][int LabelIndex] = {read=_scw_GetLabels};
};

//-- var, const, procedure ---------------------------------------------------

}	/* namespace Filehistoryapi */
using namespace Filehistoryapi;
#pragma pack(pop)
#pragma option pop

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