import "imsconf3.idl"; typedef enum tagNmGkState { NM_GK_INVALID, NM_GK_NOT_IN_GK_MODE, NM_GK_IDLE, NM_GK_LOGGING_ON, NM_GK_LOGGED_ON } NM_GK_STATE; typedef enum tagNmStreamEvent{ NM_STREAMEVENT_DEVICE_OPENED = 0, NM_STREAMEVENT_DEVICE_FAILURE = 1, NM_STREAMEVENT_DEVICE_CLOSED } NM_STREAMEVENT; typedef enum tagNmSysOpt{ NM_SYSOPT_LOGGED_ON = 69, NM_SYSOPT_BANDWIDTH = 70, NM_SYSOPT_CAPTURE_DEVICE = 71, NM_SYSOPT_DIRECTSOUND = 72, NM_SYSOPT_FULLDUPLEX = 73, } NM_SYSOPT; typedef enum tagNmGkNotifyCode { NM_GKNC_INVALID = 0, NM_GKNC_LOGON_TIMEOUT = 1, NM_GKNC_REG_CONFIRM = 2, NM_GKNC_UNREG_CONFIRM = 3, NM_GKNC_REJECTED = 4, NM_GKNC_UNREG_REQ = 5 } NM_GK_NOTIFY_CODE; cpp_quote("#define NMCH_SRVC 0x00000040") cpp_quote("#define NM_INIT_OBJECT 0x00000004") // Internal extensions to the NM_ADDR_TYPE cpp_quote("#define NM_ADDR_ALIAS_ID ((NM_ADDR_TYPE)8)") cpp_quote("#define NM_ADDR_ALIAS_E164 ((NM_ADDR_TYPE)9)") // Internal extensions to the NM_AUDPROP cpp_quote("#define NM_AUDPROP_FULL_DUPLEX ((NM_AUDPROP)3)") cpp_quote("#define NM_AUDPROP_WAVE_DEVICE ((NM_AUDPROP)4)") cpp_quote("#define NM_AUDPROP_AUTOMIX ((NM_AUDPROP)5)") cpp_quote("#define NM_AUDPROP_DTMF_DIGIT ((NM_AUDPROP)6)") // Internal extensions to the NM_VIDPROP cpp_quote("#define NM_VIDPROP_SUSPEND_CAPTURE ((NM_VIDPROP)10)") cpp_quote("#define NM_VIDPROP_IMAGE_SIZES ((NM_VIDPROP)11)") cpp_quote("#define NM_VIDPROP_FRAME ((NM_VIDPROP)12)") cpp_quote("#define NM_VIDPROP_NUM_CAPTURE_DEVS ((NM_VIDPROP)13)") cpp_quote("#define NM_VIDPROP_CAPTURE_DEV_ID ((NM_VIDPROP)14)") cpp_quote("#define NM_VIDPROP_MAX_CAPTURE_NAME ((NM_VIDPROP)15)") cpp_quote("#define NM_VIDPROP_CAPTURE_LIST ((NM_VIDPROP)16)") // Internal extensions to the NM_SYSPROP cpp_quote("#define NM_SYSPROP_SHARING_MSG ((NM_SYSPROP)61)") cpp_quote("#define NM_SYSPROP_ICA_ENABLE ((NM_SYSPROP)60)") cpp_quote("#define NM_SYSPROP_WB_HELPFILE ((NM_SYSPROP)81)") cpp_quote("#define NM_SYSPROP_CB_HELPFILE ((NM_SYSPROP)82)") cpp_quote("#define CONFN_FT_FAILED ((CONFN)0x000217)") cpp_quote("#define CONFN_FT_MULT_CANCELED ((CONFN)0x000218)") cpp_quote("#define CONFN_FT_REJECTED ((CONFN)0x000219)") cpp_quote("#define CONFN_FT_RECDIR ((CONFN)0x00021A)") //-------------------------------------------------------------------------- // INmManager2 Interface [ object, uuid(068B0801-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmManager2 : INmManager { HRESULT GetPreviewChannel( [out] INmChannelVideo **ppChannelVideo); // // BOGUS BOGUS BOGUS -- For RDS service since it is put into system // directory. // HRESULT CreateASObject( [in] IUnknown * pASNotify, [in] ULONG flags, [out] IUnknown ** ppAS); HRESULT AllowH323( [in] BOOL fAllowH323); HRESULT CallEx( [out] INmCall **ppCall, // Can be NULL [in] DWORD dwFlags, [in] NM_ADDR_TYPE addrType, [in] BSTR bstrName, [in] BSTR bstrSetup, [in] BSTR bstrDest, [in] BSTR bstrAlias, [in] BSTR bstrURL, [in] BSTR bstrConference, [in] BSTR bstrPassword, [in] BSTR bstrUserData); HRESULT CreateConferenceEx( [out] INmConference **ppConference, // Can be NULL [in] BSTR bstrName, [in] BSTR bstrPassword, [in] DWORD dwTypeFlags, [in] DWORD attendeePermissions, [in] DWORD maxParticipants); } //-------------------------------------------------------------------------- // INmSysInfo2 Interface [ object, uuid(068B0803-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmSysInfo2 : INmSysInfo { HRESULT GetOption( [in] NM_SYSOPT uOption, [out] ULONG * plValue); HRESULT SetOption( [in] NM_SYSOPT uOption, [in] ULONG plValue); HRESULT ProcessSecurityData( [in] DWORD dwTaskCode, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [out] DWORD * pdwResult); HRESULT GkLogon( [in] BSTR bstrAddr, [in] BSTR bstrAliasID, [in] BSTR bstrAliasE164); HRESULT GkLogoff(); HRESULT GkState( [out] NM_GK_STATE* plState); } //-------------------------------------------------------------------------- // INmSysInfoNotify Interface [ object, uuid(AF9A9EAF-41BC-11d2-930E-0000F875AE17), pointer_default(unique) ] interface INmSysInfoNotify : IUnknown { HRESULT GateKeeperNotify( [in] NM_GK_NOTIFY_CODE GkEvent ); } //-------------------------------------------------------------------------- // INmCallNotify2 Interface [ object, uuid(068B0805-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmCallNotify2 : INmCallNotify { HRESULT CallError( [in] UINT cns); HRESULT RemoteConference( [in] BOOL fMCU, [in] BSTR *pwszConfNames, [in, out] BSTR *pbstrConfToJoin); HRESULT RemotePassword( [in] BSTR bstrConference, [in, out] BSTR *pbstrPassword, [in] BYTE *pb, [in] DWORD cb, [in] BOOL fIsService); } //-------------------------------------------------------------------------- // INmConference2 Interface [ object, uuid(068B0810-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmConference2 : INmConference { HRESULT DisconnectAV( [in] INmMember *pMember); HRESULT ConnectAV( [in] INmMember *pMember); HRESULT GetConferenceHandle( [out] HANDLE_PTR *pdwHandle); HRESULT CreateDataChannelEx( [out] INmChannelData **ppChannel, [in] REFGUID rguid, [in] BYTE * pER); } // INmConferenceNotify2 Interface // same as above interface but also provides stream event notifications [ object, uuid(711ec740-6867-11d2-a9a8-00c04fd91a6f), pointer_default(unique) ] interface INmConferenceNotify2 : INmConferenceNotify { HRESULT StreamEvent( [in] NM_STREAMEVENT uEvent, [in] UINT uSubCode, [in] INmChannel *pChannel); } //-------------------------------------------------------------------------- // INmChannelData2 Interface [ object, uuid(068B0822-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmChannelData2 : INmChannelData { HRESULT RegistryAllocateHandle( [in] ULONG numberOfHandlesRequested); } //-------------------------------------------------------------------------- // INmChannelDataNotify2 Interface [ object, uuid(068B0823-718C-11d0-8B1A-00A0C91BC90E), pointer_default(unique) ] interface INmChannelDataNotify2 : INmChannelDataNotify { HRESULT AllocateHandleConfirm( [in] ULONG handle_value, [in] ULONG chandles); } //-------------------------------------------------------------------------- // IInternalFtObj [ object, uuid(053BBEFB-B3BA-11d2-9358-0000F875AE17), pointer_default(unique) ] interface IInternalFtObj : IUnknown { HRESULT GetHEvent(UINT *phEvent); HRESULT OnFileProgress(UINT hFile, ULONG lFileSize, ULONG lBytesTransmitted); HRESULT FileTransferDone(); HRESULT OnError(); } //-------------------------------------------------------------------------- // IInternalMemberObj [ object, uuid(6EC88CF8-A41B-11d2-9349-0000F875AE17), pointer_default(unique) ] interface IInternalMemberObj : IUnknown { HRESULT GetInternalINmMember([out] INmMember** ppMember); } //-------------------------------------------------------------------------- // IInternalSysInfoObj [ object, uuid(34871E81-D33A-11d2-92C7-00C04F68D5AE), pointer_default(unique) ] interface IInternalSysInfoObj : IUnknown { HRESULT SetID([in] DWORD ID); } //-------------------------------------------------------------------------- // IInternalConfExe [ object, uuid(97799F9C-A969-11d2-9355-0000F875AE17), pointer_default(unique) ] interface IInternalConfExe : IUnknown { HRESULT LoggedIn(); HRESULT IsRunning(); HRESULT InConference(); HRESULT LDAPLogon([in] BOOL bLogon); HRESULT GetLocalCaps([out] DWORD* pdwLocalCaps); HRESULT IsNetMeetingRunning(); HRESULT GetActiveConference([out] INmConference** ppConf); HRESULT ShellCalltoProtocolHandler([in] BSTR url, [in] BOOL bStrict); HRESULT Launch(); HRESULT LaunchApplet([in] NM_APPID appid, [in,ptr] BSTR strCmdLine); HRESULT GetUserData([in] REFGUID rguid, [out, size_is(,*pcb)] BYTE **ppb, [out] ULONG *pcb); HRESULT SetUserData([in] REFGUID rguid, [in, size_is(cb)] BYTE *pb, [in] ULONG cb); HRESULT SetSysInfoID([in] DWORD dwID); HRESULT DisableH323([in] BOOL bDisableH323); HRESULT DisableInitialILSLogon([in] BOOL bDisableH323); HRESULT SetCallerIsRTC([in] BOOL bCallerIsRTC); } //-------------------------------------------------------------------------- // IInternalConferenceObj [ object, uuid(507708C5-A74A-11d2-9351-0000F875AE17), pointer_default(unique) ] interface IInternalConferenceObj : IUnknown { HRESULT GetInternalINmConference([out] INmConference** ppConference); HRESULT GetMemberFromNodeID([in] DWORD dwNodeID, [out] INmMember** ppMember); HRESULT RemoveAllMembersAndChannels(); HRESULT AppSharingStateChanged([in] BOOL bActive); HRESULT SharableAppStateChanged([in] HWND hWnd, [in] NM_SHAPP_STATE state); HRESULT ASLocalMemberChanged(); HRESULT ASMemberChanged([in] UINT gccID); HRESULT FireNotificationsToSyncState(); HRESULT AppSharingChannelChanged(); HRESULT FireNotificationsToSyncToInternalObject(); HRESULT EnsureFTChannel(); HRESULT AudioChannelActiveState(BOOL bActive, BOOL bIsIncoming); HRESULT VideoChannelActiveState(BOOL bActive, BOOL bIsIncoming); HRESULT VideoChannelPropChanged(DWORD dwProp, BOOL bIsIncoming); HRESULT VideoChannelStateChanged(NM_VIDEO_STATE uState, BOOL bIsIncoming); } //-------------------------------------------------------------------------- // IInternalChannelObj [ object, uuid(43DB3A8E-A440-11d2-934A-0000F875AE17), pointer_default(unique) ] interface IInternalChannelObj : IUnknown { HRESULT GetInternalINmChannel([out] INmChannel** ppChannel); HRESULT ChannelRemoved(); HRESULT NotifySinksOfLocalMember(); HRESULT NotifySinksOfAllMembers(); HRESULT Activate([in] BOOL bActive); HRESULT SDKMemberChanged([in] INmMember* pSDKMember); HRESULT SDKMemberAdded([in] INmMember* pSDKMember); HRESULT SDKMemberRemoved([in] INmMember* pSDKMember); HRESULT FireNotificationsToSyncState(); } //-------------------------------------------------------------------------- // IInternalCall [ object, uuid(57E03C63-A719-11d2-9351-0000F875AE17), pointer_default(unique) ] interface IInternalCallObj : IUnknown { HRESULT GetInternalINmCall([out] INmCall** ppCall); } [ uuid(507708CA-A74A-11d2-9351-0000F875AE17), version(1.0), helpstring("NetMeeting Internal SDK Type Library") ] library SDKInternal { [ uuid(507708CC-A74A-11d2-9351-0000F875AE17), helpstring("NmSysInfo object") ] coclass NmSysInfo { [default] interface INmSysInfo; }; [ uuid(068B0800-718C-11d0-8B1A-00A0C91BC90E), helpstring("NetMeeting Manager v2") ] coclass NmManager2 { [default] interface INmManager2; }; };