Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

78 lines
30 KiB

{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f16\froman\fcharset0\fprq2{\*\panose 02020404030301010803}Garamond;}{\f17\froman\fcharset238\fprq2 Times New Roman CE;}{\f18\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f20\froman\fcharset161\fprq2 Times New Roman Greek;}{\f21\froman\fcharset162\fprq2 Times New Roman Tur;}{\f22\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f113\froman\fcharset238\fprq2 Garamond CE;}{\f114\froman\fcharset204\fprq2 Garamond Cyr;}{\f116\froman\fcharset161\fprq2 Garamond Greek;}{\f117\froman\fcharset162\fprq2 Garamond Tur;}{\f118\froman\fcharset186\fprq2 Garamond Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \snext0 Normal;}{\s1\qc\sa240\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrt\brdrs\brdrw15\brsp120\brdrcf15 \brdrb\brdrs\brdrw15\brsp120\brdrcf15 \adjustright \b\caps\f16\fs18\expnd4\expndtw20\kerning16\cgrid \sbasedon15 \snext16 heading 1;}{\s2\qc\sa180\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \b\caps\f16\fs18\expnd2\expndtw10\kerning20\cgrid \sbasedon15 \snext16 heading 2;}{\s3\sb240\sa180\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs20\kerning20\cgrid \sbasedon15 \snext16 heading 3;}{\s4\li360\sb240\sa240\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\abslock1\adjustright \i\f16\expnd1\expndtw5\kerning20\cgrid \sbasedon15 \snext16 heading 4;}{\s5\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \b\f16\fs22\kerning20\cgrid \sbasedon15 \snext16 heading 5;}{\s6\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \i\f16\fs22\expnd1\expndtw5\kerning20\cgrid \sbasedon15 \snext16 heading 6;}{\s7\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\abslock1\adjustright \scaps\f16\fs22\kerning20\cgrid \sbasedon15 \snext16 heading 7;}{\s8\fi360\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \i\f16\fs22\expnd1\expndtw5\kerning20\cgrid \sbasedon15 \snext16 heading 8;}{\s9\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \f16\fs22\expnd-1\expndtw-5\kerning20\cgrid \sbasedon15 \snext16 heading 9;}{\*\cs10 \additive Default Paragraph Font;}{\s15\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \f16\fs22\kerning20\cgrid \sbasedon16 \snext16 Heading Base;}{\s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon0 \snext16 Body Text;}{\s17\qj\sa240\sl200\slmult0\keep\nowidctlpar\widctlpar\adjustright \f16\fs18\cgrid \sbasedon16 \snext17 Footnote Base;}{\s18\qj\li720\ri720\sa240\sl240\slmult0\keep\nowidctlpar\widctlpar\box\brdrs\brdrw15\brsp280\brdrcf15 \adjustright \i\f16\fs22\cgrid \sbasedon16 \snext18 Block Quotation;}{\s19\qj\fi360\sa240\sl240\slmult0\keepn\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon16 \snext19 Body Text Keep;}{\s20\fi-120\li1920\sb60\sa240\sl200\slmult0\keepn\nowidctlpar\widctlpar\adjustright \i\f16\fs20\expnd1\expndtw5\cgrid \sbasedon21 \snext16 caption;}{\s21\keepn\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon0 \snext20 Picture;}{\s22\qc\sl240\slmult0\nowidctlpar\widctlpar\brdrt\brdrs\brdrw15\brsp120\brdrcf15 \brdrb\brdrs\brdrw15\brsp120\brdrcf15 \adjustright \b\caps\f16\fs18\expnd8\expndtw40\cgrid \snext0 Document Label;}{\*\cs23 \additive \super endnote reference;}{\s24\qj\sa240\sl200\slmult0\keep\nowidctlpar\widctlpar\adjustright \f16\fs18\cgrid \sbasedon17 \snext24 endnote text;}{\s25\qc\li-840\ri-840\sb600\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx9480\adjustright \scaps\f16\expnd3\expndtw15\cgrid \sbasedon26 \snext25 footer;}{\s26\qc\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \scaps\f16\fs22\expnd3\expndtw15\cgrid \sbasedon16 \snext26 Header Base;}{\*\cs27 \additive \super footnote reference;}{\s28\qj\sa240\sl200\slmult0\keep\nowidctlpar\widctlpar\adjustright \f16\fs18\cgrid \sbasedon17 \snext28 footnote text;}{\s29\qc\sa480\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \scaps\f16\fs22\expnd3\expndtw15\cgrid \sbasedon26 \snext29 header;}{\s30\fi-360\li360\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs21\cgrid \sbasedon31 \snext30 index 1;}{\s31\fi-360\li360\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon0 \snext31 Index Base;}{\s32\fi-240\li360\nowidctlpar\widctlpar\adjustright \f16\fs21\cgrid \sbasedon31 \snext32 index 2;}{\s33\fi-240\li480\nowidctlpar\widctlpar\adjustright \f16\fs21\cgrid \sbasedon31 \snext33 index 3;}{\s34\fi-240\li600\nowidctlpar\widctlpar\adjustright \f16\fs21\cgrid \sbasedon31 \snext34 index 4;}{\s35\fi-360\li840\nowidctlpar\widctlpar\adjustright \f16\fs21\cgrid \sbasedon31 \snext35 index 5;}{\s36\sl480\slmult0\keepn\nowidctlpar\widctlpar\adjustright \f16\fs28\expnd-1\expndtw-5\cgrid \sbasedon15 \snext30 index heading;}{\s37\qc\sa240\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrt\brdrs\brdrw15\brsp120\brdrcf15 \brdrb\brdrs\brdrw15\brsp120\brdrcf15 \adjustright \b\caps\f16\fs18\expnd4\expndtw20\kerning16\cgrid \sbasedon1 \snext37 Section Heading;}{\*\cs38 \additive \caps\fs18 Lead-in Emphasis;}{\*\cs39 \additive \fs18 line number;}{\s40\qj\fi-360\li360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon16 \snext40 List;}{\s41\qj\fi-360\li720\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnfs12\pnstart1\pnindent360\pnhang{\pntxtb n}}\ls2047\ilvl10\adjustright \f16\fs22\cgrid \sbasedon40 \snext41 List Bullet;}{\s42\qj\fi-360\li720\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta )}}\ls2047\ilvl11\adjustright \f16\fs22\cgrid \sbasedon40 \snext42 List Number;}{\s43\fi360\sa240\nowidctlpar\widctlpar\adjustright \f2\fs22\cgrid \sbasedon16 \snext43 macro;}{\*\cs44 \additive \fs24 page number;}{\s45\qc\sl440\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrt\brdrs\brdrw15\brsp240\brdrcf15 \adjustright \scaps\f16\fs44\expnd6\expndtw30\kerning20\cgrid \sbasedon46 \snext16 Subtitle Cover;}{\s46\qc\sa240\sl720\slmult0\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs64\expnd13\expndtw65\kerning20\cgrid \sbasedon15 \snext45 Title Cover;}{\*\cs47 \additive \super Superscript;}{\s48\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \f16\fs22\cgrid \sbasedon0 \snext48 TOC Base;}{\s49\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \f16\fs22\cgrid \sbasedon48 \snext49 table of figures;}{\s50\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \f16\fs22\cgrid \sbasedon48 \snext50 toc 1;}{\s51\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \f16\fs22\cgrid \sbasedon48 \snext51 toc 2;}{\s52\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \i\f16\fs22\cgrid \sbasedon48 \snext52 toc 3;}{\s53\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \i\f16\fs22\cgrid \sbasedon48 \snext53 toc 4;}{\s54\sa240\sl240\slmult0\nowidctlpar\widctlpar\tqr\tldot\tx5040\adjustright \i\f16\fs22\cgrid \sbasedon48 \snext54 toc 5;}{\s55\qc\sa720\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrb\brdrs\brdrw15\brsp480\brdrcf15 \adjustright \caps\f16\fs48\expnd16\expndtw80\kerning20\cgrid \sbasedon15 \snext16 Section Label;}{\s56\qc\li-840\ri-840\sb600\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx9480\adjustright \scaps\f16\expnd3\expndtw15\cgrid \sbasedon25 \snext56 Footer First;}{\s57\qc\li-840\ri-840\sb600\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx9480\adjustright \scaps\f16\expnd3\expndtw15\cgrid \sbasedon25 \snext57 Footer Even;}{\s58\qc\li-840\ri-840\sb600\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx9480\adjustright \scaps\f16\expnd3\expndtw15\cgrid \sbasedon25 \snext58 Footer Odd;}{\s59\qc\sa480\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \scaps\f16\fs22\expnd3\expndtw15\cgrid \sbasedon29 \snext59 Header First;}{\s60\qc\sa480\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \i\f16\fs22\expnd2\expndtw10\cgrid \sbasedon29 \snext60 Header Even;}{\s61\qc\sa480\sl240\slmult0\keep\nowidctlpar\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \scaps\f16\fs22\expnd3\expndtw15\cgrid \sbasedon29 \snext61 Header Odd;}{\s62\qc\sa720\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrb\brdrs\brdrw15\brsp480\brdrcf15 \adjustright \caps\f16\fs48\expnd16\expndtw80\kerning20\cgrid \sbasedon55 \snext62 Chapter Label;}{\s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid \sbasedon64 \snext63 Chapter Subtitle;}{\s64\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid \sbasedon65 \snext16 Subtitle;}{\s65\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid \sbasedon15 \snext64 Title;}{\s66\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid \sbasedon65 \snext66 Chapter Title;}{\s67\qj\fi360\li360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon16 \snext67 Body Text 2;}{\s68\qj\fi-360\li1080\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta )}}\ls2047\ilvl11\adjustright \f16\fs22\cgrid \sbasedon42 \snext68 List Number 2;}{\s69\qj\fi-360\li1440\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta )}}\ls2047\ilvl11\adjustright \f16\fs22\cgrid \sbasedon42 \snext69 List Number 3;}{\s70\qj\fi-360\li1080\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnfs12\pnstart1\pnindent360\pnhang{\pntxtb n}}\ls2047\ilvl10\adjustright \f16\fs22\cgrid \sbasedon41 \snext70 List Bullet 2;}{\s71\qj\fi-360\li1800\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta )}}\ls2047\ilvl11\adjustright \f16\fs22\cgrid \sbasedon42 \snext71 List Number 4;}{\s72\qj\fi-360\li1440\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnfs12\pnstart1\pnindent360\pnhang{\pntxtb n}}\ls2047\ilvl10\adjustright \f16\fs22\cgrid \sbasedon41 \snext72 List Bullet 3;}{\s73\qj\fi-360\li1800\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnfs12\pnstart1\pnindent360\pnhang{\pntxtb n}}\ls2047\ilvl10\adjustright \f16\fs22\cgrid \sbasedon41 \snext73 List Bullet 4;}{\s74\qj\fi-360\li1800\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon40 \snext74 List 5;}{\s75\qj\fi-360\li1440\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon40 \snext75 List 4;}{\s76\qj\fi-360\li1080\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon40 \snext76 List 3;}{\s77\qj\fi-360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon40 \snext77 List 2;}{\*\cs78 \additive \caps\fs18 Emphasis;}{\*\cs79 \additive \fs16 annotation reference;}{\s80\qj\sa240\sl200\slmult0\keep\nowidctlpar\widctlpar\adjustright \f16\fs18\cgrid \sbasedon17 \snext80 annotation text;}{\s81\qj\fi-360\li2160\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta )}}\ls2047\ilvl11\adjustright \f16\fs22\cgrid \sbasedon42 \snext81 List Number 5;}{\s82\qj\li720\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon40 \snext82 List Continue;}{\s83\qj\li1080\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon82 \snext83 List Continue 2;}{\s84\qj\li1440\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon82 \snext84 List Continue 3;}{\s85\qj\li1800\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon82 \snext85 List Continue 4;}{\s86\qj\li2160\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon82 \snext86 List Continue 5;}{\s87\li720\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid \sbasedon0 \snext87 Normal Indent;}{\s88\qc\ri-240\sl240\slmult0\nowidctlpar\widctlpar\tx2160\pvpg\phpg\posx1728\posy14400\absw8640\abslock1\nowrap\adjustright \caps\f16\fs14\expnd6\expndtw30\cgrid \snext88 Return Address;}{\*\cs89 \additive \i\expnd14\expndtw70 \sbasedon10 Slogan;}{\s90\qc\sa40\sl240\slmult0\keep\nowidctlpar\widctlpar\pvpg\phmrg\posxc\posy888\absh1440\absw8640\nowrap\adjustright \caps\f16\fs22\expnd15\expndtw75\kerning18\cgrid \sbasedon16 \snext90 Company Name;}{\s91\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid \sbasedon65 \snext91 Part Title;}{\s92\qc\sa720\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrb\brdrs\brdrw15\brsp480\brdrcf15 \adjustright \caps\f16\fs48\expnd16\expndtw80\kerning20\cgrid \sbasedon55 \snext92 Part Label;}{\s93\nowidctlpar\widctlpar\tqr\tldot\tx7560\adjustright \f16\fs22\cgrid \sbasedon0 \snext93 table of authorities;}{\s94\sl720\slmult0\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs22\expnd-2\expndtw-10\kerning28\cgrid \sbasedon0 \snext93 toa heading;}{\s95\qj\fi-360\li2160\ri720\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf14\pnfs12\pnstart1\pnindent360\pnhang{\pntxtb n}}\ls2047\ilvl10\adjustright \f16\fs22\cgrid \sbasedon41 \snext95 List Bullet 5;}}{\*\listtable{\list\listtemplateid-1\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid1759118860\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }{\listname ;}\listid88015832}{\list\listtemplateid-1697900756\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }{\listname ;}\listid681589074}}{\*\listoverridetable{\listoverride\listid88015832\listoverridecount0\ls1}{\listoverride\listid88015832\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls2}{\listoverride\listid88015832\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls3}{\listoverride\listid88015832\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls4}{\listoverride\listid88015832\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls5}{\listoverride\listid681589074\listoverridecount0\ls6}{\listoverride\listid681589074\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls7}{\listoverride\listid681589074\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext
\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls8}{\listoverride\listid681589074\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent-360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi360\li0 }}\ls9}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1080 }}\ls10}}{\info{\title UTILLIB DOCUMENTATION }{\author Tomas Palmer}{\operator James A. Mooney}{\creatim\yr1996\mo4\dy16\hr4\min53}{\revtim\yr1997\mo3\dy31\hr10\min13}{\version5}{\edmins9}{\nofpages5}{\nofwords584}{\nofchars3332}{\*\company Microsoft}{\nofcharsws4091}{\vern71}}\widowctrl\ftnbj\aenddoc\lytprtmet\formshade\viewkind4\viewscale166\viewzk2\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s66\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid {utillib DOCUMENTATION\tab \tab
\par }\pard\plain \s90\qc\sa40\sl240\slmult0\keep\nowidctlpar\widctlpar\pvpg\phmrg\posxc\posy888\absh1440\absw8640\nowrap\adjustright \caps\f16\fs22\expnd15\expndtw75\kerning18\cgrid {Tuesday, April 16, 1996
\par
\par Tomas Palmer
\par }\pard\plain \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid {\page
\par }\pard\plain \s66\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid {iNTRODUction
\par }\pard\plain \s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid {Why was this library created?
\par }\pard\plain \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid {This document describes the setup and functionality of the UtilLib which is designed to be used in a WBEM project. This library provides functionality that is common to all WBEM components. This includes error logging, Registry browsing, parsers and WBEM event generation. The UtilLib library also contains the first of our own MFC like classes. These and future classes will reduce our dependence on MFC and component specific classes.
\par }\pard\plain \s62\qc\sa720\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrb\brdrs\brdrw15\brsp480\brdrcf15 \adjustright \caps\f16\fs48\expnd16\expndtw80\kerning20\cgrid {
\par }\pard\plain \s66\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid {setting up UtilLib
\par }\pard\plain \s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\tx900\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid {Setting up your code
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 1.\tab}}\pard\plain \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls1\adjustright \f16\fs22\cgrid { Make sure the }{\i\fs24 include}{ path for your project contains }{\b \\pandora\\include}{
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 2.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls2\adjustright { Add }{\b #include <UtilLib.h> }{to your source file
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 3.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls3\adjustright { For debug builds link to: }{\b \\Pandora\\UtilLib\\debug\\UtilLib.lib}{
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 4.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls4\adjustright { For release builds link to }{\b \\Pandora\\Lib\\MFC\\UtilLibM.lib }{
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 5.\tab}}\pard \s16\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls5\adjustright { If your project is an .EXE project, use the preprocessor defintion }{\b\fs20 NO_POLARITY}{. }{\i This will
\par }\pard \s16\sa240\sl240\slmult0\nowidctlpar\widctlpar\ilvl12\adjustright {\i change when the library is a DLL.
\par }\pard \s16\qc\sa240\sl240\slmult0\nowidctlpar\widctlpar\ilvl12\adjustright {\b\fs18 }{\b\i\fs18 The reason that the library name ends with an M and is located under a MFC sub-directory is that this version of the library still has some MFC dependencies. When all of the MFC classes have been replaced - UtilLib.lib will appear at \\Pandora\\Lib}{\fs18
\par }\pard\plain \s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\tx900\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid { \page
\par }\pard \s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\tx900\adjustright {Setting up the registry
\par }\pard\plain \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid {Because the actual location of the log files is defined in the Registry, you must make sure that there is a registry entry for your component. If there is no entry for your component then the error will be sent to the default error log. If you property set up your component information in the registry you can then route the error (trace) information to any file name and location and turn off the logging to this file at any time.
\par }\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {To properly set your component up for logging you must set up the Registry as follows:
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 1.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls6\adjustright { Locate }{\b \\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WBEM}{
\par {\pntext\pard\plain\s16 \b\f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 2.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls7\adjustright {\b }{Using your component name, add a subkey
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 3.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls8\adjustright {Open you components subkey and add another subkey named }{\b Log}{
\par {\pntext\pard\plain\s16 \f16\fs22\cgrid \hich\af16\dbch\af0\loch\f16 4.\tab}}\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pndec\pnstart1\pnindent-360 {\pntxta .}}\ls9\adjustright {Open the subkey }{\b Log }{and add the following values:
\par {\pntext\pard\plain\s16 \f3\fs22\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s16\qj\fi-360\li1080\sa240\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl0\ls10\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls10\adjustright {\b LogFile }{as a REG_SZ and for the value use the fully qualified path to the log file you want to use
\par {\pntext\pard\plain\s16 \f3\fs22\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s16\qj\fi-360\li1080\sa240\nowidctlpar\widctlpar{\*\pn \pnlvlblt\ilvl0\ls10\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls10\adjustright {\b LoggingEnabled }{as a REG_DWORD and for the value use }{\b 1 }{for TRUE and }{\b 0}{ for FALSE
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {
\par }\pard \s16\qj\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {
\par }\pard\plain \s66\qc\sb140\keep\keepn\nowidctlpar\widctlpar\adjustright \caps\f16\fs44\expnd12\expndtw60\kerning20\cgrid {Using UtilLib
\par }\pard\plain \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid {As of the writing of this document the main functionality of UtilLib is error logging and programmer trace output. Until the actual format and type of WBEM errors are define - error logging }{\i and }{tracing information will be provided through WBEM Event generation. Currently these events are constructed for you by a C++ class and then routed to log file locations which have been defined in the registry. An example of how to use these classes is described later in this document. Eventually these events will be sent to MOServer and be dispatched to WBEM clients or Providers which has registered to receive error events.
\par
\par }\pard\plain \s62\qc\sa720\sl240\slmult0\keep\keepn\nowidctlpar\widctlpar\brdrb\brdrs\brdrw15\brsp480\brdrcf15 \adjustright \caps\f16\fs48\expnd16\expndtw80\kerning20\cgrid {Sample code
\par }\pard\plain \s63\qc\sb140\sa420\keep\keepn\nowidctlpar\widctlpar\adjustright \scaps\f16\fs27\expnd4\expndtw20\kerning20\cgrid {Generating a Trace Event
\par }\pard\plain \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright \f16\fs22\cgrid {\b // YOURSOURCEFILE.CPP
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b #include <UtilLib.h>
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b void Foo(void)
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b \{
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b\fs20 // }{\fs20 Instance an event trace object for a component
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\fs20 // If no name is supplied then the event will be sent to the default log}{\b\fs20
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b }{\b\fs24 CMOEvent_Trace}{\b }{MyTraceEvent(L \ldblquote MyComponentName\rdblquote );
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b
\par }\pard \s16\qj\fi360\sa240\nowidctlpar\widctlpar\adjustright {\b }{MyTraceEvent.}{\b Generate(__FILE__,__LINE__, \ldblquote My message number %d\rdblquote ,1);
\par }\pard \s16\qj\fi360\sa240\nowidctlpar\widctlpar\adjustright { MyTraceEvent.}{\b Generate(__FILE__,__LINE__, \ldblquote Another Message %s\rdblquote , \ldblquote My String\rdblquote );
\par }\pard \s16\qj\fi360\sa240\nowidctlpar\widctlpar\adjustright { MyTraceEvent.}{\b Generate(__FILE__,__LINE__,L\ldblquote Wide Message %s\rdblquote , L\ldblquote WString\rdblquote );
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b \}
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\b Providing the Registry has been set up for your component there will be a log file containing the output of the above events using the following }{\b\i\fs24 format}{\b
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 MOEvent_Trace (\{70874e30-be5c-11cf-8d9b-00aa004bd99e\}):
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 MachineName = YOURMACHINENAME
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 ModuleName = C:\\WBEM\\test.EXE
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 UserName = your-emailname
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 OperatingSystemName = WinNT
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 OperatingSystemMajorVersion = 3
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 OperatingSystemMinorVersion = 51
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 OperatingSystemBuildNumber = 1057
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 OperatingSystemCSDVersion =
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 ProcessID = 0d0H (208)
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 ThreadID = 0ddH (221)
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 TraceFileName = E:\\pandora\\mo\\MOPROP\\YourSourceFile.cpp
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 TraceLineNumber = 669
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 TraceMessage = My message number 1
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 SequenceNumber = 792838211
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0 TimeStamp = Wed Jul 17 12:45:53 1996
\par }\pard \s16\qj\fi360\li720\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b\f0
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {\f0
\par }\pard \s16\qj\li720\sa240\nowidctlpar\widctlpar\adjustright {
\par }\pard \s16\qj\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {
\par }\pard \s16\qj\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b
\par }\pard \s16\qj\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {\b
\par }\pard \s16\qj\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {
\par }\pard \s16\qj\fi360\sa240\sl240\slmult0\nowidctlpar\widctlpar\adjustright {
\par
\par }\pard\plain \s20\fi-120\li1920\sb60\sa240\sl200\slmult0\keepn\nowidctlpar\widctlpar\adjustright \i\f16\fs20\expnd1\expndtw5\cgrid {
\par }}