rautomation 2.0.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +41 -0
  4. data/.rspec +2 -0
  5. data/.yardopts +8 -0
  6. data/CHANGES.md +276 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +20 -0
  9. data/README.md +142 -0
  10. data/Rakefile +73 -0
  11. data/ext/AutoItX/AutoItX.chm +0 -0
  12. data/ext/AutoItX/AutoItX3.dll +0 -0
  13. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.cpp +30 -0
  14. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj +179 -0
  15. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj.filters +42 -0
  16. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj.user +3 -0
  17. data/ext/IAccessibleDLL/IAccessibleDLL/ReadMe.txt +48 -0
  18. data/ext/IAccessibleDLL/IAccessibleDLL/dllmain.cpp +19 -0
  19. data/ext/IAccessibleDLL/IAccessibleDLL/stdafx.cpp +8 -0
  20. data/ext/IAccessibleDLL/IAccessibleDLL/stdafx.h +22 -0
  21. data/ext/IAccessibleDLL/IAccessibleDLL/table_support.cpp +282 -0
  22. data/ext/IAccessibleDLL/IAccessibleDLL/targetver.h +8 -0
  23. data/ext/IAccessibleDLL/IAccessibleDLL.sln +31 -0
  24. data/ext/IAccessibleDLL/IAccessibleDLL.suo +0 -0
  25. data/ext/IAccessibleDLL/Release/IAccessibleDLL.dll +0 -0
  26. data/ext/UiaDll/RAutomation.UIA/Controls/Clicker.cs +63 -0
  27. data/ext/UiaDll/RAutomation.UIA/Controls/SelectList.cs +116 -0
  28. data/ext/UiaDll/RAutomation.UIA/Controls/Spinner.cs +46 -0
  29. data/ext/UiaDll/RAutomation.UIA/Controls/TabControl.cs +54 -0
  30. data/ext/UiaDll/RAutomation.UIA/Controls/TableControl.cs +132 -0
  31. data/ext/UiaDll/RAutomation.UIA/Controls/TextControl.cs +50 -0
  32. data/ext/UiaDll/RAutomation.UIA/Expander.cs +59 -0
  33. data/ext/UiaDll/RAutomation.UIA/Extensions/Element.cs +166 -0
  34. data/ext/UiaDll/RAutomation.UIA/Extensions/Enumerable.cs +76 -0
  35. data/ext/UiaDll/RAutomation.UIA/Extensions/Property.cs +27 -0
  36. data/ext/UiaDll/RAutomation.UIA/Properties/AssemblyInfo.cs +36 -0
  37. data/ext/UiaDll/RAutomation.UIA/Properties/AutomationProperties.cs +18 -0
  38. data/ext/UiaDll/RAutomation.UIA/RAutomation.UIA.csproj +77 -0
  39. data/ext/UiaDll/Release/RAutomation.UIA.dll +0 -0
  40. data/ext/UiaDll/Release/UiaDll.dll +0 -0
  41. data/ext/UiaDll/UiaDll/ArrayHelper.cpp +14 -0
  42. data/ext/UiaDll/UiaDll/ArrayHelper.h +7 -0
  43. data/ext/UiaDll/UiaDll/AssemblyInfo.cpp +40 -0
  44. data/ext/UiaDll/UiaDll/ControlMethods.cpp +16 -0
  45. data/ext/UiaDll/UiaDll/DynamicAssemblyResolver.cpp +24 -0
  46. data/ext/UiaDll/UiaDll/DynamicAssemblyResolver.h +16 -0
  47. data/ext/UiaDll/UiaDll/Locator.cpp +93 -0
  48. data/ext/UiaDll/UiaDll/Locator.h +55 -0
  49. data/ext/UiaDll/UiaDll/MenuItemSelector.cpp +75 -0
  50. data/ext/UiaDll/UiaDll/MenuItemSelector.h +24 -0
  51. data/ext/UiaDll/UiaDll/MenuMethods.cpp +62 -0
  52. data/ext/UiaDll/UiaDll/ReadMe.txt +38 -0
  53. data/ext/UiaDll/UiaDll/SelectListMethods.cpp +84 -0
  54. data/ext/UiaDll/UiaDll/SpinnerMethods.cpp +61 -0
  55. data/ext/UiaDll/UiaDll/StringHelper.cpp +57 -0
  56. data/ext/UiaDll/UiaDll/StringHelper.h +15 -0
  57. data/ext/UiaDll/UiaDll/StringMethods.cpp +8 -0
  58. data/ext/UiaDll/UiaDll/TabControlMethods.cpp +40 -0
  59. data/ext/UiaDll/UiaDll/TableMethods.cpp +108 -0
  60. data/ext/UiaDll/UiaDll/TextMethods.cpp +25 -0
  61. data/ext/UiaDll/UiaDll/ToggleStateHelper.h +10 -0
  62. data/ext/UiaDll/UiaDll/UiaDll.cpp +216 -0
  63. data/ext/UiaDll/UiaDll/UiaDll.h +13 -0
  64. data/ext/UiaDll/UiaDll/UiaDll.vcxproj +167 -0
  65. data/ext/UiaDll/UiaDll/UiaDll.vcxproj.filters +110 -0
  66. data/ext/UiaDll/UiaDll/app.ico +0 -0
  67. data/ext/UiaDll/UiaDll/app.rc +0 -0
  68. data/ext/UiaDll/UiaDll/dllmain.cpp +1 -0
  69. data/ext/UiaDll/UiaDll/resource.h +3 -0
  70. data/ext/UiaDll/UiaDll/stdafx.cpp +5 -0
  71. data/ext/UiaDll/UiaDll/stdafx.h +41 -0
  72. data/ext/UiaDll/UiaDll/targetver.h +8 -0
  73. data/ext/UiaDll/UiaDll.sln +57 -0
  74. data/ext/WindowsForms/.nuget/NuGet.Config +6 -0
  75. data/ext/WindowsForms/.nuget/NuGet.exe +0 -0
  76. data/ext/WindowsForms/.nuget/NuGet.targets +136 -0
  77. data/ext/WindowsForms/Release/FizzWare.NBuilder.dll +0 -0
  78. data/ext/WindowsForms/Release/UIA.Extensions.dll +0 -0
  79. data/ext/WindowsForms/Release/WindowsForms.exe +0 -0
  80. data/ext/WindowsForms/WindowsForms/AboutBox.Designer.cs +168 -0
  81. data/ext/WindowsForms/WindowsForms/AboutBox.cs +103 -0
  82. data/ext/WindowsForms/WindowsForms/AboutBox.resx +123 -0
  83. data/ext/WindowsForms/WindowsForms/DataEntryForm.Designer.cs +218 -0
  84. data/ext/WindowsForms/WindowsForms/DataEntryForm.cs +52 -0
  85. data/ext/WindowsForms/WindowsForms/DataEntryForm.resx +120 -0
  86. data/ext/WindowsForms/WindowsForms/DataGridView.Designer.cs +77 -0
  87. data/ext/WindowsForms/WindowsForms/DataGridView.cs +43 -0
  88. data/ext/WindowsForms/WindowsForms/DataGridView.resx +120 -0
  89. data/ext/WindowsForms/WindowsForms/FizzWare.NBuilder.dll +0 -0
  90. data/ext/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +527 -0
  91. data/ext/WindowsForms/WindowsForms/MainFormWindow.cs +109 -0
  92. data/ext/WindowsForms/WindowsForms/MainFormWindow.resx +126 -0
  93. data/ext/WindowsForms/WindowsForms/PersonForm.Designer.cs +119 -0
  94. data/ext/WindowsForms/WindowsForms/PersonForm.cs +34 -0
  95. data/ext/WindowsForms/WindowsForms/PersonForm.resx +120 -0
  96. data/ext/WindowsForms/WindowsForms/Program.cs +21 -0
  97. data/ext/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs +36 -0
  98. data/ext/WindowsForms/WindowsForms/Properties/Resources.Designer.cs +71 -0
  99. data/ext/WindowsForms/WindowsForms/Properties/Resources.resx +117 -0
  100. data/ext/WindowsForms/WindowsForms/Properties/Settings.Designer.cs +30 -0
  101. data/ext/WindowsForms/WindowsForms/Properties/Settings.settings +7 -0
  102. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs +93 -0
  103. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.cs +19 -0
  104. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.resx +120 -0
  105. data/ext/WindowsForms/WindowsForms/UIA.Extensions.dll +0 -0
  106. data/ext/WindowsForms/WindowsForms/ValueMonthCalendar.cs +28 -0
  107. data/ext/WindowsForms/WindowsForms/WindowsForms.csproj +166 -0
  108. data/ext/WindowsForms/WindowsForms/packages.config +4 -0
  109. data/ext/WindowsForms/WindowsForms.sln +46 -0
  110. data/lib/rautomation/adapter/autoit/button.rb +59 -0
  111. data/lib/rautomation/adapter/autoit/locators.rb +22 -0
  112. data/lib/rautomation/adapter/autoit/mouse.rb +38 -0
  113. data/lib/rautomation/adapter/autoit/text_field.rb +70 -0
  114. data/lib/rautomation/adapter/autoit/window.rb +197 -0
  115. data/lib/rautomation/adapter/autoit.rb +8 -0
  116. data/lib/rautomation/adapter/helper.rb +64 -0
  117. data/lib/rautomation/adapter/ms_uia/button.rb +21 -0
  118. data/lib/rautomation/adapter/ms_uia/button_helper.rb +19 -0
  119. data/lib/rautomation/adapter/ms_uia/checkbox.rb +23 -0
  120. data/lib/rautomation/adapter/ms_uia/constants.rb +111 -0
  121. data/lib/rautomation/adapter/ms_uia/control.rb +134 -0
  122. data/lib/rautomation/adapter/ms_uia/functions.rb +279 -0
  123. data/lib/rautomation/adapter/ms_uia/keys.rb +121 -0
  124. data/lib/rautomation/adapter/ms_uia/keystroke_converter.rb +122 -0
  125. data/lib/rautomation/adapter/ms_uia/label.rb +18 -0
  126. data/lib/rautomation/adapter/ms_uia/list_box.rb +46 -0
  127. data/lib/rautomation/adapter/ms_uia/list_item.rb +22 -0
  128. data/lib/rautomation/adapter/ms_uia/locators.rb +23 -0
  129. data/lib/rautomation/adapter/ms_uia/menu.rb +36 -0
  130. data/lib/rautomation/adapter/ms_uia/radio.rb +23 -0
  131. data/lib/rautomation/adapter/ms_uia/select_list.rb +85 -0
  132. data/lib/rautomation/adapter/ms_uia/spinner.rb +31 -0
  133. data/lib/rautomation/adapter/ms_uia/tab_control.rb +46 -0
  134. data/lib/rautomation/adapter/ms_uia/table.rb +140 -0
  135. data/lib/rautomation/adapter/ms_uia/text_field.rb +39 -0
  136. data/lib/rautomation/adapter/ms_uia/uia_dll.rb +428 -0
  137. data/lib/rautomation/adapter/ms_uia/value_control.rb +21 -0
  138. data/lib/rautomation/adapter/ms_uia/window.rb +289 -0
  139. data/lib/rautomation/adapter/ms_uia.rb +27 -0
  140. data/lib/rautomation/adapter/win_32/button.rb +14 -0
  141. data/lib/rautomation/adapter/win_32/button_helper.rb +24 -0
  142. data/lib/rautomation/adapter/win_32/checkbox.rb +14 -0
  143. data/lib/rautomation/adapter/win_32/constants.rb +73 -0
  144. data/lib/rautomation/adapter/win_32/control.rb +86 -0
  145. data/lib/rautomation/adapter/win_32/functions.rb +336 -0
  146. data/lib/rautomation/adapter/win_32/keys.rb +146 -0
  147. data/lib/rautomation/adapter/win_32/label.rb +10 -0
  148. data/lib/rautomation/adapter/win_32/list_box.rb +40 -0
  149. data/lib/rautomation/adapter/win_32/locators.rb +22 -0
  150. data/lib/rautomation/adapter/win_32/mouse.rb +59 -0
  151. data/lib/rautomation/adapter/win_32/password_field.rb +15 -0
  152. data/lib/rautomation/adapter/win_32/radio.rb +11 -0
  153. data/lib/rautomation/adapter/win_32/select_list.rb +97 -0
  154. data/lib/rautomation/adapter/win_32/table.rb +25 -0
  155. data/lib/rautomation/adapter/win_32/text_field.rb +52 -0
  156. data/lib/rautomation/adapter/win_32/window.rb +277 -0
  157. data/lib/rautomation/adapter/win_32.rb +23 -0
  158. data/lib/rautomation/button.rb +55 -0
  159. data/lib/rautomation/element_collections.rb +55 -0
  160. data/lib/rautomation/platform.rb +15 -0
  161. data/lib/rautomation/text_field.rb +60 -0
  162. data/lib/rautomation/version.rb +3 -0
  163. data/lib/rautomation/wait_helper.rb +23 -0
  164. data/lib/rautomation/window.rb +248 -0
  165. data/lib/rautomation.rb +8 -0
  166. data/rautomation.gemspec +52 -0
  167. data/spec/adapter/autoit/mouse_spec.rb +53 -0
  168. data/spec/adapter/autoit/window_spec.rb +17 -0
  169. data/spec/adapter/ms_uia/button_spec.rb +39 -0
  170. data/spec/adapter/ms_uia/checkbox_spec.rb +55 -0
  171. data/spec/adapter/ms_uia/control_spec.rb +88 -0
  172. data/spec/adapter/ms_uia/functions_spec.rb +39 -0
  173. data/spec/adapter/ms_uia/keystroke_converter_spec.rb +48 -0
  174. data/spec/adapter/ms_uia/label_spec.rb +18 -0
  175. data/spec/adapter/ms_uia/list_item_spec.rb +14 -0
  176. data/spec/adapter/ms_uia/listbox_spec.rb +73 -0
  177. data/spec/adapter/ms_uia/radio_spec.rb +39 -0
  178. data/spec/adapter/ms_uia/select_list_spec.rb +118 -0
  179. data/spec/adapter/ms_uia/spinner_spec.rb +44 -0
  180. data/spec/adapter/ms_uia/tab_control_spec.rb +53 -0
  181. data/spec/adapter/ms_uia/table_spec.rb +197 -0
  182. data/spec/adapter/ms_uia/text_field_spec.rb +43 -0
  183. data/spec/adapter/ms_uia/value_control_spec.rb +11 -0
  184. data/spec/adapter/ms_uia/window_spec.rb +81 -0
  185. data/spec/adapter/win_32/button_spec.rb +31 -0
  186. data/spec/adapter/win_32/checkbox_spec.rb +46 -0
  187. data/spec/adapter/win_32/label_spec.rb +13 -0
  188. data/spec/adapter/win_32/listbox_spec.rb +41 -0
  189. data/spec/adapter/win_32/mouse_spec.rb +49 -0
  190. data/spec/adapter/win_32/radio_spec.rb +33 -0
  191. data/spec/adapter/win_32/select_list_spec.rb +65 -0
  192. data/spec/adapter/win_32/table_spec.rb +27 -0
  193. data/spec/adapter/win_32/text_field_spec.rb +24 -0
  194. data/spec/adapter/win_32/window_spec.rb +61 -0
  195. data/spec/button_spec.rb +67 -0
  196. data/spec/buttons_spec.rb +21 -0
  197. data/spec/spec_helper.rb +128 -0
  198. data/spec/text_field_spec.rb +64 -0
  199. data/spec/text_fields_spec.rb +22 -0
  200. data/spec/window_spec.rb +150 -0
  201. data/spec/windows_spec.rb +76 -0
  202. metadata +369 -0
@@ -0,0 +1,179 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug|x64">
9
+ <Configuration>Debug</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Release|Win32">
13
+ <Configuration>Release</Configuration>
14
+ <Platform>Win32</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <ProjectGuid>{CCE6C620-932C-4B59-A2DA-E11E279F4D9A}</ProjectGuid>
23
+ <Keyword>Win32Proj</Keyword>
24
+ <RootNamespace>IAccessibleDLL</RootNamespace>
25
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
26
+ </PropertyGroup>
27
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
28
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
29
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
30
+ <UseDebugLibraries>true</UseDebugLibraries>
31
+ <CharacterSet>Unicode</CharacterSet>
32
+ <PlatformToolset>v143</PlatformToolset>
33
+ </PropertyGroup>
34
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
35
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
36
+ <UseDebugLibraries>true</UseDebugLibraries>
37
+ <CharacterSet>Unicode</CharacterSet>
38
+ <PlatformToolset>v143</PlatformToolset>
39
+ </PropertyGroup>
40
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
41
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
42
+ <UseDebugLibraries>false</UseDebugLibraries>
43
+ <WholeProgramOptimization>true</WholeProgramOptimization>
44
+ <CharacterSet>Unicode</CharacterSet>
45
+ <PlatformToolset>v143</PlatformToolset>
46
+ </PropertyGroup>
47
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
48
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
49
+ <UseDebugLibraries>false</UseDebugLibraries>
50
+ <WholeProgramOptimization>true</WholeProgramOptimization>
51
+ <CharacterSet>Unicode</CharacterSet>
52
+ <PlatformToolset>v143</PlatformToolset>
53
+ </PropertyGroup>
54
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
55
+ <ImportGroup Label="ExtensionSettings">
56
+ </ImportGroup>
57
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
58
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
59
+ </ImportGroup>
60
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
61
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
62
+ </ImportGroup>
63
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
64
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
65
+ </ImportGroup>
66
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
67
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68
+ </ImportGroup>
69
+ <PropertyGroup Label="UserMacros" />
70
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
71
+ <LinkIncremental>true</LinkIncremental>
72
+ </PropertyGroup>
73
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
74
+ <LinkIncremental>true</LinkIncremental>
75
+ </PropertyGroup>
76
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
77
+ <LinkIncremental>false</LinkIncremental>
78
+ <OutDir>$(SolutionDir)$(PlatformTarget)$(Configuration)\</OutDir>
79
+ <IntDir>$(Platform)\$(Configuration)\</IntDir>
80
+ </PropertyGroup>
81
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
82
+ <LinkIncremental>false</LinkIncremental>
83
+ <OutDir>$(SolutionDir)$(PlatformTarget)$(Configuration)\</OutDir>
84
+ </PropertyGroup>
85
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
86
+ <ClCompile>
87
+ <PrecompiledHeader>Use</PrecompiledHeader>
88
+ <WarningLevel>Level3</WarningLevel>
89
+ <Optimization>Disabled</Optimization>
90
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;IACCESSIBLEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
91
+ </ClCompile>
92
+ <Link>
93
+ <SubSystem>Windows</SubSystem>
94
+ <GenerateDebugInformation>true</GenerateDebugInformation>
95
+ </Link>
96
+ </ItemDefinitionGroup>
97
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
98
+ <ClCompile>
99
+ <PrecompiledHeader>Use</PrecompiledHeader>
100
+ <WarningLevel>Level3</WarningLevel>
101
+ <Optimization>Disabled</Optimization>
102
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;IACCESSIBLEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
103
+ </ClCompile>
104
+ <Link>
105
+ <SubSystem>Windows</SubSystem>
106
+ <GenerateDebugInformation>true</GenerateDebugInformation>
107
+ </Link>
108
+ </ItemDefinitionGroup>
109
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
110
+ <ClCompile>
111
+ <WarningLevel>Level3</WarningLevel>
112
+ <PrecompiledHeader>Use</PrecompiledHeader>
113
+ <Optimization>MaxSpeed</Optimization>
114
+ <FunctionLevelLinking>true</FunctionLevelLinking>
115
+ <IntrinsicFunctions>true</IntrinsicFunctions>
116
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;IACCESSIBLEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
117
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
118
+ </ClCompile>
119
+ <Link>
120
+ <SubSystem>Windows</SubSystem>
121
+ <GenerateDebugInformation>true</GenerateDebugInformation>
122
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
123
+ <OptimizeReferences>true</OptimizeReferences>
124
+ <AdditionalDependencies>oleacc.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
125
+ </Link>
126
+ </ItemDefinitionGroup>
127
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
128
+ <ClCompile>
129
+ <WarningLevel>Level3</WarningLevel>
130
+ <PrecompiledHeader>Use</PrecompiledHeader>
131
+ <Optimization>MaxSpeed</Optimization>
132
+ <FunctionLevelLinking>true</FunctionLevelLinking>
133
+ <IntrinsicFunctions>true</IntrinsicFunctions>
134
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;IACCESSIBLEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
135
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
136
+ </ClCompile>
137
+ <Link>
138
+ <SubSystem>Windows</SubSystem>
139
+ <GenerateDebugInformation>true</GenerateDebugInformation>
140
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
141
+ <OptimizeReferences>true</OptimizeReferences>
142
+ <AdditionalDependencies>oleacc.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
143
+ </Link>
144
+ </ItemDefinitionGroup>
145
+ <ItemGroup>
146
+ <None Include="ReadMe.txt" />
147
+ </ItemGroup>
148
+ <ItemGroup>
149
+ <ClInclude Include="stdafx.h" />
150
+ <ClInclude Include="targetver.h" />
151
+ </ItemGroup>
152
+ <ItemGroup>
153
+ <ClCompile Include="dllmain.cpp">
154
+ <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
155
+ <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>
156
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
157
+ </PrecompiledHeader>
158
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
159
+ </PrecompiledHeader>
160
+ <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsManaged>
161
+ <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsManaged>
162
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
163
+ </PrecompiledHeader>
164
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
165
+ </PrecompiledHeader>
166
+ </ClCompile>
167
+ <ClCompile Include="IAccessibleDLL.cpp" />
168
+ <ClCompile Include="stdafx.cpp">
169
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
170
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
171
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
172
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
173
+ </ClCompile>
174
+ <ClCompile Include="table_support.cpp" />
175
+ </ItemGroup>
176
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
177
+ <ImportGroup Label="ExtensionTargets">
178
+ </ImportGroup>
179
+ </Project>
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ </ItemGroup>
17
+ <ItemGroup>
18
+ <None Include="ReadMe.txt" />
19
+ </ItemGroup>
20
+ <ItemGroup>
21
+ <ClInclude Include="stdafx.h">
22
+ <Filter>Header Files</Filter>
23
+ </ClInclude>
24
+ <ClInclude Include="targetver.h">
25
+ <Filter>Header Files</Filter>
26
+ </ClInclude>
27
+ </ItemGroup>
28
+ <ItemGroup>
29
+ <ClCompile Include="stdafx.cpp">
30
+ <Filter>Source Files</Filter>
31
+ </ClCompile>
32
+ <ClCompile Include="IAccessibleDLL.cpp">
33
+ <Filter>Source Files</Filter>
34
+ </ClCompile>
35
+ <ClCompile Include="dllmain.cpp">
36
+ <Filter>Source Files</Filter>
37
+ </ClCompile>
38
+ <ClCompile Include="table_support.cpp">
39
+ <Filter>Source Files</Filter>
40
+ </ClCompile>
41
+ </ItemGroup>
42
+ </Project>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ </Project>
@@ -0,0 +1,48 @@
1
+ ========================================================================
2
+ DYNAMIC LINK LIBRARY : IAccessibleDLL Project Overview
3
+ ========================================================================
4
+
5
+ AppWizard has created this IAccessibleDLL DLL for you.
6
+
7
+ This file contains a summary of what you will find in each of the files that
8
+ make up your IAccessibleDLL application.
9
+
10
+
11
+ IAccessibleDLL.vcxproj
12
+ This is the main project file for VC++ projects generated using an Application Wizard.
13
+ It contains information about the version of Visual C++ that generated the file, and
14
+ information about the platforms, configurations, and project features selected with the
15
+ Application Wizard.
16
+
17
+ IAccessibleDLL.vcxproj.filters
18
+ This is the filters file for VC++ projects generated using an Application Wizard.
19
+ It contains information about the association between the files in your project
20
+ and the filters. This association is used in the IDE to show grouping of files with
21
+ similar extensions under a specific node (for e.g. ".cpp" files are associated with the
22
+ "Source Files" filter).
23
+
24
+ IAccessibleDLL.cpp
25
+ This is the main DLL source file.
26
+
27
+ When created, this DLL does not export any symbols. As a result, it
28
+ will not produce a .lib file when it is built. If you wish this project
29
+ to be a project dependency of some other project, you will either need to
30
+ add code to export some symbols from the DLL so that an export library
31
+ will be produced, or you can set the Ignore Input Library property to Yes
32
+ on the General propert page of the Linker folder in the project's Property
33
+ Pages dialog box.
34
+
35
+ /////////////////////////////////////////////////////////////////////////////
36
+ Other standard files:
37
+
38
+ StdAfx.h, StdAfx.cpp
39
+ These files are used to build a precompiled header (PCH) file
40
+ named IAccessibleDLL.pch and a precompiled types file named StdAfx.obj.
41
+
42
+ /////////////////////////////////////////////////////////////////////////////
43
+ Other notes:
44
+
45
+ AppWizard uses "TODO:" comments to indicate parts of the source code you
46
+ should add to or customize.
47
+
48
+ /////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,19 @@
1
+ // dllmain.cpp : Defines the entry point for the DLL application.
2
+ #include "stdafx.h"
3
+
4
+ BOOL APIENTRY DllMain( HMODULE hModule,
5
+ DWORD ul_reason_for_call,
6
+ LPVOID lpReserved
7
+ )
8
+ {
9
+ switch (ul_reason_for_call)
10
+ {
11
+ case DLL_PROCESS_ATTACH:
12
+ case DLL_THREAD_ATTACH:
13
+ case DLL_THREAD_DETACH:
14
+ case DLL_PROCESS_DETACH:
15
+ break;
16
+ }
17
+ return TRUE;
18
+ }
19
+
@@ -0,0 +1,8 @@
1
+ // stdafx.cpp : source file that includes just the standard includes
2
+ // IAccessibleDLL.pch will be the pre-compiled header
3
+ // stdafx.obj will contain the pre-compiled type information
4
+
5
+ #include "stdafx.h"
6
+
7
+ // TODO: reference any additional headers you need in STDAFX.H
8
+ // and not in this file
@@ -0,0 +1,22 @@
1
+ // stdafx.h : include file for standard system include files,
2
+ // or project specific include files that are used frequently, but
3
+ // are changed infrequently
4
+ //
5
+
6
+ #pragma once
7
+
8
+ #include "targetver.h"
9
+
10
+ #include <stdlib.h>
11
+
12
+ #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
13
+
14
+ #include <stdio.h>
15
+ #include <tchar.h>
16
+ #include <windows.h>
17
+ #include <objbase.h>
18
+ #include <OleAcc.h>
19
+ #include <Commctrl.h>
20
+ #include <comutil.h>
21
+
22
+ // TODO: reference additional headers your program requires here
@@ -0,0 +1,282 @@
1
+ #include "stdafx.h"
2
+
3
+ #define BUFFER_SIZE 255
4
+
5
+ long get_number_of_rows(IAccessible *pAccessible) {
6
+ long count ;
7
+
8
+ pAccessible->get_accChildCount(&count) ;
9
+ return count ;
10
+ }
11
+
12
+ void get_name(long childId, IAccessible *pAccessible, char *itemText) {
13
+ BSTR bstrValue ;
14
+
15
+ VARIANT varIn ;
16
+ VariantInit(&varIn) ;
17
+ varIn.vt = VT_I4 ;
18
+ varIn.lVal = childId ;
19
+
20
+ if (pAccessible->get_accName(varIn, &bstrValue) == S_OK) {
21
+ char *pszName = _com_util::ConvertBSTRToString(bstrValue) ;
22
+ strcpy(itemText, pszName) ;
23
+ delete[] pszName ;
24
+ SysFreeString(bstrValue) ;
25
+ } else
26
+ strcpy(itemText, "\0") ;
27
+ }
28
+
29
+ HRESULT get_role(long childId, IAccessible *pAccessible, long *pRole) {
30
+ VARIANT varIn ;
31
+ VariantInit(&varIn) ;
32
+ varIn.vt = VT_I4 ;
33
+ varIn.lVal = childId ;
34
+
35
+ VARIANT varOut ;
36
+ VariantInit(&varOut) ;
37
+ varOut.vt = VT_I4 ;
38
+
39
+ HRESULT hr = pAccessible->get_accRole(varIn, &varOut) ;
40
+ *pRole = varOut.lVal ;
41
+
42
+ return hr ;
43
+ }
44
+
45
+ void get_role(long childId, IAccessible *pAccessible, char *itemText) {
46
+ long role ;
47
+
48
+ if (get_role(childId, pAccessible, &role) == S_OK) {
49
+ int roleTextMax = 255 ;
50
+ LPTSTR pRoleText = new TCHAR[roleTextMax] ;
51
+ GetRoleText(role, pRoleText, roleTextMax) ;
52
+
53
+ int lenSzRoleText = 255 ;
54
+ char *pszRoleText = new char[lenSzRoleText] ;
55
+ WideCharToMultiByte(CP_ACP, 0, pRoleText, wcslen(pRoleText) + 1, pszRoleText, lenSzRoleText, NULL, NULL) ;
56
+
57
+ sprintf(itemText, "0x%x, %s", role, pszRoleText) ;
58
+ }
59
+ }
60
+
61
+ void get_description(long childId, IAccessible *pAccessible, char *itemText) {
62
+ BSTR bstrValue ;
63
+
64
+ VARIANT varIn ;
65
+ VariantInit(&varIn) ;
66
+ varIn.vt = VT_I4 ;
67
+ varIn.lVal = childId ;
68
+
69
+ if (pAccessible->get_accDescription(varIn, &bstrValue) == S_OK) {
70
+ char *pszName = _com_util::ConvertBSTRToString(bstrValue) ;
71
+ strcpy(itemText, pszName) ;
72
+ delete[] pszName ;
73
+ SysFreeString(bstrValue) ;
74
+ } else
75
+ strcpy(itemText, "\0") ;
76
+ }
77
+
78
+ void walk_tree(IAccessible *pAccessible, char **pColumnHeaderNames, long *pColumnHeadersCount) {
79
+ HRESULT hr ;
80
+ long childCount ;
81
+
82
+ hr = pAccessible->get_accChildCount(&childCount) ;
83
+ if (FAILED(hr) || childCount == 0)
84
+ return ;
85
+
86
+ VARIANT *pChildVariants = new VARIANT[childCount] ;
87
+ long childrenFound ;
88
+ hr = AccessibleChildren(pAccessible, 0, childCount, pChildVariants, &childrenFound) ;
89
+ if (FAILED(hr))
90
+ return ;
91
+
92
+ for (int i=1; i < childrenFound + 1; i++) {
93
+ VARIANT vChild = pChildVariants[i] ;
94
+ if (vChild.vt == VT_DISPATCH) {
95
+ IDispatch *pDispatch = vChild.pdispVal ;
96
+ IAccessible *pChildAccessible = NULL ;
97
+ hr = pDispatch->QueryInterface(IID_IAccessible, (void**) &pChildAccessible) ;
98
+ if (hr == S_OK) {
99
+ walk_tree(pChildAccessible, pColumnHeaderNames, pColumnHeadersCount) ;
100
+
101
+ pChildAccessible->Release() ;
102
+ }
103
+
104
+ pDispatch->Release() ;
105
+ } else {
106
+ long role ;
107
+ get_role(i, pAccessible, &role) ;
108
+ if (role == 0x19) {
109
+ if (pColumnHeaderNames == NULL) {
110
+ *pColumnHeadersCount = *pColumnHeadersCount + 1 ;
111
+ } else {
112
+ char *headerName = (char *)malloc(sizeof(char) * BUFFER_SIZE) ;
113
+ get_name(i, pAccessible, headerName) ;
114
+ pColumnHeaderNames[i - 1] = headerName ;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ void find_column_headers(IAccessible *pAccessible, char ***pHeaderNames, long *pColumns) {
122
+ long columns = 0 ;
123
+
124
+ walk_tree(pAccessible, NULL, &columns) ;
125
+
126
+ char **pHeaders = (char **)malloc(sizeof(char *) * columns) ;
127
+ walk_tree(pAccessible, pHeaders, &columns) ;
128
+
129
+ *pHeaderNames = pHeaders ;
130
+ *pColumns = columns ;
131
+ }
132
+
133
+ char *trimwhitespace(char *str) {
134
+ char *end;
135
+ // Trim leading space
136
+ while(isspace(*str))
137
+ str++;
138
+ if(*str == 0)
139
+ // All spaces?
140
+ return str;
141
+ // Trim trailing space
142
+ end = str + strlen(str) - 1;
143
+
144
+ while(end > str && isspace(*end))
145
+ end--; // Write new null terminator
146
+
147
+ *(end+1) = 0;
148
+
149
+ return str;
150
+ }
151
+
152
+ char* remove_column_header_name(char *columnName, char *item) {
153
+ int itemLen = strlen(item) ;
154
+ int columnNameLen = strlen(columnName) ;
155
+
156
+ if (itemLen > 0) {
157
+ char *newItem = (char *)malloc(sizeof(char *) * (itemLen - columnNameLen)) ; // still a bit too long
158
+
159
+ strcpy(newItem, item + columnNameLen + 2) ; // :<space>
160
+
161
+ free(item) ;
162
+ return newItem ;
163
+ } else
164
+ return item ;
165
+ }
166
+
167
+ extern "C"
168
+ __declspec( dllexport ) void get_table_strings(HMODULE oleAccModule, HWND controlHwnd, void **tableStrings, long *numberOfRowsOut, long *numberOfColumnsOut) {
169
+ // * to *[] to *[] to * string
170
+ IAccessible *pAccessible ;
171
+ LPFNACCESSIBLEOBJECTFROMWINDOW lpfnAccessibleObjectFromWindow ;
172
+
173
+ lpfnAccessibleObjectFromWindow = (LPFNACCESSIBLEOBJECTFROMWINDOW)GetProcAddress(oleAccModule, "AccessibleObjectFromWindow");
174
+
175
+ if (HRESULT hResult = lpfnAccessibleObjectFromWindow(controlHwnd, OBJID_CLIENT, IID_IAccessible, (void**)&pAccessible) == S_OK) {
176
+ int numberOfRows = get_number_of_rows(pAccessible) ; // including the header
177
+ long numberOfColumns = 3 ;
178
+ char ***table_rows ;
179
+ char **pHeaderNames ;
180
+
181
+ find_column_headers(pAccessible, &pHeaderNames, &numberOfColumns) ;
182
+
183
+ table_rows = (char ***)malloc(sizeof(char*) * numberOfRows) ;
184
+ table_rows[0] = pHeaderNames ;
185
+
186
+ for (int row = 1; row < numberOfRows; row++) {
187
+ char **table_row = (char **)malloc(sizeof(char*) * numberOfColumns) ;
188
+
189
+ char *mainItem = (char *)malloc(sizeof(char) * BUFFER_SIZE) ;
190
+ get_name(row, pAccessible, mainItem) ;
191
+
192
+ char *description = (char *)malloc(sizeof(char) * 2048) ;
193
+ get_description(row, pAccessible, description) ;
194
+
195
+ char *token ;
196
+ if (strlen(description) > 0)
197
+ token = strtok(description, ",") ;
198
+ else
199
+ token = NULL ;
200
+
201
+ for (int column = 0; column < numberOfColumns; column++) {
202
+ if (column == 0)
203
+ table_row[column] = mainItem ;
204
+ else {
205
+ char *item = (char *)malloc(sizeof(char) * BUFFER_SIZE) ;
206
+
207
+ if (token != NULL) {
208
+ strcpy(item, token) ;
209
+ token = strtok(NULL, ",") ;
210
+ } else
211
+ strcpy(item, "\0") ;
212
+
213
+ table_row[column] = remove_column_header_name(pHeaderNames[column], trimwhitespace(item)) ;
214
+ }
215
+ }
216
+
217
+ table_rows[row] = table_row ;
218
+ }
219
+
220
+ *tableStrings = table_rows ;
221
+ *numberOfRowsOut = numberOfRows ;
222
+ *numberOfColumnsOut = numberOfColumns ;
223
+ } else {
224
+ *numberOfRowsOut = 0 ;
225
+ *numberOfColumnsOut = 0 ;
226
+ }
227
+ }
228
+
229
+ extern "C"
230
+ __declspec( dllexport ) void get_table_row_strings(HMODULE oleAccModule, HWND controlHwnd, void **pTableRow, long row, long *pColumns) {
231
+ long rows ;
232
+ long columns ;
233
+ char *tableStrings ; // pointer to array
234
+
235
+ get_table_strings(oleAccModule, controlHwnd, (void **)&tableStrings, &rows, &columns) ;
236
+
237
+ *pTableRow = ((char ***)tableStrings)[row] ;
238
+ *pColumns = columns ;
239
+ }
240
+
241
+ extern "C"
242
+ __declspec( dllexport ) void select_table_row(HMODULE oleAccModule, HWND controlHwnd, long row) {
243
+ IAccessible *pAccessible ;
244
+ LPFNACCESSIBLEOBJECTFROMWINDOW lpfnAccessibleObjectFromWindow ;
245
+
246
+ lpfnAccessibleObjectFromWindow = (LPFNACCESSIBLEOBJECTFROMWINDOW)GetProcAddress(oleAccModule, "AccessibleObjectFromWindow");
247
+
248
+ if (HRESULT hResult = lpfnAccessibleObjectFromWindow(controlHwnd, OBJID_CLIENT, IID_IAccessible, (void**)&pAccessible) == S_OK) {
249
+ VARIANT varChild ;
250
+ VariantInit(&varChild) ;
251
+ varChild.vt = VT_I4 ;
252
+ varChild.lVal = row ;
253
+
254
+ pAccessible->accSelect(SELFLAG_ADDSELECTION, varChild) ;
255
+ }
256
+ }
257
+
258
+ extern "C"
259
+ __declspec( dllexport ) long get_table_row_state(HMODULE oleAccModule, HWND controlHwnd, long row) {
260
+ IAccessible *pAccessible ;
261
+ LPFNACCESSIBLEOBJECTFROMWINDOW lpfnAccessibleObjectFromWindow ;
262
+
263
+ lpfnAccessibleObjectFromWindow = (LPFNACCESSIBLEOBJECTFROMWINDOW)GetProcAddress(oleAccModule, "AccessibleObjectFromWindow");
264
+
265
+ if (HRESULT hResult = lpfnAccessibleObjectFromWindow(controlHwnd, OBJID_CLIENT, IID_IAccessible, (void**)&pAccessible) == S_OK) {
266
+ VARIANT varChild ;
267
+ VariantInit(&varChild) ;
268
+ varChild.vt = VT_I4 ;
269
+ varChild.lVal = row ;
270
+
271
+ VARIANT varState ;
272
+
273
+ HRESULT hr = pAccessible->get_accState(varChild, &varState) ;
274
+ if (hr == S_OK) {
275
+ if (varState.vt == VT_I4) {
276
+ return varState.lVal ;
277
+ } else
278
+ return FALSE ;
279
+ } else
280
+ return FALSE ;
281
+ }
282
+ }
@@ -0,0 +1,8 @@
1
+ #pragma once
2
+
3
+ // Including SDKDDKVer.h defines the highest available Windows platform.
4
+
5
+ // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6
+ // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7
+
8
+ #include <SDKDDKVer.h>
@@ -0,0 +1,31 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 15
4
+ VisualStudioVersion = 15.0.28307.1433
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IAccessibleDLL", "IAccessibleDLL\IAccessibleDLL.vcxproj", "{CCE6C620-932C-4B59-A2DA-E11E279F4D9A}"
7
+ EndProject
8
+ Global
9
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+ Debug|Win32 = Debug|Win32
11
+ Debug|x64 = Debug|x64
12
+ Release|Win32 = Release|Win32
13
+ Release|x64 = Release|x64
14
+ EndGlobalSection
15
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
16
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Debug|Win32.ActiveCfg = Debug|Win32
17
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Debug|Win32.Build.0 = Debug|Win32
18
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Debug|x64.ActiveCfg = Debug|x64
19
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Debug|x64.Build.0 = Debug|x64
20
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Release|Win32.ActiveCfg = Release|Win32
21
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Release|Win32.Build.0 = Release|Win32
22
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Release|x64.ActiveCfg = Release|x64
23
+ {CCE6C620-932C-4B59-A2DA-E11E279F4D9A}.Release|x64.Build.0 = Release|x64
24
+ EndGlobalSection
25
+ GlobalSection(SolutionProperties) = preSolution
26
+ HideSolutionNode = FALSE
27
+ EndGlobalSection
28
+ GlobalSection(ExtensibilityGlobals) = postSolution
29
+ SolutionGuid = {C2FC391A-95D8-4338-B7D4-149E4AE6B5ED}
30
+ EndGlobalSection
31
+ EndGlobal