// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Ppsaver.pas' rev: 4.00

#ifndef PpsaverHPP
#define PpsaverHPP

#pragma delphiheader begin
#pragma option push -w-
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <ActiveX.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ppsaver
{
//-- type declarations -------------------------------------------------------
typedef void __fastcall (__closure *TPropertyPageSaverErrorEvent)(System::TObject* Sender, int PageIndex
	, AnsiString PageName, AnsiString PageTitle, AnsiString ErrorMessage);

typedef void __fastcall (__closure *TDialogClosedEvent)(System::TObject* Sender, bool Cancelled);

typedef void __fastcall (__closure *TNewPropertyValue)(System::TObject* Sender, AnsiString PropertyId
	, AnsiString PropertyValue, AnsiString PropertyLabel);

#pragma option push -b-
enum TRegistryRoot { RR_HKEY_CURRENT_USER, RR_HKEY_LOCAL_MACHINE };
#pragma option pop

class DELPHICLASS TPropertyPageSaverBase;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TPropertyPageSaverBase : public Controls::TCustomControl 
{
	typedef Controls::TCustomControl inherited;
	
private:
	Classes::TComponent* FAssociated;
	virtual TPropertyPageSaverBase* __fastcall CreateNewInstance(Classes::TComponent* Owner) = 0 ;
	virtual bool __fastcall Activate(const Variant &pIUnknown) = 0 ;
	virtual void __fastcall Deactivate(void) = 0 ;
	virtual bool __fastcall IsActive(void) = 0 ;
	virtual bool __fastcall RestoreProperties(void) = 0 ;
	virtual bool __fastcall ShowDialog(void) = 0 ;
	virtual bool __fastcall SaveProperties(void) = 0 ;
	virtual AnsiString __fastcall GetPropertiesState(void) = 0 ;
	virtual AnsiString __fastcall GetProperty(AnsiString PropertyId) = 0 ;
	virtual bool __fastcall SetProperty(AnsiString PropertyId, AnsiString Value) = 0 ;
	virtual bool __fastcall ClearProperties(void) = 0 ;
	virtual TRegistryRoot __fastcall GetRegistryRoot(void) = 0 ;
	virtual AnsiString __fastcall GetRegistryKey(void) = 0 ;
	virtual AnsiString __fastcall GetRegistrySubKey(void) = 0 ;
	virtual AnsiString __fastcall GetSelectPages(void) = 0 ;
	virtual AnsiString __fastcall GetDialogTitle(void) = 0 ;
	virtual Forms::TPosition __fastcall GetDialogPosition(void) = 0 ;
	virtual bool __fastcall GetIdentifyProperties(void) = 0 ;
	virtual void __fastcall SetRegistryRoot(TRegistryRoot Value) = 0 ;
	virtual void __fastcall SetRegistryKey(AnsiString Value) = 0 ;
	virtual void __fastcall SetRegistrySubKey(AnsiString Value) = 0 ;
	virtual void __fastcall SetDialogTitle(AnsiString Value) = 0 ;
	virtual void __fastcall SetDialogPosition(Forms::TPosition Value) = 0 ;
	virtual void __fastcall SetIdentifyProperties(bool Value) = 0 ;
	virtual void __fastcall SetSelectPages(AnsiString Value) = 0 ;
public:
	#pragma option push -w-inl
	/* TCustomControl.Create */ inline __fastcall virtual TPropertyPageSaverBase(Classes::TComponent* AOwner
		) : Controls::TCustomControl(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCustomControl.Destroy */ inline __fastcall virtual ~TPropertyPageSaverBase(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TPropertyPageSaverBase(HWND ParentWindow) : Controls::TCustomControl(
		ParentWindow) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TPropertyPageSaver;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TPropertyPageSaver : public TPropertyPageSaverBase 
{
	typedef TPropertyPageSaverBase inherited;
	
private:
	void *Impl;
	int FReserved;
	TPropertyPageSaverErrorEvent FOnInterfaceError;
	Classes::TNotifyEvent FOnInvalidRegistryKey;
	TPropertyPageSaverErrorEvent FOnErrorSavingProperties;
	TPropertyPageSaverErrorEvent FOnErrorRestoringProperties;
	TNewPropertyValue FOnNewPropertyValue;
	Classes::TNotifyEvent FOnPropertiesRestored;
	Classes::TNotifyEvent FOnPropertiesSaved;
	TDialogClosedEvent FOnDialogClosed;
	AnsiString __fastcall GetVersion();
	void __fastcall SetVersion(AnsiString Value);
	virtual AnsiString __fastcall GetRegistryKey();
	virtual TRegistryRoot __fastcall GetRegistryRoot(void);
	virtual AnsiString __fastcall GetRegistrySubKey();
	virtual AnsiString __fastcall GetSelectPages();
	virtual AnsiString __fastcall GetDialogTitle();
	virtual Forms::TPosition __fastcall GetDialogPosition(void);
	virtual bool __fastcall GetIdentifyProperties(void);
	virtual void __fastcall SetRegistryKey(AnsiString Value);
	virtual void __fastcall SetRegistryRoot(TRegistryRoot Value);
	virtual void __fastcall SetRegistrySubKey(AnsiString Value);
	virtual void __fastcall SetDialogTitle(AnsiString Value);
	virtual void __fastcall SetDialogPosition(Forms::TPosition Value);
	virtual void __fastcall SetIdentifyProperties(bool Value);
	virtual void __fastcall SetSelectPages(AnsiString Value);
	
protected:
	virtual void __fastcall Paint(void);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
		);
	
public:
	__fastcall virtual TPropertyPageSaver(Classes::TComponent* AOwner);
	__fastcall virtual ~TPropertyPageSaver(void);
	virtual bool __fastcall Activate(const Variant &pIUnknown);
	virtual bool __fastcall ClearProperties(void);
	virtual TPropertyPageSaverBase* __fastcall CreateNewInstance(Classes::TComponent* Owner);
	virtual void __fastcall Deactivate(void);
	AnsiString __fastcall GetFullRegistryPath();
	unsigned __fastcall GetInterfaceVersion(void);
	int __fastcall GetPagesCount(const Variant &pIUnknown);
	AnsiString __fastcall GetPageTitle(const Variant &pIUnknown, int PageIndex);
	virtual AnsiString __fastcall GetPropertiesState();
	virtual AnsiString __fastcall GetProperty(AnsiString PropertyId);
	virtual bool __fastcall IsActive(void);
	__property int Reserved = {read=FReserved, write=FReserved, nodefault};
	virtual bool __fastcall RestoreProperties(void);
	virtual bool __fastcall SaveProperties(void);
	virtual bool __fastcall SetProperty(AnsiString PropertyId, AnsiString Value);
	virtual bool __fastcall ShowDialog(void);
	
__published:
	__property AnsiString DialogTitle = {read=GetDialogTitle, write=SetDialogTitle};
	__property Forms::TPosition DialogPosition = {read=GetDialogPosition, write=SetDialogPosition, nodefault
		};
	__property bool IdentifyProperties = {read=GetIdentifyProperties, write=SetIdentifyProperties, nodefault
		};
	__property AnsiString RegistryKey = {read=GetRegistryKey, write=SetRegistryKey};
	__property TRegistryRoot RegistryRoot = {read=GetRegistryRoot, write=SetRegistryRoot, nodefault};
	__property AnsiString RegistrySubKey = {read=GetRegistrySubKey, write=SetRegistrySubKey};
	__property AnsiString SelectPages = {read=GetSelectPages, write=SetSelectPages};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
	__property TDialogClosedEvent OnDialogClosed = {read=FOnDialogClosed, write=FOnDialogClosed};
	__property TPropertyPageSaverErrorEvent OnErrorRestoringProperties = {read=FOnErrorRestoringProperties
		, write=FOnErrorRestoringProperties};
	__property TPropertyPageSaverErrorEvent OnErrorSavingProperties = {read=FOnErrorSavingProperties, write=
		FOnErrorSavingProperties};
	__property TPropertyPageSaverErrorEvent OnInterfaceError = {read=FOnInterfaceError, write=FOnInterfaceError
		};
	__property Classes::TNotifyEvent OnInvalidRegistryKey = {read=FOnInvalidRegistryKey, write=FOnInvalidRegistryKey
		};
	__property TNewPropertyValue OnNewPropertyValue = {read=FOnNewPropertyValue, write=FOnNewPropertyValue
		};
	__property Classes::TNotifyEvent OnPropertiesRestored = {read=FOnPropertiesRestored, write=FOnPropertiesRestored
		};
	__property Classes::TNotifyEvent OnPropertiesSaved = {read=FOnPropertiesSaved, write=FOnPropertiesSaved
		};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TPropertyPageSaver(HWND ParentWindow) : TPropertyPageSaverBase(
		ParentWindow) { }
	#pragma option pop
	
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __fastcall Register(void);

}	/* namespace Ppsaver */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Ppsaver;
#endif
#pragma option pop	// -w-

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