00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ZenOS_UtilsH
00009 #define ZenOS_UtilsH
00010
00011
00012
00013 #include "ZenLib/Ztring.h"
00014
00015
00016
00017 #ifdef WINDOWS_UWP
00018 #include <wrl.h>
00019 #include <windows.foundation.h>
00020 #include <windows.storage.h>
00021 #endif
00022
00023
00024 namespace ZenLib
00025 {
00026
00027
00028
00029
00030
00031
00032 bool IsWin9X ();
00033
00034
00035
00036 void Shell_Execute(const Ztring &ToExecute);
00037
00038
00039
00040
00041
00042 Ztring OpenFolder_Show(void* Handle, const Ztring &Title, const Ztring &Caption);
00043
00044
00045
00046
00047 #ifdef WINDOWS_UWP
00048 template <typename T>
00049 inline HRESULT Await(const Microsoft::WRL::ComPtr<T> &Operation)
00050 {
00051 if (!Operation)
00052 return E_POINTER;
00053
00054 Microsoft::WRL::ComPtr<ABI::Windows::Foundation::IAsyncInfo> Info;
00055 HRESULT Result=Operation.As(&Info);
00056 if (FAILED(Result))
00057 return Result;
00058
00059 ABI::Windows::Foundation::AsyncStatus Status;
00060 while (SUCCEEDED(Result=Info->get_Status(&Status)) && Status==Started)
00061 Sleep(0);
00062
00063 if (FAILED(Result) || Status!=Completed) {
00064 HRESULT Error_Code;
00065 Result=Info->get_ErrorCode(&Error_Code);
00066 if (FAILED(Result))
00067 return Result;
00068 return Error_Code;
00069 }
00070
00071 return Result;
00072 }
00073
00074 HRESULT Add_Item_To_FUA(Microsoft::WRL::Wrappers::HStringReference Path, Microsoft::WRL::ComPtr<ABI::Windows::Storage::IStorageItem> &Item);
00075 HRESULT Get_File(Microsoft::WRL::Wrappers::HStringReference File_Name, Microsoft::WRL::ComPtr<ABI::Windows::Storage::IStorageFile> &File);
00076 HRESULT Get_Folder(Microsoft::WRL::Wrappers::HStringReference Folder_Name, Microsoft::WRL::ComPtr<ABI::Windows::Storage::IStorageFolder> &Folder);
00077 #endif
00078
00079 }
00080 #endif