#pragma warning( disable: 4049 ) /* more than 64k source lines */ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 6.00.0347 */ /* at Sat Apr 05 15:05:28 2003 */ /* Compiler settings for ActiveXDemo.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 440 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif // __RPCNDR_H_VERSION__ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __ActiveXDemo_h__ #define __ActiveXDemo_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /* Forward Declarations */ #ifndef __IActiveX_FWD_DEFINED__ #define __IActiveX_FWD_DEFINED__ typedef interface IActiveX IActiveX; #endif /* __IActiveX_FWD_DEFINED__ */ #ifndef ___IActiveXEvents_FWD_DEFINED__ #define ___IActiveXEvents_FWD_DEFINED__ typedef interface _IActiveXEvents _IActiveXEvents; #endif /* ___IActiveXEvents_FWD_DEFINED__ */ #ifndef __ActiveX_FWD_DEFINED__ #define __ActiveX_FWD_DEFINED__ #ifdef __cplusplus typedef class ActiveX ActiveX; #else typedef struct ActiveX ActiveX; #endif /* __cplusplus */ #endif /* __ActiveX_FWD_DEFINED__ */ /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" #ifdef __cplusplus extern "C"{ #endif void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); #ifndef __IActiveX_INTERFACE_DEFINED__ #define __IActiveX_INTERFACE_DEFINED__ /* interface IActiveX */ /* [unique][helpstring][nonextensible][dual][uuid][object] */ EXTERN_C const IID IID_IActiveX; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("285AD749-EB71-4902-BDFA-1CBA2E11BCA8") IActiveX : public IDispatch { public: virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_BackColor( /* [in] */ OLE_COLOR clr) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_BackColor( /* [retval][out] */ OLE_COLOR *pclr) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_BorderColor( /* [in] */ OLE_COLOR clr) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_BorderColor( /* [retval][out] */ OLE_COLOR *pclr) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_BorderStyle( /* [in] */ long style) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_BorderStyle( /* [retval][out] */ long *pstyle) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_BorderWidth( /* [in] */ long width) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_BorderWidth( /* [retval][out] */ long *width) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_ForeColor( /* [in] */ OLE_COLOR clr) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_ForeColor( /* [retval][out] */ OLE_COLOR *pclr) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_Text( /* [in] */ BSTR strText) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_Text( /* [retval][out] */ BSTR *pstrText) = 0; virtual /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_BorderVisible( /* [in] */ VARIANT_BOOL vbool) = 0; virtual /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_BorderVisible( /* [retval][out] */ VARIANT_BOOL *pbool) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE acceptPath( BSTR path) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startProcessing( CHAR *path) = 0; }; #else /* C style interface */ typedef struct IActiveXVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IActiveX * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IActiveX * This); ULONG ( STDMETHODCALLTYPE *Release )( IActiveX * This); HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IActiveX * This, /* [out] */ UINT *pctinfo); HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IActiveX * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IActiveX * This, /* [in] */ REFIID riid, /* [size_is][in] */ LPOLESTR *rgszNames, /* [in] */ UINT cNames, /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IActiveX * This, /* [in] */ DISPID dispIdMember, /* [in] */ REFIID riid, /* [in] */ LCID lcid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( IActiveX * This, /* [in] */ OLE_COLOR clr); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderColor )( IActiveX * This, /* [in] */ OLE_COLOR clr); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderColor )( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderStyle )( IActiveX * This, /* [in] */ long style); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderStyle )( IActiveX * This, /* [retval][out] */ long *pstyle); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderWidth )( IActiveX * This, /* [in] */ long width); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderWidth )( IActiveX * This, /* [retval][out] */ long *width); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ForeColor )( IActiveX * This, /* [in] */ OLE_COLOR clr); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ForeColor )( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Text )( IActiveX * This, /* [in] */ BSTR strText); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )( IActiveX * This, /* [retval][out] */ BSTR *pstrText); /* [id][requestedit][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderVisible )( IActiveX * This, /* [in] */ VARIANT_BOOL vbool); /* [id][requestedit][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderVisible )( IActiveX * This, /* [retval][out] */ VARIANT_BOOL *pbool); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *acceptPath )( IActiveX * This, BSTR path); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startProcessing )( IActiveX * This, CHAR *path); END_INTERFACE } IActiveXVtbl; interface IActiveX { CONST_VTBL struct IActiveXVtbl *lpVtbl; }; #ifdef COBJMACROS #define IActiveX_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IActiveX_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IActiveX_Release(This) \ (This)->lpVtbl -> Release(This) #define IActiveX_GetTypeInfoCount(This,pctinfo) \ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) #define IActiveX_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) #define IActiveX_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) #define IActiveX_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) #define IActiveX_put_BackColor(This,clr) \ (This)->lpVtbl -> put_BackColor(This,clr) #define IActiveX_get_BackColor(This,pclr) \ (This)->lpVtbl -> get_BackColor(This,pclr) #define IActiveX_put_BorderColor(This,clr) \ (This)->lpVtbl -> put_BorderColor(This,clr) #define IActiveX_get_BorderColor(This,pclr) \ (This)->lpVtbl -> get_BorderColor(This,pclr) #define IActiveX_put_BorderStyle(This,style) \ (This)->lpVtbl -> put_BorderStyle(This,style) #define IActiveX_get_BorderStyle(This,pstyle) \ (This)->lpVtbl -> get_BorderStyle(This,pstyle) #define IActiveX_put_BorderWidth(This,width) \ (This)->lpVtbl -> put_BorderWidth(This,width) #define IActiveX_get_BorderWidth(This,width) \ (This)->lpVtbl -> get_BorderWidth(This,width) #define IActiveX_put_ForeColor(This,clr) \ (This)->lpVtbl -> put_ForeColor(This,clr) #define IActiveX_get_ForeColor(This,pclr) \ (This)->lpVtbl -> get_ForeColor(This,pclr) #define IActiveX_put_Text(This,strText) \ (This)->lpVtbl -> put_Text(This,strText) #define IActiveX_get_Text(This,pstrText) \ (This)->lpVtbl -> get_Text(This,pstrText) #define IActiveX_put_BorderVisible(This,vbool) \ (This)->lpVtbl -> put_BorderVisible(This,vbool) #define IActiveX_get_BorderVisible(This,pbool) \ (This)->lpVtbl -> get_BorderVisible(This,pbool) #define IActiveX_acceptPath(This,path) \ (This)->lpVtbl -> acceptPath(This,path) #define IActiveX_startProcessing(This,path) \ (This)->lpVtbl -> startProcessing(This,path) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_BackColor_Proxy( IActiveX * This, /* [in] */ OLE_COLOR clr); void __RPC_STUB IActiveX_put_BackColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_BackColor_Proxy( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); void __RPC_STUB IActiveX_get_BackColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_BorderColor_Proxy( IActiveX * This, /* [in] */ OLE_COLOR clr); void __RPC_STUB IActiveX_put_BorderColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_BorderColor_Proxy( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); void __RPC_STUB IActiveX_get_BorderColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_BorderStyle_Proxy( IActiveX * This, /* [in] */ long style); void __RPC_STUB IActiveX_put_BorderStyle_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_BorderStyle_Proxy( IActiveX * This, /* [retval][out] */ long *pstyle); void __RPC_STUB IActiveX_get_BorderStyle_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_BorderWidth_Proxy( IActiveX * This, /* [in] */ long width); void __RPC_STUB IActiveX_put_BorderWidth_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_BorderWidth_Proxy( IActiveX * This, /* [retval][out] */ long *width); void __RPC_STUB IActiveX_get_BorderWidth_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_ForeColor_Proxy( IActiveX * This, /* [in] */ OLE_COLOR clr); void __RPC_STUB IActiveX_put_ForeColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_ForeColor_Proxy( IActiveX * This, /* [retval][out] */ OLE_COLOR *pclr); void __RPC_STUB IActiveX_get_ForeColor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_Text_Proxy( IActiveX * This, /* [in] */ BSTR strText); void __RPC_STUB IActiveX_put_Text_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_Text_Proxy( IActiveX * This, /* [retval][out] */ BSTR *pstrText); void __RPC_STUB IActiveX_get_Text_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propput] */ HRESULT STDMETHODCALLTYPE IActiveX_put_BorderVisible_Proxy( IActiveX * This, /* [in] */ VARIANT_BOOL vbool); void __RPC_STUB IActiveX_put_BorderVisible_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][requestedit][bindable][propget] */ HRESULT STDMETHODCALLTYPE IActiveX_get_BorderVisible_Proxy( IActiveX * This, /* [retval][out] */ VARIANT_BOOL *pbool); void __RPC_STUB IActiveX_get_BorderVisible_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IActiveX_acceptPath_Proxy( IActiveX * This, BSTR path); void __RPC_STUB IActiveX_acceptPath_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IActiveX_startProcessing_Proxy( IActiveX * This, CHAR *path); void __RPC_STUB IActiveX_startProcessing_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IActiveX_INTERFACE_DEFINED__ */ #ifndef __ActiveXDemoLib_LIBRARY_DEFINED__ #define __ActiveXDemoLib_LIBRARY_DEFINED__ /* library ActiveXDemoLib */ /* [helpstring][version][uuid] */ EXTERN_C const IID LIBID_ActiveXDemoLib; #ifndef ___IActiveXEvents_DISPINTERFACE_DEFINED__ #define ___IActiveXEvents_DISPINTERFACE_DEFINED__ /* dispinterface _IActiveXEvents */ /* [helpstring][uuid] */ EXTERN_C const IID DIID__IActiveXEvents; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("805D40C0-E04F-4D0B-8B09-0365F469961E") _IActiveXEvents : public IDispatch { }; #else /* C style interface */ typedef struct _IActiveXEventsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( _IActiveXEvents * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( _IActiveXEvents * This); ULONG ( STDMETHODCALLTYPE *Release )( _IActiveXEvents * This); HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( _IActiveXEvents * This, /* [out] */ UINT *pctinfo); HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( _IActiveXEvents * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( _IActiveXEvents * This, /* [in] */ REFIID riid, /* [size_is][in] */ LPOLESTR *rgszNames, /* [in] */ UINT cNames, /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( _IActiveXEvents * This, /* [in] */ DISPID dispIdMember, /* [in] */ REFIID riid, /* [in] */ LCID lcid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr); END_INTERFACE } _IActiveXEventsVtbl; interface _IActiveXEvents { CONST_VTBL struct _IActiveXEventsVtbl *lpVtbl; }; #ifdef COBJMACROS #define _IActiveXEvents_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define _IActiveXEvents_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define _IActiveXEvents_Release(This) \ (This)->lpVtbl -> Release(This) #define _IActiveXEvents_GetTypeInfoCount(This,pctinfo) \ (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) #define _IActiveXEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) #define _IActiveXEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) #define _IActiveXEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* ___IActiveXEvents_DISPINTERFACE_DEFINED__ */ EXTERN_C const CLSID CLSID_ActiveX; #ifdef __cplusplus class DECLSPEC_UUID("BF8E3E4C-0F8B-41BF-ABA8-E8C3E6267CAF") ActiveX; #endif #endif /* __ActiveXDemoLib_LIBRARY_DEFINED__ */ /* Additional Prototypes for ALL interfaces */ unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * ); /* end of Additional Prototypes */ #ifdef __cplusplus } #endif #endif