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

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Copyright 2001 Microsoft Corporation. All Rights Reserved.
  4. //
  5. // Contents: MSN Messenger UI Automantion interfaces
  6. //
  7. //----------------------------------------------------------------------------
  8. #ifdef __MKTYPLIB__
  9. #define VARIANT_BOOL boolean
  10. #else // __MKTYPLIB__
  11. cpp_quote("//+-------------------------------------------------------------------------")
  12. cpp_quote("//")
  13. cpp_quote("// Microsoft Windows")
  14. cpp_quote("// Copyright 1997 Microsoft Corporation. All Rights Reserved.")
  15. cpp_quote("//")
  16. cpp_quote("// File: msnmsgrua.h")
  17. cpp_quote("//")
  18. cpp_quote("//--------------------------------------------------------------------------")
  19. import "objidl.idl";
  20. import "oleidl.idl";
  21. import "oaidl.idl";
  22. #endif // __MKTYPLIB__
  23. #include "mdispid.h"
  24. #define MSGR_S(e) (0x01000300 + (e))
  25. #define MSGR_E(e) (0x81000300 + (e))
  26. #define E_FAIL 0x80004005
  27. #define S_OK 0
  28. //////////////////////////////////////////////////////////////////////////////////
  29. // GUID usage:
  30. // {218CB450-20B6-11d2-8E17-0000F803A446}-{218CB45F-20B6-11d2-8E17-0000F803A446}
  31. //--------------------------------------------------------------------------
  32. // Type Library
  33. [
  34. uuid(218CB45F-20B6-11d2-8E17-0000F803A446), // LIBID_Messenger
  35. version(1.0),
  36. helpstring("Messenger UI Automation Type Library")
  37. ]
  38. library Messenger
  39. {
  40. importlib("stdole32.tlb");
  41. interface IMessengerUA;
  42. interface IMessengerIMWindow;
  43. interface IMessengerIMWindows;
  44. interface IMessengerContact;
  45. interface IMessengerContacts;
  46. #define DISPID_VALUE 0
  47. #define DISPID_NEWENUM -4
  48. typedef enum
  49. {
  50. MSTATE_UNKNOWN = 0x0000,
  51. MSTATE_OFFLINE = 0x0001,
  52. MSTATE_ONLINE = 0x0002,
  53. MSTATE_INVISIBLE = 0x0006,
  54. MSTATE_BUSY = 0x000A,
  55. MSTATE_BE_RIGHT_BACK = 0x000E,
  56. MSTATE_IDLE = 0x0012,
  57. MSTATE_AWAY = 0x0022,
  58. MSTATE_ON_THE_PHONE = 0x0032,
  59. MSTATE_OUT_TO_LUNCH = 0x0042,
  60. MSTATE_LOCAL_FINDING_SERVER = 0x0100,
  61. MSTATE_LOCAL_CONNECTING_TO_SERVER = 0x0200,
  62. MSTATE_LOCAL_SYNCHRONIZING_WITH_SERVER = 0x0300,
  63. MSTATE_LOCAL_DISCONNECTING_FROM_SERVER = 0x0400,
  64. }
  65. MSTATE;
  66. typedef enum
  67. {
  68. MPROMPT_YES_IF_NOT_ALLOWED_OR_BLOCKED = 0,
  69. MPROMPT_NO_ADD_TO_ALLOW = 1,
  70. }
  71. MPROMPT;
  72. typedef enum
  73. {
  74. MMSGPRIVACY_BLOCK_LIST_EXCLUDED = 0,
  75. MMSGPRIVACY_ALLOW_LIST_ONLY = 1,
  76. }
  77. MMSGPRIVACY;
  78. typedef enum
  79. {
  80. MURLTYPE_CHANGE_PASSWORD = 0,
  81. MURLTYPE_CHANGE_INFO = 1,
  82. MURLTYPE_COMPOSE_EMAIL = 2,
  83. MURLTYPE_GO_TO_EMAIL_INBOX = 3,
  84. MURLTYPE_GO_TO_EMAIL_FOLDERS = 4,
  85. MURLTYPE_MOBILE_SIGNUP = 5,
  86. MURLTYPE_CHANGE_MOBILE_INFO = 6,
  87. MURLTYPE_CHANGE_PROFILE = 7,
  88. MURLTYPE_N2P_ACCOUNT = 8,
  89. MURLTYPE_N2P_ADD_FUND = 9
  90. }
  91. MURLTYPE;
  92. typedef enum
  93. {
  94. MLIST_CONTACT = 0,
  95. MLIST_ALLOW = 1,
  96. MLIST_BLOCK = 2,
  97. MLIST_REVERSE = 3,
  98. }
  99. MLIST;
  100. typedef enum
  101. {
  102. MMSGTYPE_NO_RESULT = 0,
  103. MMSGTYPE_ERRORS_ONLY = 1,
  104. MMSGTYPE_ALL_RESULTS = 2,
  105. }
  106. MMSGTYPE;
  107. typedef enum
  108. {
  109. MUPDATE_OPTIONAL = 0x00000001,
  110. MUPDATE_MANDATORY = 0x00000002,
  111. MUPDATE_BRANDED = 0x00000004,
  112. }
  113. MUPDATE_FLAGS;
  114. typedef enum
  115. {
  116. MIF_REQUEST_LAUNCH = 0x00000001,
  117. MIF_REQUEST_IP = 0x00000004,
  118. MIF_PROVIDE_IP = 0x00000008,
  119. }
  120. MINVITE_FLAGS;
  121. typedef enum
  122. {
  123. MPFLFIELD_COUNTRY = 0,
  124. MPFLFIELD_POSTALCODE = 1,
  125. MPFLFIELD_LANG_PREFERENCE = 2,
  126. MPFLFIELD_GENDER = 3,
  127. MPFLFIELD_PREFERRED_EMAIL = 4,
  128. MPFLFIELD_NICKNAME = 5,
  129. MPFLFIELD_ACCESSIBILITY = 6,
  130. MPFLFIELD_WALLET = 7,
  131. MPFLFIELD_DIRECTORY = 8,
  132. MPFLFIELD_INETACCESS = 9,
  133. }
  134. MPFLFIELD;
  135. typedef enum
  136. {
  137. MSGR_E_CONNECT = MSGR_E(0x0001),
  138. MSGR_E_INVALID_SERVER_NAME = MSGR_E(0x0002),
  139. MSGR_E_INVALID_PASSWORD = MSGR_E(0x0003),
  140. MSGR_E_ALREADY_LOGGED_ON = MSGR_E(0x0004),
  141. MSGR_E_SERVER_VERSION = MSGR_E(0x0005),
  142. MSGR_E_LOGON_TIMEOUT = MSGR_E(0x0006),
  143. MSGR_E_LIST_FULL = MSGR_E(0x0007),
  144. MSGR_E_AI_REJECT = MSGR_E(0x0008),
  145. MSGR_E_AI_REJECT_NOT_INST = MSGR_E(0x0009),
  146. MSGR_E_USER_NOT_FOUND = MSGR_E(0x000A),
  147. MSGR_E_ALREADY_IN_LIST = MSGR_E(0x000B),
  148. MSGR_E_DISCONNECTED = MSGR_E(0x000C),
  149. MSGR_E_UNEXPECTED = MSGR_E(0x000D),
  150. MSGR_E_SERVER_TOO_BUSY = MSGR_E(0x000E),
  151. MSGR_E_INVALID_AUTH_PACKAGES = MSGR_E(0x000F),
  152. MSGR_E_NEWER_CLIENT_AVAILABLE = MSGR_E(0x0010),
  153. MSGR_E_AI_TIMEOUT = MSGR_E(0x0011),
  154. MSGR_E_CANCEL = MSGR_E(0x0012),
  155. MSGR_E_TOO_MANY_MATCHES = MSGR_E(0x0013),
  156. MSGR_E_SERVER_UNAVAILABLE = MSGR_E(0x0014),
  157. MSGR_E_LOGON_UI_ACTIVE = MSGR_E(0x0015),
  158. MSGR_E_OPTION_UI_ACTIVE = MSGR_E(0x0016),
  159. MSGR_E_CONTACT_UI_ACTIVE = MSGR_E(0x0017),
  160. MSGR_E_PRIMARY_SERVICE_NOT_LOGGED_ON = MSGR_E(0x0018),
  161. MSGR_E_LOGGED_ON = MSGR_E(0x0019),
  162. MSGR_E_CONNECT_PROXY = MSGR_E(0x001A),
  163. MSGR_E_PROXY_AUTH = MSGR_E(0x001B),
  164. MSGR_E_PROXY_AUTH_TYPE = MSGR_E(0x001C),
  165. MSGR_E_INVALID_PROXY_NAME = MSGR_E(0x001D),
  166. MSGR_E_NOT_LOGGED_ON = MSGR_E(0x001E),
  167. MSGR_E_NOT_PRIMARY_SERVICE = MSGR_E(0x0020),
  168. MSGR_E_TOO_MANY_SESSIONS = MSGR_E(0x0021),
  169. MSGR_E_TOO_MANY_MESSAGES = MSGR_E(0x0022),
  170. MSGR_E_REMOTE_LOGIN = MSGR_E(0x0023),
  171. MSGR_E_INVALID_FRIENDLY_NAME = MSGR_E(0x0024),
  172. MSGR_E_SESSION_FULL = MSGR_E(0x0025),
  173. MSGR_E_NOT_ALLOWING_NEW_USERS = MSGR_E(0x0026),
  174. MSGR_E_INVALID_DOMAIN = MSGR_E(0x0027),
  175. MSGR_E_TCP_ERROR = MSGR_E(0x0028),
  176. MSGR_E_SESSION_TIMEOUT = MSGR_E(0x0029),
  177. MSGR_E_MULTIPOINT_SESSION_BEGIN_TIMEOUT = MSGR_E(0x002a),
  178. MSGR_E_MULTIPOINT_SESSION_END_TIMEOUT = MSGR_E(0x002b),
  179. MSGR_E_REVERSE_LIST_FULL = MSGR_E(0x002c),
  180. MSGR_E_SERVER_ERROR = MSGR_E(0x002d),
  181. MSGR_E_SYSTEM_CONFIG = MSGR_E(0x002e),
  182. MSGR_E_NO_DIRECTORY = MSGR_E(0x002f),
  183. MSGR_E_RETRY_SET = MSGR_E(0x0030),
  184. MSGR_E_CHILD_WITHOUT_CONSENT = MSGR_E(0x0031),
  185. MSGR_E_USER_CANCELLED = MSGR_E(0x0032),
  186. MSGR_E_CANCEL_BEFORE_CONNECT = MSGR_E(0x0033),
  187. MSGR_E_VOICE_IM_TIMEOUT = MSGR_E(0x0034),
  188. MSGR_E_NOT_ACCEPTING_PAGES = MSGR_E(0x0035),
  189. MSGR_E_EMAIL_PASSPORT_NOT_VALIDATED = MSGR_E(0x0036),
  190. MSGR_E_AUDIO_UI_ACTIVE = MSGR_E(0x0037),
  191. MSGR_E_NO_HARDWARE = MSGR_E(0x0038),
  192. MSGR_E_PAGING_UNAVAILABLE = MSGR_E(0x0039),
  193. MSGR_E_PHONE_INVALID_NUMBER = MSGR_E(0x003a),
  194. MSGR_E_PHONE_NO_FUNDS = MSGR_E(0x003b),
  195. MSGR_E_VOICE_NO_ANSWER = MSGR_E(0x003c),
  196. MSGR_E_VOICE_WAVEIN_DEVICE = MSGR_E(0x003d),
  197. MSGR_E_FT_TIMEOUT = MSGR_E(0x003e),
  198. MSGR_E_MESSAGE_TOO_LONG = MSGR_E(0x003f),
  199. MSGR_E_VOICE_FIREWALL = MSGR_E(0x0040),
  200. MSGR_E_VOICE_NETCONN = MSGR_E(0x0041),
  201. MSGR_E_PHONE_CIRCUITS_BUSY = MSGR_E(0x0042),
  202. MSGR_E_SERVER_PROTOCOL = MSGR_E(0x0043),
  203. MSGR_E_UNAVAILABLE_VIA_HTTP = MSGR_E(0x0044),
  204. MSGR_E_PHONE_INVALID_PIN = MSGR_E(0x0045),
  205. MSGR_E_PHONE_PINPROCEED_TIMEOUT = MSGR_E(0x0046),
  206. MSGR_E_SERVER_SHUTDOWN = MSGR_E(0x0047),
  207. MSGR_E_CLIENT_DISALLOWED = MSGR_E(0x0048),
  208. MSGR_E_PHONE_CALL_NOT_COMPLETE = MSGR_E(0x0049),
  209. MSGR_S_ALREADY_IN_THE_MODE = MSGR_S(0x0001),
  210. MSGR_S_TRANSFER_SEND_BEGUN = MSGR_S(0x0002),
  211. MSGR_S_TRANSFER_SEND_FINISHED = MSGR_S(0x0003),
  212. MSGR_S_TRANSFER_RECEIVE_BEGUN = MSGR_S(0x0004),
  213. MSGR_S_TRANSFER_RECEIVE_FINISHED = MSGR_S(0x0005),
  214. MSGR_E_FAIL = E_FAIL,
  215. MSGR_S_OK = S_OK,
  216. }
  217. MSGRConstants;
  218. typedef enum
  219. {
  220. SSTATE_DISCONNECTED = 0,
  221. SSTATE_CONNECTING = 1,
  222. SSTATE_CONNECTED = 2,
  223. SSTATE_DISCONNECTING = 3,
  224. SSTATE_ERROR = 4,
  225. }
  226. SSTATE;
  227. typedef enum
  228. {
  229. MFOLDER_INBOX = 0,
  230. MFOLDER_ALL_OTHER_FOLDERS = 1,
  231. }
  232. MFOLDER;
  233. // If you modify this enumeration, be sure to update loTable in blobject.cpp!!
  234. typedef enum
  235. {
  236. [helpstring("Proxy State")] MLOPT_PROXY_STATE = 0,
  237. [helpstring("Proxy Type")] MLOPT_PROXY_TYPE = 1,
  238. [helpstring("SOCKS4 Proxy Server")] MLOPT_SOCKS4_SERVER = 2,
  239. [helpstring("SOCKS5 Proxy Server")] MLOPT_SOCKS5_SERVER = 3,
  240. [helpstring("HTTPS Proxy Server")] MLOPT_HTTPS_SERVER = 4,
  241. [helpstring("SOCKS4 Port")] MLOPT_SOCKS4_PORT = 5,
  242. [helpstring("SOCKS5 Port")] MLOPT_SOCKS5_PORT = 6,
  243. [helpstring("HTTPS Port")] MLOPT_HTTPS_PORT = 7,
  244. [helpstring("SOCKS5 Username")] MLOPT_SOCKS5_USERNAME = 8,
  245. [helpstring("SOCKS5 Password")] MLOPT_SOCKS5_PASSWORD = 9,
  246. [helpstring("Server Name")] MLOPT_SERVER_NAME = 10,
  247. [helpstring("Enable Idle Detect")] MLOPT_ENABLE_IDLE_DETECT = 11,
  248. [helpstring("Idle Threshold")] MLOPT_IDLE_THRESHOLD = 12,
  249. [helpstring("Idle Detectable")] MLOPT_IDLE_DETECTABLE = 13,
  250. [helpstring("ScreenSaver Detectable")] MLOPT_SS_DETECTABLE = 14,
  251. [helpstring("HTTP Proxy Server")] MLOPT_HTTP_SERVER = 15,
  252. [helpstring("HTTP Proxy Port")] MLOPT_HTTP_PORT = 16,
  253. }
  254. MLOCALOPTION;
  255. //If you change this, then change the g_szPropertyString[] and g_uUserPropPropertyStringID[]
  256. //arrays as well. You'll also need to check that the equivalents in basicim.idl are still
  257. //OK.
  258. typedef enum
  259. {
  260. MUSERPROP_INVALID_PROPERTY = -1,
  261. MUSERPROP_HOME_PHONE_NUMBER = 0,
  262. MUSERPROP_WORK_PHONE_NUMBER = 1,
  263. MUSERPROP_MOBILE_PHONE_NUMBER = 2,
  264. MUSERPROP_PAGES_ALLOWED = 3,
  265. MUSERPROP_NUMBER_OF_PUBLIC_PROPERTIES = 4,
  266. MUSERPROP_PAGES_ENABLED = 4,
  267. MUSERPROP_NUMBER_OF_PROPERTIES,
  268. }
  269. MUSERPROPERTY;
  270. typedef enum
  271. {
  272. MLOPT_MAX_SERVICE_STRING = 255,
  273. MLOPT_MAX_PROXY_STRING = 255,
  274. MLOPT_MAX_PORT_NUMBER = 65535,
  275. MLOPT_MAX_IDLE_THRESHOLD = 999,
  276. }
  277. MLOCALOPTION_LIMITS;
  278. typedef enum
  279. {
  280. [helpstring("Proxy Type: No proxy")] MPROXYTYPE_NO_PROXY = 0,
  281. [helpstring("Proxy Type: SOCKS 4")] MPROXYTYPE_SOCKS4 = 1,
  282. [helpstring("Proxy Type: SOCKS 5")] MPROXYTYPE_SOCKS5 = 2,
  283. [helpstring("Proxy Type: HTTPS")] MPROXYTYPE_HTTPS = 3,
  284. [helpstring("Proxy Type: HTTP")] MPROXYTYPE_HTTP = 4,
  285. }
  286. MPROXYTYPE;
  287. // If you update this enumeration, be sure to fixup COptionsConnectionDlg::SetConnectionText
  288. typedef enum
  289. {
  290. MCONNECTIONTYPE_DISCONNECTED = 0,
  291. MCONNECTIONTYPE_DIRECT = 1,
  292. MCONNECTIONTYPE_BROWSER_PROXY = 2,
  293. MCONNECTIONTYPE_HTTP_PROXY = 3,
  294. MCONNECTIONTYPE_SOCKS_PROXY = 4,
  295. }
  296. MCONNECTIONTYPE;
  297. typedef enum
  298. {
  299. MOPTDLG_GENERAL_PAGE = 0,
  300. MOPTDLG_PRIVACY_PAGE = 1,
  301. MOPTDLG_EXCHANGE_PAGE = 2,
  302. MOPTDLG_ACCOUNTS_PAGE = 3,
  303. MOPTDLG_CONNECTION_PAGE = 4,
  304. MOPTDLG_PHONE_PAGE = 5,
  305. }
  306. MOPTDLGPAGE;
  307. typedef enum
  308. {
  309. MSF_PRIMARY = 0x00000001, // capable of being primary
  310. MSF_APP_INVITE = 0x00000002, // supports app invites
  311. MSF_MULTI_IM = 0x00000004, // supports multiway IM sessions
  312. MSF_BLOCKING = 0x00000008, // unused
  313. MSF_UNAME_IN_EMAIL_FMT = 0x00000010, // usernames look like e-mail names
  314. MSF_LOCAL_LISTS = 0x00000020, // lists are kept locally, not on server
  315. MSF_FIND_USER = 0x00000040, // supports FindUser
  316. MSF_INVITE_MAIL = 0x00000080, // can send invitation mail
  317. MSF_INTERNET = 0x00000100, // connects to server thru internet
  318. MSF_NO_ALLOW_LIST = 0x00000200 // no allow list supported
  319. }
  320. MSERVICE_FLAGS;
  321. typedef enum
  322. {
  323. MFT_SAVE_PASSWORD= 0x00000000,
  324. MFT_DONT_SAVE_PASSWORD= 0x00000001,
  325. MFT_OVERWRITE_EXISTING= 0x00000002,
  326. }
  327. MFIRSTTIME_FLAGS;
  328. typedef enum
  329. {
  330. MSS_LOGGED_ON = 0,
  331. MSS_NOT_LOGGED_ON = 1,
  332. MSS_LOGGING_ON = 2,
  333. MSS_LOGGING_OFF = 3
  334. }
  335. MSVCSTATUS;
  336. typedef enum
  337. {
  338. MFTF_SENDING = 0x00000004,
  339. MFTF_RECEIVING = 0x00000008,
  340. MFTF_CONNECTING = 0x00000010,
  341. MFTF_CONNECTED = 0x00000020,
  342. MFTF_DISCONNECTED = 0x00000040,
  343. }
  344. MFILETRANSFER_FLAGS;
  345. //--------------------------------------------------------------------------
  346. // IMessengerUA Interface
  347. [
  348. uuid(F3A614DD-ABE0-11d2-A441-00C04F795683), // IID_IMessengerUA
  349. helpstring("Messenger UI Automation Interface"),
  350. helpcontext(0x0000),
  351. dual,
  352. oleautomation
  353. ]
  354. interface IMessengerUA : IDispatch
  355. {
  356. [propget, helpstring("Returns the application automation object."), helpcontext(0x0000)]
  357. HRESULT Application(
  358. [out, retval] IDispatch** ppDisp);
  359. [propget, helpstring("Returns the automation object of the container/parent if one exists or this automation object."), helpcontext(0x0000)]
  360. HRESULT Parent(
  361. [out, retval] IDispatch** ppDisp);
  362. [id(100), helpstring("Exits application."), helpcontext(0x0000)]
  363. HRESULT Quit();
  364. [propget, helpstring("Returns name of the application."), helpcontext(0x0000)]
  365. HRESULT Name(
  366. [out, retval] BSTR* pbstrName);
  367. [propget, helpstring("Returns file specification of the application, including path."), helpcontext(0x0000)]
  368. HRESULT FullName(
  369. [out, retval] BSTR* pbstrFullName);
  370. [propget, helpstring("Returns the path to the application."), helpcontext(0x0000)]
  371. HRESULT Path(
  372. [out, retval] BSTR* pbstrPath);
  373. // do we need success/failure result/event or use OnLogonResult event?
  374. [id(200), helpstring("Initiates Logon dialog."), helpcontext(0x0000)]
  375. HRESULT LaunchLogonUI();
  376. [id(201), helpstring("Initiates Options dialog."), helpcontext(0x0000)]
  377. HRESULT LaunchOptionsUI(
  378. [in] MOPTDLGPAGE mOptDlgPage);
  379. // do we need success/failure result/event or use OnListAddResult event
  380. [id(202), helpstring("Initiates Add Contact dialog."), helpcontext(0x0000)]
  381. HRESULT LaunchAddContactUI(
  382. [in] BSTR bstrEMail);
  383. [id(203), helpstring("Initiates Find Contact Dialog."), helpcontext(0x0000)]
  384. HRESULT LaunchFindContactUI(
  385. [in] BSTR bstrFirstName,
  386. [in] BSTR bstrLastName,
  387. [in, optional] VARIANT vbstrCity,
  388. [in, optional] VARIANT vbstrState,
  389. [in, optional] VARIANT vbstrCountry);
  390. [id(210), helpstring("Initiates IM Window."), helpcontext(0x0000)]
  391. HRESULT LaunchIMUI(
  392. [in] VARIANT vUser,
  393. [out, retval] IMessengerIMWindow** ppIMWindow);
  394. [propget, helpstring("Collection of current IM Windows."), helpcontext(0x0000)]
  395. HRESULT IMWindows(
  396. [out, retval] IMessengerIMWindows** ppIMWindows);
  397. [propget, helpstring("ToolBar visibility."), helpcontext(0x0000)]
  398. HRESULT ToolBar(
  399. [out, retval] VARIANT_BOOL* pBoolToolBar);
  400. [propput]
  401. HRESULT ToolBar(
  402. [in] VARIANT_BOOL BoolToolBar);
  403. [propget, helpstring("StatusBar visibility."), helpcontext(0x0000)]
  404. HRESULT StatusBar(
  405. [out, retval] VARIANT_BOOL* pBoolStatusBar);
  406. [propput]
  407. HRESULT StatusBar(
  408. [in] VARIANT_BOOL BoolStatusBar);
  409. [propget, helpstring("Text of StatusBar."), helpcontext(0x0000)]
  410. HRESULT StatusText(
  411. [out, retval] BSTR *pbstrStatusText);
  412. [propput]
  413. HRESULT StatusText(
  414. [in] BSTR bstrStatusText);
  415. [propget, helpstring("Returns the Handle of the Application window."), helpcontext(0x0000)]
  416. HRESULT HWND(
  417. [out, retval] long *phWnd);
  418. [propget, helpstring("The horizontal position (pixels) of the Application window relative to the screen."), helpcontext(0x0000)]
  419. HRESULT Left(
  420. [out, retval] long *plLeft);
  421. [propput]
  422. HRESULT Left(
  423. [in] long lLeft);
  424. [propget, helpstring("The vertical position (pixels) of the Application window relative to the screen."), helpcontext(0x0000)]
  425. HRESULT Top(
  426. [out, retval] long *plTop);
  427. [propput]
  428. HRESULT Top(
  429. [in] long lTop);
  430. [propget, helpstring("The horizontal dimension (pixels) of the Application window."), helpcontext(0x0000)]
  431. HRESULT Width(
  432. [out, retval] long *plWidth);
  433. [propput]
  434. HRESULT Width(
  435. [in] long lWidth);
  436. [propget, helpstring("The vertical dimension (pixels) of the Application window."), helpcontext(0x0000)]
  437. HRESULT Height(
  438. [out, retval] long *plHeight);
  439. [propput]
  440. HRESULT Height(
  441. [in] long lHeight);
  442. [propget, helpstring("Visibility of the application."), helpcontext(0x0000)]
  443. HRESULT Visible(
  444. [out, retval] VARIANT_BOOL* pBoolVisible);
  445. [propput]
  446. HRESULT Visible(
  447. [in] VARIANT_BOOL BoolVisible);
  448. [id(222), helpstring("Initiates a Logon without UI if connected to the network and user saved the password."), helpcontext(0x0000)]
  449. HRESULT AutoLogon();
  450. [id(225), helpstring("Initiates Phone Window."), helpcontext(0x0000)]
  451. HRESULT LaunchPhoneUI(
  452. [in] VARIANT vUser,
  453. [in] MUSERPROPERTY ePhoneNumber);
  454. [id(226), helpstring("Launches the audio tuning wizard."), helpcontext(0x0000)]
  455. HRESULT LaunchAudioTuningWizard(
  456. [in] long hwndParent);
  457. [id(227), helpstring("Initiates Pager IM Window."), helpcontext(0x0000)]
  458. HRESULT LaunchPagerUI(
  459. [in] VARIANT vUser,
  460. [out, retval] IMessengerIMWindow** ppIMWindow);
  461. [propget, helpstring("Returns the Contact list.")]
  462. HRESULT ContactList([out, retval] IMessengerContacts** ppMContacts);
  463. [propget, helpstring("Logon name.")]
  464. HRESULT LocalLogonName([out, retval] BSTR* pbstrName);
  465. [propput, helpstring("Local state.")]
  466. HRESULT LocalState([in] MSTATE mState);
  467. [propget]
  468. HRESULT LocalState([out, retval] MSTATE* pmState);
  469. }
  470. //--------------------------------------------------------------------------
  471. // DMessengerUAEvents Interface
  472. [
  473. uuid(59EC0341-7506-11d2-B05F-00C04F7F89FE), // DIID_DMessengerUAEvents
  474. helpstring("Messenger Events for OE Private Interface"),
  475. hidden
  476. ]
  477. dispinterface DMessengerUAEvents
  478. {
  479. properties:
  480. methods:
  481. [id(DISPID_ONLOGONRESULT), helpstring("Logon attempt complete.")]
  482. void OnLogonResult([in] long hr);
  483. [id(DISPID_ONLOGOFF), helpstring("Logoff complete.")]
  484. void OnLogoff();
  485. [id(DISPID_ONLISTADDRESULT), helpstring("Result from list add request.")]
  486. void OnContactListAddResult([in] long hr,
  487. [in] IMessengerContact* pMContact);
  488. [id(DISPID_ONLISTREMOVERESULT), helpstring("Result from list remove request.")]
  489. void OnContactListRemoveResult([in] long hr,
  490. [in] IMessengerContact* pMContact);
  491. [id(DISPID_ONUSERFRIENDLYNAMECHANGERESULT), helpstring("Result from name change request.")]
  492. void OnUserFriendlyNameChangeResult([in] long hr,
  493. [in] IMessengerContact* pMContact,
  494. [in] BSTR bstrPrevFriendlyName);
  495. [id(DISPID_ONUSERSTATECHANGED), helpstring("User state changed.")]
  496. void OnUserStateChanged([in] IMessengerContact* pMContact,
  497. [in] MSTATE mPrevStateOE);
  498. [id(DISPID_ONLOCALSTATECHANGERESULT), helpstring("Result from local state request.")]
  499. void OnLocalStateChangeResult([in] long hr,
  500. [in] MSTATE mLocalStateOE);
  501. [id(DISPID_ONAPPSHUTDOWN), helpstring("Messenger is shutting down."), helpcontext(0x0000)]
  502. void OnAppShutdown();
  503. }
  504. //--------------------------------------------------------------------------
  505. // IMessengerIMWindow Interface
  506. [
  507. uuid(35EDD1CD-1A8C-11d2-B49D-00C04FB90376), // IID_IMessengerIMWindow
  508. helpstring("Messenger IM Window Interface"),
  509. helpcontext(0x0000),
  510. dual,
  511. oleautomation
  512. ]
  513. interface IMessengerIMWindow : IDispatch
  514. {
  515. [propget, helpstring("Returns the application automation object if accessible, this automation object otherwise."), helpcontext(0x0000)]
  516. HRESULT Application(
  517. [out, retval] IDispatch** ppDisp);
  518. [propget, helpstring("Returns the automation object of the container/parent if one exists or this automation object."), helpcontext(0x0000)]
  519. HRESULT Parent(
  520. [out, retval] IDispatch** ppDisp);
  521. [propget, helpstring("Current history in the window."), helpcontext(0x0000)]
  522. HRESULT History(
  523. [out, retval] BSTR* pbstrHistory);
  524. [id(300), helpstring("Sends a text message through the IM window."), helpcontext(0x0000)]
  525. HRESULT SendText(
  526. [in] BSTR bstrSendText);
  527. [id(301), helpstring("Closes the IM window."), helpcontext(0x0000)]
  528. HRESULT Close();
  529. [propget, helpstring("ToolBar visibility."), helpcontext(0x0000)]
  530. HRESULT ToolBar(
  531. [out, retval] VARIANT_BOOL* pBoolToolBar);
  532. [propput]
  533. HRESULT ToolBar(
  534. [in] VARIANT_BOOL BoolToolBar);
  535. [propget, helpstring("StatusBar visibility."), helpcontext(0x0000)]
  536. HRESULT StatusBar(
  537. [out, retval] VARIANT_BOOL* pBoolStatusBar);
  538. [propput]
  539. HRESULT StatusBar(
  540. [in] VARIANT_BOOL BoolStatusBar);
  541. [propget, helpstring("Text of StatusBar."), helpcontext(0x0000)]
  542. HRESULT StatusText(
  543. [out, retval] BSTR *pbstrStatusText);
  544. [propput]
  545. HRESULT StatusText(
  546. [in] BSTR bstrStatusText);
  547. [propget, helpstring("Returns the Handle of the IM window."), helpcontext(0x0000)]
  548. HRESULT HWND(
  549. [out, retval] long *phWnd);
  550. [propget, helpstring("The horizontal position (pixels) of the IM window relative to the screen."), helpcontext(0x0000)]
  551. HRESULT Left(
  552. [out, retval] long *plLeft);
  553. [propput]
  554. HRESULT Left(
  555. [in] long lLeft);
  556. [propget, helpstring("The vertical position (pixels) of the IM window relative to the screen."), helpcontext(0x0000)]
  557. HRESULT Top(
  558. [out, retval] long *plTop);
  559. [propput]
  560. HRESULT Top(
  561. [in] long lTop);
  562. [propget, helpstring("The horizontal dimension (pixels) of the IM window."), helpcontext(0x0000)]
  563. HRESULT Width(
  564. [out, retval] long *plWidth);
  565. [propput]
  566. HRESULT Width(
  567. [in] long lWidth);
  568. [propget, helpstring("The vertical dimension (pixels) of the IM window."), helpcontext(0x0000)]
  569. HRESULT Height(
  570. [out, retval] long *plHeight);
  571. [propput]
  572. HRESULT Height(
  573. [in] long lHeight);
  574. [propget, helpstring("Visibility of the window."), helpcontext(0x0000)]
  575. HRESULT Visible(
  576. [out, retval] VARIANT_BOOL* pBoolVisible);
  577. [propput]
  578. HRESULT Visible(
  579. [in] VARIANT_BOOL BoolVisible);
  580. [propget, helpstring("Returns a collection object of current recipients in the IM Window."), helpcontext(0x0000)]
  581. HRESULT Members(
  582. [out, retval] IMessengerContacts** ppUsers);
  583. }
  584. //--------------------------------------------------------------------------
  585. // IMessengerIMWindows Interface
  586. [
  587. uuid(35EDD1CC-1A8C-11d2-B49D-00C04FB90376), // IID_IMessengerIMWindows
  588. helpstring("Messenger IM Windows Collection Interface"),
  589. helpcontext(0x0000),
  590. dual,
  591. oleautomation
  592. ]
  593. interface IMessengerIMWindows : IDispatch
  594. {
  595. [propget, helpstring("Number of IM Windows."), helpcontext(0x0000)]
  596. HRESULT Count(
  597. [out, retval] long* pcWindows);
  598. [id(DISPID_VALUE), helpstring("Retrieves a specific IM Window by index."), helpcontext(0x0000)]
  599. HRESULT Item(
  600. [in] long Index,
  601. [out, retval] IMessengerIMWindow** ppIMWindow);
  602. [propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the IM Windows."), helpcontext(0x0000)]
  603. HRESULT _NewEnum(
  604. [out, retval] IUnknown **ppUnknown);
  605. }
  606. //--------------------------------------------------------------------------
  607. // IMessengerContact Interface
  608. [
  609. uuid(59EC0342-7506-11d2-B05F-00C04F7F89FE), // IID_IMessengerContact
  610. helpstring("Messenger User for OE Private Interface"),
  611. hidden,
  612. oleautomation
  613. ]
  614. interface IMessengerContact : IUnknown
  615. {
  616. [propget]
  617. HRESULT FriendlyName([out, retval] BSTR* pbstrFriendlyName);
  618. [propget, helpstring("State of the user.")]
  619. HRESULT State([out, retval] MSTATE* pMstate);
  620. [propget, helpstring("Logon Name of the user.")]
  621. HRESULT LogonName([out, retval] BSTR* pbstrLogonName);
  622. [propget]
  623. HRESULT Property(
  624. [in] MUSERPROPERTY ePropType,
  625. [out, retval] VARIANT *pvPropVal);
  626. }
  627. //--------------------------------------------------------------------------
  628. // IMessengerContacts Interface
  629. [
  630. uuid(59EC0343-7506-11d2-B05F-00C04F7F89FE), // IID_IMessengerContacts
  631. helpstring("Messenger Users Collection for IBasicIM"),
  632. hidden,
  633. oleautomation
  634. ]
  635. interface IMessengerContacts : IUnknown
  636. {
  637. [propget, helpstring("Number of users.")]
  638. HRESULT Count([out, retval] long* pcUsers);
  639. [id(DISPID_VALUE), helpstring("Retrieves a specific user by index.")]
  640. HRESULT Item([in] long Index,
  641. [out, retval] IMessengerContact** ppMContact);
  642. [id(100), helpstring("Adds a user object to the collection.")]
  643. HRESULT Add([in] IMessengerContact* pMContact);
  644. [id(101), helpstring("Removes a user object from the collection.")]
  645. HRESULT Remove([in] IMessengerContact* pMContact);
  646. [propget, restricted, id(DISPID_NEWENUM), helpstring("Enumerates the users.")]
  647. HRESULT _NewEnum([out, retval] IUnknown **ppUnknown);
  648. }
  649. [
  650. uuid(FB7199AB-79BF-11d2-8D94-0000F875C541), // CLSID_MessengerUIAutomation
  651. helpstring("Messenger UI Automation"),
  652. appobject
  653. ]
  654. coclass MessengerUIAutomation
  655. {
  656. [default] interface IMessengerUA;
  657. [source, default] dispinterface DMessengerUAEvents;
  658. };
  659. };
  660. // end