Leaked source code of windows server 2003
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.
 
 
 
 
 
 

781 lines
25 KiB

//+---------------------------------------------------------------------------
//
// Copyright 2001 Microsoft Corporation. All Rights Reserved.
//
// Contents: MSN Messenger UI Automantion interfaces
//
//----------------------------------------------------------------------------
#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: msnmsgrua.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 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 UI Automation Type Library")
]
library Messenger
{
importlib("stdole32.tlb");
interface IMessengerUA;
interface IMessengerIMWindow;
interface IMessengerIMWindows;
interface IMessengerContact;
interface IMessengerContacts;
#define DISPID_VALUE 0
#define DISPID_NEWENUM -4
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
{
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_MOBILE_SIGNUP = 5,
MURLTYPE_CHANGE_MOBILE_INFO = 6,
MURLTYPE_CHANGE_PROFILE = 7,
MURLTYPE_N2P_ACCOUNT = 8,
MURLTYPE_N2P_ADD_FUND = 9
}
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
{
MUPDATE_OPTIONAL = 0x00000001,
MUPDATE_MANDATORY = 0x00000002,
MUPDATE_BRANDED = 0x00000004,
}
MUPDATE_FLAGS;
typedef enum
{
MIF_REQUEST_LAUNCH = 0x00000001,
MIF_REQUEST_IP = 0x00000004,
MIF_PROVIDE_IP = 0x00000008,
}
MINVITE_FLAGS;
typedef enum
{
MPFLFIELD_COUNTRY = 0,
MPFLFIELD_POSTALCODE = 1,
MPFLFIELD_LANG_PREFERENCE = 2,
MPFLFIELD_GENDER = 3,
MPFLFIELD_PREFERRED_EMAIL = 4,
MPFLFIELD_NICKNAME = 5,
MPFLFIELD_ACCESSIBILITY = 6,
MPFLFIELD_WALLET = 7,
MPFLFIELD_DIRECTORY = 8,
MPFLFIELD_INETACCESS = 9,
}
MPFLFIELD;
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_PRIMARY_SERVICE_NOT_LOGGED_ON = MSGR_E(0x0018),
MSGR_E_LOGGED_ON = MSGR_E(0x0019),
MSGR_E_CONNECT_PROXY = MSGR_E(0x001A),
MSGR_E_PROXY_AUTH = MSGR_E(0x001B),
MSGR_E_PROXY_AUTH_TYPE = MSGR_E(0x001C),
MSGR_E_INVALID_PROXY_NAME = MSGR_E(0x001D),
MSGR_E_NOT_LOGGED_ON = MSGR_E(0x001E),
MSGR_E_NOT_PRIMARY_SERVICE = MSGR_E(0x0020),
MSGR_E_TOO_MANY_SESSIONS = MSGR_E(0x0021),
MSGR_E_TOO_MANY_MESSAGES = MSGR_E(0x0022),
MSGR_E_REMOTE_LOGIN = MSGR_E(0x0023),
MSGR_E_INVALID_FRIENDLY_NAME = MSGR_E(0x0024),
MSGR_E_SESSION_FULL = MSGR_E(0x0025),
MSGR_E_NOT_ALLOWING_NEW_USERS = MSGR_E(0x0026),
MSGR_E_INVALID_DOMAIN = MSGR_E(0x0027),
MSGR_E_TCP_ERROR = MSGR_E(0x0028),
MSGR_E_SESSION_TIMEOUT = MSGR_E(0x0029),
MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUT = MSGR_E(0x002a),
MSGR_E_MULTIPOINT_SESSION_END_TIMEOUT = MSGR_E(0x002b),
MSGR_E_REVERSE_LIST_FULL = MSGR_E(0x002c),
MSGR_E_SERVER_ERROR = MSGR_E(0x002d),
MSGR_E_SYSTEM_CONFIG = MSGR_E(0x002e),
MSGR_E_NO_DIRECTORY = MSGR_E(0x002f),
MSGR_E_RETRY_SET = MSGR_E(0x0030),
MSGR_E_CHILD_WITHOUT_CONSENT = MSGR_E(0x0031),
MSGR_E_USER_CANCELLED = MSGR_E(0x0032),
MSGR_E_CANCEL_BEFORE_CONNECT = MSGR_E(0x0033),
MSGR_E_VOICE_IM_TIMEOUT = MSGR_E(0x0034),
MSGR_E_NOT_ACCEPTING_PAGES = MSGR_E(0x0035),
MSGR_E_EMAIL_PASSPORT_NOT_VALIDATED = MSGR_E(0x0036),
MSGR_E_AUDIO_UI_ACTIVE = MSGR_E(0x0037),
MSGR_E_NO_HARDWARE = MSGR_E(0x0038),
MSGR_E_PAGING_UNAVAILABLE = MSGR_E(0x0039),
MSGR_E_PHONE_INVALID_NUMBER = MSGR_E(0x003a),
MSGR_E_PHONE_NO_FUNDS = MSGR_E(0x003b),
MSGR_E_VOICE_NO_ANSWER = MSGR_E(0x003c),
MSGR_E_VOICE_WAVEIN_DEVICE = MSGR_E(0x003d),
MSGR_E_FT_TIMEOUT = MSGR_E(0x003e),
MSGR_E_MESSAGE_TOO_LONG = MSGR_E(0x003f),
MSGR_E_VOICE_FIREWALL = MSGR_E(0x0040),
MSGR_E_VOICE_NETCONN = MSGR_E(0x0041),
MSGR_E_PHONE_CIRCUITS_BUSY = MSGR_E(0x0042),
MSGR_E_SERVER_PROTOCOL = MSGR_E(0x0043),
MSGR_E_UNAVAILABLE_VIA_HTTP = MSGR_E(0x0044),
MSGR_E_PHONE_INVALID_PIN = MSGR_E(0x0045),
MSGR_E_PHONE_PINPROCEED_TIMEOUT = MSGR_E(0x0046),
MSGR_E_SERVER_SHUTDOWN = MSGR_E(0x0047),
MSGR_E_CLIENT_DISALLOWED = MSGR_E(0x0048),
MSGR_E_PHONE_CALL_NOT_COMPLETE = MSGR_E(0x0049),
MSGR_S_ALREADY_IN_THE_MODE = MSGR_S(0x0001),
MSGR_S_TRANSFER_SEND_BEGUN = MSGR_S(0x0002),
MSGR_S_TRANSFER_SEND_FINISHED = MSGR_S(0x0003),
MSGR_S_TRANSFER_RECEIVE_BEGUN = MSGR_S(0x0004),
MSGR_S_TRANSFER_RECEIVE_FINISHED = MSGR_S(0x0005),
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_ERROR = 4,
}
SSTATE;
typedef enum
{
MFOLDER_INBOX = 0,
MFOLDER_ALL_OTHER_FOLDERS = 1,
}
MFOLDER;
// If you modify this enumeration, be sure to update loTable in blobject.cpp!!
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,
[helpstring("HTTP Proxy Server")] MLOPT_HTTP_SERVER = 15,
[helpstring("HTTP Proxy Port")] MLOPT_HTTP_PORT = 16,
}
MLOCALOPTION;
//If you change this, then change the g_szPropertyString[] and g_uUserPropPropertyStringID[]
//arrays as well. You'll also need to check that the equivalents in basicim.idl are still
//OK.
typedef enum
{
MUSERPROP_INVALID_PROPERTY = -1,
MUSERPROP_HOME_PHONE_NUMBER = 0,
MUSERPROP_WORK_PHONE_NUMBER = 1,
MUSERPROP_MOBILE_PHONE_NUMBER = 2,
MUSERPROP_PAGES_ALLOWED = 3,
MUSERPROP_NUMBER_OF_PUBLIC_PROPERTIES = 4,
MUSERPROP_PAGES_ENABLED = 4,
MUSERPROP_NUMBER_OF_PROPERTIES,
}
MUSERPROPERTY;
typedef enum
{
MLOPT_MAX_SERVICE_STRING = 255,
MLOPT_MAX_PROXY_STRING = 255,
MLOPT_MAX_PORT_NUMBER = 65535,
MLOPT_MAX_IDLE_THRESHOLD = 999,
}
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,
[helpstring("Proxy Type: HTTP")] MPROXYTYPE_HTTP = 4,
}
MPROXYTYPE;
// If you update this enumeration, be sure to fixup COptionsConnectionDlg::SetConnectionText
typedef enum
{
MCONNECTIONTYPE_DISCONNECTED = 0,
MCONNECTIONTYPE_DIRECT = 1,
MCONNECTIONTYPE_BROWSER_PROXY = 2,
MCONNECTIONTYPE_HTTP_PROXY = 3,
MCONNECTIONTYPE_SOCKS_PROXY = 4,
}
MCONNECTIONTYPE;
typedef enum
{
MOPTDLG_GENERAL_PAGE = 0,
MOPTDLG_PRIVACY_PAGE = 1,
MOPTDLG_EXCHANGE_PAGE = 2,
MOPTDLG_ACCOUNTS_PAGE = 3,
MOPTDLG_CONNECTION_PAGE = 4,
MOPTDLG_PHONE_PAGE = 5,
}
MOPTDLGPAGE;
typedef enum
{
MSF_PRIMARY = 0x00000001, // capable of being primary
MSF_APP_INVITE = 0x00000002, // supports app invites
MSF_MULTI_IM = 0x00000004, // supports multiway IM sessions
MSF_BLOCKING = 0x00000008, // unused
MSF_UNAME_IN_EMAIL_FMT = 0x00000010, // usernames look like e-mail names
MSF_LOCAL_LISTS = 0x00000020, // lists are kept locally, not on server
MSF_FIND_USER = 0x00000040, // supports FindUser
MSF_INVITE_MAIL = 0x00000080, // can send invitation mail
MSF_INTERNET = 0x00000100, // connects to server thru internet
MSF_NO_ALLOW_LIST = 0x00000200 // no allow list supported
}
MSERVICE_FLAGS;
typedef enum
{
MFT_SAVE_PASSWORD= 0x00000000,
MFT_DONT_SAVE_PASSWORD= 0x00000001,
MFT_OVERWRITE_EXISTING= 0x00000002,
}
MFIRSTTIME_FLAGS;
typedef enum
{
MSS_LOGGED_ON = 0,
MSS_NOT_LOGGED_ON = 1,
MSS_LOGGING_ON = 2,
MSS_LOGGING_OFF = 3
}
MSVCSTATUS;
typedef enum
{
MFTF_SENDING = 0x00000004,
MFTF_RECEIVING = 0x00000008,
MFTF_CONNECTING = 0x00000010,
MFTF_CONNECTED = 0x00000020,
MFTF_DISCONNECTED = 0x00000040,
}
MFILETRANSFER_FLAGS;
//--------------------------------------------------------------------------
// IMessengerUA Interface
[
uuid(F3A614DD-ABE0-11d2-A441-00C04F795683), // IID_IMessengerUA
helpstring("Messenger UI Automation Interface"),
helpcontext(0x0000),
dual,
oleautomation
]
interface IMessengerUA : 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();
[id(225), helpstring("Initiates Phone Window."), helpcontext(0x0000)]
HRESULT LaunchPhoneUI(
[in] VARIANT vUser,
[in] MUSERPROPERTY ePhoneNumber);
[id(226), helpstring("Launches the audio tuning wizard."), helpcontext(0x0000)]
HRESULT LaunchAudioTuningWizard(
[in] long hwndParent);
[id(227), helpstring("Initiates Pager IM Window."), helpcontext(0x0000)]
HRESULT LaunchPagerUI(
[in] VARIANT vUser,
[out, retval] IMessengerIMWindow** ppIMWindow);
[propget, helpstring("Returns the Contact list.")]
HRESULT ContactList([out, retval] IMessengerContacts** ppMContacts);
[propget, helpstring("Logon name.")]
HRESULT LocalLogonName([out, retval] BSTR* pbstrName);
[propput, helpstring("Local state.")]
HRESULT LocalState([in] MSTATE mState);
[propget]
HRESULT LocalState([out, retval] MSTATE* pmState);
}
//--------------------------------------------------------------------------
// DMessengerUAEvents Interface
[
uuid(59EC0341-7506-11d2-B05F-00C04F7F89FE), // DIID_DMessengerUAEvents
helpstring("Messenger Events for OE Private Interface"),
hidden
]
dispinterface DMessengerUAEvents
{
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] IMessengerContact* pMContact);
[id(DISPID_ONLISTREMOVERESULT), helpstring("Result from list remove request.")]
void OnContactListRemoveResult([in] long hr,
[in] IMessengerContact* pMContact);
[id(DISPID_ONUSERFRIENDLYNAMECHANGERESULT), helpstring("Result from name change request.")]
void OnUserFriendlyNameChangeResult([in] long hr,
[in] IMessengerContact* pMContact,
[in] BSTR bstrPrevFriendlyName);
[id(DISPID_ONUSERSTATECHANGED), helpstring("User state changed.")]
void OnUserStateChanged([in] IMessengerContact* pMContact,
[in] MSTATE mPrevStateOE);
[id(DISPID_ONLOCALSTATECHANGERESULT), helpstring("Result from local state request.")]
void OnLocalStateChangeResult([in] long hr,
[in] MSTATE mLocalStateOE);
[id(DISPID_ONAPPSHUTDOWN), helpstring("Messenger is shutting down."), helpcontext(0x0000)]
void OnAppShutdown();
}
//--------------------------------------------------------------------------
// 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("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);
[propget, helpstring("Returns a collection object of current recipients in the IM Window."), helpcontext(0x0000)]
HRESULT Members(
[out, retval] IMessengerContacts** ppUsers);
}
//--------------------------------------------------------------------------
// 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);
}
//--------------------------------------------------------------------------
// IMessengerContact Interface
[
uuid(59EC0342-7506-11d2-B05F-00C04F7F89FE), // IID_IMessengerContact
helpstring("Messenger User for OE Private Interface"),
hidden,
oleautomation
]
interface IMessengerContact : IUnknown
{
[propget]
HRESULT FriendlyName([out, retval] BSTR* pbstrFriendlyName);
[propget, helpstring("State of the user.")]
HRESULT State([out, retval] MSTATE* pMstate);
[propget, helpstring("Logon Name of the user.")]
HRESULT LogonName([out, retval] BSTR* pbstrLogonName);
[propget]
HRESULT Property(
[in] MUSERPROPERTY ePropType,
[out, retval] VARIANT *pvPropVal);
}
//--------------------------------------------------------------------------
// IMessengerContacts Interface
[
uuid(59EC0343-7506-11d2-B05F-00C04F7F89FE), // IID_IMessengerContacts
helpstring("Messenger Users Collection for IBasicIM"),
hidden,
oleautomation
]
interface IMessengerContacts : 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] IMessengerContact** ppMContact);
[id(100), helpstring("Adds a user object to the collection.")]
HRESULT Add([in] IMessengerContact* pMContact);
[id(101), helpstring("Removes a user object from the collection.")]
HRESULT Remove([in] IMessengerContact* pMContact);
[propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the users.")]
HRESULT _NewEnum([out, retval] IUnknown **ppUnknown);
}
[
uuid(FB7199AB-79BF-11d2-8D94-0000F875C541), // CLSID_MessengerUIAutomation
helpstring("Messenger UI Automation"),
appobject
]
coclass MessengerUIAutomation
{
[default] interface IMessengerUA;
[source, default] dispinterface DMessengerUAEvents;
};
};
// end