home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _b64596e1c1efd5cf3e90868ac54eacfb < prev    next >
Text File  |  2000-03-23  |  6KB  |  140 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Win32::OLE::Const - Extract constant definitions from TypeLib</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Win32::OLE::Const - Extract constant definitions from TypeLib</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <UL>
  26.  
  27.         <LI><A HREF="#functions/methods">Functions/Methods</A></LI>
  28.     </UL>
  29.  
  30.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  31.     <LI><A HREF="#authors/copyright">AUTHORS/COPYRIGHT</A></LI>
  32. </UL>
  33. <!-- INDEX END -->
  34.  
  35. <HR>
  36. <P>
  37. <H1><A NAME="name">NAME</A></H1>
  38. <P>Win32::OLE::Const - Extract constant definitions from TypeLib</P>
  39. <P>
  40. <HR>
  41. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  42. <UL>
  43. <LI>Windows</LI>
  44. </UL>
  45. <HR>
  46. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  47. <PRE>
  48.     use Win32::OLE::Const 'Microsoft Excel';
  49.     printf "xlMarkerStyleDot = %d\n", xlMarkerStyleDot;</PRE>
  50. <PRE>
  51.     my $wd = Win32::OLE::Const->Load("Microsoft Word 8\\.0 Object Library");
  52.     foreach my $key (keys %$wd) {
  53.         printf "$key = %s\n", $wd->{$key};
  54.     }</PRE>
  55. <P>
  56. <HR>
  57. <H1><A NAME="description">DESCRIPTION</A></H1>
  58. <P>This modules makes all constants from a registered OLE type library
  59. available to the Perl program.  The constant definitions can be
  60. imported as functions, providing compile time name checking.
  61. Alternatively the constants can be returned in a hash reference
  62. which avoids defining lots of functions of unknown names.</P>
  63. <P>
  64. <H2><A NAME="functions/methods">Functions/Methods</A></H2>
  65. <DL>
  66. <DT><STRONG><A NAME="item_use_Win32%3A%3AOLE%3A%3AConst">use Win32::OLE::Const</A></STRONG><BR>
  67. <DD>
  68. The <A HREF="../../../../lib/Pod/perlfunc.html#item_use"><CODE>use</CODE></A> statement can be used to directly import the constant names
  69. and values into the users namespace.
  70. <PRE>
  71.     use Win32::OLE::Const (TYPELIB,MAJOR,MINOR,LANGUAGE);</PRE>
  72. <P>The TYPELIB argument specifies a regular expression for searching
  73. through the registry for the type library.  Note that this argument is
  74. implicitly prefixed with <CODE>^</CODE> to speed up matches in the most common
  75. cases.  Use a typelib name like ``.*Excel'' to match anywhere within the
  76. description.  TYPELIB is the only required argument.</P>
  77. <P>The MAJOR and MINOR arguments specify the requested version of
  78. the type specification.  If the MAJOR argument is used then only
  79. typelibs with exactly this major version number will be matched.  The
  80. MINOR argument however specifies the minimum acceptable minor version.
  81. MINOR is ignored if MAJOR is undefined.</P>
  82. <P>If the LANGUAGE argument is used then only typelibs with exactly this
  83. language id will be matched.</P>
  84. <P>The module will select the typelib with the highest version number
  85. satisfying the request.  If no language id is specified then a the default
  86. language (0) will be preferred over the others.</P>
  87. <P>Note that only constants with valid Perl variable names will be exported,
  88. i.e. names matching this regexp: <CODE>/^[a-zA-Z_][a-zA-Z0-9_]*$/</CODE>.</P>
  89. <P></P>
  90. <DT><STRONG><A NAME="item_Load">Win32::OLE::Const->Load</A></STRONG><BR>
  91. <DD>
  92. The Win32::OLE::Const->Load method returns a reference to a hash of
  93. constant definitions.
  94. <PRE>
  95.     my $const = Win32::OLE::Const->Load(TYPELIB,MAJOR,MINOR,LANGUAGE);</PRE>
  96. <P>The parameters are the same as for the <A HREF="../../../../lib/Pod/perlfunc.html#item_use"><CODE>use</CODE></A> case.</P>
  97. <P>This method is generally preferrable when the typelib uses a non-english
  98. language and the constant names contain locale specific characters not
  99. allowed in Perl variable names.</P>
  100. <P>Another advantage is that all available constants can now be enumerated.</P>
  101. <P>The load method also accepts an OLE object as a parameter.  In this case
  102. the OLE object is queried about its containing type library and no registry
  103. search is done at all.  Interestingly this seems to be slower.</P>
  104. <P></P></DL>
  105. <P>
  106. <HR>
  107. <H1><A NAME="examples">EXAMPLES</A></H1>
  108. <P>The first example imports all Excel constants names into the main namespace
  109. and prints the value of xlMarkerStyleDot (-4118).</P>
  110. <PRE>
  111.     use Win32::OLE::Const ('Microsoft Excel 8.0 Object Library');
  112.     print "xlMarkerStyleDot = %d\n", xlMarkerStyleDot;</PRE>
  113. <P>The second example returns all Word constants in a hash ref.</P>
  114. <PRE>
  115.     use Win32::OLE::Const;
  116.     my $wd = Win32::OLE::Const->Load("Microsoft Word 8.0 Object Library");
  117.     foreach my $key (keys %$wd) {
  118.         printf "$key = %s\n", $wd->{$key};
  119.     }
  120.     printf "wdGreen = %s\n", $wd->{wdGreen};</PRE>
  121. <P>The last example uses an OLE object to specify the type library:</P>
  122. <PRE>
  123.     use Win32::OLE;
  124.     use Win32::OLE::Const;
  125.     my $Excel = Win32::OLE->new('Excel.Application', 'Quit');
  126.     my $xl = Win32::OLE::Const->Load($Excel);</PRE>
  127. <P>
  128. <HR>
  129. <H1><A NAME="authors/copyright">AUTHORS/COPYRIGHT</A></H1>
  130. <P>This module is part of the Win32::OLE distribution.</P>
  131. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  132. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  133. <STRONG><P CLASS=block> Win32::OLE::Const - Extract constant definitions from TypeLib</P></STRONG>
  134. </TD></TR>
  135. </TABLE>
  136.  
  137. </BODY>
  138.  
  139. </HTML>
  140.