const.html

来自「perl教程」· HTML 代码 · 共 174 行

HTML
174
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../../displayToc.js"></script>
<script language="JavaScript" src="../../../tocParas.js"></script>
<script language="JavaScript" src="../../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../../scineplex.css">
<title>Win32::OLE::Const - Extract constant definitions from TypeLib</title>
<link rel="stylesheet" href="../../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',3);</script>
<h1><a>Win32::OLE::Const - Extract constant definitions from TypeLib</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<ul>

		<li><a href="#functions_methods">Functions/Methods</a></li>
	</ul>

	<li><a href="#examples">EXAMPLES</a></li>
	<li><a href="#authors_copyright">AUTHORS/COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Win32::OLE::Const - Extract constant definitions from TypeLib</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
    <span class="keyword">use</span> <span class="variable">Win32::OLE::Const</span> <span class="string">'Microsoft Excel'</span><span class="operator">;</span>
    <span class="keyword">printf</span> <span class="string">"xlMarkerStyleDot = %d\n"</span><span class="operator">,</span> <span class="variable">xlMarkerStyleDot</span><span class="operator">;</span>
</pre>
<pre>
    <span class="keyword">my</span> <span class="variable">$wd</span> <span class="operator">=</span> <span class="variable">Win32::OLE::Const</span><span class="operator">-&gt;</span><span class="variable">Load</span><span class="operator">(</span><span class="string">"Microsoft Word 8\\.0 Object Library"</span><span class="operator">);</span>
    <span class="keyword">foreach</span> <span class="keyword">my</span> <span class="variable">$key</span> <span class="operator">(</span><span class="keyword">keys</span> <span class="variable">%$wd</span><span class="operator">)</span> <span class="operator">{</span>
        <span class="keyword">printf</span> <span class="string">"$key = %s\n"</span><span class="operator">,</span> <span class="variable">$wd</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$key</span><span class="operator">}</span><span class="operator">;</span>
    <span class="operator">}</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This modules makes all constants from a registered OLE type library
available to the Perl program.  The constant definitions can be
imported as functions, providing compile time name checking.
Alternatively the constants can be returned in a hash reference
which avoids defining lots of functions of unknown names.</p>
<p>
</p>
<h2><a name="functions_methods">Functions/Methods</a></h2>
<dl>
<dt><strong><a name="item_use_win32_3a_3aole_3a_3aconst">use Win32::OLE::Const</a></strong>

