Browse Source

Feature: Removed the #import directive that was conflicting with multi-processor compilation flag in VS, resulting in a significant speed up in build times.

BearishSun 8 years ago
parent
commit
fb4c0c999d

+ 42 - 38
Source/BansheeEditor/Win32/BsVSCodeEditor.cpp

@@ -7,9 +7,13 @@
 #include "FileSystem/BsDataStream.h"
 
 // Import EnvDTE
-#pragma warning(disable: 4278)
-#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
-#pragma warning(default: 4278)
+// Uncomment this code to generate the dte80a.tlh file below. We're not using #import directly because it is not
+// compatible with multi-processor compilation of the build
+//#pragma warning(disable: 4278)
+//#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
+//#pragma warning(default: 4278)
+
+#include "Win32/dte80a.tlh"
 
 namespace bs
 {
@@ -440,36 +444,36 @@ EndProject)";
 <Project ToolsVersion="{0}" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')" />
   <PropertyGroup>
-    <Configuration Condition = " '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition = " '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>\{{1}\}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace></RootNamespace>
-    <AssemblyName>{2}</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <BaseDirectory>Resources</BaseDirectory>
-    <SchemaVersion>2.0</SchemaVersion>
+	<Configuration Condition = " '$(Configuration)' == '' ">Debug</Configuration>
+	<Platform Condition = " '$(Platform)' == '' ">AnyCPU</Platform>
+	<ProjectGuid>\{{1}\}</ProjectGuid>
+	<OutputType>Library</OutputType>
+	<AppDesignerFolder>Properties</AppDesignerFolder>
+	<RootNamespace></RootNamespace>
+	<AssemblyName>{2}</AssemblyName>
+	<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+	<FileAlignment>512</FileAlignment>
+	<BaseDirectory>Resources</BaseDirectory>
+	<SchemaVersion>2.0</SchemaVersion>
   </PropertyGroup>
   <PropertyGroup Condition = " '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>Internal\\Temp\\Assemblies\\Debug\\</OutputPath>
-    <BaseIntermediateOutputPath>Internal\\Temp\\Assemblies\\</BaseIntermediateOutputPath>
-    <DefineConstants>DEBUG;TRACE;{3}</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel >
+	<DebugSymbols>true</DebugSymbols>
+	<DebugType>full</DebugType>
+	<Optimize>false</Optimize>
+	<OutputPath>Internal\\Temp\\Assemblies\\Debug\\</OutputPath>
+	<BaseIntermediateOutputPath>Internal\\Temp\\Assemblies\\</BaseIntermediateOutputPath>
+	<DefineConstants>DEBUG;TRACE;{3}</DefineConstants>
+	<ErrorReport>prompt</ErrorReport>
+	<WarningLevel>4</WarningLevel >
   </PropertyGroup>
   <PropertyGroup Condition = " '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>Internal\\Temp\\Assemblies\\Release\\</OutputPath>
+	<DebugType>pdbonly</DebugType>
+	<Optimize>true</Optimize>
+	<OutputPath>Internal\\Temp\\Assemblies\\Release\\</OutputPath>
 	<BaseIntermediateOutputPath>Internal\\Temp\\Assemblies\\</BaseIntermediateOutputPath>
-    <DefineConstants>TRACE;{3}</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
+	<DefineConstants>TRACE;{3}</DefineConstants>
+	<ErrorReport>prompt</ErrorReport>
+	<WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>{4}
   </ItemGroup>
@@ -484,28 +488,28 @@ EndProject)";
 
 	const String VisualStudio::REFERENCE_ENTRY_TEMPLATE =
 		R"(
-    <Reference Include="{0}"/>)";
+	<Reference Include="{0}"/>)";
 
 	const String VisualStudio::REFERENCE_PATH_ENTRY_TEMPLATE =
 		R"(
-    <Reference Include="{0}">
-      <HintPath>{1}</HintPath>
-    </Reference>)";
+	<Reference Include="{0}">
+	  <HintPath>{1}</HintPath>
+	</Reference>)";
 
 	const String VisualStudio::REFERENCE_PROJECT_ENTRY_TEMPLATE =
 		R"(
-    <ProjectReference Include="{0}.csproj">
-      <Project>\{{1}\}</Project>
-      <Name>{0}</Name>
-    </ProjectReference>)";
+	<ProjectReference Include="{0}.csproj">
+	  <Project>\{{1}\}</Project>
+	  <Name>{0}</Name>
+	</ProjectReference>)";
 
 	const String VisualStudio::CODE_ENTRY_TEMPLATE =
 		R"(
-    <Compile Include="{0}"/>)";
+	<Compile Include="{0}"/>)";
 
 	const String VisualStudio::NON_CODE_ENTRY_TEMPLATE =
 		R"(
-    <None Include="{0}"/>)";
+	<None Include="{0}"/>)";
 
 	VSCodeEditor::VSCodeEditor(VisualStudioVersion version, const Path& execPath, const WString& CLSID)
 		:mVersion(version), mExecPath(execPath), mCLSID(CLSID)

+ 7538 - 0
Source/BansheeEditor/Win32/dte80a.tlh

@@ -0,0 +1,7538 @@
+// Created by Microsoft (R) C/C++ Compiler Version 14.11.25508.2 (a89b5387).
+//
+// c:\projects\bansheeenginedev\bansheeenginecpy2\build\vs2017\bansheeeditor\bansheeeditor.dir\debug\dte80a.tlh
+//
+// C++ source equivalent of Win32 type library 80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2
+// compiler-generated file created 09/21/17 at 14:36:29 - DO NOT EDIT!
+
+#pragma once
+#pragma pack(push, 8)
+
+#include <comdef.h>
+
+namespace EnvDTE {
+
+//
+// Forward references and typedefs
+//
+
+struct __declspec(uuid("80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2"))
+/* LIBID */ __EnvDTE;
+struct __declspec(uuid("04a72314-32e9-48e2-9b87-a63603454f3e"))
+/* dual interface */ _DTE;
+struct __declspec(uuid("2294311a-b7bc-4789-b365-1c15ff2cd17c"))
+/* dual interface */ Windows;
+struct __declspec(uuid("0beab46b-4c07-4f94-a8d7-1626020e4e53"))
+/* dual interface */ Window;
+enum vsWindowState;
+enum vsWindowType;
+struct __declspec(uuid("f00ef34a-a654-4c1b-897a-585d5bcbb35a"))
+/* dual interface */ LinkedWindows;
+struct /* coclass */ DTE;
+struct __declspec(uuid("0b48100a-473e-433c-ab8f-66b9739ab620"))
+/* dual interface */ ProjectItem;
+struct __declspec(uuid("8e2f1269-185e-43c7-8899-950ad2769ccf"))
+/* dual interface */ ProjectItems;
+struct __declspec(uuid("866311e6-c887-4143-9833-645f5b93f6f1"))
+/* dual interface */ Project;
+struct __declspec(uuid("e3ec0add-31b3-461f-8303-8a5e6931257a"))
+/* dual interface */ Projects;
+struct __declspec(uuid("4cc8ccf5-a926-4646-b17f-b4940caed472"))
+/* dual interface */ Properties;
+struct __declspec(uuid("7b988e06-2581-485e-9322-04881e0600d0"))
+/* dual interface */ Property;
+struct __declspec(uuid("9043fda1-345b-4364-900f-bc8598eb8e4f"))
+/* dual interface */ ConfigurationManager;
+struct __declspec(uuid("90813589-fe21-4aa4-a2e5-053fd274e980"))
+/* dual interface */ Configuration;
+enum vsConfigurationType;
+struct __declspec(uuid("f9fa748e-e302-44cf-891b-e263189d585e"))
+/* dual interface */ OutputGroups;
+struct __declspec(uuid("a3a80783-875f-435b-9639-e5ce888df737"))
+/* dual interface */ OutputGroup;
+struct __declspec(uuid("b6b4c8d6-4d27-43b9-b45c-52bd16b6ba38"))
+/* dual interface */ Configurations;
+struct __declspec(uuid("e68a3e0e-b435-4dde-86b7-f5adefc19df2"))
+/* dual interface */ Globals;
+struct __declspec(uuid("0cfbc2b4-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeModel;
+struct __declspec(uuid("0cfbc2b5-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeElements;
+struct __declspec(uuid("0cfbc2b6-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeElement;
+enum vsCMElement;
+enum vsCMInfoLocation;
+struct __declspec(uuid("7f59e94e-4939-40d2-9f7f-b7651c25905d"))
+/* dual interface */ TextPoint;
+struct __declspec(uuid("cb218890-1382-472b-9118-782700c88115"))
+/* dual interface */ TextDocument;
+struct __declspec(uuid("63eb5c39-ca8f-498e-9a66-6dd4a27ac95b"))
+/* dual interface */ Document;
+struct __declspec(uuid("9e2cf3ea-140f-413e-bd4b-7d46740cd2f4"))
+/* dual interface */ Documents;
+enum vsSaveChanges;
+enum vsSaveStatus;
+struct __declspec(uuid("1fa0e135-399a-4d2c-a4fe-d21e2480f921"))
+/* dual interface */ TextSelection;
+struct __declspec(uuid("42320454-626c-4dd0-9ecb-357c4f1966d8"))
+/* dual interface */ VirtualPoint;
+enum vsCaseOptions;
+enum vsWhitespaceOptions;
+enum vsStartOfLineOptions;
+struct __declspec(uuid("b6422e9c-9efd-4f87-bddc-c7fd8f2fd303"))
+/* dual interface */ TextRanges;
+struct __declspec(uuid("72767524-e3b3-43d0-bb46-bbe1d556a9ff"))
+/* dual interface */ TextRange;
+struct __declspec(uuid("c1ffe800-028b-4475-a907-14f51f19bb7d"))
+/* dual interface */ EditPoint;
+struct __declspec(uuid("0a3bf283-05f8-4669-9bcb-a84b6423349a"))
+/* dual interface */ TextPane;
+struct __declspec(uuid("d9013d31-3652-46b2-a25a-29a881b9f86b"))
+/* dual interface */ TextPanes;
+struct __declspec(uuid("2fc54dc9-922b-44eb-8cc0-ba182584dc4b"))
+/* dual interface */ TextWindow;
+enum vsPaneShowHow;
+enum vsSelectionMode;
+enum vsCMPart;
+struct __declspec(uuid("0cfbc2b7-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeType;
+struct __declspec(uuid("0cfbc2b8-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeNamespace;
+enum vsCMAccess;
+struct __declspec(uuid("b1f42514-91cd-4d3a-8b25-a317d8032b24"))
+/* dual interface */ CodeClass;
+struct __declspec(uuid("0cfbc2be-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeAttribute;
+struct __declspec(uuid("b1f42510-91cd-4d3a-8b25-a317d8032b24"))
+/* dual interface */ CodeInterface;
+enum vsCMFunction;
+struct __declspec(uuid("0cfbc2b9-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeFunction;
+struct __declspec(uuid("0cfbc2bc-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeTypeRef;
+enum vsCMTypeRef;
+struct __declspec(uuid("0cfbc2bd-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeParameter;
+struct __declspec(uuid("0cfbc2bb-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeProperty;
+struct __declspec(uuid("0cfbc2ba-0d4e-11d3-8997-00c04f688dde"))
+/* dual interface */ CodeVariable;
+struct __declspec(uuid("b1f42511-91cd-4d3a-8b25-a317d8032b24"))
+/* dual interface */ CodeStruct;
+struct __declspec(uuid("b1f42512-91cd-4d3a-8b25-a317d8032b24"))
+/* dual interface */ CodeEnum;
+struct __declspec(uuid("b1f42513-91cd-4d3a-8b25-a317d8032b24"))
+/* dual interface */ CodeDelegate;
+struct __declspec(uuid("ed1a3f99-4477-11d3-89bf-00c04f688dde"))
+/* dual interface */ FileCodeModel;
+struct __declspec(uuid("33c5ebb8-244e-449d-9cee-fad70a774e59"))
+/* dual interface */ ContextAttributes;
+struct __declspec(uuid("1a6e2cb3-b897-42eb-96be-ff0fdb65db2f"))
+/* dual interface */ ContextAttribute;
+enum vsContextAttributeType;
+enum vsContextAttributes;
+struct __declspec(uuid("53a87fa1-ce93-48bf-958b-c6da793c5028"))
+/* dual interface */ AddIn;
+struct __declspec(uuid("50590801-d13e-4404-80c2-5ca30a4d0ee8"))
+/* dual interface */ AddIns;
+enum vsLinkedWindowType;
+struct __declspec(uuid("134170f8-93b1-42dd-9f89-a2ac7010ba07"))
+/* dual interface */ Events;
+struct /* coclass */ CommandEvents;
+struct __declspec(uuid("a79fc678-0d0a-496a-b9dc-0d5b9e1ca9fc"))
+/* interface */ _CommandEvents;
+struct __declspec(uuid("ff2d5c12-feea-11d0-bbc8-00a0c90f2744"))
+/* dispinterface */ _dispCommandEvents;
+struct /* coclass */ SelectionEvents;
+struct __declspec(uuid("eb6783db-1819-496d-84a4-3cff883010f6"))
+/* interface */ _SelectionEvents;
+struct __declspec(uuid("deeb28b3-23e6-11d1-ae5c-00a0c90f26f4"))
+/* dispinterface */ _dispSelectionEvents;
+struct /* coclass */ SolutionEvents;
+struct __declspec(uuid("bf8bbf37-5415-46a9-940d-594cad9dec26"))
+/* interface */ _SolutionEvents;
+struct __declspec(uuid("fbcff1c2-261c-11d1-ae5e-00a0c90f26f4"))
+/* dispinterface */ _dispSolutionEvents;
+struct /* coclass */ BuildEvents;
+struct __declspec(uuid("794a2ba5-ffa6-4fc5-bf13-957b2c22edd7"))
+/* interface */ _BuildEvents;
+struct __declspec(uuid("1926364e-6b90-46cb-a44d-8a80fb11acd9"))
+/* dispinterface */ _dispBuildEvents;
+enum vsBuildScope;
+enum vsBuildAction;
+struct /* coclass */ WindowEvents;
+struct __declspec(uuid("0d3a23a8-67bb-11d2-97c1-00c04fb6c6ff"))
+/* interface */ _WindowEvents;
+struct __declspec(uuid("0d3a23a9-67bb-11d2-97c1-00c04fb6c6ff"))
+/* dispinterface */ _dispWindowEvents;
+struct /* coclass */ OutputWindowEvents;
+struct __declspec(uuid("0a3546a8-6840-11d2-97c1-00c04fb6c6ff"))
+/* interface */ _OutputWindowEvents;
+struct __declspec(uuid("0d3a23af-67bb-11d2-97c1-00c04fb6c6ff"))
+/* dispinterface */ _dispOutputWindowEvents;
+struct __declspec(uuid("ffc9dfc4-61ca-4b0c-83c2-0703a24f5c16"))
+/* dual interface */ OutputWindowPane;
+struct __declspec(uuid("b02cf62a-9470-4308-a521-9675fba395ab"))
+/* dual interface */ OutputWindowPanes;
+struct __declspec(uuid("eab0a63d-c3a8-496e-9acf-a82cef6a43b3"))
+/* dual interface */ OutputWindow;
+enum vsTaskPriority;
+enum vsTaskIcon;
+struct /* coclass */ FindEvents;
+struct __declspec(uuid("c5331acd-c5d5-11d2-8598-006097c68e81"))
+/* interface */ _FindEvents;
+struct __declspec(uuid("c5331ace-c5d5-11d2-8598-006097c68e81"))
+/* dispinterface */ _dispFindEvents;
+enum vsFindResult;
+struct /* coclass */ TaskListEvents;
+struct __declspec(uuid("1125c422-49bd-11d2-8823-00c04fb6c6ff"))
+/* interface */ _TaskListEvents;
+struct __declspec(uuid("1125c423-49bd-11d2-8823-00c04fb6c6ff"))
+/* dispinterface */ _dispTaskListEvents;
+struct __declspec(uuid("58e4d419-6b8c-4c63-92de-70161cd95890"))
+/* dual interface */ TaskItem;
+struct __declspec(uuid("4b51103d-513c-4773-b56a-354d0928fd04"))
+/* dual interface */ TaskItems;
+struct __declspec(uuid("4e4f0569-e16a-4da1-92de-10882a4ddd8c"))
+/* dual interface */ TaskList;
+enum vsTaskListColumn;
+struct /* coclass */ DTEEvents;
+struct __declspec(uuid("fa1bb6d7-ca83-11d2-aab2-00c04f688dde"))
+/* interface */ _DTEEvents;
+struct __declspec(uuid("b50c9708-c909-4b87-a03d-af6cc4bfb422"))
+/* dispinterface */ _dispDTEEvents;
+enum vsIDEMode;
+struct /* coclass */ DocumentEvents;
+struct __declspec(uuid("dc5437f5-f114-11d2-aacf-00c04f688dde"))
+/* interface */ _DocumentEvents;
+struct __declspec(uuid("dc5437f6-f114-11d2-aacf-00c04f688dde"))
+/* dispinterface */ _dispDocumentEvents;
+struct /* coclass */ ProjectItemsEvents;
+struct __declspec(uuid("22800963-2811-410d-bf87-a7808eac977d"))
+/* dual interface */ _ProjectItemsEvents;
+struct __declspec(uuid("6962753f-efd5-41c5-b083-d70687166aeb"))
+/* dispinterface */ _dispProjectItemsEvents;
+struct /* coclass */ DebuggerEvents;
+struct __declspec(uuid("d4eae958-0fba-11d3-b880-00c04f79e479"))
+/* interface */ _DebuggerEvents;
+struct __declspec(uuid("46209330-0fba-11d3-b880-00c04f79e479"))
+/* dispinterface */ _dispDebuggerEvents;
+enum dbgEventReason;
+enum dbgExecutionAction;
+enum dbgExceptionAction;
+struct __declspec(uuid("5c5a0070-f396-4e37-a82a-1b767e272df9"))
+/* dual interface */ Process;
+struct __declspec(uuid("dc6a118a-bbab-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Programs;
+struct __declspec(uuid("6a38d87c-bba0-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Program;
+struct __declspec(uuid("6aa23fb4-bba1-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Threads;
+struct __declspec(uuid("9407f466-bba1-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Thread;
+struct __declspec(uuid("4ed85664-bba2-11d2-8ad1-00c04f79e479"))
+/* dual interface */ StackFrames;
+struct __declspec(uuid("1342d0d8-bba3-11d2-8ad1-00c04f79e479"))
+/* dual interface */ StackFrame;
+struct __declspec(uuid("2685337a-bb9e-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Expressions;
+struct __declspec(uuid("27adc812-bb07-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Expression;
+struct __declspec(uuid("338fb9a0-bae5-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Debugger;
+struct __declspec(uuid("25968106-bafb-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Breakpoints;
+struct __declspec(uuid("11c5114c-bb00-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Breakpoint;
+enum dbgBreakpointType;
+enum dbgBreakpointLocationType;
+enum dbgBreakpointConditionType;
+enum dbgHitCountType;
+struct __declspec(uuid("a4f4246c-c131-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Languages;
+struct __declspec(uuid("b3ccfa68-c145-11d2-8ad1-00c04f79e479"))
+/* dual interface */ Language;
+enum dbgDebugMode;
+struct __declspec(uuid("9f379969-5eac-4a54-b2bc-6946cffb56ef"))
+/* dual interface */ Processes;
+struct /* coclass */ TextEditorEvents;
+struct __declspec(uuid("23b7a868-6c89-436a-94fa-25d755456a77"))
+/* interface */ _TextEditorEvents;
+struct __declspec(uuid("2699dd44-c507-4da3-aa34-314a6c21dfe2"))
+/* dispinterface */ _dispTextEditorEvents;
+enum vsDisplay;
+struct /* coclass */ Solution;
+struct __declspec(uuid("26f6cc4b-7a48-4e4d-8af5-9e960232e05f"))
+/* dual interface */ _Solution;
+struct __declspec(uuid("a3c1c40c-9218-4d4c-9daa-075f64f6922c"))
+/* dual interface */ SolutionBuild;
+struct __declspec(uuid("60aaad75-cb8d-4c62-9959-24d6a6a50de7"))
+/* dual interface */ SolutionConfiguration;
+struct __declspec(uuid("23e78ed7-c9e1-462d-8bc6-366003486ed9"))
+/* dual interface */ SolutionConfigurations;
+struct __declspec(uuid("0685b546-fb84-4917-ab98-98d40f892d61"))
+/* dual interface */ SolutionContexts;
+struct __declspec(uuid("fc6a1a82-9c8a-47bb-a046-6e965df5a99b"))
+/* dual interface */ SolutionContext;
+struct __declspec(uuid("ead260eb-1e5b-450a-b628-4cfada11b4a1"))
+/* dual interface */ BuildDependencies;
+struct __declspec(uuid("9c5ceaac-062f-4434-a2ed-78ab4d6134fe"))
+/* dual interface */ BuildDependency;
+enum vsBuildState;
+struct __declspec(uuid("e6b96cac-b8c7-40ae-b705-5c81878c4a9e"))
+/* dual interface */ Commands;
+struct __declspec(uuid("5fe10fb0-91a1-4e55-baaa-eccae5cceb94"))
+/* dual interface */ Command;
+enum vsCommandBarType;
+struct __declspec(uuid("6caa67cf-43ae-4184-aaab-0200ddf6b240"))
+/* dual interface */ SelectedItems;
+struct __declspec(uuid("049d2cdf-3731-4cb6-a233-be97bce922d3"))
+/* dual interface */ SelectedItem;
+struct __declspec(uuid("02273422-8dd4-4a9f-8a8b-d70443d510f4"))
+/* dual interface */ SelectionContainer;
+struct __declspec(uuid("e577442a-98e1-46c5-bd2e-d25807ec81ce"))
+/* dual interface */ WindowConfigurations;
+struct __declspec(uuid("41d02413-8a67-4c28-a980-ad7539ed415d"))
+/* dual interface */ WindowConfiguration;
+struct __declspec(uuid("c34301a1-3ef1-41d8-932a-fea4a8a8ce0c"))
+/* dual interface */ StatusBar;
+struct __declspec(uuid("8d0aa9cc-8465-42f3-ad6e-dfde28ccc75d"))
+/* dual interface */ ObjectExtenders;
+struct __declspec(uuid("4db06329-23f4-443b-9abd-9cf611e8ae07"))
+/* dual interface */ IExtenderProvider;
+struct __declspec(uuid("e57c510b-968b-4a3c-a467-ee4013157dc9"))
+/* dual interface */ IExtenderSite;
+struct __declspec(uuid("f69b64a3-9017-4e48-9784-e152b51aa722"))
+/* dual interface */ IExtenderProviderUnk;
+struct __declspec(uuid("40d4b9b6-739b-4965-8d65-692aec692266"))
+/* dual interface */ Find;
+enum vsFindAction;
+enum vsFindPatternSyntax;
+enum vsFindTarget;
+enum vsFindResultsLocation;
+enum wizardResult;
+struct __declspec(uuid("d5dbe57b-c074-4e95-b015-abeeaa391693"))
+/* dual interface */ ItemOperations;
+enum vsNavigateOptions;
+enum vsPromptResult;
+struct __declspec(uuid("d8dec44d-caf2-4b39-a539-b91ae921ba92"))
+/* dual interface */ UndoContext;
+struct __declspec(uuid("f9f99155-6d4d-49b1-ad63-c78c3e8a5916"))
+/* dual interface */ Macros;
+struct __declspec(uuid("f1ddc2c2-df76-4ebb-9de8-48ad2557062c"))
+/* dual interface */ SourceControl;
+struct __declspec(uuid("f47dc7e7-84b6-474f-bb91-631640aa0560"))
+/* dual interface */ TextBuffer;
+struct __declspec(uuid("6659ed14-2ab6-47f3-a890-00c8aba43b84"))
+/* interface */ ISupportVSProperties;
+struct __declspec(uuid("56fcd5af-7f17-4c5c-aa8d-ae2bb2ddbf38"))
+/* dual interface */ ToolBox;
+struct __declspec(uuid("ce2def9e-3387-4bf2-967b-a1f7f70df325"))
+/* dual interface */ ToolBoxTab;
+struct __declspec(uuid("cf177b52-4f2f-42a0-8da3-ce78679a0d2d"))
+/* dual interface */ ToolBoxTabs;
+struct __declspec(uuid("395c7dfb-f158-431c-8f43-dda83b4ef54e"))
+/* dual interface */ ToolBoxItems;
+struct __declspec(uuid("46538d1b-4d81-4002-8bb4-dbdb65babb23"))
+/* dual interface */ ToolBoxItem;
+enum vsToolBoxItemFormat;
+struct __declspec(uuid("eb5be8a7-e593-4de6-a923-c2afecb96336"))
+/* interface */ IExtensibleObjectSite;
+struct __declspec(uuid("8cc0cde1-c16a-4749-99af-6f7523c34a57"))
+/* interface */ IVsProfferCommands;
+struct __declspec(uuid("aade1f59-6ace-43d1-8fca-42af3a5c4f3c"))
+/* dual interface */ IFilterProperties;
+enum vsFilterProperties;
+struct __declspec(uuid("fbd0d024-09cd-4d9f-9e2b-cacd628426a5"))
+/* dual interface */ UIHierarchyItem;
+struct __declspec(uuid("db8406b0-a916-449c-a277-bb04028f4394"))
+/* dual interface */ UIHierarchyItems;
+enum vsUISelectionType;
+struct __declspec(uuid("72a2a2ef-c209-408c-a377-76871774adb7"))
+/* dual interface */ UIHierarchy;
+struct __declspec(uuid("9ff3ddca-1795-4191-a5b1-02d1ae35d074"))
+/* dual interface */ TextEditor;
+enum vsCMPrototype;
+struct __declspec(uuid("d4bb39fb-0f0e-11d3-b880-00c04f79e479"))
+/* dual interface */ _DebuggerEventsRoot;
+enum vsNavigateBrowser;
+enum vsCommandDisabledFlags;
+enum vsInitializeMode;
+struct __declspec(uuid("e914bbe1-03a4-11d1-bbcd-00a0c90f2744"))
+/* dual interface */ IDTWizard;
+struct __declspec(uuid("3c536122-57b1-46de-ab34-acc524140093"))
+/* interface */ IVsExtensibility;
+struct __declspec(uuid("e2cc506a-588b-4f65-a1f0-2244c060abcb"))
+/* interface */ IVsGlobalsCallback;
+struct __declspec(uuid("192ac688-e7c6-4f9d-8180-4b37efbf6f3a"))
+/* interface */ IVsGlobals;
+enum vsCommandStatusTextWanted;
+enum vsCommandStatus;
+enum vsCommandExecOption;
+struct __declspec(uuid("7ef39a3e-590d-4879-88d4-c9be5bcfd92e"))
+/* dual interface */ IDTCommandTarget;
+struct __declspec(uuid("509b9955-7303-48c9-90d4-e165b974e6ba"))
+/* dual interface */ CommandWindow;
+struct __declspec(uuid("85451f83-b5ca-437f-a619-0cb705707420"))
+/* dual interface */ _ProjectsEvents;
+struct __declspec(uuid("7f508d55-627f-4d7f-be0b-9e3d829ff0ed"))
+/* dispinterface */ _dispProjectsEvents;
+struct /* coclass */ ProjectsEvents;
+struct __declspec(uuid("7658b944-f37b-11d2-aacf-00c04f688dde"))
+/* dual interface */ _MiscSlnFilesEventsRoot;
+struct __declspec(uuid("9e66fe98-a1c6-421d-8c0c-6da4e652e770"))
+/* interface */ _CommandBarControlEvents;
+struct __declspec(uuid("987fb893-f96d-11d0-bbbb-00a0c90f2744"))
+/* dispinterface */ _dispCommandBarControlEvents;
+struct /* coclass */ CommandBarEvents;
+enum vsBuildKind;
+struct __declspec(uuid("dc5437f4-f114-11d2-aacf-00c04f688dde"))
+/* dual interface */ _DocumentEventsRoot;
+enum vsTextChanged;
+struct __declspec(uuid("b3c38885-b288-44a8-b290-34fe63bf3c76"))
+/* dual interface */ _TextEditorEventsRoot;
+struct __declspec(uuid("17d12026-ba99-403e-a359-71fd1e5a72cd"))
+/* dual interface */ _WindowEventsRoot;
+struct __declspec(uuid("aa6f4085-33b6-4629-b9ea-692101007cc2"))
+/* dual interface */ _OutputWindowEventsRoot;
+struct __declspec(uuid("6bc8c372-c6f0-4be6-b255-827ac190bf71"))
+/* dual interface */ _TaskListEventsRoot;
+enum vsStatusAnimation;
+struct __declspec(uuid("bdcaf240-2692-4713-902a-b110b1d0f100"))
+/* dual interface */ IDTToolsOptionsPage;
+enum vsStartUp;
+enum vsFontCharSet;
+enum vsBrowserViewSource;
+struct __declspec(uuid("a3286b03-5ac6-44f0-8cc3-ebed7f1124e5"))
+/* dual interface */ _EnvironmentWebBrowser;
+struct __declspec(uuid("aebded64-a206-11d3-b8b5-00c04f79f802"))
+/* dual interface */ _EnvironmentHelp;
+struct __declspec(uuid("e5d17051-d6e5-4da7-8b3a-ca888617a5e7"))
+/* dual interface */ ColorableItems;
+struct __declspec(uuid("f25ae7e6-1460-4ba4-8e5e-bbbe746de353"))
+/* dual interface */ FontsAndColorsItems;
+struct __declspec(uuid("256068f6-1add-4f7b-ba76-571314c413ad"))
+/* dual interface */ _FontsAndColors;
+struct __declspec(uuid("48e61d9c-8c8d-42d3-914b-46d70c8b7a40"))
+/* dual interface */ _EnvironmentGeneral;
+struct __declspec(uuid("f809cab6-2c9f-41f2-a5af-e26fb80e62ad"))
+/* dual interface */ _EnvironmentFontsAndColors;
+struct __declspec(uuid("478f06d4-5d57-473f-9b74-5f8e88efa5e7"))
+/* dual interface */ _EnvironmentProjectsAndSolution;
+struct __declspec(uuid("76ed1c48-ed86-4e9e-acf8-a40e765daf25"))
+/* dual interface */ _EnvironmentDocuments;
+struct __declspec(uuid("4bc18a5b-dbb6-4af5-a443-2e3f19365304"))
+/* dual interface */ _EnvironmentTaskList;
+struct __declspec(uuid("9c722678-490d-408f-98ae-b6b9a68aa45d"))
+/* dual interface */ _EnvironmentKeyboard;
+struct __declspec(uuid("86c31347-5b52-4715-b454-a6e5fcab975d"))
+/* interface */ IExtensibleObject;
+enum vsFindOptions;
+enum vsMovementOptions;
+enum vsGoToLineOptions;
+enum vsSmartFormatOptions;
+enum vsInsertFlags;
+enum vsMoveToColumnLine;
+enum vsEPReplaceTextOptions;
+struct __declspec(uuid("2e1bfd1c-5b26-4aca-b97b-ed9d261ba3e7"))
+/* dual interface */ IVsTextEditGeneral;
+struct __declspec(uuid("5943bd7e-d722-42db-a251-fe2add8711ea"))
+/* dual interface */ IVsTextEditPerLanguage;
+enum _vsIndentStyle;
+struct __declspec(uuid("f39ab913-e6c9-4546-a265-1e43f8de924c"))
+/* dual interface */ IVsTextEditFonts;
+enum vsext_FontCharSet;
+enum VSEXECRESULT;
+enum vsext_DisplayMode;
+enum vsext_WindowType;
+enum vsext_WindowState;
+enum vsext_LinkedWindowType;
+enum vsext_StartUp;
+enum vsext_Build;
+enum DsTextSearchOptions;
+enum DsSaveChanges;
+enum DsGoToLineOptions;
+enum DsStartOfLineOptions;
+enum DsMovementOptions;
+enum DsWhitespaceOptions;
+enum DsCaseOptions;
+enum dsSaveStatus;
+enum vsHTMLTabs;
+struct __declspec(uuid("f6576203-fbce-477e-a66b-eda237bb68a7"))
+/* dual interface */ HTMLWindow;
+#if !defined(_WIN64)
+typedef __w64 unsigned long ULONG_PTR;
+#else
+typedef unsigned __int64 ULONG_PTR;
+#endif
+#if !defined(_WIN64)
+typedef __w64 long LONG_PTR;
+#else
+typedef __int64 LONG_PTR;
+#endif
+typedef enum _vsIndentStyle vsIndentStyle;
+typedef enum VSEXECRESULT vs_exec_Result;
+
+//
+// Smart pointer typedef declarations
+//
+
+_COM_SMARTPTR_TYPEDEF(Globals, __uuidof(Globals));
+_COM_SMARTPTR_TYPEDEF(_CommandEvents, __uuidof(_CommandEvents));
+_COM_SMARTPTR_TYPEDEF(_dispCommandEvents, __uuidof(_dispCommandEvents));
+_COM_SMARTPTR_TYPEDEF(_SelectionEvents, __uuidof(_SelectionEvents));
+_COM_SMARTPTR_TYPEDEF(_dispSelectionEvents, __uuidof(_dispSelectionEvents));
+_COM_SMARTPTR_TYPEDEF(_SolutionEvents, __uuidof(_SolutionEvents));
+_COM_SMARTPTR_TYPEDEF(_dispSolutionEvents, __uuidof(_dispSolutionEvents));
+_COM_SMARTPTR_TYPEDEF(_BuildEvents, __uuidof(_BuildEvents));
+_COM_SMARTPTR_TYPEDEF(_dispBuildEvents, __uuidof(_dispBuildEvents));
+_COM_SMARTPTR_TYPEDEF(_WindowEvents, __uuidof(_WindowEvents));
+_COM_SMARTPTR_TYPEDEF(_dispWindowEvents, __uuidof(_dispWindowEvents));
+_COM_SMARTPTR_TYPEDEF(_OutputWindowEvents, __uuidof(_OutputWindowEvents));
+_COM_SMARTPTR_TYPEDEF(_dispOutputWindowEvents, __uuidof(_dispOutputWindowEvents));
+_COM_SMARTPTR_TYPEDEF(_FindEvents, __uuidof(_FindEvents));
+_COM_SMARTPTR_TYPEDEF(_dispFindEvents, __uuidof(_dispFindEvents));
+_COM_SMARTPTR_TYPEDEF(_TaskListEvents, __uuidof(_TaskListEvents));
+_COM_SMARTPTR_TYPEDEF(_dispTaskListEvents, __uuidof(_dispTaskListEvents));
+_COM_SMARTPTR_TYPEDEF(_DTEEvents, __uuidof(_DTEEvents));
+_COM_SMARTPTR_TYPEDEF(_dispDTEEvents, __uuidof(_dispDTEEvents));
+_COM_SMARTPTR_TYPEDEF(_DocumentEvents, __uuidof(_DocumentEvents));
+_COM_SMARTPTR_TYPEDEF(_dispDocumentEvents, __uuidof(_dispDocumentEvents));
+_COM_SMARTPTR_TYPEDEF(_ProjectItemsEvents, __uuidof(_ProjectItemsEvents));
+_COM_SMARTPTR_TYPEDEF(_dispProjectItemsEvents, __uuidof(_dispProjectItemsEvents));
+_COM_SMARTPTR_TYPEDEF(_DebuggerEvents, __uuidof(_DebuggerEvents));
+_COM_SMARTPTR_TYPEDEF(_dispDebuggerEvents, __uuidof(_dispDebuggerEvents));
+_COM_SMARTPTR_TYPEDEF(_TextEditorEvents, __uuidof(_TextEditorEvents));
+_COM_SMARTPTR_TYPEDEF(_dispTextEditorEvents, __uuidof(_dispTextEditorEvents));
+_COM_SMARTPTR_TYPEDEF(StatusBar, __uuidof(StatusBar));
+_COM_SMARTPTR_TYPEDEF(IExtenderSite, __uuidof(IExtenderSite));
+_COM_SMARTPTR_TYPEDEF(IExtenderProvider, __uuidof(IExtenderProvider));
+_COM_SMARTPTR_TYPEDEF(IExtenderProviderUnk, __uuidof(IExtenderProviderUnk));
+_COM_SMARTPTR_TYPEDEF(ObjectExtenders, __uuidof(ObjectExtenders));
+_COM_SMARTPTR_TYPEDEF(Find, __uuidof(Find));
+_COM_SMARTPTR_TYPEDEF(UndoContext, __uuidof(UndoContext));
+_COM_SMARTPTR_TYPEDEF(Macros, __uuidof(Macros));
+_COM_SMARTPTR_TYPEDEF(SourceControl, __uuidof(SourceControl));
+_COM_SMARTPTR_TYPEDEF(ISupportVSProperties, __uuidof(ISupportVSProperties));
+_COM_SMARTPTR_TYPEDEF(IExtensibleObjectSite, __uuidof(IExtensibleObjectSite));
+_COM_SMARTPTR_TYPEDEF(IVsProfferCommands, __uuidof(IVsProfferCommands));
+_COM_SMARTPTR_TYPEDEF(IFilterProperties, __uuidof(IFilterProperties));
+_COM_SMARTPTR_TYPEDEF(TextEditor, __uuidof(TextEditor));
+_COM_SMARTPTR_TYPEDEF(_DebuggerEventsRoot, __uuidof(_DebuggerEventsRoot));
+_COM_SMARTPTR_TYPEDEF(IDTWizard, __uuidof(IDTWizard));
+_COM_SMARTPTR_TYPEDEF(IVsGlobalsCallback, __uuidof(IVsGlobalsCallback));
+_COM_SMARTPTR_TYPEDEF(IVsGlobals, __uuidof(IVsGlobals));
+_COM_SMARTPTR_TYPEDEF(IDTCommandTarget, __uuidof(IDTCommandTarget));
+_COM_SMARTPTR_TYPEDEF(_ProjectsEvents, __uuidof(_ProjectsEvents));
+_COM_SMARTPTR_TYPEDEF(_dispProjectsEvents, __uuidof(_dispProjectsEvents));
+_COM_SMARTPTR_TYPEDEF(_MiscSlnFilesEventsRoot, __uuidof(_MiscSlnFilesEventsRoot));
+_COM_SMARTPTR_TYPEDEF(_CommandBarControlEvents, __uuidof(_CommandBarControlEvents));
+_COM_SMARTPTR_TYPEDEF(_dispCommandBarControlEvents, __uuidof(_dispCommandBarControlEvents));
+_COM_SMARTPTR_TYPEDEF(_OutputWindowEventsRoot, __uuidof(_OutputWindowEventsRoot));
+_COM_SMARTPTR_TYPEDEF(_TaskListEventsRoot, __uuidof(_TaskListEventsRoot));
+_COM_SMARTPTR_TYPEDEF(IDTToolsOptionsPage, __uuidof(IDTToolsOptionsPage));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentWebBrowser, __uuidof(_EnvironmentWebBrowser));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentHelp, __uuidof(_EnvironmentHelp));
+_COM_SMARTPTR_TYPEDEF(ColorableItems, __uuidof(ColorableItems));
+_COM_SMARTPTR_TYPEDEF(FontsAndColorsItems, __uuidof(FontsAndColorsItems));
+_COM_SMARTPTR_TYPEDEF(_FontsAndColors, __uuidof(_FontsAndColors));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentGeneral, __uuidof(_EnvironmentGeneral));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentFontsAndColors, __uuidof(_EnvironmentFontsAndColors));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentProjectsAndSolution, __uuidof(_EnvironmentProjectsAndSolution));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentDocuments, __uuidof(_EnvironmentDocuments));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentTaskList, __uuidof(_EnvironmentTaskList));
+_COM_SMARTPTR_TYPEDEF(_EnvironmentKeyboard, __uuidof(_EnvironmentKeyboard));
+_COM_SMARTPTR_TYPEDEF(IExtensibleObject, __uuidof(IExtensibleObject));
+_COM_SMARTPTR_TYPEDEF(IVsTextEditGeneral, __uuidof(IVsTextEditGeneral));
+_COM_SMARTPTR_TYPEDEF(IVsTextEditPerLanguage, __uuidof(IVsTextEditPerLanguage));
+_COM_SMARTPTR_TYPEDEF(IVsTextEditFonts, __uuidof(IVsTextEditFonts));
+_COM_SMARTPTR_TYPEDEF(_DTE, __uuidof(_DTE));
+_COM_SMARTPTR_TYPEDEF(Windows, __uuidof(Windows));
+_COM_SMARTPTR_TYPEDEF(Window, __uuidof(Window));
+_COM_SMARTPTR_TYPEDEF(LinkedWindows, __uuidof(LinkedWindows));
+_COM_SMARTPTR_TYPEDEF(TextBuffer, __uuidof(TextBuffer));
+_COM_SMARTPTR_TYPEDEF(_WindowEventsRoot, __uuidof(_WindowEventsRoot));
+_COM_SMARTPTR_TYPEDEF(HTMLWindow, __uuidof(HTMLWindow));
+_COM_SMARTPTR_TYPEDEF(ProjectItem, __uuidof(ProjectItem));
+_COM_SMARTPTR_TYPEDEF(ItemOperations, __uuidof(ItemOperations));
+_COM_SMARTPTR_TYPEDEF(ProjectItems, __uuidof(ProjectItems));
+_COM_SMARTPTR_TYPEDEF(Project, __uuidof(Project));
+_COM_SMARTPTR_TYPEDEF(Projects, __uuidof(Projects));
+_COM_SMARTPTR_TYPEDEF(Properties, __uuidof(Properties));
+_COM_SMARTPTR_TYPEDEF(Property, __uuidof(Property));
+_COM_SMARTPTR_TYPEDEF(ConfigurationManager, __uuidof(ConfigurationManager));
+_COM_SMARTPTR_TYPEDEF(Configuration, __uuidof(Configuration));
+_COM_SMARTPTR_TYPEDEF(Configurations, __uuidof(Configurations));
+_COM_SMARTPTR_TYPEDEF(OutputGroups, __uuidof(OutputGroups));
+_COM_SMARTPTR_TYPEDEF(OutputGroup, __uuidof(OutputGroup));
+_COM_SMARTPTR_TYPEDEF(CodeModel, __uuidof(CodeModel));
+_COM_SMARTPTR_TYPEDEF(CodeElements, __uuidof(CodeElements));
+_COM_SMARTPTR_TYPEDEF(CodeElement, __uuidof(CodeElement));
+_COM_SMARTPTR_TYPEDEF(TextPoint, __uuidof(TextPoint));
+_COM_SMARTPTR_TYPEDEF(VirtualPoint, __uuidof(VirtualPoint));
+_COM_SMARTPTR_TYPEDEF(CodeAttribute, __uuidof(CodeAttribute));
+_COM_SMARTPTR_TYPEDEF(TextDocument, __uuidof(TextDocument));
+_COM_SMARTPTR_TYPEDEF(CommandWindow, __uuidof(CommandWindow));
+_COM_SMARTPTR_TYPEDEF(_TextEditorEventsRoot, __uuidof(_TextEditorEventsRoot));
+_COM_SMARTPTR_TYPEDEF(Document, __uuidof(Document));
+_COM_SMARTPTR_TYPEDEF(Documents, __uuidof(Documents));
+_COM_SMARTPTR_TYPEDEF(Events, __uuidof(Events));
+_COM_SMARTPTR_TYPEDEF(IVsExtensibility, __uuidof(IVsExtensibility));
+_COM_SMARTPTR_TYPEDEF(_DocumentEventsRoot, __uuidof(_DocumentEventsRoot));
+_COM_SMARTPTR_TYPEDEF(TextSelection, __uuidof(TextSelection));
+_COM_SMARTPTR_TYPEDEF(TextRanges, __uuidof(TextRanges));
+_COM_SMARTPTR_TYPEDEF(EditPoint, __uuidof(EditPoint));
+_COM_SMARTPTR_TYPEDEF(TextRange, __uuidof(TextRange));
+_COM_SMARTPTR_TYPEDEF(TextPane, __uuidof(TextPane));
+_COM_SMARTPTR_TYPEDEF(TextPanes, __uuidof(TextPanes));
+_COM_SMARTPTR_TYPEDEF(TextWindow, __uuidof(TextWindow));
+_COM_SMARTPTR_TYPEDEF(CodeType, __uuidof(CodeType));
+_COM_SMARTPTR_TYPEDEF(CodeTypeRef, __uuidof(CodeTypeRef));
+_COM_SMARTPTR_TYPEDEF(CodeParameter, __uuidof(CodeParameter));
+_COM_SMARTPTR_TYPEDEF(CodeFunction, __uuidof(CodeFunction));
+_COM_SMARTPTR_TYPEDEF(CodeVariable, __uuidof(CodeVariable));
+_COM_SMARTPTR_TYPEDEF(CodeNamespace, __uuidof(CodeNamespace));
+_COM_SMARTPTR_TYPEDEF(CodeEnum, __uuidof(CodeEnum));
+_COM_SMARTPTR_TYPEDEF(CodeClass, __uuidof(CodeClass));
+_COM_SMARTPTR_TYPEDEF(CodeProperty, __uuidof(CodeProperty));
+_COM_SMARTPTR_TYPEDEF(CodeInterface, __uuidof(CodeInterface));
+_COM_SMARTPTR_TYPEDEF(CodeDelegate, __uuidof(CodeDelegate));
+_COM_SMARTPTR_TYPEDEF(CodeStruct, __uuidof(CodeStruct));
+_COM_SMARTPTR_TYPEDEF(FileCodeModel, __uuidof(FileCodeModel));
+_COM_SMARTPTR_TYPEDEF(ContextAttributes, __uuidof(ContextAttributes));
+_COM_SMARTPTR_TYPEDEF(ContextAttribute, __uuidof(ContextAttribute));
+_COM_SMARTPTR_TYPEDEF(AddIn, __uuidof(AddIn));
+_COM_SMARTPTR_TYPEDEF(AddIns, __uuidof(AddIns));
+_COM_SMARTPTR_TYPEDEF(OutputWindowPane, __uuidof(OutputWindowPane));
+_COM_SMARTPTR_TYPEDEF(OutputWindowPanes, __uuidof(OutputWindowPanes));
+_COM_SMARTPTR_TYPEDEF(OutputWindow, __uuidof(OutputWindow));
+_COM_SMARTPTR_TYPEDEF(TaskItem, __uuidof(TaskItem));
+_COM_SMARTPTR_TYPEDEF(TaskItems, __uuidof(TaskItems));
+_COM_SMARTPTR_TYPEDEF(TaskList, __uuidof(TaskList));
+_COM_SMARTPTR_TYPEDEF(Process, __uuidof(Process));
+_COM_SMARTPTR_TYPEDEF(Programs, __uuidof(Programs));
+_COM_SMARTPTR_TYPEDEF(Program, __uuidof(Program));
+_COM_SMARTPTR_TYPEDEF(Threads, __uuidof(Threads));
+_COM_SMARTPTR_TYPEDEF(Thread, __uuidof(Thread));
+_COM_SMARTPTR_TYPEDEF(StackFrames, __uuidof(StackFrames));
+_COM_SMARTPTR_TYPEDEF(StackFrame, __uuidof(StackFrame));
+_COM_SMARTPTR_TYPEDEF(Expressions, __uuidof(Expressions));
+_COM_SMARTPTR_TYPEDEF(Expression, __uuidof(Expression));
+_COM_SMARTPTR_TYPEDEF(Debugger, __uuidof(Debugger));
+_COM_SMARTPTR_TYPEDEF(Processes, __uuidof(Processes));
+_COM_SMARTPTR_TYPEDEF(Breakpoints, __uuidof(Breakpoints));
+_COM_SMARTPTR_TYPEDEF(Breakpoint, __uuidof(Breakpoint));
+_COM_SMARTPTR_TYPEDEF(Languages, __uuidof(Languages));
+_COM_SMARTPTR_TYPEDEF(Language, __uuidof(Language));
+_COM_SMARTPTR_TYPEDEF(_Solution, __uuidof(_Solution));
+_COM_SMARTPTR_TYPEDEF(SolutionBuild, __uuidof(SolutionBuild));
+_COM_SMARTPTR_TYPEDEF(SolutionConfiguration, __uuidof(SolutionConfiguration));
+_COM_SMARTPTR_TYPEDEF(SolutionConfigurations, __uuidof(SolutionConfigurations));
+_COM_SMARTPTR_TYPEDEF(SolutionContexts, __uuidof(SolutionContexts));
+_COM_SMARTPTR_TYPEDEF(SolutionContext, __uuidof(SolutionContext));
+_COM_SMARTPTR_TYPEDEF(BuildDependencies, __uuidof(BuildDependencies));
+_COM_SMARTPTR_TYPEDEF(BuildDependency, __uuidof(BuildDependency));
+_COM_SMARTPTR_TYPEDEF(Commands, __uuidof(Commands));
+_COM_SMARTPTR_TYPEDEF(Command, __uuidof(Command));
+_COM_SMARTPTR_TYPEDEF(SelectedItems, __uuidof(SelectedItems));
+_COM_SMARTPTR_TYPEDEF(SelectedItem, __uuidof(SelectedItem));
+_COM_SMARTPTR_TYPEDEF(SelectionContainer, __uuidof(SelectionContainer));
+_COM_SMARTPTR_TYPEDEF(WindowConfigurations, __uuidof(WindowConfigurations));
+_COM_SMARTPTR_TYPEDEF(WindowConfiguration, __uuidof(WindowConfiguration));
+_COM_SMARTPTR_TYPEDEF(ToolBox, __uuidof(ToolBox));
+_COM_SMARTPTR_TYPEDEF(ToolBoxTab, __uuidof(ToolBoxTab));
+_COM_SMARTPTR_TYPEDEF(ToolBoxTabs, __uuidof(ToolBoxTabs));
+_COM_SMARTPTR_TYPEDEF(ToolBoxItems, __uuidof(ToolBoxItems));
+_COM_SMARTPTR_TYPEDEF(ToolBoxItem, __uuidof(ToolBoxItem));
+_COM_SMARTPTR_TYPEDEF(UIHierarchyItem, __uuidof(UIHierarchyItem));
+_COM_SMARTPTR_TYPEDEF(UIHierarchyItems, __uuidof(UIHierarchyItems));
+_COM_SMARTPTR_TYPEDEF(UIHierarchy, __uuidof(UIHierarchy));
+
+//
+// Type library items
+//
+
+enum __declspec(uuid("cd678662-7939-48a0-bf1d-fa1bed56c130"))
+vsWindowState
+{
+    vsWindowStateNormal = 0,
+    vsWindowStateMinimize = 1,
+    vsWindowStateMaximize = 2
+};
+
+enum __declspec(uuid("705cd8a9-d29b-11d2-aabd-00c04f688dde"))
+vsWindowType
+{
+    vsWindowTypeCodeWindow = 0,
+    vsWindowTypeDesigner = 1,
+    vsWindowTypeBrowser = 2,
+    vsWindowTypeWatch = 3,
+    vsWindowTypeLocals = 4,
+    vsWindowTypeImmediate = 5,
+    vsWindowTypeSolutionExplorer = 6,
+    vsWindowTypeProperties = 7,
+    vsWindowTypeFind = 8,
+    vsWindowTypeFindReplace = 9,
+    vsWindowTypeToolbox = 10,
+    vsWindowTypeLinkedWindowFrame = 11,
+    vsWindowTypeMainWindow = 12,
+    vsWindowTypePreview = 13,
+    vsWindowTypeColorPalette = 14,
+    vsWindowTypeToolWindow = 15,
+    vsWindowTypeDocument = 16,
+    vsWindowTypeOutput = 17,
+    vsWindowTypeTaskList = 18,
+    vsWindowTypeAutos = 19,
+    vsWindowTypeCallStack = 20,
+    vsWindowTypeThreads = 21,
+    vsWindowTypeDocumentOutline = 22,
+    vsWindowTypeRunningDocuments = 23
+};
+
+struct __declspec(uuid("3c9cfe1e-389f-4118-9fad-365385190329"))
+DTE;
+    // [ default ] interface _DTE
+
+enum __declspec(uuid("612256bd-7ba2-45c4-b60f-7b2ae42f96c3"))
+vsConfigurationType
+{
+    vsConfigurationTypeProject = 1,
+    vsConfigurationTypeProjectItem = 2
+};
+
+struct __declspec(uuid("e68a3e0e-b435-4dde-86b7-f5adefc19df2"))
+Globals : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_VariableValue (
+        BSTR VariableName,
+        /*[out,retval]*/ VARIANT * pVal ) = 0;
+      virtual HRESULT __stdcall put_VariableValue (
+        BSTR VariableName,
+        /*[in]*/ VARIANT pVal ) = 0;
+      virtual HRESULT __stdcall put_VariablePersists (
+        BSTR VariableName,
+        /*[in]*/ VARIANT_BOOL pVal ) = 0;
+      virtual HRESULT __stdcall get_VariablePersists (
+        BSTR VariableName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_VariableExists (
+        BSTR Name,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_VariableNames (
+        /*[out,retval]*/ VARIANT * Names ) = 0;
+};
+
+enum vsCMElement
+{
+    vsCMElementOther = 0,
+    vsCMElementClass = 1,
+    vsCMElementFunction = 2,
+    vsCMElementVariable = 3,
+    vsCMElementProperty = 4,
+    vsCMElementNamespace = 5,
+    vsCMElementParameter = 6,
+    vsCMElementAttribute = 7,
+    vsCMElementInterface = 8,
+    vsCMElementDelegate = 9,
+    vsCMElementEnum = 10,
+    vsCMElementStruct = 11,
+    vsCMElementUnion = 12,
+    vsCMElementLocalDeclStmt = 13,
+    vsCMElementFunctionInvokeStmt = 14,
+    vsCMElementPropertySetStmt = 15,
+    vsCMElementAssignmentStmt = 16,
+    vsCMElementInheritsStmt = 17,
+    vsCMElementImplementsStmt = 18,
+    vsCMElementOptionStmt = 19,
+    vsCMElementVBAttributeStmt = 20,
+    vsCMElementVBAttributeGroup = 21,
+    vsCMElementEventsDeclaration = 22,
+    vsCMElementUDTDecl = 23,
+    vsCMElementDeclareDecl = 24,
+    vsCMElementDefineStmt = 25,
+    vsCMElementTypeDef = 26,
+    vsCMElementIncludeStmt = 27,
+    vsCMElementUsingStmt = 28,
+    vsCMElementMacro = 29,
+    vsCMElementMap = 30,
+    vsCMElementIDLImport = 31,
+    vsCMElementIDLImportLib = 32,
+    vsCMElementIDLCoClass = 33,
+    vsCMElementIDLLibrary = 34,
+    vsCMElementImportStmt = 35,
+    vsCMElementMapEntry = 36,
+    vsCMElementVCBase = 37,
+    vsCMElementEvent = 38,
+    vsCMElementModule = 39
+};
+
+enum vsCMInfoLocation
+{
+    vsCMInfoLocationProject = 1,
+    vsCMInfoLocationExternal = 2,
+    vsCMInfoLocationNone = 4,
+    vsCMInfoLocationVirtual = 8
+};
+
+enum __declspec(uuid("aae3fae8-8afc-11d2-adee-00c04f7971c3"))
+vsSaveChanges
+{
+    vsSaveChangesYes = 1,
+    vsSaveChangesNo = 2,
+    vsSaveChangesPrompt = 3
+};
+
+enum __declspec(uuid("8901ff7a-e6e8-4154-a505-135ee434817e"))
+vsSaveStatus
+{
+    vsSaveCancelled = 2,
+    vsSaveSucceeded = 1
+};
+
+enum __declspec(uuid("98a2f403-007b-41f8-9a18-87addef1760f"))
+vsCaseOptions
+{
+    vsCaseOptionsLowercase = 1,
+    vsCaseOptionsUppercase = 2,
+    vsCaseOptionsCapitalize = 3
+};
+
+enum __declspec(uuid("bbdfcfe4-4c68-4736-b991-f85fa955d585"))
+vsWhitespaceOptions
+{
+    vsWhitespaceOptionsHorizontal = 0,
+    vsWhitespaceOptionsVertical = 1
+};
+
+enum __declspec(uuid("f05ea427-01ba-46dc-8392-fb4aa7e5eb3a"))
+vsStartOfLineOptions
+{
+    vsStartOfLineOptionsFirstColumn = 0,
+    vsStartOfLineOptionsFirstText = 1
+};
+
+enum __declspec(uuid("b26ac3c2-3981-4a2e-9d6f-559b41cd1cd2"))
+vsPaneShowHow
+{
+    vsPaneShowCentered = 0,
+    vsPaneShowTop = 1,
+    vsPaneShowAsIs = 2
+};
+
+enum __declspec(uuid("f3128012-b41f-46ec-8794-f716db9697d0"))
+vsSelectionMode
+{
+    vsSelectionModeStream = 0,
+    vsSelectionModeBox = 1
+};
+
+enum vsCMPart
+{
+    vsCMPartName = 1,
+    vsCMPartAttributes = 2,
+    vsCMPartHeader = 4,
+    vsCMPartWhole = 8,
+    vsCMPartBody = 16,
+    vsCMPartNavigate = 32,
+    vsCMPartAttributesWithDelimiter = 68,
+    vsCMPartBodyWithDelimiter = 80,
+    vsCMPartHeaderWithAttributes = 6,
+    vsCMPartWholeWithAttributes = 10
+};
+
+enum vsCMAccess
+{
+    vsCMAccessPublic = 1,
+    vsCMAccessPrivate = 2,
+    vsCMAccessProject = 4,
+    vsCMAccessProtected = 8,
+    vsCMAccessDefault = 32,
+    vsCMAccessAssemblyOrFamily = 64,
+    vsCMAccessWithEvents = 128,
+    vsCMAccessProjectOrProtected = 12
+};
+
+enum vsCMFunction
+{
+    vsCMFunctionOther = 0,
+    vsCMFunctionConstructor = 1,
+    vsCMFunctionPropertyGet = 2,
+    vsCMFunctionPropertyLet = 4,
+    vsCMFunctionPropertySet = 8,
+    vsCMFunctionPutRef = 16,
+    vsCMFunctionPropertyAssign = 32,
+    vsCMFunctionSub = 64,
+    vsCMFunctionFunction = 128,
+    vsCMFunctionTopLevel = 256,
+    vsCMFunctionDestructor = 512,
+    vsCMFunctionOperator = 1024,
+    vsCMFunctionVirtual = 2048,
+    vsCMFunctionPure = 4096,
+    vsCMFunctionConstant = 8192,
+    vsCMFunctionShared = 16384,
+    vsCMFunctionInline = 32768,
+    vsCMFunctionComMethod = 65536
+};
+
+enum vsCMTypeRef
+{
+    vsCMTypeRefOther = 0,
+    vsCMTypeRefCodeType = 1,
+    vsCMTypeRefArray = 2,
+    vsCMTypeRefVoid = 3,
+    vsCMTypeRefPointer = 4,
+    vsCMTypeRefString = 5,
+    vsCMTypeRefObject = 6,
+    vsCMTypeRefByte = 7,
+    vsCMTypeRefChar = 8,
+    vsCMTypeRefShort = 9,
+    vsCMTypeRefInt = 10,
+    vsCMTypeRefLong = 11,
+    vsCMTypeRefFloat = 12,
+    vsCMTypeRefDouble = 13,
+    vsCMTypeRefDecimal = 14,
+    vsCMTypeRefBool = 15,
+    vsCMTypeRefVariant = 16
+};
+
+enum __declspec(uuid("410202e1-b83a-41dd-aab0-8c0029fe9435"))
+vsContextAttributeType
+{
+    vsContextAttributeFilter = 1,
+    vsContextAttributeLookup = 2,
+    vsContextAttributeLookupF1 = 3
+};
+
+enum __declspec(uuid("59286edc-d580-4e22-96c9-44d15b6148cc"))
+vsContextAttributes
+{
+    vsContextAttributesGlobal = 1,
+    vsContextAttributesWindow = 2,
+    vsContextAttributesHighPriority = 3
+};
+
+enum __declspec(uuid("539f9c17-db5f-421d-b02b-07bcf9faa92f"))
+vsLinkedWindowType
+{
+    vsLinkedWindowTypeDocked = 0,
+    vsLinkedWindowTypeVertical = 2,
+    vsLinkedWindowTypeHorizontal = 3,
+    vsLinkedWindowTypeTabbed = 1
+};
+
+struct __declspec(uuid("1ded92b5-9a46-4b29-93ef-b5e07016659e"))
+CommandEvents;
+    // [ default ] interface _CommandEvents
+    // [ default, source ] dispinterface _dispCommandEvents
+
+struct __declspec(uuid("a79fc678-0d0a-496a-b9dc-0d5b9e1ca9fc"))
+_CommandEvents : IDispatch
+{};
+
+struct __declspec(uuid("ff2d5c12-feea-11d0-bbc8-00a0c90f2744"))
+_dispCommandEvents : IDispatch
+{};
+
+struct __declspec(uuid("af37511e-9e9d-4234-a5a1-7584d290e061"))
+SelectionEvents;
+    // [ default ] interface _SelectionEvents
+    // [ default, source ] dispinterface _dispSelectionEvents
+
+struct __declspec(uuid("eb6783db-1819-496d-84a4-3cff883010f6"))
+_SelectionEvents : IDispatch
+{};
+
+struct __declspec(uuid("deeb28b3-23e6-11d1-ae5c-00a0c90f26f4"))
+_dispSelectionEvents : IDispatch
+{};
+
+struct __declspec(uuid("88ac98c7-b38c-404b-bd86-d2a4f2e89dca"))
+SolutionEvents;
+    // [ default ] interface _SolutionEvents
+    // [ default, source ] dispinterface _dispSolutionEvents
+
+struct __declspec(uuid("bf8bbf37-5415-46a9-940d-594cad9dec26"))
+_SolutionEvents : IDispatch
+{};
+
+struct __declspec(uuid("fbcff1c2-261c-11d1-ae5e-00a0c90f26f4"))
+_dispSolutionEvents : IDispatch
+{};
+
+struct __declspec(uuid("d83d60e3-229f-4660-8dd0-28b629eedcda"))
+BuildEvents;
+    // [ default ] interface _BuildEvents
+    // [ default, source ] dispinterface _dispBuildEvents
+
+struct __declspec(uuid("794a2ba5-ffa6-4fc5-bf13-957b2c22edd7"))
+_BuildEvents : IDispatch
+{};
+
+struct __declspec(uuid("1926364e-6b90-46cb-a44d-8a80fb11acd9"))
+_dispBuildEvents : IDispatch
+{};
+
+enum __declspec(uuid("fa7fa701-efad-4895-a95a-d4ecb383bf7d"))
+vsBuildScope
+{
+    vsBuildScopeSolution = 1,
+    vsBuildScopeBatch = 2,
+    vsBuildScopeProject = 3
+};
+
+enum __declspec(uuid("fa7fa702-efad-4895-a95a-d4ecb383bf7d"))
+vsBuildAction
+{
+    vsBuildActionBuild = 1,
+    vsBuildActionRebuildAll = 2,
+    vsBuildActionClean = 3,
+    vsBuildActionDeploy = 4
+};
+
+struct __declspec(uuid("2e260fd4-c130-4e6d-8ebc-4a3bfd188181"))
+WindowEvents;
+    // [ default ] interface _WindowEvents
+    // [ default, source ] dispinterface _dispWindowEvents
+
+struct __declspec(uuid("0d3a23a8-67bb-11d2-97c1-00c04fb6c6ff"))
+_WindowEvents : IDispatch
+{};
+
+struct __declspec(uuid("0d3a23a9-67bb-11d2-97c1-00c04fb6c6ff"))
+_dispWindowEvents : IDispatch
+{};
+
+struct __declspec(uuid("3760037f-b012-44f8-9c23-3609d7a16def"))
+OutputWindowEvents;
+    // [ default ] interface _OutputWindowEvents
+    // [ default, source ] dispinterface _dispOutputWindowEvents
+
+struct __declspec(uuid("0a3546a8-6840-11d2-97c1-00c04fb6c6ff"))
+_OutputWindowEvents : IDispatch
+{};
+
+struct __declspec(uuid("0d3a23af-67bb-11d2-97c1-00c04fb6c6ff"))
+_dispOutputWindowEvents : IDispatch
+{};
+
+enum __declspec(uuid("36b56de8-5a17-11d1-b2b6-00c04fb6c6ff"))
+vsTaskPriority
+{
+    vsTaskPriorityLow = 1,
+    vsTaskPriorityMedium = 2,
+    vsTaskPriorityHigh = 3
+};
+
+enum __declspec(uuid("195dab2e-4854-11d2-8820-00c04fb6c6ff"))
+vsTaskIcon
+{
+    vsTaskIconNone = 0,
+    vsTaskIconCompile = 1,
+    vsTaskIconSquiggle = 2,
+    vsTaskIconComment = 3,
+    vsTaskIconShortcut = 4,
+    vsTaskIconUser = 5
+};
+
+struct __declspec(uuid("811322bc-042d-4828-bff2-640ef8b7209f"))
+FindEvents;
+    // [ default ] interface _FindEvents
+    // [ default, source ] dispinterface _dispFindEvents
+
+struct __declspec(uuid("c5331acd-c5d5-11d2-8598-006097c68e81"))
+_FindEvents : IDispatch
+{};
+
+struct __declspec(uuid("c5331ace-c5d5-11d2-8598-006097c68e81"))
+_dispFindEvents : IDispatch
+{};
+
+enum __declspec(uuid("6fa137be-32a8-4f54-8099-60bb955097a3"))
+vsFindResult
+{
+    vsFindResultNotFound = 0,
+    vsFindResultFound = 1,
+    vsFindResultReplaceAndNotFound = 2,
+    vsFindResultReplaceAndFound = 3,
+    vsFindResultReplaced = 4,
+    vsFindResultPending = 5,
+    vsFindResultError = 6
+};
+
+struct __declspec(uuid("29617acd-7859-4328-be09-298f91f48196"))
+TaskListEvents;
+    // [ default ] interface _TaskListEvents
+    // [ default, source ] dispinterface _dispTaskListEvents
+
+struct __declspec(uuid("1125c422-49bd-11d2-8823-00c04fb6c6ff"))
+_TaskListEvents : IDispatch
+{};
+
+struct __declspec(uuid("1125c423-49bd-11d2-8823-00c04fb6c6ff"))
+_dispTaskListEvents : IDispatch
+{};
+
+enum __declspec(uuid("9848c17e-6aa5-11d2-97c3-00c04fb6c6ff"))
+vsTaskListColumn
+{
+    vsTaskListColumnPriority = 1,
+    vsTaskListColumnGlyph = 2,
+    vsTaskListColumnCheck = 4,
+    vsTaskListColumnDescription = 8,
+    vsTaskListColumnFile = 16,
+    vsTaskListColumnLine = 32
+};
+
+struct __declspec(uuid("c6304bab-6765-4c63-9017-4940aeb6f207"))
+DTEEvents;
+    // [ default ] interface _DTEEvents
+    // [ default, source ] dispinterface _dispDTEEvents
+
+struct __declspec(uuid("fa1bb6d7-ca83-11d2-aab2-00c04f688dde"))
+_DTEEvents : IDispatch
+{};
+
+struct __declspec(uuid("b50c9708-c909-4b87-a03d-af6cc4bfb422"))
+_dispDTEEvents : IDispatch
+{};
+
+enum __declspec(uuid("b638b3e3-c98b-4f59-9d05-105a620529f9"))
+vsIDEMode
+{
+    vsIDEModeDesign = 1,
+    vsIDEModeDebug = 2
+};
+
+struct __declspec(uuid("dc5437f7-f114-11d2-aacf-00c04f688dde"))
+DocumentEvents;
+    // [ default ] interface _DocumentEvents
+    // [ default, source ] dispinterface _dispDocumentEvents
+
+struct __declspec(uuid("dc5437f5-f114-11d2-aacf-00c04f688dde"))
+_DocumentEvents : IDispatch
+{};
+
+struct __declspec(uuid("dc5437f6-f114-11d2-aacf-00c04f688dde"))
+_dispDocumentEvents : IDispatch
+{};
+
+struct __declspec(uuid("de6c1098-93ca-4f49-bef0-262a13ca1176"))
+ProjectItemsEvents;
+    // [ default ] interface _ProjectItemsEvents
+    // [ default, source ] dispinterface _dispProjectItemsEvents
+
+struct __declspec(uuid("22800963-2811-410d-bf87-a7808eac977d"))
+_ProjectItemsEvents : IDispatch
+{};
+
+struct __declspec(uuid("6962753f-efd5-41c5-b083-d70687166aeb"))
+_dispProjectItemsEvents : IDispatch
+{};
+
+struct __declspec(uuid("0c763210-0fbb-11d3-b880-00c04f79e479"))
+DebuggerEvents;
+    // [ default ] interface _DebuggerEvents
+    // [ default, source ] dispinterface _dispDebuggerEvents
+
+struct __declspec(uuid("d4eae958-0fba-11d3-b880-00c04f79e479"))
+_DebuggerEvents : IDispatch
+{};
+
+struct __declspec(uuid("46209330-0fba-11d3-b880-00c04f79e479"))
+_dispDebuggerEvents : IDispatch
+{};
+
+enum __declspec(uuid("4106c580-c146-11d2-8ad1-00c04f79e479"))
+dbgEventReason
+{
+    dbgEventReasonNone = 1,
+    dbgEventReasonGo = 2,
+    dbgEventReasonAttachProgram = 3,
+    dbgEventReasonDetachProgram = 4,
+    dbgEventReasonLaunchProgram = 5,
+    dbgEventReasonEndProgram = 6,
+    dbgEventReasonStopDebugging = 7,
+    dbgEventReasonStep = 8,
+    dbgEventReasonBreakpoint = 9,
+    dbgEventReasonExceptionThrown = 10,
+    dbgEventReasonExceptionNotHandled = 11,
+    dbgEventReasonUserBreak = 12,
+    dbgEventReasonContextSwitch = 13
+};
+
+enum __declspec(uuid("77940e85-bce0-443d-8b77-f5bd841a211e"))
+dbgExecutionAction
+{
+    dbgExecutionActionDefault = 1,
+    dbgExecutionActionGo = 2,
+    dbgExecutionActionStopDebugging = 3,
+    dbgExecutionActionStepInto = 4,
+    dbgExecutionActionStepOut = 5,
+    dbgExecutionActionStepOver = 6,
+    dbgExecutionActionRunToCursor = 7
+};
+
+enum __declspec(uuid("ed2fbdd2-1eb1-11d3-b888-00c04f79e479"))
+dbgExceptionAction
+{
+    dbgExceptionActionDefault = 1,
+    dbgExceptionActionIgnore = 2,
+    dbgExceptionActionBreak = 3,
+    dbgExceptionActionContinue = 4
+};
+
+enum __declspec(uuid("75607dde-2b43-11d3-b88b-00c04f79e479"))
+dbgBreakpointType
+{
+    dbgBreakpointTypePending = 1,
+    dbgBreakpointTypeBound = 2
+};
+
+enum __declspec(uuid("229c054c-c146-11d2-8ad1-00c04f79e479"))
+dbgBreakpointLocationType
+{
+    dbgBreakpointLocationTypeNone = 1,
+    dbgBreakpointLocationTypeFunction = 2,
+    dbgBreakpointLocationTypeFile = 3,
+    dbgBreakpointLocationTypeData = 4,
+    dbgBreakpointLocationTypeAddress = 5
+};
+
+enum __declspec(uuid("2a594772-c146-11d2-8ad1-00c04f79e479"))
+dbgBreakpointConditionType
+{
+    dbgBreakpointConditionTypeWhenTrue = 1,
+    dbgBreakpointConditionTypeWhenChanged = 2
+};
+
+enum __declspec(uuid("3a3329ce-c146-11d2-8ad1-00c04f79e479"))
+dbgHitCountType
+{
+    dbgHitCountTypeNone = 1,
+    dbgHitCountTypeEqual = 2,
+    dbgHitCountTypeGreaterOrEqual = 3,
+    dbgHitCountTypeMultiple = 4
+};
+
+enum __declspec(uuid("e940c60a-c68f-11d2-8ad6-00c04f79e479"))
+dbgDebugMode
+{
+    dbgDesignMode = 1,
+    dbgBreakMode = 2,
+    dbgRunMode = 3
+};
+
+struct __declspec(uuid("adf22c37-0069-4adf-b12d-d8d47c38fe79"))
+TextEditorEvents;
+    // [ default ] interface _TextEditorEvents
+    // [ default, source ] dispinterface _dispTextEditorEvents
+
+struct __declspec(uuid("23b7a868-6c89-436a-94fa-25d755456a77"))
+_TextEditorEvents : IDispatch
+{};
+
+struct __declspec(uuid("2699dd44-c507-4da3-aa34-314a6c21dfe2"))
+_dispTextEditorEvents : IDispatch
+{};
+
+enum __declspec(uuid("e0e643c3-5410-487a-b64e-2664a5c4ab50"))
+vsDisplay
+{
+    vsDisplayMDI = 1,
+    vsDisplayMDITabs = 2
+};
+
+struct __declspec(uuid("b35caa8c-77de-4ab3-8e5a-f038e3fc6056"))
+Solution;
+    // [ default ] interface _Solution
+
+enum __declspec(uuid("16386f0e-4ad2-41b8-8d6f-7ff230ae1d17"))
+vsBuildState
+{
+    vsBuildStateNotStarted = 1,
+    vsBuildStateInProgress = 2,
+    vsBuildStateDone = 3
+};
+
+enum __declspec(uuid("79946991-1ae2-4d2d-9768-fd7801be7daa"))
+vsCommandBarType
+{
+    vsCommandBarTypePopup = 10,
+    vsCommandBarTypeToolbar = 23,
+    vsCommandBarTypeMenu = 24
+};
+
+struct __declspec(uuid("c34301a1-3ef1-41d8-932a-fea4a8a8ce0c"))
+StatusBar : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall Clear ( ) = 0;
+      virtual HRESULT __stdcall Animate (
+        VARIANT_BOOL On,
+        VARIANT AnimationType ) = 0;
+      virtual HRESULT __stdcall Progress (
+        VARIANT_BOOL InProgress,
+        /*[in]*/ BSTR Label,
+        /*[in]*/ long AmountCompleted,
+        /*[in]*/ long Total ) = 0;
+      virtual HRESULT __stdcall SetXYWidthHeight (
+        long X,
+        long Y,
+        long Width,
+        long Height ) = 0;
+      virtual HRESULT __stdcall SetLineColumnCharacter (
+        long Line,
+        long Column,
+        long Character ) = 0;
+      virtual HRESULT __stdcall put_Text (
+        /*[in]*/ BSTR pTextc ) = 0;
+      virtual HRESULT __stdcall get_Text (
+        /*[out,retval]*/ BSTR * pTextc ) = 0;
+      virtual HRESULT __stdcall Highlight (
+        VARIANT_BOOL Highlight ) = 0;
+      virtual HRESULT __stdcall ShowTextUpdates (
+        VARIANT_BOOL TextUpdates,
+        /*[out,retval]*/ VARIANT_BOOL * WillShowUpdates ) = 0;
+};
+
+struct __declspec(uuid("e57c510b-968b-4a3c-a467-ee4013157dc9"))
+IExtenderSite : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall NotifyDelete (
+        /*[in]*/ long Cookie ) = 0;
+      virtual HRESULT __stdcall GetObject (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ IDispatch * * ppObject ) = 0;
+};
+
+struct __declspec(uuid("4db06329-23f4-443b-9abd-9cf611e8ae07"))
+IExtenderProvider : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall GetExtender (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ IDispatch * ExtendeeObject,
+        /*[in]*/ struct IExtenderSite * ExtenderSite,
+        /*[in]*/ long Cookie,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall CanExtend (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ IDispatch * ExtendeeObject,
+        /*[out,retval]*/ VARIANT_BOOL * fRetval ) = 0;
+};
+
+struct __declspec(uuid("f69b64a3-9017-4e48-9784-e152b51aa722"))
+IExtenderProviderUnk : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall GetExtender (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ IUnknown * ExtendeeObject,
+        /*[in]*/ struct IExtenderSite * ExtenderSite,
+        /*[in]*/ long Cookie,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall CanExtend (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ IUnknown * ExtendeeObject,
+        /*[out,retval]*/ VARIANT_BOOL * fRetval ) = 0;
+};
+
+struct __declspec(uuid("8d0aa9cc-8465-42f3-ad6e-dfde28ccc75d"))
+ObjectExtenders : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall RegisterExtenderProvider (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ struct IExtenderProvider * ExtenderProvider,
+        /*[in]*/ BSTR LocalizedName,
+        /*[out,retval]*/ long * Cookie ) = 0;
+      virtual HRESULT __stdcall UnregisterExtenderProvider (
+        /*[in]*/ long Cookie ) = 0;
+      virtual HRESULT __stdcall GetExtender (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ IUnknown * ExtendeeObject,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall GetExtenderNames (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ IUnknown * ExtendeeObject,
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall GetContextualExtenderCATIDs (
+        /*[out,retval]*/ VARIANT * ExtenderCATIDs ) = 0;
+      virtual HRESULT __stdcall GetLocalizedExtenderName (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ BSTR * pLocalizedName ) = 0;
+      virtual HRESULT __stdcall RegisterExtenderProviderUnk (
+        /*[in]*/ BSTR ExtenderCATID,
+        /*[in]*/ BSTR ExtenderName,
+        /*[in]*/ struct IExtenderProviderUnk * ExtenderProvider,
+        /*[in]*/ BSTR LocalizedName,
+        /*[out,retval]*/ long * Cookie ) = 0;
+};
+
+enum __declspec(uuid("9fb64132-726a-4262-829e-051c6ec7b24f"))
+vsFindAction
+{
+    vsFindActionFind = 1,
+    vsFindActionFindAll = 2,
+    vsFindActionReplace = 3,
+    vsFindActionReplaceAll = 4,
+    vsFindActionBookmarkAll = 5
+};
+
+enum __declspec(uuid("530f2d0e-a5f9-4b7a-a379-0a3b99b5e66d"))
+vsFindPatternSyntax
+{
+    vsFindPatternSyntaxLiteral = 0,
+    vsFindPatternSyntaxRegExpr = 1,
+    vsFindPatternSyntaxWildcards = 2
+};
+
+enum __declspec(uuid("481899fb-b657-4e45-8c00-0e051052bb13"))
+vsFindTarget
+{
+    vsFindTargetCurrentDocument = 1,
+    vsFindTargetCurrentDocumentSelection = 2,
+    vsFindTargetCurrentDocumentFunction = 3,
+    vsFindTargetOpenDocuments = 4,
+    vsFindTargetCurrentProject = 5,
+    vsFindTargetSolution = 6,
+    vsFindTargetFiles = 7
+};
+
+enum __declspec(uuid("ea9142bf-b2af-48a7-b256-93ccd3350bd8"))
+vsFindResultsLocation
+{
+    vsFindResultsNone = 0,
+    vsFindResults1 = 1,
+    vsFindResults2 = 2
+};
+
+struct __declspec(uuid("40d4b9b6-739b-4965-8d65-692aec692266"))
+Find : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Action (
+        /*[out,retval]*/ enum vsFindAction * pAction ) = 0;
+      virtual HRESULT __stdcall put_Action (
+        /*[in]*/ enum vsFindAction pAction ) = 0;
+      virtual HRESULT __stdcall get_FindWhat (
+        /*[out,retval]*/ BSTR * pFindWhat ) = 0;
+      virtual HRESULT __stdcall put_FindWhat (
+        /*[in]*/ BSTR pFindWhat ) = 0;
+      virtual HRESULT __stdcall get_MatchCase (
+        /*[out,retval]*/ VARIANT_BOOL * pMatchCase ) = 0;
+      virtual HRESULT __stdcall put_MatchCase (
+        /*[in]*/ VARIANT_BOOL pMatchCase ) = 0;
+      virtual HRESULT __stdcall get_MatchWholeWord (
+        /*[out,retval]*/ VARIANT_BOOL * pMatchWholeWord ) = 0;
+      virtual HRESULT __stdcall put_MatchWholeWord (
+        /*[in]*/ VARIANT_BOOL pMatchWholeWord ) = 0;
+      virtual HRESULT __stdcall get_MatchInHiddenText (
+        /*[out,retval]*/ VARIANT_BOOL * pMatchInHiddenText ) = 0;
+      virtual HRESULT __stdcall put_MatchInHiddenText (
+        /*[in]*/ VARIANT_BOOL pMatchInHiddenText ) = 0;
+      virtual HRESULT __stdcall get_Backwards (
+        /*[out,retval]*/ VARIANT_BOOL * pBackwards ) = 0;
+      virtual HRESULT __stdcall put_Backwards (
+        /*[in]*/ VARIANT_BOOL pBackwards ) = 0;
+      virtual HRESULT __stdcall get_SearchSubfolders (
+        /*[out,retval]*/ VARIANT_BOOL * pSearchSubfolders ) = 0;
+      virtual HRESULT __stdcall put_SearchSubfolders (
+        /*[in]*/ VARIANT_BOOL pSearchSubfolders ) = 0;
+      virtual HRESULT __stdcall get_KeepModifiedDocumentsOpen (
+        /*[out,retval]*/ VARIANT_BOOL * pKeepModifiedDocumentsOpen ) = 0;
+      virtual HRESULT __stdcall put_KeepModifiedDocumentsOpen (
+        /*[in]*/ VARIANT_BOOL pKeepModifiedDocumentsOpen ) = 0;
+      virtual HRESULT __stdcall get_PatternSyntax (
+        /*[out,retval]*/ enum vsFindPatternSyntax * pPatternSyntax ) = 0;
+      virtual HRESULT __stdcall put_PatternSyntax (
+        /*[in]*/ enum vsFindPatternSyntax pPatternSyntax ) = 0;
+      virtual HRESULT __stdcall get_ReplaceWith (
+        /*[out,retval]*/ BSTR * pReplaceWith ) = 0;
+      virtual HRESULT __stdcall put_ReplaceWith (
+        /*[in]*/ BSTR pReplaceWith ) = 0;
+      virtual HRESULT __stdcall get_Target (
+        /*[out,retval]*/ enum vsFindTarget * pTarget ) = 0;
+      virtual HRESULT __stdcall put_Target (
+        /*[in]*/ enum vsFindTarget pTarget ) = 0;
+      virtual HRESULT __stdcall get_SearchPath (
+        /*[out,retval]*/ BSTR * pSearchPath ) = 0;
+      virtual HRESULT __stdcall put_SearchPath (
+        /*[in]*/ BSTR pSearchPath ) = 0;
+      virtual HRESULT __stdcall get_FilesOfType (
+        /*[out,retval]*/ BSTR * pFilesOfType ) = 0;
+      virtual HRESULT __stdcall put_FilesOfType (
+        /*[in]*/ BSTR pFilesOfType ) = 0;
+      virtual HRESULT __stdcall get_ResultsLocation (
+        /*[out,retval]*/ enum vsFindResultsLocation * pResultsLocation ) = 0;
+      virtual HRESULT __stdcall put_ResultsLocation (
+        /*[in]*/ enum vsFindResultsLocation pResultsLocation ) = 0;
+      virtual HRESULT __stdcall Execute (
+        /*[out,retval]*/ enum vsFindResult * pResult ) = 0;
+      virtual HRESULT __stdcall FindReplace (
+        /*[in]*/ enum vsFindAction Action,
+        /*[in]*/ BSTR FindWhat,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in]*/ BSTR ReplaceWith,
+        /*[in]*/ enum vsFindTarget Target,
+        /*[in]*/ BSTR SearchPath,
+        /*[in]*/ BSTR FilesOfType,
+        /*[in]*/ enum vsFindResultsLocation ResultsLocation,
+        /*[out,retval]*/ enum vsFindResult * pResult ) = 0;
+};
+
+enum __declspec(uuid("d920605a-11dd-4a12-a8dc-10578bb08606"))
+wizardResult
+{
+    wizardResultSuccess = -1,
+    wizardResultFailure = 0,
+    wizardResultCancel = 1,
+    wizardResultBackOut = 2
+};
+
+enum __declspec(uuid("b4cc3e73-0038-47e5-ba52-d1183f8fdbf0"))
+vsNavigateOptions
+{
+    vsNavigateOptionsDefault = 0,
+    vsNavigateOptionsNewWindow = 1
+};
+
+enum __declspec(uuid("ca3ee5d0-6305-422f-a425-99737956088f"))
+vsPromptResult
+{
+    vsPromptResultYes = 1,
+    vsPromptResultNo = 2,
+    vsPromptResultCancelled = 3
+};
+
+struct __declspec(uuid("d8dec44d-caf2-4b39-a539-b91ae921ba92"))
+UndoContext : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall Open (
+        /*[in]*/ BSTR Name,
+        /*[in]*/ VARIANT_BOOL Strict ) = 0;
+      virtual HRESULT __stdcall Close ( ) = 0;
+      virtual HRESULT __stdcall SetAborted ( ) = 0;
+      virtual HRESULT __stdcall get_IsStrict (
+        /*[out,retval]*/ VARIANT_BOOL * pIsStrict ) = 0;
+      virtual HRESULT __stdcall get_IsAborted (
+        /*[out,retval]*/ VARIANT_BOOL * pIsAborted ) = 0;
+      virtual HRESULT __stdcall get_IsOpen (
+        /*[out,retval]*/ VARIANT_BOOL * pIsOpen ) = 0;
+};
+
+struct __declspec(uuid("f9f99155-6d4d-49b1-ad63-c78c3e8a5916"))
+Macros : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_IsRecording (
+        /*[out,retval]*/ VARIANT_BOOL * vbIsRecording ) = 0;
+      virtual HRESULT __stdcall EmitMacroCode (
+        BSTR Code ) = 0;
+      virtual HRESULT __stdcall Pause ( ) = 0;
+      virtual HRESULT __stdcall Resume ( ) = 0;
+};
+
+struct __declspec(uuid("f1ddc2c2-df76-4ebb-9de8-48ad2557062c"))
+SourceControl : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * ppDTEObject ) = 0;
+      virtual HRESULT __stdcall IsItemUnderSCC (
+        /*[in]*/ BSTR ItemName,
+        /*[out,retval]*/ VARIANT_BOOL * pfControlled ) = 0;
+      virtual HRESULT __stdcall IsItemCheckedOut (
+        /*[in]*/ BSTR ItemName,
+        /*[out,retval]*/ VARIANT_BOOL * pfCheckedOut ) = 0;
+      virtual HRESULT __stdcall CheckOutItem (
+        /*[in]*/ BSTR ItemName,
+        /*[out,retval]*/ VARIANT_BOOL * pfCheckedOut ) = 0;
+      virtual HRESULT __stdcall CheckOutItems (
+        /*[in]*/ SAFEARRAY * * ItemNames,
+        /*[out,retval]*/ VARIANT_BOOL * pfCheckedOut ) = 0;
+      virtual HRESULT __stdcall ExcludeItem (
+        /*[in]*/ BSTR ProjectFile,
+        /*[in]*/ BSTR ItemName ) = 0;
+      virtual HRESULT __stdcall ExcludeItems (
+        /*[in]*/ BSTR ProjectFile,
+        /*[in]*/ SAFEARRAY * * ItemNames ) = 0;
+};
+
+struct __declspec(uuid("6659ed14-2ab6-47f3-a890-00c8aba43b84"))
+ISupportVSProperties : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall NotifyPropertiesDelete ( ) = 0;
+};
+
+enum __declspec(uuid("44df8fdc-7378-11d2-97ca-00c04fb6c6ff"))
+vsToolBoxItemFormat
+{
+    vsToolBoxItemFormatText = 1,
+    vsToolBoxItemFormatHTML = 2,
+    vsToolBoxItemFormatGUID = 4,
+    vsToolBoxItemFormatDotNETComponent = 8
+};
+
+struct __declspec(uuid("eb5be8a7-e593-4de6-a923-c2afecb96336"))
+IExtensibleObjectSite : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall NotifyDelete (
+        /*[in]*/ IUnknown * punkObj ) = 0;
+};
+
+struct __declspec(uuid("8cc0cde1-c16a-4749-99af-6f7523c34a57"))
+IVsProfferCommands : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall AddNamedCommand (
+        /*[in]*/ GUID * pguidPackage,
+        /*[in]*/ GUID * pguidCmdGroup,
+        /*[in]*/ LPWSTR pszCmdNameCanonical,
+        /*[out]*/ unsigned long * pdwCmdId,
+        /*[in]*/ LPWSTR pszCmdNameLocalized,
+        /*[in]*/ LPWSTR pszBtnText,
+        /*[in]*/ LPWSTR pszCmdTooltip,
+        /*[in]*/ LPWSTR pszSatelliteDLL,
+        /*[in]*/ unsigned long dwBitmapResourceId,
+        /*[in]*/ unsigned long dwBitmapImageIndex,
+        /*[in]*/ unsigned long dwCmdFlagsDefault,
+        /*[in]*/ unsigned long cUIContexts,
+        /*[in]*/ GUID * rgguidUIContexts ) = 0;
+      virtual HRESULT __stdcall RemoveNamedCommand (
+        /*[in]*/ LPWSTR pszCmdNameCanonical ) = 0;
+      virtual HRESULT __stdcall RenameNamedCommand (
+        /*[in]*/ LPWSTR pszCmdNameCanonical,
+        /*[in]*/ LPWSTR pszCmdNameCanonicalNew,
+        /*[in]*/ LPWSTR pszCmdNameLocalizedNew ) = 0;
+      virtual HRESULT __stdcall AddCommandBarControl (
+        /*[in]*/ LPWSTR pszCmdNameCanonical,
+        /*[in]*/ IDispatch * pCmdBarParent,
+        /*[in]*/ unsigned long dwIndex,
+        /*[in]*/ unsigned long dwCmdType,
+        /*[out]*/ IDispatch * * ppCmdBarCtrl ) = 0;
+      virtual HRESULT __stdcall RemoveCommandBarControl (
+        /*[in]*/ IDispatch * pCmdBarCtrl ) = 0;
+      virtual HRESULT __stdcall AddCommandBar (
+        /*[in]*/ LPWSTR pszCmdBarName,
+        /*[in]*/ enum vsCommandBarType dwType,
+        /*[in]*/ IDispatch * pCmdBarParent,
+        /*[in]*/ unsigned long dwIndex,
+        /*[out]*/ IDispatch * * ppCmdBar ) = 0;
+      virtual HRESULT __stdcall RemoveCommandBar (
+        /*[in]*/ IDispatch * pCmdBar ) = 0;
+      virtual HRESULT __stdcall FindCommandBar (
+        /*[in]*/ void * pToolbarSet,
+        /*[in]*/ GUID * pguidCmdGroup,
+        /*[in]*/ unsigned long dwMenuId,
+        /*[out,retval]*/ IDispatch * * ppdispCmdBar ) = 0;
+};
+
+enum __declspec(uuid("221ab797-408b-4d69-9dd1-c6f329189414"))
+vsFilterProperties
+{
+    vsFilterPropertiesNone = 0,
+    vsFilterPropertiesAll = 1,
+    vsFilterPropertiesSet = 2
+};
+
+struct __declspec(uuid("aade1f59-6ace-43d1-8fca-42af3a5c4f3c"))
+IFilterProperties : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall IsPropertyHidden (
+        /*[in]*/ BSTR PropertyName,
+        /*[out,retval]*/ enum vsFilterProperties * pRetval ) = 0;
+};
+
+enum __declspec(uuid("28362492-b1e3-4998-94c6-0a2cdb5484ed"))
+vsUISelectionType
+{
+    vsUISelectionTypeSelect = 1,
+    vsUISelectionTypeToggle = 2,
+    vsUISelectionTypeExtend = 3,
+    vsUISelectionTypeSetCaret = 4
+};
+
+struct __declspec(uuid("9ff3ddca-1795-4191-a5b1-02d1ae35d074"))
+TextEditor : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Application (
+        /*[out,retval]*/ struct _DTE * * ppApp ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Emulation (
+        /*[out,retval]*/ long * pEditorType ) = 0;
+      virtual HRESULT __stdcall put_Emulation (
+        /*[in]*/ long pEditorType ) = 0;
+      virtual HRESULT __stdcall get_Overtype (
+        /*[out,retval]*/ VARIANT_BOOL * pbOT ) = 0;
+      virtual HRESULT __stdcall put_Overtype (
+        /*[in]*/ VARIANT_BOOL pbOT ) = 0;
+      virtual HRESULT __stdcall get_VisibleWhitespace (
+        /*[out,retval]*/ VARIANT_BOOL * pbVW ) = 0;
+      virtual HRESULT __stdcall put_VisibleWhitespace (
+        /*[in]*/ VARIANT_BOOL pbVW ) = 0;
+};
+    const LPSTR vsCMLanguageVC = (char*) "{B5E9BD32-6D3E-4B5D-925E-8A43B79820B4}";
+    const LPSTR vsCMLanguageVB = (char*) "{B5E9BD33-6D3E-4B5D-925E-8A43B79820B4}";
+    const LPSTR vsCMLanguageCSharp = (char*) "{B5E9BD34-6D3E-4B5D-925E-8A43B79820B4}";
+    const LPSTR vsCMLanguageIDL = (char*) "{B5E9BD35-6D3E-4B5D-925E-8A43B79820B4}";
+    const LPSTR vsCMLanguageMC = (char*) "{B5E9BD36-6D3E-4B5D-925E-8A43B79820B4}";
+
+enum __declspec(uuid("ed1a3f98-4477-11d3-89bf-00c04f688dde"))
+vsCMPrototype
+{
+    vsCMPrototypeFullname = 1,
+    vsCMPrototypeNoName = 2,
+    vsCMPrototypeClassName = 4,
+    vsCMPrototypeParamTypes = 8,
+    vsCMPrototypeParamNames = 16,
+    vsCMPrototypeParamDefaultValues = 32,
+    vsCMPrototypeUniqueSignature = 64,
+    vsCMPrototypeType = 128,
+    vsCMPrototypeInitExpression = 256
+};
+
+struct __declspec(uuid("d4bb39fb-0f0e-11d3-b880-00c04f79e479"))
+_DebuggerEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DebuggerEvents (
+        /*[out,retval]*/ IDispatch * * disp ) = 0;
+};
+
+enum __declspec(uuid("178c767a-1963-4bc5-b3f2-e70f3eb441a8"))
+vsNavigateBrowser
+{
+    vsNavigateBrowserDefault = 0,
+    vsNavigateBrowserHelp = 1,
+    vsNavigateBrowserNewWindow = 2
+};
+
+enum __declspec(uuid("947978f5-185b-4366-921e-a14c0ed46702"))
+vsCommandDisabledFlags
+{
+    vsCommandDisabledFlagsEnabled = 0,
+    vsCommandDisabledFlagsGrey = 16,
+    vsCommandDisabledFlagsHidden = 32
+};
+
+enum __declspec(uuid("9e3c8489-ae44-4fcf-9697-cd3f312ba08c"))
+vsInitializeMode
+{
+    vsInitializeModeStartup = 0,
+    vsInitializeModeReset = 1
+};
+
+struct __declspec(uuid("e914bbe1-03a4-11d1-bbcd-00a0c90f2744"))
+IDTWizard : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Execute (
+        /*[in]*/ IDispatch * Application,
+        /*[in]*/ long hwndOwner,
+        /*[in]*/ SAFEARRAY * * ContextParams,
+        /*[in]*/ SAFEARRAY * * CustomParams,
+        /*[in,out]*/ enum wizardResult * retval ) = 0;
+};
+
+struct __declspec(uuid("e2cc506a-588b-4f65-a1f0-2244c060abcb"))
+IVsGlobalsCallback : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall WriteVariablesToData (
+        /*[in]*/ LPWSTR pVariableName,
+        /*[in]*/ VARIANT * varData ) = 0;
+      virtual HRESULT __stdcall ReadData (
+        /*[in]*/ struct Globals * pGlobals ) = 0;
+      virtual HRESULT __stdcall ClearVariables ( ) = 0;
+      virtual HRESULT __stdcall VariableChanged ( ) = 0;
+      virtual HRESULT __stdcall CanModifySource ( ) = 0;
+      virtual HRESULT __stdcall GetParent (
+        IDispatch * * ppOut ) = 0;
+};
+
+struct __declspec(uuid("192ac688-e7c6-4f9d-8180-4b37efbf6f3a"))
+IVsGlobals : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Load ( ) = 0;
+      virtual HRESULT __stdcall Save ( ) = 0;
+      virtual HRESULT __stdcall Empty ( ) = 0;
+};
+
+enum __declspec(uuid("d9e97957-b425-4cd6-bb74-9e6f232a342a"))
+vsCommandStatusTextWanted
+{
+    vsCommandStatusTextWantedNone = 0,
+    vsCommandStatusTextWantedName = 1,
+    vsCommandStatusTextWantedStatus = 2
+};
+
+enum __declspec(uuid("e0ace2e3-49c1-4aa3-ac03-a2877a93d77f"))
+vsCommandStatus
+{
+    vsCommandStatusUnsupported = 0,
+    vsCommandStatusSupported = 1,
+    vsCommandStatusEnabled = 2,
+    vsCommandStatusLatched = 4,
+    vsCommandStatusNinched = 8,
+    vsCommandStatusInvisible = 16
+};
+
+enum __declspec(uuid("3c537e1a-39b8-4fda-9f22-93d8c030865d"))
+vsCommandExecOption
+{
+    vsCommandExecOptionDoDefault = 0,
+    vsCommandExecOptionPromptUser = 1,
+    vsCommandExecOptionDoPromptUser = 2,
+    vsCommandExecOptionShowHelp = 3
+};
+
+struct __declspec(uuid("7ef39a3e-590d-4879-88d4-c9be5bcfd92e"))
+IDTCommandTarget : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall QueryStatus (
+        /*[in]*/ BSTR CmdName,
+        /*[in]*/ enum vsCommandStatusTextWanted NeededText,
+        /*[in,out]*/ enum vsCommandStatus * StatusOption,
+        /*[in,out]*/ VARIANT * CommandText ) = 0;
+      virtual HRESULT __stdcall Exec (
+        /*[in]*/ BSTR CmdName,
+        /*[in]*/ enum vsCommandExecOption ExecuteOption,
+        /*[in]*/ VARIANT * VariantIn,
+        /*[in,out]*/ VARIANT * VariantOut,
+        /*[in,out]*/ VARIANT_BOOL * Handled ) = 0;
+};
+
+struct __declspec(uuid("85451f83-b5ca-437f-a619-0cb705707420"))
+_ProjectsEvents : IDispatch
+{};
+
+struct __declspec(uuid("7f508d55-627f-4d7f-be0b-9e3d829ff0ed"))
+_dispProjectsEvents : IDispatch
+{};
+
+struct __declspec(uuid("536a4be3-a376-408e-954c-471c779e216f"))
+ProjectsEvents;
+    // [ default ] interface _ProjectsEvents
+    // [ default, source ] dispinterface _dispProjectsEvents
+
+struct __declspec(uuid("7658b944-f37b-11d2-aacf-00c04f688dde"))
+_MiscSlnFilesEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_SolutionItemsEvents (
+        /*[out,retval]*/ IDispatch * * ppeNew ) = 0;
+      virtual HRESULT __stdcall get_MiscFilesEvents (
+        /*[out,retval]*/ IDispatch * * ppeNew ) = 0;
+};
+
+struct __declspec(uuid("9e66fe98-a1c6-421d-8c0c-6da4e652e770"))
+_CommandBarControlEvents : IDispatch
+{};
+
+struct __declspec(uuid("987fb893-f96d-11d0-bbbb-00a0c90f2744"))
+_dispCommandBarControlEvents : IDispatch
+{};
+
+struct __declspec(uuid("bfd4b2b2-9eec-4db8-aba0-ac316f4c7328"))
+CommandBarEvents;
+    // [ default ] interface _CommandBarControlEvents
+    // [ default, source ] dispinterface _dispCommandBarControlEvents
+
+enum __declspec(uuid("3982fa28-7bcc-4f14-817c-93eeece8beee"))
+vsBuildKind
+{
+    vsBuildKindSolution = 0,
+    vsBuildKindProject = 1,
+    vsBuildKindProjectItem = 2
+};
+
+enum __declspec(uuid("11f0cb7f-4f63-4e09-b99c-92a6cc5f84ce"))
+vsTextChanged
+{
+    vsTextChangedMultiLine = 1,
+    vsTextChangedSave = 2,
+    vsTextChangedCaretMoved = 4,
+    vsTextChangedReplaceAll = 8,
+    vsTextChangedNewline = 16,
+    vsTextChangedFindStarting = 32
+};
+
+struct __declspec(uuid("aa6f4085-33b6-4629-b9ea-692101007cc2"))
+_OutputWindowEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_OutputWindowEvents (
+        /*[in]*/ BSTR PaneFilter,
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+};
+
+struct __declspec(uuid("6bc8c372-c6f0-4be6-b255-827ac190bf71"))
+_TaskListEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_TaskListEvents (
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+};
+
+enum __declspec(uuid("f40a5d39-fd39-4f03-8358-4df3c338b448"))
+vsStatusAnimation
+{
+    vsStatusAnimationGeneral = 0,
+    vsStatusAnimationPrint = 1,
+    vsStatusAnimationSave = 2,
+    vsStatusAnimationDeploy = 3,
+    vsStatusAnimationSync = 4,
+    vsStatusAnimationBuild = 5,
+    vsStatusAnimationFind = 6
+};
+
+struct __declspec(uuid("bdcaf240-2692-4713-902a-b110b1d0f100"))
+IDTToolsOptionsPage : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall OnAfterCreated (
+        /*[in]*/ struct _DTE * DTEObject ) = 0;
+      virtual HRESULT __stdcall GetProperties (
+        /*[in,out]*/ IDispatch * * PropertiesObject ) = 0;
+      virtual HRESULT __stdcall OnOK ( ) = 0;
+      virtual HRESULT __stdcall OnCancel ( ) = 0;
+      virtual HRESULT __stdcall OnHelp ( ) = 0;
+};
+
+enum __declspec(uuid("705cd8ac-d29b-11d2-aabd-00c04f688dde"))
+vsStartUp
+{
+    vsStartUpShowHomePage = 0,
+    vsStartUpLoadLastSolution = 1,
+    vsStartUpOpenProjectDialog = 2,
+    vsStartUpNewProjectDialog = 3,
+    vsStartUpEmptyEnvironment = 4
+};
+
+enum __declspec(uuid("705cd8a4-d29b-11d2-aabd-00c04f688dde"))
+vsFontCharSet
+{
+    vsFontCharSetANSI = 0,
+    vsFontCharSetDefault = 1,
+    vsFontCharSetSymbol = 2,
+    vsFontCharSetShiftJIS = 128,
+    vsFontCharSetHangeul = 129,
+    vsFontCharSetGB2312 = 134,
+    vsFontCharSetChineseBig5 = 136,
+    vsFontCharSetOEM = 255,
+    vsFontCharSetJohab = 130,
+    vsFontCharSetHebrew = 177,
+    vsFontCharSetArabic = 178,
+    vsFontCharSetGreek = 161,
+    vsFontCharSetTurkish = 162,
+    vsFontCharSetVietnamese = 163,
+    vsFontCharSetThai = 222,
+    vsFontCharSetEastEurope = 238,
+    vsFontCharSetRussian = 204,
+    vsFontCharSetMac = 77,
+    vsFontCharSetBaltic = 186
+};
+
+enum __declspec(uuid("947ffc03-8314-4288-bdd7-dfd282da40d5"))
+vsBrowserViewSource
+{
+    vsBrowserViewSourceSource = 1,
+    vsBrowserViewSourceDesign = 2,
+    vsBrowserViewSourceExternal = 3
+};
+
+struct __declspec(uuid("a3286b03-5ac6-44f0-8cc3-ebed7f1124e5"))
+_EnvironmentWebBrowser : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_UseDefaultHomePage (
+        VARIANT_BOOL pUseDefault ) = 0;
+      virtual HRESULT __stdcall get_UseDefaultHomePage (
+        /*[out,retval]*/ VARIANT_BOOL * pUseDefault ) = 0;
+      virtual HRESULT __stdcall put_HomePage (
+        BSTR URL ) = 0;
+      virtual HRESULT __stdcall get_HomePage (
+        /*[out,retval]*/ BSTR * URL ) = 0;
+      virtual HRESULT __stdcall put_UseDefaultSearchPage (
+        VARIANT_BOOL pUseDefault ) = 0;
+      virtual HRESULT __stdcall get_UseDefaultSearchPage (
+        /*[out,retval]*/ VARIANT_BOOL * pUseDefault ) = 0;
+      virtual HRESULT __stdcall put_SearchPage (
+        BSTR URL ) = 0;
+      virtual HRESULT __stdcall get_SearchPage (
+        /*[out,retval]*/ BSTR * URL ) = 0;
+      virtual HRESULT __stdcall put_ViewSourceIn (
+        enum vsBrowserViewSource Location ) = 0;
+      virtual HRESULT __stdcall get_ViewSourceIn (
+        /*[out,retval]*/ enum vsBrowserViewSource * Location ) = 0;
+      virtual HRESULT __stdcall put_ViewSourceExternalProgram (
+        BSTR Path ) = 0;
+      virtual HRESULT __stdcall get_ViewSourceExternalProgram (
+        /*[out,retval]*/ BSTR * Path ) = 0;
+};
+
+struct __declspec(uuid("aebded64-a206-11d3-b8b5-00c04f79f802"))
+_EnvironmentHelp : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_PreferredLanguage (
+        /*[out,retval]*/ long * LCID ) = 0;
+      virtual HRESULT __stdcall put_PreferredLanguage (
+        /*[in]*/ long LCID ) = 0;
+      virtual HRESULT __stdcall get_PreferredCollection (
+        /*[out,retval]*/ BSTR * Namespace ) = 0;
+      virtual HRESULT __stdcall put_PreferredCollection (
+        /*[in]*/ BSTR Namespace ) = 0;
+      virtual HRESULT __stdcall get_External (
+        /*[out,retval]*/ VARIANT_BOOL * ExternalHelp ) = 0;
+      virtual HRESULT __stdcall put_External (
+        /*[in]*/ VARIANT_BOOL ExternalHelp ) = 0;
+};
+
+struct __declspec(uuid("e5d17051-d6e5-4da7-8b3a-ca888617a5e7"))
+ColorableItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_Foreground (
+        /*[out,retval]*/ OLE_COLOR * pColor ) = 0;
+      virtual HRESULT __stdcall put_Foreground (
+        OLE_COLOR pColor ) = 0;
+      virtual HRESULT __stdcall get_Background (
+        /*[out,retval]*/ OLE_COLOR * pColor ) = 0;
+      virtual HRESULT __stdcall put_Background (
+        OLE_COLOR pColor ) = 0;
+      virtual HRESULT __stdcall get_Bold (
+        /*[out,retval]*/ VARIANT_BOOL * Bold ) = 0;
+      virtual HRESULT __stdcall put_Bold (
+        VARIANT_BOOL Bold ) = 0;
+};
+
+struct __declspec(uuid("f25ae7e6-1460-4ba4-8e5e-bbbe746de353"))
+FontsAndColorsItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct ColorableItems * * pFontsAndColorsItem ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+};
+
+struct __declspec(uuid("256068f6-1add-4f7b-ba76-571314c413ad"))
+_FontsAndColors : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_FontFamily (
+        /*[out,retval]*/ BSTR * pFamily ) = 0;
+      virtual HRESULT __stdcall put_FontFamily (
+        BSTR pFamily ) = 0;
+      virtual HRESULT __stdcall get_FontCharacterSet (
+        /*[out,retval]*/ enum vsFontCharSet * pFontCharSet ) = 0;
+      virtual HRESULT __stdcall put_FontCharacterSet (
+        enum vsFontCharSet pFontCharSet ) = 0;
+      virtual HRESULT __stdcall get_FontSize (
+        /*[out,retval]*/ short * pSize ) = 0;
+      virtual HRESULT __stdcall put_FontSize (
+        short pSize ) = 0;
+      virtual HRESULT __stdcall get_FontsAndColorsItems (
+        /*[out,retval]*/ struct FontsAndColorsItems * * ppColorableItems ) = 0;
+};
+
+struct __declspec(uuid("48e61d9c-8c8d-42d3-914b-46d70c8b7a40"))
+_EnvironmentGeneral : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_OnStartUp (
+        /*[in]*/ enum vsStartUp pstartup ) = 0;
+      virtual HRESULT __stdcall get_OnStartUp (
+        /*[out,retval]*/ enum vsStartUp * pstartup ) = 0;
+      virtual HRESULT __stdcall put_ShowStatusBar (
+        /*[in]*/ VARIANT_BOOL pfshow ) = 0;
+      virtual HRESULT __stdcall get_ShowStatusBar (
+        /*[out,retval]*/ VARIANT_BOOL * pfshow ) = 0;
+      virtual HRESULT __stdcall put_WindowMenuContainsNItems (
+        /*[in]*/ long plCount ) = 0;
+      virtual HRESULT __stdcall get_WindowMenuContainsNItems (
+        /*[out,retval]*/ long * plCount ) = 0;
+      virtual HRESULT __stdcall put_MRUListContainsNItems (
+        /*[in]*/ long plCount ) = 0;
+      virtual HRESULT __stdcall get_MRUListContainsNItems (
+        /*[out,retval]*/ long * plCount ) = 0;
+      virtual HRESULT __stdcall get_AnimationSpeed (
+        /*[out,retval]*/ short * pSpeed ) = 0;
+      virtual HRESULT __stdcall put_AnimationSpeed (
+        short pSpeed ) = 0;
+      virtual HRESULT __stdcall get_Animations (
+        /*[out,retval]*/ VARIANT_BOOL * pAnimations ) = 0;
+      virtual HRESULT __stdcall put_Animations (
+        VARIANT_BOOL pAnimations ) = 0;
+      virtual HRESULT __stdcall get_ShowCommandWindowCompletion (
+        /*[out,retval]*/ VARIANT_BOOL * pComplete ) = 0;
+      virtual HRESULT __stdcall put_ShowCommandWindowCompletion (
+        VARIANT_BOOL pComplete ) = 0;
+      virtual HRESULT __stdcall put_CloseButtonActiveTabOnly (
+        VARIANT_BOOL CloseActiveOnly ) = 0;
+      virtual HRESULT __stdcall get_CloseButtonActiveTabOnly (
+        /*[out,retval]*/ VARIANT_BOOL * CloseActiveOnly ) = 0;
+      virtual HRESULT __stdcall put_AutohidePinActiveTabOnly (
+        VARIANT_BOOL AutohidePinActiveOnly ) = 0;
+      virtual HRESULT __stdcall get_AutohidePinActiveTabOnly (
+        /*[out,retval]*/ VARIANT_BOOL * AutohidePinActiveOnly ) = 0;
+};
+
+struct __declspec(uuid("f809cab6-2c9f-41f2-a5af-e26fb80e62ad"))
+_EnvironmentFontsAndColors : IDispatch
+{};
+
+struct __declspec(uuid("478f06d4-5d57-473f-9b74-5f8e88efa5e7"))
+_EnvironmentProjectsAndSolution : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_OnRunOrPreview (
+        /*[in]*/ enum vsSaveChanges pbld ) = 0;
+      virtual HRESULT __stdcall get_OnRunOrPreview (
+        /*[out,retval]*/ enum vsSaveChanges * pbld ) = 0;
+      virtual HRESULT __stdcall put_ProjectsLocation (
+        /*[in]*/ BSTR pLocation ) = 0;
+      virtual HRESULT __stdcall get_ProjectsLocation (
+        /*[out,retval]*/ BSTR * pLocation ) = 0;
+      virtual HRESULT __stdcall put_ShowOutputWindowBeforeBuild (
+        /*[in]*/ VARIANT_BOOL pfshow ) = 0;
+      virtual HRESULT __stdcall get_ShowOutputWindowBeforeBuild (
+        /*[out,retval]*/ VARIANT_BOOL * pfshow ) = 0;
+      virtual HRESULT __stdcall put_ShowTaskListAfterBuild (
+        /*[in]*/ VARIANT_BOOL pfshow ) = 0;
+      virtual HRESULT __stdcall get_ShowTaskListAfterBuild (
+        /*[out,retval]*/ VARIANT_BOOL * pfshow ) = 0;
+};
+
+struct __declspec(uuid("76ed1c48-ed86-4e9e-acf8-a40e765daf25"))
+_EnvironmentDocuments : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_ReuseSavedActiveDocWindow (
+        VARIANT_BOOL pReuse ) = 0;
+      virtual HRESULT __stdcall get_ReuseSavedActiveDocWindow (
+        /*[out,retval]*/ VARIANT_BOOL * pReuse ) = 0;
+      virtual HRESULT __stdcall put_DetectFileChangesOutsideIDE (
+        /*[in]*/ VARIANT_BOOL pfAutoRead ) = 0;
+      virtual HRESULT __stdcall get_DetectFileChangesOutsideIDE (
+        /*[out,retval]*/ VARIANT_BOOL * pfAutoRead ) = 0;
+      virtual HRESULT __stdcall put_AutoloadExternalChanges (
+        /*[in]*/ VARIANT_BOOL pfAutoload ) = 0;
+      virtual HRESULT __stdcall get_AutoloadExternalChanges (
+        /*[out,retval]*/ VARIANT_BOOL * pfAutoload ) = 0;
+      virtual HRESULT __stdcall put_InitializeOpenFileFromCurrentDocument (
+        /*[in]*/ VARIANT_BOOL pfInit ) = 0;
+      virtual HRESULT __stdcall get_InitializeOpenFileFromCurrentDocument (
+        /*[out,retval]*/ VARIANT_BOOL * pfInit ) = 0;
+      virtual HRESULT __stdcall put_MiscFilesProjectSavesLastNItems (
+        /*[in]*/ long plCount ) = 0;
+      virtual HRESULT __stdcall get_MiscFilesProjectSavesLastNItems (
+        /*[out,retval]*/ long * plCount ) = 0;
+      virtual HRESULT __stdcall get_FindReplaceShowMessageBoxes (
+        /*[out,retval]*/ VARIANT_BOOL * pShow ) = 0;
+      virtual HRESULT __stdcall put_FindReplaceShowMessageBoxes (
+        VARIANT_BOOL pShow ) = 0;
+      virtual HRESULT __stdcall get_FindReplaceInitializeFromEditor (
+        /*[out,retval]*/ VARIANT_BOOL * pShow ) = 0;
+      virtual HRESULT __stdcall put_FindReplaceInitializeFromEditor (
+        VARIANT_BOOL pShow ) = 0;
+};
+
+struct __declspec(uuid("4bc18a5b-dbb6-4af5-a443-2e3f19365304"))
+_EnvironmentTaskList : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_ConfirmTaskDeletion (
+        /*[out,retval]*/ VARIANT_BOOL * pConfirm ) = 0;
+      virtual HRESULT __stdcall put_ConfirmTaskDeletion (
+        VARIANT_BOOL pConfirm ) = 0;
+      virtual HRESULT __stdcall get_WarnOnAddingHiddenItem (
+        /*[out,retval]*/ VARIANT_BOOL * pWarn ) = 0;
+      virtual HRESULT __stdcall put_WarnOnAddingHiddenItem (
+        VARIANT_BOOL pWarn ) = 0;
+      virtual HRESULT __stdcall get_CommentTokens (
+        /*[out,retval]*/ VARIANT * pTokens ) = 0;
+      virtual HRESULT __stdcall put_CommentTokens (
+        VARIANT pTokens ) = 0;
+};
+
+struct __declspec(uuid("9c722678-490d-408f-98ae-b6b9a68aa45d"))
+_EnvironmentKeyboard : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_Scheme (
+        /*[in]*/ BSTR pbstr ) = 0;
+      virtual HRESULT __stdcall get_Scheme (
+        /*[out,retval]*/ BSTR * pbstr ) = 0;
+};
+
+struct __declspec(uuid("86c31347-5b52-4715-b454-a6e5fcab975d"))
+IExtensibleObject : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall GetAutomationObject (
+        /*[in]*/ BSTR Name,
+        /*[in]*/ struct IExtensibleObjectSite * pParent,
+        /*[out]*/ IDispatch * * ppDisp ) = 0;
+};
+    const LPSTR vsTaskCategoryBuildCompile = (char*) "BuildCompile";
+    const LPSTR vsTaskCategoryComment = (char*) "Comment";
+    const LPSTR vsTaskCategoryShortcut = (char*) "Shortcut";
+    const LPSTR vsTaskCategoryUser = (char*) "User";
+    const LPSTR vsTaskCategoryMisc = (char*) "Misc";
+    const LPSTR vsTaskCategoryHTML = (char*) "HTML";
+    const LPSTR vsDocumentKindText = (char*) "{8E7B96A8-E33D-11D0-A6D5-00C04FB67F6A}";
+    const LPSTR vsDocumentKindHTML = (char*) "{C76D83F8-A489-11D0-8195-00A0C91BBEE3}";
+    const LPSTR vsDocumentKindResource = (char*) "{00000000-0000-0000-0000-000000000000}";
+    const LPSTR vsDocumentKindBinary = (char*) "{25834150-CD7E-11D0-92DF-00A0C9138C45}";
+    const LPSTR vsViewKindPrimary = (char*) "{00000000-0000-0000-0000-000000000000}";
+    const LPSTR vsViewKindAny = (char*) "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}";
+    const LPSTR vsViewKindDebugging = (char*) "{7651A700-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsViewKindCode = (char*) "{7651A701-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsViewKindDesigner = (char*) "{7651A702-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsViewKindTextView = (char*) "{7651A703-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsWindowKindTaskList = (char*) "{4A9B7E51-AA16-11D0-A8C5-00A0C921A4D2}";
+    const LPSTR vsWindowKindToolbox = (char*) "{B1E99781-AB81-11D0-B683-00AA00A3EE26}";
+    const LPSTR vsWindowKindCallStack = (char*) "{0504FF91-9D61-11D0-A794-00A0C9110051}";
+    const LPSTR vsWindowKindThread = (char*) "{E62CE6A0-B439-11D0-A79D-00A0C9110051}";
+    const LPSTR vsWindowKindLocals = (char*) "{4A18F9D0-B838-11D0-93EB-00A0C90F2734}";
+    const LPSTR vsWindowKindAutoLocals = (char*) "{F2E84780-2AF1-11D1-A7FA-00A0C9110051}";
+    const LPSTR vsWindowKindWatch = (char*) "{90243340-BD7A-11D0-93EF-00A0C90F2734}";
+    const LPSTR vsWindowKindProperties = (char*) "{EEFA5220-E298-11D0-8F78-00A0C9110057}";
+    const LPSTR vsWindowKindSolutionExplorer = (char*) "{3AE79031-E1BC-11D0-8F78-00A0C9110057}";
+    const LPSTR vsWindowKindOutput = (char*) "{34E76E81-EE4A-11D0-AE2E-00A0C90FFFC3}";
+    const LPSTR vsWindowKindObjectBrowser = (char*) "{269A02DC-6AF8-11D3-BDC4-00C04F688E50}";
+    const LPSTR vsWindowKindMacroExplorer = (char*) "{07CD18B4-3BA1-11D2-890A-0060083196C6}";
+    const LPSTR vsWindowKindDynamicHelp = (char*) "{66DBA47C-61DF-11D2-AA79-00C04F990343}";
+    const LPSTR vsWindowKindClassView = (char*) "{C9C0AE26-AA77-11D2-B3F0-0000F87570EE}";
+    const LPSTR vsWindowKindResourceView = (char*) "{2D7728C2-DE0A-45b5-99AA-89B609DFDE73}";
+    const LPSTR vsWindowKindDocumentOutline = (char*) "{25F7E850-FFA1-11D0-B63F-00A0C922E851}";
+    const LPSTR vsWindowKindServerExplorer = (char*) "{74946827-37A0-11D2-A273-00C04F8EF4FF}";
+    const LPSTR vsWindowKindCommandWindow = (char*) "{28836128-FC2C-11D2-A433-00C04F72D18A}";
+    const LPSTR vsWindowKindFindSymbol = (char*) "{53024D34-0EF5-11D3-87E0-00C04F7971A5}";
+    const LPSTR vsWindowKindFindSymbolResults = (char*) "{68487888-204A-11D3-87EB-00C04F7971A5}";
+    const LPSTR vsWindowKindFindReplace = (char*) "{CF2DDC32-8CAD-11D2-9302-005345000000}";
+    const LPSTR vsWindowKindFindResults1 = (char*) "{0F887920-C2B6-11D2-9375-0080C747D9A0}";
+    const LPSTR vsWindowKindFindResults2 = (char*) "{0F887921-C2B6-11D2-9375-0080C747D9A0}";
+    const LPSTR vsWindowKindMainWindow = (char*) "{9DDABE98-1D02-11D3-89A1-00C04F688DDE}";
+    const LPSTR vsWindowKindLinkedWindowFrame = (char*) "{9DDABE99-1D02-11D3-89A1-00C04F688DDE}";
+    const LPSTR vsWindowKindWebBrowser = (char*) "{E8B06F52-6D01-11D2-AA7D-00C04F990343}";
+    const LPSTR vsWizardAddSubProject = (char*) "{0F90E1D2-4999-11D1-B6D1-00A0C90F2744}";
+    const LPSTR vsWizardAddItem = (char*) "{0F90E1D1-4999-11D1-B6D1-00A0C90F2744}";
+    const LPSTR vsWizardNewProject = (char*) "{0F90E1D0-4999-11D1-B6D1-00A0C90F2744}";
+    const LPSTR vsProjectKindMisc = (char*) "{66A2671D-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectItemsKindMisc = (char*) "{66A2671E-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectItemKindMisc = (char*) "{66A2671F-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectKindUnmodeled = (char*) "{67294A52-A4F0-11D2-AA88-00C04F688DDE}";
+    const LPSTR vsProjectKindSolutionItems = (char*) "{66A26720-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectItemsKindSolutionItems = (char*) "{66A26721-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectItemKindSolutionItems = (char*) "{66A26722-8FB5-11D2-AA7E-00C04F688DDE}";
+    const LPSTR vsProjectsKindSolution = (char*) "{96410B9F-3542-4A14-877F-BC7227B51D3B}";
+    const LPSTR vsAddInCmdGroup = (char*) "{1E58696E-C90F-11D2-AAB2-00C04F688DDE}";
+    const LPSTR vsContextSolutionBuilding = (char*) "{ADFC4E60-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextDebugging = (char*) "{ADFC4E61-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextFullScreenMode = (char*) "{ADFC4E62-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextDesignMode = (char*) "{ADFC4E63-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextNoSolution = (char*) "{ADFC4E64-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextEmptySolution = (char*) "{ADFC4E65-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextSolutionHasSingleProject = (char*) "{ADFC4E66-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextSolutionHasMultipleProjects = (char*) "{93694FA0-0397-11D1-9F4E-00A0C911004F}";
+    const LPSTR vsContextMacroRecording = (char*) "{04BBF6A5-4697-11D2-890E-0060083196C6}";
+    const LPSTR vsContextMacroRecordingToolbar = (char*) "{85A70471-270A-11D2-88F9-0060083196C6}";
+    const LPSTR vsMiscFilesProjectUniqueName = (char*) "<MiscFiles>";
+    const LPSTR vsSolutionItemsProjectUniqueName = (char*) "<SolnItems>";
+    const LPSTR vsProjectItemKindPhysicalFile = (char*) "{6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C}";
+    const LPSTR vsProjectItemKindPhysicalFolder = (char*) "{6BB5F8EF-4483-11D3-8BCF-00C04F8EC28C}";
+    const LPSTR vsProjectItemKindVirtualFolder = (char*) "{6BB5F8F0-4483-11D3-8BCF-00C04F8EC28C}";
+    const LPSTR vsProjectItemKindSubProject = (char*) "{EA6618E8-6E24-4528-94BE-6889FE16485C}";
+    const LPSTR vsext_vk_Primary = (char*) "{00000000-0000-0000-0000-000000000000}";
+    const LPSTR vsext_vk_Debugging = (char*) "{7651A700-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsext_vk_Code = (char*) "{7651A701-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsext_vk_Designer = (char*) "{7651A702-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsext_vk_TextView = (char*) "{7651A703-06E5-11D1-8EBD-00A0C90F26EA}";
+    const LPSTR vsext_wk_TaskList = (char*) "{4A9B7E51-AA16-11D0-A8C5-00A0C921A4D2}";
+    const LPSTR vsext_wk_Toolbox = (char*) "{B1E99781-AB81-11D0-B683-00AA00A3EE26}";
+    const LPSTR vsext_wk_CallStackWindow = (char*) "{0504FF91-9D61-11D0-A794-00A0C9110051}";
+    const LPSTR vsext_wk_ThreadWindow = (char*) "{E62CE6A0-B439-11D0-A79D-00A0C9110051}";
+    const LPSTR vsext_wk_LocalsWindow = (char*) "{4A18F9D0-B838-11D0-93EB-00A0C90F2734}";
+    const LPSTR vsext_wk_AutoLocalsWindow = (char*) "{F2E84780-2AF1-11D1-A7FA-00A0C9110051}";
+    const LPSTR vsext_wk_WatchWindow = (char*) "{90243340-BD7A-11D0-93EF-00A0C90F2734}";
+    const LPSTR vsext_wk_ImmedWindow = (char*) "{98731960-965C-11D0-A78F-00A0C9110051}";
+    const LPSTR vsext_wk_PropertyBrowser = (char*) "{EEFA5220-E298-11D0-8F78-00A0C9110057}";
+    const LPSTR vsext_wk_SProjectWindow = (char*) "{3AE79031-E1BC-11D0-8F78-00A0C9110057}";
+    const LPSTR vsext_wk_OutputWindow = (char*) "{34E76E81-EE4A-11D0-AE2E-00A0C90FFFC3}";
+    const LPSTR vsext_wk_ObjectBrowser = (char*) "{269A02DC-6AF8-11D3-BDC4-00C04F688E50}";
+    const LPSTR vsext_wk_ContextWindow = (char*) "{66DBA47C-61DF-11D2-AA79-00C04F990343}";
+    const LPSTR vsext_wk_ClassView = (char*) "{C9C0AE26-AA77-11D2-B3F0-0000F87570EE}";
+    const LPSTR vsext_GUID_AddItemWizard = (char*) "{0F90E1D1-4999-11D1-B6D1-00A0C90F2744}";
+    const LPSTR vsext_GUID_NewProjectWizard = (char*) "{0F90E1D0-4999-11D1-B6D1-00A0C90F2744}";
+    const LPSTR dsCPP = (char*) "C/C++";
+    const LPSTR dsHTML_IE3 = (char*) "HTML - IE 3.0";
+    const LPSTR dsHTML_RFC1866 = (char*) "HTML 2.0 (RFC 1866)";
+    const LPSTR dsFortran_Fixed = (char*) "Fortran Fixed";
+    const LPSTR dsFortran_Free = (char*) "Fortran Free";
+    const LPSTR dsJava = (char*) "Java";
+    const LPSTR dsVBSMacro = (char*) "VBS Macro";
+    const LPSTR dsIDL = (char*) "ODL/IDL";
+    const LPSTR vsCATIDSolution = (char*) "{52AEFF70-BBD8-11d2-8598-006097C68E81}";
+    const LPSTR vsCATIDSolutionBrowseObject = (char*) "{A2392464-7C22-11d3-BDCA-00C04F688E50}";
+    const LPSTR vsCATIDMiscFilesProject = (char*) "{610d4612-d0d5-11d2-8599-006097c68e81}";
+    const LPSTR vsCATIDMiscFilesProjectItem = (char*) "{610d4613-d0d5-11d2-8599-006097c68e81}";
+    const LPSTR vsCATIDGenericProject = (char*) "{610d4616-d0d5-11d2-8599-006097c68e81}";
+    const LPSTR vsCATIDDocument = (char*) "{610d4611-d0d5-11d2-8599-006097c68e81}";
+
+enum __declspec(uuid("a457303f-d058-4415-a2b4-a81b148c7689"))
+vsFindOptions
+{
+    vsFindOptionsNone = 0,
+    vsFindOptionsMatchWholeWord = 2,
+    vsFindOptionsMatchCase = 4,
+    vsFindOptionsRegularExpression = 8,
+    vsFindOptionsBackwards = 128,
+    vsFindOptionsFromStart = 256,
+    vsFindOptionsMatchInHiddenText = 512,
+    vsFindOptionsWildcards = 1024,
+    vsFindOptionsSearchSubfolders = 4096,
+    vsFindOptionsKeepModifiedDocumentsOpen = 8192
+};
+
+enum __declspec(uuid("29182bd4-48a8-4e4b-81dd-1b742a3a5203"))
+vsMovementOptions
+{
+    vsMovementOptionsMove = 0,
+    vsMovementOptionsExtend = 1
+};
+
+enum __declspec(uuid("11b63a24-6200-48cd-9b8d-fc6a6fb9eff0"))
+vsGoToLineOptions
+{
+    vsGoToLineOptionsLast = -1,
+    vsGoToLineOptionsFirst = -2
+};
+
+enum __declspec(uuid("c512dde3-a220-4373-8950-e6636f8cc546"))
+vsSmartFormatOptions
+{
+    vsSmartFormatOptionsNone = 0,
+    vsSmartFormatOptionsBlock = 1,
+    vsSmartFormatOptionsSmart = 2
+};
+
+enum __declspec(uuid("79515b53-8294-4f96-aa96-dd16bf126703"))
+vsInsertFlags
+{
+    vsInsertFlagsCollapseToEnd = 1,
+    vsInsertFlagsCollapseToStart = 2,
+    vsInsertFlagsContainNewText = 4,
+    vsInsertFlagsInsertAtEnd = 8,
+    vsInsertFlagsInsertAtStart = 16
+};
+
+enum __declspec(uuid("4eb2c04f-8a83-4363-81db-dbb76cd76812"))
+vsMoveToColumnLine
+{
+    vsMoveToColumnLineFirst = 0,
+    vsMoveToColumnLineLast = 1
+};
+
+enum __declspec(uuid("3740dcf8-b8b2-49a9-a1ab-944c84876c3c"))
+vsEPReplaceTextOptions
+{
+    vsEPReplaceTextKeepMarkers = 1,
+    vsEPReplaceTextNormalizeNewlines = 2,
+    vsEPReplaceTextTabsSpaces = 4,
+    vsEPReplaceTextAutoformat = 8
+};
+
+struct __declspec(uuid("2e1bfd1c-5b26-4aca-b97b-ed9d261ba3e7"))
+IVsTextEditGeneral : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_SelectionMargin (
+        /*[in]*/ VARIANT_BOOL pfSelectionMargin ) = 0;
+      virtual HRESULT __stdcall get_SelectionMargin (
+        /*[out,retval]*/ VARIANT_BOOL * pfSelectionMargin ) = 0;
+      virtual HRESULT __stdcall put_GoToAnchorAfterEscape (
+        /*[in]*/ VARIANT_BOOL pfGoToAnchorAfterEscape ) = 0;
+      virtual HRESULT __stdcall get_GoToAnchorAfterEscape (
+        /*[out,retval]*/ VARIANT_BOOL * pfGoToAnchorAfterEscape ) = 0;
+      virtual HRESULT __stdcall put_DragNDropTextEditing (
+        /*[in]*/ VARIANT_BOOL pfDragNDropTextEditing ) = 0;
+      virtual HRESULT __stdcall get_DragNDropTextEditing (
+        /*[out,retval]*/ VARIANT_BOOL * pfDragNDropTextEditing ) = 0;
+      virtual HRESULT __stdcall put_UndoCaretActions (
+        /*[in]*/ VARIANT_BOOL pfUndoCaretActions ) = 0;
+      virtual HRESULT __stdcall get_UndoCaretActions (
+        /*[out,retval]*/ VARIANT_BOOL * pfUndoCaretActions ) = 0;
+      virtual HRESULT __stdcall put_MarginIndicatorBar (
+        /*[in]*/ VARIANT_BOOL pfMarginIndicatorBar ) = 0;
+      virtual HRESULT __stdcall get_MarginIndicatorBar (
+        /*[out,retval]*/ VARIANT_BOOL * pfMarginIndicatorBar ) = 0;
+      virtual HRESULT __stdcall put_HorizontalScrollBar (
+        /*[in]*/ VARIANT_BOOL pfHorizontalScrollBar ) = 0;
+      virtual HRESULT __stdcall get_HorizontalScrollBar (
+        /*[out,retval]*/ VARIANT_BOOL * pfHorizontalScrollBar ) = 0;
+      virtual HRESULT __stdcall put_VerticalScrollBar (
+        /*[in]*/ VARIANT_BOOL pfVerticalScrollBar ) = 0;
+      virtual HRESULT __stdcall get_VerticalScrollBar (
+        /*[out,retval]*/ VARIANT_BOOL * pfVerticalScrollBar ) = 0;
+      virtual HRESULT __stdcall put_AutoDelimiterHighlighting (
+        /*[in]*/ VARIANT_BOOL pfHighlighting ) = 0;
+      virtual HRESULT __stdcall get_AutoDelimiterHighlighting (
+        /*[out,retval]*/ VARIANT_BOOL * pfHighlighting ) = 0;
+};
+
+struct __declspec(uuid("5943bd7e-d722-42db-a251-fe2add8711ea"))
+IVsTextEditPerLanguage : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_TabSize (
+        /*[in]*/ short piTabSize ) = 0;
+      virtual HRESULT __stdcall get_TabSize (
+        /*[out,retval]*/ short * piTabSize ) = 0;
+      virtual HRESULT __stdcall put_IndentSize (
+        /*[in]*/ short piIndentSize ) = 0;
+      virtual HRESULT __stdcall get_IndentSize (
+        /*[out,retval]*/ short * piIndentSize ) = 0;
+      virtual HRESULT __stdcall put_InsertTabs (
+        /*[in]*/ VARIANT_BOOL pfInsertTabs ) = 0;
+      virtual HRESULT __stdcall get_InsertTabs (
+        /*[out,retval]*/ VARIANT_BOOL * pfInsertTabs ) = 0;
+      virtual HRESULT __stdcall put_IndentStyle (
+        /*[in]*/ vsIndentStyle pfIndentStyle ) = 0;
+      virtual HRESULT __stdcall get_IndentStyle (
+        /*[out,retval]*/ vsIndentStyle * pfIndentStyle ) = 0;
+      virtual HRESULT __stdcall put_AutoListMembers (
+        /*[in]*/ VARIANT_BOOL pfAutoListMembers ) = 0;
+      virtual HRESULT __stdcall get_AutoListMembers (
+        /*[out,retval]*/ VARIANT_BOOL * pfAutoListMembers ) = 0;
+      virtual HRESULT __stdcall put_AutoListParams (
+        /*[in]*/ VARIANT_BOOL pfAutoListParams ) = 0;
+      virtual HRESULT __stdcall get_AutoListParams (
+        /*[out,retval]*/ VARIANT_BOOL * pfAutoListParams ) = 0;
+      virtual HRESULT __stdcall put_VirtualSpace (
+        /*[in]*/ VARIANT_BOOL pfVirtualSpace ) = 0;
+      virtual HRESULT __stdcall get_VirtualSpace (
+        /*[out,retval]*/ VARIANT_BOOL * pfVirtualSpace ) = 0;
+      virtual HRESULT __stdcall put_EnableLeftClickForURLs (
+        /*[in]*/ VARIANT_BOOL pfHotURLs ) = 0;
+      virtual HRESULT __stdcall get_EnableLeftClickForURLs (
+        /*[out,retval]*/ VARIANT_BOOL * pfHotURLs ) = 0;
+      virtual HRESULT __stdcall put_WordWrap (
+        /*[in]*/ VARIANT_BOOL pfWrap ) = 0;
+      virtual HRESULT __stdcall get_WordWrap (
+        /*[out,retval]*/ VARIANT_BOOL * pfWrap ) = 0;
+      virtual HRESULT __stdcall put_ShowLineNumbers (
+        /*[in]*/ VARIANT_BOOL pfshow ) = 0;
+      virtual HRESULT __stdcall get_ShowLineNumbers (
+        /*[out,retval]*/ VARIANT_BOOL * pfshow ) = 0;
+      virtual HRESULT __stdcall put_ShowNavigationBar (
+        /*[in]*/ VARIANT_BOOL pfshow ) = 0;
+      virtual HRESULT __stdcall get_ShowNavigationBar (
+        /*[out,retval]*/ VARIANT_BOOL * pfshow ) = 0;
+      virtual HRESULT __stdcall put_HideAdvancedMembers (
+        /*[in]*/ VARIANT_BOOL pfHide ) = 0;
+      virtual HRESULT __stdcall get_HideAdvancedMembers (
+        /*[out,retval]*/ VARIANT_BOOL * pfHide ) = 0;
+};
+
+enum _vsIndentStyle
+{
+    vsIndentStyleNone = 0,
+    vsIndentStyleDefault = 1,
+    vsIndentStyleSmart = 2
+};
+
+struct __declspec(uuid("f39ab913-e6c9-4546-a265-1e43f8de924c"))
+IVsTextEditFonts : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall put_FontFamily (
+        /*[in]*/ BSTR pbstrFontFamily ) = 0;
+      virtual HRESULT __stdcall get_FontFamily (
+        /*[out,retval]*/ BSTR * pbstrFontFamily ) = 0;
+      virtual HRESULT __stdcall put_FontCharacterSet (
+        /*[in]*/ enum vsFontCharSet pbstrCharacterSet ) = 0;
+      virtual HRESULT __stdcall get_FontCharacterSet (
+        /*[out,retval]*/ enum vsFontCharSet * pbstrCharacterSet ) = 0;
+      virtual HRESULT __stdcall put_FontSize (
+        /*[in]*/ short piFontSize ) = 0;
+      virtual HRESULT __stdcall get_FontSize (
+        /*[out,retval]*/ short * piFontSize ) = 0;
+};
+
+enum __declspec(uuid("c106c8dc-6d0c-11d1-b2c9-00c04fb6c6ff"))
+vsext_FontCharSet
+{
+    vsext_fontcs_ANSI = 0,
+    vsext_fontcs_DEFAULT = 1,
+    vsext_fontcs_SYMBOL = 2,
+    vsext_fontcs_SHIFTJIS = 128,
+    vsext_fontcs_HANGEUL = 129,
+    vsext_fontcs_GB2312 = 134,
+    vsext_fontcs_CHINESEBIG5 = 136,
+    vsext_fontcs_OEM = 255,
+    vsext_fontcs_JOHAB = 130,
+    vsext_fontcs_HEBREW = 177,
+    vsext_fontcs_ARABIC = 178,
+    vsext_fontcs_GREEK = 161,
+    vsext_fontcs_TURKISH = 162,
+    vsext_fontcs_VIETNAMESE = 163,
+    vsext_fontcs_THAI = 222,
+    vsext_fontcs_EASTEUROPE = 238,
+    vsext_fontcs_RUSSIAN = 204,
+    vsext_fontcs_MAC = 77,
+    vsext_fontcs_BALTIC = 186
+};
+
+enum VSEXECRESULT
+{
+    RESULT_Success = -1,
+    RESULT_Failure = 0,
+    RESULT_Cancel = 1
+};
+
+enum __declspec(uuid("91aab9c3-da83-473a-8bc9-1a2730865995"))
+vsext_DisplayMode
+{
+    vsext_dm_SDI = 0,
+    vsext_dm_MDI = 1
+};
+
+enum __declspec(uuid("e4b9e990-fd59-11d0-bbc6-00a0c90f2744"))
+vsext_WindowType
+{
+    vsext_wt_CodeWindow = 0,
+    vsext_wt_Designer = 1,
+    vsext_wt_Browser = 2,
+    vsext_wt_Watch = 3,
+    vsext_wt_Locals = 4,
+    vsext_wt_Immediate = 5,
+    vsext_wt_ProjectWindow = 6,
+    vsext_wt_PropertyWindow = 7,
+    vsext_wt_Find = 8,
+    vsext_wt_FindReplace = 9,
+    vsext_wt_Toolbox = 10,
+    vsext_wt_LinkedWindowFrame = 11,
+    vsext_wt_MainWindow = 12,
+    vsext_wt_Preview = 13,
+    vsext_wt_ColorPalette = 14,
+    vsext_wt_ToolWindow = 15,
+    vsext_wt_Document = 16,
+    vsext_wt_OutPutWindow = 17,
+    vsext_wt_TaskList = 18,
+    vsext_wt_Autos = 19,
+    vsext_wt_CallStack = 20,
+    vsext_wt_Threads = 21,
+    vsext_wt_DocumentOutline = 22,
+    vsext_wt_RunningDocuments = 23
+};
+
+enum __declspec(uuid("e0c72e51-6b99-489b-aca6-90cedce888e7"))
+vsext_WindowState
+{
+    vsext_ws_Normal = 0,
+    vsext_ws_Minimize = 1,
+    vsext_ws_Maximize = 2
+};
+
+enum __declspec(uuid("97653acf-d869-4ec0-b450-e9842457c729"))
+vsext_LinkedWindowType
+{
+    vsext_lwt_Docked = 0,
+    vsext_lwt_Tabbed = 1
+};
+
+enum __declspec(uuid("a5578594-18e0-11d1-bbdb-00a0c90f2744"))
+vsext_StartUp
+{
+    vsext_su_EMPTY_ENVIRONMENT = 0,
+    vsext_su_NEW_SOLUTION_DIALOG = 1,
+    vsext_su_LOAD_LAST_SOLUTION = 2
+};
+
+enum __declspec(uuid("47046891-19f7-11d1-bcaf-000000000000"))
+vsext_Build
+{
+    vsext_bld_SAVE_CHANGES = 0,
+    vsext_bld_CONFIRM_SAVE = 1,
+    vsext_bld_NO_SAVE = 2
+};
+
+enum __declspec(uuid("bdbe10aa-74d3-498a-a464-8074cd5e99cb"))
+DsTextSearchOptions
+{
+    dsMatchWord = 2,
+    dsMatchCase = 4,
+    dsMatchNoRegExp = 0,
+    dsMatchRegExp = 8,
+    dsMatchRegExpB = 16,
+    dsMatchRegExpE = 32,
+    dsMatchRegExpCur = 64,
+    dsMatchForward = 0,
+    dsMatchBackward = 128,
+    dsMatchFromStart = 256
+};
+
+enum __declspec(uuid("99744ec4-7a72-11d2-adc9-00c04f7971c3"))
+DsSaveChanges
+{
+    dsSaveChangesYes = 1,
+    dsSaveChangesNo = 2,
+    dsSaveChangesPrompt = 3
+};
+
+enum __declspec(uuid("6269c78d-5591-40d6-a095-5bac8ba07478"))
+DsGoToLineOptions
+{
+    dsLastLine = -1
+};
+
+enum __declspec(uuid("95751137-ac07-4c76-a219-4be5d381985d"))
+DsStartOfLineOptions
+{
+    dsFirstColumn = 0,
+    dsFirstText = 1
+};
+
+enum __declspec(uuid("4b58f807-6f08-4b41-abaf-b5bca4869d2c"))
+DsMovementOptions
+{
+    dsMove = 0,
+    dsExtend = 1
+};
+
+enum __declspec(uuid("31445615-bcae-4ba0-a99c-246bc660cfe8"))
+DsWhitespaceOptions
+{
+    dsHorizontal = 0,
+    dsVertical = 1
+};
+
+enum __declspec(uuid("f7d38518-e803-4462-8fa2-e481642d42fb"))
+DsCaseOptions
+{
+    dsLowercase = 1,
+    dsUppercase = 2,
+    dsCapitalize = 3
+};
+
+enum __declspec(uuid("8d78b9a9-a3be-49d0-aa97-bf7fa46d8ea2"))
+dsSaveStatus
+{
+    dsSaveCancelled = 2,
+    dsSaveSucceeded = 1
+};
+
+enum __declspec(uuid("44160df5-e305-4d85-b7fe-6b5a1b81b9b0"))
+vsHTMLTabs
+{
+    vsHTMLTabsSource = 0,
+    vsHTMLTabsDesign = 1
+};
+
+struct __declspec(uuid("04a72314-32e9-48e2-9b87-a63603454f3e"))
+_DTE : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_FileName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_Version (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_CommandBars (
+        /*[out,retval]*/ IDispatch * * ppcbs ) = 0;
+      virtual HRESULT __stdcall get_Windows (
+        /*[out,retval]*/ struct Windows * * ppwnsVBWindows ) = 0;
+      virtual HRESULT __stdcall get_Events (
+        /*[out,retval]*/ struct Events * * ppevtEvents ) = 0;
+      virtual HRESULT __stdcall get_AddIns (
+        /*[out,retval]*/ struct AddIns * * lpppAddIns ) = 0;
+      virtual HRESULT __stdcall get_MainWindow (
+        /*[out,retval]*/ struct Window * * ppWin ) = 0;
+      virtual HRESULT __stdcall get_ActiveWindow (
+        /*[out,retval]*/ struct Window * * ppwinActive ) = 0;
+      virtual HRESULT __stdcall Quit ( ) = 0;
+      virtual HRESULT __stdcall get_DisplayMode (
+        /*[out,retval]*/ enum vsDisplay * lpDispMode ) = 0;
+      virtual HRESULT __stdcall put_DisplayMode (
+        /*[in]*/ enum vsDisplay lpDispMode ) = 0;
+      virtual HRESULT __stdcall get_Solution (
+        /*[out,retval]*/ struct _Solution * * ppSolution ) = 0;
+      virtual HRESULT __stdcall get_Commands (
+        /*[out,retval]*/ struct Commands * * ppCommands ) = 0;
+      virtual HRESULT __stdcall GetObject (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ IDispatch * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        BSTR Category,
+        BSTR Page,
+        /*[out,retval]*/ struct Properties * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_SelectedItems (
+        /*[out,retval]*/ struct SelectedItems * * ppSelectedItems ) = 0;
+      virtual HRESULT __stdcall get_CommandLineArguments (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall OpenFile (
+        /*[in]*/ BSTR ViewKind,
+        /*[in]*/ BSTR FileName,
+        /*[out,retval]*/ struct Window * * ppWin ) = 0;
+      virtual HRESULT __stdcall get_IsOpenFile (
+        /*[in]*/ BSTR ViewKind,
+        /*[in]*/ BSTR FileName,
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_LocaleID (
+        /*[out,retval]*/ long * lpReturn ) = 0;
+      virtual HRESULT __stdcall get_WindowConfigurations (
+        /*[out,retval]*/ struct WindowConfigurations * * WindowConfigurationsObject ) = 0;
+      virtual HRESULT __stdcall get_Documents (
+        /*[out,retval]*/ struct Documents * * ppDocuments ) = 0;
+      virtual HRESULT __stdcall get_ActiveDocument (
+        /*[out,retval]*/ struct Document * * ppDocument ) = 0;
+      virtual HRESULT __stdcall ExecuteCommand (
+        /*[in]*/ BSTR CommandName,
+        /*[in]*/ BSTR CommandArgs ) = 0;
+      virtual HRESULT __stdcall get_Globals (
+        /*[out,retval]*/ struct Globals * * ppGlobals ) = 0;
+      virtual HRESULT __stdcall get_StatusBar (
+        /*[out,retval]*/ struct StatusBar * * ppStatusBar ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_UserControl (
+        /*[out,retval]*/ VARIANT_BOOL * UserControl ) = 0;
+      virtual HRESULT __stdcall put_UserControl (
+        /*[in]*/ VARIANT_BOOL UserControl ) = 0;
+      virtual HRESULT __stdcall get_ObjectExtenders (
+        /*[out,retval]*/ struct ObjectExtenders * * ppObjectExtenders ) = 0;
+      virtual HRESULT __stdcall get_Find (
+        /*[out,retval]*/ struct Find * * ppFind ) = 0;
+      virtual HRESULT __stdcall get_Mode (
+        /*[out,retval]*/ enum vsIDEMode * pVal ) = 0;
+      virtual HRESULT __stdcall LaunchWizard (
+        /*[in]*/ BSTR VSZFile,
+        /*[in]*/ SAFEARRAY * * ContextParams,
+        /*[out,retval]*/ enum wizardResult * pResult ) = 0;
+      virtual HRESULT __stdcall get_ItemOperations (
+        /*[out,retval]*/ struct ItemOperations * * ppItemOperations ) = 0;
+      virtual HRESULT __stdcall get_UndoContext (
+        /*[out,retval]*/ struct UndoContext * * ppUndoContext ) = 0;
+      virtual HRESULT __stdcall get_Macros (
+        /*[out,retval]*/ struct Macros * * ppMacros ) = 0;
+      virtual HRESULT __stdcall get_ActiveSolutionProjects (
+        /*[out,retval]*/ VARIANT * pProjects ) = 0;
+      virtual HRESULT __stdcall get_MacrosIDE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_RegistryRoot (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_Application (
+        /*[out,retval]*/ struct _DTE * * pVal ) = 0;
+      virtual HRESULT __stdcall get_ContextAttributes (
+        /*[out,retval]*/ struct ContextAttributes * * ppVal ) = 0;
+      virtual HRESULT __stdcall get_SourceControl (
+        /*[out,retval]*/ struct SourceControl * * ppVal ) = 0;
+      virtual HRESULT __stdcall get_SuppressUI (
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall put_SuppressUI (
+        /*[in]*/ VARIANT_BOOL pVal ) = 0;
+      virtual HRESULT __stdcall get_Debugger (
+        /*[out,retval]*/ struct Debugger * * ppDebugger ) = 0;
+      virtual HRESULT __stdcall SatelliteDllPath (
+        BSTR Path,
+        BSTR Name,
+        /*[out,retval]*/ BSTR * pFullPath ) = 0;
+      virtual HRESULT __stdcall get_Edition (
+        /*[out,retval]*/ BSTR * ProductEdition ) = 0;
+};
+
+struct __declspec(uuid("2294311a-b7bc-4789-b365-1c15ff2cd17c"))
+Windows : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Window * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall CreateToolWindow (
+        /*[in]*/ struct AddIn * AddInInst,
+        /*[in]*/ BSTR ProgID,
+        /*[in]*/ BSTR Caption,
+        /*[in]*/ BSTR GuidPosition,
+        /*[in,out]*/ IDispatch * * DocObj,
+        /*[out,retval]*/ struct Window * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall CreateLinkedWindowFrame (
+        /*[in]*/ struct Window * Window1,
+        /*[in]*/ struct Window * Window2,
+        /*[in]*/ enum vsLinkedWindowType Link,
+        /*[out,retval]*/ struct Window * * LinkedWindowFrame ) = 0;
+};
+
+struct __declspec(uuid("0beab46b-4c07-4f94-a8d7-1626020e4e53"))
+Window : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Windows * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Visible (
+        /*[out,retval]*/ VARIANT_BOOL * pfVisible ) = 0;
+      virtual HRESULT __stdcall put_Visible (
+        /*[in]*/ VARIANT_BOOL pfVisible ) = 0;
+      virtual HRESULT __stdcall get_Left (
+        /*[out,retval]*/ long * plLeft ) = 0;
+      virtual HRESULT __stdcall put_Left (
+        /*[in]*/ long plLeft ) = 0;
+      virtual HRESULT __stdcall get_Top (
+        /*[out,retval]*/ long * plTop ) = 0;
+      virtual HRESULT __stdcall put_Top (
+        /*[in]*/ long plTop ) = 0;
+      virtual HRESULT __stdcall get_Width (
+        /*[out,retval]*/ long * plWidth ) = 0;
+      virtual HRESULT __stdcall put_Width (
+        /*[in]*/ long plWidth ) = 0;
+      virtual HRESULT __stdcall get_Height (
+        /*[out,retval]*/ long * plHeight ) = 0;
+      virtual HRESULT __stdcall put_Height (
+        /*[in]*/ long plHeight ) = 0;
+      virtual HRESULT __stdcall get_WindowState (
+        /*[out,retval]*/ enum vsWindowState * plWindowState ) = 0;
+      virtual HRESULT __stdcall put_WindowState (
+        /*[in]*/ enum vsWindowState plWindowState ) = 0;
+      virtual HRESULT __stdcall SetFocus ( ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ enum vsWindowType * pKind ) = 0;
+      virtual HRESULT __stdcall SetKind (
+        /*[in]*/ enum vsWindowType eKind ) = 0;
+      virtual HRESULT __stdcall get_LinkedWindows (
+        /*[out,retval]*/ struct LinkedWindows * * ppwnsCollection ) = 0;
+      virtual HRESULT __stdcall get_LinkedWindowFrame (
+        /*[out,retval]*/ struct Window * * ppwinFrame ) = 0;
+      virtual HRESULT __stdcall Detach ( ) = 0;
+      virtual HRESULT __stdcall Attach (
+        /*[in]*/ long lWindowHandle ) = 0;
+      virtual HRESULT __stdcall get_HWnd (
+        /*[out,retval]*/ long * plWindowHandle ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * pbstrType ) = 0;
+      virtual HRESULT __stdcall get_ObjectKind (
+        /*[out,retval]*/ BSTR * pbstrTypeGUID ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * ppToolObject ) = 0;
+      virtual HRESULT __stdcall get_DocumentData (
+        /*[in]*/ BSTR bstrWhichData,
+        /*[out,retval]*/ IDispatch * * ppDataObject ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * ppProjItem ) = 0;
+      virtual HRESULT __stdcall get_Project (
+        /*[out,retval]*/ struct Project * * ppProj ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Document (
+        /*[out,retval]*/ struct Document * * ppDocument ) = 0;
+      virtual HRESULT __stdcall get_Selection (
+        /*[out,retval]*/ IDispatch * * ppDocument ) = 0;
+      virtual HRESULT __stdcall get_Linkable (
+        /*[out,retval]*/ VARIANT_BOOL * pLinkable ) = 0;
+      virtual HRESULT __stdcall put_Linkable (
+        /*[in]*/ VARIANT_BOOL pLinkable ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+      virtual HRESULT __stdcall Close (
+        /*[in]*/ enum vsSaveChanges SaveChanges ) = 0;
+      virtual HRESULT __stdcall get_Caption (
+        /*[out,retval]*/ BSTR * pbstrTitle ) = 0;
+      virtual HRESULT __stdcall put_Caption (
+        /*[in]*/ BSTR pbstrTitle ) = 0;
+      virtual HRESULT __stdcall SetSelectionContainer (
+        SAFEARRAY * * Objects ) = 0;
+      virtual HRESULT __stdcall get_IsFloating (
+        /*[out,retval]*/ VARIANT_BOOL * Floating ) = 0;
+      virtual HRESULT __stdcall put_IsFloating (
+        /*[in]*/ VARIANT_BOOL Floating ) = 0;
+      virtual HRESULT __stdcall get_AutoHides (
+        /*[out,retval]*/ VARIANT_BOOL * Hides ) = 0;
+      virtual HRESULT __stdcall put_AutoHides (
+        /*[in]*/ VARIANT_BOOL Hides ) = 0;
+      virtual HRESULT __stdcall SetTabPicture (
+        VARIANT Picture ) = 0;
+      virtual HRESULT __stdcall get_ContextAttributes (
+        /*[out,retval]*/ struct ContextAttributes * * ppVal ) = 0;
+};
+
+struct __declspec(uuid("f00ef34a-a654-4c1b-897a-585d5bcbb35a"))
+LinkedWindows : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * ppptReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Window * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Remove (
+        /*[in]*/ struct Window * Window ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ struct Window * Window ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+};
+
+struct __declspec(uuid("f47dc7e7-84b6-474f-bb91-631640aa0560"))
+TextBuffer : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * retval ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall AddFromString (
+        /*[in]*/ BSTR String,
+        /*[in]*/ long StartLine ) = 0;
+      virtual HRESULT __stdcall AddFromFile (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ long StartLine ) = 0;
+      virtual HRESULT __stdcall get_Lines (
+        /*[in]*/ long StartLine,
+        /*[in]*/ long Count,
+        /*[out,retval]*/ BSTR * String ) = 0;
+      virtual HRESULT __stdcall get_CountOfLines (
+        /*[out,retval]*/ long * CountOfLines ) = 0;
+      virtual HRESULT __stdcall DeleteLines (
+        /*[in]*/ long StartLine,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall Find (
+        /*[in]*/ BSTR Target,
+        /*[in,out]*/ long * StartLine,
+        /*[in,out]*/ long * StartColumn,
+        /*[in,out]*/ long * EndLine,
+        /*[in,out]*/ long * EndColumn,
+        /*[in]*/ VARIANT_BOOL WholeWord,
+        /*[in]*/ VARIANT_BOOL MatchCase,
+        /*[in]*/ VARIANT_BOOL PatternSearch,
+        /*[out,retval]*/ VARIANT_BOOL * pfFound ) = 0;
+};
+
+struct __declspec(uuid("17d12026-ba99-403e-a359-71fd1e5a72cd"))
+_WindowEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_WindowEvents (
+        /*[in]*/ struct Window * WindowFilter,
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+};
+
+struct __declspec(uuid("f6576203-fbce-477e-a66b-eda237bb68a7"))
+HTMLWindow : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_CurrentTab (
+        /*[out,retval]*/ enum vsHTMLTabs * pTab ) = 0;
+      virtual HRESULT __stdcall put_CurrentTab (
+        /*[in]*/ enum vsHTMLTabs pTab ) = 0;
+      virtual HRESULT __stdcall get_CurrentTabObject (
+        /*[out,retval]*/ IDispatch * * ppObj ) = 0;
+};
+
+struct __declspec(uuid("0b48100a-473e-433c-ab8f-66b9739ab620"))
+ProjectItem : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_IsDirty (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_IsDirty (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_FileNames (
+        /*[in]*/ short index,
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall SaveAs (
+        /*[in]*/ BSTR NewFileName,
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_FileCount (
+        /*[out,retval]*/ short * lpsReturn ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pbstrReturn ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        /*[in]*/ BSTR pbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct ProjectItems * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        /*[out,retval]*/ struct Properties * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * lpbstrFileName ) = 0;
+      virtual HRESULT __stdcall get_ProjectItems (
+        /*[out,retval]*/ struct ProjectItems * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_IsOpen (
+        /*[in]*/ BSTR ViewKind,
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall Open (
+        /*[in]*/ BSTR ViewKind,
+        /*[out,retval]*/ struct Window * * lppfReturn ) = 0;
+      virtual HRESULT __stdcall Remove ( ) = 0;
+      virtual HRESULT __stdcall ExpandView ( ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * ProjectItemModel ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_Saved (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_Saved (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_ConfigurationManager (
+        /*[out,retval]*/ struct ConfigurationManager * * ppConfigurationManager ) = 0;
+      virtual HRESULT __stdcall get_FileCodeModel (
+        /*[out,retval]*/ struct FileCodeModel * * ppFileCodeModel ) = 0;
+      virtual HRESULT __stdcall Save (
+        BSTR FileName ) = 0;
+      virtual HRESULT __stdcall get_Document (
+        /*[out,retval]*/ struct Document * * ppDocument ) = 0;
+      virtual HRESULT __stdcall get_SubProject (
+        /*[out,retval]*/ struct Project * * ppProject ) = 0;
+      virtual HRESULT __stdcall get_ContainingProject (
+        /*[out,retval]*/ struct Project * * ppProject ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+};
+
+struct __declspec(uuid("d5dbe57b-c074-4e95-b015-abeeaa391693"))
+ItemOperations : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall OpenFile (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ BSTR ViewKind,
+        /*[out,retval]*/ struct Window * * Window ) = 0;
+      virtual HRESULT __stdcall NewFile (
+        /*[in]*/ BSTR Item,
+        /*[in]*/ BSTR Name,
+        /*[in]*/ BSTR ViewKind,
+        /*[out,retval]*/ struct Window * * Window ) = 0;
+      virtual HRESULT __stdcall IsFileOpen (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ BSTR ViewKind,
+        /*[out,retval]*/ VARIANT_BOOL * pfRetval ) = 0;
+      virtual HRESULT __stdcall AddExistingItem (
+        /*[in]*/ BSTR FileName,
+        /*[out,retval]*/ struct ProjectItem * * ProjectItem ) = 0;
+      virtual HRESULT __stdcall AddNewItem (
+        /*[in]*/ BSTR Item,
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ struct ProjectItem * * ProjectItem ) = 0;
+      virtual HRESULT __stdcall Navigate (
+        /*[in]*/ BSTR URL,
+        /*[in]*/ enum vsNavigateOptions Options,
+        /*[out,retval]*/ struct Window * * Window ) = 0;
+      virtual HRESULT __stdcall get_PromptToSave (
+        /*[out,retval]*/ enum vsPromptResult * Saved ) = 0;
+};
+
+struct __declspec(uuid("8e2f1269-185e-43c7-8899-950ad2769ccf"))
+ProjectItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct ProjectItem * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * lppptReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * lpbstrFileName ) = 0;
+      virtual HRESULT __stdcall AddFromFile (
+        /*[in]*/ BSTR FileName,
+        /*[out,retval]*/ struct ProjectItem * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall AddFromTemplate (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ struct ProjectItem * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall AddFromDirectory (
+        /*[in]*/ BSTR Directory,
+        /*[out,retval]*/ struct ProjectItem * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_ContainingProject (
+        /*[out,retval]*/ struct Project * * ppProject ) = 0;
+      virtual HRESULT __stdcall AddFolder (
+        BSTR Name,
+        BSTR Kind,
+        /*[out,retval]*/ struct ProjectItem * * pProjectItem ) = 0;
+      virtual HRESULT __stdcall AddFromFileCopy (
+        BSTR FilePath,
+        /*[out,retval]*/ struct ProjectItem * * pProjectItem ) = 0;
+};
+
+struct __declspec(uuid("866311e6-c887-4143-9833-645f5b93f6f1"))
+Project : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstrName ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        /*[in]*/ BSTR lpbstrName ) = 0;
+      virtual HRESULT __stdcall get_FileName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_IsDirty (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_IsDirty (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Projects * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall SaveAs (
+        /*[in]*/ BSTR NewFileName ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * lpbstrFileName ) = 0;
+      virtual HRESULT __stdcall get_ProjectItems (
+        /*[out,retval]*/ struct ProjectItems * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        /*[out,retval]*/ struct Properties * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_UniqueName (
+        /*[out,retval]*/ BSTR * lpbstrFileName ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * ProjectModel ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_Saved (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_Saved (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_ConfigurationManager (
+        /*[out,retval]*/ struct ConfigurationManager * * ppConfigurationManager ) = 0;
+      virtual HRESULT __stdcall get_Globals (
+        /*[out,retval]*/ struct Globals * * ppGlobals ) = 0;
+      virtual HRESULT __stdcall Save (
+        BSTR FileName ) = 0;
+      virtual HRESULT __stdcall get_ParentProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * ppParentProjectItem ) = 0;
+      virtual HRESULT __stdcall get_CodeModel (
+        /*[out,retval]*/ struct CodeModel * * ppCodeModel ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+};
+
+struct __declspec(uuid("e3ec0add-31b3-461f-8303-8a5e6931257a"))
+Projects : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Project * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        /*[out,retval]*/ struct Properties * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+};
+
+struct __declspec(uuid("4cc8ccf5-a926-4646-b17f-b4940caed472"))
+Properties : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Property * * lplppReturn ) = 0;
+      virtual HRESULT __stdcall get_Application (
+        /*[out,retval]*/ IDispatch * * lppidReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * lppidReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+};
+
+struct __declspec(uuid("7b988e06-2581-485e-9322-04881e0600d0"))
+Property : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Value (
+        /*[out,retval]*/ VARIANT * lppvReturn ) = 0;
+      virtual HRESULT __stdcall put_Value (
+        /*[in]*/ VARIANT lppvReturn ) = 0;
+      virtual HRESULT __stdcall putref_Value (
+        /*[in]*/ VARIANT lppvReturn ) = 0;
+      virtual HRESULT __stdcall get_IndexedValue (
+        /*[in]*/ VARIANT Index1,
+        /*[in]*/ VARIANT Index2,
+        /*[in]*/ VARIANT Index3,
+        /*[in]*/ VARIANT Index4,
+        /*[out,retval]*/ VARIANT * Val ) = 0;
+      virtual HRESULT __stdcall put_IndexedValue (
+        /*[in]*/ VARIANT Index1,
+        /*[in]*/ VARIANT Index2,
+        /*[in]*/ VARIANT Index3,
+        /*[in]*/ VARIANT Index4,
+        /*[in]*/ VARIANT Val ) = 0;
+      virtual HRESULT __stdcall get_NumIndices (
+        /*[out,retval]*/ short * lpiRetVal ) = 0;
+      virtual HRESULT __stdcall get_Application (
+        /*[out,retval]*/ IDispatch * * lppidReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Properties * * lpppReturn ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Properties * * lpppReturn ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * lppunk ) = 0;
+      virtual HRESULT __stdcall putref_Object (
+        /*[in]*/ IUnknown * lppunk ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+};
+
+struct __declspec(uuid("9043fda1-345b-4364-900f-bc8598eb8e4f"))
+ConfigurationManager : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ppParent ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        BSTR Platform,
+        /*[out,retval]*/ struct Configuration * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall ConfigurationRow (
+        BSTR Name,
+        /*[out,retval]*/ struct Configurations * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddConfigurationRow (
+        BSTR NewName,
+        BSTR ExistingName,
+        /*[in]*/ VARIANT_BOOL Propagate,
+        /*[out,retval]*/ struct Configurations * * ppOut ) = 0;
+      virtual HRESULT __stdcall DeleteConfigurationRow (
+        BSTR Name ) = 0;
+      virtual HRESULT __stdcall get_ConfigurationRowNames (
+        /*[out,retval]*/ VARIANT * pNames ) = 0;
+      virtual HRESULT __stdcall Platform (
+        BSTR Name,
+        /*[out,retval]*/ struct Configurations * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddPlatform (
+        BSTR NewName,
+        BSTR ExistingName,
+        /*[in]*/ VARIANT_BOOL Propagate,
+        /*[out,retval]*/ struct Configurations * * ppOut ) = 0;
+      virtual HRESULT __stdcall DeletePlatform (
+        BSTR Name ) = 0;
+      virtual HRESULT __stdcall get_PlatformNames (
+        /*[out,retval]*/ VARIANT * pNames ) = 0;
+      virtual HRESULT __stdcall get_SupportedPlatforms (
+        /*[out,retval]*/ VARIANT * pPlatforms ) = 0;
+      virtual HRESULT __stdcall get_ActiveConfiguration (
+        /*[out,retval]*/ struct Configuration * * ppOut ) = 0;
+};
+
+struct __declspec(uuid("90813589-fe21-4aa4-a2e5-053fd274e980"))
+Configuration : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct ConfigurationManager * * ppConfigurationManager ) = 0;
+      virtual HRESULT __stdcall get_ConfigurationName (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_PlatformName (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ enum vsConfigurationType * pType ) = 0;
+      virtual HRESULT __stdcall get_Owner (
+        /*[out,retval]*/ IDispatch * * ppOwner ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        /*[out,retval]*/ struct Properties * * ppProperties ) = 0;
+      virtual HRESULT __stdcall get_IsBuildable (
+        /*[out,retval]*/ VARIANT_BOOL * pBuildable ) = 0;
+      virtual HRESULT __stdcall get_IsRunable (
+        /*[out,retval]*/ VARIANT_BOOL * pRunable ) = 0;
+      virtual HRESULT __stdcall get_IsDeployable (
+        /*[out,retval]*/ VARIANT_BOOL * pDeployable ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_OutputGroups (
+        /*[out,retval]*/ struct OutputGroups * * ppOutputGroups ) = 0;
+};
+
+struct __declspec(uuid("b6b4c8d6-4d27-43b9-b45c-52bd16b6ba38"))
+Configurations : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ppParent ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Configuration * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ enum vsConfigurationType * pType ) = 0;
+};
+
+struct __declspec(uuid("f9fa748e-e302-44cf-891b-e263189d585e"))
+OutputGroups : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Configuration * * ppConfiguration ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct OutputGroup * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+};
+
+struct __declspec(uuid("a3a80783-875f-435b-9639-e5ce888df737"))
+OutputGroup : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct OutputGroups * * ppOutputGroups ) = 0;
+      virtual HRESULT __stdcall get_FileNames (
+        /*[out,retval]*/ VARIANT * pNames ) = 0;
+      virtual HRESULT __stdcall get_FileCount (
+        /*[out,retval]*/ long * pCountNames ) = 0;
+      virtual HRESULT __stdcall get_DisplayName (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_CanonicalName (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_FileURLs (
+        /*[out,retval]*/ VARIANT * pURLs ) = 0;
+      virtual HRESULT __stdcall get_Description (
+        /*[out,retval]*/ BSTR * pDesc ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b4-0d4e-11d3-8997-00c04f688dde"))
+CodeModel : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Project * * pProj ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_CodeElements (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall CodeTypeFromFullName (
+        BSTR Name,
+        /*[out,retval]*/ struct CodeType * * ppCodeType ) = 0;
+      virtual HRESULT __stdcall AddNamespace (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall AddClass (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall AddInterface (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeInterface * * ppCodeInterface ) = 0;
+      virtual HRESULT __stdcall AddFunction (
+        BSTR Name,
+        VARIANT Location,
+        enum vsCMFunction Kind,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall AddVariable (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeVariable * * ppCodeVariable ) = 0;
+      virtual HRESULT __stdcall AddStruct (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeStruct * * ppCodeStruct ) = 0;
+      virtual HRESULT __stdcall AddEnum (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeEnum * * ppCodeEnum ) = 0;
+      virtual HRESULT __stdcall AddDelegate (
+        BSTR Name,
+        VARIANT Location,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeDelegate * * ppCodeDelegate ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        VARIANT Location,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall Remove (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall IsValidID (
+        BSTR Name,
+        /*[out,retval]*/ VARIANT_BOOL * pValid ) = 0;
+      virtual HRESULT __stdcall get_IsCaseSensitive (
+        /*[out,retval]*/ VARIANT_BOOL * pSensitive ) = 0;
+      virtual HRESULT __stdcall CreateCodeTypeRef (
+        VARIANT Type,
+        /*[out,retval]*/ struct CodeTypeRef * * ppCodeTypeRef ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b5-0d4e-11d3-8997-00c04f688dde"))
+CodeElements : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall Item (
+        VARIANT index,
+        /*[out,retval]*/ struct CodeElement * * ppCodeElement ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * CountOfCodeElements ) = 0;
+      virtual HRESULT __stdcall Reserved1 (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall CreateUniqueID (
+        /*[in]*/ BSTR Prefix,
+        /*[in,out]*/ BSTR * NewName,
+        /*[out,retval]*/ VARIANT_BOOL * pRootUnique ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b6-0d4e-11d3-8997-00c04f688dde"))
+CodeElement : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+};
+
+struct __declspec(uuid("7f59e94e-4939-40d2-9f7f-b7651c25905d"))
+TextPoint : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct TextDocument * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Line (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_LineCharOffset (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_AbsoluteCharOffset (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_DisplayColumn (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_AtEndOfDocument (
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_AtStartOfDocument (
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_AtEndOfLine (
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_AtStartOfLine (
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_LineLength (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+      virtual HRESULT __stdcall EqualTo (
+        /*[in]*/ struct TextPoint * Point,
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall LessThan (
+        /*[in]*/ struct TextPoint * Point,
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall GreaterThan (
+        /*[in]*/ struct TextPoint * Point,
+        /*[out,retval]*/ VARIANT_BOOL * lppaReturn ) = 0;
+      virtual HRESULT __stdcall TryToShow (
+        /*[in]*/ enum vsPaneShowHow How,
+        /*[in]*/ VARIANT PointOrCount,
+        /*[out,retval]*/ VARIANT_BOOL * pbResult ) = 0;
+      virtual HRESULT __stdcall get_CodeElement (
+        /*[in]*/ enum vsCMElement Scope,
+        /*[out,retval]*/ struct CodeElement * * ppResult ) = 0;
+      virtual HRESULT __stdcall CreateEditPoint (
+        /*[out,retval]*/ struct EditPoint * * lppaReturn ) = 0;
+};
+
+struct __declspec(uuid("42320454-626c-4dd0-9ecb-357c4f1966d8"))
+VirtualPoint : TextPoint
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_VirtualCharOffset (
+        /*[out,retval]*/ long * pOffset ) = 0;
+      virtual HRESULT __stdcall get_VirtualDisplayColumn (
+        /*[out,retval]*/ long * lppaReturn ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2be-0d4e-11d3-8997-00c04f688dde"))
+CodeAttribute : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Value (
+        /*[out,retval]*/ BSTR * pValue ) = 0;
+      virtual HRESULT __stdcall put_Value (
+        BSTR pValue ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+};
+
+struct __declspec(uuid("cb218890-1382-472b-9118-782700c88115"))
+TextDocument : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Document * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Selection (
+        /*[out,retval]*/ struct TextSelection * * ppSel ) = 0;
+      virtual HRESULT __stdcall ClearBookmarks ( ) = 0;
+      virtual HRESULT __stdcall MarkText (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall ReplacePattern (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ BSTR Replace,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in,out]*/ struct TextRanges * * Tags,
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall CreateEditPoint (
+        /*[in]*/ struct TextPoint * TextPoint,
+        /*[out,retval]*/ struct EditPoint * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * pStartPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * pEndPoint ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall put_Language (
+        /*[in]*/ BSTR pLanguage ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ BSTR * pType ) = 0;
+      virtual HRESULT __stdcall get_IndentSize (
+        /*[out,retval]*/ long * pSize ) = 0;
+      virtual HRESULT __stdcall get_TabSize (
+        /*[out,retval]*/ long * pSize ) = 0;
+      virtual HRESULT __stdcall ReplaceText (
+        /*[in]*/ BSTR FindText,
+        /*[in]*/ BSTR ReplaceText,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall PrintOut ( ) = 0;
+};
+
+struct __declspec(uuid("509b9955-7303-48c9-90d4-e165b974e6ba"))
+CommandWindow : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * pParent ) = 0;
+      virtual HRESULT __stdcall SendInput (
+        BSTR Command,
+        VARIANT_BOOL Execute ) = 0;
+      virtual HRESULT __stdcall OutputString (
+        BSTR Text ) = 0;
+      virtual HRESULT __stdcall Clear ( ) = 0;
+      virtual HRESULT __stdcall get_TextDocument (
+        /*[out,retval]*/ struct TextDocument * * ppTextDocument ) = 0;
+};
+
+struct __declspec(uuid("b3c38885-b288-44a8-b290-34fe63bf3c76"))
+_TextEditorEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_TextEditorEvents (
+        /*[in]*/ struct TextDocument * TextDocumentFilter,
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+};
+
+struct __declspec(uuid("63eb5c39-ca8f-498e-9a66-6dd4a27ac95b"))
+Document : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ BSTR * pKind ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Documents * * DocumentsObject ) = 0;
+      virtual HRESULT __stdcall get_ActiveWindow (
+        /*[out,retval]*/ struct Window * * pWindow ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_Path (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_ReadOnly (
+        /*[out,retval]*/ VARIANT_BOOL * pRetval ) = 0;
+      virtual HRESULT __stdcall get_Saved (
+        /*[out,retval]*/ VARIANT_BOOL * pRetval ) = 0;
+      virtual HRESULT __stdcall put_Saved (
+        /*[in]*/ VARIANT_BOOL pRetval ) = 0;
+      virtual HRESULT __stdcall get_Windows (
+        /*[out,retval]*/ struct Windows * * pWindows ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pRetval ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+      virtual HRESULT __stdcall Close (
+        /*[in]*/ enum vsSaveChanges Save ) = 0;
+      virtual HRESULT __stdcall NewWindow (
+        /*[out,retval]*/ struct Window * * pWindow ) = 0;
+      virtual HRESULT __stdcall Redo (
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall Undo (
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall Save (
+        /*[in]*/ BSTR FileName,
+        /*[out,retval]*/ enum vsSaveStatus * pStatus ) = 0;
+      virtual HRESULT __stdcall get_Selection (
+        /*[out,retval]*/ IDispatch * * SelectionObject ) = 0;
+      virtual HRESULT __stdcall Object (
+        /*[in]*/ BSTR ModelKind,
+        /*[out,retval]*/ IDispatch * * DataModelObject ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall PrintOut ( ) = 0;
+      virtual HRESULT __stdcall get_IndentSize (
+        /*[out,retval]*/ long * pSize ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall put_Language (
+        /*[in]*/ BSTR pLanguage ) = 0;
+      virtual HRESULT __stdcall put_ReadOnly (
+        /*[in]*/ VARIANT_BOOL pRetval ) = 0;
+      virtual HRESULT __stdcall get_TabSize (
+        /*[out,retval]*/ long * pSize ) = 0;
+      virtual HRESULT __stdcall ClearBookmarks ( ) = 0;
+      virtual HRESULT __stdcall MarkText (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ long Flags,
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall ReplaceText (
+        /*[in]*/ BSTR FindText,
+        /*[in]*/ BSTR ReplaceText,
+        /*[in]*/ long Flags,
+        /*[out,retval]*/ VARIANT_BOOL * pbRetVal ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ BSTR * pType ) = 0;
+};
+
+struct __declspec(uuid("9e2cf3ea-140f-413e-bd4b-7d46740cd2f4"))
+Documents : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Document * * DocumentObject ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * CountOfDocuments ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Kind,
+        /*[out,retval]*/ struct Document * * ppDocument ) = 0;
+      virtual HRESULT __stdcall CloseAll (
+        /*[in]*/ enum vsSaveChanges Save ) = 0;
+      virtual HRESULT __stdcall SaveAll ( ) = 0;
+      virtual HRESULT __stdcall Open (
+        BSTR PathName,
+        BSTR Kind,
+        VARIANT_BOOL ReadOnly,
+        /*[out,retval]*/ struct Document * * ppDocument ) = 0;
+};
+
+struct __declspec(uuid("134170f8-93b1-42dd-9f89-a2ac7010ba07"))
+Events : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_CommandBarEvents (
+        /*[in]*/ IDispatch * CommandBarControl,
+        /*[out,retval]*/ IDispatch * * prceNew ) = 0;
+      virtual HRESULT __stdcall get_CommandEvents (
+        /*[in]*/ BSTR Guid,
+        /*[in]*/ long ID,
+        /*[out,retval]*/ struct _CommandEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_SelectionEvents (
+        /*[out,retval]*/ struct _SelectionEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_SolutionEvents (
+        /*[out,retval]*/ struct _SolutionEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_BuildEvents (
+        /*[out,retval]*/ struct _BuildEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_WindowEvents (
+        /*[in]*/ struct Window * WindowFilter,
+        /*[out,retval]*/ struct _WindowEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_OutputWindowEvents (
+        /*[in]*/ BSTR Pane,
+        /*[out,retval]*/ struct _OutputWindowEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_FindEvents (
+        /*[out,retval]*/ struct _FindEvents * * ppFindEvents ) = 0;
+      virtual HRESULT __stdcall get_TaskListEvents (
+        /*[in]*/ BSTR Filter,
+        /*[out,retval]*/ struct _TaskListEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_DTEEvents (
+        /*[out,retval]*/ struct _DTEEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_DocumentEvents (
+        /*[in]*/ struct Document * Document,
+        /*[out,retval]*/ struct _DocumentEvents * * ppceNew ) = 0;
+      virtual HRESULT __stdcall get_SolutionItemsEvents (
+        /*[out,retval]*/ struct _ProjectItemsEvents * * ppeNew ) = 0;
+      virtual HRESULT __stdcall get_MiscFilesEvents (
+        /*[out,retval]*/ struct _ProjectItemsEvents * * ppeNew ) = 0;
+      virtual HRESULT __stdcall get_DebuggerEvents (
+        /*[out,retval]*/ struct _DebuggerEvents * * ppeNew ) = 0;
+      virtual HRESULT __stdcall get_TextEditorEvents (
+        /*[in]*/ struct TextDocument * TextDocumentFilter,
+        /*[out,retval]*/ struct _TextEditorEvents * * ppeNew ) = 0;
+      virtual HRESULT __stdcall GetObject (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ IDispatch * * ppObject ) = 0;
+};
+
+struct __declspec(uuid("3c536122-57b1-46de-ab34-acc524140093"))
+IVsExtensibility : IUnknown
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Properties (
+        /*[in]*/ struct ISupportVSProperties * pParent,
+        /*[in]*/ IDispatch * pdispPropObj,
+        /*[out]*/ struct Properties * * ppProperties ) = 0;
+      virtual HRESULT __stdcall RunWizardFile (
+        /*[in]*/ BSTR bstrWizFilename,
+        /*[in]*/ long hwndOwner,
+        /*[in]*/ SAFEARRAY * * vContextParams,
+        /*[out,retval]*/ enum wizardResult * pResult ) = 0;
+      virtual HRESULT __stdcall Get_TextBuffer (
+        /*[in]*/ IUnknown * pVsTextStream,
+        /*[in]*/ struct IExtensibleObjectSite * pParent,
+        /*[out,retval]*/ struct TextBuffer * * ppTextBuffer ) = 0;
+      virtual HRESULT __stdcall EnterAutomationFunction ( ) = 0;
+      virtual HRESULT __stdcall ExitAutomationFunction ( ) = 0;
+      virtual HRESULT __stdcall IsInAutomationFunction (
+        /*[out,retval]*/ long * pfInAutoFunc ) = 0;
+      virtual HRESULT __stdcall GetUserControl (
+        /*[out]*/ VARIANT_BOOL * fUserControl ) = 0;
+      virtual HRESULT __stdcall SetUserControl (
+        /*[in]*/ VARIANT_BOOL fUserControl ) = 0;
+      virtual HRESULT __stdcall SetUserControlUnlatched (
+        /*[in]*/ VARIANT_BOOL fUserControl ) = 0;
+      virtual HRESULT __stdcall LockServer (
+        /*[in]*/ VARIANT_BOOL __MIDL__IVsExtensibility0000 ) = 0;
+      virtual HRESULT __stdcall GetLockCount (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall TestForShutdown (
+        /*[out,retval]*/ VARIANT_BOOL * fShutdown ) = 0;
+      virtual HRESULT __stdcall GetGlobalsObject (
+        /*[in]*/ VARIANT ExtractFrom,
+        /*[out,retval]*/ struct Globals * * ppGlobals ) = 0;
+      virtual HRESULT __stdcall GetConfigMgr (
+        /*[in]*/ IUnknown * pIVsProject,
+        ULONG_PTR itemid,
+        /*[out,retval]*/ struct ConfigurationManager * * ppCfgMgr ) = 0;
+      virtual HRESULT __stdcall FireMacroReset ( ) = 0;
+      virtual HRESULT __stdcall GetDocumentFromDocCookie (
+        LONG_PTR lDocCookie,
+        /*[out,retval]*/ struct Document * * ppDoc ) = 0;
+      virtual HRESULT __stdcall IsMethodDisabled (
+        GUID * pGUID,
+        long dispid ) = 0;
+      virtual HRESULT __stdcall SetSuppressUI (
+        VARIANT_BOOL In ) = 0;
+      virtual HRESULT __stdcall GetSuppressUI (
+        VARIANT_BOOL * pOut ) = 0;
+};
+
+struct __declspec(uuid("dc5437f4-f114-11d2-aacf-00c04f688dde"))
+_DocumentEventsRoot : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DocumentEvents (
+        /*[in]*/ struct Document * WindowFilter,
+        /*[out,retval]*/ IDispatch * * ppDisp ) = 0;
+};
+
+struct __declspec(uuid("1fa0e135-399a-4d2c-a4fe-d21e2480f921"))
+TextSelection : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct TextDocument * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_AnchorPoint (
+        /*[out,retval]*/ struct VirtualPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall get_ActivePoint (
+        /*[out,retval]*/ struct VirtualPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall get_AnchorColumn (
+        /*[out,retval]*/ long * pColumn ) = 0;
+      virtual HRESULT __stdcall get_BottomLine (
+        /*[out,retval]*/ long * pLine ) = 0;
+      virtual HRESULT __stdcall get_BottomPoint (
+        /*[out,retval]*/ struct VirtualPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall get_CurrentColumn (
+        /*[out,retval]*/ long * pColumn ) = 0;
+      virtual HRESULT __stdcall get_CurrentLine (
+        /*[out,retval]*/ long * pLine ) = 0;
+      virtual HRESULT __stdcall get_IsEmpty (
+        /*[out,retval]*/ VARIANT_BOOL * pfEmpty ) = 0;
+      virtual HRESULT __stdcall get_IsActiveEndGreater (
+        /*[out,retval]*/ VARIANT_BOOL * pfGreater ) = 0;
+      virtual HRESULT __stdcall get_Text (
+        /*[out,retval]*/ BSTR * pText ) = 0;
+      virtual HRESULT __stdcall put_Text (
+        /*[in]*/ BSTR pText ) = 0;
+      virtual HRESULT __stdcall get_TopLine (
+        /*[out,retval]*/ long * pLine ) = 0;
+      virtual HRESULT __stdcall get_TopPoint (
+        /*[out,retval]*/ struct VirtualPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall ChangeCase (
+        /*[in]*/ enum vsCaseOptions How ) = 0;
+      virtual HRESULT __stdcall CharLeft (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall CharRight (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall ClearBookmark ( ) = 0;
+      virtual HRESULT __stdcall Collapse ( ) = 0;
+      virtual HRESULT __stdcall OutlineSection ( ) = 0;
+      virtual HRESULT __stdcall Copy ( ) = 0;
+      virtual HRESULT __stdcall Cut ( ) = 0;
+      virtual HRESULT __stdcall Paste ( ) = 0;
+      virtual HRESULT __stdcall Delete (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall DeleteLeft (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall DeleteWhitespace (
+        /*[in]*/ enum vsWhitespaceOptions Direction ) = 0;
+      virtual HRESULT __stdcall EndOfLine (
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall StartOfLine (
+        /*[in]*/ enum vsStartOfLineOptions Where,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall EndOfDocument (
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall StartOfDocument (
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall FindPattern (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in,out]*/ struct TextRanges * * Tags,
+        /*[out,retval]*/ VARIANT_BOOL * pfFound ) = 0;
+      virtual HRESULT __stdcall ReplacePattern (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ BSTR Replace,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in,out]*/ struct TextRanges * * Tags,
+        /*[out,retval]*/ VARIANT_BOOL * pfFound ) = 0;
+      virtual HRESULT __stdcall FindText (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[out,retval]*/ VARIANT_BOOL * pfFound ) = 0;
+      virtual HRESULT __stdcall ReplaceText (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ BSTR Replace,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[out,retval]*/ VARIANT_BOOL * pfFound ) = 0;
+      virtual HRESULT __stdcall GotoLine (
+        /*[in]*/ long Line,
+        /*[in]*/ VARIANT_BOOL Select ) = 0;
+      virtual HRESULT __stdcall Indent (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall Unindent (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall Insert (
+        /*[in]*/ BSTR Text,
+        /*[in]*/ long vsInsertFlagsCollapseToEndValue ) = 0;
+      virtual HRESULT __stdcall InsertFromFile (
+        /*[in]*/ BSTR File ) = 0;
+      virtual HRESULT __stdcall LineDown (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall LineUp (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall MoveToPoint (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall MoveToLineAndOffset (
+        /*[in]*/ long Line,
+        /*[in]*/ long Offset,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall MoveToAbsoluteOffset (
+        /*[in]*/ long Offset,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall NewLine (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall SetBookmark ( ) = 0;
+      virtual HRESULT __stdcall NextBookmark (
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall PreviousBookmark (
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall PadToColumn (
+        /*[in]*/ long Column ) = 0;
+      virtual HRESULT __stdcall SmartFormat ( ) = 0;
+      virtual HRESULT __stdcall SelectAll ( ) = 0;
+      virtual HRESULT __stdcall SelectLine ( ) = 0;
+      virtual HRESULT __stdcall SwapAnchor ( ) = 0;
+      virtual HRESULT __stdcall Tabify ( ) = 0;
+      virtual HRESULT __stdcall Untabify ( ) = 0;
+      virtual HRESULT __stdcall WordLeft (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall WordRight (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall get_TextPane (
+        /*[out,retval]*/ struct TextPane * * ppPane ) = 0;
+      virtual HRESULT __stdcall get_Mode (
+        /*[out,retval]*/ enum vsSelectionMode * pMode ) = 0;
+      virtual HRESULT __stdcall put_Mode (
+        /*[in]*/ enum vsSelectionMode pMode ) = 0;
+      virtual HRESULT __stdcall get_TextRanges (
+        /*[out,retval]*/ struct TextRanges * * ppRanges ) = 0;
+      virtual HRESULT __stdcall Backspace (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall Cancel ( ) = 0;
+      virtual HRESULT __stdcall DestructiveInsert (
+        /*[in]*/ BSTR Text ) = 0;
+      virtual HRESULT __stdcall MoveTo (
+        /*[in]*/ long Line,
+        /*[in]*/ long Column,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall MoveToDisplayColumn (
+        /*[in]*/ long Line,
+        /*[in]*/ long Column,
+        /*[in]*/ VARIANT_BOOL Extend ) = 0;
+      virtual HRESULT __stdcall PageUp (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall PageDown (
+        /*[in]*/ VARIANT_BOOL Extend,
+        /*[in]*/ long Count ) = 0;
+};
+
+struct __declspec(uuid("b6422e9c-9efd-4f87-bddc-c7fd8f2fd303"))
+TextRanges : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct TextDocument * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct TextRange * * ppRange ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+};
+
+struct __declspec(uuid("c1ffe800-028b-4475-a907-14f51f19bb7d"))
+EditPoint : TextPoint
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall CharLeft (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall CharRight (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall EndOfLine ( ) = 0;
+      virtual HRESULT __stdcall StartOfLine ( ) = 0;
+      virtual HRESULT __stdcall EndOfDocument ( ) = 0;
+      virtual HRESULT __stdcall StartOfDocument ( ) = 0;
+      virtual HRESULT __stdcall WordLeft (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall WordRight (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall LineUp (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall LineDown (
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall MoveToPoint (
+        /*[in]*/ struct TextPoint * Point ) = 0;
+      virtual HRESULT __stdcall MoveToLineAndOffset (
+        /*[in]*/ long Line,
+        /*[in]*/ long Offset ) = 0;
+      virtual HRESULT __stdcall MoveToAbsoluteOffset (
+        /*[in]*/ long Offset ) = 0;
+      virtual HRESULT __stdcall SetBookmark ( ) = 0;
+      virtual HRESULT __stdcall ClearBookmark ( ) = 0;
+      virtual HRESULT __stdcall NextBookmark (
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall PreviousBookmark (
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall PadToColumn (
+        /*[in]*/ long Column ) = 0;
+      virtual HRESULT __stdcall Insert (
+        /*[in]*/ BSTR Text ) = 0;
+      virtual HRESULT __stdcall InsertFromFile (
+        /*[in]*/ BSTR File ) = 0;
+      virtual HRESULT __stdcall GetText (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[out,retval]*/ BSTR * pbstrText ) = 0;
+      virtual HRESULT __stdcall GetLines (
+        /*[in]*/ long Start,
+        /*[in]*/ long ExclusiveEnd,
+        /*[out,retval]*/ BSTR * pbstrText ) = 0;
+      virtual HRESULT __stdcall Copy (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[in]*/ VARIANT_BOOL Append ) = 0;
+      virtual HRESULT __stdcall Cut (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[in]*/ VARIANT_BOOL Append ) = 0;
+      virtual HRESULT __stdcall Delete (
+        /*[in]*/ VARIANT PointOrCount ) = 0;
+      virtual HRESULT __stdcall Paste ( ) = 0;
+      virtual HRESULT __stdcall ReadOnly (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[out,retval]*/ VARIANT_BOOL * lfResult ) = 0;
+      virtual HRESULT __stdcall FindPattern (
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in,out]*/ struct EditPoint * * EndPoint,
+        /*[in,out]*/ struct TextRanges * * Tags,
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall ReplacePattern (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ BSTR Pattern,
+        /*[in]*/ BSTR Replace,
+        /*[in]*/ long vsFindOptionsValue,
+        /*[in,out]*/ struct TextRanges * * Tags,
+        /*[out,retval]*/ VARIANT_BOOL * pbFound ) = 0;
+      virtual HRESULT __stdcall Indent (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall Unindent (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall SmartFormat (
+        /*[in]*/ struct TextPoint * Point ) = 0;
+      virtual HRESULT __stdcall OutlineSection (
+        /*[in]*/ VARIANT PointOrCount ) = 0;
+      virtual HRESULT __stdcall ReplaceText (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[in]*/ BSTR Text,
+        /*[in]*/ long Flags ) = 0;
+      virtual HRESULT __stdcall ChangeCase (
+        /*[in]*/ VARIANT PointOrCount,
+        /*[in]*/ enum vsCaseOptions How ) = 0;
+      virtual HRESULT __stdcall DeleteWhitespace (
+        /*[in]*/ enum vsWhitespaceOptions Direction ) = 0;
+};
+
+struct __declspec(uuid("72767524-e3b3-43d0-bb46-bbe1d556a9ff"))
+TextRange : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct TextRanges * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct EditPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct EditPoint * * ppPoint ) = 0;
+};
+
+struct __declspec(uuid("0a3bf283-05f8-4669-9bcb-a84b6423349a"))
+TextPane : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct TextPanes * * ppPanes ) = 0;
+      virtual HRESULT __stdcall get_Window (
+        /*[out,retval]*/ struct Window * * ppWin ) = 0;
+      virtual HRESULT __stdcall get_Height (
+        /*[out,retval]*/ long * pHeight ) = 0;
+      virtual HRESULT __stdcall get_Width (
+        /*[out,retval]*/ long * pWidth ) = 0;
+      virtual HRESULT __stdcall get_Selection (
+        /*[out,retval]*/ struct TextSelection * * ppSel ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppPoint ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+      virtual HRESULT __stdcall IsVisible (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ VARIANT PointOrCount,
+        /*[out,retval]*/ VARIANT_BOOL * pbResult ) = 0;
+      virtual HRESULT __stdcall TryToShow (
+        /*[in]*/ struct TextPoint * Point,
+        /*[in]*/ enum vsPaneShowHow How,
+        /*[in]*/ VARIANT PointOrCount,
+        /*[out,retval]*/ VARIANT_BOOL * pbResult ) = 0;
+};
+
+struct __declspec(uuid("d9013d31-3652-46b2-a25a-29a881b9f86b"))
+TextPanes : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct TextWindow * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct TextPane * * ppPane ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+};
+
+struct __declspec(uuid("2fc54dc9-922b-44eb-8cc0-ba182584dc4b"))
+TextWindow : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * ppParent ) = 0;
+      virtual HRESULT __stdcall get_Selection (
+        /*[out,retval]*/ struct TextSelection * * ppSel ) = 0;
+      virtual HRESULT __stdcall get_ActivePane (
+        /*[out,retval]*/ struct TextPane * * ppPane ) = 0;
+      virtual HRESULT __stdcall get_Panes (
+        /*[out,retval]*/ struct TextPanes * * ppPanes ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b7-0d4e-11d3-8997-00c04f688dde"))
+CodeType : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2bc-0d4e-11d3-8997-00c04f688dde"))
+CodeTypeRef : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_TypeKind (
+        /*[out,retval]*/ enum vsCMTypeRef * pType ) = 0;
+      virtual HRESULT __stdcall get_CodeType (
+        /*[out,retval]*/ struct CodeType * * ppCodeType ) = 0;
+      virtual HRESULT __stdcall put_CodeType (
+        struct CodeType * ppCodeType ) = 0;
+      virtual HRESULT __stdcall get_ElementType (
+        /*[out,retval]*/ struct CodeTypeRef * * ppCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall put_ElementType (
+        struct CodeTypeRef * ppCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_AsString (
+        /*[out,retval]*/ BSTR * pAsString ) = 0;
+      virtual HRESULT __stdcall get_AsFullName (
+        /*[out,retval]*/ BSTR * pAsFullName ) = 0;
+      virtual HRESULT __stdcall get_Rank (
+        /*[out,retval]*/ long * pRank ) = 0;
+      virtual HRESULT __stdcall put_Rank (
+        long pRank ) = 0;
+      virtual HRESULT __stdcall CreateArrayType (
+        long Rank,
+        /*[out,retval]*/ struct CodeTypeRef * * ppTypeRef ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2bd-0d4e-11d3-8997-00c04f688dde"))
+CodeParameter : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct CodeElement * * ppCodeElement ) = 0;
+      virtual HRESULT __stdcall put_Type (
+        struct CodeTypeRef * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ struct CodeTypeRef * * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b9-0d4e-11d3-8997-00c04f688dde"))
+CodeFunction : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_FunctionKind (
+        /*[out,retval]*/ enum vsCMFunction * ppFunctionKind ) = 0;
+      virtual HRESULT __stdcall get_Prototype (
+        /*[in]*/ long Flags,
+        /*[out,retval]*/ BSTR * pFullName ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ struct CodeTypeRef * * ppCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall put_Type (
+        struct CodeTypeRef * ppCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Parameters (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess Access ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * Access ) = 0;
+      virtual HRESULT __stdcall get_IsOverloaded (
+        /*[out,retval]*/ VARIANT_BOOL * pvbOverloaded ) = 0;
+      virtual HRESULT __stdcall get_IsShared (
+        /*[out,retval]*/ VARIANT_BOOL * Shared ) = 0;
+      virtual HRESULT __stdcall put_IsShared (
+        VARIANT_BOOL Shared ) = 0;
+      virtual HRESULT __stdcall get_MustImplement (
+        /*[out,retval]*/ VARIANT_BOOL * MustImplement ) = 0;
+      virtual HRESULT __stdcall put_MustImplement (
+        VARIANT_BOOL MustImplement ) = 0;
+      virtual HRESULT __stdcall get_Overloads (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddParameter (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeParameter * * ppCodeParameter ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveParameter (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_CanOverride (
+        /*[out,retval]*/ VARIANT_BOOL * pCanOverride ) = 0;
+      virtual HRESULT __stdcall put_CanOverride (
+        VARIANT_BOOL pCanOverride ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2ba-0d4e-11d3-8997-00c04f688dde"))
+CodeVariable : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_InitExpression (
+        /*[out,retval]*/ VARIANT * pExpr ) = 0;
+      virtual HRESULT __stdcall put_InitExpression (
+        VARIANT pExpr ) = 0;
+      virtual HRESULT __stdcall get_Prototype (
+        /*[in]*/ long Flags,
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Type (
+        struct CodeTypeRef * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ struct CodeTypeRef * * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess Access ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * Access ) = 0;
+      virtual HRESULT __stdcall get_IsConstant (
+        /*[out,retval]*/ VARIANT_BOOL * pIsConstant ) = 0;
+      virtual HRESULT __stdcall put_IsConstant (
+        VARIANT_BOOL pIsConstant ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall get_IsShared (
+        /*[out,retval]*/ VARIANT_BOOL * pShared ) = 0;
+      virtual HRESULT __stdcall put_IsShared (
+        VARIANT_BOOL pShared ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2b8-0d4e-11d3-8997-00c04f688dde"))
+CodeNamespace : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddNamespace (
+        BSTR Name,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall AddClass (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall AddInterface (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeInterface * * ppCodeInterface ) = 0;
+      virtual HRESULT __stdcall AddStruct (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeStruct * * ppCodeStruct ) = 0;
+      virtual HRESULT __stdcall AddEnum (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeEnum * * ppCodeEnum ) = 0;
+      virtual HRESULT __stdcall AddDelegate (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeDelegate * * ppCodeDelegate ) = 0;
+      virtual HRESULT __stdcall Remove (
+        VARIANT Element ) = 0;
+};
+
+struct __declspec(uuid("b1f42512-91cd-4d3a-8b25-a317d8032b24"))
+CodeEnum : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall AddMember (
+        BSTR Name,
+        VARIANT Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeVariable * * ppCodeElements ) = 0;
+};
+
+struct __declspec(uuid("b1f42514-91cd-4d3a-8b25-a317d8032b24"))
+CodeClass : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_ImplementedInterfaces (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_IsAbstract (
+        /*[out,retval]*/ VARIANT_BOOL * pIsAbstract ) = 0;
+      virtual HRESULT __stdcall put_IsAbstract (
+        VARIANT_BOOL pIsAbstract ) = 0;
+      virtual HRESULT __stdcall AddImplementedInterface (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeInterface * * ppCodeInterface ) = 0;
+      virtual HRESULT __stdcall AddFunction (
+        BSTR Name,
+        enum vsCMFunction Kind,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall AddVariable (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeVariable * * ppCodeVariable ) = 0;
+      virtual HRESULT __stdcall AddProperty (
+        BSTR GetterName,
+        BSTR PutterName,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeProperty * * ppCodeProperty ) = 0;
+      virtual HRESULT __stdcall AddClass (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall AddStruct (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeStruct * * ppCodeStruct ) = 0;
+      virtual HRESULT __stdcall AddEnum (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeEnum * * ppCodeEnum ) = 0;
+      virtual HRESULT __stdcall AddDelegate (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeDelegate * * ppCodeDelegate ) = 0;
+      virtual HRESULT __stdcall RemoveInterface (
+        VARIANT Element ) = 0;
+};
+
+struct __declspec(uuid("0cfbc2bb-0d4e-11d3-8997-00c04f688dde"))
+CodeProperty : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct CodeClass * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Prototype (
+        /*[in]*/ long Flags,
+        /*[out,retval]*/ BSTR * pFullName ) = 0;
+      virtual HRESULT __stdcall put_Type (
+        struct CodeTypeRef * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ struct CodeTypeRef * * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Getter (
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall put_Getter (
+        struct CodeFunction * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall get_Setter (
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall put_Setter (
+        struct CodeFunction * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess Access ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * Access ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppMembers ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+};
+
+struct __declspec(uuid("b1f42510-91cd-4d3a-8b25-a317d8032b24"))
+CodeInterface : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall AddFunction (
+        BSTR Name,
+        enum vsCMFunction Kind,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall AddProperty (
+        BSTR GetterName,
+        BSTR PutterName,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeProperty * * ppCodeProperty ) = 0;
+};
+
+struct __declspec(uuid("b1f42513-91cd-4d3a-8b25-a317d8032b24"))
+CodeDelegate : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_BaseClass (
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall get_Prototype (
+        long Flags,
+        /*[out,retval]*/ BSTR * pPrototype ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ struct CodeTypeRef * * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall put_Type (
+        struct CodeTypeRef * pCodeTypeRef ) = 0;
+      virtual HRESULT __stdcall get_Parameters (
+        /*[out,retval]*/ struct CodeElements * * ppParameters ) = 0;
+      virtual HRESULT __stdcall AddParameter (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeParameter * * ppCodeParameter ) = 0;
+      virtual HRESULT __stdcall RemoveParameter (
+        VARIANT Element ) = 0;
+};
+
+struct __declspec(uuid("b1f42511-91cd-4d3a-8b25-a317d8032b24"))
+CodeStruct : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct CodeElements * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        BSTR pVal ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Kind (
+        /*[out,retval]*/ enum vsCMElement * pCodeEltKind ) = 0;
+      virtual HRESULT __stdcall get_IsCodeType (
+        /*[out,retval]*/ VARIANT_BOOL * pIsCodeType ) = 0;
+      virtual HRESULT __stdcall get_InfoLocation (
+        /*[out,retval]*/ enum vsCMInfoLocation * pInfoLocation ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_StartPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_EndPoint (
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall GetStartPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall GetEndPoint (
+        /*[in]*/ enum vsCMPart Part,
+        /*[out,retval]*/ struct TextPoint * * ppTextPoint ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ParentObject ) = 0;
+      virtual HRESULT __stdcall get_Namespace (
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall get_Bases (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_Members (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall put_Access (
+        enum vsCMAccess pAccess ) = 0;
+      virtual HRESULT __stdcall get_Access (
+        /*[out,retval]*/ enum vsCMAccess * pAccess ) = 0;
+      virtual HRESULT __stdcall get_Attributes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_DocComment (
+        /*[out,retval]*/ BSTR * pDocComment ) = 0;
+      virtual HRESULT __stdcall put_DocComment (
+        BSTR pDocComment ) = 0;
+      virtual HRESULT __stdcall get_Comment (
+        /*[out,retval]*/ BSTR * pComment ) = 0;
+      virtual HRESULT __stdcall put_Comment (
+        BSTR pComment ) = 0;
+      virtual HRESULT __stdcall AddBase (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeElement * * ppOut ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall RemoveBase (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall RemoveMember (
+        VARIANT Element ) = 0;
+      virtual HRESULT __stdcall get_IsDerivedFrom (
+        BSTR FullName,
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_DerivedTypes (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_ImplementedInterfaces (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall get_IsAbstract (
+        /*[out,retval]*/ VARIANT_BOOL * pIsAbstract ) = 0;
+      virtual HRESULT __stdcall put_IsAbstract (
+        VARIANT_BOOL pIsAbstract ) = 0;
+      virtual HRESULT __stdcall AddImplementedInterface (
+        VARIANT Base,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeInterface * * ppCodeInterface ) = 0;
+      virtual HRESULT __stdcall AddFunction (
+        BSTR Name,
+        enum vsCMFunction Kind,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall AddVariable (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeVariable * * ppCodeVariable ) = 0;
+      virtual HRESULT __stdcall AddProperty (
+        BSTR GetterName,
+        BSTR PutterName,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        VARIANT Location,
+        /*[out,retval]*/ struct CodeProperty * * ppCodeProperty ) = 0;
+      virtual HRESULT __stdcall AddClass (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall AddStruct (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeStruct * * ppCodeStruct ) = 0;
+      virtual HRESULT __stdcall AddEnum (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeEnum * * ppCodeEnum ) = 0;
+      virtual HRESULT __stdcall AddDelegate (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeDelegate * * ppCodeDelegate ) = 0;
+      virtual HRESULT __stdcall RemoveInterface (
+        VARIANT Element ) = 0;
+};
+
+struct __declspec(uuid("ed1a3f99-4477-11d3-89bf-00c04f688dde"))
+FileCodeModel : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct ProjectItem * * pProjItem ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * pLanguage ) = 0;
+      virtual HRESULT __stdcall get_CodeElements (
+        /*[out,retval]*/ struct CodeElements * * ppCodeElements ) = 0;
+      virtual HRESULT __stdcall CodeElementFromPoint (
+        struct TextPoint * Point,
+        enum vsCMElement Scope,
+        /*[out,retval]*/ struct CodeElement * * ppCodeElement ) = 0;
+      virtual HRESULT __stdcall AddNamespace (
+        BSTR Name,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeNamespace * * ppCodeNamespace ) = 0;
+      virtual HRESULT __stdcall AddClass (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeClass * * ppCodeClass ) = 0;
+      virtual HRESULT __stdcall AddInterface (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeInterface * * ppCodeInterface ) = 0;
+      virtual HRESULT __stdcall AddFunction (
+        BSTR Name,
+        enum vsCMFunction Kind,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeFunction * * ppCodeFunction ) = 0;
+      virtual HRESULT __stdcall AddVariable (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeVariable * * ppCodeVariable ) = 0;
+      virtual HRESULT __stdcall AddAttribute (
+        BSTR Name,
+        BSTR Value,
+        VARIANT Position,
+        /*[out,retval]*/ struct CodeAttribute * * ppCodeAttribute ) = 0;
+      virtual HRESULT __stdcall AddStruct (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        VARIANT ImplementedInterfaces,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeStruct * * ppCodeStruct ) = 0;
+      virtual HRESULT __stdcall AddEnum (
+        BSTR Name,
+        VARIANT Position,
+        VARIANT Bases,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeEnum * * ppCodeEnum ) = 0;
+      virtual HRESULT __stdcall AddDelegate (
+        BSTR Name,
+        VARIANT Type,
+        VARIANT Position,
+        enum vsCMAccess Access,
+        /*[out,retval]*/ struct CodeDelegate * * ppCodeDelegate ) = 0;
+      virtual HRESULT __stdcall Remove (
+        VARIANT Element ) = 0;
+};
+
+struct __declspec(uuid("33c5ebb8-244e-449d-9cee-fad70a774e59"))
+ContextAttributes : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        VARIANT index,
+        /*[out,retval]*/ struct ContextAttribute * * ppVal ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+      virtual HRESULT __stdcall Add (
+        BSTR AttributeName,
+        BSTR AttributeValue,
+        enum vsContextAttributeType Type,
+        /*[out,retval]*/ struct ContextAttribute * * ppVal ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ enum vsContextAttributes * Type ) = 0;
+      virtual HRESULT __stdcall get_HighPriorityAttributes (
+        /*[out,retval]*/ struct ContextAttributes * * ppVal ) = 0;
+      virtual HRESULT __stdcall Refresh ( ) = 0;
+};
+
+struct __declspec(uuid("1a6e2cb3-b897-42eb-96be-ff0fdb65db2f"))
+ContextAttribute : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct ContextAttributes * * ppCollection ) = 0;
+      virtual HRESULT __stdcall get_Values (
+        /*[out,retval]*/ VARIANT * pVal ) = 0;
+      virtual HRESULT __stdcall Remove ( ) = 0;
+};
+
+struct __declspec(uuid("53a87fa1-ce93-48bf-958b-c6da793c5028"))
+AddIn : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Description (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall put_Description (
+        /*[in]*/ BSTR lpbstr ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct AddIns * * lppaddins ) = 0;
+      virtual HRESULT __stdcall get_ProgID (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall get_Guid (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall get_Connected (
+        /*[out,retval]*/ VARIANT_BOOL * lpfConnect ) = 0;
+      virtual HRESULT __stdcall put_Connected (
+        /*[in]*/ VARIANT_BOOL lpfConnect ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * lppdisp ) = 0;
+      virtual HRESULT __stdcall put_Object (
+        /*[in]*/ IDispatch * lppdisp ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall Remove ( ) = 0;
+      virtual HRESULT __stdcall get_SatelliteDllPath (
+        /*[out,retval]*/ BSTR * pbstrPath ) = 0;
+};
+
+struct __declspec(uuid("50590801-d13e-4404-80c2-5ca30a4d0ee8"))
+AddIns : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct AddIn * * lppaddin ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Update ( ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall Add (
+        BSTR ProgID,
+        BSTR Description,
+        BSTR Name,
+        VARIANT_BOOL Connected,
+        /*[out,retval]*/ struct AddIn * * __MIDL__AddIns0000 ) = 0;
+};
+
+struct __declspec(uuid("ffc9dfc4-61ca-4b0c-83c2-0703a24f5c16"))
+OutputWindowPane : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct OutputWindowPanes * * pOutputWindowPanes ) = 0;
+      virtual HRESULT __stdcall get_Guid (
+        /*[out,retval]*/ BSTR * pGUID ) = 0;
+      virtual HRESULT __stdcall OutputString (
+        /*[in]*/ BSTR Text ) = 0;
+      virtual HRESULT __stdcall ForceItemsToTaskList ( ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+      virtual HRESULT __stdcall Clear ( ) = 0;
+      virtual HRESULT __stdcall OutputTaskItemString (
+        /*[in]*/ BSTR Text,
+        /*[in]*/ enum vsTaskPriority Priority,
+        /*[in]*/ BSTR SubCategory,
+        /*[in]*/ enum vsTaskIcon Icon,
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ long Line,
+        /*[in]*/ BSTR Description,
+        /*[in]*/ VARIANT_BOOL Force ) = 0;
+      virtual HRESULT __stdcall get_TextDocument (
+        /*[out,retval]*/ struct TextDocument * * pDocument ) = 0;
+};
+
+struct __declspec(uuid("b02cf62a-9470-4308-a521-9675fba395ab"))
+OutputWindowPanes : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct OutputWindow * * pOutputWindow ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ struct OutputWindowPane * * pOutputWindowPane ) = 0;
+      virtual HRESULT __stdcall Item (
+        VARIANT index,
+        /*[out,retval]*/ struct OutputWindowPane * * pOutputWindowPane ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+};
+
+struct __declspec(uuid("eab0a63d-c3a8-496e-9acf-a82cef6a43b3"))
+OutputWindow : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * pParent ) = 0;
+      virtual HRESULT __stdcall get_OutputWindowPanes (
+        /*[out,retval]*/ struct OutputWindowPanes * * pOutputWindowPanes ) = 0;
+      virtual HRESULT __stdcall get_ActivePane (
+        /*[out,retval]*/ struct OutputWindowPane * * pOutputWindowPane ) = 0;
+};
+
+struct __declspec(uuid("58e4d419-6b8c-4c63-92de-70161cd95890"))
+TaskItem : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct TaskItems * * pTaskItems ) = 0;
+      virtual HRESULT __stdcall get_Category (
+        /*[out,retval]*/ BSTR * pCategory ) = 0;
+      virtual HRESULT __stdcall get_SubCategory (
+        /*[out,retval]*/ BSTR * pSubCategory ) = 0;
+      virtual HRESULT __stdcall get_Priority (
+        /*[out,retval]*/ enum vsTaskPriority * pPriority ) = 0;
+      virtual HRESULT __stdcall put_Priority (
+        /*[in]*/ enum vsTaskPriority pPriority ) = 0;
+      virtual HRESULT __stdcall get_Description (
+        /*[out,retval]*/ BSTR * pDescription ) = 0;
+      virtual HRESULT __stdcall put_Description (
+        /*[in]*/ BSTR pDescription ) = 0;
+      virtual HRESULT __stdcall get_FileName (
+        /*[out,retval]*/ BSTR * pFileName ) = 0;
+      virtual HRESULT __stdcall put_FileName (
+        /*[in]*/ BSTR pFileName ) = 0;
+      virtual HRESULT __stdcall get_IsSettable (
+        /*[in]*/ enum vsTaskListColumn Column,
+        /*[out,retval]*/ VARIANT_BOOL * pSettable ) = 0;
+      virtual HRESULT __stdcall get_Line (
+        /*[out,retval]*/ long * pLine ) = 0;
+      virtual HRESULT __stdcall put_Line (
+        /*[in]*/ long pLine ) = 0;
+      virtual HRESULT __stdcall get_Displayed (
+        /*[out,retval]*/ VARIANT_BOOL * pDisplayed ) = 0;
+      virtual HRESULT __stdcall get_Checked (
+        /*[out,retval]*/ VARIANT_BOOL * pChecked ) = 0;
+      virtual HRESULT __stdcall put_Checked (
+        /*[in]*/ VARIANT_BOOL pChecked ) = 0;
+      virtual HRESULT __stdcall Navigate ( ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall Select ( ) = 0;
+};
+
+struct __declspec(uuid("4b51103d-513c-4773-b56a-354d0928fd04"))
+TaskItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct TaskList * * pTaskList ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct TaskItem * * pTaskItem ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Category,
+        /*[in]*/ BSTR SubCategory,
+        /*[in]*/ BSTR Description,
+        /*[in]*/ enum vsTaskPriority Priority,
+        /*[in]*/ VARIANT Icon,
+        /*[in]*/ VARIANT_BOOL Checkable,
+        /*[in]*/ BSTR File,
+        /*[in]*/ long Line,
+        /*[in]*/ VARIANT_BOOL CanUserDelete,
+        /*[in]*/ VARIANT_BOOL FlushItem,
+        /*[out,retval]*/ struct TaskItem * * pTaskItem ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall ForceItemsToTaskList ( ) = 0;
+};
+
+struct __declspec(uuid("4e4f0569-e16a-4da1-92de-10882a4ddd8c"))
+TaskList : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_DefaultCommentToken (
+        /*[out,retval]*/ BSTR * pbstrToken ) = 0;
+      virtual HRESULT __stdcall get_TaskItems (
+        /*[out,retval]*/ struct TaskItems * * pTaskItems ) = 0;
+      virtual HRESULT __stdcall get_SelectedItems (
+        /*[out,retval]*/ VARIANT * Selections ) = 0;
+};
+
+struct __declspec(uuid("5c5a0070-f396-4e37-a82a-1b767e272df9"))
+Process : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Attach ( ) = 0;
+      virtual HRESULT __stdcall Detach (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall Break (
+        /*[in]*/ VARIANT_BOOL WaitForBreakMode ) = 0;
+      virtual HRESULT __stdcall Terminate (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall get_ProcessID (
+        /*[out,retval]*/ long * ID ) = 0;
+      virtual HRESULT __stdcall get_Programs (
+        /*[out,retval]*/ struct Programs * * Programs ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Processes * * Processes ) = 0;
+};
+
+struct __declspec(uuid("dc6a118a-bbab-11d2-8ad1-00c04f79e479"))
+Programs : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Program * * Program ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("6a38d87c-bba0-11d2-8ad1-00c04f79e479"))
+Program : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall get_Process (
+        /*[out,retval]*/ struct Process * * Process ) = 0;
+      virtual HRESULT __stdcall get_Threads (
+        /*[out,retval]*/ struct Threads * * Threads ) = 0;
+      virtual HRESULT __stdcall get_IsBeingDebugged (
+        /*[out,retval]*/ VARIANT_BOOL * IsBeingDebugged ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Programs * * Programs ) = 0;
+};
+
+struct __declspec(uuid("6aa23fb4-bba1-11d2-8ad1-00c04f79e479"))
+Threads : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ Thread * * Thread ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("9407f466-bba1-11d2-8ad1-00c04f79e479"))
+Thread : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Freeze ( ) = 0;
+      virtual HRESULT __stdcall Thaw ( ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall get_SuspendCount (
+        /*[out,retval]*/ long * Count ) = 0;
+      virtual HRESULT __stdcall get_ID (
+        /*[out,retval]*/ long * ID ) = 0;
+      virtual HRESULT __stdcall get_StackFrames (
+        /*[out,retval]*/ struct StackFrames * * StackFrames ) = 0;
+      virtual HRESULT __stdcall get_Program (
+        /*[out,retval]*/ struct Program * * Program ) = 0;
+      virtual HRESULT __stdcall get_IsAlive (
+        /*[out,retval]*/ VARIANT_BOOL * IsAlive ) = 0;
+      virtual HRESULT __stdcall get_Priority (
+        /*[out,retval]*/ BSTR * Priority ) = 0;
+      virtual HRESULT __stdcall get_Location (
+        /*[out,retval]*/ BSTR * Location ) = 0;
+      virtual HRESULT __stdcall get_IsFrozen (
+        /*[out,retval]*/ VARIANT_BOOL * IsFrozen ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Threads * * Threads ) = 0;
+};
+
+struct __declspec(uuid("4ed85664-bba2-11d2-8ad1-00c04f79e479"))
+StackFrames : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct StackFrame * * StackFrame ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("1342d0d8-bba3-11d2-8ad1-00c04f79e479"))
+StackFrame : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * Language ) = 0;
+      virtual HRESULT __stdcall get_FunctionName (
+        /*[out,retval]*/ BSTR * FunctionName ) = 0;
+      virtual HRESULT __stdcall get_ReturnType (
+        /*[out,retval]*/ BSTR * ReturnType ) = 0;
+      virtual HRESULT __stdcall get_Locals (
+        /*[out,retval]*/ struct Expressions * * Expressions ) = 0;
+      virtual HRESULT __stdcall get_Arguments (
+        /*[out,retval]*/ struct Expressions * * Expressions ) = 0;
+      virtual HRESULT __stdcall get_Module (
+        /*[out,retval]*/ BSTR * Module ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ Thread * * Thread ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct StackFrames * * StackFrames ) = 0;
+};
+
+struct __declspec(uuid("2685337a-bb9e-11d2-8ad1-00c04f79e479"))
+Expressions : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Expression * * Expression ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("27adc812-bb07-11d2-8ad1-00c04f79e479"))
+Expression : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ BSTR * Type ) = 0;
+      virtual HRESULT __stdcall get_DataMembers (
+        /*[out,retval]*/ struct Expressions * * Expressions ) = 0;
+      virtual HRESULT __stdcall get_Value (
+        /*[out,retval]*/ BSTR * Value ) = 0;
+      virtual HRESULT __stdcall put_Value (
+        /*[in]*/ BSTR Value ) = 0;
+      virtual HRESULT __stdcall get_IsValidValue (
+        /*[out,retval]*/ VARIANT_BOOL * ValidValue ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Expressions * * Expressions ) = 0;
+};
+
+struct __declspec(uuid("338fb9a0-bae5-11d2-8ad1-00c04f79e479"))
+Debugger : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall GetExpression (
+        /*[in]*/ BSTR ExpressionText,
+        /*[in]*/ VARIANT_BOOL UseAutoExpandRules,
+        /*[in]*/ long Timeout,
+        /*[out,retval]*/ struct Expression * * Expression ) = 0;
+      virtual HRESULT __stdcall DetachAll ( ) = 0;
+      virtual HRESULT __stdcall StepInto (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall StepOver (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall StepOut (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall Go (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall Break (
+        /*[in]*/ VARIANT_BOOL WaitForBreakMode ) = 0;
+      virtual HRESULT __stdcall Stop (
+        /*[in]*/ VARIANT_BOOL WaitForDesignMode ) = 0;
+      virtual HRESULT __stdcall SetNextStatement ( ) = 0;
+      virtual HRESULT __stdcall RunToCursor (
+        /*[in]*/ VARIANT_BOOL WaitForBreakOrEnd ) = 0;
+      virtual HRESULT __stdcall ExecuteStatement (
+        /*[in]*/ BSTR Statement,
+        /*[in]*/ long Timeout,
+        /*[in]*/ VARIANT_BOOL TreatAsExpression ) = 0;
+      virtual HRESULT __stdcall get_Breakpoints (
+        /*[out,retval]*/ struct Breakpoints * * Breakpoints ) = 0;
+      virtual HRESULT __stdcall get_Languages (
+        /*[out,retval]*/ struct Languages * * Languages ) = 0;
+      virtual HRESULT __stdcall get_CurrentMode (
+        /*[out,retval]*/ enum dbgDebugMode * Mode ) = 0;
+      virtual HRESULT __stdcall get_CurrentProcess (
+        /*[out,retval]*/ struct Process * * Process ) = 0;
+      virtual HRESULT __stdcall put_CurrentProcess (
+        /*[in]*/ struct Process * Process ) = 0;
+      virtual HRESULT __stdcall get_CurrentProgram (
+        /*[out,retval]*/ struct Program * * Program ) = 0;
+      virtual HRESULT __stdcall put_CurrentProgram (
+        /*[in]*/ struct Program * Program ) = 0;
+      virtual HRESULT __stdcall get_CurrentThread (
+        /*[out,retval]*/ Thread * * Thread ) = 0;
+      virtual HRESULT __stdcall put_CurrentThread (
+        /*[in]*/ Thread * Thread ) = 0;
+      virtual HRESULT __stdcall get_CurrentStackFrame (
+        /*[out,retval]*/ struct StackFrame * * StackFrame ) = 0;
+      virtual HRESULT __stdcall put_CurrentStackFrame (
+        /*[in]*/ struct StackFrame * StackFrame ) = 0;
+      virtual HRESULT __stdcall get_HexDisplayMode (
+        /*[out,retval]*/ VARIANT_BOOL * HexModeOn ) = 0;
+      virtual HRESULT __stdcall put_HexDisplayMode (
+        /*[in]*/ VARIANT_BOOL HexModeOn ) = 0;
+      virtual HRESULT __stdcall get_HexInputMode (
+        /*[out,retval]*/ VARIANT_BOOL * HexModeOn ) = 0;
+      virtual HRESULT __stdcall put_HexInputMode (
+        /*[in]*/ VARIANT_BOOL HexModeOn ) = 0;
+      virtual HRESULT __stdcall get_LastBreakReason (
+        /*[out,retval]*/ enum dbgEventReason * Reason ) = 0;
+      virtual HRESULT __stdcall get_BreakpointLastHit (
+        /*[out,retval]*/ struct Breakpoint * * Breakpoint ) = 0;
+      virtual HRESULT __stdcall get_AllBreakpointsLastHit (
+        /*[out,retval]*/ struct Breakpoints * * Breakpoints ) = 0;
+      virtual HRESULT __stdcall get_DebuggedProcesses (
+        /*[out,retval]*/ struct Processes * * Processes ) = 0;
+      virtual HRESULT __stdcall get_LocalProcesses (
+        /*[out,retval]*/ struct Processes * * Processes ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall TerminateAll ( ) = 0;
+};
+
+struct __declspec(uuid("9f379969-5eac-4a54-b2bc-6946cffb56ef"))
+Processes : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Process * * Process ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("25968106-bafb-11d2-8ad1-00c04f79e479"))
+Breakpoints : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Breakpoint * * Breakpoint ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Function,
+        /*[in]*/ BSTR File,
+        /*[in]*/ long Line,
+        /*[in]*/ long Column,
+        /*[in]*/ BSTR Condition,
+        /*[in]*/ enum dbgBreakpointConditionType ConditionType,
+        /*[in]*/ BSTR Language,
+        /*[in]*/ BSTR Data,
+        /*[in]*/ long DataCount,
+        /*[in]*/ BSTR Address,
+        /*[in]*/ long HitCount,
+        /*[in]*/ enum dbgHitCountType HitCountType,
+        /*[out,retval]*/ struct Breakpoints * * Breakpoints ) = 0;
+};
+
+struct __declspec(uuid("11c5114c-bb00-11d2-8ad1-00c04f79e479"))
+Breakpoint : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall get_Type (
+        /*[out,retval]*/ enum dbgBreakpointType * Type ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        /*[in]*/ BSTR Name ) = 0;
+      virtual HRESULT __stdcall get_LocationType (
+        /*[out,retval]*/ enum dbgBreakpointLocationType * LocationType ) = 0;
+      virtual HRESULT __stdcall get_FunctionName (
+        /*[out,retval]*/ BSTR * FunctionName ) = 0;
+      virtual HRESULT __stdcall get_FunctionLineOffset (
+        /*[out,retval]*/ long * Offset ) = 0;
+      virtual HRESULT __stdcall get_FunctionColumnOffset (
+        /*[out,retval]*/ long * Offset ) = 0;
+      virtual HRESULT __stdcall get_File (
+        /*[out,retval]*/ BSTR * File ) = 0;
+      virtual HRESULT __stdcall get_FileLine (
+        /*[out,retval]*/ long * Line ) = 0;
+      virtual HRESULT __stdcall get_FileColumn (
+        /*[out,retval]*/ long * Column ) = 0;
+      virtual HRESULT __stdcall get_ConditionType (
+        /*[out,retval]*/ enum dbgBreakpointConditionType * ConditionType ) = 0;
+      virtual HRESULT __stdcall get_Condition (
+        /*[out,retval]*/ BSTR * Condition ) = 0;
+      virtual HRESULT __stdcall get_Language (
+        /*[out,retval]*/ BSTR * Language ) = 0;
+      virtual HRESULT __stdcall get_HitCountType (
+        /*[out,retval]*/ enum dbgHitCountType * HitCountType ) = 0;
+      virtual HRESULT __stdcall get_HitCountTarget (
+        /*[out,retval]*/ long * HitCountTarget ) = 0;
+      virtual HRESULT __stdcall get_Enabled (
+        /*[out,retval]*/ VARIANT_BOOL * Enabled ) = 0;
+      virtual HRESULT __stdcall put_Enabled (
+        /*[in]*/ VARIANT_BOOL Enabled ) = 0;
+      virtual HRESULT __stdcall get_Tag (
+        /*[out,retval]*/ BSTR * Tag ) = 0;
+      virtual HRESULT __stdcall put_Tag (
+        /*[in]*/ BSTR Tag ) = 0;
+      virtual HRESULT __stdcall get_CurrentHits (
+        /*[out,retval]*/ long * CurHitCount ) = 0;
+      virtual HRESULT __stdcall get_Program (
+        /*[out,retval]*/ struct Program * * Program ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Breakpoint * * Breakpoint ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Breakpoints * * Breakpoints ) = 0;
+      virtual HRESULT __stdcall get_Children (
+        /*[out,retval]*/ struct Breakpoints * * Breakpoints ) = 0;
+      virtual HRESULT __stdcall ResetHitCount ( ) = 0;
+};
+
+struct __declspec(uuid("a4f4246c-c131-11d2-8ad1-00c04f79e479"))
+Languages : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Language * * Language ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTEObject ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * Count ) = 0;
+};
+
+struct __declspec(uuid("b3ccfa68-c145-11d2-8ad1-00c04f79e479"))
+Language : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * DTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Debugger * * Debugger ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Languages * * Languages ) = 0;
+};
+
+struct __declspec(uuid("26f6cc4b-7a48-4e4d-8af5-9e960232e05f"))
+_Solution : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct Project * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall get_FileName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall SaveAs (
+        /*[in]*/ BSTR FileName ) = 0;
+      virtual HRESULT __stdcall AddFromTemplate (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ BSTR Destination,
+        /*[in]*/ BSTR ProjectName,
+        /*[in]*/ VARIANT_BOOL Exclusive,
+        /*[out,retval]*/ struct Project * * IppptReturn ) = 0;
+      virtual HRESULT __stdcall AddFromFile (
+        /*[in]*/ BSTR FileName,
+        /*[in]*/ VARIANT_BOOL Exclusive,
+        /*[out,retval]*/ struct Project * * IppptReturn ) = 0;
+      virtual HRESULT __stdcall Open (
+        /*[in]*/ BSTR FileName ) = 0;
+      virtual HRESULT __stdcall Close (
+        /*[in]*/ VARIANT_BOOL SaveFirst ) = 0;
+      virtual HRESULT __stdcall get_Properties (
+        /*[out,retval]*/ struct Properties * * ppObject ) = 0;
+      virtual HRESULT __stdcall get_IsDirty (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_IsDirty (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall Remove (
+        /*[in]*/ struct Project * proj ) = 0;
+      virtual HRESULT __stdcall get_TemplatePath (
+        /*[in]*/ BSTR ProjectType,
+        /*[out,retval]*/ BSTR * lpbstrPath ) = 0;
+      virtual HRESULT __stdcall get_FullName (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_Saved (
+        /*[out,retval]*/ VARIANT_BOOL * lpfReturn ) = 0;
+      virtual HRESULT __stdcall put_Saved (
+        /*[in]*/ VARIANT_BOOL lpfReturn ) = 0;
+      virtual HRESULT __stdcall get_Globals (
+        /*[out,retval]*/ struct Globals * * ppGlobals ) = 0;
+      virtual HRESULT __stdcall get_AddIns (
+        /*[out,retval]*/ struct AddIns * * ppAddIns ) = 0;
+      virtual HRESULT __stdcall get_Extender (
+        /*[in]*/ BSTR ExtenderName,
+        /*[out,retval]*/ IDispatch * * Extender ) = 0;
+      virtual HRESULT __stdcall get_ExtenderNames (
+        /*[out,retval]*/ VARIANT * ExtenderNames ) = 0;
+      virtual HRESULT __stdcall get_ExtenderCATID (
+        /*[out,retval]*/ BSTR * pRetval ) = 0;
+      virtual HRESULT __stdcall get_IsOpen (
+        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
+      virtual HRESULT __stdcall get_SolutionBuild (
+        /*[out,retval]*/ struct SolutionBuild * * ppSolutionBuild ) = 0;
+      virtual HRESULT __stdcall Create (
+        BSTR Destination,
+        BSTR Name ) = 0;
+      virtual HRESULT __stdcall get_Projects (
+        /*[out,retval]*/ struct Projects * * ppProjects ) = 0;
+      virtual HRESULT __stdcall FindProjectItem (
+        BSTR FileName,
+        /*[out,retval]*/ struct ProjectItem * * ppProjectItem ) = 0;
+      virtual HRESULT __stdcall ProjectItemsTemplatePath (
+        BSTR ProjectKind,
+        /*[out,retval]*/ BSTR * pFullPath ) = 0;
+};
+
+struct __declspec(uuid("a3c1c40c-9218-4d4c-9daa-075f64f6922c"))
+SolutionBuild : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _Solution * * ppSolution ) = 0;
+      virtual HRESULT __stdcall get_ActiveConfiguration (
+        /*[out,retval]*/ struct SolutionConfiguration * * ppSolutionConfiguration ) = 0;
+      virtual HRESULT __stdcall get_BuildDependencies (
+        /*[out,retval]*/ struct BuildDependencies * * ppBuildDependencies ) = 0;
+      virtual HRESULT __stdcall get_BuildState (
+        /*[out,retval]*/ enum vsBuildState * pvsBuildState ) = 0;
+      virtual HRESULT __stdcall get_LastBuildInfo (
+        /*[out,retval]*/ long * pBuiltSuccessfully ) = 0;
+      virtual HRESULT __stdcall put_StartupProjects (
+        /*[in]*/ VARIANT pProject ) = 0;
+      virtual HRESULT __stdcall get_StartupProjects (
+        /*[out,retval]*/ VARIANT * pProject ) = 0;
+      virtual HRESULT __stdcall Build (
+        /*[in]*/ VARIANT_BOOL WaitForBuildToFinish ) = 0;
+      virtual HRESULT __stdcall Debug ( ) = 0;
+      virtual HRESULT __stdcall Deploy (
+        /*[in]*/ VARIANT_BOOL WaitForDeployToFinish ) = 0;
+      virtual HRESULT __stdcall Clean (
+        /*[in]*/ VARIANT_BOOL WaitForCleanToFinish ) = 0;
+      virtual HRESULT __stdcall Run ( ) = 0;
+      virtual HRESULT __stdcall get_SolutionConfigurations (
+        /*[out,retval]*/ struct SolutionConfigurations * * ppSolutionConfigurations ) = 0;
+      virtual HRESULT __stdcall BuildProject (
+        BSTR SolutionConfiguration,
+        BSTR ProjectUniqueName,
+        VARIANT_BOOL WaitForBuildToFinish ) = 0;
+};
+
+struct __declspec(uuid("60aaad75-cb8d-4c62-9959-24d6a6a50de7"))
+SolutionConfiguration : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct SolutionConfigurations * * ppSolutionConfigurations ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pVal ) = 0;
+      virtual HRESULT __stdcall get_SolutionContexts (
+        /*[out,retval]*/ struct SolutionContexts * * ppOut ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+};
+
+struct __declspec(uuid("23e78ed7-c9e1-462d-8bc6-366003486ed9"))
+SolutionConfigurations : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct SolutionConfiguration * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct SolutionBuild * * ppBuild ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR NewName,
+        /*[in]*/ BSTR ExistingName,
+        /*[in]*/ VARIANT_BOOL Propagate,
+        /*[out,retval]*/ struct SolutionConfiguration * * ppSolutionConfiguration ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+};
+
+struct __declspec(uuid("0685b546-fb84-4917-ab98-98d40f892d61"))
+SolutionContexts : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct SolutionConfiguration * * ppSolutionConfiguration ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct SolutionContext * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+};
+
+struct __declspec(uuid("fc6a1a82-9c8a-47bb-a046-6e965df5a99b"))
+SolutionContext : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct SolutionContexts * * ppSolutionContexts ) = 0;
+      virtual HRESULT __stdcall get_ProjectName (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_ConfigurationName (
+        /*[out,retval]*/ BSTR * pConfigurationName ) = 0;
+      virtual HRESULT __stdcall put_ConfigurationName (
+        /*[in]*/ BSTR pConfigurationName ) = 0;
+      virtual HRESULT __stdcall get_PlatformName (
+        /*[out,retval]*/ BSTR * pPlatformName ) = 0;
+      virtual HRESULT __stdcall get_ShouldBuild (
+        /*[out,retval]*/ VARIANT_BOOL * pPlatformName ) = 0;
+      virtual HRESULT __stdcall put_ShouldBuild (
+        /*[in]*/ VARIANT_BOOL pPlatformName ) = 0;
+      virtual HRESULT __stdcall get_ShouldDeploy (
+        /*[out,retval]*/ VARIANT_BOOL * pPlatformName ) = 0;
+      virtual HRESULT __stdcall put_ShouldDeploy (
+        /*[in]*/ VARIANT_BOOL pPlatformName ) = 0;
+};
+
+struct __declspec(uuid("ead260eb-1e5b-450a-b628-4cfada11b4a1"))
+BuildDependencies : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct SolutionBuild * * ppSolutionBuild ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * Enumerator ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct BuildDependency * * ppOut ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+};
+
+struct __declspec(uuid("9c5ceaac-062f-4434-a2ed-78ab4d6134fe"))
+BuildDependency : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct BuildDependencies * * ppBuildDependencies ) = 0;
+      virtual HRESULT __stdcall get_Project (
+        /*[out,retval]*/ struct Project * * ppProject ) = 0;
+      virtual HRESULT __stdcall get_RequiredProjects (
+        /*[out,retval]*/ VARIANT * pProjects ) = 0;
+      virtual HRESULT __stdcall AddProject (
+        BSTR ProjectUniqueName ) = 0;
+      virtual HRESULT __stdcall RemoveProject (
+        BSTR ProjectUniqueName ) = 0;
+      virtual HRESULT __stdcall RemoveAllProjects ( ) = 0;
+};
+
+struct __declspec(uuid("e6b96cac-b8c7-40ae-b705-5c81878c4a9e"))
+Commands : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Guid,
+        /*[in]*/ long ID,
+        /*[in]*/ VARIANT * Control ) = 0;
+      virtual HRESULT __stdcall Raise (
+        /*[in]*/ BSTR Guid,
+        /*[in]*/ long ID,
+        /*[in,out]*/ VARIANT * CustomIn,
+        /*[in,out]*/ VARIANT * CustomOut ) = 0;
+      virtual HRESULT __stdcall CommandInfo (
+        /*[in]*/ IDispatch * CommandBarControl,
+        /*[out]*/ BSTR * Guid,
+        /*[out]*/ long * ID ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[in]*/ long ID,
+        /*[out,retval]*/ struct Command * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall AddNamedCommand (
+        /*[in]*/ struct AddIn * AddInInstance,
+        /*[in]*/ BSTR Name,
+        /*[in]*/ BSTR ButtonText,
+        /*[in]*/ BSTR Tooltip,
+        /*[in]*/ VARIANT_BOOL MSOButton,
+        /*[in]*/ long Bitmap,
+        /*[in]*/ SAFEARRAY * * ContextUIGUIDs,
+        /*[in]*/ long vsCommandDisabledFlagsValue,
+        /*[out,retval]*/ struct Command * * pVal ) = 0;
+      virtual HRESULT __stdcall AddCommandBar (
+        /*[in]*/ BSTR Name,
+        /*[in]*/ enum vsCommandBarType Type,
+        /*[in]*/ IDispatch * CommandBarParent,
+        /*[in]*/ long Position,
+        /*[out,retval]*/ IDispatch * * pVal ) = 0;
+      virtual HRESULT __stdcall RemoveCommandBar (
+        /*[in]*/ IDispatch * CommandBar ) = 0;
+};
+
+struct __declspec(uuid("5fe10fb0-91a1-4e55-baaa-eccae5cceb94"))
+Command : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct Commands * * lppcReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_Guid (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+      virtual HRESULT __stdcall get_ID (
+        /*[out,retval]*/ long * lReturn ) = 0;
+      virtual HRESULT __stdcall get_IsAvailable (
+        /*[out,retval]*/ VARIANT_BOOL * pAvail ) = 0;
+      virtual HRESULT __stdcall AddControl (
+        /*[in]*/ IDispatch * Owner,
+        /*[in]*/ long Position,
+        /*[out,retval]*/ IDispatch * * pCommandBarControl ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall get_Bindings (
+        /*[out,retval]*/ VARIANT * pVar ) = 0;
+      virtual HRESULT __stdcall put_Bindings (
+        VARIANT pVar ) = 0;
+      virtual HRESULT __stdcall get_LocalizedName (
+        /*[out,retval]*/ BSTR * lpbstr ) = 0;
+};
+
+struct __declspec(uuid("6caa67cf-43ae-4184-aaab-0200ddf6b240"))
+SelectedItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct SelectedItem * * lplppReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppaReturn ) = 0;
+      virtual HRESULT __stdcall get_MultiSelect (
+        /*[out,retval]*/ VARIANT_BOOL * pfMultiSelect ) = 0;
+      virtual HRESULT __stdcall get_SelectionContainer (
+        /*[out,retval]*/ struct SelectionContainer * * lppdispSelContainer ) = 0;
+};
+
+struct __declspec(uuid("049d2cdf-3731-4cb6-a233-be97bce922d3"))
+SelectedItem : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct SelectedItems * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_Project (
+        /*[out,retval]*/ struct Project * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_ProjectItem (
+        /*[out,retval]*/ struct ProjectItem * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * lpbstrReturn ) = 0;
+      virtual HRESULT __stdcall get_InfoCount (
+        /*[out,retval]*/ short * lpnCount ) = 0;
+      virtual HRESULT __stdcall get_Info (
+        /*[in]*/ short index,
+        /*[out,retval]*/ VARIANT * lpbstrReturn ) = 0;
+};
+
+struct __declspec(uuid("02273422-8dd4-4a9f-8a8b-d70443d510f4"))
+SelectionContainer : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ IDispatch * * lplppReturn ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * lplReturn ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct SelectedItems * * lppReturn ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * lppReturn ) = 0;
+};
+
+struct __declspec(uuid("e577442a-98e1-46c5-bd2e-d25807ec81ce"))
+WindowConfigurations : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * ppEnum ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct WindowConfiguration * * pWindowConfiguration ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct _DTE * * pParent ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ struct WindowConfiguration * * pWindowConfiguration ) = 0;
+      virtual HRESULT __stdcall get_ActiveConfigurationName (
+        /*[out,retval]*/ BSTR * pbstrName ) = 0;
+};
+
+struct __declspec(uuid("41d02413-8a67-4c28-a980-ad7539ed415d"))
+WindowConfiguration : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct WindowConfigurations * * pWindowConfigurations ) = 0;
+      virtual HRESULT __stdcall Apply (
+        /*[in]*/ VARIANT_BOOL FromCustomViews ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall Update ( ) = 0;
+};
+
+struct __declspec(uuid("56fcd5af-7f17-4c5c-aa8d-ae2bb2ddbf38"))
+ToolBox : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * pParent ) = 0;
+      virtual HRESULT __stdcall get_ActiveTab (
+        /*[out,retval]*/ struct ToolBoxTab * * pToolBoxTab ) = 0;
+      virtual HRESULT __stdcall get_ToolBoxTabs (
+        /*[out,retval]*/ struct ToolBoxTabs * * pToolBoxTabs ) = 0;
+};
+
+struct __declspec(uuid("ce2def9e-3387-4bf2-967b-a1f7f70df325"))
+ToolBoxTab : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pName ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        /*[in]*/ BSTR pName ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct ToolBoxTabs * * pToolBoxTabs ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall Activate ( ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall get_ToolBoxItems (
+        /*[out,retval]*/ struct ToolBoxItems * * pToolBoxItems ) = 0;
+      virtual HRESULT __stdcall get_ListView (
+        /*[out,retval]*/ VARIANT_BOOL * pListView ) = 0;
+      virtual HRESULT __stdcall put_ListView (
+        /*[in]*/ VARIANT_BOOL pListView ) = 0;
+};
+
+struct __declspec(uuid("cf177b52-4f2f-42a0-8da3-ce78679a0d2d"))
+ToolBoxTabs : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        VARIANT index,
+        /*[out,retval]*/ struct ToolBoxTab * * pItem ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct ToolBox * * pParent ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Name,
+        /*[out,retval]*/ struct ToolBoxTab * * pToolBoxTabs ) = 0;
+};
+
+struct __declspec(uuid("395c7dfb-f158-431c-8f43-dda83b4ef54e"))
+ToolBoxItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * lppiuReturn ) = 0;
+      virtual HRESULT __stdcall Item (
+        VARIANT index,
+        /*[out,retval]*/ struct ToolBoxItem * * pItem ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct ToolBoxTab * * pParent ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Add (
+        /*[in]*/ BSTR Name,
+        /*[in]*/ VARIANT Data,
+        /*[in]*/ enum vsToolBoxItemFormat Format,
+        /*[out,retval]*/ struct ToolBoxItem * * pToolBoxItem ) = 0;
+      virtual HRESULT __stdcall get_SelectedItem (
+        /*[out,retval]*/ struct ToolBoxItem * * pToolBoxItem ) = 0;
+};
+
+struct __declspec(uuid("46538d1b-4d81-4002-8bb4-dbdb65babb23"))
+ToolBoxItem : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * Name ) = 0;
+      virtual HRESULT __stdcall put_Name (
+        /*[in]*/ BSTR Name ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct ToolBoxItems * * pToolBoxItems ) = 0;
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * pDTE ) = 0;
+      virtual HRESULT __stdcall Delete ( ) = 0;
+      virtual HRESULT __stdcall Select ( ) = 0;
+};
+
+struct __declspec(uuid("fbd0d024-09cd-4d9f-9e2b-cacd628426a5"))
+UIHierarchyItem : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Collection (
+        /*[out,retval]*/ struct UIHierarchyItems * * ppUIHierarchyItems ) = 0;
+      virtual HRESULT __stdcall get_Name (
+        /*[out,retval]*/ BSTR * pbstrName ) = 0;
+      virtual HRESULT __stdcall get_UIHierarchyItems (
+        /*[out,retval]*/ struct UIHierarchyItems * * ppUIHierarchyItems ) = 0;
+      virtual HRESULT __stdcall get_Object (
+        /*[out,retval]*/ IDispatch * * ppDispatch ) = 0;
+      virtual HRESULT __stdcall Select (
+        /*[in]*/ enum vsUISelectionType How ) = 0;
+      virtual HRESULT __stdcall get_IsSelected (
+        /*[out,retval]*/ VARIANT_BOOL * pfSelected ) = 0;
+};
+
+struct __declspec(uuid("db8406b0-a916-449c-a277-bb04028f4394"))
+UIHierarchyItems : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ IDispatch * * ppDispatch ) = 0;
+      virtual HRESULT __stdcall get_Count (
+        /*[out,retval]*/ long * pCount ) = 0;
+      virtual HRESULT __stdcall Item (
+        /*[in]*/ VARIANT index,
+        /*[out,retval]*/ struct UIHierarchyItem * * ppUIHierarchyItem ) = 0;
+      virtual HRESULT __stdcall get_Expanded (
+        /*[out,retval]*/ VARIANT_BOOL * pfExpanded ) = 0;
+      virtual HRESULT __stdcall put_Expanded (
+        /*[in]*/ VARIANT_BOOL pfExpanded ) = 0;
+      virtual HRESULT __stdcall _NewEnum (
+        /*[out,retval]*/ IUnknown * * ppUnknown ) = 0;
+};
+
+struct __declspec(uuid("72a2a2ef-c209-408c-a377-76871774adb7"))
+UIHierarchy : IDispatch
+{
+    //
+    // Raw methods provided by interface
+    //
+
+      virtual HRESULT __stdcall get_DTE (
+        /*[out,retval]*/ struct _DTE * * ppDTE ) = 0;
+      virtual HRESULT __stdcall get_Parent (
+        /*[out,retval]*/ struct Window * * ppWin ) = 0;
+      virtual HRESULT __stdcall get_UIHierarchyItems (
+        /*[out,retval]*/ struct UIHierarchyItems * * ppUIHierarchyItems ) = 0;
+      virtual HRESULT __stdcall get_SelectedItems (
+        /*[out,retval]*/ VARIANT * pvarSel ) = 0;
+      virtual HRESULT __stdcall GetItem (
+        /*[in]*/ BSTR Names,
+        /*[out,retval]*/ struct UIHierarchyItem * * ppUIHierarchyItem ) = 0;
+      virtual HRESULT __stdcall SelectUp (
+        /*[in]*/ enum vsUISelectionType How,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall SelectDown (
+        /*[in]*/ enum vsUISelectionType How,
+        /*[in]*/ long Count ) = 0;
+      virtual HRESULT __stdcall DoDefaultAction ( ) = 0;
+};
+
+//
+// Named GUID constants initializations
+//
+
+extern "C" const GUID __declspec(selectany) LIBID_EnvDTE =
+    {0x80cc9f66,0xe7d8,0x4ddd,{0x85,0xb6,0xd9,0xe6,0xcd,0x0e,0x93,0xe2}};
+extern "C" const GUID __declspec(selectany) CLSID_DTE =
+    {0x3c9cfe1e,0x389f,0x4118,{0x9f,0xad,0x36,0x53,0x85,0x19,0x03,0x29}};
+extern "C" const GUID __declspec(selectany) IID_Globals =
+    {0xe68a3e0e,0xb435,0x4dde,{0x86,0xb7,0xf5,0xad,0xef,0xc1,0x9d,0xf2}};
+extern "C" const GUID __declspec(selectany) CLSID_CommandEvents =
+    {0x1ded92b5,0x9a46,0x4b29,{0x93,0xef,0xb5,0xe0,0x70,0x16,0x65,0x9e}};
+extern "C" const GUID __declspec(selectany) IID__CommandEvents =
+    {0xa79fc678,0x0d0a,0x496a,{0xb9,0xdc,0x0d,0x5b,0x9e,0x1c,0xa9,0xfc}};
+extern "C" const GUID __declspec(selectany) DIID__dispCommandEvents =
+    {0xff2d5c12,0xfeea,0x11d0,{0xbb,0xc8,0x00,0xa0,0xc9,0x0f,0x27,0x44}};
+extern "C" const GUID __declspec(selectany) CLSID_SelectionEvents =
+    {0xaf37511e,0x9e9d,0x4234,{0xa5,0xa1,0x75,0x84,0xd2,0x90,0xe0,0x61}};
+extern "C" const GUID __declspec(selectany) IID__SelectionEvents =
+    {0xeb6783db,0x1819,0x496d,{0x84,0xa4,0x3c,0xff,0x88,0x30,0x10,0xf6}};
+extern "C" const GUID __declspec(selectany) DIID__dispSelectionEvents =
+    {0xdeeb28b3,0x23e6,0x11d1,{0xae,0x5c,0x00,0xa0,0xc9,0x0f,0x26,0xf4}};
+extern "C" const GUID __declspec(selectany) CLSID_SolutionEvents =
+    {0x88ac98c7,0xb38c,0x404b,{0xbd,0x86,0xd2,0xa4,0xf2,0xe8,0x9d,0xca}};
+extern "C" const GUID __declspec(selectany) IID__SolutionEvents =
+    {0xbf8bbf37,0x5415,0x46a9,{0x94,0x0d,0x59,0x4c,0xad,0x9d,0xec,0x26}};
+extern "C" const GUID __declspec(selectany) DIID__dispSolutionEvents =
+    {0xfbcff1c2,0x261c,0x11d1,{0xae,0x5e,0x00,0xa0,0xc9,0x0f,0x26,0xf4}};
+extern "C" const GUID __declspec(selectany) CLSID_BuildEvents =
+    {0xd83d60e3,0x229f,0x4660,{0x8d,0xd0,0x28,0xb6,0x29,0xee,0xdc,0xda}};
+extern "C" const GUID __declspec(selectany) IID__BuildEvents =
+    {0x794a2ba5,0xffa6,0x4fc5,{0xbf,0x13,0x95,0x7b,0x2c,0x22,0xed,0xd7}};
+extern "C" const GUID __declspec(selectany) DIID__dispBuildEvents =
+    {0x1926364e,0x6b90,0x46cb,{0xa4,0x4d,0x8a,0x80,0xfb,0x11,0xac,0xd9}};
+extern "C" const GUID __declspec(selectany) CLSID_WindowEvents =
+    {0x2e260fd4,0xc130,0x4e6d,{0x8e,0xbc,0x4a,0x3b,0xfd,0x18,0x81,0x81}};
+extern "C" const GUID __declspec(selectany) IID__WindowEvents =
+    {0x0d3a23a8,0x67bb,0x11d2,{0x97,0xc1,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) DIID__dispWindowEvents =
+    {0x0d3a23a9,0x67bb,0x11d2,{0x97,0xc1,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) CLSID_OutputWindowEvents =
+    {0x3760037f,0xb012,0x44f8,{0x9c,0x23,0x36,0x09,0xd7,0xa1,0x6d,0xef}};
+extern "C" const GUID __declspec(selectany) IID__OutputWindowEvents =
+    {0x0a3546a8,0x6840,0x11d2,{0x97,0xc1,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) DIID__dispOutputWindowEvents =
+    {0x0d3a23af,0x67bb,0x11d2,{0x97,0xc1,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) CLSID_FindEvents =
+    {0x811322bc,0x042d,0x4828,{0xbf,0xf2,0x64,0x0e,0xf8,0xb7,0x20,0x9f}};
+extern "C" const GUID __declspec(selectany) IID__FindEvents =
+    {0xc5331acd,0xc5d5,0x11d2,{0x85,0x98,0x00,0x60,0x97,0xc6,0x8e,0x81}};
+extern "C" const GUID __declspec(selectany) DIID__dispFindEvents =
+    {0xc5331ace,0xc5d5,0x11d2,{0x85,0x98,0x00,0x60,0x97,0xc6,0x8e,0x81}};
+extern "C" const GUID __declspec(selectany) CLSID_TaskListEvents =
+    {0x29617acd,0x7859,0x4328,{0xbe,0x09,0x29,0x8f,0x91,0xf4,0x81,0x96}};
+extern "C" const GUID __declspec(selectany) IID__TaskListEvents =
+    {0x1125c422,0x49bd,0x11d2,{0x88,0x23,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) DIID__dispTaskListEvents =
+    {0x1125c423,0x49bd,0x11d2,{0x88,0x23,0x00,0xc0,0x4f,0xb6,0xc6,0xff}};
+extern "C" const GUID __declspec(selectany) CLSID_DTEEvents =
+    {0xc6304bab,0x6765,0x4c63,{0x90,0x17,0x49,0x40,0xae,0xb6,0xf2,0x07}};
+extern "C" const GUID __declspec(selectany) IID__DTEEvents =
+    {0xfa1bb6d7,0xca83,0x11d2,{0xaa,0xb2,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) DIID__dispDTEEvents =
+    {0xb50c9708,0xc909,0x4b87,{0xa0,0x3d,0xaf,0x6c,0xc4,0xbf,0xb4,0x22}};
+extern "C" const GUID __declspec(selectany) CLSID_DocumentEvents =
+    {0xdc5437f7,0xf114,0x11d2,{0xaa,0xcf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID__DocumentEvents =
+    {0xdc5437f5,0xf114,0x11d2,{0xaa,0xcf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) DIID__dispDocumentEvents =
+    {0xdc5437f6,0xf114,0x11d2,{0xaa,0xcf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) CLSID_ProjectItemsEvents =
+    {0xde6c1098,0x93ca,0x4f49,{0xbe,0xf0,0x26,0x2a,0x13,0xca,0x11,0x76}};
+extern "C" const GUID __declspec(selectany) IID__ProjectItemsEvents =
+    {0x22800963,0x2811,0x410d,{0xbf,0x87,0xa7,0x80,0x8e,0xac,0x97,0x7d}};
+extern "C" const GUID __declspec(selectany) DIID__dispProjectItemsEvents =
+    {0x6962753f,0xefd5,0x41c5,{0xb0,0x83,0xd7,0x06,0x87,0x16,0x6a,0xeb}};
+extern "C" const GUID __declspec(selectany) CLSID_DebuggerEvents =
+    {0x0c763210,0x0fbb,0x11d3,{0xb8,0x80,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID__DebuggerEvents =
+    {0xd4eae958,0x0fba,0x11d3,{0xb8,0x80,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) DIID__dispDebuggerEvents =
+    {0x46209330,0x0fba,0x11d3,{0xb8,0x80,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) CLSID_TextEditorEvents =
+    {0xadf22c37,0x0069,0x4adf,{0xb1,0x2d,0xd8,0xd4,0x7c,0x38,0xfe,0x79}};
+extern "C" const GUID __declspec(selectany) IID__TextEditorEvents =
+    {0x23b7a868,0x6c89,0x436a,{0x94,0xfa,0x25,0xd7,0x55,0x45,0x6a,0x77}};
+extern "C" const GUID __declspec(selectany) DIID__dispTextEditorEvents =
+    {0x2699dd44,0xc507,0x4da3,{0xaa,0x34,0x31,0x4a,0x6c,0x21,0xdf,0xe2}};
+extern "C" const GUID __declspec(selectany) CLSID_Solution =
+    {0xb35caa8c,0x77de,0x4ab3,{0x8e,0x5a,0xf0,0x38,0xe3,0xfc,0x60,0x56}};
+extern "C" const GUID __declspec(selectany) IID_StatusBar =
+    {0xc34301a1,0x3ef1,0x41d8,{0x93,0x2a,0xfe,0xa4,0xa8,0xa8,0xce,0x0c}};
+extern "C" const GUID __declspec(selectany) IID_IExtenderSite =
+    {0xe57c510b,0x968b,0x4a3c,{0xa4,0x67,0xee,0x40,0x13,0x15,0x7d,0xc9}};
+extern "C" const GUID __declspec(selectany) IID_IExtenderProvider =
+    {0x4db06329,0x23f4,0x443b,{0x9a,0xbd,0x9c,0xf6,0x11,0xe8,0xae,0x07}};
+extern "C" const GUID __declspec(selectany) IID_IExtenderProviderUnk =
+    {0xf69b64a3,0x9017,0x4e48,{0x97,0x84,0xe1,0x52,0xb5,0x1a,0xa7,0x22}};
+extern "C" const GUID __declspec(selectany) IID_ObjectExtenders =
+    {0x8d0aa9cc,0x8465,0x42f3,{0xad,0x6e,0xdf,0xde,0x28,0xcc,0xc7,0x5d}};
+extern "C" const GUID __declspec(selectany) IID_Find =
+    {0x40d4b9b6,0x739b,0x4965,{0x8d,0x65,0x69,0x2a,0xec,0x69,0x22,0x66}};
+extern "C" const GUID __declspec(selectany) IID_UndoContext =
+    {0xd8dec44d,0xcaf2,0x4b39,{0xa5,0x39,0xb9,0x1a,0xe9,0x21,0xba,0x92}};
+extern "C" const GUID __declspec(selectany) IID_Macros =
+    {0xf9f99155,0x6d4d,0x49b1,{0xad,0x63,0xc7,0x8c,0x3e,0x8a,0x59,0x16}};
+extern "C" const GUID __declspec(selectany) IID_SourceControl =
+    {0xf1ddc2c2,0xdf76,0x4ebb,{0x9d,0xe8,0x48,0xad,0x25,0x57,0x06,0x2c}};
+extern "C" const GUID __declspec(selectany) IID_ISupportVSProperties =
+    {0x6659ed14,0x2ab6,0x47f3,{0xa8,0x90,0x00,0xc8,0xab,0xa4,0x3b,0x84}};
+extern "C" const GUID __declspec(selectany) IID_IExtensibleObjectSite =
+    {0xeb5be8a7,0xe593,0x4de6,{0xa9,0x23,0xc2,0xaf,0xec,0xb9,0x63,0x36}};
+extern "C" const GUID __declspec(selectany) IID_IVsProfferCommands =
+    {0x8cc0cde1,0xc16a,0x4749,{0x99,0xaf,0x6f,0x75,0x23,0xc3,0x4a,0x57}};
+extern "C" const GUID __declspec(selectany) IID_IFilterProperties =
+    {0xaade1f59,0x6ace,0x43d1,{0x8f,0xca,0x42,0xaf,0x3a,0x5c,0x4f,0x3c}};
+extern "C" const GUID __declspec(selectany) IID_TextEditor =
+    {0x9ff3ddca,0x1795,0x4191,{0xa5,0xb1,0x02,0xd1,0xae,0x35,0xd0,0x74}};
+extern "C" const GUID __declspec(selectany) IID__DebuggerEventsRoot =
+    {0xd4bb39fb,0x0f0e,0x11d3,{0xb8,0x80,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_IDTWizard =
+    {0xe914bbe1,0x03a4,0x11d1,{0xbb,0xcd,0x00,0xa0,0xc9,0x0f,0x27,0x44}};
+extern "C" const GUID __declspec(selectany) IID_IVsGlobalsCallback =
+    {0xe2cc506a,0x588b,0x4f65,{0xa1,0xf0,0x22,0x44,0xc0,0x60,0xab,0xcb}};
+extern "C" const GUID __declspec(selectany) IID_IVsGlobals =
+    {0x192ac688,0xe7c6,0x4f9d,{0x81,0x80,0x4b,0x37,0xef,0xbf,0x6f,0x3a}};
+extern "C" const GUID __declspec(selectany) IID_IDTCommandTarget =
+    {0x7ef39a3e,0x590d,0x4879,{0x88,0xd4,0xc9,0xbe,0x5b,0xcf,0xd9,0x2e}};
+extern "C" const GUID __declspec(selectany) IID__ProjectsEvents =
+    {0x85451f83,0xb5ca,0x437f,{0xa6,0x19,0x0c,0xb7,0x05,0x70,0x74,0x20}};
+extern "C" const GUID __declspec(selectany) DIID__dispProjectsEvents =
+    {0x7f508d55,0x627f,0x4d7f,{0xbe,0x0b,0x9e,0x3d,0x82,0x9f,0xf0,0xed}};
+extern "C" const GUID __declspec(selectany) CLSID_ProjectsEvents =
+    {0x536a4be3,0xa376,0x408e,{0x95,0x4c,0x47,0x1c,0x77,0x9e,0x21,0x6f}};
+extern "C" const GUID __declspec(selectany) IID__MiscSlnFilesEventsRoot =
+    {0x7658b944,0xf37b,0x11d2,{0xaa,0xcf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID__CommandBarControlEvents =
+    {0x9e66fe98,0xa1c6,0x421d,{0x8c,0x0c,0x6d,0xa4,0xe6,0x52,0xe7,0x70}};
+extern "C" const GUID __declspec(selectany) DIID__dispCommandBarControlEvents =
+    {0x987fb893,0xf96d,0x11d0,{0xbb,0xbb,0x00,0xa0,0xc9,0x0f,0x27,0x44}};
+extern "C" const GUID __declspec(selectany) CLSID_CommandBarEvents =
+    {0xbfd4b2b2,0x9eec,0x4db8,{0xab,0xa0,0xac,0x31,0x6f,0x4c,0x73,0x28}};
+extern "C" const GUID __declspec(selectany) IID__OutputWindowEventsRoot =
+    {0xaa6f4085,0x33b6,0x4629,{0xb9,0xea,0x69,0x21,0x01,0x00,0x7c,0xc2}};
+extern "C" const GUID __declspec(selectany) IID__TaskListEventsRoot =
+    {0x6bc8c372,0xc6f0,0x4be6,{0xb2,0x55,0x82,0x7a,0xc1,0x90,0xbf,0x71}};
+extern "C" const GUID __declspec(selectany) IID_IDTToolsOptionsPage =
+    {0xbdcaf240,0x2692,0x4713,{0x90,0x2a,0xb1,0x10,0xb1,0xd0,0xf1,0x00}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentWebBrowser =
+    {0xa3286b03,0x5ac6,0x44f0,{0x8c,0xc3,0xeb,0xed,0x7f,0x11,0x24,0xe5}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentHelp =
+    {0xaebded64,0xa206,0x11d3,{0xb8,0xb5,0x00,0xc0,0x4f,0x79,0xf8,0x02}};
+extern "C" const GUID __declspec(selectany) IID_ColorableItems =
+    {0xe5d17051,0xd6e5,0x4da7,{0x8b,0x3a,0xca,0x88,0x86,0x17,0xa5,0xe7}};
+extern "C" const GUID __declspec(selectany) IID_FontsAndColorsItems =
+    {0xf25ae7e6,0x1460,0x4ba4,{0x8e,0x5e,0xbb,0xbe,0x74,0x6d,0xe3,0x53}};
+extern "C" const GUID __declspec(selectany) IID__FontsAndColors =
+    {0x256068f6,0x1add,0x4f7b,{0xba,0x76,0x57,0x13,0x14,0xc4,0x13,0xad}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentGeneral =
+    {0x48e61d9c,0x8c8d,0x42d3,{0x91,0x4b,0x46,0xd7,0x0c,0x8b,0x7a,0x40}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentFontsAndColors =
+    {0xf809cab6,0x2c9f,0x41f2,{0xa5,0xaf,0xe2,0x6f,0xb8,0x0e,0x62,0xad}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentProjectsAndSolution =
+    {0x478f06d4,0x5d57,0x473f,{0x9b,0x74,0x5f,0x8e,0x88,0xef,0xa5,0xe7}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentDocuments =
+    {0x76ed1c48,0xed86,0x4e9e,{0xac,0xf8,0xa4,0x0e,0x76,0x5d,0xaf,0x25}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentTaskList =
+    {0x4bc18a5b,0xdbb6,0x4af5,{0xa4,0x43,0x2e,0x3f,0x19,0x36,0x53,0x04}};
+extern "C" const GUID __declspec(selectany) IID__EnvironmentKeyboard =
+    {0x9c722678,0x490d,0x408f,{0x98,0xae,0xb6,0xb9,0xa6,0x8a,0xa4,0x5d}};
+extern "C" const GUID __declspec(selectany) IID_IExtensibleObject =
+    {0x86c31347,0x5b52,0x4715,{0xb4,0x54,0xa6,0xe5,0xfc,0xab,0x97,0x5d}};
+extern "C" const GUID __declspec(selectany) IID_IVsTextEditGeneral =
+    {0x2e1bfd1c,0x5b26,0x4aca,{0xb9,0x7b,0xed,0x9d,0x26,0x1b,0xa3,0xe7}};
+extern "C" const GUID __declspec(selectany) IID_IVsTextEditPerLanguage =
+    {0x5943bd7e,0xd722,0x42db,{0xa2,0x51,0xfe,0x2a,0xdd,0x87,0x11,0xea}};
+extern "C" const GUID __declspec(selectany) IID_IVsTextEditFonts =
+    {0xf39ab913,0xe6c9,0x4546,{0xa2,0x65,0x1e,0x43,0xf8,0xde,0x92,0x4c}};
+extern "C" const GUID __declspec(selectany) IID__DTE =
+    {0x04a72314,0x32e9,0x48e2,{0x9b,0x87,0xa6,0x36,0x03,0x45,0x4f,0x3e}};
+extern "C" const GUID __declspec(selectany) IID_Windows =
+    {0x2294311a,0xb7bc,0x4789,{0xb3,0x65,0x1c,0x15,0xff,0x2c,0xd1,0x7c}};
+extern "C" const GUID __declspec(selectany) IID_Window =
+    {0x0beab46b,0x4c07,0x4f94,{0xa8,0xd7,0x16,0x26,0x02,0x0e,0x4e,0x53}};
+extern "C" const GUID __declspec(selectany) IID_LinkedWindows =
+    {0xf00ef34a,0xa654,0x4c1b,{0x89,0x7a,0x58,0x5d,0x5b,0xcb,0xb3,0x5a}};
+extern "C" const GUID __declspec(selectany) IID_TextBuffer =
+    {0xf47dc7e7,0x84b6,0x474f,{0xbb,0x91,0x63,0x16,0x40,0xaa,0x05,0x60}};
+extern "C" const GUID __declspec(selectany) IID__WindowEventsRoot =
+    {0x17d12026,0xba99,0x403e,{0xa3,0x59,0x71,0xfd,0x1e,0x5a,0x72,0xcd}};
+extern "C" const GUID __declspec(selectany) IID_HTMLWindow =
+    {0xf6576203,0xfbce,0x477e,{0xa6,0x6b,0xed,0xa2,0x37,0xbb,0x68,0xa7}};
+extern "C" const GUID __declspec(selectany) IID_ProjectItem =
+    {0x0b48100a,0x473e,0x433c,{0xab,0x8f,0x66,0xb9,0x73,0x9a,0xb6,0x20}};
+extern "C" const GUID __declspec(selectany) IID_ItemOperations =
+    {0xd5dbe57b,0xc074,0x4e95,{0xb0,0x15,0xab,0xee,0xaa,0x39,0x16,0x93}};
+extern "C" const GUID __declspec(selectany) IID_ProjectItems =
+    {0x8e2f1269,0x185e,0x43c7,{0x88,0x99,0x95,0x0a,0xd2,0x76,0x9c,0xcf}};
+extern "C" const GUID __declspec(selectany) IID_Project =
+    {0x866311e6,0xc887,0x4143,{0x98,0x33,0x64,0x5f,0x5b,0x93,0xf6,0xf1}};
+extern "C" const GUID __declspec(selectany) IID_Projects =
+    {0xe3ec0add,0x31b3,0x461f,{0x83,0x03,0x8a,0x5e,0x69,0x31,0x25,0x7a}};
+extern "C" const GUID __declspec(selectany) IID_Properties =
+    {0x4cc8ccf5,0xa926,0x4646,{0xb1,0x7f,0xb4,0x94,0x0c,0xae,0xd4,0x72}};
+extern "C" const GUID __declspec(selectany) IID_Property =
+    {0x7b988e06,0x2581,0x485e,{0x93,0x22,0x04,0x88,0x1e,0x06,0x00,0xd0}};
+extern "C" const GUID __declspec(selectany) IID_ConfigurationManager =
+    {0x9043fda1,0x345b,0x4364,{0x90,0x0f,0xbc,0x85,0x98,0xeb,0x8e,0x4f}};
+extern "C" const GUID __declspec(selectany) IID_Configuration =
+    {0x90813589,0xfe21,0x4aa4,{0xa2,0xe5,0x05,0x3f,0xd2,0x74,0xe9,0x80}};
+extern "C" const GUID __declspec(selectany) IID_Configurations =
+    {0xb6b4c8d6,0x4d27,0x43b9,{0xb4,0x5c,0x52,0xbd,0x16,0xb6,0xba,0x38}};
+extern "C" const GUID __declspec(selectany) IID_OutputGroups =
+    {0xf9fa748e,0xe302,0x44cf,{0x89,0x1b,0xe2,0x63,0x18,0x9d,0x58,0x5e}};
+extern "C" const GUID __declspec(selectany) IID_OutputGroup =
+    {0xa3a80783,0x875f,0x435b,{0x96,0x39,0xe5,0xce,0x88,0x8d,0xf7,0x37}};
+extern "C" const GUID __declspec(selectany) IID_CodeModel =
+    {0x0cfbc2b4,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeElements =
+    {0x0cfbc2b5,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeElement =
+    {0x0cfbc2b6,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_TextPoint =
+    {0x7f59e94e,0x4939,0x40d2,{0x9f,0x7f,0xb7,0x65,0x1c,0x25,0x90,0x5d}};
+extern "C" const GUID __declspec(selectany) IID_VirtualPoint =
+    {0x42320454,0x626c,0x4dd0,{0x9e,0xcb,0x35,0x7c,0x4f,0x19,0x66,0xd8}};
+extern "C" const GUID __declspec(selectany) IID_CodeAttribute =
+    {0x0cfbc2be,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_TextDocument =
+    {0xcb218890,0x1382,0x472b,{0x91,0x18,0x78,0x27,0x00,0xc8,0x81,0x15}};
+extern "C" const GUID __declspec(selectany) IID_CommandWindow =
+    {0x509b9955,0x7303,0x48c9,{0x90,0xd4,0xe1,0x65,0xb9,0x74,0xe6,0xba}};
+extern "C" const GUID __declspec(selectany) IID__TextEditorEventsRoot =
+    {0xb3c38885,0xb288,0x44a8,{0xb2,0x90,0x34,0xfe,0x63,0xbf,0x3c,0x76}};
+extern "C" const GUID __declspec(selectany) IID_Document =
+    {0x63eb5c39,0xca8f,0x498e,{0x9a,0x66,0x6d,0xd4,0xa2,0x7a,0xc9,0x5b}};
+extern "C" const GUID __declspec(selectany) IID_Documents =
+    {0x9e2cf3ea,0x140f,0x413e,{0xbd,0x4b,0x7d,0x46,0x74,0x0c,0xd2,0xf4}};
+extern "C" const GUID __declspec(selectany) IID_Events =
+    {0x134170f8,0x93b1,0x42dd,{0x9f,0x89,0xa2,0xac,0x70,0x10,0xba,0x07}};
+extern "C" const GUID __declspec(selectany) IID_IVsExtensibility =
+    {0x3c536122,0x57b1,0x46de,{0xab,0x34,0xac,0xc5,0x24,0x14,0x00,0x93}};
+extern "C" const GUID __declspec(selectany) IID__DocumentEventsRoot =
+    {0xdc5437f4,0xf114,0x11d2,{0xaa,0xcf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_TextSelection =
+    {0x1fa0e135,0x399a,0x4d2c,{0xa4,0xfe,0xd2,0x1e,0x24,0x80,0xf9,0x21}};
+extern "C" const GUID __declspec(selectany) IID_TextRanges =
+    {0xb6422e9c,0x9efd,0x4f87,{0xbd,0xdc,0xc7,0xfd,0x8f,0x2f,0xd3,0x03}};
+extern "C" const GUID __declspec(selectany) IID_EditPoint =
+    {0xc1ffe800,0x028b,0x4475,{0xa9,0x07,0x14,0xf5,0x1f,0x19,0xbb,0x7d}};
+extern "C" const GUID __declspec(selectany) IID_TextRange =
+    {0x72767524,0xe3b3,0x43d0,{0xbb,0x46,0xbb,0xe1,0xd5,0x56,0xa9,0xff}};
+extern "C" const GUID __declspec(selectany) IID_TextPane =
+    {0x0a3bf283,0x05f8,0x4669,{0x9b,0xcb,0xa8,0x4b,0x64,0x23,0x34,0x9a}};
+extern "C" const GUID __declspec(selectany) IID_TextPanes =
+    {0xd9013d31,0x3652,0x46b2,{0xa2,0x5a,0x29,0xa8,0x81,0xb9,0xf8,0x6b}};
+extern "C" const GUID __declspec(selectany) IID_TextWindow =
+    {0x2fc54dc9,0x922b,0x44eb,{0x8c,0xc0,0xba,0x18,0x25,0x84,0xdc,0x4b}};
+extern "C" const GUID __declspec(selectany) IID_CodeType =
+    {0x0cfbc2b7,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeTypeRef =
+    {0x0cfbc2bc,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeParameter =
+    {0x0cfbc2bd,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeFunction =
+    {0x0cfbc2b9,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeVariable =
+    {0x0cfbc2ba,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeNamespace =
+    {0x0cfbc2b8,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeEnum =
+    {0xb1f42512,0x91cd,0x4d3a,{0x8b,0x25,0xa3,0x17,0xd8,0x03,0x2b,0x24}};
+extern "C" const GUID __declspec(selectany) IID_CodeClass =
+    {0xb1f42514,0x91cd,0x4d3a,{0x8b,0x25,0xa3,0x17,0xd8,0x03,0x2b,0x24}};
+extern "C" const GUID __declspec(selectany) IID_CodeProperty =
+    {0x0cfbc2bb,0x0d4e,0x11d3,{0x89,0x97,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_CodeInterface =
+    {0xb1f42510,0x91cd,0x4d3a,{0x8b,0x25,0xa3,0x17,0xd8,0x03,0x2b,0x24}};
+extern "C" const GUID __declspec(selectany) IID_CodeDelegate =
+    {0xb1f42513,0x91cd,0x4d3a,{0x8b,0x25,0xa3,0x17,0xd8,0x03,0x2b,0x24}};
+extern "C" const GUID __declspec(selectany) IID_CodeStruct =
+    {0xb1f42511,0x91cd,0x4d3a,{0x8b,0x25,0xa3,0x17,0xd8,0x03,0x2b,0x24}};
+extern "C" const GUID __declspec(selectany) IID_FileCodeModel =
+    {0xed1a3f99,0x4477,0x11d3,{0x89,0xbf,0x00,0xc0,0x4f,0x68,0x8d,0xde}};
+extern "C" const GUID __declspec(selectany) IID_ContextAttributes =
+    {0x33c5ebb8,0x244e,0x449d,{0x9c,0xee,0xfa,0xd7,0x0a,0x77,0x4e,0x59}};
+extern "C" const GUID __declspec(selectany) IID_ContextAttribute =
+    {0x1a6e2cb3,0xb897,0x42eb,{0x96,0xbe,0xff,0x0f,0xdb,0x65,0xdb,0x2f}};
+extern "C" const GUID __declspec(selectany) IID_AddIn =
+    {0x53a87fa1,0xce93,0x48bf,{0x95,0x8b,0xc6,0xda,0x79,0x3c,0x50,0x28}};
+extern "C" const GUID __declspec(selectany) IID_AddIns =
+    {0x50590801,0xd13e,0x4404,{0x80,0xc2,0x5c,0xa3,0x0a,0x4d,0x0e,0xe8}};
+extern "C" const GUID __declspec(selectany) IID_OutputWindowPane =
+    {0xffc9dfc4,0x61ca,0x4b0c,{0x83,0xc2,0x07,0x03,0xa2,0x4f,0x5c,0x16}};
+extern "C" const GUID __declspec(selectany) IID_OutputWindowPanes =
+    {0xb02cf62a,0x9470,0x4308,{0xa5,0x21,0x96,0x75,0xfb,0xa3,0x95,0xab}};
+extern "C" const GUID __declspec(selectany) IID_OutputWindow =
+    {0xeab0a63d,0xc3a8,0x496e,{0x9a,0xcf,0xa8,0x2c,0xef,0x6a,0x43,0xb3}};
+extern "C" const GUID __declspec(selectany) IID_TaskItem =
+    {0x58e4d419,0x6b8c,0x4c63,{0x92,0xde,0x70,0x16,0x1c,0xd9,0x58,0x90}};
+extern "C" const GUID __declspec(selectany) IID_TaskItems =
+    {0x4b51103d,0x513c,0x4773,{0xb5,0x6a,0x35,0x4d,0x09,0x28,0xfd,0x04}};
+extern "C" const GUID __declspec(selectany) IID_TaskList =
+    {0x4e4f0569,0xe16a,0x4da1,{0x92,0xde,0x10,0x88,0x2a,0x4d,0xdd,0x8c}};
+extern "C" const GUID __declspec(selectany) IID_Process =
+    {0x5c5a0070,0xf396,0x4e37,{0xa8,0x2a,0x1b,0x76,0x7e,0x27,0x2d,0xf9}};
+extern "C" const GUID __declspec(selectany) IID_Programs =
+    {0xdc6a118a,0xbbab,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Program =
+    {0x6a38d87c,0xbba0,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Threads =
+    {0x6aa23fb4,0xbba1,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Thread =
+    {0x9407f466,0xbba1,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_StackFrames =
+    {0x4ed85664,0xbba2,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_StackFrame =
+    {0x1342d0d8,0xbba3,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Expressions =
+    {0x2685337a,0xbb9e,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Expression =
+    {0x27adc812,0xbb07,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Debugger =
+    {0x338fb9a0,0xbae5,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Processes =
+    {0x9f379969,0x5eac,0x4a54,{0xb2,0xbc,0x69,0x46,0xcf,0xfb,0x56,0xef}};
+extern "C" const GUID __declspec(selectany) IID_Breakpoints =
+    {0x25968106,0xbafb,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Breakpoint =
+    {0x11c5114c,0xbb00,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Languages =
+    {0xa4f4246c,0xc131,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID_Language =
+    {0xb3ccfa68,0xc145,0x11d2,{0x8a,0xd1,0x00,0xc0,0x4f,0x79,0xe4,0x79}};
+extern "C" const GUID __declspec(selectany) IID__Solution =
+    {0x26f6cc4b,0x7a48,0x4e4d,{0x8a,0xf5,0x9e,0x96,0x02,0x32,0xe0,0x5f}};
+extern "C" const GUID __declspec(selectany) IID_SolutionBuild =
+    {0xa3c1c40c,0x9218,0x4d4c,{0x9d,0xaa,0x07,0x5f,0x64,0xf6,0x92,0x2c}};
+extern "C" const GUID __declspec(selectany) IID_SolutionConfiguration =
+    {0x60aaad75,0xcb8d,0x4c62,{0x99,0x59,0x24,0xd6,0xa6,0xa5,0x0d,0xe7}};
+extern "C" const GUID __declspec(selectany) IID_SolutionConfigurations =
+    {0x23e78ed7,0xc9e1,0x462d,{0x8b,0xc6,0x36,0x60,0x03,0x48,0x6e,0xd9}};
+extern "C" const GUID __declspec(selectany) IID_SolutionContexts =
+    {0x0685b546,0xfb84,0x4917,{0xab,0x98,0x98,0xd4,0x0f,0x89,0x2d,0x61}};
+extern "C" const GUID __declspec(selectany) IID_SolutionContext =
+    {0xfc6a1a82,0x9c8a,0x47bb,{0xa0,0x46,0x6e,0x96,0x5d,0xf5,0xa9,0x9b}};
+extern "C" const GUID __declspec(selectany) IID_BuildDependencies =
+    {0xead260eb,0x1e5b,0x450a,{0xb6,0x28,0x4c,0xfa,0xda,0x11,0xb4,0xa1}};
+extern "C" const GUID __declspec(selectany) IID_BuildDependency =
+    {0x9c5ceaac,0x062f,0x4434,{0xa2,0xed,0x78,0xab,0x4d,0x61,0x34,0xfe}};
+extern "C" const GUID __declspec(selectany) IID_Commands =
+    {0xe6b96cac,0xb8c7,0x40ae,{0xb7,0x05,0x5c,0x81,0x87,0x8c,0x4a,0x9e}};
+extern "C" const GUID __declspec(selectany) IID_Command =
+    {0x5fe10fb0,0x91a1,0x4e55,{0xba,0xaa,0xec,0xca,0xe5,0xcc,0xeb,0x94}};
+extern "C" const GUID __declspec(selectany) IID_SelectedItems =
+    {0x6caa67cf,0x43ae,0x4184,{0xaa,0xab,0x02,0x00,0xdd,0xf6,0xb2,0x40}};
+extern "C" const GUID __declspec(selectany) IID_SelectedItem =
+    {0x049d2cdf,0x3731,0x4cb6,{0xa2,0x33,0xbe,0x97,0xbc,0xe9,0x22,0xd3}};
+extern "C" const GUID __declspec(selectany) IID_SelectionContainer =
+    {0x02273422,0x8dd4,0x4a9f,{0x8a,0x8b,0xd7,0x04,0x43,0xd5,0x10,0xf4}};
+extern "C" const GUID __declspec(selectany) IID_WindowConfigurations =
+    {0xe577442a,0x98e1,0x46c5,{0xbd,0x2e,0xd2,0x58,0x07,0xec,0x81,0xce}};
+extern "C" const GUID __declspec(selectany) IID_WindowConfiguration =
+    {0x41d02413,0x8a67,0x4c28,{0xa9,0x80,0xad,0x75,0x39,0xed,0x41,0x5d}};
+extern "C" const GUID __declspec(selectany) IID_ToolBox =
+    {0x56fcd5af,0x7f17,0x4c5c,{0xaa,0x8d,0xae,0x2b,0xb2,0xdd,0xbf,0x38}};
+extern "C" const GUID __declspec(selectany) IID_ToolBoxTab =
+    {0xce2def9e,0x3387,0x4bf2,{0x96,0x7b,0xa1,0xf7,0xf7,0x0d,0xf3,0x25}};
+extern "C" const GUID __declspec(selectany) IID_ToolBoxTabs =
+    {0xcf177b52,0x4f2f,0x42a0,{0x8d,0xa3,0xce,0x78,0x67,0x9a,0x0d,0x2d}};
+extern "C" const GUID __declspec(selectany) IID_ToolBoxItems =
+    {0x395c7dfb,0xf158,0x431c,{0x8f,0x43,0xdd,0xa8,0x3b,0x4e,0xf5,0x4e}};
+extern "C" const GUID __declspec(selectany) IID_ToolBoxItem =
+    {0x46538d1b,0x4d81,0x4002,{0x8b,0xb4,0xdb,0xdb,0x65,0xba,0xbb,0x23}};
+extern "C" const GUID __declspec(selectany) IID_UIHierarchyItem =
+    {0xfbd0d024,0x09cd,0x4d9f,{0x9e,0x2b,0xca,0xcd,0x62,0x84,0x26,0xa5}};
+extern "C" const GUID __declspec(selectany) IID_UIHierarchyItems =
+    {0xdb8406b0,0xa916,0x449c,{0xa2,0x77,0xbb,0x04,0x02,0x8f,0x43,0x94}};
+extern "C" const GUID __declspec(selectany) IID_UIHierarchy =
+    {0x72a2a2ef,0xc209,0x408c,{0xa3,0x77,0x76,0x87,0x17,0x74,0xad,0xb7}};
+
+} // namespace EnvDTE
+
+#pragma pack(pop)

+ 2 - 2
Source/CMakeLists.txt

@@ -149,10 +149,10 @@ if(MSVC)
 	set(CMAKE_EXE_LINKER_FLAGS_RELEASE ${BS_LINKER_FLAGS_RELEASE})
 	
 	# Compiler
-	set(BS_COMPILER_FLAGS_COMMON "/GS- /W3 /GR- /WX- /nologo /bigobj /wd\"4577\" /wd\"4530\"")
+	set(BS_COMPILER_FLAGS_COMMON "/GS- /W3 /GR- /WX- /MP /nologo /bigobj /wd\"4577\" /wd\"4530\"")
 	set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS")
 	
-	set(CMAKE_CXX_FLAGS_DEBUG "${BS_COMPILER_FLAGS_COMMON} /Gm /Od /RTC1 /MDd")
+	set(CMAKE_CXX_FLAGS_DEBUG "${BS_COMPILER_FLAGS_COMMON} /Od /RTC1 /MDd")
 	
 	if(BS_64BIT) # Debug edit and continue for 64-bit
 		set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /ZI")