void EditWithExternalTool(const Graphic &pGraphic){ //get the Preferred File Extension for this graphic String aExt ; lcl_GetPreferedExtension(aExt, pGraphic); //Create the temp File rtl::OUString tempFileBase, tempFileName ; oslFileHandle tempFileHandle ; osl::FileBase::createTempFile( 0, &tempFileHandle, &tempFileBase); // Move it to a file name with extension properly set tempFileName = tempFileBase + rtl::OUString(String('.')) + rtl::OUString(aExt); osl::File::move(tempFileBase, tempFileName); //Write Graphic to the Temp File GraphicFilter& rGF = *GraphicFilter::GetGraphicFilter(); USHORT nFilter( rGF.GetExportFormatNumber( aExt ) ); String aFilter( rGF.GetExportFormatShortName( nFilter ) ); String sPath(tempFileName.getStr()); XOutBitmap::WriteGraphic(pGraphic, sPath, aFilter, XOUTBMP_DONT_EXPAND_FILENAME); //TODO: open in External application //Remove the temporary file osl::File::remove(tempFileName); //char *debug = (char*)rtl::OUStringToOString(tempFileName,RTL_TEXTENCODING_UTF8).getStr(); //std::fprintf(stderr, "DEBUG : %s", debug); }