/* this ALWAYS GENERATED file contains the definitions for the interfaces */

/* File created by MIDL compiler version 3.01.75 */
/* at Wed Jun 06 18:20:37 2001
 */
/* Compiler settings for .\if_ole.idl:
    Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
    error checks: none
*/
//@@MIDL_FILE_HEADING(  )
#include "rpc.h"
#include "rpcndr.h"
#ifndef COM_NO_WINDOWS_H
#include "ole2.h"
#include "windows.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __if_ole_h__
#define __if_ole_h__

#ifdef __cplusplus
extern "C"
{
#endif

  /* Forward Declarations */

#ifndef __IVim_FWD_DEFINED__
#define __IVim_FWD_DEFINED__
  typedef interface IVim IVim;
#endif /* __IVim_FWD_DEFINED__ */

#ifndef __Vim_FWD_DEFINED__
#define __Vim_FWD_DEFINED__

#ifdef __cplusplus
  typedef class Vim Vim;
#else
  typedef struct Vim Vim;
#endif /* __cplusplus */

#endif /* __Vim_FWD_DEFINED__ */

/* header files for imported files */
#include "oaidl.h"

#ifndef __MIDL_user_allocate_free_DEFINED__
#define __MIDL_user_allocate_free_DEFINED__
  void __RPC_FAR *__RPC_USER MIDL_user_allocate(size_t);
  void __RPC_USER MIDL_user_free(void __RPC_FAR *);
#endif

#ifndef __IVim_INTERFACE_DEFINED__
#define __IVim_INTERFACE_DEFINED__

  /****************************************
 * Generated header for interface: IVim
 * at Wed Jun 06 18:20:37 2001
 * using MIDL 3.01.75
 ****************************************/
  /* [oleautomation][dual][unique][helpstring][uuid][object] */

  EXTERN_C const IID IID_IVim;

#if defined(__cplusplus) && !defined(CINTERFACE)

  interface DECLSPEC_UUID("0F0BFAE2-4C90-11d1-82D7-0004AC368519")
      IVim : public IDispatch
  {
  public:
    virtual HRESULT STDMETHODCALLTYPE SendKeys(
        /* [in] */ BSTR keys) = 0;

    virtual HRESULT STDMETHODCALLTYPE Eval(
        /* [in] */ BSTR expr,
        /* [retval][out] */ BSTR __RPC_FAR * result) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetForeground(void) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetHwnd(
        /* [retval][out] */ UINT_PTR __RPC_FAR * result) = 0;
  };

#else /* C style interface */

  typedef struct IVimVtbl
  {
    BEGIN_INTERFACE

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *QueryInterface)
    (
        IVim __RPC_FAR *This,
        /* [in] */ REFIID riid,
        /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);

    ULONG(STDMETHODCALLTYPE __RPC_FAR *AddRef)
    (
        IVim __RPC_FAR *This);

    ULONG(STDMETHODCALLTYPE __RPC_FAR *Release)
    (
        IVim __RPC_FAR *This);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount)
    (
        IVim __RPC_FAR *This,
        /* [out] */ UINT __RPC_FAR *pctinfo);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo)
    (
        IVim __RPC_FAR *This,
        /* [in] */ UINT iTInfo,
        /* [in] */ LCID lcid,
        /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames)
    (
        IVim __RPC_FAR *This,
        /* [in] */ REFIID riid,
        /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
        /* [in] */ UINT cNames,
        /* [in] */ LCID lcid,
        /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);

    /* [local] */ HRESULT(STDMETHODCALLTYPE __RPC_FAR *Invoke)(
        IVim __RPC_FAR *This,
        /* [in] */ DISPID dispIdMember,
        /* [in] */ REFIID riid,
        /* [in] */ LCID lcid,
        /* [in] */ WORD wFlags,
        /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
        /* [out] */ VARIANT __RPC_FAR *pVarResult,
        /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
        /* [out] */ UINT __RPC_FAR *puArgErr);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *SendKeys)
    (
        IVim __RPC_FAR *This,
        /* [in] */ BSTR keys);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *Eval)
    (
        IVim __RPC_FAR *This,
        /* [in] */ BSTR expr,
        /* [retval][out] */ BSTR __RPC_FAR *result);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *SetForeground)
    (
        IVim __RPC_FAR *This);

    HRESULT(STDMETHODCALLTYPE __RPC_FAR *GetHwnd)
    (
        IVim __RPC_FAR *This,
        /* [retval][out] */ UINT_PTR __RPC_FAR *result);

    END_INTERFACE
  } IVimVtbl;

  interface IVim
  {
    CONST_VTBL struct IVimVtbl __RPC_FAR *lpVtbl;
  };

