uint32_t FileWriterI::open(string filepath) { GError * err = NULL; // open file GsfOutput * output = gsf_output_stdio_new (filepath.c_str(), &err); if (output == NULL) { ERROR << "ops::msole::FileWriterI::open() : can't open " + filepath + " : " + err->message; g_error_free (err); return RET_ERR; } baseOutfile = gsf_outfile_msole_new (output); g_object_unref (G_OBJECT (output)); if (baseOutfile == NULL) { ERROR << "ops::msole::FileWriterI::open() : can't create OLE file :" + filepath + " : " + err->message; g_error_free (err); return RET_ERR; } // create map for keeping open directories openDirList["/"] = GSF_OUTPUT(baseOutfile); DEBUG << "ops::msole::FileWriterI::open() : " + filepath + " opened"; return RET_OK; }
static int test (char *argv[]) { GsfInfile *infile; GsfOutfile *outfile; GsfOutput *output; GError *err = NULL; fprintf (stderr, "%s\n", argv [1]); infile = gsf_infile_stdio_new (argv[1], &err); if (infile == NULL) { g_return_val_if_fail (err != NULL, 1); g_warning ("'%s' error: %s", argv[1], err->message); g_error_free (err); return 1; } output = gsf_output_stdio_new (argv[2], &err); if (output == NULL) { g_return_val_if_fail (err != NULL, 1); g_warning ("'%s' error: %s", argv[2], err->message); g_error_free (err); g_object_unref (G_OBJECT (infile)); return 1; } outfile = gsf_outfile_msole_new (output); g_object_unref (G_OBJECT (output)); clone (GSF_INPUT (infile), GSF_OUTPUT (outfile)); return 0; }