/*** Autogenerated by WIDL 1.5.19 from atliface.idl - Do not edit ***/

#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include <rpc.h>
#include <rpcndr.h>

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __atliface_h__
#define __atliface_h__

/* Forward declarations */

#ifndef __IRegistrarBase_FWD_DEFINED__
#define __IRegistrarBase_FWD_DEFINED__
typedef interface IRegistrarBase IRegistrarBase;
#endif

#ifndef __IRegistrar_FWD_DEFINED__
#define __IRegistrar_FWD_DEFINED__
typedef interface IRegistrar IRegistrar;
#endif

/* Headers for imported files */

#include <ocidl.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifdef ATL_INITGUID
#include <initguid.h>
#endif
/*****************************************************************************
 * IRegistrarBase interface
 */
#ifndef __IRegistrarBase_INTERFACE_DEFINED__
#define __IRegistrarBase_INTERFACE_DEFINED__

DEFINE_GUID(IID_IRegistrarBase, 0xe21f8a85, 0xb05d, 0x4243, 0x81,0x83, 0xc7,0xcb,0x40,0x55,0x88,0xf7);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e21f8a85-b05d-4243-8183-c7cb405588f7")
IRegistrarBase : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE AddReplacement(
        LPCOLESTR Key,
        LPCOLESTR item) = 0;

    virtual HRESULT STDMETHODCALLTYPE ClearReplacements(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IRegistrarBase, 0xe21f8a85, 0xb05d, 0x4243, 0x81,0x83, 0xc7,0xcb,0x40,0x55,0x88,0xf7)
