📄 imsconf2.idl
字号:
//+---------------------------------------------------------------------------
//
// 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: imsconf2.h")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
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("")
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("")
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_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_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_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("};")
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_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_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_IS_RUNNING = 100,
NM_SYSPROP_IN_CONFERENCE = 101,
} 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,
// 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;
//////////////////////////////////////////////////////////////////////////////////
// GUID usage:
// {068B0700-718C-11d0-8B1A-00A0C91BC90E} - {068B07FF-718C-11d0-8B1A-00A0C91BC90E}
cpp_quote("")
cpp_quote("////////////////////////////////////////////////////////////////////////////")
cpp_quote("// Interface Definitions")
//--------------------------------------------------------------------------
// INmManager Interface
[
object,
uuid(068B0701-718C-11d0-8B1A-00A0C91BC90E),
pointer_default(unique)
]
interface INmManager : IUnknown
{
typedef [unique] INmManager *LPNMMANAGER;
HRESULT Initialize(
[in, out] ULONG * puOptions,
[in, out] ULONG * puchCaps);
HRESULT GetSysInfo(
[out] INmSysInfo **ppSysInfo);
HRESULT EnumConference(
[out] IEnumNmConference **ppEnum);
HRESULT CreateConference(
[out] INmConference **ppConference,
[in] BSTR bstrName,
[in] BSTR bstrPassword,
[in] ULONG uchCaps);
HRESULT EnumCall(
[out] IEnumNmCall **ppEnum);
HRESULT CreateCall(
[out] INmCall **ppCall,
[in] NM_CALL_TYPE callType,
[in] NM_ADDR_TYPE addrType,
[in] BSTR bstrAddr,
[in] INmConference * pConference);
HRESULT CallConference(
[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
[
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,
[out] INmMember **ppMember);
}
//--------------------------------------------------------------------------
// 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] 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);
HRESULT CreateDataChannel(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -