mirror of
https://github.com/libretro/RetroArch
synced 2024-12-27 06:25:59 +00:00
94 lines
3.2 KiB
C
94 lines
3.2 KiB
C
#pragma once
|
|
|
|
/* These are copied from WindowsStorageCOM.h
|
|
* You can remove this header file once the real file has been updated
|
|
* to fix the WINAPI_PARTITION_DESKTOP block */
|
|
|
|
typedef interface IOplockBreakingHandler IOplockBreakingHandler;
|
|
typedef interface IStorageItemHandleAccess IStorageItemHandleAccess;
|
|
typedef interface IStorageFolderHandleAccess IStorageFolderHandleAccess;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef /* [v1_enum] */
|
|
enum HANDLE_OPTIONS {
|
|
HO_NONE = 0,
|
|
HO_OPEN_REQUIRING_OPLOCK = 0x40000,
|
|
HO_DELETE_ON_CLOSE = 0x4000000,
|
|
HO_SEQUENTIAL_SCAN = 0x8000000,
|
|
HO_RANDOM_ACCESS = 0x10000000,
|
|
HO_NO_BUFFERING = 0x20000000,
|
|
HO_OVERLAPPED = 0x40000000,
|
|
HO_WRITE_THROUGH = 0x80000000
|
|
} HANDLE_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(HANDLE_OPTIONS);
|
|
typedef /* [v1_enum] */
|
|
enum HANDLE_ACCESS_OPTIONS {
|
|
HAO_NONE = 0,
|
|
HAO_READ_ATTRIBUTES = 0x80,
|
|
HAO_READ = 0x120089,
|
|
HAO_WRITE = 0x120116,
|
|
HAO_DELETE = 0x10000
|
|
} HANDLE_ACCESS_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(HANDLE_ACCESS_OPTIONS);
|
|
typedef /* [v1_enum] */
|
|
enum HANDLE_SHARING_OPTIONS {
|
|
HSO_SHARE_NONE = 0,
|
|
HSO_SHARE_READ = 0x1,
|
|
HSO_SHARE_WRITE = 0x2,
|
|
HSO_SHARE_DELETE = 0x4
|
|
} HANDLE_SHARING_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(HANDLE_SHARING_OPTIONS);
|
|
typedef /* [v1_enum] */
|
|
enum HANDLE_CREATION_OPTIONS {
|
|
HCO_CREATE_NEW = 0x1,
|
|
HCO_CREATE_ALWAYS = 0x2,
|
|
HCO_OPEN_EXISTING = 0x3,
|
|
HCO_OPEN_ALWAYS = 0x4,
|
|
HCO_TRUNCATE_EXISTING = 0x5
|
|
} HANDLE_CREATION_OPTIONS;
|
|
|
|
EXTERN_C const IID IID_IOplockBreakingHandler;
|
|
MIDL_INTERFACE("826ABE3D-3ACD-47D3-84F2-88AAEDCF6304")
|
|
IOplockBreakingHandler : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE OplockBreaking(void) = 0;
|
|
};
|
|
|
|
EXTERN_C const IID IID_IStorageItemHandleAccess;
|
|
MIDL_INTERFACE("5CA296B2-2C25-4D22-B785-B885C8201E6A")
|
|
IStorageItemHandleAccess : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE Create(
|
|
/* [in] */ HANDLE_ACCESS_OPTIONS accessOptions,
|
|
/* [in] */ HANDLE_SHARING_OPTIONS sharingOptions,
|
|
/* [in] */ HANDLE_OPTIONS options,
|
|
/* [optional][in] */ __RPC__in_opt IOplockBreakingHandler * oplockBreakingHandler,
|
|
/* [system_handle][retval][out] */ __RPC__deref_out_opt HANDLE * interopHandle) = 0;
|
|
};
|
|
|
|
EXTERN_C const IID IID_IStorageFolderHandleAccess;
|
|
MIDL_INTERFACE("DF19938F-5462-48A0-BE65-D2A3271A08D6")
|
|
IStorageFolderHandleAccess : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT STDMETHODCALLTYPE Create(
|
|
/* [string][in] */ __RPC__in_string LPCWSTR fileName,
|
|
/* [in] */ HANDLE_CREATION_OPTIONS creationOptions,
|
|
/* [in] */ HANDLE_ACCESS_OPTIONS accessOptions,
|
|
/* [in] */ HANDLE_SHARING_OPTIONS sharingOptions,
|
|
/* [in] */ HANDLE_OPTIONS options,
|
|
/* [optional][in] */ __RPC__in_opt IOplockBreakingHandler * oplockBreakingHandler,
|
|
/* [system_handle][retval][out] */ __RPC__deref_out_opt HANDLE * interopHandle) = 0;
|
|
};
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|