#endif
#else
typedef struct IRegistrarBaseVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IRegistrarBase methods ***/
    HRESULT (STDMETHODCALLTYPE *AddReplacement)(
        IRegistrarBase* This,
        LPCOLESTR Key,
        LPCOLESTR item);

    HRESULT (STDMETHODCALLTYPE *ClearReplacements)(
        IRegistrarBase* This);

    END_INTERFACE
} IRegistrarBaseVtbl;
interface IRegistrarBase {
    CONST_VTBL IRegistrarBaseVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IRegistrarBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRegistrarBase_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRegistrarBase_Release(This) (This)->lpVtbl->Release(This)
/*** IRegistrarBase methods ***/
#define IRegistrarBase_AddReplacement(This,Key,item) (This)->lpVtbl->AddReplacement(This,Key,item)
#define IRegistrarBase_ClearReplacements(This) (This)->lpVtbl->ClearReplacements(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IRegistrarBase_QueryInterface(IRegistrarBase* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IRegistrarBase_AddRef(IRegistrarBase* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IRegistrarBase_Release(IRegistrarBase* This) {
    return This->lpVtbl->Release(This);
}
/*** IRegistrarBase methods ***/
static FORCEINLINE HRESULT IRegistrarBase_AddReplacement(IRegistrarBase* This,LPCOLESTR Key,LPCOLESTR item) {
    return This->lpVtbl->AddReplacement(This,Key,item);
}
static FORCEINLINE HRESULT IRegistrarBase_ClearReplacements(IRegistrarBase* This) {
    return This->lpVtbl->ClearReplacements(This);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IRegistrarBase_AddReplacement_Proxy(
    IRegistrarBase* This,
    LPCOLESTR Key,
    LPCOLESTR item);
void __RPC_STUB IRegistrarBase_AddReplacement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrarBase_ClearReplacements_Proxy(
    IRegistrarBase* This);
void __RPC_STUB IRegistrarBase_ClearReplacements_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IRegistrarBase_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IRegistrar interface
 */
#ifndef __IRegistrar_INTERFACE_DEFINED__
#define __IRegistrar_INTERFACE_DEFINED__

DEFINE_GUID(IID_IRegistrar, 0x44ec053b, 0x400f, 0x11d0, 0x9d,0xcd, 0x00,0xa0,0xc9,0x03,0x91,0xd3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("44ec053b-400f-11d0-9dcd-00a0c90391d3")
IRegistrar : public IRegistrarBase
{
    virtual HRESULT STDMETHODCALLTYPE ResourceRegisterSz(
        LPCOLESTR resFileName,
        LPCOLESTR szID,
        LPCOLESTR szType) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResourceUnregisterSz(
        LPCOLESTR resFileName,
        LPCOLESTR szID,
        LPCOLESTR szType) = 0;

    virtual HRESULT STDMETHODCALLTYPE FileRegister(
        LPCOLESTR fileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE FileUnregister(
        LPCOLESTR fileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE StringRegister(
        LPCOLESTR data) = 0;

    virtual HRESULT STDMETHODCALLTYPE StringUnregister(
        LPCOLESTR data) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResourceRegister(
        LPCOLESTR resFileName,
        UINT nID,
        LPCOLESTR szType) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResourceUnregister(
        LPCOLESTR resFileName,
        UINT nID,
        LPCOLESTR szType) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IRegistrar, 0x44ec053b, 0x400f, 0x11d0, 0x9d,0xcd, 0x00,0xa0,0xc9,0x03,0x91,0xd3)
#endif
#else
typedef struct IRegistrarVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IRegistrarBase methods ***/
    HRESULT (STDMETHODCALLTYPE *AddReplacement)(
        IRegistrar* This,
        LPCOLESTR Key,
        LPCOLESTR item);

    HRESULT (STDMETHODCALLTYPE *ClearReplacements)(
        IRegistrar* This);

    /*** IRegistrar methods ***/
    HRESULT (STDMETHODCALLTYPE *ResourceRegisterSz)(
        IRegistrar* This,
        LPCOLESTR resFileName,
        LPCOLESTR szID,
        LPCOLESTR szType);

    HRESULT (STDMETHODCALLTYPE *ResourceUnregisterSz)(
        IRegistrar* This,
        LPCOLESTR resFileName,
        LPCOLESTR szID,
        LPCOLESTR szType);

    HRESULT (STDMETHODCALLTYPE *FileRegister)(
        IRegistrar* This,
        LPCOLESTR fileName);

    HRESULT (STDMETHODCALLTYPE *FileUnregister)(
        IRegistrar* This,
        LPCOLESTR fileName);

    HRESULT (STDMETHODCALLTYPE *StringRegister)(
        IRegistrar* This,
        LPCOLESTR data);

    HRESULT (STDMETHODCALLTYPE *StringUnregister)(
        IRegistrar* This,
        LPCOLESTR data);

    HRESULT (STDMETHODCALLTYPE *ResourceRegister)(
        IRegistrar* This,
        LPCOLESTR resFileName,
        UINT nID,
        LPCOLESTR szType);

    HRESULT (STDMETHODCALLTYPE *ResourceUnregister)(
        IRegistrar* This,
        LPCOLESTR resFileName,
        UINT nID,
        LPCOLESTR szType);

    END_INTERFACE
} IRegistrarVtbl;
interface IRegistrar {
    CONST_VTBL IRegistrarVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRegistrar_Release(This) (This)->lpVtbl->Release(This)
/*** IRegistrarBase methods ***/
#define IRegistrar_AddReplacement(This,Key,item) (This)->lpVtbl->AddReplacement(This,Key,item)
#define IRegistrar_ClearReplacements(This) (This)->lpVtbl->ClearReplacements(This)
/*** IRegistrar methods ***/
#define IRegistrar_ResourceRegisterSz(This,resFileName,szID,szType) (This)->lpVtbl->ResourceRegisterSz(This,resFileName,szID,szType)
#define IRegistrar_ResourceUnregisterSz(This,resFileName,szID,szType) (This)->lpVtbl->ResourceUnregisterSz(This,resFileName,szID,szType)
#define IRegistrar_FileRegister(This,fileName) (This)->lpVtbl->FileRegister(This,fileName)
#define IRegistrar_FileUnregister(This,fileName) (This)->lpVtbl->FileUnregister(This,fileName)
#define IRegistrar_StringRegister(This,data) (This)->lpVtbl->StringRegister(This,data)
#define IRegistrar_StringUnregister(This,data) (This)->lpVtbl->StringUnregister(This,data)
#define IRegistrar_ResourceRegister(This,resFileName,nID,szType) (This)->lpVtbl->ResourceRegister(This,resFileName,nID,szType)
#define IRegistrar_ResourceUnregister(This,resFileName,nID,szType) (This)->lpVtbl->ResourceUnregister(This,resFileName,nID,szType)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IRegistrar_QueryInterface(IRegistrar* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IRegistrar_AddRef(IRegistrar* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IRegistrar_Release(IRegistrar* This) {
    return This->lpVtbl->Release(This);
}
/*** IRegistrarBase methods ***/
static FORCEINLINE HRESULT IRegistrar_AddReplacement(IRegistrar* This,LPCOLESTR Key,LPCOLESTR item) {
    return This->lpVtbl->AddReplacement(This,Key,item);
}
static FORCEINLINE HRESULT IRegistrar_ClearReplacements(IRegistrar* This) {
    return This->lpVtbl->ClearReplacements(This);
}
/*** IRegistrar methods ***/
static FORCEINLINE HRESULT IRegistrar_ResourceRegisterSz(IRegistrar* This,LPCOLESTR resFileName,LPCOLESTR szID,LPCOLESTR szType) {
    return This->lpVtbl->ResourceRegisterSz(This,resFileName,szID,szType);
}
static FORCEINLINE HRESULT IRegistrar_ResourceUnregisterSz(IRegistrar* This,LPCOLESTR resFileName,LPCOLESTR szID,LPCOLESTR szType) {
    return This->lpVtbl->ResourceUnregisterSz(This,resFileName,szID,szType);
}
static FORCEINLINE HRESULT IRegistrar_FileRegister(IRegistrar* This,LPCOLESTR fileName) {
    return This->lpVtbl->FileRegister(This,fileName);
}
static FORCEINLINE HRESULT IRegistrar_FileUnregister(IRegistrar* This,LPCOLESTR fileName) {
    return This->lpVtbl->FileUnregister(This,fileName);
}
static FORCEINLINE HRESULT IRegistrar_StringRegister(IRegistrar* This,LPCOLESTR data) {
    return This->lpVtbl->StringRegister(This,data);
}
static FORCEINLINE HRESULT IRegistrar_StringUnregister(IRegistrar* This,LPCOLESTR data) {
    return This->lpVtbl->StringUnregister(This,data);
}
static FORCEINLINE HRESULT IRegistrar_ResourceRegister(IRegistrar* This,LPCOLESTR resFileName,UINT nID,LPCOLESTR szType) {
    return This->lpVtbl->ResourceRegister(This,resFileName,nID,szType);
}
static FORCEINLINE HRESULT IRegistrar_ResourceUnregister(IRegistrar* This,LPCOLESTR resFileName,UINT nID,LPCOLESTR szType) {
    return This->lpVtbl->ResourceUnregister(This,resFileName,nID,szType);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IRegistrar_ResourceRegisterSz_Proxy(
    IRegistrar* This,
    LPCOLESTR resFileName,
    LPCOLESTR szID,
    LPCOLESTR szType);
void __RPC_STUB IRegistrar_ResourceRegisterSz_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_ResourceUnregisterSz_Proxy(
    IRegistrar* This,
    LPCOLESTR resFileName,
    LPCOLESTR szID,
    LPCOLESTR szType);
void __RPC_STUB IRegistrar_ResourceUnregisterSz_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_FileRegister_Proxy(
    IRegistrar* This,
    LPCOLESTR fileName);
void __RPC_STUB IRegistrar_FileRegister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_FileUnregister_Proxy(
    IRegistrar* This,
    LPCOLESTR fileName);
void __RPC_STUB IRegistrar_FileUnregister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_StringRegister_Proxy(
    IRegistrar* This,
    LPCOLESTR data);
void __RPC_STUB IRegistrar_StringRegister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_StringUnregister_Proxy(
    IRegistrar* This,
    LPCOLESTR data);
void __RPC_STUB IRegistrar_StringUnregister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_ResourceRegister_Proxy(
    IRegistrar* This,
    LPCOLESTR resFileName,
    UINT nID,
    LPCOLESTR szType);
void __RPC_STUB IRegistrar_ResourceRegister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRegistrar_ResourceUnregister_Proxy(
    IRegistrar* This,
    LPCOLESTR resFileName,
    UINT nID,
    LPCOLESTR szType);
void __RPC_STUB IRegistrar_ResourceUnregister_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IRegistrar_INTERFACE_DEFINED__ */

DEFINE_GUID(CLSID_Registrar,0x44ec053a,0x400f,0x11d0,0x9d,0xcd,0x00,0xa0,0xc9,0x03,0x91,0xd3);
HRESULT WINAPI AtlAxCreateControl(LPCOLESTR,HWND,IStream*,IUnknown**);
HRESULT WINAPI AtlAxCreateControlEx(LPCOLESTR,HWND,IStream*,IUnknown**,IUnknown**,REFIID,IUnknown*);
BOOL WINAPI AtlAxWinInit(void);
HWND WINAPI AtlAxCreateDialogW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
HWND WINAPI AtlAxCreateDialogA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
#define     AtlAxCreateDialog WINELIB_NAME_AW(AtlAxCreateDialog)
/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __atliface_h__ */
