/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: MSScriptControl */

#ifndef _msscptctl_H_
#define _msscptctl_H_

DEFINE_GUID(LIBID_MSScriptControl,0x0E59F1D2L,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif

/* Functions defined in module: ScriptControlConstants */
    const LPSTR GlobalModule = "Global";
    const long NoTimeout = -1;

typedef enum {
    Initialized = 0,
    Connected = 1
} ScriptControlStates;

DEFINE_GUID(IID_IScriptProcedure,0x70841C73L,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);

/* Definition of interface: IScriptProcedure */
#undef INTERFACE
#define INTERFACE IScriptProcedure

DECLARE_INTERFACE_(IScriptProcedure, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptProcedure methods */
    STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE;
    STDMETHOD(get_NumArgs)(THIS_ long FAR* pcArgs) PURE;
    STDMETHOD(get_HasReturnValue)(THIS_ VARIANT_BOOL FAR* pfHasReturnValue) PURE;
};

DEFINE_GUID(IID_IScriptProcedureCollection,0x70841C71L,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);

/* Definition of interface: IScriptProcedureCollection */
#undef INTERFACE
#define INTERFACE IScriptProcedureCollection

DECLARE_INTERFACE_(IScriptProcedureCollection, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptProcedureCollection methods */
    STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppenumProcedures) PURE;
    STDMETHOD(get_Item)(THIS_ VARIANT Index, IScriptProcedure FAR* FAR* ppdispProcedure) PURE;
    STDMETHOD(get_Count)(THIS_ long FAR* plCount) PURE;
};

DEFINE_GUID(IID_IScriptModule,0x70841C70L,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);

/* Definition of interface: IScriptModule */
#undef INTERFACE
#define INTERFACE IScriptModule

DECLARE_INTERFACE_(IScriptModule, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptModule methods */
    STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE;
    STDMETHOD(get_CodeObject)(THIS_ IDispatch * FAR* ppdispObject) PURE;
    STDMETHOD(get_Procedures)(THIS_ IScriptProcedureCollection FAR* FAR* ppdispProcedures) PURE;
    STDMETHOD(AddCode)(THIS_ BSTR Code) PURE;
    STDMETHOD(Eval)(THIS_ BSTR Expression, VARIANT FAR* pvarResult) PURE;
    STDMETHOD(ExecuteStatement)(THIS_ BSTR Statement) PURE;
    STDMETHOD(Run)(THIS_ BSTR ProcedureName, SAFEARRAY FAR* FAR* Parameters, VARIANT FAR* pvarResult) PURE;
};

DEFINE_GUID(IID_IScriptModuleCollection,0x70841C6FL,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);

/* Definition of interface: IScriptModuleCollection */
#undef INTERFACE
#define INTERFACE IScriptModuleCollection

DECLARE_INTERFACE_(IScriptModuleCollection, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptModuleCollection methods */
    STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppenumContexts) PURE;
    STDMETHOD(get_Item)(THIS_ VARIANT Index, IScriptModule FAR* FAR* ppmod) PURE;
    STDMETHOD(get_Count)(THIS_ long FAR* plCount) PURE;
    STDMETHOD(Add)(THIS_ BSTR Name, VARIANT FAR* Object, IScriptModule FAR* FAR* ppmod) PURE;
};

DEFINE_GUID(IID_IScriptError,0x70841C78L,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);

/* Definition of interface: IScriptError */
#undef INTERFACE
#define INTERFACE IScriptError

DECLARE_INTERFACE_(IScriptError, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptError methods */
    STDMETHOD(get_Number)(THIS_ long FAR* plNumber) PURE;
    STDMETHOD(get_Source)(THIS_ BSTR FAR* pbstrSource) PURE;
    STDMETHOD(get_Description)(THIS_ BSTR FAR* pbstrDescription) PURE;
    STDMETHOD(get_HelpFile)(THIS_ BSTR FAR* pbstrHelpFile) PURE;
    STDMETHOD(get_HelpContext)(THIS_ long FAR* plHelpContext) PURE;
    STDMETHOD(get_Text)(THIS_ BSTR FAR* pbstrText) PURE;
    STDMETHOD(get_Line)(THIS_ long FAR* plLine) PURE;
    STDMETHOD(get_Column)(THIS_ long FAR* plColumn) PURE;
    STDMETHOD(Clear)(THIS) PURE;
};

