windows-nt/Source/XPSP1/NT/enduser/netmeeting/h/imsconf3.idl
2020-09-26 16:20:57 +08:00

1268 lines
34 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//+---------------------------------------------------------------------------
//
// Copyright 1995 - 1997 Microsoft Corporation. All Rights Reserved.
//
// Contents: Conferencing Services Object interfaces
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright 1995-1997 Microsoft Corporation. All Rights Reserved.")
cpp_quote("//")
cpp_quote("// File: imsconf3.h")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
//////////////////////////////////////////////////////////////////////////////////
// GUID usage:
//
// {068B0700-718C-11d0-8B1A-00A0C91BC90E} - {068B08FF-718C-11d0-8B1A-00A0C91BC90E}
//
import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
interface INmManager;
interface INmManagerNotify;
interface INmSysInfo;
interface INmMember;
interface INmCall;
interface INmCallNotify;
interface INmConference;
interface INmConferenceNotify;
interface INmChannel;
interface INmChannelNotify;
interface INmChannelData;
interface INmChannelDataNotify;
interface INmChannelFt;
interface INmChannelFtNotify;
interface INmChannelVideo;
interface INmChannelVideoNotify;
interface INmChannelAudio;
interface INmChannelAudioNotify;
interface INmChannelAppShare;
interface INmChannelAppShareNotify;
interface INmFt;
interface INmSharableApp;
interface IEnumNmConference;
interface IEnumNmMember;
interface IEnumNmChannel;
interface IEnumNmCall;
interface IEnumNmSharableApp;
cpp_quote("")
cpp_quote("////////////////////////////////////////////////////////////////////////////")
cpp_quote("//")
cpp_quote("// Constants")
cpp_quote("")
cpp_quote("// NetMeeting Channel Types")
cpp_quote("#define NMCH_NONE 0x00000000")
cpp_quote("#define NMCH_DATA 0x00000001")
cpp_quote("#define NMCH_AUDIO 0x00000002")
cpp_quote("#define NMCH_VIDEO 0x00000004")
cpp_quote("#define NMCH_SHARE 0x00000010")
cpp_quote("#define NMCH_FT 0x00000020")
cpp_quote("#define NMCH_ALL 0x0000FFFF")
cpp_quote("#define NMCH_SECURE 0x00010000")
cpp_quote("")
cpp_quote("// Initialization options")
cpp_quote("#define NM_INIT_NORMAL 0x00000000")
cpp_quote("#define NM_INIT_CONTROL 0x00000001")
cpp_quote("#define NM_INIT_NO_LAUNCH 0x00000002")
cpp_quote("#define NM_INIT_BACKGROUND 0x00000005")
cpp_quote("")
cpp_quote("// INmChannelDataNotify.DataReceived dwFlags")
cpp_quote("#define NM_DF_BROADCAST 0x00000010") // data was broadcast to everyone
cpp_quote("#define NM_DF_PRIVATE 0x00000020") // data was private
cpp_quote("#define NM_DF_SEGMENT_END 0x00000040") // end of data block
cpp_quote("#define NM_DF_SEGMENT_BEGIN 0x00000080") // start of data block
cpp_quote("")
cpp_quote("// Audio")
cpp_quote("#define NM_MAX_AUDIO_LEVEL 0x0000FFFF")
cpp_quote("")
cpp_quote("// Video")
cpp_quote("#define NM_VIDEO_NO_AUTOSIZE 0x00000000")
cpp_quote("#define NM_VIDEO_SMALL 0x00000001")
cpp_quote("#define NM_VIDEO_MEDIUM 0x00000002")
cpp_quote("#define NM_VIDEO_LARGE 0x00000004")
cpp_quote("#define NM_VIDEO_MIN_QUALITY 0x00000000")
cpp_quote("#define NM_VIDEO_MAX_QUALITY 0x0000001F")
cpp_quote("#define NM_VIDEO_DEFAULT_QUALITY NM_VIDEO_MAX_QUALITY")
cpp_quote("#define NM_VIDEO_SOURCE_DIALOG 0x00000001")
cpp_quote("#define NM_VIDEO_FORMAT_DIALOG 0x00000002")
cpp_quote("")
cpp_quote("// Version Numbers")
cpp_quote("#define NM_VER_UNKNOWN 0x00000000")
cpp_quote("#define NM_VER_1 0x00000001")
cpp_quote("#define NM_VER_2 0x00000002")
cpp_quote("#define NM_VER_3 0x00000003")
cpp_quote("#define NM_VER_NetMeeting3 0x00000004")
cpp_quote("#define NM_VER_FUTURE 0x0000000F")
cpp_quote("")
cpp_quote("")
cpp_quote("// User Categories")
cpp_quote("#define NM_CATEGORY_PERSONAL 0x00000001")
cpp_quote("#define NM_CATEGORY_BUSINESS 0x00000002")
cpp_quote("#define NM_CATEGORY_ADULT 0x00000004")
cpp_quote("")
cpp_quote("")
cpp_quote("////////////////////////////////////////////////////////////////////////////")
cpp_quote("// Error Codes")
cpp_quote("")
cpp_quote("#define NM_E(e) (0x81000000UL | (ULONG) (e))")
cpp_quote("")
cpp_quote("enum {")
cpp_quote("")
cpp_quote("// NetMeeting specific error codes")
cpp_quote("//")
cpp_quote(" NM_S_NEXT_CONFERENCE = ((ULONG) 0x0201),") // INmSysInfo.SetProperty
cpp_quote(" NM_S_ON_RESTART = ((ULONG) 0x0202),") // INmSysInfo.SetProperty
cpp_quote("")
cpp_quote("")
cpp_quote("// Call specific error codes")
cpp_quote("//")
cpp_quote(" NM_CALLERR_NOT_INITIALIZED = NM_E(0x0100),") // Local system not initialized
cpp_quote(" NM_CALLERR_MEDIA = NM_E(0x0101),") // Invalid channel/media types
cpp_quote(" NM_CALLERR_NAME_RESOLUTION = NM_E(0x0102),") // Name resolution failed
cpp_quote(" NM_CALLERR_PASSWORD = NM_E(0x0103),") // Invalid conference password
cpp_quote(" NM_CALLERR_CONFERENCE_NAME = NM_E(0x0104),") // Problem with the conference name
cpp_quote(" NM_CALLERR_IN_CONFERENCE = NM_E(0x0105),") // Remote system is in a conference
cpp_quote(" NM_CALLERR_NOT_FOUND = NM_E(0x0106),") // User/Address not found
cpp_quote(" NM_CALLERR_MCU = NM_E(0x0107),") // Can't invite MCU into existing conference
cpp_quote(" NM_CALLERR_REJECTED = NM_E(0x0108),") // Remote system rejected the request
cpp_quote(" NM_CALLERR_AUDIO = NM_E(0x0109),") // Audio connection failed
cpp_quote(" NM_CALLERR_AUDIO_LOCAL = NM_E(0x010A),") // Local audio device already in use
cpp_quote(" NM_CALLERR_AUDIO_REMOTE = NM_E(0x010B),") // Remote audio device in use
cpp_quote(" NM_CALLERR_INVALID_PHONE_NUMBER = NM_E(0x01F0),") // Tried phone type with invalid phone number
cpp_quote(" NM_CALLERR_NO_PHONE_SUPPORT = NM_E(0x01F1),") // Tried phone type with no GK/GW configured
cpp_quote(" NM_CALLERR_INVALID_IPADDRESS = NM_E(0x01F2),") // Tried ip type with invalid ip address
cpp_quote(" NM_CALLERR_HOST_RESOLUTION_FAILED = NM_E(0x01F3),") // Tried computer type with unreachable host name
cpp_quote(" NM_CALLERR_NO_ILS = NM_E(0x01F4),") // Tried ils type with no ils configured
cpp_quote(" NM_CALLERR_ILS_RESOLUTION_FAILED = NM_E(0x01F5),") // Name not found on ils
cpp_quote(" NM_CALLERR_NO_ADDRESS = NM_E(0x01F6),") // No address component
cpp_quote(" NM_CALLERR_INVALID_ADDRESS = NM_E(0x01F7),") // Invalid address component
cpp_quote(" NM_CALLERR_NO_GATEKEEPER = NM_E(0x01F8),") // Could not reach gatekeeper
cpp_quote(" NM_CALLERR_NO_GATEWAY = NM_E(0x01F9),") // Could not reach gateway
cpp_quote(" NM_CALLERR_PARAM_ERROR = NM_E(0x01FA),") // Error in parameter syntax
cpp_quote(" NM_CALLERR_SECURITY_MISMATCH = NM_E(0x01FB),") // Desired security didnt match policy or current conference
cpp_quote(" NM_CALLERR_UNESCAPE_ERROR = NM_E(0x01FC),") // Parse error during unescaping
cpp_quote(" NM_CALLERR_ALREADY_CALLING = NM_E(0x01FD),") // Already calling this person
cpp_quote(" NM_CALLERR_LOOPBACK = NM_E(0x01FE),") // Called Local Machine
cpp_quote(" NM_CALLERR_UNKNOWN = NM_E(0x01FF),") // Unknown call error
cpp_quote("")
cpp_quote("// other error codes")
cpp_quote("//")
cpp_quote(" NM_E_NOT_INITIALIZED = NM_E(0x0200),") // INmManager not Initialized
cpp_quote(" NM_E_CHANNEL_ALREADY_EXISTS = NM_E(0x0201),") // Data channel already exists
cpp_quote(" NM_E_NO_T120_CONFERENCE = NM_E(0x0202),") // Not in a T.120 data conference
cpp_quote(" NM_E_NOT_ACTIVE = NM_E(0x0203),") // NetMeeting is not running
cpp_quote(" NM_E_FILE_TOO_BIG = NM_E(0x0204),") // The file we attempted to send is too big
cpp_quote(" NM_E_USER_CANCELED_SETUP = NM_E(0x0205),") // User canceled NetMeeting setup wizard
cpp_quote(" NM_E_ALREADY_RUNNING = NM_E(0x0206),") // This means that NetMeeting is already running
cpp_quote(" NM_E_SHARING_NOT_AVAILABLE = NM_E(0x0207),") // This means that NetMeeting is already running
cpp_quote("};")
cpp_quote("")
cpp_quote("")
cpp_quote("// GUID to receive userdata from \"callto:\" via INmCall::GetUserData")
cpp_quote("//")
cpp_quote("// {068B0780-718C-11d0-8B1A-00A0C91BC90E}")
cpp_quote("DEFINE_GUID(GUID_CallToUserData,")
cpp_quote("0x068b0780, 0x718c, 0x11d0, 0x8b, 0x1a, 0x0, 0xa0, 0xc9, 0x1b, 0xc9, 0x0e);")
cpp_quote("")
typedef enum tagNmConferenceState{
NM_CONFERENCE_IDLE = 0,
NM_CONFERENCE_WAITING = 1,
NM_CONFERENCE_INITIALIZING = 2,
NM_CONFERENCE_ACTIVE = 3,
} NM_CONFERENCE_STATE;
typedef enum tagNmCallType{
NM_CALL_DEFAULT = 0,
NM_CALL_T120 = 1,
NM_CALL_H323 = 2,
} NM_CALL_TYPE;
typedef enum tagNmAddrType{
NM_ADDR_UNKNOWN = 0,
NM_ADDR_IP = 1,
NM_ADDR_MACHINENAME = 2,
NM_ADDR_PSTN = 3,
NM_ADDR_ULS = 4,
NM_ADDR_H323_GATEWAY = 5,
NM_ADDR_CALLTO = 6,
NM_ADDR_T120_TRANSPORT = 7,
} NM_ADDR_TYPE;
typedef enum tagNmCallState{
NM_CALL_INVALID = 0,
NM_CALL_INIT = 1,
NM_CALL_RING = 2,
NM_CALL_SEARCH = 3,
NM_CALL_WAIT = 4,
NM_CALL_ACCEPTED = 5,
NM_CALL_REJECTED = 6,
NM_CALL_CANCELED = 7,
} NM_CALL_STATE;
typedef enum tagNmMemberNotify{
NM_MEMBER_ADDED = 0,
NM_MEMBER_REMOVED = 1,
NM_MEMBER_UPDATED = 2,
} NM_MEMBER_NOTIFY;
typedef enum tagNmChannelNotify{
NM_CHANNEL_ADDED = 0,
NM_CHANNEL_REMOVED = 1,
NM_CHANNEL_UPDATED = 2,
} NM_CHANNEL_NOTIFY;
typedef enum tagNmFtState{
NM_FT_INVALID = 0,
NM_FT_SENDING = 1,
NM_FT_RECEIVING = 2,
NM_FT_COMPLETE = 3,
} NM_FT_STATE;
typedef enum tagNmAudioState{
NM_AUDIO_IDLE = 0,
NM_AUDIO_LOCAL_PAUSED = 1,
NM_AUDIO_TRANSFERRING = 3,
} NM_AUDIO_STATE;
typedef enum tagNmAudProp{
NM_AUDPROP_LEVEL = 1,
NM_AUDPROP_PAUSE = 2,
} NM_AUDPROP;
typedef enum tagNmVideoState{
NM_VIDEO_IDLE = 0,
NM_VIDEO_LOCAL_PAUSED = 1,
NM_VIDEO_PREVIEWING = 2,
NM_VIDEO_TRANSFERRING = 3,
NM_VIDEO_BOTH_PAUSED = 5,
NM_VIDEO_REMOTE_PAUSED = 7,
} NM_VIDEO_STATE;
typedef enum tagNmVidProp{
NM_VIDPROP_PAUSE = 1,
NM_VIDPROP_WINDOW_AUTO_SIZE = 2,
NM_VIDPROP_WINDOW_SIZE = 3,
NM_VIDPROP_WINDOW_POSITION = 4,
NM_VIDPROP_WINDOW_TOP_MOST = 5,
NM_VIDPROP_WINDOW_VISIBLE = 6,
NM_VIDPROP_IMAGE_PREFERRED_SIZE = 7,
NM_VIDPROP_IMAGE_QUALITY = 8,
NM_VIDPROP_CAMERA_DIALOG = 9,
} NM_VIDPROP;
typedef enum tagNmShareState{
NM_SHARE_UNKNOWN = 0,
NM_SHARE_WORKING_ALONE = 1,
NM_SHARE_COLLABORATING = 2,
NM_SHARE_IN_CONTROL = 3,
} NM_SHARE_STATE;
typedef enum tagNmShAppState{
NM_SHAPP_NOT_SHARED = 0,
NM_SHAPP_SHARED = 1,
} NM_SHAPP_STATE;
typedef enum tagNmSysProp{
NM_SYSPROP_EMAIL_NAME = 1,
NM_SYSPROP_SERVER_NAME = 2,
NM_SYSPROP_RESOLVE_NAME = 3,
NM_SYSPROP_FIRST_NAME = 4,
NM_SYSPROP_LAST_NAME = 5,
NM_SYSPROP_USER_NAME = 6,
NM_SYSPROP_USER_CITY = 7,
NM_SYSPROP_USER_COUNTRY = 8,
NM_SYSPROP_USER_COMMENTS = 9,
NM_SYSPROP_USER_CATEGORY = 10,
NM_SYSPROP_USER_PHONENUM = 11,
NM_SYSPROP_USER_LOCATION = 12,
NM_SYSPROP_H323_GATEWAY = 20,
NM_SYSPROP_H323_GATEWAY_ENABLE = 21,
NM_SYSPROP_INSTALL_DIRECTORY = 50,
NM_SYSPROP_APP_NAME = 51,
NM_SYSPROP_ICA_ENABLE = 60,
NM_SYSPROP_LOGGED_ON = 69,
NM_SYSPROP_IS_RUNNING = 100,
NM_SYSPROP_IN_CONFERENCE = 101,
NM_SYSPROP_BUILD_VER = 200,
NM_SYSPROP_DISABLE_H323 = 201,
NM_SYSPROP_DISABLE_INITIAL_ILS_LOGON = 202
} NM_SYSPROP;
typedef enum tagConfn{
// File Transfer
CONFN_FT_UI = 0x000211,
CONFN_FT_OFFERED = 0x000212,
CONFN_FT_STARTED = 0x000213,
CONFN_FT_PROGRESS = 0x000214,
CONFN_FT_COMPLETE = 0x000215,
CONFN_FT_CANCELED = 0x000216,
// Sharing
CONFN_CLICK_CONTROL = 0x000220,
CONFN_CLICK_OBSCURE = 0x000221,
CONFN_CLICK_REMOTE_NOT_COLLABORATING = 0x000222,
CONFN_CLICK_LOCAL_NOT_COLLABORATING = 0x000223,
CONFN_ESCAPE_KEY_CONTROL = 0x000224,
CONFN_RIGHT_CLICK_LOCAL_NOT_COLLABORATING = 0x000225,
CONFN_RIGHT_CLICK_REMOTE_NOT_COLLABORATING = 0x000226,
CONFN_DOUBLE_CLICK_SHARED_APP = 0x000227,
CONFN_SHARE_STARTED = 0x000228,
CONFN_SHARE_ENDED = 0x000229,
CONFN_SHARE_FAILED = 0x000230,
// Call control
CONFN_CALL_INCOMPATIBLE = 0x000400,
CONFN_CALL_OLDER = 0x000401,
CONFN_CALL_NEWER = 0x000402,
CONFN_CALL_IGNORED = 0x000403,
CONFN_CALL_FAILED = 0x000404,
CONFN_CALL_IN_CONFERENCE = 0x000405,
// Manager notifications
CONFN_NM_STARTED = 0x000600,
CONFN_NM_STOPPED = 0x000601,
} CONFN;
// INmObject constants
typedef enum NM_APPID {
NM_APPID_CHAT = 1,
NM_APPID_WHITEBOARD = 2,
NM_APPID_T126_WHITEBOARD = 3,
NM_APPID_FILE_TRANSFER = 4,
NM_APPID_APPSHARING = 5
} NM_APPID;
typedef enum NM_VUI {
NM_VUI_CHECK = 0,
NM_VUI_SHOW = 1
} NM_VUI;
typedef enum NM_CALLDLG {
NM_CALLDLG_RESERVED = 0
} NM_CALLDLG;
//--------------------------------------------------------------------------
// INmManager Interface
[
object,
uuid(068B0701-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmManager : IUnknown
{
typedef [unique] INmManager *LPNMMANAGER;
[local]
HRESULT Initialize(
[in, out] ULONG * puOptions, // Can be NULL
[in, out] ULONG * puchCaps); // Can be NULL
[call_as(Initialize)]
HRESULT RemoteInitialize(
[in, out] ULONG * puOptions,
[in, out] ULONG * puchCaps);
HRESULT GetSysInfo(
[out] INmSysInfo **ppSysInfo);
HRESULT EnumConference(
[out] IEnumNmConference **ppEnum);
[local]
HRESULT CreateConference(
[out] INmConference **ppConference,
[in] BSTR bstrName,
[in] BSTR bstrPassword,
[in] ULONG uchCaps);
[call_as(CreateConference)]
HRESULT RemoteCreateConference(
[out] INmConference **ppConference,
[in] BSTR bstrName,
[in] BSTR bstrPassword,
[in] ULONG uchCaps);
HRESULT EnumCall(
[out] IEnumNmCall **ppEnum);
[local]
HRESULT CreateCall(
[out] INmCall **ppCall, // Can be NULL
[in] NM_CALL_TYPE callType,
[in] NM_ADDR_TYPE addrType,
[in] BSTR bstrAddr,
[in] INmConference * pConference);
[call_as(CreateCall)]
HRESULT RemoteCreateCall(
[out] INmCall **ppCall,
[in] NM_CALL_TYPE callType,
[in] NM_ADDR_TYPE addrType,
[in] BSTR bstrAddr,
[in] INmConference * pConference);
[local]
HRESULT CallConference(
[out] INmCall **ppCall,
[in] NM_CALL_TYPE callType,
[in] NM_ADDR_TYPE addrType,
[in] BSTR bstrAddr,
[in] BSTR bstrName,
[in] BSTR bstrPassword);
[call_as(CallConference)]
HRESULT RemoteCallConference(
[out] INmCall **ppCall,
[in] NM_CALL_TYPE callType,
[in] NM_ADDR_TYPE addrType,
[in] BSTR bstrAddr,
[in] BSTR bstrName,
[in] BSTR bstrPassword);
}
//--------------------------------------------------------------------------
// INmManagerNotify Interface
[
object,
uuid(068B0702-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmManagerNotify : IUnknown
{
typedef [unique] INmManagerNotify *LPNMMANAGERNOTIFY;
HRESULT NmUI(
[in] CONFN uNotify);
HRESULT ConferenceCreated(
[in] INmConference *pConference);
HRESULT CallCreated(
[in] INmCall *pCall);
}
//--------------------------------------------------------------------------
// INmSysInfo Interface
[
local,
object,
uuid(068B0703-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmSysInfo : IUnknown
{
typedef [unique] INmSysInfo *LPNMSYSINFO;
HRESULT IsInstalled(
void);
HRESULT GetProperty(
[in] NM_SYSPROP uProp,
[out] BSTR *pbstrName);
HRESULT SetProperty(
[in] NM_SYSPROP uProp,
[in] BSTR bstrName);
HRESULT GetUserData(
[in] REFGUID rguid,
[out] BYTE **ppb,
[out] ULONG *pcb);
HRESULT SetUserData(
[in] REFGUID rguid,
[in] BYTE *pb,
[in] ULONG cb);
HRESULT GetNmApp(
[in] REFGUID rguid,
[out] BSTR *pbstrApplication,
[out] BSTR *pbstrCommandLine,
[out] BSTR *pbstrDirectory);
HRESULT SetNmApp(
[in] REFGUID rguid,
[in] BSTR bstrApplication,
[in] BSTR bstrCommandLine,
[in] BSTR bstrDirectory);
HRESULT GetNmchCaps(
[out] ULONG *pchCaps);
HRESULT GetLaunchInfo(
[out] INmConference **ppConference, // Can be NULL
[out] INmMember **ppMember); // Can be NULL
}
//--------------------------------------------------------------------------
// INmCall Interface
[
object,
uuid(068B0704-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmCall : IUnknown
{
typedef [unique] INmCall *LPNMCALL;
HRESULT IsIncoming(
void);
HRESULT GetState(
[out] NM_CALL_STATE *pState);
HRESULT GetName(
[out] BSTR *pbstrName);
HRESULT GetAddr(
[out] BSTR *pbstrAddr,
[out] NM_ADDR_TYPE *puType);
HRESULT GetUserData(
[in] REFGUID rguid,
[out, size_is(,*pcb)] BYTE **ppb,
[out] ULONG *pcb);
HRESULT GetConference(
[out] INmConference **ppConference);
HRESULT Accept(
void);
HRESULT Reject(
void);
HRESULT Cancel(
void);
}
//--------------------------------------------------------------------------
// INmCallNotify Interface
[
object,
uuid(068B0705-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmCallNotify : IUnknown
{
HRESULT NmUI(
[in] CONFN uNotify);
HRESULT StateChanged(
[in] NM_CALL_STATE uState);
HRESULT Failed(
[in] ULONG uError);
HRESULT Accepted(
[in] INmConference *pConference);
}
//--------------------------------------------------------------------------
// INmConference Interface
[
object,
uuid(068B0710-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmConference : IUnknown
{
typedef [unique] INmConference *LPNMCONFERENCE;
HRESULT GetName(
[out] BSTR *pbstrName);
HRESULT GetID(
[out] ULONG *puID);
HRESULT GetState(
[out] NM_CONFERENCE_STATE *pState);
HRESULT GetNmchCaps(
[out] ULONG *puchCaps);
HRESULT GetTopProvider(
[out] INmMember **ppMember);
HRESULT EnumMember(
[out] IEnumNmMember **ppEnum);
HRESULT GetMemberCount(
[out] ULONG * puCount);
HRESULT EnumChannel(
[out] IEnumNmChannel **ppEnum);
HRESULT GetChannelCount(
[out] ULONG * puCount);
[local]
HRESULT CreateDataChannel(
[out] INmChannelData **ppChannel, // Can be NULL
[in] REFGUID rguid);
[call_as(CreateDataChannel)]
HRESULT RemoteCreateDataChannel(
[out] INmChannelData **ppChannel,
[in] REFGUID rguid);
HRESULT IsHosting(
void);
HRESULT Host(
void);
HRESULT Leave(
void);
HRESULT LaunchRemote(
[in] REFGUID rguid,
[in] INmMember *pMember);
}
//--------------------------------------------------------------------------
// INmConferenceNotify Interface
[
object,
uuid(068B0711-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmConferenceNotify : IUnknown
{
HRESULT NmUI(
[in] CONFN uNotify);
HRESULT StateChanged(
[in] NM_CONFERENCE_STATE uState);
HRESULT MemberChanged(
[in] NM_MEMBER_NOTIFY uNotify,
[in] INmMember *pMember);
HRESULT ChannelChanged(
[in] NM_CHANNEL_NOTIFY uNotify,
[in] INmChannel *pChannel);
}
//--------------------------------------------------------------------------
// INmMember Interface
[
object,
uuid(068B0712-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmMember : IUnknown
{
HRESULT GetName(
[out] BSTR *pbstrName);
HRESULT GetID(
[out] ULONG *puID);
HRESULT GetNmVersion(
[out] ULONG *puVersion);
HRESULT GetAddr(
[out] BSTR *pbstrAddr,
[out] NM_ADDR_TYPE *puType);
HRESULT GetUserData(
[in] REFGUID rguid,
[out, size_is(,*pcb)] BYTE **ppb,
[out] ULONG *pcb);
HRESULT GetConference(
[out] INmConference **ppConference);
HRESULT GetNmchCaps(
[out] ULONG *puchCaps);
HRESULT GetShareState(
[out] NM_SHARE_STATE *puState);
HRESULT IsSelf(
void);
HRESULT IsMCU(
void);
HRESULT Eject(
void);
}
//--------------------------------------------------------------------------
// INmChannel Interface
[
object,
uuid(068B0720-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannel : IUnknown
{
HRESULT IsSameAs(
[in] INmChannel *pChannel);
HRESULT IsActive(
void);
HRESULT SetActive(
[in] BOOL fActive);
HRESULT GetConference(
[out] INmConference **ppConference);
HRESULT GetInterface(
[out] IID *piid);
HRESULT GetNmch(
[out] ULONG *puCh);
HRESULT EnumMember(
[out] IEnumNmMember **ppEnum);
HRESULT GetMemberCount(
[out] ULONG * puCount);
}
//--------------------------------------------------------------------------
// INmChannelNotify Interface
[
object,
uuid(068B0721-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelNotify : IUnknown
{
HRESULT NmUI(
[in] CONFN uNotify);
HRESULT MemberChanged(
[in] NM_MEMBER_NOTIFY uNotify,
[in] INmMember *pMember);
}
//--------------------------------------------------------------------------
// INmChannelData Interface
[
object,
uuid(068B0722-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelData : INmChannel
{
HRESULT GetGuid(
[out] GUID *pguid);
HRESULT SendData(
[in] INmMember *pMember,
[in] ULONG uSize,
[in, size_is(uSize)] byte *pvBuffer,
[in] ULONG uOptions);
}
//--------------------------------------------------------------------------
// INmChannelDataNotify Interface
[
object,
uuid(068B0723-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelDataNotify : INmChannelNotify
{
HRESULT DataSent(
[in] INmMember *pMember,
[in] ULONG uSize,
[in, size_is(uSize)] byte *pvBuffer);
HRESULT DataReceived(
[in] INmMember *pMember,
[in] ULONG uSize,
[in, size_is(uSize)] byte *pvBuffer,
[in] ULONG dwFlags);
}
//--------------------------------------------------------------------------
// INmChannelAudio Interface
[
object,
uuid(068B0724-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelAudio : INmChannel
{
HRESULT IsIncoming(
void);
HRESULT GetState(
[out] NM_AUDIO_STATE *puState);
HRESULT GetProperty(
[in] NM_AUDPROP uID,
[out] HANDLE_PTR *puValue);
HRESULT SetProperty(
[in] NM_AUDPROP uID,
[in] HANDLE_PTR uValue);
}
//--------------------------------------------------------------------------
// INmChannelAudioNotify Interface
[
object,
uuid(068B0725-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelAudioNotify : INmChannelNotify
{
HRESULT StateChanged(
[in] NM_AUDIO_STATE uState);
HRESULT PropertyChanged(
[in] DWORD dwReserved);
}
//--------------------------------------------------------------------------
// INmChannelVideo Interface
[
object,
uuid(068B0726-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelVideo : INmChannel
{
HRESULT IsIncoming(
void);
HRESULT GetState(
[out] NM_VIDEO_STATE *puState);
HRESULT GetProperty(
[in] NM_VIDPROP uID,
[out] HANDLE_PTR *puValue);
HRESULT SetProperty(
[in] NM_VIDPROP uID,
[in] HANDLE_PTR uValue);
}
//--------------------------------------------------------------------------
// INmChannelVideoNotify Interface
[
object,
uuid(068B0727-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelVideoNotify : INmChannelNotify
{
HRESULT StateChanged(
[in] NM_VIDEO_STATE uState);
HRESULT PropertyChanged(
[in] DWORD dwReserved);
}
//--------------------------------------------------------------------------
// INmChannelFt Interface
[
object,
uuid(068B0728-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelFt : INmChannel
{
[local]
HRESULT SendFile(
[out] INmFt **ppFt, // Can be NULL
[in] INmMember *pMember,
[in] BSTR bstrFile,
[in] ULONG uOptions);
[call_as(SendFile)]
HRESULT RemoteSendFile(
[out] INmFt **ppFt,
[in] INmMember *pMember,
[in] BSTR bstrFile,
[in] ULONG uOptions);
[local]
HRESULT SetReceiveFileDir(
[in] BSTR bstrDir);
[call_as(SetReceiveFileDir)]
HRESULT RemoteSetReceiveFileDir(
[in] BSTR bstrDir);
HRESULT GetReceiveFileDir(
[out] BSTR *pbstrDir);
}
//--------------------------------------------------------------------------
// INmChannelFtNotify Interface
[
object,
uuid(068B0729-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelFtNotify : INmChannelNotify
{
HRESULT FtUpdate(
[in] CONFN uNotify,
[in] INmFt *pFt);
}
//--------------------------------------------------------------------------
// INmFt Interface
[
object,
uuid(068B0732-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmFt : IUnknown
{
HRESULT IsIncoming(
void);
HRESULT GetState(
[out] NM_FT_STATE *puState);
HRESULT GetName(
[out] BSTR *pbstrName);
HRESULT GetSize(
[out] ULONG *puBytes);
HRESULT GetBytesTransferred(
[out] ULONG *puBytes);
HRESULT GetMember(
[out] INmMember **ppMember);
HRESULT Cancel(
void);
}
//--------------------------------------------------------------------------
// INmChannelAppShare Interface
[
object,
uuid(068B072A-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelAppShare : INmChannel
{
HRESULT GetState(
[out] NM_SHARE_STATE *puState);
HRESULT SetState(
[in] NM_SHARE_STATE uState);
HRESULT EnumSharableApp(
[out] IEnumNmSharableApp **ppEnum);
}
//--------------------------------------------------------------------------
// INmChannelAppShareNotify Interface
[
object,
uuid(068B072B-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmChannelAppShareNotify : INmChannelNotify
{
HRESULT StateChanged(
[in] NM_SHAPP_STATE uState,
[in] INmSharableApp *pApp);
}
//--------------------------------------------------------------------------
// INmSharableApp Interface
[
object,
uuid(068B0734-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmSharableApp : IUnknown
{
HRESULT GetName(
[out] BSTR *pbstrName);
HRESULT GetHwnd(
[out] HWND * phwnd);
HRESULT GetState(
[out] NM_SHAPP_STATE *puState);
HRESULT SetState(
[in] NM_SHAPP_STATE uState);
}
cpp_quote("")
cpp_quote("////////////////////////////////////////////////////////////////////////////")
cpp_quote("// Enumerator Definitions")
//--------------------------------------------------------------------------
// IEnumNmConference Interface
[
object,
uuid(068B0741-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface IEnumNmConference : IUnknown
{
[local]
HRESULT Next(
[in] ULONG cConference,
[out] INmConference **rgpConference,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cConference,
[out, size_is(cConference), length_is(*pcFetched) ] INmConference **rgpConference,
[out] ULONG *pcFetched,
[out] ULONG *pcItems,
[in] BOOL bGetNumberRemaining);
HRESULT Skip(
[in] ULONG cConference);
HRESULT Reset();
HRESULT Clone(
[out] IEnumNmConference **ppEnum);
}
//--------------------------------------------------------------------------
// IEnumNmMember Interface
[
object,
uuid(068B0742-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface IEnumNmMember : IUnknown
{
[local]
HRESULT Next(
[in] ULONG cMember,
[out] INmMember **rgpMember,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cMember,
[out, size_is(cMember), length_is(*pcFetched) ] INmMember **rgpMember,
[out] ULONG *pcFetched,
[out] ULONG *pcItems,
[in] BOOL bGetNumberRemaining);
HRESULT Skip(
[in] ULONG cMember);
HRESULT Reset();
HRESULT Clone(
[out] IEnumNmMember **ppEnum);
}
//--------------------------------------------------------------------------
// IEnumNmChannel Interface
[
object,
uuid(068B0743-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface IEnumNmChannel : IUnknown
{
[local]
HRESULT Next(
[in] ULONG cChannel,
[out, size_is(cChannel), length_is(*pcFetched)] INmChannel **rgpChannel,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cChannel,
[out, size_is(cChannel), length_is(*pcFetched)] INmChannel **rgpChannel,
[out] ULONG *pcFetched,
[out] ULONG *pcItems,
[in] BOOL bGetNumberRemaining);
HRESULT Skip(
[in] ULONG cChannel);
HRESULT Reset();
HRESULT Clone(
[out] IEnumNmChannel **ppEnum);
}
//--------------------------------------------------------------------------
// IEnumNmCall Interface
[
object,
uuid(068B0744-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface IEnumNmCall : IUnknown
{
[local]
HRESULT Next(
[in] ULONG cCall,
[out] INmCall **rgpCall,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cCall,
[out, size_is(cCall), length_is(*pcFetched)] INmCall **rgpCall,
[out] ULONG *pcFetched,
[out] ULONG *pcItems,
[in] BOOL bGetNumberRemaining);
HRESULT Skip(
[in] ULONG cCall);
HRESULT Reset();
HRESULT Clone(
[out] IEnumNmCall **ppEnum);
}
//--------------------------------------------------------------------------
// IEnumNmSharableApp Interface
[
object,
uuid(068B0745-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface IEnumNmSharableApp : IUnknown
{
[local]
HRESULT Next(
[in] ULONG cApp,
[out] INmSharableApp **rgpApp,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cApp,
[out, size_is(cApp), length_is(*pcFetched)] INmSharableApp **rgpApp,
[out] ULONG *pcFetched,
[out] ULONG *pcItems,
[in] BOOL bGetNumberRemaining);
HRESULT Skip(
[in] ULONG cApp);
HRESULT Reset();
HRESULT Clone(
[out] IEnumNmSharableApp **ppEnum);
}
[
object,
uuid(068B0780-718C-11d0-8B1A-00A0C91BC90E), // IID_INmOffice
pointer_default(unique)
]
interface INmObject : IUnknown
{
[local]
HRESULT CallDialog([in] long hwnd, [in] int options);
[call_as(CallDialog)]
HRESULT RemoteCallDialog([in] long hwnd, [in] int options);
[local]
HRESULT ShowLocal([in] NM_APPID appId);
[call_as(ShowLocal)]
HRESULT RemoteShowLocal([in] NM_APPID appId);
[local]
HRESULT VerifyUserInfo([in] UINT_PTR hwnd, [in] NM_VUI options);
[call_as(VerifyUserInfo)]
HRESULT RemoteVerifyUserInfo([in] long hwnd, [in] NM_VUI options);
};
[
uuid(068B07FF-718C-11d0-8B1A-00A0C91BC90E),
version(1.0),
helpstring("NmManager 2.0 Type Library")
]
library NmManager
{
[
uuid(068B0700-718C-11d0-8B1A-00A0C91BC90E),
helpstring("NetMeeting Manager")
]
coclass NmManager
{
[default] interface INmManager;
};
};