Browse our Products Toggle navigation
If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.
If you experience errors, when you try to download a file, make sure your network policies (enforced by your company or ISP) allow downloading ZIP and/or MSI files.
With the latest update to Aspose.Email for C++ API (24.3), C++ developers can utilize the newly added EnforceContainerClassMatching property in the FolderCreationOptions class and ensure consistent folder hierarchy in PST files. The C++ code example shared below illustrates the new API member’s usage:
EnforceContainerClassMatching
FolderCreationOptions
auto pst = PersonalStorage::Create(ms, FileFormatVersion::Unicode); // Create a standard Contacts folder with the IPF.Contacts container class. auto contacts = pst->CreatePredefinedFolder(u"Contacts", StandardIpmFolder::Contacts); // An exception will not arise. EnforceContainerClassMatching is false by default. contacts->AddSubFolder(u"Subfolder1", u"IPF.Note"); // An exception will occur as the container class of the subfolder being added (IPF.Note) // does not match the container class of the parent folder (IPF.Contact). auto options = System::MakeObject<FolderCreationOptions>(); options->set_EnforceContainerClassMatching(true); options->set_ContainerClass(u"IPF.Note"); contacts->AddSubFolder(u"Subfolder3", options);
Source*
Developers can now extract category colors associated with Outlook items stored in OLM files using the newly introduced OlmItemCategory class and the GetCategories method of the OlmStorage class.
OlmItemCategory
GetCategories
OlmStorage
This C++ coding example demonstrates obtaining a categories list from OML storage:
auto olm = OlmStorage::FromFile(u"storage.olm")) auto categories = olm.GetCategories(); for (auto category : System::IterateOver(categories)) { Console::WriteLine(String::Format(u"Category name: {0}", category->get_Name())); //Color is represented as a hexadecimal value: #rrggbb Console::WriteLine(String::Format(u"Category color: {0}", category->get_Color())); }
The following sample code shows how to fetch the color of the message category:
for (auto&& msg : System::IterateOver(olm->EnumerateMessages(folder))) { if (msg->get_Categories() != nullptr) { for (System::String msgCategory : msg->get_Categories()) { Console::WriteLine(String::Format(u"Category name: {0}", msgCategory)); var categoryColor = cat.First(c => c.Name.Equals(msgCategory, StringComparison.OrdinalIgnoreCase)).Color; auto categoryColor = cat->LINQ_First(static_cast<System::Func<System::SharedPtr<OlmItemCategory>, bool>>(static_cast<std::function<bool(System::SharedPtr<OlmItemCategory> c)>>([&msgCategory](System::SharedPtr<OlmItemCategory> c) -> bool { return c->get_Name().Equals(msgCategory, System::StringComparison::OrdinalIgnoreCase); })))->get_Color(); Console::WriteLine(String::Format(u"Category color: {0}", categoryColor)); } } }
You can view the list of all new features, enhancements, and bug fixes introduced in this release by visiting Aspose.Email for C++ 24.3 Release Notes.