// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// C++ TLBWRTR : $Revision:   1.2  $
// File generated on 12/17/1999 10:35:49 AM from Type Library described below.

// ************************************************************************ //
// Type Lib: SPrmSrvr.tlb (1)
// IID\LCID: {8533D899-DA49-43D1-B23E-EF1BD03A279A}\0
// Helpfile: 
// DepndLst: 
//   (1) v2.0 stdole, (C:\WIN2K\System32\STDOLE2.TLB)
//   (2) v4.0 StdVCL, (C:\WIN2K\System32\STDVCL40.DLL)
//   (3) v1.0 Midas, (C:\WIN2K\System32\midas.dll)
// ************************************************************************ //
#ifndef   __SPrmSrvr_TLB_h__
#define   __SPrmSrvr_TLB_h__

#pragma option push -b -w-inl

#include <utilcls.h>
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0200)
//
// The code generated by the TLIBIMP utility or the Import|TypeLibrary 
// and Import|ActiveX feature of C++Builder rely on specific versions of
// the header file UTILCLS.H found in the INCLUDE\VCL directory. If an 
// older version of the file is detected, you probably need an update/patch.
//
#error "This file requires a newer version of the header UTILCLS.H" \
       "You need to apply an update/patch to your copy of C++Builder"
#endif
#include <olectl.h>
#include <ocidl.h>
#if defined(USING_ATLVCL) || defined(USING_ATL)
#if !defined(__TLB_NO_EVENT_WRAPPERS)
#include <atl/atlmod.h>
#endif
#endif

#include "databkr.hpp"

using Midas::IAppServer;

// *********************************************************************//
// Forward reference of some VCL types (to avoid including STDVCL.HPP)    
// *********************************************************************//
namespace Stdvcl {class IStrings; class IStringsDisp;}
using namespace Stdvcl;
typedef TComInterface<IStrings> IStringsPtr;
typedef TComInterface<IStringsDisp> IStringsDispPtr;

namespace Sprmsrvr_tlb
{

// *********************************************************************//
// HelpString: SPrmSrvr Library
// Version:    1.0
// *********************************************************************//


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLSID_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
extern const GUID LIBID_SPrmSrvr;
extern const GUID IID_ISetParamSrvr;
extern const GUID CLSID_SetParamSrvr;

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
interface DECLSPEC_UUID("{16C1AD17-5F63-48B5-A7F4-429C2EC03B97}") ISetParamSrvr;
typedef TComInterface<ISetParamSrvr, &IID_ISetParamSrvr> ISetParamSrvrPtr;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
//                                                                        
// The LIBID_OF_ macro(s) map a LIBID_OF_CoClassName to the GUID of this  
// TypeLibrary. It simplifies the updating of macros when CoClass name    
// change.                                                                
// *********************************************************************//

#define LIBID_OF_SetParamSrvr (&LIBID_SPrmSrvr)
// *********************************************************************//
// Interface: ISetParamSrvr
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {16C1AD17-5F63-48B5-A7F4-429C2EC03B97}
// *********************************************************************//
interface ISetParamSrvr  : public IAppServer
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)
// *********************************************************************//
// SmartIntf: TCOMISetParamSrvr
// Interface: ISetParamSrvr
// *********************************************************************//
template <class T /* ISetParamSrvr */ >
class TCOMISetParamSrvrT : public TComInterface<ISetParamSrvr>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISetParamSrvrT() {}
  TCOMISetParamSrvrT(ISetParamSrvr *intf, bool addRef = false) : TComInterface<ISetParamSrvr>(intf, addRef) {}
  TCOMISetParamSrvrT(const TCOMISetParamSrvrT& src) : TComInterface<ISetParamSrvr>(src) {}
  TCOMISetParamSrvrT& operator=(const TCOMISetParamSrvrT& src) { Bind(src, true); return *this;}


};
typedef TCOMISetParamSrvrT<ISetParamSrvr> TCOMISetParamSrvr;

// *********************************************************************//
// DispIntf:  ISetParamSrvr
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {16C1AD17-5F63-48B5-A7F4-429C2EC03B97}
// *********************************************************************//
template<class T>
class ISetParamSrvrDispT : public TAutoDriver<ISetParamSrvr>
{
public:
  ISetParamSrvrDispT(){}

  ISetParamSrvrDispT(ISetParamSrvr *pintf)
  {
    TAutoDriver<ISetParamSrvr>::Bind(pintf, false);
  }

