System::SharedPtr> fileFormatExt = System::MakeObject>(); fileFormatExt->Add(u"RTF", u"_rtfFile_out.rtf"); fileFormatExt->Add(u"MSWordDoc", u"_wordFile_out.docx"); fileFormatExt->Add(u"ExcelML12", u"_excelFile_out.xlsx"); System::SharedPtr project = System::MakeObject(dataDir + u"Embedded.mpp"); { auto oleObject_enumerator = (project->get_OleObjects())->GetEnumerator(); decltype(oleObject_enumerator->get_Current()) oleObject; while (oleObject_enumerator->MoveNext() && (oleObject = oleObject_enumerator->get_Current(), true)) { if (!System::String::IsNullOrEmpty(oleObject->get_FileFormat()) && fileFormatExt->ContainsKey(oleObject->get_FileFormat())) { System::String path = dataDir + u"EmbeddedContent_" + fileFormatExt->idx_get(oleObject->get_FileFormat()); { System::SharedPtr fileStream = System::MakeObject(path, System::IO::FileMode::Create); // Clearing resources under 'using' statement System::Details::DisposeGuard<1> __dispose_guard_0({ fileStream}); // ------------------------------------------ try { fileStream->Write(oleObject->get_Content(), 0, oleObject->get_Content()->get_Length()); } catch(...) { __dispose_guard_0.SetCurrentException(std::current_exception()); } } } } }