You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1116 lines
36 KiB
1116 lines
36 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright 1997 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// Contents: IMsgrObject interface
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifdef __MKTYPLIB__
|
|
#define VARIANT_BOOL boolean
|
|
#else // __MKTYPLIB__
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright 1997 Microsoft Corporation. All Rights Reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// File: mdisp.h")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
|
|
|
|
import "objidl.idl";
|
|
import "oleidl.idl";
|
|
import "oaidl.idl";
|
|
#endif // __MKTYPLIB__
|
|
#include "mdispid.h"
|
|
|
|
#define MSGR_S(e) (0x01000300 + (e))
|
|
#define MSGR_E(e) (0x81000300 + (e))
|
|
#define MSGR_E_OE(e) (0x81000300 + (e))
|
|
#define E_FAIL 0x80004005
|
|
#define S_OK 0
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// GUID usage:
|
|
// {218CB450-20B6-11d2-8E17-0000F803A446}-{218CB45F-20B6-11d2-8E17-0000F803A446}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Type Library
|
|
[
|
|
uuid(218CB45F-20B6-11d2-8E17-0000F803A446), // LIBID_Messenger
|
|
version(1.0),
|
|
helpstring("Messenger Type Library")
|
|
]
|
|
library Messenger
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
interface IMsgrObject;
|
|
interface IMsgrUser;
|
|
interface IMsgrUsers;
|
|
interface IMsgrIMSession;
|
|
interface IMsgrIMSessions;
|
|
interface IMessengerApp;
|
|
interface IMessengerIMWindow;
|
|
interface IMessengerIMWindows;
|
|
interface IMsgrOE;
|
|
interface IMsgrUserOE;
|
|
interface IMsgrUsersOE;
|
|
|
|
|
|
#define DISPID_VALUE 0
|
|
#define DISPID_NEWENUM -4
|
|
|
|
typedef enum
|
|
{
|
|
MSTATEOE_UNKNOWN = 0x0000,
|
|
|
|
MSTATEOE_OFFLINE = 0x0001,
|
|
MSTATEOE_ONLINE = 0x0002,
|
|
MSTATEOE_INVISIBLE = 0x0006,
|
|
MSTATEOE_BUSY = 0x000A,
|
|
MSTATEOE_BE_RIGHT_BACK = 0x000E,
|
|
MSTATEOE_IDLE = 0x0012,
|
|
MSTATEOE_AWAY = 0x0022,
|
|
MSTATEOE_ON_THE_PHONE = 0x0032,
|
|
MSTATEOE_OUT_TO_LUNCH = 0x0042,
|
|
|
|
MSTATEOE_LOCAL_FINDING_SERVER = 0x0100,
|
|
MSTATEOE_LOCAL_CONNECTING_TO_SERVER = 0x0200,
|
|
MSTATEOE_LOCAL_SYNCHRONIZING_WITH_SERVER = 0x0300,
|
|
MSTATEOE_LOCAL_DISCONNECTING_FROM_SERVER = 0x0400,
|
|
}
|
|
MSTATEOE;
|
|
|
|
|
|
typedef enum
|
|
{
|
|
MSGR_E_OE_CONNECT = MSGR_E_OE(0x0001),
|
|
MSGR_E_OE_INVALID_SERVER_NAME = MSGR_E_OE(0x0002),
|
|
MSGR_E_OE_INVALID_PASSWORD = MSGR_E_OE(0x0003),
|
|
MSGR_E_OE_ALREADY_LOGGED_ON = MSGR_E_OE(0x0004),
|
|
MSGR_E_OE_SERVER_VERSION = MSGR_E_OE(0x0005),
|
|
MSGR_E_OE_LOGON_TIMEOUT = MSGR_E_OE(0x0006),
|
|
MSGR_E_OE_LIST_FULL = MSGR_E_OE(0x0007),
|
|
MSGR_E_OE_AI_REJECT = MSGR_E_OE(0x0008),
|
|
MSGR_E_OE_AI_REJECT_NOT_INST = MSGR_E_OE(0x0009),
|
|
MSGR_E_OE_USER_NOT_FOUND = MSGR_E_OE(0x000A),
|
|
MSGR_E_OE_ALREADY_IN_LIST = MSGR_E_OE(0x000B),
|
|
MSGR_E_OE_DISCONNECTED = MSGR_E_OE(0x000C),
|
|
MSGR_E_OE_UNEXPECTED = MSGR_E_OE(0x000D),
|
|
MSGR_E_OE_SERVER_TOO_BUSY = MSGR_E_OE(0x000E),
|
|
MSGR_E_OE_INVALID_AUTH_PACKAGES = MSGR_E_OE(0x000F),
|
|
MSGR_E_OE_NEWER_CLIENT_AVAILABLE = MSGR_E_OE(0x0010),
|
|
MSGR_E_OE_AI_TIMEOUT = MSGR_E_OE(0x0011),
|
|
MSGR_E_OE_CANCEL = MSGR_E_OE(0x0012),
|
|
MSGR_E_OE_TOO_MANY_MATCHES = MSGR_E_OE(0x0013),
|
|
MSGR_E_OE_SERVER_UNAVAILABLE = MSGR_E_OE(0x0014),
|
|
MSGR_E_OE_LOGON_UI_ACTIVE = MSGR_E_OE(0x0015),
|
|
MSGR_E_OE_OPTION_UI_ACTIVE = MSGR_E_OE(0x0016),
|
|
MSGR_E_OE_CONTACT_UI_ACTIVE = MSGR_E_OE(0x0017),
|
|
MSGR_E_OE_FAIL = E_FAIL,
|
|
MSGR_S_OE_OK = S_OK,
|
|
}
|
|
MSGR_OE_Constants;
|
|
|
|
typedef enum
|
|
{
|
|
MSTATE_UNKNOWN = 0x0000,
|
|
|
|
MSTATE_OFFLINE = 0x0001,
|
|
MSTATE_ONLINE = 0x0002,
|
|
MSTATE_INVISIBLE = 0x0006,
|
|
MSTATE_BUSY = 0x000A,
|
|
MSTATE_BE_RIGHT_BACK = 0x000E,
|
|
MSTATE_IDLE = 0x0012,
|
|
MSTATE_AWAY = 0x0022,
|
|
MSTATE_ON_THE_PHONE = 0x0032,
|
|
MSTATE_OUT_TO_LUNCH = 0x0042,
|
|
|
|
MSTATE_LOCAL_FINDING_SERVER = 0x0100,
|
|
MSTATE_LOCAL_CONNECTING_TO_SERVER = 0x0200,
|
|
MSTATE_LOCAL_SYNCHRONIZING_WITH_SERVER = 0x0300,
|
|
MSTATE_LOCAL_DISCONNECTING_FROM_SERVER = 0x0400,
|
|
}
|
|
MSTATE;
|
|
|
|
typedef enum
|
|
{
|
|
MPROMPT_YES_IF_NOT_ALLOWED_OR_BLOCKED = 0,
|
|
MPROMPT_NO_ADD_TO_ALLOW = 1,
|
|
}
|
|
MPROMPT;
|
|
|
|
typedef enum
|
|
{
|
|
MMSGPRIVACY_BLOCK_LIST_EXCLUDED = 0,
|
|
MMSGPRIVACY_ALLOW_LIST_ONLY = 1,
|
|
}
|
|
MMSGPRIVACY;
|
|
|
|
typedef enum
|
|
{
|
|
MUPDATECHOICE_OPTIONAL = 0,
|
|
MUPDATECHOICE_MANDATORY = 1,
|
|
}
|
|
MUPDATECHOICE;
|
|
|
|
typedef enum
|
|
{
|
|
MURLTYPE_CHANGE_PASSWORD = 0,
|
|
MURLTYPE_CHANGE_INFO = 1,
|
|
MURLTYPE_COMPOSE_EMAIL = 2,
|
|
MURLTYPE_GO_TO_EMAIL_INBOX = 3,
|
|
MURLTYPE_GO_TO_EMAIL_FOLDERS = 4,
|
|
MURLTYPE_READ_EMAIL_MESSAGE = 5,
|
|
}
|
|
MURLTYPE;
|
|
|
|
typedef enum
|
|
{
|
|
MLIST_CONTACT = 0,
|
|
MLIST_ALLOW = 1,
|
|
MLIST_BLOCK = 2,
|
|
MLIST_REVERSE = 3,
|
|
}
|
|
MLIST;
|
|
|
|
typedef enum
|
|
{
|
|
MMSGTYPE_NO_RESULT = 0,
|
|
MMSGTYPE_ERRORS_ONLY = 1,
|
|
MMSGTYPE_ALL_RESULTS = 2,
|
|
}
|
|
MMSGTYPE;
|
|
|
|
typedef enum
|
|
{
|
|
MSGR_E_CONNECT = MSGR_E(0x0001),
|
|
MSGR_E_INVALID_SERVER_NAME = MSGR_E(0x0002),
|
|
MSGR_E_INVALID_PASSWORD = MSGR_E(0x0003),
|
|
MSGR_E_ALREADY_LOGGED_ON = MSGR_E(0x0004),
|
|
MSGR_E_SERVER_VERSION = MSGR_E(0x0005),
|
|
MSGR_E_LOGON_TIMEOUT = MSGR_E(0x0006),
|
|
MSGR_E_LIST_FULL = MSGR_E(0x0007),
|
|
MSGR_E_AI_REJECT = MSGR_E(0x0008),
|
|
MSGR_E_AI_REJECT_NOT_INST = MSGR_E(0x0009),
|
|
MSGR_E_USER_NOT_FOUND = MSGR_E(0x000A),
|
|
MSGR_E_ALREADY_IN_LIST = MSGR_E(0x000B),
|
|
MSGR_E_DISCONNECTED = MSGR_E(0x000C),
|
|
MSGR_E_UNEXPECTED = MSGR_E(0x000D),
|
|
MSGR_E_SERVER_TOO_BUSY = MSGR_E(0x000E),
|
|
MSGR_E_INVALID_AUTH_PACKAGES = MSGR_E(0x000F),
|
|
MSGR_E_NEWER_CLIENT_AVAILABLE = MSGR_E(0x0010),
|
|
MSGR_E_AI_TIMEOUT = MSGR_E(0x0011),
|
|
MSGR_E_CANCEL = MSGR_E(0x0012),
|
|
MSGR_E_TOO_MANY_MATCHES = MSGR_E(0x0013),
|
|
MSGR_E_SERVER_UNAVAILABLE = MSGR_E(0x0014),
|
|
MSGR_E_LOGON_UI_ACTIVE = MSGR_E(0x0015),
|
|
MSGR_E_OPTION_UI_ACTIVE = MSGR_E(0x0016),
|
|
MSGR_E_CONTACT_UI_ACTIVE = MSGR_E(0x0017),
|
|
MSGR_E_FAIL = E_FAIL,
|
|
MSGR_S_OK = S_OK,
|
|
}
|
|
MSGRConstants;
|
|
|
|
typedef enum
|
|
{
|
|
SSTATE_DISCONNECTED = 0,
|
|
SSTATE_CONNECTING = 1,
|
|
SSTATE_CONNECTED = 2,
|
|
SSTATE_DISCONNECTING = 3,
|
|
}
|
|
SSTATE;
|
|
|
|
typedef enum
|
|
{
|
|
[helpstring("Proxy State")] MLOPT_PROXY_STATE = 0,
|
|
[helpstring("Proxy Type")] MLOPT_PROXY_TYPE = 1,
|
|
[helpstring("SOCKS4 Proxy Server")] MLOPT_SOCKS4_SERVER = 2,
|
|
[helpstring("SOCKS5 Proxy Server")] MLOPT_SOCKS5_SERVER = 3,
|
|
[helpstring("HTTPS Proxy Server")] MLOPT_HTTPS_SERVER = 4,
|
|
[helpstring("SOCKS4 Port")] MLOPT_SOCKS4_PORT = 5,
|
|
[helpstring("SOCKS5 Port")] MLOPT_SOCKS5_PORT = 6,
|
|
[helpstring("HTTPS Port")] MLOPT_HTTPS_PORT = 7,
|
|
[helpstring("SOCKS5 Username")] MLOPT_SOCKS5_USERNAME = 8,
|
|
[helpstring("SOCKS5 Password")] MLOPT_SOCKS5_PASSWORD = 9,
|
|
[helpstring("Server Name")] MLOPT_SERVER_NAME = 10,
|
|
[helpstring("Enable Idle Detect")] MLOPT_ENABLE_IDLE_DETECT = 11,
|
|
[helpstring("Idle Threshold")] MLOPT_IDLE_THRESHOLD = 12,
|
|
[helpstring("Idle Detectable")] MLOPT_IDLE_DETECTABLE = 13,
|
|
[helpstring("ScreenSaver Detectable")] MLOPT_SS_DETECTABLE = 14,
|
|
}
|
|
MLOCALOPTION;
|
|
|
|
typedef enum
|
|
{
|
|
MLOPT_MAX_PROXY_STRING = 255,
|
|
MLOPT_MAX_PORT_NUMBER = 65535,
|
|
}
|
|
MLOCALOPTION_LIMITS;
|
|
|
|
typedef enum
|
|
{
|
|
[helpstring("Proxy Type: No proxy")] MPROXYTYPE_NO_PROXY = 0,
|
|
[helpstring("Proxy Type: SOCKS 4")] MPROXYTYPE_SOCKS4 = 1,
|
|
[helpstring("Proxy Type: SOCKS 5")] MPROXYTYPE_SOCKS5 = 2,
|
|
[helpstring("Proxy Type: HTTPS")] MPROXYTYPE_HTTPS = 3,
|
|
}
|
|
MPROXYTYPE;
|
|
|
|
typedef enum
|
|
{
|
|
MOPTDLG_GENERAL_PAGE = 0,
|
|
MOPTDLG_PRIVACY_PAGE = 1,
|
|
MOPTDLG_CONNECTION_PAGE = 2
|
|
}
|
|
MOPTDLGPAGE;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrObject Interface
|
|
[
|
|
uuid(218CB451-20B6-11d2-8E17-0000F803A446), // IID_IMsgrObject
|
|
helpstring("Messenger Object Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMsgrObject : IDispatch
|
|
{
|
|
[id(100), helpstring("Creates a user object."), helpcontext(0x0000)]
|
|
HRESULT CreateUser(
|
|
[in] BSTR bstrLogonName,
|
|
[out, retval] IMsgrUser** ppUser);
|
|
|
|
[id(104), helpstring("Initiates a logon."), helpcontext(0x0000)]
|
|
HRESULT Logon(
|
|
[in] BSTR bstrUser,
|
|
[in] BSTR bstrPassword);
|
|
|
|
[id(105), helpstring("Initiates a logoff."), helpcontext(0x0000)]
|
|
HRESULT Logoff();
|
|
|
|
|
|
[propget, helpstring("Returns a list."), helpcontext(0x0000)]
|
|
HRESULT List(
|
|
[in] MLIST mList,
|
|
[out, retval] IMsgrUsers** ppUsers);
|
|
|
|
[propget, helpstring("Logon name."), helpcontext(0x0000)]
|
|
HRESULT LocalLogonName(
|
|
[out, retval] BSTR* pbstrName);
|
|
|
|
[propget, helpstring("Friendly name."), helpcontext(0x0000)]
|
|
HRESULT LocalFriendlyName(
|
|
[out, retval] BSTR* pbstrName);
|
|
|
|
[propput, helpstring("Local state."), helpcontext(0x0000)]
|
|
HRESULT LocalState(
|
|
[in] MSTATE mState);
|
|
|
|
[propget]
|
|
HRESULT LocalState(
|
|
[out, retval] MSTATE* pmState);
|
|
|
|
[propput, helpstring("Message privacy setting."), helpcontext(0x0000)]
|
|
HRESULT MessagePrivacy(
|
|
[in] MMSGPRIVACY mmpSetting);
|
|
|
|
[propget]
|
|
HRESULT MessagePrivacy(
|
|
[out, retval] MMSGPRIVACY* pmmpSetting);
|
|
|
|
[propput, helpstring("Prompt setting."), helpcontext(0x0000)]
|
|
HRESULT Prompt(
|
|
[in] MPROMPT mpSetting);
|
|
|
|
[propget]
|
|
HRESULT Prompt(
|
|
[out, retval] MPROMPT* pmpSetting);
|
|
|
|
[id(108), helpstring("Invites another user to use an application."), helpcontext(0x0000)]
|
|
HRESULT SendAppInvite(
|
|
[in] IMsgrUser* pUser,
|
|
[in] LONG lCookie,
|
|
[in] BSTR bstrAppGUID,
|
|
[in] BSTR bstrAppName,
|
|
[in] BSTR bstrAppURL,
|
|
[in] MMSGTYPE mmtType,
|
|
[out] LONG* plCookie);
|
|
|
|
[id(109), helpstring("Accepts an invitation to use an application."), helpcontext(0x0000)]
|
|
HRESULT SendAppInviteAccept(
|
|
[in] IMsgrUser* pUser,
|
|
[in] LONG lCookie,
|
|
[in] MMSGTYPE mmtType,
|
|
[out] LONG* plCookie);
|
|
|
|
[id(110), helpstring("Cancels an invitation to use an application."), helpcontext(0x0000)]
|
|
HRESULT SendAppInviteCancel(
|
|
[in] IMsgrUser* pUser,
|
|
[in] LONG lCookie,
|
|
[in] LONG hrReason,
|
|
[in] MMSGTYPE mmtType,
|
|
[out] LONG* plCookie);
|
|
|
|
[propput, helpstring("Local options."), helpcontext(0x0000)]
|
|
HRESULT LocalOption(
|
|
[in] MLOCALOPTION option,
|
|
[in] VARIANT vSetting);
|
|
|
|
[propget]
|
|
HRESULT LocalOption(
|
|
[in] MLOCALOPTION option,
|
|
[out, retval] VARIANT* pvSetting);
|
|
|
|
[id(111), helpstring("Finds a user."), helpcontext(0x0000)]
|
|
HRESULT FindUser(
|
|
[in] BSTR bstrFirstName,
|
|
[in] BSTR bstrLastName,
|
|
[in] BSTR bstrCity,
|
|
[in] BSTR bstrState,
|
|
[in] BSTR bstrCountry,
|
|
[out] LONG* plCookie);
|
|
|
|
[id(112), helpstring("Sends invitation mail."), helpcontext(0x0000)]
|
|
HRESULT SendInviteMail(
|
|
[in] BSTR bstrEmailAddress,
|
|
[in] LONG lFindCookie,
|
|
[in] LONG lFindIndex,
|
|
[out] LONG* plCookie);
|
|
|
|
[id(113), helpstring("Requests a URL."), helpcontext(0x0000)]
|
|
HRESULT RequestURL(
|
|
[in] MURLTYPE muType,
|
|
[in] BSTR bstrAdditionalInfo,
|
|
[out] LONG* plCookie);
|
|
|
|
[propget, helpstring("Returns a list of IM sessions"), helpcontext(0x0000)]
|
|
HRESULT IMSessions(
|
|
[out, retval] IMsgrIMSessions** ppIMSessions);
|
|
|
|
[id(114), helpstring("Creates a new IM session."), helpcontext(0x0000)]
|
|
HRESULT CreateIMSession(
|
|
[in] VARIANT vUser,
|
|
[out, retval] IMsgrIMSession** ppIMSession);
|
|
|
|
[id(115), helpstring("Accepts a session request."), helpcontext(0x0000)]
|
|
HRESULT SessionRequestAccept(
|
|
[in] IMsgrIMSession* pIMsgrIMSession,
|
|
[in] long hrReason);
|
|
|
|
[id(116), helpstring("Cancels a session request."), helpcontext(0x0000)]
|
|
HRESULT SessionRequestCancel(
|
|
[in] IMsgrIMSession* pIMsgrIMSession,
|
|
[in] long hrReason);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// DMsgrObjectEvents Interface
|
|
[
|
|
uuid(218CB452-20B6-11d2-8E17-0000F803A446), // DIID_DMsgrObjectEvents
|
|
helpstring("Messenger Events Interface"),
|
|
helpcontext(0x0000),
|
|
hidden
|
|
]
|
|
dispinterface DMsgrObjectEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(DISPID_ONLOGONRESULT), helpstring("Logon attempt complete."), helpcontext(0x0000)]
|
|
void OnLogonResult(
|
|
[in] long hr);
|
|
|
|
[id(DISPID_ONLOGOFF), helpstring("Logoff complete."), helpcontext(0x0000)]
|
|
void OnLogoff();
|
|
|
|
[id(DISPID_ONLISTADDRESULT), helpstring("Result from list add request."), helpcontext(0x0000)]
|
|
void OnListAddResult(
|
|
[in] long hr,
|
|
[in] MLIST mList,
|
|
[in] IMsgrUser* pUser);
|
|
|
|
[id(DISPID_ONLISTREMOVERESULT), helpstring("Result from list remove request."), helpcontext(0x0000)]
|
|
void OnListRemoveResult(
|
|
[in] long hr,
|
|
[in] MLIST mList,
|
|
[in] IMsgrUser* pUser);
|
|
|
|
[id(DISPID_ONMESSAGEPRIVACYCHANGERESULT), helpstring("Result from message privacy setting change request."), helpcontext(0x0000)]
|
|
void OnMessagePrivacyChangeResult(
|
|
[in] long hr,
|
|
[in] MMSGPRIVACY mmpSetting);
|
|
|
|
[id(DISPID_ONPROMPTCHANGERESULT), helpstring("Result from prompt setting change request."), helpcontext(0x0000)]
|
|
void OnPromptChangeResult(
|
|
[in] long hr,
|
|
[in] MPROMPT mpSetting);
|
|
|
|
[id(DISPID_ONUSERFRIENDLYNAMECHANGERESULT), helpstring("Result from name change request."), helpcontext(0x0000)]
|
|
void OnUserFriendlyNameChangeResult(
|
|
[in] long hr,
|
|
[in] IMsgrUser* pUser,
|
|
[in] BSTR bstrPrevFriendlyName);
|
|
|
|
[id(DISPID_ONUSERSTATECHANGED), helpstring("User state changed."), helpcontext(0x0000)]
|
|
void OnUserStateChanged(
|
|
[in] IMsgrUser* pUser,
|
|
[in] MSTATE mPrevState);
|
|
|
|
[id(DISPID_ONTEXTRECEIVED), helpstring("Text message received."), helpcontext(0x0000)]
|
|
void OnTextReceived(
|
|
[in] IMsgrIMSession* pIMSession,
|
|
[in] IMsgrUser* pSourceUser,
|
|
[in] BSTR bstrMsgHeader,
|
|
[in] BSTR bstrMsgText,
|
|
[in, out] VARIANT_BOOL* pfEnableDefault);
|
|
|
|
[id(DISPID_ONLOCALSTATECHANGERESULT), helpstring("Result from local state request."), helpcontext(0x0000)]
|
|
void OnLocalStateChangeResult(
|
|
[in] long hr,
|
|
[in] MSTATE mLocalState);
|
|
|
|
[id(DISPID_ONAPPINVITERECEIVED), helpstring("Application invitation received."), helpcontext(0x0000)]
|
|
void OnAppInviteReceived(
|
|
[in] IMsgrUser* pUser,
|
|
[in] long lCookie,
|
|
[in] BSTR bstrAppGUID,
|
|
[in] BSTR bstrAppName,
|
|
[in] BSTR bstrAppURL,
|
|
[in, out] VARIANT_BOOL* pfEnableDefault);
|
|
|
|
[id(DISPID_ONAPPINVITEACCEPTED), helpstring("Application invitation accepted."), helpcontext(0x0000)]
|
|
void OnAppInviteAccepted(
|
|
[in] IMsgrUser* pUser,
|
|
[in] long lCookie,
|
|
[in] BSTR bstrIPAddress,
|
|
[in, out] VARIANT_BOOL* pfEnableDefault);
|
|
|
|
[id(DISPID_ONAPPINVITECANCELLED), helpstring("Application invitation cancelled."), helpcontext(0x0000)]
|
|
void OnAppInviteCancelled(
|
|
[in] IMsgrUser* pUser,
|
|
[in] long lCookie,
|
|
[in] long hrReason,
|
|
[in, out] VARIANT_BOOL* pfEnableDefault);
|
|
|
|
[id(DISPID_ONSENDRESULT), helpstring("Result from send request."), helpcontext(0x0000)]
|
|
void OnSendResult(
|
|
[in] long hr,
|
|
[in] long lCookie);
|
|
|
|
[id(DISPID_ONNEWERCLIENTAVAILABLE), helpstring("Newer client is available."), helpcontext(0x0000)]
|
|
void OnNewerClientAvailable(
|
|
[in] BSTR bstrDownloadUrl,
|
|
[in] MUPDATECHOICE mUpdateChoice);
|
|
|
|
[id(DISPID_ONFINDRESULT), helpstring("Result from find request."), helpcontext(0x0000)]
|
|
void OnFindResult(
|
|
[in] long hr,
|
|
[in] long lCookie,
|
|
[in] long lFindIndex,
|
|
[in] long lTotalResults,
|
|
[in] BSTR bstrFirstName,
|
|
[in] BSTR bstrLastName,
|
|
[in] BSTR bstrCity,
|
|
[in] BSTR bstrState,
|
|
[in] BSTR bstrCountry);
|
|
|
|
[id(DISPID_ONINVITEMAILRESULT), helpstring("Result from SendInviteMail request."), helpcontext(0x0000)]
|
|
void OnInviteMailResult(
|
|
[in] long hr,
|
|
[in] long lCookie);
|
|
|
|
[id(DISPID_ONREQUESTURLRESULT), helpstring("Result from URL request."), helpcontext(0x0000)]
|
|
void OnRequestURLResult(
|
|
[in] long hr,
|
|
[in] long lCookie,
|
|
[in] MURLTYPE muType,
|
|
[in] BSTR bstrURL);
|
|
|
|
[id(DISPID_ONSESSIONSTATECHANGE), helpstring("Session state changed."), helpcontext(0x0000)]
|
|
void OnSessionStateChange(
|
|
[in] IMsgrIMsession* pIMSession,
|
|
[in] SSTATE sPrevState);
|
|
|
|
[id(DISPID_ONUSERJOIN), helpstring("User joined a session."), helpcontext(0x0000)]
|
|
void OnUserJoin(
|
|
[in] IMsgrUser* pIMsgrUser,
|
|
[in] IMsgrIMSession* pIMSession);
|
|
|
|
[id(DISPID_ONUSERLEAVE), helpstring("User left a session."), helpcontext(0x0000)]
|
|
void OnUserLeave(
|
|
[in] IMsgrUser* pIMsgrUser,
|
|
[in] IMsgrIMSession* pIMSession);
|
|
|
|
[id(DISPID_ONNEWSESSIONREQUEST), helpstring("Request for a new session."), helpcontext(0x0000)]
|
|
void OnNewSessionRequest(
|
|
[in] IMsgrUser* pRequestUser,
|
|
[in] IMsgrIMSession* pIMSession,
|
|
[in, out] VARIANT_BOOL* pfEnableDefault);
|
|
|
|
[id(DISPID_ONINVITEUSER), helpstring("Invite user result."), helpcontext(0x0000)]
|
|
void OnInviteUser(
|
|
[in] IMsgrUser* pIMsgrUser,
|
|
[in] IMsgrIMSession* pIMSession,
|
|
[in] long hr);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrUser Interface
|
|
[
|
|
uuid(218CB453-20B6-11d2-8E17-0000F803A446), // IID_IMsgrUser
|
|
helpstring("Messenger User Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMsgrUser : IDispatch
|
|
{
|
|
[propput, helpstring("Friendly Name of the user."), helpcontext(0x0000)]
|
|
HRESULT FriendlyName(
|
|
[in] BSTR bstrFriendlyName);
|
|
|
|
[propget]
|
|
HRESULT FriendlyName(
|
|
[out, retval] BSTR* pbstrFriendlyName);
|
|
|
|
[propget, helpstring("State of the user."), helpcontext(0x0000)]
|
|
HRESULT State(
|
|
[out, retval] MSTATE* pmState);
|
|
|
|
[propget, helpstring("Logon Name of the user."), helpcontext(0x0000)]
|
|
HRESULT LogonName(
|
|
[out, retval] BSTR* pbstrLogonName);
|
|
|
|
[id(101), helpstring("Send message to this user"), helpcontext(0x0000)]
|
|
HRESULT SendText(
|
|
[in] BSTR bstrMsgHeader,
|
|
[in] BSTR bstrMsgText,
|
|
[in] MMSGTYPE mmtType,
|
|
[out] LONG* plCookie);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrUsers Interface
|
|
[
|
|
uuid(218CB454-20B6-11d2-8E17-0000F803A446), // IID_IMsgrUsers
|
|
helpstring("Messenger Users Collection Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMsgrUsers : IDispatch
|
|
{
|
|
[propget, helpstring("Number of users."), helpcontext(0x0000)]
|
|
HRESULT Count(
|
|
[out, retval] long* pcUsers);
|
|
|
|
[id(DISPID_VALUE), helpstring("Retrieves a specific user by index."), helpcontext(0x0000)]
|
|
HRESULT Item(
|
|
[in] long Index,
|
|
[out, retval] IMsgrUser** ppUser);
|
|
|
|
[id(100), helpstring("Adds a user object to the collection."), helpcontext(0x0000)]
|
|
HRESULT Add(
|
|
[in] IMsgrUser* pUser);
|
|
|
|
[id(101), helpstring("Removes a user object from the collection."), helpcontext(0x0000)]
|
|
HRESULT Remove(
|
|
[in] IMsgrUser* pUser);
|
|
|
|
[propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the users."), helpcontext(0x0000)]
|
|
HRESULT _NewEnum(
|
|
[out, retval] IUnknown **ppUnknown);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrIMSession Interface
|
|
[
|
|
uuid(82e11592-20f5-11d2-91ad-0000f81fefc9), // IID_IMsgrIMSession
|
|
helpstring("Messenger IM Session Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMsgrIMSession : IDispatch
|
|
{
|
|
[propget, helpstring("Returns a collection object of current recipients in the IM Session."), helpcontext(0x0000)]
|
|
HRESULT Members(
|
|
[out, retval] IMsgrUsers** ppUsers);
|
|
|
|
[propget, helpstring("Session state."), helpcontext(0x0000)]
|
|
HRESULT State(
|
|
[out, retval] SSTATE* psState);
|
|
|
|
[propget, helpstring("Returns a collection object of current invitees."), helpcontext(0x0000)]
|
|
HRESULT Invitees(
|
|
[out, retval] IMsgrUsers** ppUsers);
|
|
|
|
[id(100), helpstring("Leaves IM session.")]
|
|
HRESULT LeaveSession();
|
|
|
|
[id(101), helpstring("Invites a new user to the session.")]
|
|
HRESULT InviteUser(
|
|
[in] VARIANT vUser);
|
|
|
|
[id(102), helpstring("Sends a text message."), helpcontext(0x0000)]
|
|
HRESULT SendText(
|
|
[in] BSTR bstrMsgHeader,
|
|
[in] BSTR bstrMsgText,
|
|
[in] MMSGTYPE mmtType,
|
|
[out] LONG* plCookie);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrIMSessions Interface
|
|
[
|
|
uuid(6fd143e6-20a5-11d2-91ad-0000f81fefc9), // IID_IMsgrIMSessions
|
|
helpstring("Messenger IM Sessions Collection Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
|
|
interface IMsgrIMSessions : IDispatch
|
|
{
|
|
[propget, helpstring("Number of IM Sessions."), helpcontext(0x0000)]
|
|
HRESULT Count(
|
|
[out, retval] long* pcSessions);
|
|
|
|
[id(DISPID_VALUE), helpstring("Retrieves a specific IM Session by index."), helpcontext(0x0000)]
|
|
HRESULT Item(
|
|
[in] long Index,
|
|
[out, retval] IMsgrIMSession** ppIMSession);
|
|
|
|
[propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the IM Session."), helpcontext(0x0000)]
|
|
HRESULT _NewEnum(
|
|
[out, retval] IUnknown **ppUnknown);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMessengerApp Interface
|
|
[
|
|
uuid(3656FE3E-16A6-11d2-B49D-00C04FB90376), // IID_IMessengerApp
|
|
helpstring("Messenger Application Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMessengerApp : IDispatch
|
|
{
|
|
[propget, helpstring("Returns the application automation object."), helpcontext(0x0000)]
|
|
HRESULT Application(
|
|
[out, retval] IDispatch** ppDisp);
|
|
|
|
[propget, helpstring("Returns the automation object of the container/parent if one exists or this automation object."), helpcontext(0x0000)]
|
|
HRESULT Parent(
|
|
[out, retval] IDispatch** ppDisp);
|
|
|
|
[id(100), helpstring("Exits application."), helpcontext(0x0000)]
|
|
HRESULT Quit();
|
|
|
|
[propget, helpstring("Returns name of the application."), helpcontext(0x0000)]
|
|
HRESULT Name(
|
|
[out, retval] BSTR* pbstrName);
|
|
|
|
[propget, helpstring("Returns file specification of the application, including path."), helpcontext(0x0000)]
|
|
HRESULT FullName(
|
|
[out, retval] BSTR* pbstrFullName);
|
|
|
|
[propget, helpstring("Returns the path to the application."), helpcontext(0x0000)]
|
|
HRESULT Path(
|
|
[out, retval] BSTR* pbstrPath);
|
|
|
|
// do we need success/failure result/event or use OnLogonResult event?
|
|
[id(200), helpstring("Initiates Logon dialog."), helpcontext(0x0000)]
|
|
HRESULT LaunchLogonUI();
|
|
|
|
[id(201), helpstring("Initiates Options dialog."), helpcontext(0x0000)]
|
|
HRESULT LaunchOptionsUI(
|
|
[in] MOPTDLGPAGE mOptDlgPage);
|
|
|
|
// do we need success/failure result/event or use OnListAddResult event
|
|
[id(202), helpstring("Initiates Add Contact dialog."), helpcontext(0x0000)]
|
|
HRESULT LaunchAddContactUI(
|
|
[in] BSTR bstrEMail);
|
|
|
|
[id(203), helpstring("Initiates Find Contact Dialog."), helpcontext(0x0000)]
|
|
HRESULT LaunchFindContactUI(
|
|
[in] BSTR bstrFirstName,
|
|
[in] BSTR bstrLastName,
|
|
[in, optional] VARIANT vbstrCity,
|
|
[in, optional] VARIANT vbstrState,
|
|
[in, optional] VARIANT vbstrCountry);
|
|
|
|
[id(210), helpstring("Initiates IM Window."), helpcontext(0x0000)]
|
|
HRESULT LaunchIMUI(
|
|
[in] VARIANT vUser,
|
|
[out, retval] IMessengerIMWindow** ppIMWindow);
|
|
|
|
[propget, helpstring("Collection of current IM Windows."), helpcontext(0x0000)]
|
|
HRESULT IMWindows(
|
|
[out, retval] IMessengerIMWindows** ppIMWindows);
|
|
|
|
[propget, helpstring("ToolBar visibility."), helpcontext(0x0000)]
|
|
HRESULT ToolBar(
|
|
[out, retval] VARIANT_BOOL* pBoolToolBar);
|
|
|
|
[propput]
|
|
HRESULT ToolBar(
|
|
[in] VARIANT_BOOL BoolToolBar);
|
|
|
|
[propget, helpstring("StatusBar visibility."), helpcontext(0x0000)]
|
|
HRESULT StatusBar(
|
|
[out, retval] VARIANT_BOOL* pBoolStatusBar);
|
|
|
|
[propput]
|
|
HRESULT StatusBar(
|
|
[in] VARIANT_BOOL BoolStatusBar);
|
|
|
|
[propget, helpstring("Text of StatusBar."), helpcontext(0x0000)]
|
|
HRESULT StatusText(
|
|
[out, retval] BSTR *pbstrStatusText);
|
|
|
|
[propput]
|
|
HRESULT StatusText(
|
|
[in] BSTR bstrStatusText);
|
|
|
|
[propget, helpstring("Returns the Handle of the Application window."), helpcontext(0x0000)]
|
|
HRESULT HWND(
|
|
[out, retval] long *phWnd);
|
|
|
|
[propget, helpstring("The horizontal position (pixels) of the Application window relative to the screen."), helpcontext(0x0000)]
|
|
HRESULT Left(
|
|
[out, retval] long *plLeft);
|
|
|
|
[propput]
|
|
HRESULT Left(
|
|
[in] long lLeft);
|
|
|
|
[propget, helpstring("The vertical position (pixels) of the Application window relative to the screen."), helpcontext(0x0000)]
|
|
HRESULT Top(
|
|
[out, retval] long *plTop);
|
|
|
|
[propput]
|
|
HRESULT Top(
|
|
[in] long lTop);
|
|
|
|
[propget, helpstring("The horizontal dimension (pixels) of the Application window."), helpcontext(0x0000)]
|
|
HRESULT Width(
|
|
[out, retval] long *plWidth);
|
|
|
|
[propput]
|
|
HRESULT Width(
|
|
[in] long lWidth);
|
|
|
|
[propget, helpstring("The vertical dimension (pixels) of the Application window."), helpcontext(0x0000)]
|
|
HRESULT Height(
|
|
[out, retval] long *plHeight);
|
|
|
|
[propput]
|
|
HRESULT Height(
|
|
[in] long lHeight);
|
|
|
|
[propget, helpstring("Visibility of the application."), helpcontext(0x0000)]
|
|
HRESULT Visible(
|
|
[out, retval] VARIANT_BOOL* pBoolVisible);
|
|
|
|
[propput]
|
|
HRESULT Visible(
|
|
[in] VARIANT_BOOL BoolVisible);
|
|
|
|
[id(222), helpstring("Initiates a Logon without UI if connected to the network and user saved the password."), helpcontext(0x0000)]
|
|
HRESULT AutoLogon();
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMessengerIMWindow Interface
|
|
[
|
|
uuid(35EDD1CD-1A8C-11d2-B49D-00C04FB90376), // IID_IMessengerIMWindow
|
|
helpstring("Messenger IM Window Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMessengerIMWindow : IDispatch
|
|
{
|
|
[propget, helpstring("Returns the application automation object if accessible, this automation object otherwise."), helpcontext(0x0000)]
|
|
HRESULT Application(
|
|
[out, retval] IDispatch** ppDisp);
|
|
|
|
[propget, helpstring("Returns the automation object of the container/parent if one exists or this automation object."), helpcontext(0x0000)]
|
|
HRESULT Parent(
|
|
[out, retval] IDispatch** ppDisp);
|
|
|
|
[propget, helpstring("Returns the IMSession Object associated with this window."), helpcontext(0x0000)]
|
|
HRESULT IMSession(
|
|
[out, retval] IMsgrIMSession** ppIMSession);
|
|
|
|
[propget, helpstring("Current history in the window."), helpcontext(0x0000)]
|
|
HRESULT History(
|
|
[out, retval] BSTR* pbstrHistory);
|
|
|
|
[id(300), helpstring("Sends a text message through the IM window."), helpcontext(0x0000)]
|
|
HRESULT SendText(
|
|
[in] BSTR bstrSendText);
|
|
|
|
[id(301), helpstring("Closes the IM window."), helpcontext(0x0000)]
|
|
HRESULT Close();
|
|
|
|
[propget, helpstring("ToolBar visibility."), helpcontext(0x0000)]
|
|
HRESULT ToolBar(
|
|
[out, retval] VARIANT_BOOL* pBoolToolBar);
|
|
|
|
[propput]
|
|
HRESULT ToolBar(
|
|
[in] VARIANT_BOOL BoolToolBar);
|
|
|
|
[propget, helpstring("StatusBar visibility."), helpcontext(0x0000)]
|
|
HRESULT StatusBar(
|
|
[out, retval] VARIANT_BOOL* pBoolStatusBar);
|
|
|
|
[propput]
|
|
HRESULT StatusBar(
|
|
[in] VARIANT_BOOL BoolStatusBar);
|
|
|
|
[propget, helpstring("Text of StatusBar."), helpcontext(0x0000)]
|
|
HRESULT StatusText(
|
|
[out, retval] BSTR *pbstrStatusText);
|
|
|
|
[propput]
|
|
HRESULT StatusText(
|
|
[in] BSTR bstrStatusText);
|
|
|
|
[propget, helpstring("Returns the Handle of the IM window."), helpcontext(0x0000)]
|
|
HRESULT HWND(
|
|
[out, retval] long *phWnd);
|
|
|
|
[propget, helpstring("The horizontal position (pixels) of the IM window relative to the screen."), helpcontext(0x0000)]
|
|
HRESULT Left(
|
|
[out, retval] long *plLeft);
|
|
|
|
[propput]
|
|
HRESULT Left(
|
|
[in] long lLeft);
|
|
|
|
[propget, helpstring("The vertical position (pixels) of the IM window relative to the screen."), helpcontext(0x0000)]
|
|
HRESULT Top(
|
|
[out, retval] long *plTop);
|
|
|
|
[propput]
|
|
HRESULT Top(
|
|
[in] long lTop);
|
|
|
|
[propget, helpstring("The horizontal dimension (pixels) of the IM window."), helpcontext(0x0000)]
|
|
HRESULT Width(
|
|
[out, retval] long *plWidth);
|
|
|
|
[propput]
|
|
HRESULT Width(
|
|
[in] long lWidth);
|
|
|
|
[propget, helpstring("The vertical dimension (pixels) of the IM window."), helpcontext(0x0000)]
|
|
HRESULT Height(
|
|
[out, retval] long *plHeight);
|
|
|
|
[propput]
|
|
HRESULT Height(
|
|
[in] long lHeight);
|
|
|
|
[propget, helpstring("Visibility of the window."), helpcontext(0x0000)]
|
|
HRESULT Visible(
|
|
[out, retval] VARIANT_BOOL* pBoolVisible);
|
|
|
|
[propput]
|
|
HRESULT Visible(
|
|
[in] VARIANT_BOOL BoolVisible);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMessengerIMWindows Interface
|
|
[
|
|
uuid(35EDD1CC-1A8C-11d2-B49D-00C04FB90376), // IID_IMessengerIMWindows
|
|
helpstring("Messenger IM Windows Collection Interface"),
|
|
helpcontext(0x0000),
|
|
dual,
|
|
oleautomation
|
|
]
|
|
interface IMessengerIMWindows : IDispatch
|
|
{
|
|
[propget, helpstring("Number of IM Windows."), helpcontext(0x0000)]
|
|
HRESULT Count(
|
|
[out, retval] long* pcWindows);
|
|
|
|
[id(DISPID_VALUE), helpstring("Retrieves a specific IM Window by index."), helpcontext(0x0000)]
|
|
HRESULT Item(
|
|
[in] long Index,
|
|
[out, retval] IMessengerIMWindow** ppIMWindow);
|
|
|
|
[propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the IM Windows."), helpcontext(0x0000)]
|
|
HRESULT _NewEnum(
|
|
[out, retval] IUnknown **ppUnknown);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrOE Interface
|
|
[
|
|
uuid(59EC0340-7506-11d2-B05F-00C04F7F89FE), // IID_IMsgrOE
|
|
helpstring("Messenger Object for OE Private Interface"),
|
|
hidden,
|
|
oleautomation
|
|
]
|
|
interface IMsgrOE : IUnknown
|
|
{
|
|
[id(100), helpstring("Creates a user object for OE.")]
|
|
HRESULT CreateUser([in] BSTR bstrLogonName,
|
|
[out, retval] IMsgrUserOE** ppUserOE);
|
|
|
|
[id(105), helpstring("Initiates a logoff.")]
|
|
HRESULT Logoff();
|
|
|
|
[propget, helpstring("Returns the Contact list for OE.")]
|
|
HRESULT ContactList([out, retval] IMsgrUsersOE** ppUsersOE);
|
|
|
|
[propget, helpstring("Logon name.")]
|
|
HRESULT LocalLogonName([out, retval] BSTR* pbstrName);
|
|
|
|
[propput, helpstring("Local state.")]
|
|
HRESULT LocalState([in] MSTATEOE mStateOE);
|
|
|
|
[propget]
|
|
HRESULT LocalState([out, retval] MSTATEOE* pmStateOE);
|
|
|
|
[id(222), helpstring("Initiates a Logon without UI if connected to the network and user saved the password.")]
|
|
HRESULT AutoLogon();
|
|
|
|
// do we need success/failure result/event or use OnLogonResult event?
|
|
[id(200), helpstring("Initiates Logon dialog.")]
|
|
HRESULT LaunchLogonUI();
|
|
|
|
[id(201), helpstring("Initiates Options dialog.")]
|
|
HRESULT LaunchOptionsUI();
|
|
|
|
// do we need success/failure result/event or use OnListAddResult event
|
|
[id(202), helpstring("Initiates Add Contact dialog.")]
|
|
HRESULT LaunchAddContactUI([in] BSTR bstrEMail);
|
|
|
|
[id(210), helpstring("Initiates IM Window.")]
|
|
HRESULT LaunchIMUI([in] VARIANT vUser);
|
|
|
|
[id(501), helpstring("Establishes a connection between the IMsgrObjectOE and the client's sink")]
|
|
HRESULT AdviseOE([in] IUnknown *pUnk, //Pointer to the client's DMsgrObjectOEEvents sink
|
|
[out] long *plCookie); //Pointer to the connection point identifier used
|
|
// by Unadvise
|
|
[id(502), helpstring("Terminates a connection between the IMsgrObjectOE and the client's sink")]
|
|
HRESULT UnadviseOE([in] long lCookie); //Connection token
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// DMsgrOEEvents Interface
|
|
[
|
|
uuid(59EC0341-7506-11d2-B05F-00C04F7F89FE), // DIID_DMsgrOEEvents
|
|
helpstring("Messenger Events for OE Private Interface"),
|
|
hidden
|
|
]
|
|
dispinterface DMsgrOEEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(DISPID_ONLOGONRESULT), helpstring("Logon attempt complete.")]
|
|
void OnLogonResult([in] long hr);
|
|
|
|
[id(DISPID_ONLOGOFF), helpstring("Logoff complete.")]
|
|
void OnLogoff();
|
|
|
|
[id(DISPID_ONLISTADDRESULT), helpstring("Result from list add request.")]
|
|
void OnContactListAddResult([in] long hr,
|
|
[in] IMsgrUserOE* pUserOE);
|
|
|
|
[id(DISPID_ONLISTREMOVERESULT), helpstring("Result from list remove request.")]
|
|
void OnContactListRemoveResult([in] long hr,
|
|
[in] IMsgrUserOE* pUserOE);
|
|
|
|
[id(DISPID_ONUSERFRIENDLYNAMECHANGERESULT), helpstring("Result from name change request.")]
|
|
void OnUserFriendlyNameChangeResult([in] long hr,
|
|
[in] IMsgrUserOE* pUserOE,
|
|
[in] BSTR bstrPrevFriendlyName);
|
|
|
|
[id(DISPID_ONUSERSTATECHANGED), helpstring("User state changed.")]
|
|
void OnUserStateChanged([in] IMsgrUserOE* pUserOE,
|
|
[in] MSTATEOE mPrevStateOE);
|
|
|
|
[id(DISPID_ONLOCALSTATECHANGERESULT), helpstring("Result from local state request.")]
|
|
void OnLocalStateChangeResult([in] long hr,
|
|
[in] MSTATEOE mLocalStateOE);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrUserOE Interface
|
|
[
|
|
uuid(59EC0342-7506-11d2-B05F-00C04F7F89FE), // IID_IMsgrUserOE
|
|
helpstring("Messenger User for OE Private Interface"),
|
|
hidden,
|
|
oleautomation
|
|
]
|
|
interface IMsgrUserOE : IUnknown
|
|
{
|
|
[propget]
|
|
HRESULT FriendlyName([out, retval] BSTR* pbstrFriendlyName);
|
|
|
|
[propget, helpstring("State of the user.")]
|
|
HRESULT State([out, retval] MSTATEOE* pmStateOE);
|
|
|
|
[propget, helpstring("Logon Name of the user.")]
|
|
HRESULT LogonName([out, retval] BSTR* pbstrLogonName);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------
|
|
// IMsgrUsersOE Interface
|
|
[
|
|
uuid(59EC0343-7506-11d2-B05F-00C04F7F89FE), // IID_IMsgrUsersOE
|
|
helpstring("Messenger Users Collection for OE private Interface"),
|
|
hidden,
|
|
oleautomation
|
|
]
|
|
interface IMsgrUsersOE : IUnknown
|
|
{
|
|
[propget, helpstring("Number of users.")]
|
|
HRESULT Count([out, retval] long* pcUsers);
|
|
|
|
[id(DISPID_VALUE), helpstring("Retrieves a specific user by index.")]
|
|
HRESULT Item([in] long Index,
|
|
[out, retval] IMsgrUserOE** ppUserOE);
|
|
|
|
[id(100), helpstring("Adds a user object to the collection.")]
|
|
HRESULT Add([in] IMsgrUserOE* pUserOE);
|
|
|
|
[id(101), helpstring("Removes a user object from the collection.")]
|
|
HRESULT Remove([in] IMsgrUserOE* pUserOE);
|
|
|
|
[propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the users.")]
|
|
HRESULT _NewEnum([out, retval] IUnknown **ppUnknown);
|
|
}
|
|
|
|
[
|
|
uuid(FB7199AA-79BF-11d2-8D94-0000F875C541), // CLSID_MsgrObject
|
|
helpstring("Messenger Object")
|
|
]
|
|
coclass MsgrObject
|
|
{
|
|
[default] interface IMsgrObject;
|
|
[default, source] dispinterface DMsgrObjectEvents;
|
|
};
|
|
|
|
[
|
|
uuid(FB7199AB-79BF-11d2-8D94-0000F875C541), // CLSID_MessengerApp
|
|
helpstring("Messenger Application"),
|
|
appobject
|
|
]
|
|
coclass MessengerApp
|
|
{
|
|
[default] interface IMessengerApp;
|
|
interface IMsgrOE;
|
|
};
|
|
};
|
|
|