void FooExpFilter::ExportToStream( IPMStream* stream, IDocument* doc, IPMUnknown* targetboss, const PMString& formatName, UIFlags uiFlags) { IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); WideString pathWID(pathID); std::string xID; StringUtils::ConvertWideStringToUTF8 (pathWID, xID);
IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); // URL for java PMString pathJ = FileUtils::SysFileToFileURL(outputFile); WideString pathWJ(pathJ); std::string xj; StringUtils::ConvertWideStringToUTF8 (pathWJ, xj);
if(externFile.startsWith("file://")) { File externFd = new File(new java.net.URI(externFile)); externFile = externFd.getAbsolutePath(); }
void FooExpFilter::ExportToStream( IPMStream* stream, IDocument* doc, IPMUnknown* targetboss, const PMString& formatName, UIFlags uiFlags) { IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); #ifdef WINDOWS SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); #endif #ifdef MACINTOSH FSSpec fsSpec; PMString pathID; OSErr err = FileUtils::IDFileToFSSpec(outputFile, fsSpec); if (err == noErr) { FSRef fsRef; err = MacFileUtils::FSSpecToFSRef(fsSpec, fsRef); if (err == noErr) { CFURLRef appURL = ::CFURLCreateFromFSRef(NULL, &fsRef); CFStringRef app_str = ::CFURLCopyFileSystemPath(appURL, kCFURLPOSIXPathStyle); if (app_str) { pathID.SetCFString(app_str); ::CFRelease(app_str); } if (appURL) ::CFRelease(appURL); } } #endif WideString pathWID(pathID); std::string xID; StringUtils::ConvertWideStringToUTF8 (pathWID, xID);
IDFile outputFile; InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA); outputFile = fileData->GetSysFile(); #ifdef WINDOWS SDKFileHelper fh(outputFile); PMString pathID = fh.GetPath(); WideString pathWID(pathID); std::string xfinal; StringUtils::ConvertWideStringToUTF8 (pathWID, xfinal); #endif #ifdef MACINTOSH PMString pathJ = FileUtils::SysFileToFileURL(outputFile); WideString pathWJ(pathJ); std::string xj; StringUtils::ConvertWideStringToUTF8 (pathWJ, xj); std::string xfinal = FileUtils::FileURLToPosixPath(xj); #endif
Source: https://habr.com/ru/post/148115/
All Articles