mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-04-02 10:45:22 +08:00
305 lines
13 KiB
C#
305 lines
13 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace MicaSetup.Shell.Dialogs;
|
|
|
|
#pragma warning disable CS0108
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyDescription),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyDescription
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetPropertyKey(out PropertyKey pkey);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetCanonicalName([MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetPropertyType(out VarEnum pvartype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime),
|
|
PreserveSig]
|
|
HResult GetDisplayName(out nint ppszName);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetEditInvitation(out nint ppszInvite);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetTypeFlags([In] PropertyTypeOptions mask, out PropertyTypeOptions ppdtFlags);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetViewFlags(out PropertyViewOptions ppdvFlags);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetDefaultColumnWidth(out uint pcxChars);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetDisplayType(out PropertyDisplayType pdisplaytype);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetColumnState(out PropertyColumnStateOptions pcsFlags);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetGroupingRange(out PropertyGroupingRange pgr);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRelativeDescriptionType(out PropertySystemNativeMethods.RelativeDescriptionType prdt);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRelativeDescription([In] PropVariant propvar1, [In] PropVariant propvar2, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDesc1, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDesc2);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetSortDescription(out PropertySortDescription psd);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetSortDescriptionLabel([In] bool fDescending, out nint ppszDescription);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetAggregationType(out PropertyAggregationType paggtype);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetConditionType(out PropertyConditionType pcontype, out PropertyConditionOperation popDefault);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetEnumTypeList([In] ref Guid riid, [Out, MarshalAs(UnmanagedType.Interface)] out IPropertyEnumTypeList ppv);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void CoerceToCanonicalValue([In, Out] PropVariant propvar);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult FormatForDisplay([In] PropVariant propvar, [In] ref PropertyDescriptionFormatOptions pdfFlags, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDisplay);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult IsValueCanonical([In] PropVariant propvar);
|
|
}
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyDescription2),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyDescription2 : IPropertyDescription
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetPropertyKey(out PropertyKey pkey);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetCanonicalName([MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetPropertyType(out VarEnum pvartype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetDisplayName([MarshalAs(UnmanagedType.LPWStr)] out string ppszName);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetEditInvitation([MarshalAs(UnmanagedType.LPWStr)] out string ppszInvite);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetTypeFlags([In] PropertyTypeOptions mask, out PropertyTypeOptions ppdtFlags);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetViewFlags(out PropertyViewOptions ppdvFlags);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetDefaultColumnWidth(out uint pcxChars);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetDisplayType(out PropertyDisplayType pdisplaytype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetColumnState(out uint pcsFlags);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetGroupingRange(out PropertyGroupingRange pgr);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRelativeDescriptionType(out PropertySystemNativeMethods.RelativeDescriptionType prdt);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRelativeDescription(
|
|
[In] PropVariant propvar1,
|
|
[In] PropVariant propvar2,
|
|
[MarshalAs(UnmanagedType.LPWStr)] out string ppszDesc1,
|
|
[MarshalAs(UnmanagedType.LPWStr)] out string ppszDesc2);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetSortDescription(out PropertySortDescription psd);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetSortDescriptionLabel([In] int fDescending, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDescription);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetAggregationType(out PropertyAggregationType paggtype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetConditionType(
|
|
out PropertyConditionType pcontype,
|
|
out PropertyConditionOperation popDefault);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetEnumTypeList([In] ref Guid riid, out nint ppv);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void CoerceToCanonicalValue([In, Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void FormatForDisplay([In] PropVariant propvar, [In] ref PropertyDescriptionFormatOptions pdfFlags, [MarshalAs(UnmanagedType.LPWStr)] out string ppszDisplay);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult IsValueCanonical([In] PropVariant propvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetImageReferenceForValue(
|
|
[In] PropVariant propvar,
|
|
[Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszImageRes);
|
|
}
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyDescriptionList),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyDescriptionList
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetCount(out uint pcElem);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetAt([In] uint iElem, [In] ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out IPropertyDescription ppv);
|
|
}
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyEnumType),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyEnumType
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetEnumType([Out] out PropEnumType penumtype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRangeMinValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRangeSetValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetDisplayText([Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszDisplay);
|
|
}
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyEnumType2),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyEnumType2 : IPropertyEnumType
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetEnumType([Out] out PropEnumType penumtype);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRangeMinValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetRangeSetValue([Out] PropVariant ppropvar);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetDisplayText([Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszDisplay);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetImageReference([Out, MarshalAs(UnmanagedType.LPWStr)] out string ppszImageRes);
|
|
}
|
|
|
|
[ComImport,
|
|
Guid(ShellIIDGuid.IPropertyEnumTypeList),
|
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyEnumTypeList
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetCount([Out] out uint pctypes);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetAt(
|
|
[In] uint itype,
|
|
[In] ref Guid riid,
|
|
[Out, MarshalAs(UnmanagedType.Interface)] out IPropertyEnumType ppv);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void GetConditionAt(
|
|
[In] uint index,
|
|
[In] ref Guid riid,
|
|
out nint ppv);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
void FindMatchingIndex(
|
|
[In] PropVariant propvarCmp,
|
|
[Out] out uint pnIndex);
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid(ShellIIDGuid.IPropertyStore)]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyStore
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetCount([Out] out uint propertyCount);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetAt([In] uint propertyIndex, out PropertyKey key);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetValue([In] ref PropertyKey key, [Out] PropVariant pv);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), PreserveSig]
|
|
HResult SetValue([In] ref PropertyKey key, [In] PropVariant pv);
|
|
|
|
[PreserveSig]
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult Commit();
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid(ShellIIDGuid.IPropertyStoreCache)]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyStoreCache
|
|
{
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetState(ref PropertyKey key, [Out] out PropertyStoreCacheState state);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult GetValueAndState(ref PropertyKey propKey, [Out] PropVariant pv, [Out] out PropertyStoreCacheState state);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult SetState(ref PropertyKey propKey, PropertyStoreCacheState state);
|
|
|
|
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
|
HResult SetValueAndState(ref PropertyKey propKey, [In] PropVariant pv, PropertyStoreCacheState state);
|
|
}
|
|
|
|
[ComImport]
|
|
[Guid(ShellIIDGuid.IPropertyStoreCapabilities)]
|
|
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPropertyStoreCapabilities
|
|
{
|
|
HResult IsPropertyWritable([In] ref PropertyKey propertyKey);
|
|
}
|
|
|
|
#pragma warning restore 108
|