DEFINE_GUID(IID_IScriptControl,0x0E59F1D3L,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

/* Definition of interface: IScriptControl */
#undef INTERFACE
#define INTERFACE IScriptControl

DECLARE_INTERFACE_(IScriptControl, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IScriptControl methods */
    STDMETHOD(get_Language)(THIS_ BSTR FAR* pbstrLanguage) PURE;
    STDMETHOD(put_Language)(THIS_ BSTR bstrLanguage) PURE;
    STDMETHOD(get_State)(THIS_ ScriptControlStates FAR* pssState) PURE;
    STDMETHOD(put_State)(THIS_ ScriptControlStates ssState) PURE;
    STDMETHOD(put_SitehWnd)(THIS_ long hwnd) PURE;
    STDMETHOD(get_SitehWnd)(THIS_ long FAR* phwnd) PURE;
    STDMETHOD(get_Timeout)(THIS_ long FAR* plMilleseconds) PURE;
    STDMETHOD(put_Timeout)(THIS_ long lMilleseconds) PURE;
    STDMETHOD(get_AllowUI)(THIS_ VARIANT_BOOL FAR* pfAllowUI) PURE;
    STDMETHOD(put_AllowUI)(THIS_ VARIANT_BOOL fAllowUI) PURE;
    STDMETHOD(get_UseSafeSubset)(THIS_ VARIANT_BOOL FAR* pfUseSafeSubset) PURE;
    STDMETHOD(put_UseSafeSubset)(THIS_ VARIANT_BOOL fUseSafeSubset) PURE;
    STDMETHOD(get_Modules)(THIS_ IScriptModuleCollection FAR* FAR* ppmods) PURE;
    STDMETHOD(get_Error)(THIS_ IScriptError FAR* FAR* ppse) PURE;
    STDMETHOD(get_CodeObject)(THIS_ IDispatch * FAR* ppdispObject) PURE;
    STDMETHOD(get_Procedures)(THIS_ IScriptProcedureCollection FAR* FAR* ppdispProcedures) PURE;
    STDMETHOD(_AboutBox)(THIS) PURE;
    STDMETHOD(AddObject)(THIS_ BSTR Name, IDispatch * Object, VARIANT_BOOL AddMembers) PURE;
    STDMETHOD(Reset)(THIS) PURE;
    STDMETHOD(AddCode)(THIS_ BSTR Code) PURE;
    STDMETHOD(Eval)(THIS_ BSTR Expression, VARIANT FAR* pvarResult) PURE;
    STDMETHOD(ExecuteStatement)(THIS_ BSTR Statement) PURE;
    STDMETHOD(Run)(THIS_ BSTR ProcedureName, SAFEARRAY FAR* FAR* Parameters, VARIANT FAR* pvarResult) PURE;
};

DEFINE_GUID(DIID_DScriptControlSource,0x8B167D60L,0x8605,0x11D0,0xAB,0xCB,0x00,0xA0,0xC9,0x0F,0xFF,0xC0);

/* Definition of dispatch interface: DScriptControlSource */
#undef INTERFACE
#define INTERFACE DScriptControlSource

DECLARE_INTERFACE_(DScriptControlSource, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* DScriptControlSource methods:
    void Error(void);
    void Timeout(void);
    */
};

DEFINE_GUID(CLSID_Procedure,0x0E59F1DAL,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class Procedure;
#endif

DEFINE_GUID(CLSID_Procedures,0x0E59F1DBL,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class Procedures;
#endif

DEFINE_GUID(CLSID_Module,0x0E59F1DCL,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class Module;
#endif

DEFINE_GUID(CLSID_Modules,0x0E59F1DDL,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class Modules;
#endif

DEFINE_GUID(CLSID_Error,0x0E59F1DEL,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class Error;
#endif

DEFINE_GUID(CLSID_ScriptControl,0x0E59F1D5L,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);

#ifdef __cplusplus
class ScriptControl;
#endif

#endif