#include "NmAppletDispID.h"


[
	uuid(D7D2064E-21C0-11d2-92EE-0000F875AE17),
	helpstring("NetMeeting Applet Client Site Interface"),
]
interface INmAppletClientSite : IUnknown
{
	HRESULT SetStatusBarVisible( [in] BOOL bShow );
	HRESULT	SetIcons( [in] HICON hIconSmall, [in] HICON hIconBig );
	HRESULT SetWindowText( [in] LPCTSTR lpszCaption );
}


typedef
[
	uuid(561C0EDD-F98A-11d1-92C9-0000F875AE17),
	helpstring("Component Window Creation Flags"),
]
enum NmAppletCapsFlags
{
	[helpstring("Applet can save")]		NmAppletCapsFlag_CanSave				= 0x00000001,
	[helpstring("Applet can load")]		NmAppletCapsFlag_CanLoad				= 0x00000002,
} NmAppletCapsFlags;


[
	object,
	uuid(93590E10-09EA-11d2-92D3-0000F875AE17),
	helpstring("INmApplet Interface"),
	pointer_default(unique)
]
interface INmApplet : IUnknown
{
	[propget, id(1), helpstring("property NmAppletCaps")] 
		HRESULT NmAppletCaps([out] DWORD* pdwCaps );

	[id(2), helpstring("method SaveDialog")] 
		HRESULT SaveDialog( [in, out] LPTSTR lpszFile, [in] DWORD dwFlags, [out] LPWORD pnFileOffset );

	[id(3), helpstring("method OpenDialog")] 
		HRESULT OpenDialog();

	[id(4), helpstring("method GetIconData")] 
		HRESULT GetIconData( [in] int cxBitmap, [in] int cyBitmap,
						  	 [out] int*	   pcStates,
							 [out] HBITMAP** pphBitmapIcon,
							 [out] HBITMAP** pphBitmapIconHot,
							 [out] HBITMAP** pphBitmapIconDisabled
							);

	[id(5), helpstring("method GetIconLabel")] 
		HRESULT GetIconLabel( [out] BSTR* pLabel );

	[id(6), helpstring("method OnContainerActivating")] 
		HRESULT OnContainerActivating( [in] BOOL bAppActivating );

	[id(7), helpstring("method SetFocus")] 
		HRESULT SetFocus();

	[id(8), helpstring("method SetClientSite")] 
		HRESULT SetClientSite( [in] INmAppletClientSite* pClientSite );

	[id(9), helpstring("method ShiftFocus")] 
		HRESULT ShiftFocus( [in] HWND hWndCur, BOOL bForward );

	[id(10), helpstring("method IsChild")] 
		HRESULT IsChild( [in] HWND hWnd );

	[id(11), helpstring("method QueryEndSession")] 
		HRESULT QueryEndSession( [out,ref] BOOL* pbCancelTermination );

	[id(12), helpstring("method OnMenuSelect")] 
		HRESULT OnMenuSelect( [in] DWORD wParam, [in] DWORD lParam );

	[id(13), helpstring("method OnCommand")] 
		HRESULT OnCommand( [in] DWORD wParam, [in] DWORD lParam );

	[id(14), helpstring("method OnGetMinMax")] 
		HRESULT OnGetMinMax( [in] DWORD lParam );

};


[
	uuid(755655EC-1126-11d2-92D9-0000F875AE17),
	helpstring("NetMeeting Applet Notification Interface"),
]
interface INmAppletNotify : IUnknown
{
	HRESULT OnStateChanged( [in] int State );
}			

