// ************************************************************************ //
// 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.0.1.0.1.0  $
// File generated on 1/17/2002 2:24:44 PM from Type Library described below.

// ************************************************************************  //
// Type Lib: autosrv.tlb (1)
// LIBID: {14452774-CA96-4F0A-B4B1-F464D6150463}
// LCID: 0
// Helpfile: 
// HelpString: autosrv Library
// DepndLst: 
//   (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
// ************************************************************************ //
#ifndef   autosrv_TLBH
#define   autosrv_TLBH

#pragma option push -b -w-inl

#include <utilcls.h>
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0500)
//
// 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


// *********************************************************************//
// 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 Autosrv_tlb
{

// *********************************************************************//
// HelpString: autosrv 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 "C" const __declspec(selectany) GUID LIBID_autosrv = {0x14452774, 0xCA96, 0x4F0A,{ 0xB4, 0xB1, 0xF4,0x64, 0xD6, 0x15,0x04, 0x63} };
extern "C" const __declspec(selectany) GUID IID_IEditServer = {0x4C58BE81, 0xEF79, 0x4C7E,{ 0xAD, 0xE7, 0xA5,0x2B, 0x8F, 0x09,0x0C, 0x97} };
extern "C" const __declspec(selectany) GUID CLSID_EditServer = {0xE75CBA81, 0x036A, 0x4B11,{ 0xA5, 0x70, 0x4B,0x31, 0x07, 0xE3,0x35, 0xFC} };

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
interface DECLSPEC_UUID("{4C58BE81-EF79-4C7E-ADE7-A52B8F090C97}") IEditServer;
typedef TComInterface<IEditServer, &IID_IEditServer> IEditServerPtr;


// *********************************************************************//
// 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.                                                                
// *********************************************************************//
typedef IEditServer EditServer;
typedef IEditServerPtr EditServerPtr;

#define LIBID_OF_EditServer (&LIBID_autosrv)
// *********************************************************************//
// Interface: IEditServer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4C58BE81-EF79-4C7E-ADE7-A52B8F090C97}
// *********************************************************************//
interface IEditServer  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE Clear(void) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/, 
                                                BSTR* result/*[out,retval]*/) = 0; // [2]
  virtual HRESULT STDMETHODCALLTYPE get_EditNum(int* Value/*[out,retval]*/) = 0; // [3]
  virtual HRESULT STDMETHODCALLTYPE set_EditNum(int Value/*[in]*/) = 0; // [3]
  virtual HRESULT STDMETHODCALLTYPE get_EditStr(BSTR* Value/*[out,retval]*/) = 0; // [4]
  virtual HRESULT STDMETHODCALLTYPE set_EditStr(BSTR Value/*[in]*/) = 0; // [4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/)
  {
    BSTR result = 0;
    OLECHECK(this->SetThreeStr(s1, s2, s3, (BSTR*)&result));
    return result;
  }

  int __fastcall get_EditNum(void)
  {
    int Value;
    OLECHECK(this->get_EditNum((int*)&Value));
    return Value;
  }

  BSTR __fastcall get_EditStr(void)
  {
    BSTR Value = 0;
    OLECHECK(this->get_EditStr((BSTR*)&Value));
    return Value;
  }


  __property   int             EditNum = {read = get_EditNum, write = set_EditNum};
  __property   BSTR            EditStr = {read = get_EditStr, write = set_EditStr};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

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

  HRESULT         __fastcall Clear(void);
  HRESULT         __fastcall SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/, 
                                         BSTR* result/*[out,retval]*/);
  BSTR            __fastcall SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/);
  HRESULT         __fastcall get_EditNum(int* Value/*[out,retval]*/);
  int             __fastcall get_EditNum(void);
  HRESULT         __fastcall set_EditNum(int Value/*[in]*/);
  HRESULT         __fastcall get_EditStr(BSTR* Value/*[out,retval]*/);
  BSTR            __fastcall get_EditStr(void);
  HRESULT         __fastcall set_EditStr(BSTR Value/*[in]*/);

  __property   int             EditNum = {read = get_EditNum, write = set_EditNum};
  __property   BSTR            EditStr = {read = get_EditStr, write = set_EditStr};
};
typedef TCOMIEditServerT<IEditServer> TCOMIEditServer;

// *********************************************************************//
// DispIntf:  IEditServer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4C58BE81-EF79-4C7E-ADE7-A52B8F090C97}
// *********************************************************************//
template<class T>
class IEditServerDispT : public TAutoDriver<IEditServer>
{
public:
  IEditServerDispT(){}

