2025-11-28 00:35:46 +09:00

435 lines
17 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!- Copyright (c) Microsoft Corporation, All Rights Reserved ->
<!doctype html public "-//W3C//DTD HTML 4.0 Draft//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="pathparser_files/filelist.xml">
<title>WMI SDK Sample - PathParser</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Michael Maston</o:Author>
<o:Template>Normal</o:Template>
<o:LastAuthor>Zina Pozen</o:LastAuthor>
<o:Revision>16</o:Revision>
<o:TotalTime>369</o:TotalTime>
<o:LastPrinted>1999-01-25T20:33:00Z</o:LastPrinted>
<o:Created>1999-01-25T20:36:00Z</o:Created>
<o:LastSaved>2002-05-03T21:17:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>350</o:Words>
<o:Characters>1995</o:Characters>
<o:Company>Microsoft</o:Company>
<o:Lines>16</o:Lines>
<o:Paragraphs>4</o:Paragraphs>
<o:CharactersWithSpaces>2341</o:CharactersWithSpaces>
<o:Version>10.3501</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-alt:"?? ??";
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:536871559 0 0 0 415 0;}
@font-face
{font-family:"\@MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
color:black;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;
text-underline:single;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-font-family:"Times New Roman";}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:994183607;
mso-list-type:hybrid;
mso-list-template-ids:-208100182 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Times New Roman";}
@list l0:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1
{mso-list-id:1323041284;
mso-list-type:hybrid;
mso-list-template-ids:-423719746 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<meta name=MS-HAID content=VJsamples>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="6146"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor=white lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
<div class=Section1>
<table class=MsoNormalTable border=0 cellpadding=0 width="100%"
style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:0in 0in 0in 0in'>
<tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
<td width=160 style='width:120.0pt;background:#330099;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana;
color:white'>&nbsp;<nobr><b>Windows Management Instrumentation SDK Sample</b></span>
<o:p></o:p></p>
</td>
</tr>
</table>
<p class=MsoPlainText><br>
<span class=SpellE><strong><span style='font-size:13.5pt;font-family:Verdana;
mso-bidi-font-family:"Courier New"'>PathParser</span></strong></span><br
style='mso-special-character:line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></p>
<p class=MsoPlainText><span style='font-family:Verdana'>This sample
demonstrates how to use the WMI object path parser COM object. WMI object paths
are the strings WMI uses to uniquely identify WMI class and instance
objects.<span style='mso-spacerun:yes'><EFBFBD> </span>Many times it is necessary for
WMI clients and providers to parse this string to obtain the various parts of
the object path it contains.<span style='mso-spacerun:yes'><EFBFBD> </span>An example
of an object path is the following:<o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>\\MyServer\root\cimv2:Win32_Printer.DeviceID=&quot;MyLaserPrinter&quot;<o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>In this example which
points to a printer installed on a computer, the server where this WMI object
is located is <span class=SpellE><i style='mso-bidi-font-style:normal'>MyServer</i></span>.<span
style='mso-spacerun:yes'><EFBFBD> </span>The class is called <i style='mso-bidi-font-style:
normal'>Win32_Printer</i> and it is stored in the <i style='mso-bidi-font-style:
normal'>root/cimv2</i> namespace.<span style='mso-spacerun:yes'><EFBFBD>
</span>Finally, the specific printer is called <span class=SpellE><i
style='mso-bidi-font-style:normal'>MyLaserPrinter</i></span> which is the value
set in the single key property for the <i style='mso-bidi-font-style:normal'>Win32_Printer</i>
class, <span class=SpellE><i style='mso-bidi-font-style:normal'>DeviceID</i></span>.<span
style='mso-spacerun:yes'><EFBFBD> </span>At any given time, it may be useful to
retrieve some or all of these values from a given WMI object path.<o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>This application is a
console application meant to be run at the command line.<span
style='mso-spacerun:yes'><EFBFBD> </span>In the interests of being an example and
educational, the code is designed to be easy to follow but does not necessarily
always do the error checking required for a product quality application.<o:p></o:p></span></p>
<p class=MsoPlainText><o:p>&nbsp;</o:p></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
font-family:Verdana'>Using the <span class=SpellE>PathParser</span> Sample<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>The <span class=SpellE>PathParser</span>
sample can be built from the command line using NMAKE, or it can be built using
Microsoft Visual C++.<span style='mso-spacerun:yes'><EFBFBD><EFBFBD> </span><o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>From the command line
in the sample installation directory, type the following: <o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:.25in;tab-stops:
list .5in'><b><span style='font-family:Verdana'>NMAKE /f<span
style='mso-spacerun:yes'><EFBFBD> </span><EFBFBD><span class=SpellE>Makefile</span><EFBFBD><o:p></o:p></span></b></p>
<p class=MsoPlainText style='tab-stops:list .5in'><b><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></b></p>
<p class=MsoPlainText><span style='font-family:Verdana'>From Microsoft Visual
C++: <o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo2;
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Verdana;
mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana'>Select File +
Open Workspace<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo2;
tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
"Courier New"'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana'>Select the <span
class=SpellE>PathParser.DSP</span> file</span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'>Once built the <span class=SpellE>PathParser</span> sample application
can be run from the command line in the sample installation directory:<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='text-indent:.5in;tab-stops:list .5in'><span
class=SpellE><b><span style='font-family:Verdana'>PathParser</span></b></span><b><span
style='font-family:Verdana'><o:p></o:p></span></b></p>
<p class=MsoPlainText style='text-indent:.5in;tab-stops:list .5in'><b><span
style='font-family:Verdana'><o:p>&nbsp;</o:p></span></b></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'>The valid syntax for <span class=SpellE>PathParser</span>:<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='text-indent:.5in;tab-stops:list .5in'><span
class=SpellE><b><span style='font-family:Verdana'>PathParser</span></b></span><b><span
style='font-family:Verdana'><o:p></o:p></span></b></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'>With no parameters, the usage message is printed out which will have
several sample paths.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-size:12.0pt;
mso-bidi-font-size:10.0pt;font-family:Verdana'>General Notes<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-size:12.0pt;
mso-bidi-font-size:10.0pt;font-family:Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Things
to remember when you're building your own WMI client application:<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l0 level1 lfo4;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>1.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>WMI interfaces are defined
in <span class=SpellE>wmiutils.h</span> found in the <span class=SpellE>wmi</span>\include
directory.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><span
style='mso-spacerun:yes'><EFBFBD></span><o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l0 level1 lfo4;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>WMI interface <span
class=SpellE>CLSIDs</span> are defined in <span class=SpellE>wbemuuid.lib</span>.
If you get unresolved externals in interfaces and <span class=SpellE>CLSIDs</span>,
this is what is missing. <o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l0 level1 lfo4;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>You'll need to link with
oleaut32.lib and ole32.lib to get the needed COM support.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p>&nbsp;</o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l0 level1 lfo4;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>4.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho"'>If you're using the <span class=SpellE>makefiles</span>, don't
forget to set the Visual C++ environment variables. This is done by running
VCVARS32.BAT.</span></p>
<p class=MsoNormal style='tab-stops:list .5in'><br style='mso-special-character:
line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></p>
</div>
</body>
</html>