<dd>
<p>The <a href="../../../lib/Pod/perlfunc.html#item_use"><code>use</code></a> statement can be used to directly import the constant names
and values into the users namespace.</p>
</dd>
<dd>
<pre>
    <span class="keyword">use</span> <span class="variable">Win32::OLE::Const</span> <span class="operator">(</span><span class="variable">TYPELIB</span><span class="operator">,</span><span class="variable">MAJOR</span><span class="operator">,</span><span class="variable">MINOR</span><span class="operator">,</span><span class="variable">LANGUAGE</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>The TYPELIB argument specifies a regular expression for searching
through the registry for the type library.  Note that this argument is
implicitly prefixed with <code>^</code> to speed up matches in the most common
cases.  Use a typelib name like &quot;.*Excel&quot; to match anywhere within the
description.  TYPELIB is the only required argument.</p>
</dd>
<dd>
<p>The MAJOR and MINOR arguments specify the requested version of
the type specification.  If the MAJOR argument is used then only
typelibs with exactly this major version number will be matched.  The
MINOR argument however specifies the minimum acceptable minor version.
MINOR is ignored if MAJOR is undefined.</p>
</dd>
<dd>
<p>If the LANGUAGE argument is used then only typelibs with exactly this
language id will be matched.</p>
</dd>
<dd>
<p>The module will select the typelib with the highest version number
satisfying the request.  If no language id is specified then a the default
language (0) will be preferred over the others.</p>
</dd>
<dd>
<p>Note that only constants with valid Perl variable names will be exported,
i.e. names matching this regexp: <code>/^[a-zA-Z_][a-zA-Z0-9_]*$/</code>.</p>
</dd>
</li>
<dt><strong><a name="item_load">Win32::OLE::Const-&gt;Load</a></strong>

<dd>
<p>The Win32::OLE::Const-&gt;Load method returns a reference to a hash of
constant definitions.</p>
</dd>
<dd>
<pre>
    <span class="keyword">my</span> <span class="variable">$const</span> <span class="operator">=</span> <span class="variable">Win32::OLE::Const</span><span class="operator">-&gt;</span><span class="variable">Load</span><span class="operator">(</span><span class="variable">TYPELIB</span><span class="operator">,</span><span class="variable">MAJOR</span><span class="operator">,</span><span class="variable">MINOR</span><span class="operator">,</span><span class="variable">LANGUAGE</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>The parameters are the same as for the <a href="../../../lib/Pod/perlfunc.html#item_use"><code>use</code></a> case.</p>
</dd>
<dd>
<p>This method is generally preferrable when the typelib uses a non-english
language and the constant names contain locale specific characters not
allowed in Perl variable names.</p>
</dd>
<dd>
<p>Another advantage is that all available constants can now be enumerated.</p>
</dd>
<dd>
<p>The load method also accepts an OLE object as a parameter.  In this case
the OLE object is queried about its containing type library and no registry
search is done at all.  Interestingly this seems to be slower.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="examples">EXAMPLES</a></h1>
<p>The first example imports all Excel constants names into the main namespace
and prints the value of xlMarkerStyleDot (-4118).</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Win32::OLE::Const</span> <span class="operator">(</span><span class="string">'Microsoft Excel 8.0 Object Library'</span><span class="operator">);</span>
    <span class="keyword">print</span> <span class="string">"xlMarkerStyleDot = %d\n"</span><span class="operator">,</span> <span class="variable">xlMarkerStyleDot</span><span class="operator">;</span>
</pre>
<p>The second example returns all Word constants in a hash ref.</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Win32::OLE::Const</span><span class="operator">;</span>
    <span class="keyword">my</span> <span class="variable">$wd</span> <span class="operator">=</span> <span class="variable">Win32::OLE::Const</span><span class="operator">-&gt;</span><span class="variable">Load</span><span class="operator">(</span><span class="string">"Microsoft Word 8.0 Object Library"</span><span class="operator">);</span>
    <span class="keyword">foreach</span> <span class="keyword">my</span> <span class="variable">$key</span> <span class="operator">(</span><span class="keyword">keys</span> <span class="variable">%$wd</span><span class="operator">)</span> <span class="operator">{</span>
        <span class="keyword">printf</span> <span class="string">"$key = %s\n"</span><span class="operator">,</span> <span class="variable">$wd</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$key</span><span class="operator">}</span><span class="operator">;</span>
    <span class="operator">}</span>
    <span class="keyword">printf</span> <span class="string">"wdGreen = %s\n"</span><span class="operator">,</span> <span class="variable">$wd</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">wdGreen</span><span class="operator">}</span><span class="operator">;</span>
</pre>
<p>The last example uses an OLE object to specify the type library:</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Win32::OLE</span><span class="operator">;</span>
    <span class="keyword">use</span> <span class="variable">Win32::OLE::Const</span><span class="operator">;</span>
    <span class="keyword">my</span> <span class="variable">$Excel</span> <span class="operator">=</span> <span class="variable">Win32::OLE</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'Excel.Application'</span><span class="operator">,</span> <span class="string">'Quit'</span><span class="operator">);</span>
    <span class="keyword">my</span> <span class="variable">$xl</span> <span class="operator">=</span> <span class="variable">Win32::OLE::Const</span><span class="operator">-&gt;</span><span class="variable">Load</span><span class="operator">(</span><span class="variable">$Excel</span><span class="operator">);</span>
</pre>
<p>
</p>
<hr />
<h1><a name="authors_copyright">AUTHORS/COPYRIGHT</a></h1>
<p>This module is part of the Win32::OLE distribution.</p>

</body>

</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?