// Labrador.idl : IDL source for Labrador.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (Labrador.tlb) and marshalling code.

// This is a part of the ActiveX Template Library.
// Copyright (C) 1996 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// ActiveX Template Library Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// ActiveX Template Library product.

import "unknwn.idl";

#define MAX_MY_BSTR_LEN 32
typedef [string] WCHAR MY_BSTR[MAX_MY_BSTR_LEN];

	[
		object,
		uuid(62A33E75-932A-11CF-B056-00A0C90348FA),
		helpstring("IMammal Interface"),
		pointer_default(unique)
	]
	interface IMammal : IUnknown
	{
		import "oaidl.idl";
		HRESULT GetSpeciesName([out, string] MY_BSTR p);
		HRESULT IsAlive([out] BOOL* pBool);
	};

	[
		object,
		uuid(62A33E76-932A-11CF-B056-00A0C90348FA),
		helpstring("IDog Interface"),
		pointer_default(unique)
	]
	interface IDog : IUnknown
	{
		import "oaidl.idl";
		HRESULT GetPetName([out, string] MY_BSTR p);
		HRESULT SetPetName([in, string] MY_BSTR p);
		HRESULT IsBarking([out] BOOL* pBool);
	};


[
	uuid(62A33E74-932A-11CF-B056-00A0C90348FA),
	version(1.0),
	helpstring("Labrador 1.0 Type Library")
]
library LABRADORLib
{
	importlib("stdole32.tlb");

	[
		uuid(62A33E79-932A-11CF-B056-00A0C90348FA),
		helpstring("Labrador Class")
	]
	coclass Labrador
	{
		[default] interface IMammal;
		interface IDog;
	};

};
