/*** Autogenerated by WIDL 0.9.22 from iads.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_IADS_H
#define __WIDL_IADS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <oaidl.h>
#ifndef __IADsContainer_FWD_DEFINED__
#define __IADsContainer_FWD_DEFINED__
typedef interface IADsContainer IADsContainer;
#endif

/*****************************************************************************
 * IADsContainer interface
 */
#ifndef __IADsContainer_INTERFACE_DEFINED__
#define __IADsContainer_INTERFACE_DEFINED__

DEFINE_GUID(IID_IADsContainer, 0x001677d0, 0xfd16, 0x11ce, 0xab,0xc4, 0x02,0x60,0x8c,0x9e,0x75,0x53);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IADsContainer : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Count(
        long* retval) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
        IUnknown** retval) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Filter(
        VARIANT* pvFilter) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Filter(
        VARIANT vFilter) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Hints(
        VARIANT* pvHints) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Hints(
        VARIANT vHints) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetObject(
        BSTR bstrClassName,
        BSTR bstrRelativeName,
        IDispatch** ppObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE Create(
        BSTR bstrClassName,
        BSTR bstrRelativeName,
        IDispatch** ppObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        BSTR bstrClassName,
        BSTR bstrRelativeName) = 0;

    virtual HRESULT STDMETHODCALLTYPE CopyHere(
        BSTR bstrSourceName,
        BSTR bstrNewName,
        IDispatch** ppObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveHere(
        BSTR bstrSourceName,
        BSTR bstrNewName,
        IDispatch** ppObject) = 0;

};
#else
typedef struct IADsContainerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IADsContainer* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IADsContainer* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IADsContainer* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IADsContainer* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IADsContainer* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IADsContainer* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IADsContainer* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IADsContainer methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Count)(
        IADsContainer* This,
        long* retval);

    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
        IADsContainer* This,
        IUnknown** retval);

    HRESULT (STDMETHODCALLTYPE *get_Filter)(
        IADsContainer* This,
        VARIANT* pvFilter);

    HRESULT (STDMETHODCALLTYPE *put_Filter)(
        IADsContainer* This,
        VARIANT vFilter);

    HRESULT (STDMETHODCALLTYPE *get_Hints)(
        IADsContainer* This,
        VARIANT* pvHints);

    HRESULT (STDMETHODCALLTYPE *put_Hints)(
        IADsContainer* This,
        VARIANT vHints);

    HRESULT (STDMETHODCALLTYPE *GetObject)(
        IADsContainer* This,
        BSTR bstrClassName,
        BSTR bstrRelativeName,
        IDispatch** ppObject);

    HRESULT (STDMETHODCALLTYPE *Create)(
        IADsContainer* This,
        BSTR bstrClassName,
        BSTR bstrRelativeName,
        IDispatch** ppObject);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IADsContainer* This,
        BSTR bstrClassName,
        BSTR bstrRelativeName);

    HRESULT (STDMETHODCALLTYPE *CopyHere)(
        IADsContainer* This,
        BSTR bstrSourceName,
        BSTR bstrNewName,
        IDispatch** ppObject);

    HRESULT (STDMETHODCALLTYPE *MoveHere)(
        IADsContainer* This,
        BSTR bstrSourceName,
        BSTR bstrNewName,
        IDispatch** ppObject);

    END_INTERFACE
} IADsContainerVtbl;
interface IADsContainer {
    const IADsContainerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IADsContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IADsContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IADsContainer_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IADsContainer_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IADsContainer_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IADsContainer_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IADsContainer_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IADsContainer methods ***/
#define IADsContainer_get_Count(p,a) (p)->lpVtbl->get_Count(p,a)
#define IADsContainer_get__NewEnum(p,a) (p)->lpVtbl->get__NewEnum(p,a)
#define IADsContainer_get_Filter(p,a) (p)->lpVtbl->get_Filter(p,a)
#define IADsContainer_put_Filter(p,a) (p)->lpVtbl->put_Filter(p,a)
#define IADsContainer_get_Hints(p,a) (p)->lpVtbl->get_Hints(p,a)
#define IADsContainer_put_Hints(p,a) (p)->lpVtbl->put_Hints(p,a)
#define IADsContainer_GetObject(p,a,b,c) (p)->lpVtbl->GetObject(p,a,b,c)
#define IADsContainer_Create(p,a,b,c) (p)->lpVtbl->Create(p,a,b,c)
#define IADsContainer_Delete(p,a,b) (p)->lpVtbl->Delete(p,a,b)
#define IADsContainer_CopyHere(p,a,b,c) (p)->lpVtbl->CopyHere(p,a,b,c)
#define IADsContainer_MoveHere(p,a,b,c) (p)->lpVtbl->MoveHere(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IADsContainer_get_Count_Proxy(
    IADsContainer* This,
    long* retval);
void __RPC_STUB IADsContainer_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_get__NewEnum_Proxy(
    IADsContainer* This,
    IUnknown** retval);
void __RPC_STUB IADsContainer_get__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_get_Filter_Proxy(
    IADsContainer* This,
    VARIANT* pvFilter);
void __RPC_STUB IADsContainer_get_Filter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_put_Filter_Proxy(
    IADsContainer* This,
    VARIANT vFilter);
void __RPC_STUB IADsContainer_put_Filter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_get_Hints_Proxy(
    IADsContainer* This,
    VARIANT* pvHints);
void __RPC_STUB IADsContainer_get_Hints_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_put_Hints_Proxy(
    IADsContainer* This,
    VARIANT vHints);
void __RPC_STUB IADsContainer_put_Hints_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_GetObject_Proxy(
    IADsContainer* This,
    BSTR bstrClassName,
    BSTR bstrRelativeName,
    IDispatch** ppObject);
void __RPC_STUB IADsContainer_GetObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_Create_Proxy(
    IADsContainer* This,
    BSTR bstrClassName,
    BSTR bstrRelativeName,
    IDispatch** ppObject);
void __RPC_STUB IADsContainer_Create_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_Delete_Proxy(
    IADsContainer* This,
    BSTR bstrClassName,
    BSTR bstrRelativeName);
void __RPC_STUB IADsContainer_Delete_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_CopyHere_Proxy(
    IADsContainer* This,
    BSTR bstrSourceName,
    BSTR bstrNewName,
    IDispatch** ppObject);
void __RPC_STUB IADsContainer_CopyHere_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IADsContainer_MoveHere_Proxy(
    IADsContainer* This,
    BSTR bstrSourceName,
    BSTR bstrNewName,
    IDispatch** ppObject);
void __RPC_STUB IADsContainer_MoveHere_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IADsContainer_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);
unsigned long   __RPC_USER VARIANT_UserSize     (unsigned long *, unsigned long,   VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (unsigned long *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (unsigned long *, VARIANT *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_IADS_H */
