public void Initialize(IntPtr hRegKey, [MarshalAs(UnmanagedType.LPWStr)] string volume, out IntPtr pwszDisplayName, out IntPtr pwszDescription, ref EmptyVolumeCacheFlags flags) { // Deliberately not implemented; this should never be called by Windows, as InitializeEx() is preferred. throw new NotImplementedException(); }
public void Deactivate(out EmptyVolumeCacheFlags flags) { flags = 0; }
public void InitializeEx(IntPtr hRegKey, [MarshalAs(UnmanagedType.LPWStr)] string volume, [MarshalAs(UnmanagedType.LPWStr)] string keyName, out IntPtr pwszDisplayName, out IntPtr pwszDescription, out IntPtr pwszButtonText, ref EmptyVolumeCacheFlags flags) { VolumeName = volume; DiskSpaceCritical = flags.HasFlag(EmptyVolumeCacheFlags.EVCF_OUTOFDISKSPACE); ProviderSettings settings = Initialize(); pwszButtonText = Marshal.StringToCoTaskMemUni(settings.ButtonText); pwszDescription = Marshal.StringToCoTaskMemUni(settings.Description); pwszDisplayName = Marshal.StringToCoTaskMemUni(settings.DisplayName); if (settings.DisplayButton) { flags |= EmptyVolumeCacheFlags.EVCF_HASSETTINGS; } if (settings.EnableByDefault) { flags |= EmptyVolumeCacheFlags.EVCF_ENABLEBYDEFAULT | EmptyVolumeCacheFlags.EVCF_ENABLEBYDEFAULT_AUTO; } if (settings.NoShowIfSpaceZero) { flags |= EmptyVolumeCacheFlags.EVCF_DONTSHOWIFZERO; } }