#ifdef COBJMACROS

#define IVim_QueryInterface(This, riid, ppvObject) \
  (This)->lpVtbl->QueryInterface(This, riid, ppvObject)

#define IVim_AddRef(This) \
  (This)->lpVtbl->AddRef(This)

#define IVim_Release(This) \
  (This)->lpVtbl->Release(This)

#define IVim_GetTypeInfoCount(This, pctinfo) \
  (This)->lpVtbl->GetTypeInfoCount(This, pctinfo)

#define IVim_GetTypeInfo(This, iTInfo, lcid, ppTInfo) \
  (This)->lpVtbl->GetTypeInfo(This, iTInfo, lcid, ppTInfo)

#define IVim_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) \
  (This)->lpVtbl->GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId)

#define IVim_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) \
  (This)->lpVtbl->Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr)

#define IVim_SendKeys(This, keys) \
  (This)->lpVtbl->SendKeys(This, keys)

#define IVim_Eval(This, expr, result) \
  (This)->lpVtbl->Eval(This, expr, result)

#define IVim_SetForeground(This) \
  (This)->lpVtbl->SetForeground(This)

#define IVim_GetHwnd(This, result) \
  (This)->lpVtbl->GetHwnd(This, result)

#endif /* COBJMACROS */

#endif /* C style interface */

  HRESULT STDMETHODCALLTYPE IVim_SendKeys_Proxy(
      IVim __RPC_FAR *This,
      /* [in] */ BSTR keys);

  void __RPC_STUB IVim_SendKeys_Stub(
      IRpcStubBuffer *This,
      IRpcChannelBuffer *_pRpcChannelBuffer,
      PRPC_MESSAGE _pRpcMessage,
      DWORD *_pdwStubPhase);

  HRESULT STDMETHODCALLTYPE IVim_Eval_Proxy(
      IVim __RPC_FAR *This,
      /* [in] */ BSTR expr,
      /* [retval][out] */ BSTR __RPC_FAR *result);

  void __RPC_STUB IVim_Eval_Stub(
      IRpcStubBuffer *This,
      IRpcChannelBuffer *_pRpcChannelBuffer,
      PRPC_MESSAGE _pRpcMessage,
      DWORD *_pdwStubPhase);

  HRESULT STDMETHODCALLTYPE IVim_SetForeground_Proxy(
      IVim __RPC_FAR *This);

  void __RPC_STUB IVim_SetForeground_Stub(
      IRpcStubBuffer *This,
      IRpcChannelBuffer *_pRpcChannelBuffer,
      PRPC_MESSAGE _pRpcMessage,
      DWORD *_pdwStubPhase);

  HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
      IVim __RPC_FAR *This,
      /* [retval][out] */ UINT_PTR __RPC_FAR *result);

  void __RPC_STUB IVim_GetHwnd_Stub(
      IRpcStubBuffer *This,
      IRpcChannelBuffer *_pRpcChannelBuffer,
      PRPC_MESSAGE _pRpcMessage,
      DWORD *_pdwStubPhase);

#endif /* __IVim_INTERFACE_DEFINED__ */

#ifndef __Vim_LIBRARY_DEFINED__
#define __Vim_LIBRARY_DEFINED__

  /****************************************
 * Generated header for library: Vim
 * at Wed Jun 06 18:20:37 2001
 * using MIDL 3.01.75
 ****************************************/
  /* [version][helpstring][uuid] */

  EXTERN_C const IID LIBID_Vim;

#ifdef __cplusplus
  EXTERN_C const CLSID CLSID_Vim;

  class DECLSPEC_UUID("0F0BFAE1-4C90-11d1-82D7-0004AC368519")
      Vim;
#endif
#endif /* __Vim_LIBRARY_DEFINED__ */

  /* Additional Prototypes for ALL interfaces */

  unsigned long __RPC_USER BSTR_UserSize(unsigned long __RPC_FAR *, unsigned long, BSTR __RPC_FAR *);
  unsigned char __RPC_FAR *__RPC_USER BSTR_UserMarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR *);
  unsigned char __RPC_FAR *__RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR *);
  void __RPC_USER BSTR_UserFree(unsigned long __RPC_FAR *, BSTR __RPC_FAR *);

  /* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif
