{\rtf1\ansi\ansicpg1252\uc1\deff37\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f37\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Thorndale{\*\falt Times New Roman};}{\f38\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Albany{\*\falt Arial};}
{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f40\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Cumberland{\*\falt Courier New};}
{\f41\fnil\fcharset2\fprq0{\*\panose 00000000000000000000}StarSymbol{\*\falt Arial Unicode MS};}{\f42\fswiss\fcharset0\fprq2{\*\panose 020b0602030504020204}Lucida Sans Unicode;}{\f139\froman\fcharset238\fprq2 Times New Roman CE;}
{\f140\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f142\froman\fcharset161\fprq2 Times New Roman Greek;}{\f143\froman\fcharset162\fprq2 Times New Roman Tur;}{\f144\froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f145\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f146\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f147\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f149\fswiss\fcharset238\fprq2 Arial CE;}
{\f150\fswiss\fcharset204\fprq2 Arial Cyr;}{\f152\fswiss\fcharset161\fprq2 Arial Greek;}{\f153\fswiss\fcharset162\fprq2 Arial Tur;}{\f154\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f155\fswiss\fcharset178\fprq2 Arial (Arabic);}
{\f156\fswiss\fcharset186\fprq2 Arial Baltic;}{\f157\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f159\fmodern\fcharset238\fprq1 Courier New CE;}{\f160\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f162\fmodern\fcharset161\fprq1 Courier New Greek;}
{\f163\fmodern\fcharset162\fprq1 Courier New Tur;}{\f164\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f165\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f166\fmodern\fcharset186\fprq1 Courier New Baltic;}
{\f167\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f529\fswiss\fcharset238\fprq2 Verdana CE;}{\f530\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f532\fswiss\fcharset161\fprq2 Verdana Greek;}{\f533\fswiss\fcharset162\fprq2 Verdana Tur;}
{\f536\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f537\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\f559\fswiss\fcharset238\fprq2 Lucida Sans Unicode CE;}{\f560\fswiss\fcharset204\fprq2 Lucida Sans Unicode Cyr;}
{\f562\fswiss\fcharset161\fprq2 Lucida Sans Unicode Greek;}{\f563\fswiss\fcharset162\fprq2 Lucida Sans Unicode Tur;}{\f564\fswiss\fcharset177\fprq2 Lucida Sans Unicode (Hebrew);}}{\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;\red255\green255\blue255;\red139\green0\blue139;\red0\green100\blue0;\red25\green25\blue112;}{\stylesheet{\ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \snext0 Normal;}{\s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255
\sbasedon16 \snext15 heading 1;}{\s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext0 heading 2;}{
\s3\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel2\rin0\lin0\itap0 \b\f38\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext0 heading 3;}{\s4\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel3\rin0\lin0\itap0
\f38\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext15 Body Text;}{\s16\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext15
Heading;}{\s17\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \b\f38\fs21\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon16 \snext15 Heading 10;}{\s18\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon15 \snext18 List;}{\s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext19
footer;}{\s20\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon15 \snext20 Table Contents;}{\s21\qc \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\b\i\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon20 \snext21 Table Heading;}{\s22\ql \li0\ri0\sb120\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \i\f37\fs20\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255
\sbasedon0 \snext22 \ssemihidden caption;}{\s23\ql \li0\ri0\sb120\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \i\f37\fs20\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon22 \snext23 Text;}{
\s24\ql \fi-283\li283\ri0\nowidctlpar\aspalpha\faauto\rin0\lin283\itap0 \f37\fs20\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext24 \ssemihidden footnote text;}{\s25\ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext25 Index;}{\s26\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \b\f39\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon16 \snext26
Contents Heading;}{\s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon25 \snext27 \sautoupd \ssemihidden toc 1;}{\s28\ql \li283\ri0\nowidctlpar
\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin283\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon25 \snext28 \sautoupd \ssemihidden toc 2;}{\s29\qc \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\b\f38\fs36\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon16 \snext30 Title;}{\s30\qc \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \i\f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255
\sbasedon16 \snext15 Subtitle;}{\s31\ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f40\fs20\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext31 Preformatted Text;}{
\s32\ql \li283\ri283\nowidctlpar\aspalpha\faauto\rin283\lin283\itap0 \f2\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon0 \snext32 code;}{\*\cs33 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Footnote Symbol;}{\*\cs34 \additive
\cf1\lang0\langfe255\langnp0\langfenp255 \sbasedon10 page number;}{\*\cs35 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Drop Caps;}{\*\cs36 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Numbering Symbols;}{\*\cs37 \additive
\f41\fs18\cf1\lang0\langfe255\langnp0\langfenp255 Bullet Symbols;}{\*\cs38 \additive \ul\cf9\lang0\langfe255\langnp0\langfenp255 Internet link;}{\*\cs39 \additive \ul\cf13\lang0\langfe255\langnp0\langfenp255 Visited Internet Link;}{\*\cs40 \additive
\cf1\lang0\langfe255\langnp0\langfenp255 Index Link;}{\*\cs41 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Endnote Symbol;}{\*\cs42 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Line numbering;}{\*\cs43 \additive
\cf1\up10\lang0\langfe255\langnp0\langfenp255 Footnote anchor;}{\*\cs44 \additive \cf1\up10\lang0\langfe255\langnp0\langfenp255 Endnote anchor;}{\*\cs45 \additive \fs12\cf1\lang0\langfe255\langnp0\langfenp255 Rubies;}{\*\cs46 \additive
\i\cf1\lang0\langfe255\langnp0\langfenp255 \sbasedon10 Emphasis;}{\*\cs47 \additive \i\cf1\lang0\langfe255\langnp0\langfenp255 Citation;}{\*\cs48 \additive \b\cf1\lang0\langfe255\langnp0\langfenp255 Strong Emphasis;}{\*\cs49 \additive
\f40\cf1\lang0\langfe255\langnp0\langfenp255 Source Text;}{\*\cs50 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Example;}{\*\cs51 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 User Entry;}{\*\cs52 \additive
\i\cf1\lang0\langfe255\langnp0\langfenp255 Variable;}{\*\cs53 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Definition;}{\*\cs54 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Teletype;}{\*\cs55 \additive
\f2\cf1\lang0\langfe255\langnp0\langfenp255 Code;}{\*\cs56 \additive \ul\cf2 \sbasedon10 \styrsid16142753 Hyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid949230\rsid1919123\rsid2558074\rsid2972686\rsid4550365\rsid12152870
\rsid16077661\rsid16142753}{\*\generator Microsoft Word 11.0.6502;}{\info{\author Christoph Wille}{\operator mich}{\creatim\yr2002\mo2\dy22\hr20\min46}{\revtim\yr2005\mo11\dy26\hr14\min36}{\printim\yr2113\mo1\dy1}{\version5}{\edmins0}{\nofpages4}
{\nofwords1376}{\nofchars8669}{\*\company AlphaSierraPapa}{\nofcharsws10025}{\vern24579}}\paperw11906\paperh16838\margl1170\margr1130\margt1134\margb1997
\deftab1250\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
\jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot12152870 \fet0{\*\ftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \chftnsep
\par }}{\*\ftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \chftnsepc
\par }}{\*\aftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \chftnsep
\par }}{\*\aftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \chftnsepc
\par }}\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \tab \'a9
Mike Kr\'fcger 2004, Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid16077661 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid16142753 1}}}{\insrsid16077661
\par }}{\*\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 \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\b\f1\fs48\insrsid16077661 Technotes, HowTo Series
\par }{\b\f1\fs56\insrsid16077661
\par }{\b\fs56\loch\af1\insrsid16077661 \hich\af37\dbch\af0\loch\f1 AddIn Building Guide}{\insrsid16077661
\par }{\b\f1\fs32\insrsid16077661 Version 2.0 (not finished)
\par }{\b\f1\insrsid16077661
\par }{\b\loch\af1\insrsid16077661 \hich\af37\dbch\af0\loch\f1 Version 1.0 by Mike Kr}{\b\loch\af1\insrsid16077661 \loch\af1\dbch\af0\hich\f37 \'fc}{\b\loch\af1\insrsid16077661 \hich\af37\dbch\af0\loch\f1 ger, }{\field{\*\fldinst {\b\loch\af1\insrsid16077661
\hich\af37\dbch\af0\loch\f1 HYPERLINK "mailto:mike@icsharpcode.net" }{\b\loch\af1\insrsid949230\charrsid16077661 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b380000006d00610069006c0074006f003a006d0069006b0065004000690063007300680061007200700063006f00640065002e006e00650074000000e20000}}}{\fldrslt {\cs38\b\ul\cf9\insrsid16077661
mike@icsharpcode.net}}}{\insrsid16077661
\par }{\b\loch\af1\insrsid16077661 \hich\af37\dbch\af0\loch\f1 Version 2.0 by Daniel Grunwald, }{\field{\*\fldinst {\b\loch\af1\insrsid16077661 \hich\af37\dbch\af0\loch\f1 HYPERLINK "mailto:daniel@danielgrunwald.de" }{
\b\loch\af1\insrsid949230\charrsid16077661 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b400000006d00610069006c0074006f003a00640061006e00690065006c004000640061006e00690065006c006700720075006e00770061006c0064002e00640065000000000000}}}{\fldrslt {
\cs38\b\ul\cf9\insrsid16077661 daniel@danielgrunwald.de}}}{\insrsid16077661
\par
\par }{\fs22\insrsid16077661
\par \sect }\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj \pard\plain \s26\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \b\f39\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Contents
\par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\insrsid16142753 TOC \\o "1-3" \\h \\z \\u }}{\fldrslt
{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779115"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310035000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 1 About the AddIn Building Guide}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF
_Toc120779115 \\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310035000000}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid16142753 1}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779116"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310036000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 2 File Organization}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF _Toc120779116 \\h
}{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310036000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 1}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }\pard\plain \s28\ql \li283\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin283\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779117"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310037000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 3 Setting up the project}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF
_Toc120779117 \\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310037000000}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid16142753 2}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779118"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310038000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 3.1 Project properties}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF _Toc120779118
\\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310038000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 2}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779119"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310039000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 3.2 The .addin file}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF _Toc120779119 \\h
}{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100310039000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 2}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779120"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320030000000}}}{\fldrslt {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 4 Using Resources}{
\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF _Toc120779120 \\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320030000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 3}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }\pard\plain \s28\ql \li283\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin283\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779121"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320031000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 4.1 XmlForms and other files}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF
_Toc120779121 \\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320031000000}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid16142753 3}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779122"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320032000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 4.2 Bitmaps}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF _Toc120779122 \\h }{
\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320032000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 3}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{\lang1024\langfe1024\noproof\insrsid16142753 HYPERLINK \\l "_Toc120779123"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320033000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid16142753\charrsid284618 4.3 Strings (localization)}{\lang1024\langfe1024\noproof\webhidden\insrsid16142753 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid16142753 PAGEREF
_Toc120779123 \\h }{\lang1024\langfe1024\noproof\insrsid16142753 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370039003100320033000000}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid16142753 4}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid16142753
\par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 }}\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0
\f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \sect }\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \tab \'a9 Mike Kr\'fcger 2004, Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid16077661 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid16142753 4}}}{
\insrsid16077661
\par }}\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\fs22\insrsid16077661
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779115}1 About the AddIn Building Guide
{\*\bkmkend _Toc120779115}
\par }\pard\plain \s15\qj \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 This document may be read as a guide to writing }{\f42\insrsid16077661 \u9839\'3f}{
\insrsid16077661 Develop which comply with the building scheme and it gives an introduction about how }{\f42\insrsid16077661 \u9839\'3f}{\insrsid16077661 Develop is build. It is not a doc}{\insrsid16077661\charrsid16077661
umentation about how SharpDevelop can be extended.}{\insrsid16077661
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779116}2 File Organization
{\*\bkmkend _Toc120779116}
\par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Each AddIn should have an own directory somewhere inside the src\\
folder and it should provide a project file that is used to build/clean the project.
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661
\par Your AddIn has an own directory and the root folder contains a solution file. Inside the root folder, there can be two subdirectories: Pro}{\insrsid16077661\charrsid16077661
ject and Test. 'Project' is the Addin itself, 'Test' is a set of unit tests for the AddIn (unit test source files and project file).}{\insrsid16077661
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661\charrsid16077661 The 'Project' directory contains the following subdirectories and files:
\par }\trowd \irow0\irowband0\ts11\trleft0\trkeep\trhdr\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr
\brdrnone \cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt
\clbrdrt\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\pard\plain
\s21\qc \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0 \b\i\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Name\cell Contents\cell Description\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow0\irowband0
\ts11\trleft0\trkeep\trhdr\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt
\brdrs\brdrw5\brdrcf1 \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\trowd \irow1\irowband1
\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone
\clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\pard\plain \s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Pro}{\lang1031\langfe255\langnp1031\insrsid16077661 jectName.csproj}{\insrsid16077661 \cell }{\lang1031\langfe255\langnp1031\insrsid16077661 MSBuild file\cell }{
\insrsid16077661 Pro}{\insrsid16077661\charrsid16077661 ject file for the addin}{\insrsid16077661 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {
\insrsid16077661 \trowd \irow1\irowband1\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr
\brdrnone \cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt
\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard\plain \s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Pro}{\lang1031\langfe255\langnp1031\insrsid16077661 jectName.addin}{\insrsid16077661 \cell AddIn definition file\cell Contains the xml code for the XML tree.\line
Should use 'CopyToOutputDirectory'.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow2\irowband2
\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone
\clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard\plain \s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Src\\\cell Source code files\cell Here is the source code for your add-in\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow3\irowband3\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl
\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard\plain
\s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Resources\\\cell Any type of file \cell Here are all resources which are compiled into the add-in assembly
\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow4\irowband4
\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone
\clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard\plain \s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 Doc\\\cell Documentation (not in *.doc format; use .txt or .html if you need formatting)\cell Here may lie documentation to the add-in\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow5\irowband5
\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone
\clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard\plain \s20\ql \li0\ri0\sa120\nowidctlpar\intbl\aspalpha\faauto\rin0\lin0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 RequiredLibraries\\\cell *.dll files\cell Here are libraries that the add-in uses in binary form\cell }\pard\plain
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 \trowd \irow6\irowband6\lastrow
\ts11\trleft0\trkeep\trftsWidth1\trpaddl55\trpaddt55\trpaddb55\trpaddr55\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone
\cltxlrtb\clftsWidth3\clwWidth2056\clshdrawnil \cellx2056\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth3152\clshdrawnil \cellx5208\clvertalt\clbrdrt\brdrnone
\clbrdrl\brdrs\brdrw5\brdrcf1 \clbrdrb\brdrs\brdrw5\brdrcf1 \clbrdrr\brdrs\brdrw5\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth4398\clshdrawnil \cellx9606\row }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779117}3 Setting up the pro}{\insrsid16077661\charrsid16077661 ject
}{\insrsid16077661 {\*\bkmkend _Toc120779117}
\par }\pard\plain \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 You}{\insrsid16077661\charrsid16077661 can create a test addin project by using the \'84
SharpDevelop AddIn\'93 template. Note that it won't compile out of the box, you are only given a directory structure with some file to get you started a little faster.}{\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 The first thing you need to do it set the project properties.
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661\charrsid16077661 {\*\bkmkstart _Toc120779118}3.1 Project properties
{\*\bkmkend _Toc120779118}
\par }\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661\charrsid16077661 Set the project o}{\insrsid16077661 utput path}{\insrsid16077661\charrsid16077661
to some subfolder inside SharpDevelop/AddIns/AddIns. If you're AddIn won't be distributed with SharpDevelop, put it in its own subfolder inside SharpDevelop/AddIns/3rdparty.}{\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 What the template didn't do for you, either, is setting up the references to SharpDevelop. You will need a reference to ICSharpCode.Core.dll and ICSharpCode.SharpDevelop.dll. Set 'copy reference to output path' to }{
\b\insrsid16077661\charrsid16077661 false}{\insrsid16077661\charrsid16077661 on these two references.
\par }{\insrsid16077661
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779119}3.2 The .addin file{\*\bkmkend _Toc120779119}
\par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 The .addin file is the most important file of you}{\insrsid16077661\charrsid16077661
r addin. You can specify there what parts of SharpDevelop your addin is extending. Your actual addin library (.dll) will only be loaded when it is first needed.}{\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 When you create a new AddIn using the template, the following file has already been generated for you:
\par }{\cs55\f2\fs20\cf18\insrsid16077661\charrsid16077661 }{\insrsid16077661
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\f2\fs20\cf18\insrsid16077661 \tab
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid16077661 \tab }{\fs20\loch\af2\insrsid16077661 \hich\af37\dbch\af0\loch\f2 }{\insrsid16077661
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\f2\fs20\cf18\insrsid16077661 \tab \tab }{\insrsid16077661
\par }{\f2\fs20\cf18\insrsid16077661 \tab
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid16077661 \tab }{\insrsid16077661
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\f2\fs20\cf18\insrsid16077661 \tab }{\insrsid16077661
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\f2\fs20\cf18\insrsid16077661 \tab \tab }{\insrsid16077661
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\f2\fs20\cf18\insrsid16077661 \tab
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid16077661 \hich\af37\dbch\af0\loch\f2 }{\insrsid16077661
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661
\par }\pard\plain \s15\qj \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 This demonstrates how an .addin file works: the section des}{
\insrsid16077661\charrsid16077661 cribes what assemblies are used by the AddIn. Then any number of extension paths is following. This way, you can insert elements into the AddInTree. }{\f2\fs20\cf2\insrsid16077661\charrsid16077661 MyAddInName.TestPad }{
\insrsid16077661\charrsid16077661 is a class defined in MyAddInName.dll. That assembly is only loaded, when the instance of the class is created. This is not when SharpDevelop is started, but when the pad }{\b\insrsid16077661\charrsid16077661 content}{
\insrsid16077661\charrsid16077661 is shown first. So a pad that is in the background since the start of SharpDevelop won't cause the assembly to be loaded.}{\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 For more information about the possible extensions paths and how the AddinTree works in detail, read the document \'84AddInTree\'93 in this folder.
\par }\pard \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661\charrsid16077661
The addin file is not compiled into the assembly but copied to the output directory (BuildAction=None, CopyToOuputDirectory=Always; the template should already have set these properties for you).}{\insrsid16077661
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779120}4 Using Resources
{\*\bkmkend _Toc120779120}
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779121}4.1 XmlForms and other files{\*\bkmkend _Toc120779121}
\par }\pard\plain \s15\qj \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661\charrsid16077661
The template demonstrates the use of resource files by using a XmlForms to display the pad content. Your AddIn does not need to use XmlForms, the template just shows the use of resources (and XmlForms).
\par You can put any files into the Resources directory (see table in chapter 2.1). Set the build type to 'EmbeddedResource' and file will be compiled into the assembly. You can then access the file by using }{\f2\fs20\insrsid16077661 Assembly}{
\f2\fs20\cf19\insrsid16077661 .}{\b\f2\fs20\cf20\insrsid16077661 GetExecutingAssembly}{\f2\fs20\cf19\insrsid16077661 ().}{\b\f2\fs20\cf20\insrsid16077661 GetManifestResourceStream}{\f2\fs20\cf19\insrsid16077661 (}{\f2\fs20\cf5\insrsid16077661
"MyAddInName.Resources.MyUserControl.xfrm"}{\f2\fs20\cf19\insrsid16077661 )}{\cf0\insrsid16077661\charrsid16077661 .}{\insrsid16077661
\par }{\cf0\insrsid16077661\charrsid16077661 Unlike SharpDevelop 1.x, the compiler will prepend the resource files name with the root namespace in the project settings and the folder it is stored within the
project. Therefore, the file name MyUserControl.xfrm gets expanded to }{\f2\fs20\cf6\insrsid16077661\charrsid16077661 MyAddInName}{\f2\fs20\cf5\insrsid16077661\charrsid16077661 .Resources.}{\f2\fs20\cf9\insrsid16077661\charrsid16077661 MyUserControl.xfrm}
{\cf0\insrsid16077661\charrsid16077661 .
\par }\pard \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid16077661\charrsid16077661 GetManifestResourceStream returns a stream, so don't forget to close it when you are finished.}{\insrsid16077661
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779122}4.2 Bitmaps{\*\bkmkend _Toc120779122}
\par }\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 There are two types of bitmaps:
\par }{\b\insrsid16077661 1. Bitmaps you need in your}{\b\insrsid16077661\charrsid16077661 addin}{\b\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 Just put the bitmaps in the Resources directory and set the action to 'EmbedAsResource'. You can then use }{\f2\fs20\insrsid16077661\charrsid16077661
Assembly.GetExecutingAssembly().GetManifestResourceStream("RootNamespace.Resources.MyImage.png")}{\insrsid16077661\charrsid16077661
\par to get a stream to the resource file. You can create a bitmap from that stream, and then dispose the stream.}{\insrsid16077661
\par
\par Q: Can I use a resource file (*.resources/*.resx), wouldn't this make things easier?
\par A: Yes and No. It would be harder to alter the bitmap. I know that most bitmaps
won't be altered during their life. The main reason for doing this is that #Develop may be ported to a newer .NET Version and the resource files will be broken onto the next .NET version.
\par }{\insrsid16077661\charrsid16077661 This will make it more difficult to bring #Develop to the new framework. I recommend all people not storing anything other than strings into resource files. Binary data is a 100% no go.
\par }{\insrsid16077661
\par }{\b\insrsid16077661\charrsid16077661 2. Bitmaps for the ResourceService
\par }{\insrsid16077661\charrsid16077661 Bitmaps must be registered before they can be used in the ResourceService. The ResourceService is used for the icons of the pads and menu items.
\par Currently, there is no easy way to make the ResourceService aware of icons supplied with your Addin. The easiest way to add new bitmaps is to go into the SharpDevelopResources/BitmapResources directory and put your bitmaps in a subdirectory.}{
\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 Then you can edit the }{\b\insrsid16077661\charrsid16077661 text file}{\insrsid16077661\charrsid16077661
SharpDevelopResources/BitmapResources/BitmapResources.res and include a line for your bitmap (do this near the lines of the other bitmaps of the same subdirectory). Call BitmapResources/build.ba
t and the resources will be compiled and inserted into the StartUp project (SharpDevelop.exe). Compile SharpDevelop using SharpDevelop/src/build.bat to finally use the new resource file.}{\insrsid16077661
\par }{\insrsid16077661\charrsid16077661 There is also another possible way when you want to distribute your r
esources separately: Make a separate directory like SharpDevelopResources/BitmapResources for your project and use a similar build file to build the bitmaps in to a BitmapResources.resources binary file. Do not edit the BitmapResources.resources file dir
ectly, always use the build script (see question in the previous section)! Then add the BitmapResources.resources file as embedded resource into your addin assembly. To register the file in the ResourceService}{\insrsid16077661
, create a AutoStart command that calls
\par }{\f2\fs20\insrsid16077661 ResourceService}{\f2\fs20\cf19\insrsid16077661 .}{\f2\fs20\insrsid16077661 RegisterImages(}{\f2\fs20\cf2\insrsid16077661 "MyAddinName.Resources.BitmapResources"}{\f2\fs20\cf19\insrsid16077661 ,\line
}{\b\f2\fs20\cf20\insrsid16077661 GetType}{\f2\fs20\cf19\insrsid16077661 ().}{\f2\fs20\insrsid16077661 Assembly)}{\insrsid16077661
\par In the future, we might implement a way where your *.addin file allows you to specify a resource directory for use with the ResourceService without requiring SharpDevelop to load your addin ass}{\insrsid16077661\charrsid16077661 embly on startup.}{
\insrsid16077661
\par }{\insrsid16077661\charrsid16077661
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 {\*\bkmkstart _Toc120779123}4.3 Strings (localization){\*\bkmkend _Toc120779123}
\par }\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid16077661 For localizable strings, you can use SharpDevelop's resource service.
\par To request a localized string, use StringParser.Parse(\'93$\{res:FullResourceName\}\'94).
\par The string resource names should be in the format \'93YourAddInName.ResourceName\'94.
\par In all strings in the XML addin definition file; in XmlForms and for the MessageService, resource access in \'93$\{...\}\'94 are automatically resolved, you do not need to call StringParser.Parse there.
\par }{\b\insrsid16077661 How to supply your strings:
\par }{\insrsid16077661 Add a .resources file to the \'93Resources\'94 directory of your addin (SharpDevelop has a template in the \'93Misc\'94 section). You should name it \'93StringResources.resources\'94.
\par In this file, you enter the \'93fall back\'94 values when a resource entry is not found in a language-specific file. Normally, the US-English strings should be placed in that file.
\par Put the translated strings in files like \'93StringResources.de.resources\'94 in the resource directory (\'93de\'94 is the language code). The translated strings will be automatically compiled into satellite assemblies.
\par }{\b\insrsid16077661 How to make SharpDevelop aware of your strings:
\par }{\insrsid16077661 Run the following command when your strings are needed the first time:
\par }{\f2\fs20\insrsid16077661 ResourceService}{\f2\fs20\cf19\insrsid16077661 .}{\f2\fs20\insrsid16077661 RegisterStrings(}{\f2\fs20\cf2\insrsid16077661 "MyAddinName.Resources.StringResources"}{\f2\fs20\cf19\insrsid16077661 ,\line
}{\b\f2\fs20\cf20\insrsid16077661 GetType}{\f2\fs20\cf19\insrsid16077661 ().}{\f2\fs20\insrsid16077661 Assembly)}{\insrsid16077661
\par This will make SharpDevelop load the strings and merge them into the ResourceService. The correct satellite assembly will automatically be (re)loaded whenever the user changes the UI language.
\par }}