| GSF Reference Manual |
|---|
MS OLE2MS OLE2 — |
GsfInfileMSOle;
GsfInfile* gsf_infile_msole_new (GsfInput *source,
GError **err);
gboolean gsf_infile_msole_get_class_id (GsfInfileMSOle const *ole,
guint8 *res);
GsfOutfileMSOle;
GsfOutfile* gsf_outfile_msole_new (GsfOutput *sink);
gboolean gsf_outfile_msole_set_class_id (GsfOutfileMSOle *ole,
guint8 const *clsid);
gboolean gsf_msole_metadata_read (GsfInput *in,
GError **err);
gboolean gsf_msole_metadata_write (GsfOutput *out,
gboolean doc_not_component,
GError **err);
GIConv gsf_msole_iconv_open_codepages_for_export
(guint codepage_to,
char const *from);
GIConv gsf_msole_iconv_open_codepage_for_import
(char const *to,
int codepage);
GIConv gsf_msole_iconv_open_for_export (void);
GIConv gsf_msole_iconv_open_codepage_for_export
(guint codepage_to);
GIConv gsf_msole_iconv_open_for_import (int codepage);
guint gsf_msole_iconv_win_codepage (void);
guint gsf_msole_codepage_to_lid (int codepage);
guint gsf_msole_lid_to_codepage (guint lid);
gchar* gsf_msole_lid_to_codepage_str (guint lid);
guint gsf_msole_lid_for_language (char const *lang);
GByteArray* gsf_msole_inflate (GsfInput *input,
gsf_off_t offset);
#define OLE_HEADER_START_BAT
#define OLE_HEADER_MAJOR_VER
#define OLE_HEADER_METABAT_SIZE
#define OLE_HEADER_DIRENT_START
#define OLE_HEADER_NUM_SBAT
#define OLE_HEADER_BB_SHIFT
#define OLE_HEADER_NUM_BAT
#define OLE_HEADER_THRESHOLD
#define OLE_HEADER_METABAT_BLOCK
#define OLE_HEADER_SBAT_START
#define OLE_HEADER_SIGNATURE
#define OLE_HEADER_BYTE_ORDER
#define OLE_HEADER_SB_SHIFT
#define OLE_HEADER_NUM_METABAT
#define OLE_HEADER_SIZE
#define OLE_HEADER_CLSID
#define OLE_HEADER_MINOR_VER
#define OLE_DEFAULT_BB_SHIFT
#define OLE_DEFAULT_SB_SHIFT
#define DIRENT_DETAILS_SIZE
#define DIRENT_SIZE
#define DIRENT_NAME_LEN
#define DIRENT_TYPE_PROPERTY
#define DIRENT_TYPE_FILE
#define DIRENT_MAGIC_END
#define DIRENT_TYPE_DIR
#define DIRENT_MAX_NAME_SIZE
#define DIRENT_FILE_SIZE
#define DIRENT_FIRSTBLOCK
#define DIRENT_TYPE_INVALID
#define DIRENT_USERFLAGS
#define DIRENT_COLOUR
#define DIRENT_MODIFY_TIME
#define DIRENT_TYPE_LOCKBYTES
#define DIRENT_CREATE_TIME
#define DIRENT_PREV
#define DIRENT_NEXT
#define DIRENT_CHILD
#define DIRENT_TYPE
#define DIRENT_CLSID
#define DIRENT_TYPE_ROOTDIR
#define BAT_MAGIC_METABAT
#define BAT_MAGIC_BAT
#define BAT_INDEX_SIZE
#define BAT_MAGIC_END_OF_CHAIN
#define BAT_MAGIC_UNUSED
GObject +----GsfInput +----GsfInfile +----GsfInfileMSOle
GObject +----GsfOutput +----GsfOutfile +----GsfOutfileMSOle
GsfInfile* gsf_infile_msole_new (GsfInput *source, GError **err);
Opens the root directory of an MS OLE file. NOTE : adds a reference to source
| source : | |
| err : | |
| Returns : | : the new ole file handler |
gboolean gsf_infile_msole_get_class_id (GsfInfileMSOle const *ole, guint8 *res);
Retrieves the 16 byte indentifier (often a GUID in MS Windows apps) stored within the directory associated with ole and stores it in res.
| ole : | a GsfInfileMSOle |
| res : | 16 byte identifier (often a GUID in MS Windows apps) |
| Returns : | TRUE on success |
GsfOutfile* gsf_outfile_msole_new (GsfOutput *sink);
Creates the root directory of an MS OLE file and manages the addition of children.
NOTE : adds a reference to sink
| sink : | a GsfOutput to hold the OLE2 file |
| Returns : | : the new ole file handler |
gboolean gsf_outfile_msole_set_class_id (GsfOutfileMSOle *ole, guint8 const *clsid);
Write clsid to the directory associated with ole.
| ole : | a GsfOutfileMSOle |
| clsid : | 16 byte identifier (often a GUID in MS Windows apps) |
| Returns : | TRUE on success. |
gboolean gsf_msole_metadata_read (GsfInput *in, GError **err);
| in : | |
| err : | |
| Returns : |
gboolean gsf_msole_metadata_write (GsfOutput *out, gboolean doc_not_component, GError **err);
| out : | |
| doc_not_component : | |
| err : | |
| Returns : |
GIConv gsf_msole_iconv_open_codepages_for_export
(guint codepage_to,
char const *from);
| codepage_to : | |
| from : | |
| Returns : | an iconv converter to go from utf8 -> to our best guess at a useful windows codepage. |
GIConv gsf_msole_iconv_open_codepage_for_import
(char const *to,
int codepage);
| to : | |
| codepage : | |
| Returns : | an iconv converter for codepage -> utf8. |
GIConv gsf_msole_iconv_open_for_export (void);
| Returns : | an iconv convert to go from utf8 -> to our best guess at a useful windows codepage. |
GIConv gsf_msole_iconv_open_codepage_for_export
(guint codepage_to);
| codepage_to : | |
| Returns : | an iconv converter to go from utf8 -> to our best guess at a useful windows codepage. |
GIConv gsf_msole_iconv_open_for_import (int codepage);
| codepage : | |
| Returns : | an iconv converter for single byte encodings codepage -> utf8. Attempt to handle the semantics of a specification for multibyte encodings since this is only supposed to be used for single bytes. |
guint gsf_msole_iconv_win_codepage (void);
| Returns : | our best guess at the applicable windows code page based on an environment variable or the current locale. |
guint gsf_msole_lid_to_codepage (guint lid);
| lid : | |
| Returns : | our best guess at the codepage for the given language id |
gchar* gsf_msole_lid_to_codepage_str (guint lid);
| lid : | |
| Returns : | the Iconv codepage string for the given LID. Return value must be g_free()'d |
guint gsf_msole_lid_for_language (char const *lang);
| lang : | |
| Returns : | the LID (Language Identifier) for the input language. If lang is null, return 0x0400 ("-none-"), and not 0x0000 ("no proofing") |
GByteArray* gsf_msole_inflate (GsfInput *input, gsf_off_t offset);
Decompresses an LZ compressed stream.
| input : | stream to read from |
| offset : | offset into it for start byte of compresse stream |
| Returns : | A GByteArray that the caller is responsible for freeing |
#define OLE_HEADER_METABAT_SIZE ((OLE_HEADER_SIZE - OLE_HEADER_START_BAT) / BAT_INDEX_SIZE)
| << Compression | metadata >> |