Home | History | Annotate | Download | only in include
      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__
     18 typedef struct IMSIMHost IMSIMHost;
     19 #endif
     20 
     21 #ifndef __DMSIMHostEvents_FWD_DEFINED__
     22 #define __DMSIMHostEvents_FWD_DEFINED__
     23 typedef struct DMSIMHostEvents DMSIMHostEvents;
     24 #endif
     25 
     26 #ifndef __IMSIMWindow_FWD_DEFINED__
     27 #define __IMSIMWindow_FWD_DEFINED__
     28 typedef struct IMSIMWindow IMSIMWindow;
     29 #endif
     30 
     31 #ifndef __DMSIMWindowEvents_FWD_DEFINED__
     32 #define __DMSIMWindowEvents_FWD_DEFINED__
     33 typedef struct DMSIMWindowEvents DMSIMWindowEvents;
     34 #endif
     35 
     36 #ifndef __IIMService_FWD_DEFINED__
     37 #define __IIMService_FWD_DEFINED__
     38 typedef struct IIMService IIMService;
     39 #endif
     40 
     41 #ifndef __DIMServiceEvents_FWD_DEFINED__
     42 #define __DIMServiceEvents_FWD_DEFINED__
     43 typedef struct DIMServiceEvents DIMServiceEvents;
     44 #endif
     45 
     46 #ifndef __IIMContact_FWD_DEFINED__
     47 #define __IIMContact_FWD_DEFINED__
     48 typedef struct IIMContact IIMContact;
     49 #endif
     50 
     51 #ifndef __IIMContacts_FWD_DEFINED__
     52 #define __IIMContacts_FWD_DEFINED__
     53 typedef struct IIMContacts IIMContacts;
     54 #endif
     55 
     56 #ifndef __IIMSession_FWD_DEFINED__
     57 #define __IIMSession_FWD_DEFINED__
     58 typedef struct IIMSession IIMSession;
     59 #endif
     60 
     61 #ifndef __IIMSessions_FWD_DEFINED__
     62 #define __IIMSessions_FWD_DEFINED__
     63 typedef struct IIMSessions IIMSessions;
     64 #endif
     65 
     66 #ifndef __MSIMHost_FWD_DEFINED__
     67 #define __MSIMHost_FWD_DEFINED__
     68 #ifdef __cplusplus
     69 typedef class MSIMHost MSIMHost;
     70 #else
     71 typedef struct MSIMHost MSIMHost;
     72 #endif
     73 #endif
     74 
     75 #ifndef __MSIMService_FWD_DEFINED__
     76 #define __MSIMService_FWD_DEFINED__
     77 #ifdef __cplusplus
     78 typedef class MSIMService MSIMService;
     79 #else
     80 typedef struct MSIMService MSIMService;
     81 #endif
     82 #endif
     83 
     84 #ifndef __MSIMWindow_FWD_DEFINED__
     85 #define __MSIMWindow_FWD_DEFINED__
     86 #ifdef __cplusplus
     87 typedef class MSIMWindow MSIMWindow;
     88 #else
     89 typedef struct MSIMWindow MSIMWindow;
     90 #endif
     91 #endif
     92 
     93 #ifndef __MSIMHostOption_FWD_DEFINED__
     94 #define __MSIMHostOption_FWD_DEFINED__
     95 #ifdef __cplusplus
     96 typedef class MSIMHostOption MSIMHostOption;
     97 #else
     98 typedef struct MSIMHostOption MSIMHostOption;
     99 #endif
    100 #endif
    101 
    102 #ifndef __MSIMHostProfiles_FWD_DEFINED__
    103 #define __MSIMHostProfiles_FWD_DEFINED__
    104 #ifdef __cplusplus
    105 typedef class MSIMHostProfiles MSIMHostProfiles;
    106 #else
    107 typedef struct MSIMHostProfiles MSIMHostProfiles;
    108 #endif
    109 #endif
    110 
    111 #include "oaidl.h"
    112 #include "ocidl.h"
    113 
    114 #ifdef __cplusplus
    115 extern "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