(root)/
glib-2.79.0/
gio/
gwin32api-storage.h
       1  /*
       2   * SPDX-FileCopyrightText: This file has no copyright assigned and is placed in the Public Domain.
       3   * SPDX-License-Identifier: CC0-1.0
       4   *
       5   * This file is part of the w64 mingw-runtime package.
       6   * No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD.
       7   */
       8  
       9  struct DateTime;
      10  
      11  typedef struct DateTime {
      12      UINT64 UniversalTime;
      13  } DateTime;
      14  
      15  /* The following is copied verbatim from MinGW-w64 windows.storage.h */
      16  enum StorageItemTypes;
      17  enum FileAttributes;
      18  enum NameCollisionOption;
      19  enum StorageDeleteOption;
      20  
      21  typedef enum NameCollisionoption {
      22      NameCollisionoption_GenerateUniqueName = 0,
      23      NameCollisionoption_ReplaceExisting = 1,
      24      NameCollisionoption_FailIfExists = 2
      25  } NameCollisionOption;
      26  
      27  typedef enum FileAttributes {
      28      FileAttributes_Normal = 0,
      29      FileAttributes_ReadOnly = 1,
      30      FileAttributes_Directory = 2,
      31      FileAttributes_Archive = 3,
      32      FileAttributes_Temporary = 4
      33  } FileAttributes;
      34  
      35  typedef enum StorageItemTypes {
      36      StorageItemTypes_None = 0,
      37      StorageItemTypes_File = 1,
      38      StorageItemTypes_Folder = 2
      39  } StorageItemTypes;
      40  
      41  typedef enum StorageDeleteOption {
      42      StorageDeleteOption_Default = 0,
      43      StorageDeleteOption_PermanentDelete = 1
      44  } StorageDeleteOption;
      45  
      46  #ifndef __IStorageItem_FWD_DEFINED__
      47  #define __IStorageItem_FWD_DEFINED__
      48  typedef interface IStorageItem IStorageItem;
      49  #endif
      50  
      51  /*
      52   * IStorageItem interface
      53   */
      54  #ifndef __IStorageItem_INTERFACE_DEFINED__
      55  #define __IStorageItem_INTERFACE_DEFINED__
      56  
      57  DEFINE_GUID(IID_IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30);
      58  #if defined(__cplusplus) && !defined(CINTERFACE)
      59  MIDL_INTERFACE("4207a996-ca2f-42f7-bde8-8b10457a7f30")
      60  IStorageItem : public IInspectable
      61  {
      62      virtual HRESULT STDMETHODCALLTYPE RenameAsyncOverloadDefaultOptions(
      63          HSTRING desiredName,
      64          IInspectable **action) = 0;
      65  
      66      virtual HRESULT STDMETHODCALLTYPE RenameAsync(
      67          HSTRING desiredName,
      68          NameCollisionOption option,
      69          IInspectable **action) = 0;
      70  
      71      virtual HRESULT STDMETHODCALLTYPE DeleteAsyncOverloadDefaultOptions(
      72          IInspectable **action) = 0;
      73  
      74      virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
      75          StorageDeleteOption option,
      76          IInspectable **action) = 0;
      77  
      78      virtual HRESULT STDMETHODCALLTYPE GetBasicPropertiesAsync(
      79          IInspectable **action) = 0;
      80  
      81      virtual HRESULT STDMETHODCALLTYPE get_Name(
      82          HSTRING *value) = 0;
      83  
      84      virtual HRESULT STDMETHODCALLTYPE get_Path(
      85          HSTRING *value) = 0;
      86  
      87      virtual HRESULT STDMETHODCALLTYPE get_Attributes(
      88          FileAttributes *value) = 0;
      89  
      90      virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
      91          DateTime *value) = 0;
      92  
      93      virtual HRESULT STDMETHODCALLTYPE IsOfType(
      94          StorageItemTypes itemType,
      95          boolean *value) = 0;
      96  
      97  };
      98  #ifdef __CRT_UUID_DECL
      99  __CRT_UUID_DECL(IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30)
     100  #endif
     101  #else
     102  typedef struct IStorageItemVtbl {
     103      BEGIN_INTERFACE
     104  
     105      /*** IUnknown methods ***/
     106      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
     107          IStorageItem* This,
     108          REFIID riid,
     109          void **ppvObject);
     110  
     111      ULONG (STDMETHODCALLTYPE *AddRef)(
     112          IStorageItem* This);
     113  
     114      ULONG (STDMETHODCALLTYPE *Release)(
     115          IStorageItem* This);
     116  
     117      /*** IInspectable methods ***/
     118      HRESULT (STDMETHODCALLTYPE *GetIids)(
     119          IStorageItem* This,
     120          ULONG *iidCount,
     121          IID **iids);
     122  
     123      HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
     124          IStorageItem* This,
     125          HSTRING *className);
     126  
     127      HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
     128          IStorageItem* This,
     129          TrustLevel *trustLevel);
     130  
     131      /*** IStorageItem methods ***/
     132      HRESULT (STDMETHODCALLTYPE *RenameAsyncOverloadDefaultOptions)(
     133          IStorageItem* This,
     134          HSTRING desiredName,
     135          IInspectable **action);
     136  
     137      HRESULT (STDMETHODCALLTYPE *RenameAsync)(
     138          IStorageItem* This,
     139          HSTRING desiredName,
     140          NameCollisionOption option,
     141          IInspectable **action);
     142  
     143      HRESULT (STDMETHODCALLTYPE *DeleteAsyncOverloadDefaultOptions)(
     144          IStorageItem* This,
     145          IInspectable **action);
     146  
     147      HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
     148          IStorageItem* This,
     149          StorageDeleteOption option,
     150          IInspectable **action);
     151  
     152      HRESULT (STDMETHODCALLTYPE *GetBasicPropertiesAsync)(
     153          IStorageItem* This,
     154          IInspectable **action);
     155  
     156      HRESULT (STDMETHODCALLTYPE *get_Name)(
     157          IStorageItem* This,
     158          HSTRING *value);
     159  
     160      HRESULT (STDMETHODCALLTYPE *get_Path)(
     161          IStorageItem* This,
     162          HSTRING *value);
     163  
     164      HRESULT (STDMETHODCALLTYPE *get_Attributes)(
     165          IStorageItem* This,
     166          FileAttributes *value);
     167  
     168      HRESULT (STDMETHODCALLTYPE *get_DateCreated)(
     169          IStorageItem* This,
     170          DateTime *value);
     171  
     172      HRESULT (STDMETHODCALLTYPE *IsOfType)(
     173          IStorageItem* This,
     174          StorageItemTypes itemType,
     175          boolean *value);
     176  
     177      END_INTERFACE
     178  } IStorageItemVtbl;
     179  interface IStorageItem {
     180      CONST_VTBL IStorageItemVtbl* lpVtbl;
     181  };
     182  
     183  #ifdef COBJMACROS
     184  #ifndef WIDL_C_INLINE_WRAPPERS
     185  /*** IUnknown methods ***/
     186  #define IStorageItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
     187  #define IStorageItem_AddRef(This) (This)->lpVtbl->AddRef(This)
     188  #define IStorageItem_Release(This) (This)->lpVtbl->Release(This)
     189  /*** IInspectable methods ***/
     190  #define IStorageItem_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
     191  #define IStorageItem_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
     192  #define IStorageItem_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
     193  /*** IStorageItem methods ***/
     194  #define IStorageItem_RenameAsyncOverloadDefaultOptions(This,desiredName,action) (This)->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action)
     195  #define IStorageItem_RenameAsync(This,desiredName,option,action) (This)->lpVtbl->RenameAsync(This,desiredName,option,action)
     196  #define IStorageItem_DeleteAsyncOverloadDefaultOptions(This,action) (This)->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action)
     197  #define IStorageItem_DeleteAsync(This,option,action) (This)->lpVtbl->DeleteAsync(This,option,action)
     198  #define IStorageItem_GetBasicPropertiesAsync(This,action) (This)->lpVtbl->GetBasicPropertiesAsync(This,action)
     199  #define IStorageItem_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
     200  #define IStorageItem_get_Path(This,value) (This)->lpVtbl->get_Path(This,value)
     201  #define IStorageItem_get_Attributes(This,value) (This)->lpVtbl->get_Attributes(This,value)
     202  #define IStorageItem_get_DateCreated(This,value) (This)->lpVtbl->get_DateCreated(This,value)
     203  #define IStorageItem_IsOfType(This,itemType,value) (This)->lpVtbl->IsOfType(This,itemType,value)
     204  #else
     205  /*** IUnknown methods ***/
     206  static FORCEINLINE HRESULT IStorageItem_QueryInterface(IStorageItem* This,REFIID riid,void **ppvObject) {
     207      return This->lpVtbl->QueryInterface(This,riid,ppvObject);
     208  }
     209  static FORCEINLINE ULONG IStorageItem_AddRef(IStorageItem* This) {
     210      return This->lpVtbl->AddRef(This);
     211  }
     212  static FORCEINLINE ULONG IStorageItem_Release(IStorageItem* This) {
     213      return This->lpVtbl->Release(This);
     214  }
     215  /*** IInspectable methods ***/
     216  static FORCEINLINE HRESULT IStorageItem_GetIids(IStorageItem* This,ULONG *iidCount,IID **iids) {
     217      return This->lpVtbl->GetIids(This,iidCount,iids);
     218  }
     219  static FORCEINLINE HRESULT IStorageItem_GetRuntimeClassName(IStorageItem* This,HSTRING *className) {
     220      return This->lpVtbl->GetRuntimeClassName(This,className);
     221  }
     222  static FORCEINLINE HRESULT IStorageItem_GetTrustLevel(IStorageItem* This,TrustLevel *trustLevel) {
     223      return This->lpVtbl->GetTrustLevel(This,trustLevel);
     224  }
     225  /*** IStorageItem methods ***/
     226  static FORCEINLINE HRESULT IStorageItem_RenameAsyncOverloadDefaultOptions(IStorageItem* This,HSTRING desiredName,IInspectable **action) {
     227      return This->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action);
     228  }
     229  static FORCEINLINE HRESULT IStorageItem_RenameAsync(IStorageItem* This,HSTRING desiredName,NameCollisionOption option,IInspectable **action) {
     230      return This->lpVtbl->RenameAsync(This,desiredName,option,action);
     231  }
     232  static FORCEINLINE HRESULT IStorageItem_DeleteAsyncOverloadDefaultOptions(IStorageItem* This,IInspectable **action) {
     233      return This->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action);
     234  }
     235  static FORCEINLINE HRESULT IStorageItem_DeleteAsync(IStorageItem* This,StorageDeleteOption option,IInspectable **action) {
     236      return This->lpVtbl->DeleteAsync(This,option,action);
     237  }
     238  static FORCEINLINE HRESULT IStorageItem_GetBasicPropertiesAsync(IStorageItem* This,IInspectable **action) {
     239      return This->lpVtbl->GetBasicPropertiesAsync(This,action);
     240  }
     241  static FORCEINLINE HRESULT IStorageItem_get_Name(IStorageItem* This,HSTRING *value) {
     242      return This->lpVtbl->get_Name(This,value);
     243  }
     244  static FORCEINLINE HRESULT IStorageItem_get_Path(IStorageItem* This,HSTRING *value) {
     245      return This->lpVtbl->get_Path(This,value);
     246  }
     247  static FORCEINLINE HRESULT IStorageItem_get_Attributes(IStorageItem* This,FileAttributes *value) {
     248      return This->lpVtbl->get_Attributes(This,value);
     249  }
     250  static FORCEINLINE HRESULT IStorageItem_get_DateCreated(IStorageItem* This,DateTime *value) {
     251      return This->lpVtbl->get_DateCreated(This,value);
     252  }
     253  static FORCEINLINE HRESULT IStorageItem_IsOfType(IStorageItem* This,StorageItemTypes itemType,boolean *value) {
     254      return This->lpVtbl->IsOfType(This,itemType,value);
     255  }
     256  #endif
     257  #endif
     258  
     259  #endif
     260  
     261  HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsyncOverloadDefaultOptions_Proxy(
     262      IStorageItem* This,
     263      HSTRING desiredName,
     264      IInspectable **action);
     265  void __RPC_STUB IStorageItem_RenameAsyncOverloadDefaultOptions_Stub(
     266      IRpcStubBuffer* This,
     267      IRpcChannelBuffer* pRpcChannelBuffer,
     268      PRPC_MESSAGE pRpcMessage,
     269      DWORD* pdwStubPhase);
     270  HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsync_Proxy(
     271      IStorageItem* This,
     272      HSTRING desiredName,
     273      NameCollisionOption option,
     274      IInspectable **action);
     275  void __RPC_STUB IStorageItem_RenameAsync_Stub(
     276      IRpcStubBuffer* This,
     277      IRpcChannelBuffer* pRpcChannelBuffer,
     278      PRPC_MESSAGE pRpcMessage,
     279      DWORD* pdwStubPhase);
     280  HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsyncOverloadDefaultOptions_Proxy(
     281      IStorageItem* This,
     282      IInspectable **action);
     283  void __RPC_STUB IStorageItem_DeleteAsyncOverloadDefaultOptions_Stub(
     284      IRpcStubBuffer* This,
     285      IRpcChannelBuffer* pRpcChannelBuffer,
     286      PRPC_MESSAGE pRpcMessage,
     287      DWORD* pdwStubPhase);
     288  HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsync_Proxy(
     289      IStorageItem* This,
     290      StorageDeleteOption option,
     291      IInspectable **action);
     292  void __RPC_STUB IStorageItem_DeleteAsync_Stub(
     293      IRpcStubBuffer* This,
     294      IRpcChannelBuffer* pRpcChannelBuffer,
     295      PRPC_MESSAGE pRpcMessage,
     296      DWORD* pdwStubPhase);
     297  HRESULT STDMETHODCALLTYPE IStorageItem_GetBasicPropertiesAsync_Proxy(
     298      IStorageItem* This,
     299      IInspectable **action);
     300  void __RPC_STUB IStorageItem_GetBasicPropertiesAsync_Stub(
     301      IRpcStubBuffer* This,
     302      IRpcChannelBuffer* pRpcChannelBuffer,
     303      PRPC_MESSAGE pRpcMessage,
     304      DWORD* pdwStubPhase);
     305  HRESULT STDMETHODCALLTYPE IStorageItem_get_Name_Proxy(
     306      IStorageItem* This,
     307      HSTRING *value);
     308  void __RPC_STUB IStorageItem_get_Name_Stub(
     309      IRpcStubBuffer* This,
     310      IRpcChannelBuffer* pRpcChannelBuffer,
     311      PRPC_MESSAGE pRpcMessage,
     312      DWORD* pdwStubPhase);
     313  HRESULT STDMETHODCALLTYPE IStorageItem_get_Path_Proxy(
     314      IStorageItem* This,
     315      HSTRING *value);
     316  void __RPC_STUB IStorageItem_get_Path_Stub(
     317      IRpcStubBuffer* This,
     318      IRpcChannelBuffer* pRpcChannelBuffer,
     319      PRPC_MESSAGE pRpcMessage,
     320      DWORD* pdwStubPhase);
     321  HRESULT STDMETHODCALLTYPE IStorageItem_get_Attributes_Proxy(
     322      IStorageItem* This,
     323      FileAttributes *value);
     324  void __RPC_STUB IStorageItem_get_Attributes_Stub(
     325      IRpcStubBuffer* This,
     326      IRpcChannelBuffer* pRpcChannelBuffer,
     327      PRPC_MESSAGE pRpcMessage,
     328      DWORD* pdwStubPhase);
     329  HRESULT STDMETHODCALLTYPE IStorageItem_get_DateCreated_Proxy(
     330      IStorageItem* This,
     331      DateTime *value);
     332  void __RPC_STUB IStorageItem_get_DateCreated_Stub(
     333      IRpcStubBuffer* This,
     334      IRpcChannelBuffer* pRpcChannelBuffer,
     335      PRPC_MESSAGE pRpcMessage,
     336      DWORD* pdwStubPhase);
     337  HRESULT STDMETHODCALLTYPE IStorageItem_IsOfType_Proxy(
     338      IStorageItem* This,
     339      StorageItemTypes itemType,
     340      boolean *value);
     341  void __RPC_STUB IStorageItem_IsOfType_Stub(
     342      IRpcStubBuffer* This,
     343      IRpcChannelBuffer* pRpcChannelBuffer,
     344      PRPC_MESSAGE pRpcMessage,
     345      DWORD* pdwStubPhase);
     346  
     347  #endif  /* __IStorageItem_INTERFACE_DEFINED__ */