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

import "ocidl.idl";

#include "NmDispID.h"
cpp_quote("#include \"NmDispID.h\"")

#define UUID_INetMeeting			5572984E-7A76-11d2-9334-0000F875AE17
#define UUID_NetMeetingLib			5CE55CD7-5179-11D2-931D-0000F875AE17
#define UUID__INetMeetingEvents		3E9BAF2C-7A79-11d2-9334-0000F875AE17
#define UUID_NetMeeting				3E9BAF2D-7A79-11d2-9334-0000F875AE17

[
	object,
	uuid(UUID_INetMeeting),
	dual,				// Supports early and late binding
	hidden,				// Default interfaces should be marked as "hidden"
	nonextensible,		// Allows VB to use Early Binding...
	helpstring("NetMeeting Application Interface")
]
interface INetMeeting : IDispatch
{

	[id(DISPID_Version), helpstring("Get the build number for NetMeeting on the local machine")] 
		HRESULT Version([out,retval] long* pdwBuildNumber);

	[id(DISPID_UnDock), helpstring("Undock a copy of the UI")] 
		HRESULT UnDock();

	[id(DISPID_IsInConference), helpstring("Is the local user in a conference")]
		HRESULT IsInConference([out,retval] BOOL *pbInConference);

	[id(DISPID_CallTo), helpstring("Place a NetMeeting call using CallTo addressing")] 
		HRESULT CallTo([in] BSTR strCallToString);

	[id(DISPID_LeaveConference), helpstring("Leave the current conference")]
		HRESULT LeaveConference();
};

// These version numbers should match the version attribute in the library definitoen below
cpp_quote("enum { NetMeetingLib_Ver_Major = 1};")
cpp_quote("enum { NetMeetingLib_Ver_Minor = 1};")
[
	uuid(UUID_NetMeetingLib),
	version(1.1),
	helpstring("NetMeeting 1.1 Type Library")
]
library NetMeetingLib	
{
	importlib("stdole2.tlb");

	[
		uuid(UUID__INetMeetingEvents),
		helpstring("NetMeeting Events Interface"),
	]
	dispinterface _INetMeetingEvents
	{

	properties:
	methods:
		[id(DISPID_ConferenceStarted), helpstring("Event triggered when a call is accepted")] 
			void ConferenceStarted();

		[id(DISPID_ConferenceEnded), helpstring("Event triggered when the current call is over")] 
			void ConferenceEnded();
	}

	[
		uuid(UUID_NetMeeting),
		helpstring("NetMeeting Application")
	]
	coclass NetMeeting
	{
		[default] interface INetMeeting;
		[default, source] dispinterface _INetMeetingEvents;
	};
};

