/********************************************************
*                                                       *
*   Copyright (C) Microsoft. All rights reserved.       *
*                                                       *
********************************************************/

//-----------------------------------------------------------------------------
// File:			regprv.idl
//
// Contents: 		OLE DB interface definition
//
// Comments: 		
//
//-----------------------------------------------------------------------------

cpp_quote("#include <winapifamily.h>")

#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")

#include "idlmulti.h"

	REMOTED_INTERFACE(0c733ab9-2a1c-11ce-ade5-00aa0044773d)

interface IRegisterProvider : IUnknown
{

[local]
HRESULT GetURLMapping(
	[in, annotation("_In_z_")] LPCOLESTR pwszURL,
	[in] DB_DWRESERVE dwReserved,
	[out, annotation("_Out_")] CLSID * pclsidProvider
	);

[call_as(GetURLMapping)]
HRESULT RemoteGetURLMapping(
	[in] LPCOLESTR pwszURL,
	[in] DB_DWRESERVE dwReserved,
	[out] CLSID * pclsidProvider
	);

HRESULT SetURLMapping(
	[in, unique] LPCOLESTR pwszURL,
	[in] DB_DWRESERVE dwReserved,
	[in, unique] REFCLSID rclsidProvider
	);

HRESULT UnregisterProvider(
	[in, unique] LPCOLESTR pwszURL,
	[in] DB_DWRESERVE dwReserved,
	[in, unique] REFCLSID rclsidProvider
	);

};

cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion

