initial commit

This commit is contained in:
alterNERDtive 2020-09-22 20:17:42 +02:00
commit 085fa47a43
7 changed files with 829 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.vs/**
obj/**

165
EDMap.txt Normal file
View file

@ -0,0 +1,165 @@
Key_Backspace;8
Key_Tab;9
Key_Enter;13
Key_Pause;19
Key_CapsLock;20
Key_Kana;21
Key_Kanji;25
Key_Escape;27
Key_Convert;28
Key_NoConvert;29
Key_Space;32
Key_PageUp;33
Key_PageDown;34
Key_End;35
Key_Home;36
Key_LeftArrow;37
Key_UpArrow;38
Key_RightArrow;39
Key_DownArrow;40
Key_SYSRQ;44
Key_Insert;45
Key_Delete;46
Key_0;48
Key_1;49
Key_2;50
Key_3;51
Key_4;52
Key_5;53
Key_6;54
Key_7;55
Key_8;56
Key_9;57
Key_A;65
Key_B;66
Key_C;67
Key_D;68
Key_E;69
Key_F;70
Key_G;71
Key_H;72
Key_I;73
Key_J;74
Key_K;75
Key_L;76
Key_M;77
Key_N;78
Key_O;79
Key_P;80
Key_Q;81
Key_R;82
Key_S;83
Key_T;84
Key_U;85
Key_V;86
Key_W;87
Key_X;88
Key_Y;89
Key_Z;90
Key_LeftWin;91
Key_RightWin;92
Key_Apps;93
Key_Sleep;95
Key_Numpad_0;96
Key_Numpad_1;97
Key_Numpad_2;98
Key_Numpad_3;99
Key_Numpad_4;100
Key_Numpad_5;101
Key_Numpad_6;102
Key_Numpad_7;103
Key_Numpad_8;104
Key_Numpad_9;105
Key_Numpad_Multiply;106
Key_Numpad_Add;107
Key_Numpad_Subtract;109
Key_Numpad_Decimal;110
Key_Numpad_Comma;110
Key_Numpad_Divide;111
Key_Numpad_Enter;156
Key_F1;112
Key_F2;113
Key_F3;114
Key_F4;115
Key_F5;116
Key_F6;117
Key_F7;118
Key_F8;119
Key_F9;120
Key_F10;121
Key_F11;122
Key_F12;123
Key_F13;124
Key_F14;125
Key_F15;126
Key_F16;127
Key_F17;128
Key_F18;129
Key_F19;130
Key_F20;131
Key_F21;132
Key_F22;133
Key_F23;134
Key_F24;135
Key_NumLock;144
Key_ScrollLock;145
Key_LeftShift;160
Key_RightShift;161
Key_LeftControl;162
Key_RightControl;163
Key_LeftAlt;164
Key_RightAlt;165
Key_WebBack;166
Key_WebForward;167
Key_WebRefresh;168
Key_WebStop;169
Key_WebSearch;170
Key_WebFavourites;171
Key_WebHome;172
Key_Mute;173
Key_VolumeDown;174
Key_VolumeUp;175
Key_NextTrack;176
Key_PrevTrack;177
Key_MediaStop;178
Key_Stop;178
Key_PlayPause;179
Key_Mail;180
Key_MediaSelect;181
Key_SemiColon;186
Key_Plus;187
Key_Equals;187
Key_Comma;188
Key_Minus;189
Key_Period;190
Key_Slash;191
Key_Grave;192
Key_LeftBracket;219
Key_BackSlash;220
Key_RightBracket;221
Key_Apostrophe;222
Key_OEM_102;226
Key_ä;222
Key_ö;192
Key_ü;186
Key_ß;219
Key_Acute;221
Key_LessThan;226
Key_Circumflex;220
Key_Hash;191
Key_Colon;186
Key_ABNT_C1;-1
Key_Yen;-1
Key_ABNT_C2;-1
Key_Numpad_Equals;-1
Key_Underline;-1
Key_AX;-1
Key_Unlabeled;-1
Key_Calculator;-1
Key_AT;-1
Key_Power;-1
Key_Wake;-1
Key_MyComputer;-1
Key_GreenModifier;-1
Key_OrangeModifier;-1

13
LICENSE Normal file
View file

@ -0,0 +1,13 @@
bindED Source Code License - Please read carefully
March 7, 2018
bindED could have been written by monkeys, so, it's safe to say there's
not much to protect here, so, have at it.
In other words, this is public domain with no strings attached -- Go for it!
Gary L. Magenheimer
VoiceAttack.com

View file

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Plugin")]
[assembly: AssemblyDescription("Plugin")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Plugin")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("6966F95F-A192-4272-8D55-B1014E213B35")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

335
ReadMe.txt Normal file
View file

@ -0,0 +1,335 @@
----------------------------------------------------------------
About the bindED plugin - v1.0.0.1 (See end for version history)
----------------------------------------------------------------
The bindED plugin was created to copy the keyboard key bind information for Elite: Dangerous directly into VoiceAttack keypress variables. The variables
can then be used in conjunction with key press actions within VoiceAttack (the latest betas of VoiceAttack allow for keypresses based on variables).
The idea is to be able to change your key bindings from within Elite: Dangerous and have each change be reflected (semi-automatically) in VoiceAttack,
possibly saving some time and/or hair loss.
Thanks to Lavaeolus in the VoiceAttack user forum for starting up the EDMap.txt layout, as well as all those that participate in making plugins all they
can be ;)
--------------------------------------------------------------------------------------------------------------------------------
Setting up the bindED plugin
--------------------------------------------------------------------------------------------------------------------------------
Copy the entire bindED folder from the zip file to the VoiceAttack Apps folder (the whole folder, not just the contents). The folder is usually located
in C:\Program Files (x86)\VoiceAttack (An installer may be created later to make this easier... for now it's just a zip ;))
For most, this is all you'll need to do. For others having trouble or want to explore, read on:
Inside the bindED folder, you will find the plugin file itself (bindED.dll), which uses VoiceAttack's Plugin v4 interface... that just means that you
will need VoiceAttack beta version v1.5.12.32 or later to use the plugin.
You will also find a file called, 'EDMap.txt'. If you open this text file, you will see that it contains each of the Elite: Dangerous key bind types associated
with a numeric code. The code is simply the keyboard key code expressed as a number. For instance, the, 'A' key is 65, 'Z' is 90, 'Escape' is 27 and so on.
This is for English-US keyboards. Your keyboard layout may not line up exactly with this mapping, so adjustments may need to be made (you can edit this file
as you see fit, just as long as it follows the KeyName;Code structure that you see inside the file).
If you happen to create a layout that is different or find a mistake/omission in the English-US layout (this is new stuff, after all), please feel free to
upload your update to the VoiceAttack user forum for others to use: http://www.voiceattack.com/forum
To see the list of key codes, go here: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
Note that the key codes are expressed in hexadecimal and will need to be converted to integer values.
--------------------------------------------------------------------------------------------------------------------------------
Using the bindED plugin
--------------------------------------------------------------------------------------------------------------------------------
To use the plugin, you will need to do a few things.
1) First, you will need to turn on plugin support in VoiceAttack. This is done from the Options screen.
2) Next, you will need to create a command in VoiceAttack to call the bindED plugin which (optionally) includes the Elite: Dangerous binds file that you want to use.
To do this, add a new command and then click on Other -> Advanced -> Execute an external plugin function.
3) In the new plugin action screen, select the, 'bindED' plugin from the Plugin list (bindED will be available if you had turned on plugin support and had installed
the bindED plugin correctly).
4) There are two routes you can take here. If you only have ONE binds file, and you want the bindED plugin to try to access your .binds file that is located
in C:\Users\YOUR_USER_NAME\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings, simply leave the, 'Plugin Context' box blank.
The plugin will simply grab the NEWEST .binds file it finds in that directory and use it.
If you have MULTIPLE binds files for different situations, OR, the default behavior indicated above does not meet your need, you can specify which binds
file the bindED plugin is to access by typing or pasting the full path to the binds file that you want to use in the 'Plugin Context' box:
Selecting the, 'Wait for the plugin to fininsh...' option is up to you. Generally this should run very quicky, but if you have a situation where things need
to occur in a very specific order, select that option.
The full path is cut off in the image, but you get the idea ;)
5) Click OK, Done, etc.
The next time that this new command is executed (whether by itself to, 'reload' bindings or from a profile change) the VoiceAttack variables will be updated
with what is indicated in the bind file.
--------------------------------------------------------------------------------------------------------------------------------
How to use the keypress variables once they are updated
--------------------------------------------------------------------------------------------------------------------------------
This is where it gets a little tricky. There are a lot of words here, but as you'll see, there's not a whole lot going on.
First, you will need to be familiar with the Elite: Dangerous key binds in-game, as well as where those binds are stored in the configuration (.binds) files.
For this example, the landing gear toggle will be used. To toggle the landing gear, let's say the 'L' key is used in-game.
The configuration file (.binds) will store that information in an xml element called, 'LandingGearToggle'. Inside the binds file, you will see the entry
looks something like this:
<LandingGearToggle>
<Primary Device="Keyboard" Key="Key_L" />
<Secondary Device="{NoDevice}" Key="" />
</LandingGearToggle>
When VoiceAttack encounters this element, it creates and a TEXT variable called, 'edLandingGearToggle'. It's just simply the element name with, 'ed'
prefixed to it. Then, VoiceAttack notices that the key used is 'Key_L'. VoiceAttack gets the value indicated in the EDMap.txt file and puts it in the,
'edLandingGearToggle' variable (you don't necessarily have to know this... I threw it in there in case you were wondering ;))
So, in VoiceAttack (later betas), you can have a key (or keys) pressed based on a variable. At the bottom of the keypress screen, you will see an input box
that will allow you to specify what variable to use. Before, you would have, 'L' selected at the top of the screen. Now, you would just type in,
'edLandingGearToggle' (no quotes) in the variable input box.
NOTE: A current list (well... my current list) of variables that can be affected are listed at the end of this file.
Your command probably looks like this now:
When I say... 'Landing Gear'
Press L key and hold for 0.1 seconds and release
It would now look like this:
When I say... 'Landing Gear'
Press variable key(s) [edLandingGear] and hold for 0.1 seconds and release
If anybody out there wants to create an Elite: Dangerous variable mapping to what is seen in-game, that would be really cool ;)
--------------------------------------------------------------------------------------------------------------------------------
Advanced stuff and things to consider for those who want even more confusion.
--------------------------------------------------------------------------------------------------------------------------------
Note that you can have multiple plugin actions to load several (possibly custom) bind files at the same time if you need to. Each subsequently loaded bind file
will override the previous ones. You can also do this with one action by separating the bind paths with a semicolon. You may never need to do this, but it's
there if you want to do something with it.
Way off the chart... Something else to try that is left over from testing (and left in for anybody that wants to use it) is if you want to load a
binds file on plugin initialization (that is, when the plugin first loads (when VA starts up)... not when the plugin is invoked), create shortcuts to
the binds files and place them in the same folder as the plugin .dll. Each shortcut is processed in alphabetical order. This is one way to have an
automatic, global initialization of variables that do not require the plugin to be invoked. If this doesn't make any sense to you, do not worry ;)
If you are going to be creating profiles for others, it might be a good idea to put some extra steps in your commands in case your users do not have
the bindED plugin (either not installed, not configured properly or not initialized). Going to expand on the whole landing gear thing again in this example...
Begin Text Compare : [edLandingGearToggle] Has Been Set
Press variable key(s) [edLandingGearToggle] and hold for 0.1 seconds and release
Else
Press L key and hold for 0.1 seconds and release
Write '[Orange] Variable keypress not set. Using default keypress.' to log
End Condition
Note that if the variable HAS BEEN SET (not null), the keypress uses the variable. If the variable has not been set, you can have a fall-back keypress, or,
just show a warning.
One more thing... if you happen to have a '.binds' file for Star Citizen that has a good variety of key/key combinations (with modifiers... ctrl/alt/shift/win),
please let me know and I will create a bindSC ;)
--------------------------------------------------------------------------------------------------------------------------------
Variable List Reference
--------------------------------------------------------------------------------------------------------------------------------
Below is a current list of the variables that bindED can update (and you can use in your keypress actions). Remember, the element within the .binds file is
whatever the variable name is below, minus the, 'ed' prefix. So, 'edAutoBreakBuggyButton' below correlates to the 'AutoBreakBuggyButton' element in the .binds
file. Note that if no keys are set for the particular element, the variable value will be null (Not Set). This list can change at any time depending
on Frontier, and is only here to give you an idea of what's currently available without having to dig into your .binds file. Good luck, Captain. ;)
edAutoBreakBuggyButton
edBackwardKey
edBackwardThrustButton
edBackwardThrustButton_Landing
edBuggyPitchDownButton
edBuggyPitchUpButton
edBuggyPrimaryFireButton
edBuggyRollLeftButton
edBuggyRollRightButton
edBuggySecondaryFireButton
edBuggyToggleReverseThrottleInput
edBuggyTurretPitchDownButton
edBuggyTurretPitchUpButton
edBuggyTurretYawLeftButton
edBuggyTurretYawRightButton
edCamPitchDown
edCamPitchUp
edCamTranslateBackward
edCamTranslateDown
edCamTranslateForward
edCamTranslateLeft
edCamTranslateRight
edCamTranslateUp
edCamTranslateZHold
edCamYawLeft
edCamYawRight
edCamZoomIn
edCamZoomOut
edChargeECM
edCycleFireGroupNext
edCycleFireGroupPrevious
edCycleNextHostileTarget
edCycleNextPanel
edCycleNextSubsystem
edCycleNextTarget
edCyclePreviousHostileTarget
edCyclePreviousPanel
edCyclePreviousSubsystem
edCyclePreviousTarget
edDecreaseSpeedButtonMax
edDeployHardpointToggle
edDeployHeatSink
edDisableRotationCorrectToggle
edDownThrustButton
edDownThrustButton_Landing
edEjectAllCargo
edEjectAllCargo_Buggy
edEngineColourToggle
edFireChaffLauncher
edFocusCommsPanel
edFocusCommsPanel_Buggy
edFocusLeftPanel
edFocusLeftPanel_Buggy
edFocusRadarPanel
edFocusRadarPanel_Buggy
edFocusRightPanel
edFocusRightPanel_Buggy
edForwardKey
edForwardThrustButton
edForwardThrustButton_Landing
edGalaxyMapOpen
edGalaxyMapOpen_Buggy
edHeadlightsBuggyButton
edHeadLookPitchDown
edHeadLookPitchUp
edHeadLookReset
edHeadLookToggle
edHeadLookToggle_Buggy
edHeadLookYawLeft
edHeadLookYawRight
edHMDReset
edHyperspace
edHyperSuperCombination
edIncreaseEnginesPower
edIncreaseEnginesPower_Buggy
edIncreaseSpeedButtonMax
edIncreaseSystemsPower
edIncreaseSystemsPower_Buggy
edIncreaseWeaponsPower
edIncreaseWeaponsPower_Buggy
edLandingGearToggle
edLeftThrustButton
edLeftThrustButton_Landing
edMicrophoneMute
edMouseReset
edOpenOrders
edOrbitLinesToggle
edOrderAggressiveBehaviour
edOrderDefensiveBehaviour
edOrderFocusTarget
edOrderFollow
edOrderHoldFire
edOrderHoldPosition
edOrderRequestDock
edPause
edPhotoCameraToggle
edPhotoCameraToggle_Buggy
edPitchDownButton
edPitchDownButton_Landing
edPitchUpButton
edPitchUpButton_Landing
edPrimaryFire
edQuickCommsPanel
edQuickCommsPanel_Buggy
edRadarDecreaseRange
edRadarIncreaseRange
edRecallDismissShip
edResetPowerDistribution
edResetPowerDistribution_Buggy
edRightThrustButton
edRightThrustButton_Landing
edRollLeftButton
edRollLeftButton_Landing
edRollRightButton
edRollRightButton_Landing
edSecondaryFire
edSelectHighestThreat
edSelectTarget
edSelectTarget_Buggy
edSelectTargetsTarget
edSetSpeed100
edSetSpeed25
edSetSpeed50
edSetSpeed75
edSetSpeedMinus100
edSetSpeedMinus25
edSetSpeedMinus50
edSetSpeedMinus75
edSetSpeedZero
edShipSpotLightToggle
edShowPGScoreSummaryInput
edSteerLeftButton
edSteerRightButton
edSupercruise
edSystemMapOpen
edSystemMapOpen_Buggy
edTargetNextRouteSystem
edTargetWingman0
edTargetWingman1
edTargetWingman2
edToggleBuggyTurretButton
edToggleButtonUpInput
edToggleCargoScoop
edToggleCargoScoop_Buggy
edToggleDriveAssist
edToggleFlightAssist
edToggleReverseThrottleInput
edUI_Back
edUI_Down
edUI_Left
edUI_Right
edUI_Select
edUI_Toggle
edUI_Up
edUIFocus
edUIFocus_Buggy
edUpThrustButton
edUpThrustButton_Landing
edUseAlternateFlightValuesToggle
edUseBoostJuice
edUseShieldCell
edVerticalThrustersButton
edWeaponColourToggle
edWingNavLock
edYawLeftButton
edYawLeftButton_Landing
edYawRightButton
edYawRightButton_Landing
edYawToRollButton
--------------------------------------------------------------------------------------------------------------------------------
Version History
--------------------------------------------------------------------------------------------------------------------------------
v1.0 - Initial release
v1.0.0.1 - Fixed file sorting issue when accessing .binds files.

212
bindED.cs Normal file
View file

@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.IO;
namespace bindEDplugin
{
public class bindEDPlugin
{
private static Dictionary<String, int> _map = new Dictionary<string, int>(256);
public static string VA_DisplayName()
{
return "bindED Plugin v1.0";
}
public static string VA_DisplayInfo()
{
return "bindED Plugin\r\n\r\n2016 VoiceAttack.com";
}
public static Guid VA_Id()
{
return new Guid("{53D74F33-3F5C-487B-B6D2-A17593DEBE05}");
}
public static void VA_Init1(dynamic vaProxy)
{
LoadBinds(vaProxy, false);
}
private static String GetPluginPath(dynamic vaProxy)
{
return Path.GetDirectoryName(vaProxy.PluginPath());
}
public static void LoadBinds(dynamic vaProxy, Boolean fromInvoke)
{
String strDir = GetPluginPath(vaProxy);
try
{
String strMap = Path.Combine(strDir, "EDMap.txt");
if (File.Exists(strMap))
{
foreach (String line in File.ReadAllLines(strMap, System.Text.Encoding.UTF8))
{
String[] arItem = line.Split(";".ToCharArray(), 2, StringSplitOptions.RemoveEmptyEntries);
if ((arItem.Count() == 2) && (!String.IsNullOrWhiteSpace(arItem[0])) && (!_map.ContainsKey(arItem[0])))
{
ushort iKey;
if (ushort.TryParse(arItem[1], out iKey))
{
if (iKey > 0 && iKey < 256)
_map.Add(arItem[0].Trim(), iKey);
}
}
}
}
else
{
vaProxy.WriteToLog("bindED Error - EDMap.txt does not exist. Make sure the EDMap.txt file exists in the same folder as this plugin, otherwise this plugin has nothing to process and cannot continue.", "red");
return;
}
}
catch (Exception ex)
{
vaProxy.WriteToLog("bindED Error - " + ex.Message, "red");
return;
}
if (_map.Count == 0)
{
vaProxy.WriteToLog("bindED Error - EDMap.txt does not contain any elements.", "red");
return;
}
String[] files = null;
if (fromInvoke)
{
if (!String.IsNullOrWhiteSpace(vaProxy.Context))
{
files = ((String)vaProxy.Context).Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
}
else
{
String strBindsDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Frontier Developments\Elite Dangerous\Options\Bindings");
if (System.IO.Directory.Exists(strBindsDir))
{
FileInfo[] bindFiles = new DirectoryInfo(strBindsDir).GetFiles().Where(i => i.Extension == ".binds").OrderByDescending(p => p.LastWriteTime).ToArray();
if (bindFiles.Count() > 0)
files = new string[] { bindFiles[0].FullName };
}
}
}
else
{
try
{
files = System.IO.Directory.GetFiles(strDir, "*.lnk", SearchOption.TopDirectoryOnly);
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
for (int i = 0; i < files.Count(); i++)
{
files[i] = ((IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(files[i])).TargetPath;
}
}
catch (Exception ex)
{
vaProxy.WriteToLog("bindED Error - " + ex.Message, "red");
return;
}
}
try
{
foreach (String file in files)
{
if (File.Exists(file))
{
XElement rootElement = null;
try
{
rootElement = XElement.Load(file);
}
catch (Exception ex)
{
vaProxy.WriteToLog("bindED Error - " + ex.Message, "red");
return;
}
if (rootElement != null)
{
foreach (XElement c in rootElement.Elements().Where(i => i.Elements().Count() > 0))
{
foreach (var element in c.Elements().Where(i => i.HasAttributes))
{
List<int> _keys = new List<int>();
if (element.Name == "Primary")
{
if (element.Attribute("Device").Value == "Keyboard" && !String.IsNullOrWhiteSpace(element.Attribute("Key").Value) && element.Attribute("Key").Value.StartsWith("Key_"))
{
foreach (var modifier in element.Elements().Where(i => i.Name.LocalName == "Modifier"))
{
if (_map.ContainsKey(modifier.Attribute("Key").Value))
_keys.Add(_map[modifier.Attribute("Key").Value]);
}
if (_map.ContainsKey(element.Attribute("Key").Value))
_keys.Add(_map[element.Attribute("Key").Value]);
}
}
if (_keys.Count == 0) //nothing found in primary... look in secondary
{
if (element.Name == "Secondary")
{
if (element.Attribute("Device").Value == "Keyboard" && !String.IsNullOrWhiteSpace(element.Attribute("Key").Value) && element.Attribute("Key").Value.StartsWith("Key_"))
{
foreach (var modifier in element.Elements().Where(i => i.Name.LocalName == "Modifier"))
{
if (_map.ContainsKey(modifier.Attribute("Key").Value))
_keys.Add(_map[modifier.Attribute("Key").Value]);
}
if (_map.ContainsKey(element.Attribute("Key").Value))
_keys.Add(_map[element.Attribute("Key").Value]);
}
}
}
if (_keys.Count > 0)
{
String strTextValue = String.Empty;
foreach (int key in _keys)
strTextValue += String.Format("[{0}]", key);
vaProxy.SetText("ed" + c.Name.LocalName, strTextValue);
}
}
}
}
}
else
{
vaProxy.WriteToLog("bindED Error - The target file indicated by the shortcut does not exist: " + file, "red");
return;
}
}
}
catch(Exception ex)
{
vaProxy.WriteToLog("bindED Error - " + ex.Message, "red");
return;
}
}
public static void VA_Exit1(dynamic vaProxy)
{
}
public static void VA_StopCommand()
{
}
public static void VA_Invoke1(dynamic vaProxy)
{
LoadBinds(vaProxy, true);
}
}
}

66
bindEDplugin.csproj Normal file
View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.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>{C8AC9134-639D-45D2-B5EF-138E0550E0C9}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>bindEDplugin</RootNamespace>
<AssemblyName>bindEDplugin</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="bindED.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="IWshRuntimeLibrary">
<Guid>{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>