public void SetFlags(SHELL_LINK_DATA_FLAGS flags, bool value) { if (!this.InternalSetFlags(flags, value)) { throw new NotSupportedException(); } }
private bool InternalSetFlags(SHELL_LINK_DATA_FLAGS flags, bool value) { SHELL_LINK_DATA_FLAGS shell_link_data_flags2; IShellLinkDataList persistStream = this.PersistStream as IShellLinkDataList; if (persistStream == null) { return false; } SHELL_LINK_DATA_FLAGS shell_link_data_flags = persistStream.GetFlags(); if (value) { shell_link_data_flags2 = shell_link_data_flags | flags; } else { shell_link_data_flags2 = shell_link_data_flags & ~flags; } if (shell_link_data_flags2 != shell_link_data_flags) { persistStream.SetFlags(shell_link_data_flags2); } return true; }