Added button to reload and view rules.

Also added a function to run the rules on demand
This commit is contained in:
2026-03-20 21:09:50 +00:00
parent 0f838c1558
commit 54070e6513
5 changed files with 315 additions and 329 deletions
+81 -21
View File
@@ -39,7 +39,7 @@ namespace OutlookCaseHelper
public Form1()
{
InitializeComponent();
this.Icon = new Icon(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "casenew.ico")); //adding the icon
this.Icon = new Icon(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "casenew.ico"));
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
outlookHelper = new OutlookHelper();
@@ -47,10 +47,14 @@ namespace OutlookCaseHelper
InitializeTray();
InitializeTimer();
SetStartupWithWindows(true);
// Task.Run(() => outlookHelper.ScanInboxOnStartup());
trayIcon.ShowBalloonTip(3000, "Outlook Case Manager", "App is running and monitoring your emails.", ToolTipIcon.Info);
}
public void ReloadOutlookRules()
{
outlookHelper.ReloadRules();
}
private void SetStartupWithWindows(bool enable)
{
try
@@ -155,6 +159,7 @@ namespace OutlookCaseHelper
trayMenu.Items.Add("Create Rule (Manual ID)", null, CreateRuleManual_Click);
trayMenu.Items.Add("Remove Rule (Selected Email)", null, RemoveRuleFromSelected_Click);
trayMenu.Items.Add("Remove Rule (Manual ID)", null, RemoveRule_Click);
trayMenu.Items.Add("Run All Rules Now", null, RunAllRules_Click);
trayMenu.Items.Add("-");
trayMenu.Items.Add("Settings", null, Settings_Click);
trayMenu.Items.Add("Start with Windows", null, ToggleStartup_Click);
@@ -168,12 +173,16 @@ namespace OutlookCaseHelper
trayIcon.Visible = true;
trayIcon.MouseDoubleClick += TrayIcon_MouseDoubleClick;
// Marca o estado atual do startup
using var regKey = Registry.CurrentUser.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", false);
var startupItem = trayMenu.Items[6] as ToolStripMenuItem;
if (startupItem != null)
startupItem.Checked = regKey?.GetValue("OutlookCaseHelper") != null;
foreach (ToolStripItem menuItem in trayMenu.Items)
{
if (menuItem is ToolStripMenuItem item && item.Text == "Start with Windows")
{
item.Checked = regKey?.GetValue("OutlookCaseHelper") != null;
break;
}
}
}
private void ToggleStartup_Click(object? sender, EventArgs e)
@@ -197,6 +206,7 @@ namespace OutlookCaseHelper
var form = new HotkeySettingsForm(
hotkeyCreateMod, hotkeyCreateKey,
hotkeyRemoveMod, hotkeyRemoveKey);
form.Owner = this;
if (form.ShowDialog() == DialogResult.OK)
{
@@ -226,6 +236,24 @@ namespace OutlookCaseHelper
catch { }
}
private void RunAllRules_Click(object? sender, EventArgs e)
{
try
{
trayIcon.ShowBalloonTip(2000, "Outlook Case Manager", "Running all rules...", ToolTipIcon.Info);
Task.Run(() =>
{
outlookHelper.RunAllRules();
this.Invoke(() =>
trayIcon.ShowBalloonTip(3000, "Outlook Case Manager", "All rules applied successfully!", ToolTipIcon.Info));
});
}
catch (Exception ex)
{
MessageBox.Show($"Error: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ProcessEmail_Click(object? sender, EventArgs e)
{
try
@@ -426,9 +454,9 @@ namespace OutlookCaseHelper
public HotkeySettingsForm(uint createMod, uint createKey, uint removeMod, uint removeKey)
{
this.Text = "Hotkey Settings";
this.Size = new Size(400, 300);
this.MinimumSize = new Size(400, 300);
this.MaximumSize = new Size(400, 300);
this.Size = new Size(420, 280);
this.MinimumSize = new Size(420, 280);
this.MaximumSize = new Size(420, 280);
this.FormBorderStyle = FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
@@ -442,29 +470,61 @@ namespace OutlookCaseHelper
cmbCreateKey = new ComboBox { Left = 220, Top = 38, Width = 100, DropDownStyle = ComboBoxStyle.DropDownList };
cmbCreateKey.Items.AddRange(KeyOptions);
var lblRemove = new Label { Text = "Remove Rule shortcut:", Left = 20, Top = 85, Width = 350, Height = 20, Font = new Font(Font, FontStyle.Bold) };
chkRemoveAlt = new CheckBox { Text = "Alt", Left = 20, Top = 110, Width = 60, Checked = (removeMod & 0x0001) != 0 };
chkRemoveCtrl = new CheckBox { Text = "Ctrl", Left = 85, Top = 110, Width = 60, Checked = (removeMod & 0x0002) != 0 };
chkRemoveShift = new CheckBox { Text = "Shift", Left = 150, Top = 110, Width = 65, Checked = (removeMod & 0x0004) != 0 };
cmbRemoveKey = new ComboBox { Left = 220, Top = 108, Width = 100, DropDownStyle = ComboBoxStyle.DropDownList };
var lblRemove = new Label { Text = "Remove Rule shortcut:", Left = 20, Top = 80, Width = 350, Height = 20, Font = new Font(Font, FontStyle.Bold) };
chkRemoveAlt = new CheckBox { Text = "Alt", Left = 20, Top = 105, Width = 60, Checked = (removeMod & 0x0001) != 0 };
chkRemoveCtrl = new CheckBox { Text = "Ctrl", Left = 85, Top = 105, Width = 60, Checked = (removeMod & 0x0002) != 0 };
chkRemoveShift = new CheckBox { Text = "Shift", Left = 150, Top = 105, Width = 65, Checked = (removeMod & 0x0004) != 0 };
cmbRemoveKey = new ComboBox { Left = 220, Top = 103, Width = 100, DropDownStyle = ComboBoxStyle.DropDownList };
cmbRemoveKey.Items.AddRange(KeyOptions);
SelectKey(cmbCreateKey, createKey);
SelectKey(cmbRemoveKey, removeKey);
var btnOk = new Button { Text = "Save", Left = 200, Top = 220, Width = 80, DialogResult = DialogResult.OK };
var btnCancel = new Button { Text = "Cancel", Left = 290, Top = 220, Width = 80, DialogResult = DialogResult.Cancel };
// Todos os botões na mesma linha
var btnViewRules = new Button { Text = "View Rules", Left = 20, Top = 200, Width = 90 };
btnViewRules.Click += (s, e) =>
{
try
{
string rulesPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"OutlookCaseHelper", "active_rules.json");
if (File.Exists(rulesPath))
System.Diagnostics.Process.Start("notepad.exe", rulesPath);
else
MessageBox.Show("No rules file found.", "Info",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch { }
};
var btnReloadRules = new Button { Text = "Reload Rules", Left = 118, Top = 200, Width = 90 };
btnReloadRules.Click += (s, e) =>
{
try
{
if (this.Owner is Form1 form1)
{
form1.ReloadOutlookRules();
MessageBox.Show("Rules reloaded successfully!", "Success",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch { }
};
var btnOk = new Button { Text = "Save", Left = 216, Top = 200, Width = 80, DialogResult = DialogResult.OK };
var btnCancel = new Button { Text = "Cancel", Left = 304, Top = 200, Width = 80, DialogResult = DialogResult.Cancel };
this.Controls.AddRange(new Control[] {
lblCreate, chkCreateAlt, chkCreateCtrl, chkCreateShift, cmbCreateKey,
lblRemove, chkRemoveAlt, chkRemoveCtrl, chkRemoveShift, cmbRemoveKey,
btnOk, btnCancel
});
lblCreate, chkCreateAlt, chkCreateCtrl, chkCreateShift, cmbCreateKey,
lblRemove, chkRemoveAlt, chkRemoveCtrl, chkRemoveShift, cmbRemoveKey,
btnViewRules, btnReloadRules, btnOk, btnCancel
});
this.AcceptButton = btnOk;
this.CancelButton = btnCancel;
}
private void SelectKey(ComboBox cmb, uint keyCode)
{
var key = (Keys)keyCode;
+230 -19
View File
@@ -26,7 +26,65 @@ namespace OutlookCaseHelper
"active_rules.json");
Directory.CreateDirectory(Path.GetDirectoryName(rulesFilePath)!);
LoadRules();
// Não tenta ligar ao Outlook aqui — liga só quando necessário
}
public void RunAllRules()
{
if (!EnsureOutlookConnected()) return;
if (activeRules.Count == 0) return;
try
{
Outlook.Folder? inboxFolder =
outlookNamespace!.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
if (inboxFolder == null) return;
Outlook.Folder? sentFolder =
outlookNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder;
Outlook.Folder casesFolder = GetOrCreateFolder(inboxFolder, "Cases");
Outlook.Folder activeFolder = GetOrCreateFolder(casesFolder, "Active");
var rootFolder = inboxFolder.Parent as Outlook.Folder;
var allFolders = new List<Outlook.Folder>();
if (rootFolder != null)
GetAllFolders(rootFolder, allFolders, casesFolder.EntryID);
foreach (var folderName in activeRules)
{
string trackingId = ExtractTrackingId(folderName);
string filter = $"@SQL=\"urn:schemas:httpmail:subject\" LIKE '%TrackingID#{trackingId}%'";
Outlook.Folder trackingFolder = GetOrCreateFolder(activeFolder, folderName);
foreach (var folder in allFolders)
{
try { MoveFilteredEmails(folder, filter, trackingFolder); } catch { }
}
}
}
catch { }
}
public void ReloadRules()
{
activeRules.Clear();
LoadRules();
}
private void GetAllFolders(Outlook.Folder parent, List<Outlook.Folder> result, string excludeEntryId)
{
foreach (Outlook.Folder folder in parent.Folders)
{
try
{
if (folder.EntryID == excludeEntryId) continue;
result.Add(folder);
if (folder.Folders.Count > 0)
GetAllFolders(folder, result, excludeEntryId);
}
catch { }
}
}
private bool EnsureOutlookConnected()
@@ -146,6 +204,26 @@ namespace OutlookCaseHelper
return null;
}
/*public bool ExistsInClosed(string trackingId)
{
try
{
if (!EnsureOutlookConnected()) return false;
Outlook.Folder? inboxFolder =
outlookNamespace!.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
if (inboxFolder == null) return false;
Outlook.Folder? casesFolder = GetFolder(inboxFolder, "Cases");
if (casesFolder == null) return false;
Outlook.Folder? closedFolder = GetFolder(casesFolder, "Closed");
if (closedFolder == null) return false;
return GetFolderStartingWith(closedFolder, trackingId) != null;
}
catch { return false; }
}*/
public bool ExistsInClosed(string trackingId)
{
try
@@ -216,6 +294,40 @@ namespace OutlookCaseHelper
catch { return null; }
}
/* public bool ReopenFromClosed(string trackingId, Outlook.MailItem? triggerEmail = null)
{
if (!EnsureOutlookConnected()) return false;
try
{
Outlook.Folder? inboxFolder =
outlookNamespace!.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
if (inboxFolder == null) return false;
Outlook.Folder casesFolder = GetOrCreateFolder(inboxFolder, "Cases");
Outlook.Folder activeFolder = GetOrCreateFolder(casesFolder, "Active");
Outlook.Folder? closedFolder = GetFolder(casesFolder, "Closed");
if (closedFolder == null) return false;
Outlook.Folder? closedTracking = GetFolderStartingWith(closedFolder, trackingId);
if (closedTracking == null) return false;
string existingName = closedTracking.Name;
closedTracking.MoveTo(activeFolder);
if (triggerEmail != null)
{
Outlook.Folder? movedFolder = GetFolder(activeFolder, existingName);
if (movedFolder != null)
triggerEmail.Move(movedFolder);
}
activeRules.Add(existingName);
SaveRules();
return true;
}
catch { return false; }
}*/
public bool ReopenFromClosed(string trackingId, Outlook.MailItem? triggerEmail = null)
{
if (!EnsureOutlookConnected()) return false;
@@ -234,22 +346,106 @@ namespace OutlookCaseHelper
if (closedTracking == null) return false;
string existingName = closedTracking.Name;
closedTracking.MoveTo(activeFolder);
if (triggerEmail != null)
// Verifica se já existe pasta com mesmo nome em Active
Outlook.Folder? existingActive = GetFolder(activeFolder, existingName);
if (existingActive != null)
{
Outlook.Folder? movedFolder = GetFolder(activeFolder, existingName);
if (movedFolder != null)
triggerEmail.Move(movedFolder);
var toMove = new List<Outlook.MailItem>();
foreach (object item in closedTracking.Items)
if (item is Outlook.MailItem mail) toMove.Add(mail);
foreach (var mail in toMove)
mail.Move(existingActive);
try { closedTracking.Delete(); } catch { }
}
else
{
closedTracking.MoveTo(activeFolder);
}
// Move o email trigger — usa try/catch separado para não falhar o resto
if (triggerEmail != null)
{
try
{
Outlook.Folder? targetFolder = GetFolder(activeFolder, existingName);
if (targetFolder != null)
triggerEmail.Move(targetFolder);
}
catch { }
}
// Adiciona regra — independente do email trigger
activeRules.Add(existingName);
SaveRules();
return true;
}
catch { return false; }
catch (Exception ex)
{
// Se a pasta já foi movida mas a regra não foi adicionada, tenta recuperar
try
{
Outlook.Folder? inboxFolder =
outlookNamespace!.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
Outlook.Folder? casesFolder = GetFolder(inboxFolder!, "Cases");
Outlook.Folder? activeFolder = GetFolder(casesFolder!, "Active");
Outlook.Folder? movedFolder = GetFolderStartingWith(activeFolder!, trackingId);
if (movedFolder != null)
{
activeRules.Add(movedFolder.Name);
SaveRules();
return true; // pasta estava lá, regra foi adicionada
}
}
catch { }
return false;
}
}
/* public bool CreateFolderAndMoveEmails(string trackingId, string folderName)
{
if (!EnsureOutlookConnected()) return false;
try
{
Outlook.Folder? inboxFolder =
outlookNamespace!.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
if (inboxFolder == null) return false;
Outlook.Folder casesFolder = GetOrCreateFolder(inboxFolder, "Cases");
Outlook.Folder activeFolder = GetOrCreateFolder(casesFolder, "Active");
Outlook.Folder trackingFolder = GetOrCreateFolder(activeFolder, folderName);
string filter = $"@SQL=\"urn:schemas:httpmail:subject\" LIKE '%TrackingID#{trackingId}%'";
Outlook.Items restricted = inboxFolder.Items.Restrict(filter);
var toMove = new List<Outlook.MailItem>();
foreach (object item in restricted)
if (item is Outlook.MailItem mail) toMove.Add(mail);
foreach (var mail in toMove)
mail.Move(trackingFolder);
Outlook.Folder? sentFolder =
outlookNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder;
if (sentFolder != null)
{
Outlook.Items restrictedSent = sentFolder.Items.Restrict(filter);
var toMoveSent = new List<Outlook.MailItem>();
foreach (object item in restrictedSent)
if (item is Outlook.MailItem mail) toMoveSent.Add(mail);
foreach (var mail in toMoveSent)
mail.Move(trackingFolder);
}
activeRules.Add(folderName);
SaveRules();
return true;
}
catch (Exception ex)
{
MessageBox.Show($"Error: {ex.Message}", "Error");
return false;
}
}*/
public bool CreateFolderAndMoveEmails(string trackingId, string folderName)
{
if (!EnsureOutlookConnected()) return false;
@@ -265,23 +461,24 @@ namespace OutlookCaseHelper
string filter = $"@SQL=\"urn:schemas:httpmail:subject\" LIKE '%TrackingID#{trackingId}%'";
Outlook.Items restricted = inboxFolder.Items.Restrict(filter);
var toMove = new List<Outlook.MailItem>();
foreach (object item in restricted)
if (item is Outlook.MailItem mail) toMove.Add(mail);
foreach (var mail in toMove)
mail.Move(trackingFolder);
// Procura em Inbox
MoveFilteredEmails(inboxFolder, filter, trackingFolder);
// Procura em Sent
Outlook.Folder? sentFolder =
outlookNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder;
if (sentFolder != null)
MoveFilteredEmails(sentFolder, filter, trackingFolder);
// Procura em todas as outras pastas do utilizador
foreach (Outlook.Folder folder in inboxFolder.Parent.Folders)
{
Outlook.Items restrictedSent = sentFolder.Items.Restrict(filter);
var toMoveSent = new List<Outlook.MailItem>();
foreach (object item in restrictedSent)
if (item is Outlook.MailItem mail) toMoveSent.Add(mail);
foreach (var mail in toMoveSent)
mail.Move(trackingFolder);
if (folder.Name != "Cases" &&
folder.EntryID != inboxFolder.EntryID &&
folder.EntryID != sentFolder?.EntryID)
{
try { MoveFilteredEmails(folder, filter, trackingFolder); } catch { }
}
}
activeRules.Add(folderName);
@@ -295,6 +492,20 @@ namespace OutlookCaseHelper
}
}
private void MoveFilteredEmails(Outlook.Folder source, string filter, Outlook.Folder dest)
{
try
{
Outlook.Items restricted = source.Items.Restrict(filter);
var toMove = new List<Outlook.MailItem>();
foreach (object item in restricted)
if (item is Outlook.MailItem mail) toMove.Add(mail);
foreach (var mail in toMove)
mail.Move(dest);
}
catch { }
}
public bool RemoveRuleAndMoveToClosed(string folderName)
{
if (!EnsureOutlookConnected()) return false;
+1 -17
View File
@@ -6,26 +6,10 @@ namespace OutlookCaseHelper
internal static class Program
{
[STAThread]
static void Main(string[] args)
static void Main()
{
try
{
if (args.Length > 0 && args[0] == "/postinstall")
{
string exePath = System.Diagnostics.Process.GetCurrentProcess().MainModule!.FileName;
var psi = new System.Diagnostics.ProcessStartInfo
{
FileName = exePath,
UseShellExecute = true,
CreateNoWindow = false
};
System.Threading.Thread.Sleep(12000); // aguarda 12 segundos
System.Diagnostics.Process.Start(psi);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
@@ -128,20 +128,6 @@
{
"CustomAction"
{
"{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_DD81DF56EF8A4C8E95F2B3F1B9E1759D"
{
"Name" = "8:OutlookCaseHelper.exe"
"Condition" = "8:LAUNCH_APP=\"1\""
"Object" = "8:_20E8A2E3188C435B800533011482D2FC"
"FileType" = "3:2"
"InstallAction" = "3:1"
"Arguments" = "8:/postinstall"
"EntryPoint" = "8:"
"Sequence" = "3:1"
"Identifier" = "8:_BB6F4E07_E0B7_4049_9B93_6BD9670746E7"
"InstallerClass" = "11:FALSE"
"CustomActionData" = "8:"
}
}
"DefaultFeature"
{
@@ -374,7 +360,7 @@
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Outlook Case Manager"
"ProductCode" = "8:{D8A20294-9095-4817-808A-8B9144CD168F}"
"PackageCode" = "8:{F9F5DDD8-2BB9-40B2-89C9-074DFFBBBC2A}"
"PackageCode" = "8:{8F8E7EE2-D7ED-47C6-BD5F-617C4F88BEDA}"
"UpgradeCode" = "8:{AAF43788-D89F-4285-AC74-CA5E1413DADC}"
"AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE"
@@ -704,262 +690,6 @@
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7D04F05A2A1149FCB26D59521B1E8172"
{
"Sequence" = "3:110"
"DisplayName" = "8:Checkboxes (A)"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdCustomCheck1Dlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"BannerText"
{
"Name" = "8:BannerText"
"DisplayName" = "8:#1014"
"Description" = "8:#1114"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:Launch options"
"DefaultValue" = "8:#1214"
"UsePlugInResources" = "11:TRUE"
}
"BodyText"
{
"Name" = "8:BodyText"
"DisplayName" = "8:#1015"
"Description" = "8:#1115"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:Select additional options"
"DefaultValue" = "8:#1215"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox1Label"
{
"Name" = "8:Checkbox1Label"
"DisplayName" = "8:#1034"
"Description" = "8:#1134"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:Launch Outlook Case Manager after installation"
"DefaultValue" = "8:#1234"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox1Property"
{
"Name" = "8:Checkbox1Property"
"DisplayName" = "8:#1030"
"Description" = "8:#1130"
"Type" = "3:14"
"ContextData" = "8:Public"
"Attributes" = "3:2"
"Setting" = "3:2"
"Value" = "8:LAUNCH_APP"
"DefaultValue" = "8:CHECKBOXA1"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox1Value"
{
"Name" = "8:Checkbox1Value"
"DisplayName" = "8:#1038"
"Description" = "8:#1138"
"Type" = "3:2"
"ContextData" = "8:Unchecked=;Checked=1"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:1"
"DefaultValue" = "8:"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox1Visible"
{
"Name" = "8:Checkbox1Visible"
"DisplayName" = "8:#1026"
"Description" = "8:#1126"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox2Label"
{
"Name" = "8:Checkbox2Label"
"DisplayName" = "8:#1035"
"Description" = "8:#1135"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1235"
"DefaultValue" = "8:#1235"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox2Property"
{
"Name" = "8:Checkbox2Property"
"DisplayName" = "8:#1031"
"Description" = "8:#1131"
"Type" = "3:14"
"ContextData" = "8:Public"
"Attributes" = "3:2"
"Setting" = "3:2"
"Value" = "8:CHECKBOXA2"
"DefaultValue" = "8:CHECKBOXA2"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox2Value"
{
"Name" = "8:Checkbox2Value"
"DisplayName" = "8:#1039"
"Description" = "8:#1139"
"Type" = "3:2"
"ContextData" = "8:Unchecked=;Checked=1"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:"
"DefaultValue" = "8:"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox2Visible"
{
"Name" = "8:Checkbox2Visible"
"DisplayName" = "8:#1027"
"Description" = "8:#1127"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:0"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox3Label"
{
"Name" = "8:Checkbox3Label"
"DisplayName" = "8:#1036"
"Description" = "8:#1136"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1236"
"DefaultValue" = "8:#1236"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox3Property"
{
"Name" = "8:Checkbox3Property"
"DisplayName" = "8:#1032"
"Description" = "8:#1132"
"Type" = "3:14"
"ContextData" = "8:Public"
"Attributes" = "3:2"
"Setting" = "3:2"
"Value" = "8:CHECKBOXA3"
"DefaultValue" = "8:CHECKBOXA3"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox3Value"
{
"Name" = "8:Checkbox3Value"
"DisplayName" = "8:#1040"
"Description" = "8:#1140"
"Type" = "3:2"
"ContextData" = "8:Unchecked=;Checked=1"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:"
"DefaultValue" = "8:"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox3Visible"
{
"Name" = "8:Checkbox3Visible"
"DisplayName" = "8:#1028"
"Description" = "8:#1128"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:0"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox4Label"
{
"Name" = "8:Checkbox4Label"
"DisplayName" = "8:#1037"
"Description" = "8:#1137"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1237"
"DefaultValue" = "8:#1237"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox4Property"
{
"Name" = "8:Checkbox4Property"
"DisplayName" = "8:#1033"
"Description" = "8:#1133"
"Type" = "3:14"
"ContextData" = "8:Public"
"Attributes" = "3:2"
"Setting" = "3:2"
"Value" = "8:CHECKBOXA4"
"DefaultValue" = "8:CHECKBOXA4"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox4Value"
{
"Name" = "8:Checkbox4Value"
"DisplayName" = "8:#1041"
"Description" = "8:#1141"
"Type" = "3:2"
"ContextData" = "8:Unchecked=;Checked=1"
"Attributes" = "3:0"
"Setting" = "3:2"
"Value" = "8:"
"DefaultValue" = "8:"
"UsePlugInResources" = "11:TRUE"
}
"Checkbox4Visible"
{
"Name" = "8:Checkbox4Visible"
"DisplayName" = "8:#1029"
"Description" = "8:#1129"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:0"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8D58EEEC23E14DBC9F4D9DB32472B784"
{
"Sequence" = "3:300"
+1
View File
@@ -9,6 +9,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
App.config = App.config
OutlookCaseHelper\bin\Debug\net8.0-windows\casenew.ico = OutlookCaseHelper\bin\Debug\net8.0-windows\casenew.ico
..\..\..\Downloads\README.md = ..\..\..\Downloads\README.md
EndProjectSection
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "OutlookCaseHelperSetup", "OutlookCaseHelperSetup\OutlookCaseHelperSetup.vdproj", "{45984EC3-3682-760C-C1F0-4987692FB84A}"