/*
 * Copyright 2005 Jacek Caban
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

import "ocidl.idl";

cpp_quote("#ifdef ATL_INITGUID")
cpp_quote("#include <initguid.h>")
cpp_quote("#endif")

[
    object,
    uuid(e21f8a85-b05d-4243-8183-c7cb405588f7),
    pointer_default(unique)
]
interface IRegistrarBase : IUnknown
{
    HRESULT AddReplacement(
        [in] LPCOLESTR Key,
        [in] LPCOLESTR item);

    HRESULT ClearReplacements();
}

[
    object,
    uuid(44EC053B-400F-11D0-9DCD-00A0C90391D3),
    pointer_default(unique)
]
interface IRegistrar : IRegistrarBase
{
    HRESULT ResourceRegisterSz(
        [in] LPCOLESTR resFileName,
        [in] LPCOLESTR szID,
        [in] LPCOLESTR szType);

    HRESULT ResourceUnregisterSz(
        [in] LPCOLESTR resFileName,
        [in] LPCOLESTR szID,
        [in] LPCOLESTR szType);

    HRESULT FileRegister(
        [in] LPCOLESTR fileName);

    HRESULT FileUnregister(
        [in] LPCOLESTR fileName);

    HRESULT StringRegister(
        [in] LPCOLESTR data);

    HRESULT StringUnregister(
        [in] LPCOLESTR data);

    HRESULT ResourceRegister(
        [in] LPCOLESTR resFileName,
        [in] UINT nID,
        [in] LPCOLESTR szType);

    HRESULT ResourceUnregister(
        [in] LPCOLESTR resFileName,
        [in] UINT nID,
        [in] LPCOLESTR szType);
}

cpp_quote("DEFINE_GUID(CLSID_Registrar,0x44ec053a,0x400f,0x11d0,0x9d,0xcd,0x00,0xa0,0xc9,0x03,0x91,0xd3);")

cpp_quote("HRESULT WINAPI AtlAxCreateControl(LPCOLESTR,HWND,IStream*,IUnknown**);")
cpp_quote("HRESULT WINAPI AtlAxCreateControlEx(LPCOLESTR,HWND,IStream*,IUnknown**,IUnknown**,REFIID,IUnknown*);")
cpp_quote("BOOL WINAPI AtlAxWinInit(void);")

cpp_quote("HWND WINAPI AtlAxCreateDialogW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("HWND WINAPI AtlAxCreateDialogA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);")
cpp_quote("#define     AtlAxCreateDialog WINELIB_NAME_AW(AtlAxCreateDialog)")
