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__ 475
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error this stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __bits2_0_h__
     23 #define __bits2_0_h__
     24 #ifndef __IBackgroundCopyJob3_FWD_DEFINED__
     25 #define __IBackgroundCopyJob3_FWD_DEFINED__
     26 typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
     27 #endif
     28 
     29 #ifndef __IBackgroundCopyFile2_FWD_DEFINED__
     30 #define __IBackgroundCopyFile2_FWD_DEFINED__
     31 typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2;
     32 #endif
     33 
     34 #ifndef __BackgroundCopyManager2_0_FWD_DEFINED__
     35 #define __BackgroundCopyManager2_0_FWD_DEFINED__
     36 #ifdef __cplusplus
     37 typedef class BackgroundCopyManager2_0 BackgroundCopyManager2_0;
     38 #else
     39 typedef struct BackgroundCopyManager2_0 BackgroundCopyManager2_0;
     40 #endif
     41 #endif
     42 
     43 #ifndef __IBackgroundCopyJob3_FWD_DEFINED__
     44 #define __IBackgroundCopyJob3_FWD_DEFINED__
     45 typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
     46 #endif
     47 
     48 #include "bits.h"
     49 #include "bits1_5.h"
     50 
     51 #ifdef __cplusplus
     52 extern "C"{
     53 #endif
     54 
     55 #ifndef __MIDL_user_allocate_free_DEFINED__
     56 #define __MIDL_user_allocate_free_DEFINED__
     57   void *__RPC_API MIDL_user_allocate(size_t);
     58   void __RPC_API MIDL_user_free(void *);
     59 #endif
     60 
     61 #define BG_LENGTH_TO_EOF (UINT64)(-1)
     62   typedef struct _BG_FILE_RANGE {
     63     UINT64 InitialOffset;
     64     UINT64 Length;
     65   } BG_FILE_RANGE;
     66 
     67 #define BG_COPY_FILE_OWNER 1
     68 #define BG_COPY_FILE_GROUP 2
     69 #define BG_COPY_FILE_DACL 4
     70 #define BG_COPY_FILE_SACL 8
     71 #define BG_COPY_FILE_ALL 15
     72 
     73   extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_c_ifspec;
     74   extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_s_ifspec;
     75 
     76 #ifndef __IBackgroundCopyJob3_INTERFACE_DEFINED__
     77 #define __IBackgroundCopyJob3_INTERFACE_DEFINED__
     78   EXTERN_C const IID IID_IBackgroundCopyJob3;
     79 #if defined(__cplusplus) && !defined(CINTERFACE)
     80   struct IBackgroundCopyJob3 : public IBackgroundCopyJob2 {
     81   public:
     82     virtual HRESULT WINAPI ReplaceRemotePrefix(LPCWSTR OldPrefix,LPCWSTR NewPrefix) = 0;
     83     virtual HRESULT WINAPI AddFileWithRanges(LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) = 0;
     84     virtual HRESULT WINAPI SetFileACLFlags(DWORD Flags) = 0;
     85     virtual HRESULT WINAPI GetFileACLFlags(DWORD *Flags) = 0;
     86   };
     87 #else
     88   typedef struct IBackgroundCopyJob3Vtbl {
     89     BEGIN_INTERFACE
     90       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob3 *This,REFIID riid,void **ppvObject);
     91       ULONG (WINAPI *AddRef)(IBackgroundCopyJob3 *This);
     92       ULONG (WINAPI *Release)(IBackgroundCopyJob3 *This);
     93       HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob3 *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
     94       HRESULT (WINAPI *AddFile)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
     95       HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob3 *This,IEnumBackgroundCopyFiles **pEnum);
     96       HRESULT (WINAPI *Suspend)(IBackgroundCopyJob3 *This);
     97       HRESULT (WINAPI *Resume)(IBackgroundCopyJob3 *This);
     98       HRESULT (WINAPI *Cancel)(IBackgroundCopyJob3 *This);
     99       HRESULT (WINAPI *Complete)(IBackgroundCopyJob3 *This);
    100       HRESULT (WINAPI *GetId)(IBackgroundCopyJob3 *This,GUID *pVal);
    101       HRESULT (WINAPI *GetType)(IBackgroundCopyJob3 *This,BG_JOB_TYPE *pVal);
    102       HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob3 *This,BG_JOB_PROGRESS *pVal);
    103       HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob3 *This,BG_JOB_TIMES *pVal);
    104       HRESULT (WINAPI *GetState)(IBackgroundCopyJob3 *This,BG_JOB_STATE *pVal);
    105       HRESULT (WINAPI *GetError)(IBackgroundCopyJob3 *This,IBackgroundCopyError **ppError);
    106       HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
    107       HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob3 *This,LPCWSTR Val);
    108       HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
    109       HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob3 *This,LPCWSTR Val);
    110       HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
    111       HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY Val);
    112       HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY *pVal);
    113       HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG Val);
    114       HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG *pVal);
    115       HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown *Val);
    116       HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown **pVal);
    117       HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG Seconds);
    118       HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG *Seconds);
    119       HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG Seconds);
    120       HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG *Seconds);
    121       HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob3 *This,ULONG *Errors);
    122       HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
    123       HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
    124       HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob3 *This);
    125       HRESULT (WINAPI *SetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPCWSTR Program,LPCWSTR Parameters);
    126       HRESULT (WINAPI *GetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPWSTR *pProgram,LPWSTR *pParameters);
    127       HRESULT (WINAPI *GetReplyProgress)(IBackgroundCopyJob3 *This,BG_JOB_REPLY_PROGRESS *pProgress);
    128       HRESULT (WINAPI *GetReplyData)(IBackgroundCopyJob3 *This,byte **ppBuffer,UINT64 *pLength);
    129       HRESULT (WINAPI *SetReplyFileName)(IBackgroundCopyJob3 *This,LPCWSTR ReplyFileName);
    130       HRESULT (WINAPI *GetReplyFileName)(IBackgroundCopyJob3 *This,LPWSTR *pReplyFileName);
    131       HRESULT (WINAPI *SetCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_CREDENTIALS *credentials);
    132       HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme);
    133       HRESULT (WINAPI *ReplaceRemotePrefix)(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix);
    134       HRESULT (WINAPI *AddFileWithRanges)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]);
    135       HRESULT (WINAPI *SetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD Flags);
    136       HRESULT (WINAPI *GetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD *Flags);
    137     END_INTERFACE
    138   } IBackgroundCopyJob3Vtbl;
    139   struct IBackgroundCopyJob3 {
    140     CONST_VTBL struct IBackgroundCopyJob3Vtbl *lpVtbl;
    141   };
    142 #ifdef COBJMACROS
    143 #define IBackgroundCopyJob3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
    144 #define IBackgroundCopyJob3_AddRef(This) (This)->lpVtbl -> AddRef(This)
    145 #define IBackgroundCopyJob3_Release(This) (This)->lpVtbl -> Release(This)
    146 #define IBackgroundCopyJob3_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl -> AddFileSet(This,cFileCount,pFileSet)
    147 #define IBackgroundCopyJob3_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl -> AddFile(This,RemoteUrl,LocalName)
    148 #define IBackgroundCopyJob3_EnumFiles(This,pEnum) (This)->lpVtbl -> EnumFiles(This,pEnum)
    149 #define IBackgroundCopyJob3_Suspend(This) (This)->lpVtbl -> Suspend(This)
    150 #define IBackgroundCopyJob3_Resume(This) (This)->lpVtbl -> Resume(This)
    151 #define IBackgroundCopyJob3_Cancel(This) (This)->lpVtbl -> Cancel(This)
    152 #define IBackgroundCopyJob3_Complete(This) (This)->lpVtbl -> Complete(This)
    153 #define IBackgroundCopyJob3_GetId(This,pVal) (This)->lpVtbl -> GetId(This,pVal)
    154 #define IBackgroundCopyJob3_GetType(This,pVal) (This)->lpVtbl -> GetType(This,pVal)
    155 #define IBackgroundCopyJob3_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal)
    156 #define IBackgroundCopyJob3_GetTimes(This,pVal) (This)->lpVtbl -> GetTimes(This,pVal)
    157 #define IBackgroundCopyJob3_GetState(This,pVal) (This)->lpVtbl -> GetState(This,pVal)
    158 #define IBackgroundCopyJob3_GetError(This,ppError) (This)->lpVtbl -> GetError(This,ppError)
    159 #define IBackgroundCopyJob3_GetOwner(This,pVal) (This)->lpVtbl -> GetOwner(This,pVal)
    160 #define IBackgroundCopyJob3_SetDisplayName(This,Val) (This)->lpVtbl -> SetDisplayName(This,Val)
    161 #define IBackgroundCopyJob3_GetDisplayName(This,pVal) (This)->lpVtbl -> GetDisplayName(This,pVal)
    162 #define IBackgroundCopyJob3_SetDescription(This,Val) (This)->lpVtbl -> SetDescription(This,Val)
    163 #define IBackgroundCopyJob3_GetDescription(This,pVal) (This)->lpVtbl -> GetDescription(This,pVal)
    164 #define IBackgroundCopyJob3_SetPriority(This,Val) (This)->lpVtbl -> SetPriority(This,Val)
    165 #define IBackgroundCopyJob3_GetPriority(This,pVal) (This)->lpVtbl -> GetPriority(This,pVal)
    166 #define IBackgroundCopyJob3_SetNotifyFlags(This,Val) (This)->lpVtbl -> SetNotifyFlags(This,Val)
    167 #define IBackgroundCopyJob3_GetNotifyFlags(This,pVal) (This)->lpVtbl -> GetNotifyFlags(This,pVal)
    168 #define IBackgroundCopyJob3_SetNotifyInterface(This,Val) (This)->lpVtbl -> SetNotifyInterface(This,Val)
    169 #define IBackgroundCopyJob3_GetNotifyInterface(This,pVal) (This)->lpVtbl -> GetNotifyInterface(This,pVal)
    170 #define IBackgroundCopyJob3_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> SetMinimumRetryDelay(This,Seconds)
    171 #define IBackgroundCopyJob3_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> GetMinimumRetryDelay(This,Seconds)
    172 #define IBackgroundCopyJob3_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> SetNoProgressTimeout(This,Seconds)
    173 #define IBackgroundCopyJob3_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> GetNoProgressTimeout(This,Seconds)
    174 #define IBackgroundCopyJob3_GetErrorCount(This,Errors) (This)->lpVtbl -> GetErrorCount(This,Errors)
    175 #define IBackgroundCopyJob3_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl -> SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
    176 #define IBackgroundCopyJob3_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl -> GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
    177 #define IBackgroundCopyJob3_TakeOwnership(This) (This)->lpVtbl -> TakeOwnership(This)
    178 #define IBackgroundCopyJob3_SetNotifyCmdLine(This,Program,Parameters) (This)->lpVtbl -> SetNotifyCmdLine(This,Program,Parameters)
    179 #define IBackgroundCopyJob3_GetNotifyCmdLine(This,pProgram,pParameters) (This)->lpVtbl -> GetNotifyCmdLine(This,pProgram,pParameters)
    180 #define IBackgroundCopyJob3_GetReplyProgress(This,pProgress) (This)->lpVtbl -> GetReplyProgress(This,pProgress)
    181 #define IBackgroundCopyJob3_GetReplyData(This,ppBuffer,pLength) (This)->lpVtbl -> GetReplyData(This,ppBuffer,pLength)
    182 #define IBackgroundCopyJob3_SetReplyFileName(This,ReplyFileName) (This)->lpVtbl -> SetReplyFileName(This,ReplyFileName)
    183 #define IBackgroundCopyJob3_GetReplyFileName(This,pReplyFileName) (This)->lpVtbl -> GetReplyFileName(This,pReplyFileName)
    184 #define IBackgroundCopyJob3_SetCredentials(This,credentials) (This)->lpVtbl -> SetCredentials(This,credentials)
    185 #define IBackgroundCopyJob3_RemoveCredentials(This,Target,Scheme) (This)->lpVtbl -> RemoveCredentials(This,Target,Scheme)
    186 #define IBackgroundCopyJob3_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl -> ReplaceRemotePrefix(This,OldPrefix,NewPrefix)
    187 #define IBackgroundCopyJob3_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl -> AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges)
    188 #define IBackgroundCopyJob3_SetFileACLFlags(This,Flags) (This)->lpVtbl -> SetFileACLFlags(This,Flags)
    189 #define IBackgroundCopyJob3_GetFileACLFlags(This,Flags) (This)->lpVtbl -> GetFileACLFlags(This,Flags)
    190 #endif
    191 #endif
    192   HRESULT WINAPI IBackgroundCopyJob3_ReplaceRemotePrefix_Proxy(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix);
    193   void __RPC_STUB IBackgroundCopyJob3_ReplaceRemotePrefix_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    194   HRESULT WINAPI IBackgroundCopyJob3_AddFileWithRanges_Proxy(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]);
    195   void __RPC_STUB IBackgroundCopyJob3_AddFileWithRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    196   HRESULT WINAPI IBackgroundCopyJob3_SetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD Flags);
    197   void __RPC_STUB IBackgroundCopyJob3_SetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    198   HRESULT WINAPI IBackgroundCopyJob3_GetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD *Flags);
    199   void __RPC_STUB IBackgroundCopyJob3_GetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    200 #endif
    201 
    202 #ifndef __IBackgroundCopyFile2_INTERFACE_DEFINED__
    203 #define __IBackgroundCopyFile2_INTERFACE_DEFINED__
    204   EXTERN_C const IID IID_IBackgroundCopyFile2;
    205 #if defined(__cplusplus) && !defined(CINTERFACE)
    206   struct IBackgroundCopyFile2 : public IBackgroundCopyFile {
    207   public:
    208     virtual HRESULT WINAPI GetFileRanges(DWORD *RangeCount,BG_FILE_RANGE **Ranges) = 0;
    209     virtual HRESULT WINAPI SetRemoteName(LPCWSTR Val) = 0;
    210   };
    211 #else
    212   typedef struct IBackgroundCopyFile2Vtbl {
    213     BEGIN_INTERFACE
    214       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile2 *This,REFIID riid,void **ppvObject);
    215       ULONG (WINAPI *AddRef)(IBackgroundCopyFile2 *This);
    216       ULONG (WINAPI *Release)(IBackgroundCopyFile2 *This);
    217       HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile2 *This,LPWSTR *pVal);
    218       HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile2 *This,LPWSTR *pVal);
    219       HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile2 *This,BG_FILE_PROGRESS *pVal);
    220       HRESULT (WINAPI *GetFileRanges)(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges);
    221       HRESULT (WINAPI *SetRemoteName)(IBackgroundCopyFile2 *This,LPCWSTR Val);
    222     END_INTERFACE
    223   } IBackgroundCopyFile2Vtbl;
    224   struct IBackgroundCopyFile2 {
    225     CONST_VTBL struct IBackgroundCopyFile2Vtbl *lpVtbl;
    226   };
    227 #ifdef COBJMACROS
    228 #define IBackgroundCopyFile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
    229 #define IBackgroundCopyFile2_AddRef(This) (This)->lpVtbl -> AddRef(This)
    230 #define IBackgroundCopyFile2_Release(This) (This)->lpVtbl -> Release(This)
    231 #define IBackgroundCopyFile2_GetRemoteName(This,pVal) (This)->lpVtbl -> GetRemoteName(This,pVal)
    232 #define IBackgroundCopyFile2_GetLocalName(This,pVal) (This)->lpVtbl -> GetLocalName(This,pVal)
    233 #define IBackgroundCopyFile2_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal)
    234 #define IBackgroundCopyFile2_GetFileRanges(This,RangeCount,Ranges) (This)->lpVtbl -> GetFileRanges(This,RangeCount,Ranges)
    235 #define IBackgroundCopyFile2_SetRemoteName(This,Val) (This)->lpVtbl -> SetRemoteName(This,Val)
    236 #endif
    237 #endif
    238   HRESULT WINAPI IBackgroundCopyFile2_GetFileRanges_Proxy(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges);
    239   void __RPC_STUB IBackgroundCopyFile2_GetFileRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    240   HRESULT WINAPI IBackgroundCopyFile2_SetRemoteName_Proxy(IBackgroundCopyFile2 *This,LPCWSTR Val);
    241   void __RPC_STUB IBackgroundCopyFile2_SetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    242 #endif
    243 
    244 #ifndef __BackgroundCopyManager2_0_LIBRARY_DEFINED__
    245 #define __BackgroundCopyManager2_0_LIBRARY_DEFINED__
    246   EXTERN_C const IID LIBID_BackgroundCopyManager2_0;
    247   EXTERN_C const CLSID CLSID_BackgroundCopyManager2_0;
    248 #ifdef __cplusplus
    249   class BackgroundCopyManager2_0;
    250 #endif
    251 #endif
    252 
    253 #ifdef __cplusplus
    254 }
    255 #endif
    256 #endif
    257