You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/lib/libgsf-1.12.3/doc/html/gsf-GsfClipData.html

454 lines
20 KiB

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>GsfClipData</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="GSF Reference Manual">
<link rel="up" href="parsers.html" title="Stream Parsers">
<link rel="prev" href="gsf-GsfBlob.html" title="GsfBlob">
<link rel="next" href="gsf-Structured-Blobs.html" title="Structured Blobs">
<meta name="generator" content="GTK-Doc V1.4 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="into.html" title="Part&#160;I.&#160;GSF Overview">
<link rel="part" href="api.html" title="Part&#160;II.&#160;API Reference">
<link rel="chapter" href="io.html" title="Basic Input/Output">
<link rel="chapter" href="sources.html" title="Stream Sources">
<link rel="chapter" href="parsers.html" title="Stream Parsers">
<link rel="chapter" href="misc.html" title="Miscellaneous">
<link rel="index" href="ix01.html" title="Index">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="gsf-GsfBlob.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="parsers.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GSF Reference Manual</th>
<td><a accesskey="n" href="gsf-Structured-Blobs.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry" lang="en">
<a name="gsf-GsfClipData"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">GsfClipData</span></h2>
<p>GsfClipData &#8212; Object to hold clipboard data from a VT_CF section</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
enum <a href="gsf-GsfClipData.html#GsfClipFormat">GsfClipFormat</a>;
enum <a href="gsf-GsfClipData.html#GsfClipFormatWindows">GsfClipFormatWindows</a>;
<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a>;
<a href="gsf-GsfClipData.html#GsfClipDataClass">GsfClipDataClass</a>;
<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a>* <a href="gsf-GsfClipData.html#gsf-clip-data-new">gsf_clip_data_new</a> (<a href="gsf-GsfClipData.html#GsfClipFormat">GsfClipFormat</a> format,
<a href="gsf-GsfBlob.html#GsfBlob">GsfBlob</a> *data_blob);
<a href="gsf-GsfClipData.html#GsfClipFormat">GsfClipFormat</a> <a href="gsf-GsfClipData.html#gsf-clip-data-get-format">gsf_clip_data_get_format</a> (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data);
<a href="gsf-GsfBlob.html#GsfBlob">GsfBlob</a>* <a href="gsf-GsfClipData.html#gsf-clip-data-get-data-blob">gsf_clip_data_get_data_blob</a> (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data);
<a href="gsf-GsfClipData.html#GsfClipFormatWindows">GsfClipFormatWindows</a> <a href="gsf-GsfClipData.html#gsf-clip-data-get-windows-clipboard-format">gsf_clip_data_get_windows_clipboard_format</a>
(<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data,
GError **error);
gconstpointer <a href="gsf-GsfClipData.html#gsf-clip-data-peek-real-data">gsf_clip_data_peek_real_data</a> (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data,
gsize *ret_size,
GError **error);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2574532"></a><h2>Description</h2>
<p>
OLE2 files may contain clipboard data in the
<code class="literal">VT_CF</code> property of the metadata in a
<code class="literal">SummaryInfo</code> section. This data is used, among
other things, to represent a thumbnail or pre-rendered version of
the data in the file. <code class="classname">GsfClipData</code> is an
object that holds such clipboard data.
</p>
<p>
You can get a <code class="classname">GsfClipData</code> object from the
<span class="type">GValue</span> returned by <a href="gsf-metadata.html#gsf-doc-prop-get-val"><code class="function">gsf_doc_prop_get_val()</code></a>, after you have done
<code class="literal">gsf_doc_meta_data_lookup (meta_data,
GSF_META_NAME_THUMBNAIL)</code>. The resulting <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>
object, if it exists, contains the thumbnail data. In turn, the
thumbnail data may be in different formats, as specified by the
<a href="gsf-GsfClipData.html#GsfClipFormat"><span class="type">GsfClipFormat</span></a> enumeration.
</p>
<p>
Internally, <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> stores the thumbnail data plus any extra
information in a <a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a> object. <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> provides a
convenience function, <a href="gsf-GsfClipData.html#gsf-clip-data-peek-real-data"><code class="function">gsf_clip_data_peek_real_data()</code></a>, to extract
the thumbnail data directly. If you need to use the raw binary
data instead of the data specific to the thumbnail, you can use
<a href="gsf-GsfClipData.html#gsf-clip-data-get-data-blob"><code class="function">gsf_clip_data_get_data_blob()</code></a> to get the <a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a> object and
handle it yourself.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2574678"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2574684"></a><h3>
<a name="GsfClipFormat"></a>enum GsfClipFormat</h3>
<a class="indexterm" name="id2574694"></a><pre class="programlisting">typedef enum {
GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD = -1,
GSF_CLIP_FORMAT_MACINTOSH_CLIPBOARD = -2,
GSF_CLIP_FORMAT_GUID = -3,
GSF_CLIP_FORMAT_NO_DATA = 0,
GSF_CLIP_FORMAT_CLIPBOARD_FORMAT_NAME = 1, /* in the file it's actually any positive integer */
GSF_CLIP_FORMAT_UNKNOWN /* this is our own value for unknown types or invalid data */
} GsfClipFormat;
</pre>
<p>
A <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> stores all its thumbnail data and associated
information in an internal <a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a> object. The
<span class="type">GsfClipFormat</span> enumeration represents the possible
formats for this data blob.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD</code></span></td>
<td>The thumbnail data is stored in
Windows clipboard format. The particular sub-format can be in any of
the values in the <a href="gsf-GsfClipData.html#GsfClipFormatWindows"><span class="type">GsfClipFormatWindows</span></a> enumeration. When a
<a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> is in <em class="parameter"><code>GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD</code></em>, you can use
<a href="gsf-GsfClipData.html#gsf-clip-data-get-windows-clipboard-format"><code class="function">gsf_clip_data_get_windows_clipboard_format()</code></a> to get the sub-format
in which the data is actually stored.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_MACINTOSH_CLIPBOARD</code></span></td>
<td>The thumbnail data is stored in
Macintosh clipboard format, usually PICT.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_GUID</code></span></td>
<td>The thumbnail data contains a GUID specifying
the OLE component which can be used to render it. Please refer to
the OLE2 format documentation for details.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_NO_DATA</code></span></td>
<td>There is no thumbnail data.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_CLIPBOARD_FORMAT_NAME</code></span></td>
<td>The thumbnail data contains a
null-terminated string with a Windows clipboard format name. Please refer to
the OLE2 format documentation for details.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_UNKNOWN</code></span></td>
<td>The thumbnail data is in an unknown format,
but is nevertheless stored in a <a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2574885"></a><h3>
<a name="GsfClipFormatWindows"></a>enum GsfClipFormatWindows</h3>
<a class="indexterm" name="id2574896"></a><pre class="programlisting">typedef enum {
GSF_CLIP_FORMAT_WINDOWS_ERROR = -1, /* our own value */
GSF_CLIP_FORMAT_WINDOWS_UNKNOWN = -2, /* our own value */
GSF_CLIP_FORMAT_WINDOWS_METAFILE = 3, /* CF_METAFILEPICT */
GSF_CLIP_FORMAT_WINDOWS_DIB = 8, /* CF_DIB */
GSF_CLIP_FORMAT_WINDOWS_ENHANCED_METAFILE = 14 /* CF_ENHMETAFILE */
} GsfClipFormatWindows;
</pre>
<p>
When a <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> is in GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD
format, it can be in any of the subformats specified by the
<span class="type">GsfClipFormatWindows</span> enumeration. Use
<a href="gsf-GsfClipData.html#gsf-clip-data-get-windows-clipboard-format"><code class="function">gsf_clip_data_get_windows_clipboard_format()</code></a> to determine this
sub-format.
</p>
<p>
For all of these values, the <a href="gsf-GsfClipData.html#gsf-clip-data-peek-real-data"><code class="function">gsf_clip_data_peek_real_data()</code></a>
function lets you access the data directly.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_ERROR</code></span></td>
<td>The OLE file is probably corrupt.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_UNKNOWN</code></span></td>
<td>The specific clipboard format is
unknown to libgsf.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_METAFILE</code></span></td>
<td>The data is in Windows Metafile
format. While OLE files store extra header data in this case, the
<a href="gsf-GsfClipData.html#gsf-clip-data-peek-real-data"><code class="function">gsf_clip_data_peek_real_data()</code></a> function will let you access the WMF
data directly, and it will ignore the extra header bytes.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_DIB</code></span></td>
<td>The data is in Windows
Device-Independent Bitmap format.
</td>
</tr>
<tr>
<td>
<span class="term"><code class="literal">GSF_CLIP_FORMAT_WINDOWS_ENHANCED_METAFILE</code></span></td>
<td>The data is in Windows
Enhanced Metaflie format.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575056"></a><h3>
<a name="GsfClipData"></a>GsfClipData</h3>
<a class="indexterm" name="id2575065"></a><pre class="programlisting">typedef struct {
GObject object;
GsfClipDataPrivate *priv;
} GsfClipData;
</pre>
<p>
Object used to represent a VT_CF property in the OLE stream.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575083"></a><h3>
<a name="GsfClipDataClass"></a>GsfClipDataClass</h3>
<a class="indexterm" name="id2575093"></a><pre class="programlisting">typedef struct {
GObjectClass parent_class;
} GsfClipDataClass;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575109"></a><h3>
<a name="gsf-clip-data-new"></a>gsf_clip_data_new ()</h3>
<a class="indexterm" name="id2575120"></a><pre class="programlisting"><a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a>* gsf_clip_data_new (<a href="gsf-GsfClipData.html#GsfClipFormat">GsfClipFormat</a> format,
<a href="gsf-GsfBlob.html#GsfBlob">GsfBlob</a> *data_blob);</pre>
<p>
Creates a new <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a> object. This function acquires a reference to the
<em class="parameter"><code>data_blob</code></em>, so you should unref the blob on your own if you no longer need it
directly.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em>&#160;:</span></td>
<td> Format for the data inside the <em class="parameter"><code>data_blob</code></em>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data_blob</code></em>&#160;:</span></td>
<td> Object which holds the binary contents for the <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A newly-created <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575240"></a><h3>
<a name="gsf-clip-data-get-format"></a>gsf_clip_data_get_format ()</h3>
<a class="indexterm" name="id2575252"></a><pre class="programlisting"><a href="gsf-GsfClipData.html#GsfClipFormat">GsfClipFormat</a> gsf_clip_data_get_format (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data);</pre>
<p>
Queries the clipboard data format of a <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>. The format refers to the data
blob inside the <em class="parameter"><code>clip_data</code></em>; use <a href="gsf-GsfClipData.html#gsf-clip-data-get-data-blob"><code class="function">gsf_clip_data_get_data_blob()</code></a> to get that data blob.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clip_data</code></em>&#160;:</span></td>
<td> A <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The format in which the <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>'s data blob is stored.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575355"></a><h3>
<a name="gsf-clip-data-get-data-blob"></a>gsf_clip_data_get_data_blob ()</h3>
<a class="indexterm" name="id2575366"></a><pre class="programlisting"><a href="gsf-GsfBlob.html#GsfBlob">GsfBlob</a>* gsf_clip_data_get_data_blob (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data);</pre>
<p>
Queries the data blob that actually stores a <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>'s binary data.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clip_data</code></em>&#160;:</span></td>
<td> A <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A new reference to the <a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a> that stores this <em class="parameter"><code>clip_data</code></em>'s
binary data. You must use <code class="function">g_object_unref()</code> to dispose of that data blob when
you are done with it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575470"></a><h3>
<a name="gsf-clip-data-get-windows-clipboard-format"></a>gsf_clip_data_get_windows_clipboard_format ()</h3>
<a class="indexterm" name="id2575483"></a><pre class="programlisting"><a href="gsf-GsfClipData.html#GsfClipFormatWindows">GsfClipFormatWindows</a> gsf_clip_data_get_windows_clipboard_format
(<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data,
GError **error);</pre>
<p>
Queries the Windows clipboard data format for a <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>. The <em class="parameter"><code>clip_data</code></em> must
have been created with <span class="type">GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD</span>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clip_data</code></em>&#160;:</span></td>
<td> A <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>error</code></em>&#160;:</span></td>
<td> Location to store error, or <code class="literal">NULL</code>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A <a href="gsf-GsfClipData.html#GsfClipFormatWindows"><span class="type">GsfClipFormatWindows</span></a> value.
Possible errors: <span class="type">GSF_ERROR_INVALID_DATA</span> if the data blob in the <em class="parameter"><code>clip_data</code></em> is
smaller than it should be; in this case GSF_CLIP_FORMAT_WINDOWS_ERROR will be returned.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2575632"></a><h3>
<a name="gsf-clip-data-peek-real-data"></a>gsf_clip_data_peek_real_data ()</h3>
<a class="indexterm" name="id2575644"></a><pre class="programlisting">gconstpointer gsf_clip_data_peek_real_data (<a href="gsf-GsfClipData.html#GsfClipData">GsfClipData</a> *clip_data,
gsize *ret_size,
GError **error);</pre>
<p>
Queries a pointer directly to the clipboard data of a <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>. The
resulting pointer is not necessarily the same data pointer that was passed to
<a href="gsf-GsfBlob.html#gsf-blob-new"><code class="function">gsf_blob_new()</code></a> prior to creating the <em class="parameter"><code>clip_data</code></em>. For example, if the data is
in <span class="type">GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD</span> format, then it will have extra header
bytes in front of the actual metafile data. This function will skip over
those header bytes if necessary and return a pointer to the "real" data.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clip_data</code></em>&#160;:</span></td>
<td> A <a href="gsf-GsfClipData.html#GsfClipData"><span class="type">GsfClipData</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ret_size</code></em>&#160;:</span></td>
<td> Location to return the size of the returned data buffer.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>error</code></em>&#160;:</span></td>
<td> Location to store error, or <code class="literal">NULL</code>.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> Pointer to the real clipboard data. The size in bytes of this
buffer is returned in the <em class="parameter"><code>ret_size</code></em> argument.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2575810"></a><h2>See Also</h2>
<p>
<a href="gsf-GsfBlob.html#GsfBlob"><span class="type">GsfBlob</span></a>, <a href="gsf-metadata.html#GsfDocMetaData"><span class="type">GsfDocMetaData</span></a>
</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle">
<td align="left"><a accesskey="p" href="gsf-GsfBlob.html"><b>&lt;&lt;&#160;GsfBlob</b></a></td>
<td align="right"><a accesskey="n" href="gsf-Structured-Blobs.html"><b>Structured Blobs&#160;&gt;&gt;</b></a></td>
</tr></table>
</body>
</html>