
import "unknwn.idl";

cpp_quote("/****************************************************************************")
cpp_quote("	message.h")
cpp_quote("")
cpp_quote("	GENERATED FILE!!!  DO NOT EDIT!!!")
cpp_quote("	")
cpp_quote("	Owner: DavidMck")
cpp_quote(" 	Copyright (c) 1998 Microsoft Corporation")
cpp_quote(" ")
cpp_quote("	This file contains the exported interfaces for Darwin's Messagemarshalling.")
cpp_quote("	It is generated by midl.exe from message.idl")
cpp_quote("****************************************************************************/")

cpp_quote("#ifndef MESSAGE_H")
cpp_quote("#define MESSAGE_H")

// IMsiMessage::Message return status codes
typedef enum imsEnum
{
	imsError  = 0x3fff, // unsuccessful
	imsNone   =  0, // no action taken
	imsOk     =  1, // IDOK
	imsCancel =  2, // IDCANCEL
	imsAbort  =  3, // IDABORT
	imsRetry  =  4, // IDRETRY
	imsIgnore =  5, // IDIGNORE
	imsYes    =  6, // IDYES
	imsNo     =  7, // IDNO
} imsEnum;

interface IMsiRecord;

cpp_quote("#ifndef __cplusplus")
cpp_quote("typedef interface IMsiRecord IMsiRecord;")
    typedef IMsiRecord *REF_IMsiRecord;
    typedef IMsiRecord **PTREF_IMsiRecord;
cpp_quote("#endif // __cplusplus")

cpp_quote("#ifdef __cplusplus")
cpp_quote("#define REF_IMsiRecord IMsiRecord&")
cpp_quote("#define PTREF_IMsiRecord IMsiRecord*&")
cpp_quote("#endif")

cpp_quote("#ifndef __cplusplus")
typedef int imtEnum;
cpp_quote("#else")
cpp_quote("enum imtEnum;")
cpp_quote("#endif // cplusplus")


[
	object,
	pointer_default(unique),
	uuid(000C101D-0000-0000-c000-000000000046)
	
]

interface IMsiMessage : IUnknown
{
	typedef [unique] IMsiMessage *PMSIMESSAGE;

	[local]
	imsEnum Message([in] imtEnum imt, [in] REF_IMsiRecord riRecord);
	[call_as(Message)]
	HRESULT MessageRemote([in] imtEnum imt, [in] int cb, [in, size_is(cb)] char *pchRecord, [out] imsEnum *pims);

	[local]
	imsEnum MessageNoRecord([in] imtEnum imt);
	[call_as(MessageNoRecord)]
	HRESULT MessageNoRecordRemote([in] imtEnum imt, [out] imsEnum *pims);

}

cpp_quote("#endif // MESSAGE_H")

