529 lines
24 KiB
HTML
529 lines
24 KiB
HTML
<!- 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="EventConsumer_files/filelist.xml">
|
||
<title>WMI SDK Sample - EventConsumer</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>21</o:Revision>
|
||
<o:TotalTime>258</o:TotalTime>
|
||
<o:Created>1999-01-25T18:42:00Z</o:Created>
|
||
<o:LastSaved>2002-05-03T21:12:00Z</o:LastSaved>
|
||
<o:Pages>1</o:Pages>
|
||
<o:Words>594</o:Words>
|
||
<o:Characters>3386</o:Characters>
|
||
<o:Company>Microsoft</o:Company>
|
||
<o:Lines>28</o:Lines>
|
||
<o:Paragraphs>7</o:Paragraphs>
|
||
<o:CharactersWithSpaces>3973</o:CharactersWithSpaces>
|
||
<o:Version>10.3501</o:Version>
|
||
</o:DocumentProperties>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<w:WordDocument>
|
||
<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";}
|
||
@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;}
|
||
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="2050"/>
|
||
</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'> <nobr><b>Windows<EFBFBD> Management Instrumentation SDK Sample</b></span>
|
||
<o:p></o:p></p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p class=MsoPlainText><br>
|
||
<strong><span style='font-size:13.5pt;font-family:Verdana;mso-bidi-font-family:
|
||
"Courier New"'>EventConsumer</span></strong><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;mso-fareast-font-family:
|
||
"MS Mincho"'>This sample demonstrates a permanent event consumer. Events are
|
||
generated from the Advanced Client sample application by adding equipment. This
|
||
application shows how to implement a simple IWBEMUnboundObjectSink and its
|
||
class factory. You should generate your own CLSID when building your permanent
|
||
consumer.<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
|
||
font-family:Verdana'>Building the EventConsumer Sample<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText> </p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana'>The application can be
|
||
built from the command line using NMAKE, or it can be built using Microsoft
|
||
Visual C++.<span yes> </span><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana'> <o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana'>From the command line
|
||
in the sample installation directory: <o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana'> <o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in'><b><span style='font-family:
|
||
Verdana'>NMAKE /f "Makefile"<o:p></o:p></span></b></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana'> <o:p></o:p></span></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></o:p></span></p>
|
||
|
||
<p class=MsoPlainText .5in list lfo2 level1 l0><span style='font-family:Verdana'>1.<span
|
||
Roman New Times></span><span style='font-size:7.0pt;font-family:Verdana'></span>
|
||
</span><span style='font-family:Verdana'>Select File + Open Workspace<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText .5in list lfo2 level1 l0><span style='font-family:Verdana'>2.<span
|
||
Roman New Times></span><span style='font-size:7.0pt;font-family:Verdana'></span>
|
||
</span><span style='font-family:Verdana'>Select the PermEvents.dsp file<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>Registering the
|
||
Consumer<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>The SampleViewer.mof uses a special namespace and you must
|
||
therefore compile the SampleViewer.mof to create the namespace and register
|
||
this consumer before running the Client sample application.<o:p></o:p></span></p>
|
||
|
||
<span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
|
||
"MS Mincho";mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:
|
||
HE'><br clear=all style='page-break-before:always'>
|
||
</span>
|
||
|
||
<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 style='tab-stops:list .5in'><span style='font-family:
|
||
Verdana'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='text-indent:.5in'><b><span style='font-family:
|
||
Verdana'>MOFCOMP SampleViewer.mof</span></b><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>In order to <i>explicitly</i>
|
||
register the consumer with COM, you may specify the /RegServer command line
|
||
switch when running the executable.<span style='mso-spacerun:yes'><EFBFBD> </span></span><span
|
||
style='font-family:Verdana'>From the command line in the sample installation
|
||
directory type the following:</span><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><span style='mso-tab-count:
|
||
1'><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><span style='mso-tab-count:
|
||
1'><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><b>PermEvents.exe /RegServer<o:p></o:p></b></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'> <o:p></o:p></span></b></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>It should be noted,
|
||
however, that the executable would register itself automatically without
|
||
specifying this switch.<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'> </span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
|
||
font-family:Verdana'>Common Event Consumer Tasks Demonstrated by the Sample
|
||
Functions<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Task:</span></b><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></span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>Handle an event</span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:
|
||
"Times New Roman"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Implementation:<span
|
||
style='mso-spacerun:yes'><EFBFBD> </span></span></b><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>Consumer.cpp is the actual handler. The IndicateToConsumer()
|
||
method will be called with the event instance embedded. <o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Task:</span></b><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></span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>Creating the
|
||
handler object<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Implementation:<span
|
||
style='mso-spacerun:yes'><EFBFBD> </span></span></b><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>factory.cpp creates the sink object. It is a simple class factory.<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Task:</span></b><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></span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>Registering the
|
||
object and factory<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Implementation:<span
|
||
style='mso-spacerun:yes'><EFBFBD> </span></span></b><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>PermEvents.cpp registers the sink object with its class factory in
|
||
the InitInstance() routine. The registration is revoked in the ExitInstance().<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Task:</span></b><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></span><span
|
||
style='font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>Self-registering
|
||
an EXE<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><b><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Implementation:<span
|
||
style='mso-spacerun:yes'><EFBFBD> </span></span></b><span style='font-family:Verdana;
|
||
mso-fareast-font-family:"MS Mincho"'><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>PermEvents.cpp has the RegisterServer() and UnregisterServer()
|
||
routines to show self-registration of an EXE. It is not the same as a DLL. The
|
||
'AppID' and 'RunAs' values allow the spawned EXE to run on the user's desktop
|
||
instead of the service's hidden desktop. Otherwise the Event Consumer would
|
||
never appear.<o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText><strong><span style='font-size:12.0pt;mso-bidi-font-size:
|
||
10.0pt;font-family:Verdana;mso-bidi-font-family:"Courier New";font-weight:normal'>Build
|
||
Notes</span></strong><strong><span style='font-size:12.0pt;mso-bidi-font-size:
|
||
10.0pt;font-family:"Courier New";font-weight:normal'><o:p></o:p></span></strong></p>
|
||
|
||
<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><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"'>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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;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"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>If you want your client to
|
||
run on NT and non-DCOM versions of Windows 95, manually load the ole32.dll and
|
||
see if CoInitializeSecurity() exists. This routine won<6F>t exist on Windows 95
|
||
installations that don<6F>t have DCOM installed separately. If this routine
|
||
doesn't exist, the asynchronous routines in this sample won<6F>t work because of
|
||
mismatched security level problems. The synchronous techniques will still work.<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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;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"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>If you don<6F>t care about
|
||
non-DCOM versions of Windows 95, you can define<span style='mso-spacerun:yes'><EFBFBD>
|
||
</span>_WIN32_DCOM so that CoInitializeSecurity() is available for implicit
|
||
linking. Don't use _WIN32_WINNT to get this prototype since it won't compile
|
||
under the Windows 95/98 operating systems.<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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;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"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>In any case, the
|
||
CoInitializeSecurity() call (in InitInstance()) is required to work around a
|
||
security problem when WMI trying to call a Sink object but won't identify
|
||
itself. The CoInitializeSecurity() call turns off the authentication
|
||
requirement. <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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;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"'>
|
||
</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 wbemcli.h and wbemprov.h found in the wmi\include directory.<span
|
||
style='mso-spacerun:yes'><EFBFBD> </span>You may #include both these files by
|
||
including just wbemidl.h located in the same 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"'><o:p> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;tab-stops:list .25in .5in'><![if !supportLists]><span
|
||
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>5.<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>WMI interface CLSIDs are
|
||
defined in wbemuuid.lib. If you get unresolved externals in interfaces and
|
||
CLSIDs, 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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;tab-stops:list .25in .5in'><![if !supportLists]><span
|
||
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>6.<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;tab-stops:list .25in .5in'><![if !supportLists]><span
|
||
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>7.<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>In the Link|Output settings,
|
||
specify 'wWinMainCRTStartup' as the entry point. This is per the Unicode
|
||
programming instructions.<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> </o:p></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
|
||
l0 level1 lfo2;tab-stops:list .25in .5in'><![if !supportLists]><span
|
||
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>8.<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
|
||
"MS Mincho"'>If you're using the makefiles, don't forget to set the VC vars. In
|
||
VC++ 5.0, it is VCVARS32.BAT.<o:p></o:p></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>
|