// ************************************************************************ //
// 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  $
// File generated on 11/15/1999 2:46:44 PM from Type Library described below.

// *************************************************************************//
// NOTE:                                                                      
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties  
// which return objects that may need to be explicitly created via a function 
// call prior to any access via the property. These items have been disabled  
// in order to prevent accidental use from within the object inspector. You   
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively   
// removing them from the $IFDEF blocks. However, such items must still be    
// programmatically created via a method of the appropriate CoClass before    
// they can be used.                                                          
// ************************************************************************ //
// Type Lib: C:\Program Files\Borland\Rampage\Projects\autoproj\autosrvr.tlb (1)
// IID\LCID: {FB69FE93-5A68-46AF-A792-922CC690BD27}\0
// Helpfile: 
// DepndLst: 
//   (1) v2.0 stdole, (C:\WIN2K\System32\STDOLE2.TLB)
//   (2) v4.0 StdVCL, (C:\WIN2K\System32\STDVCL40.DLL)
// ************************************************************************ //
#ifndef   __autosrvr_TLB_h__
#define   __autosrvr_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


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

// *********************************************************************//
// HelpString: autosrvr 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_autosrvr;
extern const GUID IID_IMyAuto;
extern const GUID CLSID_MyAuto;

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
interface DECLSPEC_UUID("{4107EB4E-09E1-4922-97E6-8E8E3DF8388A}") IMyAuto;
typedef TComInterface<IMyAuto, &IID_IMyAuto> IMyAutoPtr;

// *********************************************************************//
// 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 IMyAuto MyAuto;
typedef IMyAutoPtr MyAutoPtr;

#define LIBID_OF_MyAuto (&LIBID_autosrvr)
// *********************************************************************//
// Interface: IMyAuto
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4107EB4E-09E1-4922-97E6-8E8E3DF8388A}
// *********************************************************************//
interface IMyAuto  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_MyProp(BSTR* Value/*[out,retval]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE set_MyProp(BSTR Value/*[in]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE ShowDialog(void) = 0; // [2]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

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


  __property   BSTR            MyProp = {read = get_MyProp, write = set_MyProp};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

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

  HRESULT         __fastcall get_MyProp(BSTR* Value/*[out,retval]*/);
  BSTR            __fastcall get_MyProp(void);
  HRESULT         __fastcall set_MyProp(BSTR Value/*[in]*/);
  HRESULT         __fastcall ShowDialog(void);

  __property   BSTR            MyProp = {read = get_MyProp, write = set_MyProp};
};
typedef TCOMIMyAutoT<IMyAuto> TCOMIMyAuto;

// *********************************************************************//
// DispIntf:  IMyAuto
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4107EB4E-09E1-4922-97E6-8E8E3DF8388A}
// *********************************************************************//
template<class T>
class IMyAutoDispT : public TAutoDriver<IMyAuto>
{
public:
  IMyAutoDispT(){}

  IMyAutoDispT(IMyAuto *pintf)
  {
    TAutoDriver<IMyAuto>::Bind(pintf, false);
  }

  IMyAutoDispT(IMyAutoPtr pintf)
  {
    TAutoDriver<IMyAuto>::Bind(pintf, true);
  }

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

  IMyAutoDispT& operator=(IMyAutoPtr pintf)
  {
    TAutoDriver<IMyAuto>::Bind(pintf, true);
    return *this;
  }

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

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

  HRESULT         __fastcall get_MyProp(BSTR* Value/*[out,retval]*/);
  BSTR            __fastcall get_MyProp(void);
  HRESULT         __fastcall set_MyProp(BSTR Value/*[in]*/);
  HRESULT         __fastcall ShowDialog();

  __property   BSTR            MyProp = {read = get_MyProp, write = set_MyProp};
};
typedef IMyAutoDispT<IMyAuto> IMyAutoDisp;

// *********************************************************************//
// SmartIntf: TCOMIMyAuto
// Interface: IMyAuto
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMyAutoT<T>::get_MyProp(BSTR* Value/*[out,retval]*/)
{
  return (*this)->get_MyProp(Value);
}

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

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

template <class T> HRESULT __fastcall
TCOMIMyAutoT<T>::ShowDialog(void)
{
  return (*this)->ShowDialog();
}

// *********************************************************************//
// DispIntf:  IMyAuto
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {4107EB4E-09E1-4922-97E6-8E8E3DF8388A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMyAutoDispT<T>::get_MyProp(BSTR* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MyProp"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

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

template <class T> HRESULT __fastcall
IMyAutoDispT<T>::set_MyProp(BSTR Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MyProp"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMyAutoDispT<T>::ShowDialog()
{
  _TDispID _dispid(*this, OLETEXT("ShowDialog"), DISPID(2));
  return OleFunction(_dispid);
}

// *********************************************************************//
// 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  : MyAuto
// Interface: TCOMIMyAuto
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMyAuto, IMyAuto, &CLSID_MyAuto, &IID_IMyAuto> CoMyAuto;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


};     // namespace Autosrvr_tlb

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

#pragma option pop

#endif // __autosrvr_TLB_h__