  IEditServerDispT(IEditServer *pintf)
  {
    TAutoDriver<IEditServer>::Bind(pintf, false);
  }

  IEditServerDispT(IEditServerPtr pintf)
  {
    TAutoDriver<IEditServer>::Bind(pintf, true);
  }

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

  IEditServerDispT& operator=(IEditServerPtr pintf)
  {
    TAutoDriver<IEditServer>::Bind(pintf, true);
    return *this;
  }

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

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

  HRESULT         __fastcall Clear();
  HRESULT         __fastcall SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/, 
                                         BSTR* result/*[out,retval]*/);
  BSTR            __fastcall SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/);
  HRESULT         __fastcall get_EditNum(int* Value/*[out,retval]*/);
  int             __fastcall get_EditNum(void);
  HRESULT         __fastcall set_EditNum(int Value/*[in]*/);
  HRESULT         __fastcall get_EditStr(BSTR* Value/*[out,retval]*/);
  BSTR            __fastcall get_EditStr(void);
  HRESULT         __fastcall set_EditStr(BSTR Value/*[in]*/);

  __property   int             EditNum = {read = get_EditNum, write = set_EditNum};
  __property   BSTR            EditStr = {read = get_EditStr, write = set_EditStr};
};
typedef IEditServerDispT<IEditServer> IEditServerDisp;

// *********************************************************************//
// SmartIntf: TCOMIEditServer
// Interface: IEditServer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::Clear(void)
{
  return (*this)->Clear();
}

template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/, 
                                 BSTR* result/*[out,retval]*/)
{
  return (*this)->SetThreeStr(s1, s2, s3, result);
}

template <class T> BSTR __fastcall
TCOMIEditServerT<T>::SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/)
{
  BSTR result = 0;
  OLECHECK(this->SetThreeStr(, (BSTR*)&result));
  return result;
}

template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::get_EditNum(int* Value/*[out,retval]*/)
{
  return (*this)->get_EditNum(Value);
}

template <class T> int __fastcall
TCOMIEditServerT<T>::get_EditNum(void)
{
  int Value;
  OLECHECK(this->get_EditNum((int*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::set_EditNum(int Value/*[in]*/)
{
  return (*this)->set_EditNum(Value);
}

template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::get_EditStr(BSTR* Value/*[out,retval]*/)
{
  return (*this)->get_EditStr(Value);
}

template <class T> BSTR __fastcall
TCOMIEditServerT<T>::get_EditStr(void)
{
  BSTR Value = 0;
  OLECHECK(this->get_EditStr((BSTR*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIEditServerT<T>::set_EditStr(BSTR Value/*[in]*/)
{
  return (*this)->set_EditStr(Value);
}

// *********************************************************************//
// DispIntf:  IEditServer
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4C58BE81-EF79-4C7E-ADE7-A52B8F090C97}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEditServerDispT<T>::Clear()
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(1));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IEditServerDispT<T>::SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/, 
                                 BSTR* result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetThreeStr"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = s1 /*[VT_BSTR:0]*/;
  _args[2] = s2 /*[VT_BSTR:0]*/;
  _args[3] = s3 /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(result /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IEditServerDispT<T>::SetThreeStr(BSTR s1/*[in]*/, BSTR s2/*[in]*/, BSTR s3/*[in]*/)
{
  BSTR result;
  this->SetThreeStr(s1, s2, s3, (BSTR*)&result);
  return result;
}

template <class T> HRESULT __fastcall
IEditServerDispT<T>::get_EditNum(int* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditNum"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> int __fastcall
IEditServerDispT<T>::get_EditNum(void)
{
  int Value;
  this->get_EditNum((int*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IEditServerDispT<T>::set_EditNum(int Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditNum"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_INT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEditServerDispT<T>::get_EditStr(BSTR* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditStr"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IEditServerDispT<T>::get_EditStr(void)
{
  BSTR Value;
  this->get_EditStr((BSTR*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IEditServerDispT<T>::set_EditStr(BSTR Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditStr"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_BSTR:0]*/;
  return OlePropertyPut(_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  : EditServer
// Interface: TCOMIEditServer
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEditServer, IEditServer, &CLSID_EditServer, &IID_IEditServer> CoEditServer;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


};     // namespace Autosrv_tlb

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

#pragma option pop

#endif // autosrv_TLBH
