|
|
//+--------------------------------------------------------------------------- // // 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; }; };
|