1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef __REQUIRED_RPCNDR_H_VERSION__
7#define __REQUIRED_RPCNDR_H_VERSION__ 440
8#endif
9
10#include "rpc.h"
11#include "rpcndr.h"
12
13#ifndef __msimcsdk_h__
14#define __msimcsdk_h__
15
16#ifndef __IMSIMHost_FWD_DEFINED__
17#define __IMSIMHost_FWD_DEFINED__
18typedef struct IMSIMHost IMSIMHost;
19#endif
20
21#ifndef __DMSIMHostEvents_FWD_DEFINED__
22#define __DMSIMHostEvents_FWD_DEFINED__
23typedef struct DMSIMHostEvents DMSIMHostEvents;
24#endif
25
26#ifndef __IMSIMWindow_FWD_DEFINED__
27#define __IMSIMWindow_FWD_DEFINED__
28typedef struct IMSIMWindow IMSIMWindow;
29#endif
30
31#ifndef __DMSIMWindowEvents_FWD_DEFINED__
32#define __DMSIMWindowEvents_FWD_DEFINED__
33typedef struct DMSIMWindowEvents DMSIMWindowEvents;
34#endif
35
36#ifndef __IIMService_FWD_DEFINED__
37#define __IIMService_FWD_DEFINED__
38typedef struct IIMService IIMService;
39#endif
40
41#ifndef __DIMServiceEvents_FWD_DEFINED__
42#define __DIMServiceEvents_FWD_DEFINED__
43typedef struct DIMServiceEvents DIMServiceEvents;
44#endif
45
46#ifndef __IIMContact_FWD_DEFINED__
47#define __IIMContact_FWD_DEFINED__
48typedef struct IIMContact IIMContact;
49#endif
50
51#ifndef __IIMContacts_FWD_DEFINED__
52#define __IIMContacts_FWD_DEFINED__
53typedef struct IIMContacts IIMContacts;
54#endif
55
56#ifndef __IIMSession_FWD_DEFINED__
57#define __IIMSession_FWD_DEFINED__
58typedef struct IIMSession IIMSession;
59#endif
60
61#ifndef __IIMSessions_FWD_DEFINED__
62#define __IIMSessions_FWD_DEFINED__
63typedef struct IIMSessions IIMSessions;
64#endif
65
66#ifndef __MSIMHost_FWD_DEFINED__
67#define __MSIMHost_FWD_DEFINED__
68#ifdef __cplusplus
69typedef class MSIMHost MSIMHost;
70#else
71typedef struct MSIMHost MSIMHost;
72#endif
73#endif
74
75#ifndef __MSIMService_FWD_DEFINED__
76#define __MSIMService_FWD_DEFINED__
77#ifdef __cplusplus
78typedef class MSIMService MSIMService;
79#else
80typedef struct MSIMService MSIMService;
81#endif
82#endif
83
84#ifndef __MSIMWindow_FWD_DEFINED__
85#define __MSIMWindow_FWD_DEFINED__
86#ifdef __cplusplus
87typedef class MSIMWindow MSIMWindow;
88#else
89typedef struct MSIMWindow MSIMWindow;
90#endif
91#endif
92
93#ifndef __MSIMHostOption_FWD_DEFINED__
94#define __MSIMHostOption_FWD_DEFINED__
95#ifdef __cplusplus
96typedef class MSIMHostOption MSIMHostOption;
97#else
98typedef struct MSIMHostOption MSIMHostOption;
99#endif
100#endif
101
102#ifndef __MSIMHostProfiles_FWD_DEFINED__
103#define __MSIMHostProfiles_FWD_DEFINED__
104#ifdef __cplusplus
105typedef class MSIMHostProfiles MSIMHostProfiles;
106#else
107typedef struct MSIMHostProfiles MSIMHostProfiles;
108#endif
109#endif
110
111#include "oaidl.h"
112#include "ocidl.h"
113
114#ifdef __cplusplus
115extern "C" {
116#endif
117
118#ifndef __MIDL_user_allocate_free_DEFINED__
119#define __MIDL_user_allocate_free_DEFINED__
120  void *__RPC_API MIDL_user_allocate(size_t);
121  void __RPC_API MIDL_user_free(void *);
122#endif
123
124#define MSIM_DISPID_ONLOGONRESULT 0x0E00
125#define MSIM_DISPID_ONLOGOFF 0x0E01
126#define MSIM_DISPID_ONLISTADDRESULT 0x0E02
127#define MSIM_DISPID_ONLISTREMOVERESULT 0x0E03
128#define MSIM_DISPID_ONFRIENDLYNAMECHANGERESULT 0x0E04
129#define MSIM_DISPID_ONCONTACTSTATECHANGED 0x0E05
130#define MSIM_DISPID_ONTEXTRECEIVED 0x0E06
131#define MSIM_DISPID_ONLOCALFRIENDLYNAMECHANGERESULT 0x0E07
132#define MSIM_DISPID_ONLOCALSTATECHANGERESULT 0x0E08
133#define MSIM_DISPID_ONSENDRESULT 0x0E09
134#define MSIM_DISPID_ONFINDRESULT 0x0E0A
135#define MSIM_DISPID_ONSESSIONSTATECHANGE 0x0E0B
136#define MSIM_DISPID_ONNEWSESSIONMEMBER 0x0E0C
137#define MSIM_DISPID_ONSESSIONMEMBERLEAVE 0x0E0D
138#define MSIM_DISPID_ONNEWSESSIONREQUEST 0x0E0F
139#define MSIM_DISPID_ONINVITECONTACT 0x0E10
140#define MSIM_DISPID_ONAPPSHUTDOWN 0x0E12
141#define MSIM_DISPID_ON_NM_INVITERECEIVED 0x0E13
142#define MSIM_DISPID_ON_NM_ACCEPTED 0x0E14
143#define MSIM_DISPID_ON_NM_CANCELLED 0x0E15
144#define MSIMWND_DISPID_ONMOVE 0x00E0
145#define MSIMWND_DISPID_ONCLOSE 0x00E1
146#define MSIMWND_DISPID_ONRESIZE 0x00E2
147#define MSIMWND_DISPID_ONSHOW 0x00E3
148#define MSIMWND_DISPID_ONFOCUS 0x00E4
149#define MSIMHOSTEVENTS_DISPID_ONDOUBLECLICK 0xD
150#define MSIMHOSTEVENTS_DISPID_ONSHUTDOWN 0xE
151#define MSIMHOSTEVENTS_DISPID_ONCLICKUSERNOTIFY 0xF
152
153  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0001 {
154    IM_E_CONNECT = 0x81000300 + 0x1,IM_E_INVALID_SERVER_NAME = 0x81000300 + 0x2,IM_E_INVALID_PASSWORD = 0x81000300 + 0x3,
155    IM_E_ALREADY_LOGGED_ON = 0x81000300 + 0x4,IM_E_SERVER_VERSION = 0x81000300 + 0x5,IM_E_LOGON_TIMEOUT = 0x81000300 + 0x6,
156    IM_E_LIST_FULL = 0x81000300 + 0x7,IM_E_AI_REJECT = 0x81000300 + 0x8,IM_E_AI_REJECT_NOT_INST = 0x81000300 + 0x9,
157    IM_E_USER_NOT_FOUND = 0x81000300 + 0xa,IM_E_ALREADY_IN_LIST = 0x81000300 + 0xb,IM_E_DISCONNECTED = 0x81000300 + 0xc,
158    IM_E_UNEXPECTED = 0x81000300 + 0xd,IM_E_SERVER_TOO_BUSY = 0x81000300 + 0xe,IM_E_INVALID_AUTH_PACKAGES = 0x81000300 + 0xf,
159    IM_E_NEWER_CLIENT_AVAILABLE = 0x81000300 + 0x10,IM_E_AI_TIMEOUT = 0x81000300 + 0x11,IM_E_CANCEL = 0x81000300 + 0x12,
160    IM_E_TOO_MANY_MATCHES = 0x81000300 + 0x13,IM_E_SERVER_UNAVAILABLE = 0x81000300 + 0x14,IM_E_LOGON_UI_ACTIVE = 0x81000300 + 0x15,
161    IM_E_OPTION_UI_ACTIVE = 0x81000300 + 0x16,IM_E_CONTACT_UI_ACTIVE = 0x81000300 + 0x17,IM_E_LOGGED_ON = 0x81000300 + 0x19,
162    IM_E_CONNECT_PROXY = 0x81000300 + 0x1a,IM_E_PROXY_AUTH = 0x81000300 + 0x1b,IM_E_PROXY_AUTH_TYPE = 0x81000300 + 0x1c,
163    IM_E_INVALID_PROXY_NAME = 0x81000300 + 0x1d,IM_E_NOT_PRIMARY_SERVICE = 0x81000300 + 0x20,IM_E_TOO_MANY_SESSIONS = 0x81000300 + 0x21,
164    IM_E_TOO_MANY_MESSAGES = 0x81000300 + 0x22,IM_E_REMOTE_LOGIN = 0x81000300 + 0x23,IM_E_INVALID_FRIENDLY_NAME = 0x81000300 + 0x24,
165    IM_E_SESSION_FULL = 0x81000300 + 0x25,IM_E_NOT_ALLOWING_NEW_USERS = 0x81000300 + 0x26,IM_E_INVALID_DOMAIN = 0x81000300 + 0x27,
166    IM_E_TCP_ERROR = 0x81000300 + 0x28,IM_E_SESSION_TIMEOUT = 0x81000300 + 0x29,IM_E_MULTIPOINT_SESSION_BEGIN_TIMEOUT = 0x81000300 + 0x2a,
167    IM_E_MULTIPOINT_SESSION_END_TIMEOUT = 0x81000300 + 0x2b,IM_E_REVERSE_LIST_FULL = 0x81000300 + 0x2c,IM_E_SERVER_ERROR = 0x81000300 + 0x2d,
168    IM_E_SYSTEM_CONFIG = 0x81000300 + 0x2e,IM_E_NO_DIRECTORY = 0x81000300 + 0x2f,IM_E_USER_CANCELED_LOGON = 0x81000300 + 0x50,
169    IM_E_ALREADY_EXISTS = 0x81000300 + 0x51,IM_E_DOES_NOT_EXIST = 0x81000300 + 0x52,IM_S_LOGGED_ON = 0x1000300 + 0x19,
170    IM_S_ALREADY_IN_THE_MODE = 0x1000300 + 0x1
171  } IM_RESULTS;
172
173  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0002 {
174    IM_MSG_TYPE_NO_RESULT = 0,IM_MSG_TYPE_ERRORS_ONLY = 1,IM_MSG_TYPE_ALL_RESULTS = 2
175  } IM_MSG_TYPE;
176
177  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0003 {
178    IM_INVITE_TYPE_REQUEST_LAUNCH = 0x1,IM_INVITE_TYPE_REQUEST_IP = 0x4,IM_INVITE_TYPE_PROVIDE_IP = 0x8
179  } IM_INVITE_FLAGS;
180
181  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0004 {
182    IM_STATE_UNKNOWN = 0,IM_STATE_OFFLINE = 0x1,IM_STATE_ONLINE = 0x2,IM_STATE_INVISIBLE = 0x6,IM_STATE_BUSY = 0xa,IM_STATE_BE_RIGHT_BACK = 0xe,IM_STATE_IDLE = 0x12,IM_STATE_AWAY = 0x22,IM_STATE_ON_THE_PHONE = 0x32,IM_STATE_OUT_TO_LUNCH = 0x42,IM_STATE_LOCAL_FINDING_SERVER = 0x100,IM_STATE_LOCAL_CONNECTING_TO_SERVER = 0x200,IM_STATE_LOCAL_SYNCHRONIZING_WITH_SERVER = 0x300,IM_STATE_LOCAL_DISCONNECTING_FROM_SERVER = 0x400
183  } IM_STATE;
184
185  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0005 {
186    IM_SSTATE_DISCONNECTED = 0,IM_SSTATE_CONNECTING = 1,IM_SSTATE_CONNECTED = 2,IM_SSTATE_DISCONNECTING = 3,IM_SSTATE_ERROR = 4
187  } IM_SSTATE;
188
189  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0006 {
190    MSIM_LIST_CONTACT = 0x1,MSIM_LIST_ALLOW = 0x2,MSIM_LIST_BLOCK = 0x4,MSIM_LIST_REVERSE = 0x8,MSIM_LIST_NOREF = 0x10,
191    MSIM_LIST_SAVE = 0x20,MSIM_LIST_SYSTEM = 0x80
192  } MSIM_LIST_TYPE;
193
194  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0007 {
195    MSIMWND_WS_OVERLAPPED = 0,MSIMWND_WS_TOOL = 1,MSIMWND_WS_POPUP = 2,MSIMWND_WS_DIALOG = 3,MSIMWND_WS_SIZEBOX = 4
196  } MSIMWND_STYLES;
197
198  typedef enum __MIDL___MIDL_itf_msimcsdk_0000_0008 {
199    MSIMWND_SIZE_MAXHIDE = 1,MSIMWND_SIZE_MAXIMIZED = 2,MSIMWND_SIZE_MAXSHOW = 3,MSIMWND_SIZE_MINIMIZED = 4,MSIMWND_SIZE_RESTORED = 5
200  } MSIMWND_SIZE_TYPE;
201
202#define MSIM_LIST_CONTACT 0x00000001
203#define MSIM_LIST_ALLOW 0x00000002
204#define MSIM_LIST_BLOCK 0x00000004
205#define MSIM_LIST_REVERSE 0x00000008
206#define MSIM_LIST_NOREF 0x00000010
207#define MSIM_LIST_SAVE 0x00000020
208#define MSIM_LIST_SYSTEM 0x00000080
209#define MSIM_LIST_CONTACT_STR L"$$Messenger\\Contact"
210#define MSIM_LIST_ALLOW_STR L"$$Messenger\\Allow"
211#define MSIM_LIST_BLOCK_STR L"$$Messenger\\Block"
212#define MSIM_LIST_REVERSE_STR L"$$Messenger\\Reverse"
213
214  extern RPC_IF_HANDLE __MIDL_itf_msimcsdk_0000_v0_0_c_ifspec;
215  extern RPC_IF_HANDLE __MIDL_itf_msimcsdk_0000_v0_0_s_ifspec;
216
217#ifndef __MSIMCliSDKLib_LIBRARY_DEFINED__
218#define __MSIMCliSDKLib_LIBRARY_DEFINED__
219  EXTERN_C const IID LIBID_MSIMCliSDKLib;
220#ifndef __IMSIMHost_INTERFACE_DEFINED__
221#define __IMSIMHost_INTERFACE_DEFINED__
222  EXTERN_C const IID IID_IMSIMHost;
223#if defined(__cplusplus) && !defined(CINTERFACE)
224  struct IMSIMHost : public IDispatch {
225  public:
226    virtual HRESULT WINAPI CreateContext(VARIANT Profile,VARIANT Flags,IDispatch **ppInterface) = 0;
227    virtual HRESULT WINAPI ShowOptions(void) = 0;
228    virtual HRESULT WINAPI get_Profiles(IDispatch **pProfile) = 0;
229    virtual HRESULT WINAPI HostWindow(BSTR bstrControl,__LONG32 lStyle,VARIANT_BOOL fShowOnTaskbar,IDispatch **ppMSIMWnd) = 0;
230    virtual HRESULT WINAPI CreateProfile(BSTR bstrProfile,IDispatch **ppProfile) = 0;
231    virtual HRESULT WINAPI PopupMessage(BSTR bstrMessage,__LONG32 nTimeout,VARIANT_BOOL fClick,__LONG32 *plCookie) = 0;
232    virtual HRESULT WINAPI HostWindowEx(BSTR bstrControl,__LONG32 lStyle,__LONG32 lExStyle,IStream *pStream,IMSIMWindow **ppMSIMWindow,IUnknown **ppUnk,REFIID iidAdvise,IUnknown *punkSink) = 0;
233  };
234#else
235  typedef struct IMSIMHostVtbl {
236    BEGIN_INTERFACE
237      HRESULT (WINAPI *QueryInterface)(IMSIMHost *This,REFIID riid,void **ppvObject);
238      ULONG (WINAPI *AddRef)(IMSIMHost *This);
239      ULONG (WINAPI *Release)(IMSIMHost *This);
240      HRESULT (WINAPI *GetTypeInfoCount)(IMSIMHost *This,UINT *pctinfo);
241      HRESULT (WINAPI *GetTypeInfo)(IMSIMHost *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
242      HRESULT (WINAPI *GetIDsOfNames)(IMSIMHost *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
243      HRESULT (WINAPI *Invoke)(IMSIMHost *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
244      HRESULT (WINAPI *CreateContext)(IMSIMHost *This,VARIANT Profile,VARIANT Flags,IDispatch **ppInterface);
245      HRESULT (WINAPI *ShowOptions)(IMSIMHost *This);
246      HRESULT (WINAPI *get_Profiles)(IMSIMHost *This,IDispatch **pProfile);
247      HRESULT (WINAPI *HostWindow)(IMSIMHost *This,BSTR bstrControl,__LONG32 lStyle,VARIANT_BOOL fShowOnTaskbar,IDispatch **ppMSIMWnd);
248      HRESULT (WINAPI *CreateProfile)(IMSIMHost *This,BSTR bstrProfile,IDispatch **ppProfile);
249      HRESULT (WINAPI *PopupMessage)(IMSIMHost *This,BSTR bstrMessage,__LONG32 nTimeout,VARIANT_BOOL fClick,__LONG32 *plCookie);
250      HRESULT (WINAPI *HostWindowEx)(IMSIMHost *This,BSTR bstrControl,__LONG32 lStyle,__LONG32 lExStyle,IStream *pStream,IMSIMWindow **ppMSIMWindow,IUnknown **ppUnk,REFIID iidAdvise,IUnknown *punkSink);
251    END_INTERFACE
252  } IMSIMHostVtbl;
253  struct IMSIMHost {
254    CONST_VTBL struct IMSIMHostVtbl *lpVtbl;
255  };
256#ifdef COBJMACROS
257#define IMSIMHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
258#define IMSIMHost_AddRef(This) (This)->lpVtbl->AddRef(This)
259#define IMSIMHost_Release(This) (This)->lpVtbl->Release(This)
260#define IMSIMHost_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
261#define IMSIMHost_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
262#define IMSIMHost_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
263#define IMSIMHost_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
264#define IMSIMHost_CreateContext(This,Profile,Flags,ppInterface) (This)->lpVtbl->CreateContext(This,Profile,Flags,ppInterface)
265#define IMSIMHost_ShowOptions(This) (This)->lpVtbl->ShowOptions(This)
266#define IMSIMHost_get_Profiles(This,pProfile) (This)->lpVtbl->get_Profiles(This,pProfile)
267#define IMSIMHost_HostWindow(This,bstrControl,lStyle,fShowOnTaskbar,ppMSIMWnd) (This)->lpVtbl->HostWindow(This,bstrControl,lStyle,fShowOnTaskbar,ppMSIMWnd)
268#define IMSIMHost_CreateProfile(This,bstrProfile,ppProfile) (This)->lpVtbl->CreateProfile(This,bstrProfile,ppProfile)
269#define IMSIMHost_PopupMessage(This,bstrMessage,nTimeout,fClick,plCookie) (This)->lpVtbl->PopupMessage(This,bstrMessage,nTimeout,fClick,plCookie)
270#define IMSIMHost_HostWindowEx(This,bstrControl,lStyle,lExStyle,pStream,ppMSIMWindow,ppUnk,iidAdvise,punkSink) (This)->lpVtbl->HostWindowEx(This,bstrControl,lStyle,lExStyle,pStream,ppMSIMWindow,ppUnk,iidAdvise,punkSink)
271#endif
272#endif
273  HRESULT WINAPI IMSIMHost_CreateContext_Proxy(IMSIMHost *This,VARIANT Profile,VARIANT Flags,IDispatch **ppInterface);
274  void __RPC_STUB IMSIMHost_CreateContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
275  HRESULT WINAPI IMSIMHost_ShowOptions_Proxy(IMSIMHost *This);
276  void __RPC_STUB IMSIMHost_ShowOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
277  HRESULT WINAPI IMSIMHost_get_Profiles_Proxy(IMSIMHost *This,IDispatch **pProfile);
278  void __RPC_STUB IMSIMHost_get_Profiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
279  HRESULT WINAPI IMSIMHost_HostWindow_Proxy(IMSIMHost *This,BSTR bstrControl,__LONG32 lStyle,VARIANT_BOOL fShowOnTaskbar,IDispatch **ppMSIMWnd);
280  void __RPC_STUB IMSIMHost_HostWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
281  HRESULT WINAPI IMSIMHost_CreateProfile_Proxy(IMSIMHost *This,BSTR bstrProfile,IDispatch **ppProfile);
282  void __RPC_STUB IMSIMHost_CreateProfile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
283  HRESULT WINAPI IMSIMHost_PopupMessage_Proxy(IMSIMHost *This,BSTR bstrMessage,__LONG32 nTimeout,VARIANT_BOOL fClick,__LONG32 *plCookie);
284  void __RPC_STUB IMSIMHost_PopupMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
285  HRESULT WINAPI IMSIMHost_HostWindowEx_Proxy(IMSIMHost *This,BSTR bstrControl,__LONG32 lStyle,__LONG32 lExStyle,IStream *pStream,IMSIMWindow **ppMSIMWindow,IUnknown **ppUnk,REFIID iidAdvise,IUnknown *punkSink);
286  void __RPC_STUB IMSIMHost_HostWindowEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
287#endif
288
289#ifndef __DMSIMHostEvents_DISPINTERFACE_DEFINED__
290#define __DMSIMHostEvents_DISPINTERFACE_DEFINED__
291  EXTERN_C const IID DIID_DMSIMHostEvents;
292#if defined(__cplusplus) && !defined(CINTERFACE)
293  struct DMSIMHostEvents : public IDispatch {
294  };
295#else
296  typedef struct DMSIMHostEventsVtbl {
297    BEGIN_INTERFACE
298      HRESULT (WINAPI *QueryInterface)(DMSIMHostEvents *This,REFIID riid,void **ppvObject);
299      ULONG (WINAPI *AddRef)(DMSIMHostEvents *This);
300      ULONG (WINAPI *Release)(DMSIMHostEvents *This);
301      HRESULT (WINAPI *GetTypeInfoCount)(DMSIMHostEvents *This,UINT *pctinfo);
302      HRESULT (WINAPI *GetTypeInfo)(DMSIMHostEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
303      HRESULT (WINAPI *GetIDsOfNames)(DMSIMHostEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
304      HRESULT (WINAPI *Invoke)(DMSIMHostEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
305    END_INTERFACE
306  } DMSIMHostEventsVtbl;
307  struct DMSIMHostEvents {
308    CONST_VTBL struct DMSIMHostEventsVtbl *lpVtbl;
309  };
310#ifdef COBJMACROS
311#define DMSIMHostEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
312#define DMSIMHostEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
313#define DMSIMHostEvents_Release(This) (This)->lpVtbl->Release(This)
314#define DMSIMHostEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
315#define DMSIMHostEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
316#define DMSIMHostEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
317#define DMSIMHostEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
318#endif
319#endif
320#endif
321
322#ifndef __IMSIMWindow_INTERFACE_DEFINED__
323#define __IMSIMWindow_INTERFACE_DEFINED__
324  EXTERN_C const IID IID_IMSIMWindow;
325#if defined(__cplusplus) && !defined(CINTERFACE)
326
327  struct IMSIMWindow : public IDispatch {
328  public:
329    virtual HRESULT WINAPI get_Object(IDispatch **ppDisp) = 0;
330    virtual HRESULT WINAPI Move(__LONG32 nX,__LONG32 nY,__LONG32 nWidth,__LONG32 nHeight) = 0;
331    virtual HRESULT WINAPI Focus(void) = 0;
332    virtual HRESULT WINAPI Show(void) = 0;
333    virtual HRESULT WINAPI Hide(void) = 0;
334    virtual HRESULT WINAPI get_Title(BSTR *pVal) = 0;
335    virtual HRESULT WINAPI put_Title(BSTR newVal) = 0;
336    virtual HRESULT WINAPI Close(void) = 0;
337    virtual HRESULT WINAPI get_HasFocus(VARIANT_BOOL *pVal) = 0;
338    virtual HRESULT WINAPI get_IsVisible(VARIANT_BOOL *pVal) = 0;
339    virtual HRESULT WINAPI GetPosition(VARIANT *pvarX,VARIANT *pvarY,VARIANT *pvarWidth,VARIANT *pvarHeight) = 0;
340    virtual HRESULT WINAPI get_TopMost(VARIANT_BOOL *pVal) = 0;
341    virtual HRESULT WINAPI put_TopMost(VARIANT_BOOL newVal) = 0;
342    virtual HRESULT WINAPI get_Window(__LONG32 *pVal) = 0;
343  };
344#else
345  typedef struct IMSIMWindowVtbl {
346    BEGIN_INTERFACE
347      HRESULT (WINAPI *QueryInterface)(IMSIMWindow *This,REFIID riid,void **ppvObject);
348      ULONG (WINAPI *AddRef)(IMSIMWindow *This);
349      ULONG (WINAPI *Release)(IMSIMWindow *This);
350      HRESULT (WINAPI *GetTypeInfoCount)(IMSIMWindow *This,UINT *pctinfo);
351      HRESULT (WINAPI *GetTypeInfo)(IMSIMWindow *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
352      HRESULT (WINAPI *GetIDsOfNames)(IMSIMWindow *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
353      HRESULT (WINAPI *Invoke)(IMSIMWindow *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
354      HRESULT (WINAPI *get_Object)(IMSIMWindow *This,IDispatch **ppDisp);
355      HRESULT (WINAPI *Move)(IMSIMWindow *This,__LONG32 nX,__LONG32 nY,__LONG32 nWidth,__LONG32 nHeight);
356      HRESULT (WINAPI *Focus)(IMSIMWindow *This);
357      HRESULT (WINAPI *Show)(IMSIMWindow *This);
358      HRESULT (WINAPI *Hide)(IMSIMWindow *This);
359      HRESULT (WINAPI *get_Title)(IMSIMWindow *This,BSTR *pVal);
360      HRESULT (WINAPI *put_Title)(IMSIMWindow *This,BSTR newVal);
361      HRESULT (WINAPI *Close)(IMSIMWindow *This);
362      HRESULT (WINAPI *get_HasFocus)(IMSIMWindow *This,VARIANT_BOOL *pVal);
363      HRESULT (WINAPI *get_IsVisible)(IMSIMWindow *This,VARIANT_BOOL *pVal);
364      HRESULT (WINAPI *GetPosition)(IMSIMWindow *This,VARIANT *pvarX,VARIANT *pvarY,VARIANT *pvarWidth,VARIANT *pvarHeight);
365      HRESULT (WINAPI *get_TopMost)(IMSIMWindow *This,VARIANT_BOOL *pVal);
366      HRESULT (WINAPI *put_TopMost)(IMSIMWindow *This,VARIANT_BOOL newVal);
367      HRESULT (WINAPI *get_Window)(IMSIMWindow *This,__LONG32 *pVal);
368    END_INTERFACE
369  } IMSIMWindowVtbl;
370  struct IMSIMWindow {
371    CONST_VTBL struct IMSIMWindowVtbl *lpVtbl;
372  };
373#ifdef COBJMACROS
374#define IMSIMWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
375#define IMSIMWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
376#define IMSIMWindow_Release(This) (This)->lpVtbl->Release(This)
377#define IMSIMWindow_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
378#define IMSIMWindow_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
379#define IMSIMWindow_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
380#define IMSIMWindow_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
381#define IMSIMWindow_get_Object(This,ppDisp) (This)->lpVtbl->get_Object(This,ppDisp)
382#define IMSIMWindow_Move(This,nX,nY,nWidth,nHeight) (This)->lpVtbl->Move(This,nX,nY,nWidth,nHeight)
383#define IMSIMWindow_Focus(This) (This)->lpVtbl->Focus(This)
384#define IMSIMWindow_Show(This) (This)->lpVtbl->Show(This)
385#define IMSIMWindow_Hide(This) (This)->lpVtbl->Hide(This)
386#define IMSIMWindow_get_Title(This,pVal) (This)->lpVtbl->get_Title(This,pVal)
387#define IMSIMWindow_put_Title(This,newVal) (This)->lpVtbl->put_Title(This,newVal)
388#define IMSIMWindow_Close(This) (This)->lpVtbl->Close(This)
389#define IMSIMWindow_get_HasFocus(This,pVal) (This)->lpVtbl->get_HasFocus(This,pVal)
390#define IMSIMWindow_get_IsVisible(This,pVal) (This)->lpVtbl->get_IsVisible(This,pVal)
391#define IMSIMWindow_GetPosition(This,pvarX,pvarY,pvarWidth,pvarHeight) (This)->lpVtbl->GetPosition(This,pvarX,pvarY,pvarWidth,pvarHeight)
392#define IMSIMWindow_get_TopMost(This,pVal) (This)->lpVtbl->get_TopMost(This,pVal)
393#define IMSIMWindow_put_TopMost(This,newVal) (This)->lpVtbl->put_TopMost(This,newVal)
394#define IMSIMWindow_get_Window(This,pVal) (This)->lpVtbl->get_Window(This,pVal)
395#endif
396#endif
397  HRESULT WINAPI IMSIMWindow_get_Object_Proxy(IMSIMWindow *This,IDispatch **ppDisp);
398  void __RPC_STUB IMSIMWindow_get_Object_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
399  HRESULT WINAPI IMSIMWindow_Move_Proxy(IMSIMWindow *This,__LONG32 nX,__LONG32 nY,__LONG32 nWidth,__LONG32 nHeight);
400  void __RPC_STUB IMSIMWindow_Move_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
401  HRESULT WINAPI IMSIMWindow_Focus_Proxy(IMSIMWindow *This);
402  void __RPC_STUB IMSIMWindow_Focus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
403  HRESULT WINAPI IMSIMWindow_Show_Proxy(IMSIMWindow *This);
404  void __RPC_STUB IMSIMWindow_Show_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
405  HRESULT WINAPI IMSIMWindow_Hide_Proxy(IMSIMWindow *This);
406  void __RPC_STUB IMSIMWindow_Hide_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
407  HRESULT WINAPI IMSIMWindow_get_Title_Proxy(IMSIMWindow *This,BSTR *pVal);
408  void __RPC_STUB IMSIMWindow_get_Title_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
409  HRESULT WINAPI IMSIMWindow_put_Title_Proxy(IMSIMWindow *This,BSTR newVal);
410  void __RPC_STUB IMSIMWindow_put_Title_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
411  HRESULT WINAPI IMSIMWindow_Close_Proxy(IMSIMWindow *This);
412  void __RPC_STUB IMSIMWindow_Close_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
413  HRESULT WINAPI IMSIMWindow_get_HasFocus_Proxy(IMSIMWindow *This,VARIANT_BOOL *pVal);
414  void __RPC_STUB IMSIMWindow_get_HasFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
415  HRESULT WINAPI IMSIMWindow_get_IsVisible_Proxy(IMSIMWindow *This,VARIANT_BOOL *pVal);
416  void __RPC_STUB IMSIMWindow_get_IsVisible_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
417  HRESULT WINAPI IMSIMWindow_GetPosition_Proxy(IMSIMWindow *This,VARIANT *pvarX,VARIANT *pvarY,VARIANT *pvarWidth,VARIANT *pvarHeight);
418  void __RPC_STUB IMSIMWindow_GetPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
419  HRESULT WINAPI IMSIMWindow_get_TopMost_Proxy(IMSIMWindow *This,VARIANT_BOOL *pVal);
420  void __RPC_STUB IMSIMWindow_get_TopMost_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
421  HRESULT WINAPI IMSIMWindow_put_TopMost_Proxy(IMSIMWindow *This,VARIANT_BOOL newVal);
422  void __RPC_STUB IMSIMWindow_put_TopMost_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
423  HRESULT WINAPI IMSIMWindow_get_Window_Proxy(IMSIMWindow *This,__LONG32 *pVal);
424  void __RPC_STUB IMSIMWindow_get_Window_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
425#endif
426
427#ifndef __DMSIMWindowEvents_DISPINTERFACE_DEFINED__
428#define __DMSIMWindowEvents_DISPINTERFACE_DEFINED__
429  EXTERN_C const IID DIID_DMSIMWindowEvents;
430#if defined(__cplusplus) && !defined(CINTERFACE)
431  struct DMSIMWindowEvents : public IDispatch {
432  };
433#else
434  typedef struct DMSIMWindowEventsVtbl {
435    BEGIN_INTERFACE
436      HRESULT (WINAPI *QueryInterface)(DMSIMWindowEvents *This,REFIID riid,void **ppvObject);
437      ULONG (WINAPI *AddRef)(DMSIMWindowEvents *This);
438      ULONG (WINAPI *Release)(DMSIMWindowEvents *This);
439      HRESULT (WINAPI *GetTypeInfoCount)(DMSIMWindowEvents *This,UINT *pctinfo);
440      HRESULT (WINAPI *GetTypeInfo)(DMSIMWindowEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
441      HRESULT (WINAPI *GetIDsOfNames)(DMSIMWindowEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
442      HRESULT (WINAPI *Invoke)(DMSIMWindowEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
443    END_INTERFACE
444  } DMSIMWindowEventsVtbl;
445  struct DMSIMWindowEvents {
446    CONST_VTBL struct DMSIMWindowEventsVtbl *lpVtbl;
447  };
448#ifdef COBJMACROS
449#define DMSIMWindowEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
450#define DMSIMWindowEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
451#define DMSIMWindowEvents_Release(This) (This)->lpVtbl->Release(This)
452#define DMSIMWindowEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
453#define DMSIMWindowEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
454#define DMSIMWindowEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
455#define DMSIMWindowEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
456#endif
457#endif
458#endif
459
460#ifndef __IIMService_INTERFACE_DEFINED__
461#define __IIMService_INTERFACE_DEFINED__
462  EXTERN_C const IID IID_IIMService;
463#if defined(__cplusplus) && !defined(CINTERFACE)
464  struct IIMService : public IDispatch {
465  public:
466    virtual HRESULT WINAPI get_Server(BSTR *pbstrName) = 0;
467    virtual HRESULT WINAPI get_IMAddress(BSTR *pbstrName) = 0;
468    virtual HRESULT WINAPI put_FriendlyName(BSTR bstrName) = 0;
469    virtual HRESULT WINAPI get_FriendlyName(BSTR *pbstrName) = 0;
470    virtual HRESULT WINAPI Logoff(void) = 0;
471    virtual HRESULT WINAPI FindContact(BSTR bstrFirstName,BSTR bstrLastName,BSTR bstrAlias,BSTR bstrCity,BSTR bstrState,BSTR bstrCountry,LONG *plCookie) = 0;
472    virtual HRESULT WINAPI Logon(VARIANT varParameter) = 0;
473    virtual HRESULT WINAPI CreateContact(BSTR bstrAlias,IDispatch **ppContact) = 0;
474    virtual HRESULT WINAPI SetLocalState(__LONG32 lState,BSTR bstrDescription,VARIANT varData) = 0;
475    virtual HRESULT WINAPI GetLocalState(VARIANT *pvarState,VARIANT *pvarDescription,VARIANT *pvarData) = 0;
476    virtual HRESULT WINAPI CreateIMSession(VARIANT varIMContact,IDispatch **ppIMSession) = 0;
477    virtual HRESULT WINAPI get_IMSessions(IDispatch **ppIMSessions) = 0;
478    virtual HRESULT WINAPI NewList(BSTR bstrListName,__LONG32 bfProperties,IDispatch **ppList) = 0;
479    virtual HRESULT WINAPI List(BSTR bstrListName,IDispatch **ppList) = 0;
480    virtual HRESULT WINAPI RemoveList(BSTR bstrListName) = 0;
481    virtual HRESULT WINAPI SendNetMeetingInvite(VARIANT varContact,__LONG32 lInviteCookie,__LONG32 *plSendCookie) = 0;
482    virtual HRESULT WINAPI SendNetMeetingAccept(VARIANT varContact,__LONG32 lInviteCookie,__LONG32 lInviteType,__LONG32 *plSendCookie) = 0;
483    virtual HRESULT WINAPI SendNetMeetingCancel(VARIANT varContact,__LONG32 lInviteCookie,__LONG32 hrReason,__LONG32 *plSendCookie) = 0;
484    virtual HRESULT WINAPI get_BlockByDefault(VARIANT_BOOL *pVal) = 0;
485    virtual HRESULT WINAPI put_BlockByDefault(VARIANT_BOOL newVal) = 0;
486  };
487#else
488  typedef struct IIMServiceVtbl {
489    BEGIN_INTERFACE
490      HRESULT (WINAPI *QueryInterface)(IIMService *This,REFIID riid,void **ppvObject);
491      ULONG (WINAPI *AddRef)(IIMService *This);
492      ULONG (WINAPI *Release)(IIMService *This);
493      HRESULT (WINAPI *GetTypeInfoCount)(IIMService *This,UINT *pctinfo);
494      HRESULT (WINAPI *GetTypeInfo)(IIMService *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
495      HRESULT (WINAPI *GetIDsOfNames)(IIMService *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
496      HRESULT (WINAPI *Invoke)(IIMService *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
497      HRESULT (WINAPI *get_Server)(IIMService *This,BSTR *pbstrName);
498      HRESULT (WINAPI *get_IMAddress)(IIMService *This,BSTR *pbstrName);
499      HRESULT (WINAPI *put_FriendlyName)(IIMService *This,BSTR bstrName);
500      HRESULT (WINAPI *get_FriendlyName)(IIMService *This,BSTR *pbstrName);
501      HRESULT (WINAPI *Logoff)(IIMService *This);
502      HRESULT (WINAPI *FindContact)(IIMService *This,BSTR bstrFirstName,BSTR bstrLastName,BSTR bstrAlias,BSTR bstrCity,BSTR bstrState,BSTR bstrCountry,LONG *plCookie);
503      HRESULT (WINAPI *Logon)(IIMService *This,VARIANT varParameter);
504      HRESULT (WINAPI *CreateContact)(IIMService *This,BSTR bstrAlias,IDispatch **ppContact);
505      HRESULT (WINAPI *SetLocalState)(IIMService *This,__LONG32 lState,BSTR bstrDescription,VARIANT varData);
506      HRESULT (WINAPI *GetLocalState)(IIMService *This,VARIANT *pvarState,VARIANT *pvarDescription,VARIANT *pvarData);
507      HRESULT (WINAPI *CreateIMSession)(IIMService *This,VARIANT varIMContact,IDispatch **ppIMSession);
508      HRESULT (WINAPI *get_IMSessions)(IIMService *This,IDispatch **ppIMSessions);
509      HRESULT (WINAPI *NewList)(IIMService *This,BSTR bstrListName,__LONG32 bfProperties,IDispatch **ppList);
510      HRESULT (WINAPI *List)(IIMService *This,BSTR bstrListName,IDispatch **ppList);
511      HRESULT (WINAPI *RemoveList)(IIMService *This,BSTR bstrListName);
512      HRESULT (WINAPI *SendNetMeetingInvite)(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 *plSendCookie);
513      HRESULT (WINAPI *SendNetMeetingAccept)(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 lInviteType,__LONG32 *plSendCookie);
514      HRESULT (WINAPI *SendNetMeetingCancel)(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 hrReason,__LONG32 *plSendCookie);
515      HRESULT (WINAPI *get_BlockByDefault)(IIMService *This,VARIANT_BOOL *pVal);
516      HRESULT (WINAPI *put_BlockByDefault)(IIMService *This,VARIANT_BOOL newVal);
517    END_INTERFACE
518  } IIMServiceVtbl;
519  struct IIMService {
520    CONST_VTBL struct IIMServiceVtbl *lpVtbl;
521  };
522#ifdef COBJMACROS
523#define IIMService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
524#define IIMService_AddRef(This) (This)->lpVtbl->AddRef(This)
525#define IIMService_Release(This) (This)->lpVtbl->Release(This)
526#define IIMService_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
527#define IIMService_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
528#define IIMService_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
529#define IIMService_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
530#define IIMService_get_Server(This,pbstrName) (This)->lpVtbl->get_Server(This,pbstrName)
531#define IIMService_get_IMAddress(This,pbstrName) (This)->lpVtbl->get_IMAddress(This,pbstrName)
532#define IIMService_put_FriendlyName(This,bstrName) (This)->lpVtbl->put_FriendlyName(This,bstrName)
533#define IIMService_get_FriendlyName(This,pbstrName) (This)->lpVtbl->get_FriendlyName(This,pbstrName)
534#define IIMService_Logoff(This) (This)->lpVtbl->Logoff(This)
535#define IIMService_FindContact(This,bstrFirstName,bstrLastName,bstrAlias,bstrCity,bstrState,bstrCountry,plCookie) (This)->lpVtbl->FindContact(This,bstrFirstName,bstrLastName,bstrAlias,bstrCity,bstrState,bstrCountry,plCookie)
536#define IIMService_Logon(This,varParameter) (This)->lpVtbl->Logon(This,varParameter)
537#define IIMService_CreateContact(This,bstrAlias,ppContact) (This)->lpVtbl->CreateContact(This,bstrAlias,ppContact)
538#define IIMService_SetLocalState(This,lState,bstrDescription,varData) (This)->lpVtbl->SetLocalState(This,lState,bstrDescription,varData)
539#define IIMService_GetLocalState(This,pvarState,pvarDescription,pvarData) (This)->lpVtbl->GetLocalState(This,pvarState,pvarDescription,pvarData)
540#define IIMService_CreateIMSession(This,varIMContact,ppIMSession) (This)->lpVtbl->CreateIMSession(This,varIMContact,ppIMSession)
541#define IIMService_get_IMSessions(This,ppIMSessions) (This)->lpVtbl->get_IMSessions(This,ppIMSessions)
542#define IIMService_NewList(This,bstrListName,bfProperties,ppList) (This)->lpVtbl->NewList(This,bstrListName,bfProperties,ppList)
543#define IIMService_List(This,bstrListName,ppList) (This)->lpVtbl->List(This,bstrListName,ppList)
544#define IIMService_RemoveList(This,bstrListName) (This)->lpVtbl->RemoveList(This,bstrListName)
545#define IIMService_SendNetMeetingInvite(This,varContact,lInviteCookie,plSendCookie) (This)->lpVtbl->SendNetMeetingInvite(This,varContact,lInviteCookie,plSendCookie)
546#define IIMService_SendNetMeetingAccept(This,varContact,lInviteCookie,lInviteType,plSendCookie) (This)->lpVtbl->SendNetMeetingAccept(This,varContact,lInviteCookie,lInviteType,plSendCookie)
547#define IIMService_SendNetMeetingCancel(This,varContact,lInviteCookie,hrReason,plSendCookie) (This)->lpVtbl->SendNetMeetingCancel(This,varContact,lInviteCookie,hrReason,plSendCookie)
548#define IIMService_get_BlockByDefault(This,pVal) (This)->lpVtbl->get_BlockByDefault(This,pVal)
549#define IIMService_put_BlockByDefault(This,newVal) (This)->lpVtbl->put_BlockByDefault(This,newVal)
550#endif
551#endif
552  HRESULT WINAPI IIMService_get_Server_Proxy(IIMService *This,BSTR *pbstrName);
553  void __RPC_STUB IIMService_get_Server_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
554  HRESULT WINAPI IIMService_get_IMAddress_Proxy(IIMService *This,BSTR *pbstrName);
555  void __RPC_STUB IIMService_get_IMAddress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
556  HRESULT WINAPI IIMService_put_FriendlyName_Proxy(IIMService *This,BSTR bstrName);
557  void __RPC_STUB IIMService_put_FriendlyName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
558  HRESULT WINAPI IIMService_get_FriendlyName_Proxy(IIMService *This,BSTR *pbstrName);
559  void __RPC_STUB IIMService_get_FriendlyName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
560  HRESULT WINAPI IIMService_Logoff_Proxy(IIMService *This);
561  void __RPC_STUB IIMService_Logoff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
562  HRESULT WINAPI IIMService_FindContact_Proxy(IIMService *This,BSTR bstrFirstName,BSTR bstrLastName,BSTR bstrAlias,BSTR bstrCity,BSTR bstrState,BSTR bstrCountry,LONG *plCookie);
563  void __RPC_STUB IIMService_FindContact_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
564  HRESULT WINAPI IIMService_Logon_Proxy(IIMService *This,VARIANT varParameter);
565  void __RPC_STUB IIMService_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
566  HRESULT WINAPI IIMService_CreateContact_Proxy(IIMService *This,BSTR bstrAlias,IDispatch **ppContact);
567  void __RPC_STUB IIMService_CreateContact_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
568  HRESULT WINAPI IIMService_SetLocalState_Proxy(IIMService *This,__LONG32 lState,BSTR bstrDescription,VARIANT varData);
569  void __RPC_STUB IIMService_SetLocalState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
570  HRESULT WINAPI IIMService_GetLocalState_Proxy(IIMService *This,VARIANT *pvarState,VARIANT *pvarDescription,VARIANT *pvarData);
571  void __RPC_STUB IIMService_GetLocalState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
572  HRESULT WINAPI IIMService_CreateIMSession_Proxy(IIMService *This,VARIANT varIMContact,IDispatch **ppIMSession);
573  void __RPC_STUB IIMService_CreateIMSession_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
574  HRESULT WINAPI IIMService_get_IMSessions_Proxy(IIMService *This,IDispatch **ppIMSessions);
575  void __RPC_STUB IIMService_get_IMSessions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
576  HRESULT WINAPI IIMService_NewList_Proxy(IIMService *This,BSTR bstrListName,__LONG32 bfProperties,IDispatch **ppList);
577  void __RPC_STUB IIMService_NewList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
578  HRESULT WINAPI IIMService_List_Proxy(IIMService *This,BSTR bstrListName,IDispatch **ppList);
579  void __RPC_STUB IIMService_List_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
580  HRESULT WINAPI IIMService_RemoveList_Proxy(IIMService *This,BSTR bstrListName);
581  void __RPC_STUB IIMService_RemoveList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
582  HRESULT WINAPI IIMService_SendNetMeetingInvite_Proxy(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 *plSendCookie);
583  void __RPC_STUB IIMService_SendNetMeetingInvite_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
584  HRESULT WINAPI IIMService_SendNetMeetingAccept_Proxy(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 lInviteType,__LONG32 *plSendCookie);
585  void __RPC_STUB IIMService_SendNetMeetingAccept_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
586  HRESULT WINAPI IIMService_SendNetMeetingCancel_Proxy(IIMService *This,VARIANT varContact,__LONG32 lInviteCookie,__LONG32 hrReason,__LONG32 *plSendCookie);
587  void __RPC_STUB IIMService_SendNetMeetingCancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
588  HRESULT WINAPI IIMService_get_BlockByDefault_Proxy(IIMService *This,VARIANT_BOOL *pVal);
589  void __RPC_STUB IIMService_get_BlockByDefault_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
590  HRESULT WINAPI IIMService_put_BlockByDefault_Proxy(IIMService *This,VARIANT_BOOL newVal);
591  void __RPC_STUB IIMService_put_BlockByDefault_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
592#endif
593
594#ifndef __DIMServiceEvents_DISPINTERFACE_DEFINED__
595#define __DIMServiceEvents_DISPINTERFACE_DEFINED__
596  EXTERN_C const IID DIID_DIMServiceEvents;
597#if defined(__cplusplus) && !defined(CINTERFACE)
598  struct DIMServiceEvents : public IDispatch {
599  };
600#else
601  typedef struct DIMServiceEventsVtbl {
602    BEGIN_INTERFACE
603      HRESULT (WINAPI *QueryInterface)(DIMServiceEvents *This,REFIID riid,void **ppvObject);
604      ULONG (WINAPI *AddRef)(DIMServiceEvents *This);
605      ULONG (WINAPI *Release)(DIMServiceEvents *This);
606      HRESULT (WINAPI *GetTypeInfoCount)(DIMServiceEvents *This,UINT *pctinfo);
607      HRESULT (WINAPI *GetTypeInfo)(DIMServiceEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
608      HRESULT (WINAPI *GetIDsOfNames)(DIMServiceEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
609      HRESULT (WINAPI *Invoke)(DIMServiceEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
610    END_INTERFACE
611  } DIMServiceEventsVtbl;
612  struct DIMServiceEvents {
613    CONST_VTBL struct DIMServiceEventsVtbl *lpVtbl;
614  };
615#ifdef COBJMACROS
616#define DIMServiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
617#define DIMServiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
618#define DIMServiceEvents_Release(This) (This)->lpVtbl->Release(This)
619#define DIMServiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
620#define DIMServiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
621#define DIMServiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
622#define DIMServiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
623#endif
624#endif
625#endif
626
627#ifndef __IIMContact_INTERFACE_DEFINED__
628#define __IIMContact_INTERFACE_DEFINED__
629  EXTERN_C const IID IID_IIMContact;
630#if defined(__cplusplus) && !defined(CINTERFACE)
631  struct IIMContact : public IDispatch {
632  public:
633    virtual HRESULT WINAPI put_FriendlyName(BSTR bstrFriendlyName) = 0;
634    virtual HRESULT WINAPI get_FriendlyName(BSTR *pbstrFriendlyName) = 0;
635    virtual HRESULT WINAPI get_EmailAddress(BSTR *pbstrEmailAddress) = 0;
636    virtual HRESULT WINAPI get_State(IM_STATE *pmState) = 0;
637    virtual HRESULT WINAPI get_LogonName(BSTR *pbstrLogonName) = 0;
638    virtual HRESULT WINAPI SendText(BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie) = 0;
639    virtual HRESULT WINAPI get_Service(IDispatch **ppService) = 0;
640  };
641#else
642  typedef struct IIMContactVtbl {
643    BEGIN_INTERFACE
644      HRESULT (WINAPI *QueryInterface)(IIMContact *This,REFIID riid,void **ppvObject);
645      ULONG (WINAPI *AddRef)(IIMContact *This);
646      ULONG (WINAPI *Release)(IIMContact *This);
647      HRESULT (WINAPI *GetTypeInfoCount)(IIMContact *This,UINT *pctinfo);
648      HRESULT (WINAPI *GetTypeInfo)(IIMContact *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
649      HRESULT (WINAPI *GetIDsOfNames)(IIMContact *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
650      HRESULT (WINAPI *Invoke)(IIMContact *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
651      HRESULT (WINAPI *put_FriendlyName)(IIMContact *This,BSTR bstrFriendlyName);
652      HRESULT (WINAPI *get_FriendlyName)(IIMContact *This,BSTR *pbstrFriendlyName);
653      HRESULT (WINAPI *get_EmailAddress)(IIMContact *This,BSTR *pbstrEmailAddress);
654      HRESULT (WINAPI *get_State)(IIMContact *This,IM_STATE *pmState);
655      HRESULT (WINAPI *get_LogonName)(IIMContact *This,BSTR *pbstrLogonName);
656      HRESULT (WINAPI *SendText)(IIMContact *This,BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie);
657      HRESULT (WINAPI *get_Service)(IIMContact *This,IDispatch **ppService);
658    END_INTERFACE
659  } IIMContactVtbl;
660  struct IIMContact {
661    CONST_VTBL struct IIMContactVtbl *lpVtbl;
662  };
663#ifdef COBJMACROS
664#define IIMContact_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
665#define IIMContact_AddRef(This) (This)->lpVtbl->AddRef(This)
666#define IIMContact_Release(This) (This)->lpVtbl->Release(This)
667#define IIMContact_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
668#define IIMContact_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
669#define IIMContact_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
670#define IIMContact_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
671#define IIMContact_put_FriendlyName(This,bstrFriendlyName) (This)->lpVtbl->put_FriendlyName(This,bstrFriendlyName)
672#define IIMContact_get_FriendlyName(This,pbstrFriendlyName) (This)->lpVtbl->get_FriendlyName(This,pbstrFriendlyName)
673#define IIMContact_get_EmailAddress(This,pbstrEmailAddress) (This)->lpVtbl->get_EmailAddress(This,pbstrEmailAddress)
674#define IIMContact_get_State(This,pmState) (This)->lpVtbl->get_State(This,pmState)
675#define IIMContact_get_LogonName(This,pbstrLogonName) (This)->lpVtbl->get_LogonName(This,pbstrLogonName)
676#define IIMContact_SendText(This,bstrMsgHeader,bstrMsgText,MsgType,plCookie) (This)->lpVtbl->SendText(This,bstrMsgHeader,bstrMsgText,MsgType,plCookie)
677#define IIMContact_get_Service(This,ppService) (This)->lpVtbl->get_Service(This,ppService)
678#endif
679#endif
680  HRESULT WINAPI IIMContact_put_FriendlyName_Proxy(IIMContact *This,BSTR bstrFriendlyName);
681  void __RPC_STUB IIMContact_put_FriendlyName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
682  HRESULT WINAPI IIMContact_get_FriendlyName_Proxy(IIMContact *This,BSTR *pbstrFriendlyName);
683  void __RPC_STUB IIMContact_get_FriendlyName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
684  HRESULT WINAPI IIMContact_get_EmailAddress_Proxy(IIMContact *This,BSTR *pbstrEmailAddress);
685  void __RPC_STUB IIMContact_get_EmailAddress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
686  HRESULT WINAPI IIMContact_get_State_Proxy(IIMContact *This,IM_STATE *pmState);
687  void __RPC_STUB IIMContact_get_State_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
688  HRESULT WINAPI IIMContact_get_LogonName_Proxy(IIMContact *This,BSTR *pbstrLogonName);
689  void __RPC_STUB IIMContact_get_LogonName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
690  HRESULT WINAPI IIMContact_SendText_Proxy(IIMContact *This,BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie);
691  void __RPC_STUB IIMContact_SendText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
692  HRESULT WINAPI IIMContact_get_Service_Proxy(IIMContact *This,IDispatch **ppService);
693  void __RPC_STUB IIMContact_get_Service_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
694#endif
695
696#ifndef __IIMContacts_INTERFACE_DEFINED__
697#define __IIMContacts_INTERFACE_DEFINED__
698  EXTERN_C const IID IID_IIMContacts;
699#if defined(__cplusplus) && !defined(CINTERFACE)
700  struct IIMContacts : public IDispatch {
701  public:
702    virtual HRESULT WINAPI Item(VARIANT varItem,IDispatch **ppContact) = 0;
703    virtual HRESULT WINAPI get_Count(__LONG32 *pVal) = 0;
704    virtual HRESULT WINAPI Add(IDispatch *pContact) = 0;
705    virtual HRESULT WINAPI Remove(IDispatch *pContact) = 0;
706    virtual HRESULT WINAPI get_Name(BSTR *pVal) = 0;
707    virtual HRESULT WINAPI put_Name(BSTR newVal) = 0;
708    virtual HRESULT WINAPI get_Properties(__LONG32 *pVal) = 0;
709    virtual HRESULT WINAPI get_Cookie(__LONG32 *pVal) = 0;
710    virtual HRESULT WINAPI get__NewEnum(IUnknown **ppVal) = 0;
711  };
712#else
713  typedef struct IIMContactsVtbl {
714    BEGIN_INTERFACE
715      HRESULT (WINAPI *QueryInterface)(IIMContacts *This,REFIID riid,void **ppvObject);
716      ULONG (WINAPI *AddRef)(IIMContacts *This);
717      ULONG (WINAPI *Release)(IIMContacts *This);
718      HRESULT (WINAPI *GetTypeInfoCount)(IIMContacts *This,UINT *pctinfo);
719      HRESULT (WINAPI *GetTypeInfo)(IIMContacts *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
720      HRESULT (WINAPI *GetIDsOfNames)(IIMContacts *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
721      HRESULT (WINAPI *Invoke)(IIMContacts *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
722      HRESULT (WINAPI *Item)(IIMContacts *This,VARIANT varItem,IDispatch **ppContact);
723      HRESULT (WINAPI *get_Count)(IIMContacts *This,__LONG32 *pVal);
724      HRESULT (WINAPI *Add)(IIMContacts *This,IDispatch *pContact);
725      HRESULT (WINAPI *Remove)(IIMContacts *This,IDispatch *pContact);
726      HRESULT (WINAPI *get_Name)(IIMContacts *This,BSTR *pVal);
727      HRESULT (WINAPI *put_Name)(IIMContacts *This,BSTR newVal);
728      HRESULT (WINAPI *get_Properties)(IIMContacts *This,__LONG32 *pVal);
729      HRESULT (WINAPI *get_Cookie)(IIMContacts *This,__LONG32 *pVal);
730      HRESULT (WINAPI *get__NewEnum)(IIMContacts *This,IUnknown **ppVal);
731    END_INTERFACE
732  } IIMContactsVtbl;
733  struct IIMContacts {
734    CONST_VTBL struct IIMContactsVtbl *lpVtbl;
735  };
736#ifdef COBJMACROS
737#define IIMContacts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
738#define IIMContacts_AddRef(This) (This)->lpVtbl->AddRef(This)
739#define IIMContacts_Release(This) (This)->lpVtbl->Release(This)
740#define IIMContacts_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
741#define IIMContacts_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
742#define IIMContacts_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
743#define IIMContacts_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
744#define IIMContacts_Item(This,varItem,ppContact) (This)->lpVtbl->Item(This,varItem,ppContact)
745#define IIMContacts_get_Count(This,pVal) (This)->lpVtbl->get_Count(This,pVal)
746#define IIMContacts_Add(This,pContact) (This)->lpVtbl->Add(This,pContact)
747#define IIMContacts_Remove(This,pContact) (This)->lpVtbl->Remove(This,pContact)
748#define IIMContacts_get_Name(This,pVal) (This)->lpVtbl->get_Name(This,pVal)
749#define IIMContacts_put_Name(This,newVal) (This)->lpVtbl->put_Name(This,newVal)
750#define IIMContacts_get_Properties(This,pVal) (This)->lpVtbl->get_Properties(This,pVal)
751#define IIMContacts_get_Cookie(This,pVal) (This)->lpVtbl->get_Cookie(This,pVal)
752#define IIMContacts_get__NewEnum(This,ppVal) (This)->lpVtbl->get__NewEnum(This,ppVal)
753#endif
754#endif
755  HRESULT WINAPI IIMContacts_Item_Proxy(IIMContacts *This,VARIANT varItem,IDispatch **ppContact);
756  void __RPC_STUB IIMContacts_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
757  HRESULT WINAPI IIMContacts_get_Count_Proxy(IIMContacts *This,__LONG32 *pVal);
758  void __RPC_STUB IIMContacts_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
759  HRESULT WINAPI IIMContacts_Add_Proxy(IIMContacts *This,IDispatch *pContact);
760  void __RPC_STUB IIMContacts_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
761  HRESULT WINAPI IIMContacts_Remove_Proxy(IIMContacts *This,IDispatch *pContact);
762  void __RPC_STUB IIMContacts_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
763  HRESULT WINAPI IIMContacts_get_Name_Proxy(IIMContacts *This,BSTR *pVal);
764  void __RPC_STUB IIMContacts_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
765  HRESULT WINAPI IIMContacts_put_Name_Proxy(IIMContacts *This,BSTR newVal);
766  void __RPC_STUB IIMContacts_put_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
767  HRESULT WINAPI IIMContacts_get_Properties_Proxy(IIMContacts *This,__LONG32 *pVal);
768  void __RPC_STUB IIMContacts_get_Properties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
769  HRESULT WINAPI IIMContacts_get_Cookie_Proxy(IIMContacts *This,__LONG32 *pVal);
770  void __RPC_STUB IIMContacts_get_Cookie_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
771  HRESULT WINAPI IIMContacts_get__NewEnum_Proxy(IIMContacts *This,IUnknown **ppVal);
772  void __RPC_STUB IIMContacts_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
773#endif
774
775#ifndef __IIMSession_INTERFACE_DEFINED__
776#define __IIMSession_INTERFACE_DEFINED__
777  EXTERN_C const IID IID_IIMSession;
778#if defined(__cplusplus) && !defined(CINTERFACE)
779  struct IIMSession : public IDispatch {
780  public:
781    virtual HRESULT WINAPI get_Members(IDispatch **ppMembers) = 0;
782    virtual HRESULT WINAPI get_State(IM_SSTATE *psState) = 0;
783    virtual HRESULT WINAPI get_Service(IDispatch **ppService) = 0;
784    virtual HRESULT WINAPI get_Invitees(IDispatch **ppInvitees) = 0;
785    virtual HRESULT WINAPI LeaveSession(void) = 0;
786    virtual HRESULT WINAPI InviteContact(VARIANT vContact) = 0;
787    virtual HRESULT WINAPI SendText(BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie) = 0;
788  };
789#else
790  typedef struct IIMSessionVtbl {
791    BEGIN_INTERFACE
792      HRESULT (WINAPI *QueryInterface)(IIMSession *This,REFIID riid,void **ppvObject);
793      ULONG (WINAPI *AddRef)(IIMSession *This);
794      ULONG (WINAPI *Release)(IIMSession *This);
795      HRESULT (WINAPI *GetTypeInfoCount)(IIMSession *This,UINT *pctinfo);
796      HRESULT (WINAPI *GetTypeInfo)(IIMSession *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
797      HRESULT (WINAPI *GetIDsOfNames)(IIMSession *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
798      HRESULT (WINAPI *Invoke)(IIMSession *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
799      HRESULT (WINAPI *get_Members)(IIMSession *This,IDispatch **ppMembers);
800      HRESULT (WINAPI *get_State)(IIMSession *This,IM_SSTATE *psState);
801      HRESULT (WINAPI *get_Service)(IIMSession *This,IDispatch **ppService);
802      HRESULT (WINAPI *get_Invitees)(IIMSession *This,IDispatch **ppInvitees);
803      HRESULT (WINAPI *LeaveSession)(IIMSession *This);
804      HRESULT (WINAPI *InviteContact)(IIMSession *This,VARIANT vContact);
805      HRESULT (WINAPI *SendText)(IIMSession *This,BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie);
806    END_INTERFACE
807  } IIMSessionVtbl;
808  struct IIMSession {
809    CONST_VTBL struct IIMSessionVtbl *lpVtbl;
810  };
811#ifdef COBJMACROS
812#define IIMSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
813#define IIMSession_AddRef(This) (This)->lpVtbl->AddRef(This)
814#define IIMSession_Release(This) (This)->lpVtbl->Release(This)
815#define IIMSession_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
816#define IIMSession_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
817#define IIMSession_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
818#define IIMSession_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
819#define IIMSession_get_Members(This,ppMembers) (This)->lpVtbl->get_Members(This,ppMembers)
820#define IIMSession_get_State(This,psState) (This)->lpVtbl->get_State(This,psState)
821#define IIMSession_get_Service(This,ppService) (This)->lpVtbl->get_Service(This,ppService)
822#define IIMSession_get_Invitees(This,ppInvitees) (This)->lpVtbl->get_Invitees(This,ppInvitees)
823#define IIMSession_LeaveSession(This) (This)->lpVtbl->LeaveSession(This)
824#define IIMSession_InviteContact(This,vContact) (This)->lpVtbl->InviteContact(This,vContact)
825#define IIMSession_SendText(This,bstrMsgHeader,bstrMsgText,MsgType,plCookie) (This)->lpVtbl->SendText(This,bstrMsgHeader,bstrMsgText,MsgType,plCookie)
826#endif
827#endif
828  HRESULT WINAPI IIMSession_get_Members_Proxy(IIMSession *This,IDispatch **ppMembers);
829  void __RPC_STUB IIMSession_get_Members_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
830  HRESULT WINAPI IIMSession_get_State_Proxy(IIMSession *This,IM_SSTATE *psState);
831  void __RPC_STUB IIMSession_get_State_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
832  HRESULT WINAPI IIMSession_get_Service_Proxy(IIMSession *This,IDispatch **ppService);
833  void __RPC_STUB IIMSession_get_Service_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
834  HRESULT WINAPI IIMSession_get_Invitees_Proxy(IIMSession *This,IDispatch **ppInvitees);
835  void __RPC_STUB IIMSession_get_Invitees_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
836  HRESULT WINAPI IIMSession_LeaveSession_Proxy(IIMSession *This);
837  void __RPC_STUB IIMSession_LeaveSession_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
838  HRESULT WINAPI IIMSession_InviteContact_Proxy(IIMSession *This,VARIANT vContact);
839  void __RPC_STUB IIMSession_InviteContact_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
840  HRESULT WINAPI IIMSession_SendText_Proxy(IIMSession *This,BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie);
841  void __RPC_STUB IIMSession_SendText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
842#endif
843
844#ifndef __IIMSessions_INTERFACE_DEFINED__
845#define __IIMSessions_INTERFACE_DEFINED__
846  EXTERN_C const IID IID_IIMSessions;
847#if defined(__cplusplus) && !defined(CINTERFACE)
848  struct IIMSessions : public IDispatch {
849  public:
850    virtual HRESULT WINAPI get_Count(__LONG32 *pcSessions) = 0;
851    virtual HRESULT WINAPI Item(__LONG32 Index,IDispatch **ppIMSession) = 0;
852    virtual HRESULT WINAPI get__NewEnum(IUnknown **ppUnknown) = 0;
853  };
854#else
855  typedef struct IIMSessionsVtbl {
856    BEGIN_INTERFACE
857      HRESULT (WINAPI *QueryInterface)(IIMSessions *This,REFIID riid,void **ppvObject);
858      ULONG (WINAPI *AddRef)(IIMSessions *This);
859      ULONG (WINAPI *Release)(IIMSessions *This);
860      HRESULT (WINAPI *GetTypeInfoCount)(IIMSessions *This,UINT *pctinfo);
861      HRESULT (WINAPI *GetTypeInfo)(IIMSessions *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
862      HRESULT (WINAPI *GetIDsOfNames)(IIMSessions *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
863      HRESULT (WINAPI *Invoke)(IIMSessions *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
864      HRESULT (WINAPI *get_Count)(IIMSessions *This,__LONG32 *pcSessions);
865      HRESULT (WINAPI *Item)(IIMSessions *This,__LONG32 Index,IDispatch **ppIMSession);
866      HRESULT (WINAPI *get__NewEnum)(IIMSessions *This,IUnknown **ppUnknown);
867    END_INTERFACE
868  } IIMSessionsVtbl;
869  struct IIMSessions {
870    CONST_VTBL struct IIMSessionsVtbl *lpVtbl;
871  };
872#ifdef COBJMACROS
873#define IIMSessions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
874#define IIMSessions_AddRef(This) (This)->lpVtbl->AddRef(This)
875#define IIMSessions_Release(This) (This)->lpVtbl->Release(This)
876#define IIMSessions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
877#define IIMSessions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
878#define IIMSessions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
879#define IIMSessions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
880#define IIMSessions_get_Count(This,pcSessions) (This)->lpVtbl->get_Count(This,pcSessions)
881#define IIMSessions_Item(This,Index,ppIMSession) (This)->lpVtbl->Item(This,Index,ppIMSession)
882#define IIMSessions_get__NewEnum(This,ppUnknown) (This)->lpVtbl->get__NewEnum(This,ppUnknown)
883#endif
884#endif
885  HRESULT WINAPI IIMSessions_get_Count_Proxy(IIMSessions *This,__LONG32 *pcSessions);
886  void __RPC_STUB IIMSessions_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
887  HRESULT WINAPI IIMSessions_Item_Proxy(IIMSessions *This,__LONG32 Index,IDispatch **ppIMSession);
888  void __RPC_STUB IIMSessions_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
889  HRESULT WINAPI IIMSessions_get__NewEnum_Proxy(IIMSessions *This,IUnknown **ppUnknown);
890  void __RPC_STUB IIMSessions_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
891#endif
892
893  EXTERN_C const CLSID CLSID_MSIMHost;
894#ifdef __cplusplus
895  class MSIMHost;
896#endif
897  EXTERN_C const CLSID CLSID_MSIMService;
898#ifdef __cplusplus
899  class MSIMService;
900#endif
901  EXTERN_C const CLSID CLSID_MSIMWindow;
902#ifdef __cplusplus
903  class MSIMWindow;
904#endif
905  EXTERN_C const CLSID CLSID_MSIMHostOption;
906#ifdef __cplusplus
907  class MSIMHostOption;
908#endif
909  EXTERN_C const CLSID CLSID_MSIMHostProfiles;
910#ifdef __cplusplus
911  class MSIMHostProfiles;
912#endif
913#endif
914
915#ifdef __cplusplus
916}
917#endif
918#endif
919