  ISetParamSrvrDispT(ISetParamSrvrPtr pintf)
  {
    TAutoDriver<ISetParamSrvr>::Bind(pintf, true);
  }

  ISetParamSrvrDispT& operator=(ISetParamSrvr *pintf)
  {
    TAutoDriver<ISetParamSrvr>::Bind(pintf, false);
    return *this;
  }

  ISetParamSrvrDispT& operator=(ISetParamSrvrPtr pintf)
  {
    TAutoDriver<ISetParamSrvr>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SetParamSrvr));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SetParamSrvr);
  }

  HRESULT         __fastcall AS_ApplyUpdates(BSTR ProviderName/*[in]*/, TVariant Delta/*[in]*/, 
                                             long MaxErrors/*[in]*/, long* ErrorCount/*[out]*/, 
                                             TVariant* OwnerData/*[in,out]*/, 
                                             TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_ApplyUpdates(BSTR ProviderName/*[in]*/, TVariant Delta/*[in]*/, 
                                             long MaxErrors/*[in]*/, long* ErrorCount/*[out]*/, 
                                             TVariant* OwnerData/*[in,out]*/);
  HRESULT         __fastcall AS_GetRecords(BSTR ProviderName/*[in]*/, long Count/*[in]*/, 
                                           long* RecsOut/*[out]*/, long Options/*[in]*/, 
                                           BSTR CommandText/*[in]*/, TVariant* Params/*[in,out]*/, 
                                           TVariant* OwnerData/*[in,out]*/, 
                                           TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_GetRecords(BSTR ProviderName/*[in]*/, long Count/*[in]*/, 
                                           long* RecsOut/*[out]*/, long Options/*[in]*/, 
                                           BSTR CommandText/*[in]*/, TVariant* Params/*[in,out]*/, 
                                           TVariant* OwnerData/*[in,out]*/);
  HRESULT         __fastcall AS_DataRequest(BSTR ProviderName/*[in]*/, TVariant Data/*[in]*/, 
                                            TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_DataRequest(BSTR ProviderName/*[in]*/, TVariant Data/*[in]*/);
  HRESULT         __fastcall AS_GetProviderNames(TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_GetProviderNames(void);
  HRESULT         __fastcall AS_GetParams(BSTR ProviderName/*[in]*/, TVariant* OwnerData/*[in,out]*/
                                          , TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_GetParams(BSTR ProviderName/*[in]*/, TVariant* OwnerData/*[in,out]*/);
  HRESULT         __fastcall AS_RowRequest(BSTR ProviderName/*[in]*/, TVariant Row/*[in]*/, 
                                           long RequestType/*[in]*/, TVariant* OwnerData/*[in,out]*/
                                           , TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall AS_RowRequest(BSTR ProviderName/*[in]*/, TVariant Row/*[in]*/, 
                                           long RequestType/*[in]*/, TVariant* OwnerData/*[in,out]*/);
  HRESULT         __fastcall AS_Execute(BSTR ProviderName/*[in]*/, BSTR CommandText/*[in]*/, 
                                        TVariant* Params/*[in,out]*/, 
                                        TVariant* OwnerData/*[in,out]*/);


};
typedef ISetParamSrvrDispT<ISetParamSrvr> ISetParamSrvrDisp;

// *********************************************************************//
// SmartIntf: TCOMISetParamSrvr
// Interface: ISetParamSrvr
// *********************************************************************//
// *********************************************************************//
// DispIntf:  ISetParamSrvr
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {16C1AD17-5F63-48B5-A7F4-429C2EC03B97}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_ApplyUpdates(BSTR ProviderName/*[in]*/, TVariant Delta/*[in]*/, 
                                       long MaxErrors/*[in]*/, long* ErrorCount/*[out]*/, 
                                       TVariant* OwnerData/*[in,out]*/, 
                                       TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_ApplyUpdates"), DISPID(20000000));
  TAutoArgs<5> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = Delta /*[VT_VARIANT:0]*/;
  _args[3] = MaxErrors /*[VT_I4:0]*/;
  _args[4] = ErrorCount /*[VT_I4:1]*/;
  _args[5] = OwnerData /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_ApplyUpdates(BSTR ProviderName/*[in]*/, TVariant Delta/*[in]*/, 
                                       long MaxErrors/*[in]*/, long* ErrorCount/*[out]*/, 
                                       TVariant* OwnerData/*[in,out]*/)
{
  TVariant Value;
  this->AS_ApplyUpdates(ProviderName, Delta, MaxErrors, ErrorCount, OwnerData, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_GetRecords(BSTR ProviderName/*[in]*/, long Count/*[in]*/, 
                                     long* RecsOut/*[out]*/, long Options/*[in]*/, 
                                     BSTR CommandText/*[in]*/, TVariant* Params/*[in,out]*/, 
                                     TVariant* OwnerData/*[in,out]*/, 
                                     TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_GetRecords"), DISPID(20000001));
  TAutoArgs<7> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = Count /*[VT_I4:0]*/;
  _args[3] = RecsOut /*[VT_I4:1]*/;
  _args[4] = Options /*[VT_I4:0]*/;
  _args[5] = CommandText /*[VT_BSTR:0]*/;
  _args[6] = Params /*[VT_VARIANT:1]*/;
  _args[7] = OwnerData /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_GetRecords(BSTR ProviderName/*[in]*/, long Count/*[in]*/, 
                                     long* RecsOut/*[out]*/, long Options/*[in]*/, 
                                     BSTR CommandText/*[in]*/, TVariant* Params/*[in,out]*/, 
                                     TVariant* OwnerData/*[in,out]*/)
{
  TVariant Value;
  this->AS_GetRecords(ProviderName, Count, RecsOut, Options, CommandText, Params, OwnerData, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_DataRequest(BSTR ProviderName/*[in]*/, TVariant Data/*[in]*/, 
                                      TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_DataRequest"), DISPID(20000002));
  TAutoArgs<2> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = Data /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_DataRequest(BSTR ProviderName/*[in]*/, TVariant Data/*[in]*/)
{
  TVariant Value;
  this->AS_DataRequest(ProviderName, Data, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_GetProviderNames(TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_GetProviderNames"), DISPID(20000003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_GetProviderNames(void)
{
  TVariant Value;
  this->AS_GetProviderNames((TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_GetParams(BSTR ProviderName/*[in]*/, TVariant* OwnerData/*[in,out]*/, 
                                    TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_GetParams"), DISPID(20000004));
  TAutoArgs<2> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = OwnerData /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_GetParams(BSTR ProviderName/*[in]*/, TVariant* OwnerData/*[in,out]*/)
{
  TVariant Value;
  this->AS_GetParams(ProviderName, OwnerData, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_RowRequest(BSTR ProviderName/*[in]*/, TVariant Row/*[in]*/, 
                                     long RequestType/*[in]*/, TVariant* OwnerData/*[in,out]*/, 
                                     TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_RowRequest"), DISPID(20000005));
  TAutoArgs<4> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = Row /*[VT_VARIANT:0]*/;
  _args[3] = RequestType /*[VT_I4:0]*/;
  _args[4] = OwnerData /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISetParamSrvrDispT<T>::AS_RowRequest(BSTR ProviderName/*[in]*/, TVariant Row/*[in]*/, 
                                     long RequestType/*[in]*/, TVariant* OwnerData/*[in,out]*/)
{
  TVariant Value;
  this->AS_RowRequest(ProviderName, Row, RequestType, OwnerData, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ISetParamSrvrDispT<T>::AS_Execute(BSTR ProviderName/*[in]*/, BSTR CommandText/*[in]*/, 
                                  TVariant* Params/*[in,out]*/, TVariant* OwnerData/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("AS_Execute"), DISPID(20000006));
  TAutoArgs<4> _args;
  _args[1] = ProviderName /*[VT_BSTR:0]*/;
  _args[2] = CommandText /*[VT_BSTR:0]*/;
  _args[3] = Params /*[VT_VARIANT:1]*/;
  _args[4] = OwnerData /*[VT_VARIANT:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// The following typedefs expose classes (named CoCoClassName) that       
// provide static Create() and CreateRemote(LPWSTR machineName) methods   
// for creating an instance of an exposed object. These functions can     
// be used by client wishing to automate CoClasses exposed by this        
// typelibrary.                                                           
// *********************************************************************//

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SetParamSrvr
// Interface: TCOMISetParamSrvr
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISetParamSrvr, ISetParamSrvr, &CLSID_SetParamSrvr, &IID_ISetParamSrvr> CoSetParamSrvr;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


};     // namespace Sprmsrvr_tlb

#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using  namespace Sprmsrvr_tlb;
#endif

#pragma option pop

#endif // __SPrmSrvr_TLB_h__
