diff --git a/Cls_Jdung/Cls_Jdung.vbproj b/Cls_Jdung/Cls_Jdung.vbproj
index 2172298..e668c62 100644
--- a/Cls_Jdung/Cls_Jdung.vbproj
+++ b/Cls_Jdung/Cls_Jdung.vbproj
@@ -29,7 +29,7 @@
42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
- x86
+ AnyCPUNone
diff --git a/Cls_Karo/Cls_Karo.vbproj b/Cls_Karo/Cls_Karo.vbproj
index 6b2bfc8..8ed2a5a 100644
--- a/Cls_Karo/Cls_Karo.vbproj
+++ b/Cls_Karo/Cls_Karo.vbproj
@@ -29,7 +29,7 @@
42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
- x86
+ AnyCPUNone
diff --git a/Cls_Sknetworks/Cls_SkNetworks.vbproj b/Cls_Sknetworks/Cls_SkNetworks.vbproj
index ab6ce03..31d669e 100644
--- a/Cls_Sknetworks/Cls_SkNetworks.vbproj
+++ b/Cls_Sknetworks/Cls_SkNetworks.vbproj
@@ -29,7 +29,7 @@
42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
- x86
+ AnyCPUNone
diff --git a/Epole/DataBase/irea.mdb b/Epole/DataBase/irea.mdb
index 1e14135..f9c8925 100644
Binary files a/Epole/DataBase/irea.mdb and b/Epole/DataBase/irea.mdb differ
diff --git a/Epole/MakeList.vb b/Epole/MakeList.vb
index d65fdaf..9570e72 100644
--- a/Epole/MakeList.vb
+++ b/Epole/MakeList.vb
@@ -89,7 +89,11 @@ Public Class MakeList
' If DemoDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then End
'End If
- Me.Text = My.Application.Info.ProductName & " Ver. {0}.{1:00}.{2}.{3}"
+ Dim bit64 As String = "x86"
+ If (Environment.Is64BitProcess) Then bit64 = "x64"
+
+
+ Me.Text = $"{My.Application.Info.ProductName} Ver. {0}.{1:00}.{2}.{3} - {bit64}"
Me.Text = System.String.Format(Me.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build, My.Application.Info.Version.Revision)
Me.view1.Font = New Font(ViewFont.FontName, ViewFont.FontSize, Me.Font.Style) '// ҷ
' Me.ToolStrip1.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style) '// ҷ
diff --git a/Epole/My Project/AssemblyInfo.vb b/Epole/My Project/AssemblyInfo.vb
index 72fc8b8..7cff149 100644
--- a/Epole/My Project/AssemblyInfo.vb
+++ b/Epole/My Project/AssemblyInfo.vb
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' 지정되도록 할 수 있습니다.
'
-
-
+
+
diff --git a/Epole/My Project/Settings.Designer.vb b/Epole/My Project/Settings.Designer.vb
index a20503a..4f0852b 100644
--- a/Epole/My Project/Settings.Designer.vb
+++ b/Epole/My Project/Settings.Designer.vb
@@ -15,7 +15,7 @@ Option Explicit On
Namespace My
_
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@@ -29,7 +29,7 @@ Namespace My
Private Shared addedHandlerLockObject As New Object
_
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
@@ -57,7 +57,8 @@ Namespace My
_
+ Global.System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DataBase\simp.accdb"& _
+ "")> _
Public ReadOnly Property ireaConnectionString() As String
Get
Return CType(Me("ireaConnectionString"),String)
diff --git a/Epole/My Project/Settings.settings b/Epole/My Project/Settings.settings
index c469231..bac841f 100644
--- a/Epole/My Project/Settings.settings
+++ b/Epole/My Project/Settings.settings
@@ -4,11 +4,11 @@
<?xml version="1.0" encoding="utf-16"?>
-<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DataBase\irea.mdb</ConnectionString>
+<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <ConnectionString>Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DataBase\simp.accdb</ConnectionString>
<ProviderName>System.Data.OleDb</ProviderName>
</SerializableConnectionString>
- Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DataBase\irea.mdb
+ Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DataBase\simp.accdb
\ No newline at end of file
diff --git a/Epole/app.config b/Epole/app.config
index 68b8c42..f0fbfd2 100644
--- a/Epole/app.config
+++ b/Epole/app.config
@@ -3,7 +3,8 @@
-
+
diff --git a/Epole/dialogForm/DemoDlg.Designer.vb b/Epole/dialogForm/DemoDlg.Designer.vb
index b333dba..fd47d8c 100644
--- a/Epole/dialogForm/DemoDlg.Designer.vb
+++ b/Epole/dialogForm/DemoDlg.Designer.vb
@@ -37,13 +37,13 @@ Partial Class DemoDlg
Me.LabelCopyright = New System.Windows.Forms.Label()
Me.LabelCompanyName = New System.Windows.Forms.Label()
Me.Panel1 = New System.Windows.Forms.Panel()
+ Me.Button3 = New System.Windows.Forms.Button()
+ Me.Panel2 = New System.Windows.Forms.Panel()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
Me.lb_expiredate = New System.Windows.Forms.Label()
Me.lb_msg = New System.Windows.Forms.Label()
- Me.Button3 = New System.Windows.Forms.Button()
- Me.Panel2 = New System.Windows.Forms.Panel()
Me.TableLayoutPanel.SuspendLayout()
CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
@@ -149,6 +149,27 @@ Partial Class DemoDlg
Me.Panel1.Size = New System.Drawing.Size(348, 24)
Me.Panel1.TabIndex = 2
'
+ 'Button3
+ '
+ Me.Button3.BackColor = System.Drawing.Color.Transparent
+ Me.Button3.DialogResult = System.Windows.Forms.DialogResult.Cancel
+ Me.Button3.Dock = System.Windows.Forms.DockStyle.Right
+ Me.Button3.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
+ Me.Button3.Location = New System.Drawing.Point(174, 0)
+ Me.Button3.Name = "Button3"
+ Me.Button3.Size = New System.Drawing.Size(99, 24)
+ Me.Button3.TabIndex = 3
+ Me.Button3.Text = "인증키입력"
+ Me.Button3.UseVisualStyleBackColor = False
+ '
+ 'Panel2
+ '
+ Me.Panel2.Dock = System.Windows.Forms.DockStyle.Right
+ Me.Panel2.Location = New System.Drawing.Point(273, 0)
+ Me.Panel2.Name = "Panel2"
+ Me.Panel2.Size = New System.Drawing.Size(11, 24)
+ Me.Panel2.TabIndex = 4
+ '
'Button2
'
Me.Button2.BackColor = System.Drawing.Color.Transparent
@@ -210,27 +231,6 @@ Partial Class DemoDlg
Me.lb_msg.Text = "."
Me.lb_msg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
- 'Button3
- '
- Me.Button3.BackColor = System.Drawing.Color.Transparent
- Me.Button3.DialogResult = System.Windows.Forms.DialogResult.Cancel
- Me.Button3.Dock = System.Windows.Forms.DockStyle.Right
- Me.Button3.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
- Me.Button3.Location = New System.Drawing.Point(174, 0)
- Me.Button3.Name = "Button3"
- Me.Button3.Size = New System.Drawing.Size(99, 24)
- Me.Button3.TabIndex = 3
- Me.Button3.Text = "인증키입력"
- Me.Button3.UseVisualStyleBackColor = False
- '
- 'Panel2
- '
- Me.Panel2.Dock = System.Windows.Forms.DockStyle.Right
- Me.Panel2.Location = New System.Drawing.Point(273, 0)
- Me.Panel2.Name = "Panel2"
- Me.Panel2.Size = New System.Drawing.Size(11, 24)
- Me.Panel2.TabIndex = 4
- '
'DemoDlg
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
diff --git a/Epole/dialogForm/SplashScreen.Designer.vb b/Epole/dialogForm/SplashScreen.Designer.vb
index b7ef979..33647b3 100644
--- a/Epole/dialogForm/SplashScreen.Designer.vb
+++ b/Epole/dialogForm/SplashScreen.Designer.vb
@@ -22,12 +22,12 @@ Partial Class SplashScreen
'코드 편집기를 사용하여 수정하지 마십시오.
_
Private Sub InitializeComponent()
- Me.MainLayoutPanel = New System.Windows.Forms.TableLayoutPanel
- Me.lb_msg = New System.Windows.Forms.Label
- Me.DetailsLayoutPanel = New System.Windows.Forms.TableLayoutPanel
- Me.Copyright = New System.Windows.Forms.Label
- Me.Version = New System.Windows.Forms.Label
- Me.ApplicationTitle = New System.Windows.Forms.Label
+ Me.MainLayoutPanel = New System.Windows.Forms.TableLayoutPanel()
+ Me.lb_msg = New System.Windows.Forms.Label()
+ Me.DetailsLayoutPanel = New System.Windows.Forms.TableLayoutPanel()
+ Me.Copyright = New System.Windows.Forms.Label()
+ Me.Version = New System.Windows.Forms.Label()
+ Me.ApplicationTitle = New System.Windows.Forms.Label()
Me.MainLayoutPanel.SuspendLayout()
Me.DetailsLayoutPanel.SuspendLayout()
Me.SuspendLayout()
@@ -37,29 +37,31 @@ Partial Class SplashScreen
Me.MainLayoutPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(255, Byte), Integer))
Me.MainLayoutPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
Me.MainLayoutPanel.ColumnCount = 1
- Me.MainLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 286.0!))
+ Me.MainLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 545.0!))
Me.MainLayoutPanel.Controls.Add(Me.lb_msg, 0, 2)
Me.MainLayoutPanel.Controls.Add(Me.DetailsLayoutPanel, 0, 1)
Me.MainLayoutPanel.Controls.Add(Me.ApplicationTitle, 0, 0)
Me.MainLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill
Me.MainLayoutPanel.Location = New System.Drawing.Point(0, 0)
+ Me.MainLayoutPanel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.MainLayoutPanel.Name = "MainLayoutPanel"
Me.MainLayoutPanel.RowCount = 3
Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70.0!))
Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 18.0!))
Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.0!))
- Me.MainLayoutPanel.Size = New System.Drawing.Size(424, 252)
+ Me.MainLayoutPanel.Size = New System.Drawing.Size(694, 364)
Me.MainLayoutPanel.TabIndex = 0
'
'lb_msg
'
Me.lb_msg.BackColor = System.Drawing.Color.Transparent
Me.lb_msg.Dock = System.Windows.Forms.DockStyle.Fill
- Me.lb_msg.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
+ Me.lb_msg.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.lb_msg.ForeColor = System.Drawing.Color.Black
- Me.lb_msg.Location = New System.Drawing.Point(3, 221)
+ Me.lb_msg.Location = New System.Drawing.Point(4, 319)
+ Me.lb_msg.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.lb_msg.Name = "lb_msg"
- Me.lb_msg.Size = New System.Drawing.Size(418, 31)
+ Me.lb_msg.Size = New System.Drawing.Size(686, 45)
Me.lb_msg.TabIndex = 2
Me.lb_msg.Text = "[]"
Me.lb_msg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
@@ -68,26 +70,28 @@ Partial Class SplashScreen
'
Me.DetailsLayoutPanel.BackColor = System.Drawing.Color.Transparent
Me.DetailsLayoutPanel.ColumnCount = 1
- Me.DetailsLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 490.0!))
+ Me.DetailsLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 630.0!))
Me.DetailsLayoutPanel.Controls.Add(Me.Copyright, 0, 1)
Me.DetailsLayoutPanel.Controls.Add(Me.Version, 0, 0)
Me.DetailsLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill
- Me.DetailsLayoutPanel.Location = New System.Drawing.Point(3, 179)
+ Me.DetailsLayoutPanel.Location = New System.Drawing.Point(4, 259)
+ Me.DetailsLayoutPanel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.DetailsLayoutPanel.Name = "DetailsLayoutPanel"
Me.DetailsLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 53.0303!))
Me.DetailsLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 46.9697!))
- Me.DetailsLayoutPanel.Size = New System.Drawing.Size(418, 39)
+ Me.DetailsLayoutPanel.Size = New System.Drawing.Size(686, 55)
Me.DetailsLayoutPanel.TabIndex = 1
'
'Copyright
'
Me.Copyright.BackColor = System.Drawing.Color.Transparent
Me.Copyright.Dock = System.Windows.Forms.DockStyle.Fill
- Me.Copyright.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Copyright.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Copyright.ForeColor = System.Drawing.Color.Black
- Me.Copyright.Location = New System.Drawing.Point(3, 20)
+ Me.Copyright.Location = New System.Drawing.Point(4, 29)
+ Me.Copyright.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Copyright.Name = "Copyright"
- Me.Copyright.Size = New System.Drawing.Size(484, 19)
+ Me.Copyright.Size = New System.Drawing.Size(678, 26)
Me.Copyright.TabIndex = 2
Me.Copyright.Text = "저작권"
'
@@ -95,11 +99,12 @@ Partial Class SplashScreen
'
Me.Version.BackColor = System.Drawing.Color.Transparent
Me.Version.Dock = System.Windows.Forms.DockStyle.Fill
- Me.Version.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Version.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Version.ForeColor = System.Drawing.Color.Black
- Me.Version.Location = New System.Drawing.Point(3, 0)
+ Me.Version.Location = New System.Drawing.Point(4, 0)
+ Me.Version.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Version.Name = "Version"
- Me.Version.Size = New System.Drawing.Size(484, 20)
+ Me.Version.Size = New System.Drawing.Size(678, 29)
Me.Version.TabIndex = 1
Me.Version.Text = "Version {0}.{1:00}.{2}.{3}"
'
@@ -108,21 +113,24 @@ Partial Class SplashScreen
Me.ApplicationTitle.BackColor = System.Drawing.Color.Transparent
Me.ApplicationTitle.Dock = System.Windows.Forms.DockStyle.Fill
Me.ApplicationTitle.Font = New System.Drawing.Font("맑은 고딕", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
- Me.ApplicationTitle.Location = New System.Drawing.Point(3, 0)
+ Me.ApplicationTitle.Location = New System.Drawing.Point(4, 0)
+ Me.ApplicationTitle.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.ApplicationTitle.Name = "ApplicationTitle"
- Me.ApplicationTitle.Size = New System.Drawing.Size(418, 176)
+ Me.ApplicationTitle.Size = New System.Drawing.Size(686, 254)
Me.ApplicationTitle.TabIndex = 0
Me.ApplicationTitle.Text = "응용 프로그램 제목"
Me.ApplicationTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'SplashScreen
'
- Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 21.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(424, 252)
+ Me.ClientSize = New System.Drawing.Size(694, 364)
Me.ControlBox = False
Me.Controls.Add(Me.MainLayoutPanel)
+ Me.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
+ Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "SplashScreen"
diff --git a/Epole/dialogForm/SplashScreen.resx b/Epole/dialogForm/SplashScreen.resx
index 19dc0dd..d58980a 100644
--- a/Epole/dialogForm/SplashScreen.resx
+++ b/Epole/dialogForm/SplashScreen.resx
@@ -112,9 +112,9 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
\ No newline at end of file
diff --git a/Epole/dialogForm/SplashScreen.vb b/Epole/dialogForm/SplashScreen.vb
index 39c913e..d2e8a76 100644
--- a/Epole/dialogForm/SplashScreen.vb
+++ b/Epole/dialogForm/SplashScreen.vb
@@ -191,7 +191,7 @@ Public NotInheritable Class SplashScreen
Try
Cn.Open()
Catch ex As Exception
- MsgBox("데이터베이스를 열수 없습니다" & vbCrLf & "데이터베이스 파일이 손상되었는지 사용중인지 확인하세요", MsgBoxStyle.Critical, "오류")
+ MsgBox("데이터베이스를 열수 없습니다" & vbCrLf & "데이터베이스 파일이 손상되었는지 사용중인지 확인하세요₩n" + ex.Message, MsgBoxStyle.Critical, "오류")
Return False
End Try
If Cn.State <> ConnectionState.Open Then
diff --git a/Epole/dialogForm/fPassword.Designer.vb b/Epole/dialogForm/fPassword.Designer.vb
index 06de821..377a69b 100644
--- a/Epole/dialogForm/fPassword.Designer.vb
+++ b/Epole/dialogForm/fPassword.Designer.vb
@@ -28,32 +28,39 @@ Partial Class fPassword
'
'TextBox1
'
- Me.TextBox1.Location = New System.Drawing.Point(20, 16)
+ Me.TextBox1.Dock = System.Windows.Forms.DockStyle.Top
+ Me.TextBox1.Location = New System.Drawing.Point(10, 10)
+ Me.TextBox1.Margin = New System.Windows.Forms.Padding(5, 7, 5, 7)
Me.TextBox1.Name = "TextBox1"
- Me.TextBox1.Size = New System.Drawing.Size(345, 21)
+ Me.TextBox1.Size = New System.Drawing.Size(576, 34)
Me.TextBox1.TabIndex = 0
'
'Button1
'
- Me.Button1.Location = New System.Drawing.Point(20, 45)
+ Me.Button1.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.Button1.Location = New System.Drawing.Point(10, 51)
+ Me.Button1.Margin = New System.Windows.Forms.Padding(5, 7, 5, 7)
Me.Button1.Name = "Button1"
- Me.Button1.Size = New System.Drawing.Size(345, 28)
+ Me.Button1.Size = New System.Drawing.Size(576, 65)
Me.Button1.TabIndex = 1
- Me.Button1.Text = "Button1"
+ Me.Button1.Text = "확인"
Me.Button1.UseVisualStyleBackColor = True
'
'fPassword
'
- Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(11.0!, 28.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(379, 85)
+ Me.ClientSize = New System.Drawing.Size(596, 126)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TextBox1)
+ Me.Font = New System.Drawing.Font("맑은 고딕", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
+ Me.Margin = New System.Windows.Forms.Padding(5, 7, 5, 7)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "fPassword"
+ Me.Padding = New System.Windows.Forms.Padding(10)
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
- Me.Text = "fPassword"
+ Me.Text = "암호 입력"
Me.ResumeLayout(False)
Me.PerformLayout()
diff --git a/Epole/fAuth.Designer.vb b/Epole/fAuth.Designer.vb
index 247c4e9..c5c5845 100644
--- a/Epole/fAuth.Designer.vb
+++ b/Epole/fAuth.Designer.vb
@@ -31,104 +31,149 @@ Partial Class fAuth
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel()
Me.Button1 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
+ Me.Panel1 = New System.Windows.Forms.Panel()
+ Me.Panel2 = New System.Windows.Forms.Panel()
+ Me.Panel1.SuspendLayout()
+ Me.Panel2.SuspendLayout()
Me.SuspendLayout()
'
'Label1
'
- Me.Label1.AutoSize = True
- Me.Label1.Font = New System.Drawing.Font("굴림", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
- Me.Label1.Location = New System.Drawing.Point(17, 19)
+ Me.Label1.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label1.Font = New System.Drawing.Font("맑은 고딕", 17.0!, System.Drawing.FontStyle.Bold)
+ Me.Label1.Location = New System.Drawing.Point(10, 10)
+ Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label1.Name = "Label1"
- Me.Label1.Size = New System.Drawing.Size(298, 16)
+ Me.Label1.Size = New System.Drawing.Size(595, 71)
Me.Label1.TabIndex = 0
Me.Label1.Text = "현재 남은 사용 횟수는 {0} 회 입니다."
+ Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label2
'
- Me.Label2.AutoSize = True
- Me.Label2.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
- Me.Label2.Location = New System.Drawing.Point(17, 55)
+ Me.Label2.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label2.Font = New System.Drawing.Font("맑은 고딕", 13.0!, System.Drawing.FontStyle.Bold)
+ Me.Label2.Location = New System.Drawing.Point(10, 81)
+ Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label2.Name = "Label2"
- Me.Label2.Size = New System.Drawing.Size(303, 12)
+ Me.Label2.Size = New System.Drawing.Size(595, 35)
Me.Label2.TabIndex = 1
Me.Label2.Text = "프로그램을 영구 사용하려면 인증키를 입력하세요."
'
'Label3
'
- Me.Label3.AutoSize = True
+ Me.Label3.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label3.Font = New System.Drawing.Font("맑은 고딕", 13.0!, System.Drawing.FontStyle.Bold)
Me.Label3.ForeColor = System.Drawing.Color.Red
- Me.Label3.Location = New System.Drawing.Point(17, 75)
+ Me.Label3.Location = New System.Drawing.Point(10, 116)
+ Me.Label3.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label3.Name = "Label3"
- Me.Label3.Size = New System.Drawing.Size(341, 12)
+ Me.Label3.Size = New System.Drawing.Size(595, 35)
Me.Label3.TabIndex = 1
Me.Label3.Text = "지정 횟수를 초과하면 더 이상 프로그램을 사용할 수 없습니다."
'
'TextBox1
'
- Me.TextBox1.Font = New System.Drawing.Font("굴림", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
- Me.TextBox1.Location = New System.Drawing.Point(19, 133)
+ Me.TextBox1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TextBox1.Font = New System.Drawing.Font("굴림", 20.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
+ Me.TextBox1.Location = New System.Drawing.Point(0, 5)
+ Me.TextBox1.Margin = New System.Windows.Forms.Padding(4, 6, 4, 6)
Me.TextBox1.Name = "TextBox1"
- Me.TextBox1.Size = New System.Drawing.Size(367, 29)
+ Me.TextBox1.Size = New System.Drawing.Size(508, 38)
Me.TextBox1.TabIndex = 1
'
'Label4
'
Me.Label4.AutoSize = True
- Me.Label4.Location = New System.Drawing.Point(37, 104)
+ Me.Label4.Dock = System.Windows.Forms.DockStyle.Left
+ Me.Label4.Location = New System.Drawing.Point(0, 0)
+ Me.Label4.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label4.Name = "Label4"
- Me.Label4.Size = New System.Drawing.Size(37, 12)
+ Me.Label4.Size = New System.Drawing.Size(52, 21)
Me.Label4.TabIndex = 3
Me.Label4.Text = "문의 :"
'
'LinkLabel1
'
Me.LinkLabel1.AutoSize = True
- Me.LinkLabel1.Location = New System.Drawing.Point(79, 103)
+ Me.LinkLabel1.Dock = System.Windows.Forms.DockStyle.Left
+ Me.LinkLabel1.Font = New System.Drawing.Font("맑은 고딕", 10.0!, System.Drawing.FontStyle.Bold)
+ Me.LinkLabel1.Location = New System.Drawing.Point(52, 0)
+ Me.LinkLabel1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.LinkLabel1.Name = "LinkLabel1"
- Me.LinkLabel1.Size = New System.Drawing.Size(283, 12)
+ Me.LinkLabel1.Size = New System.Drawing.Size(342, 19)
Me.LinkLabel1.TabIndex = 4
Me.LinkLabel1.TabStop = True
Me.LinkLabel1.Text = "해광기획 (http://hawgwang.co.kr) / 062-381-0411"
'
'Button1
'
- Me.Button1.Location = New System.Drawing.Point(392, 133)
+ Me.Button1.Dock = System.Windows.Forms.DockStyle.Right
+ Me.Button1.Location = New System.Drawing.Point(508, 5)
+ Me.Button1.Margin = New System.Windows.Forms.Padding(4, 6, 4, 6)
Me.Button1.Name = "Button1"
- Me.Button1.Size = New System.Drawing.Size(68, 29)
+ Me.Button1.Size = New System.Drawing.Size(87, 39)
Me.Button1.TabIndex = 2
Me.Button1.Text = "인증"
Me.Button1.UseVisualStyleBackColor = True
'
'Button2
'
- Me.Button2.Location = New System.Drawing.Point(19, 170)
+ Me.Button2.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.Button2.Location = New System.Drawing.Point(10, 235)
+ Me.Button2.Margin = New System.Windows.Forms.Padding(4, 6, 4, 6)
Me.Button2.Name = "Button2"
- Me.Button2.Size = New System.Drawing.Size(441, 29)
+ Me.Button2.Size = New System.Drawing.Size(595, 50)
Me.Button2.TabIndex = 0
Me.Button2.Text = "테스트 사용"
Me.Button2.UseVisualStyleBackColor = True
'
+ 'Panel1
+ '
+ Me.Panel1.Controls.Add(Me.TextBox1)
+ Me.Panel1.Controls.Add(Me.Button1)
+ Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.Panel1.Location = New System.Drawing.Point(10, 186)
+ Me.Panel1.Name = "Panel1"
+ Me.Panel1.Padding = New System.Windows.Forms.Padding(0, 5, 0, 5)
+ Me.Panel1.Size = New System.Drawing.Size(595, 49)
+ Me.Panel1.TabIndex = 5
+ '
+ 'Panel2
+ '
+ Me.Panel2.Controls.Add(Me.LinkLabel1)
+ Me.Panel2.Controls.Add(Me.Label4)
+ Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Panel2.Location = New System.Drawing.Point(10, 151)
+ Me.Panel2.Name = "Panel2"
+ Me.Panel2.Size = New System.Drawing.Size(595, 26)
+ Me.Panel2.TabIndex = 6
+ '
'fAuth
'
- Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 21.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(478, 219)
- Me.Controls.Add(Me.Button2)
- Me.Controls.Add(Me.Button1)
- Me.Controls.Add(Me.LinkLabel1)
- Me.Controls.Add(Me.Label4)
- Me.Controls.Add(Me.TextBox1)
+ Me.ClientSize = New System.Drawing.Size(615, 295)
+ Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
+ Me.Controls.Add(Me.Panel1)
+ Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Label1)
+ Me.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+ Me.Margin = New System.Windows.Forms.Padding(4, 6, 4, 6)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "fAuth"
+ Me.Padding = New System.Windows.Forms.Padding(10)
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "인증하기"
+ Me.Panel1.ResumeLayout(False)
+ Me.Panel1.PerformLayout()
+ Me.Panel2.ResumeLayout(False)
+ Me.Panel2.PerformLayout()
Me.ResumeLayout(False)
- Me.PerformLayout()
End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
@@ -139,4 +184,6 @@ Partial Class fAuth
Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
+ Friend WithEvents Panel1 As Panel
+ Friend WithEvents Panel2 As Panel
End Class
diff --git a/Epole/fAuth.vb b/Epole/fAuth.vb
index 0a8ffd3..60b1961 100644
--- a/Epole/fAuth.vb
+++ b/Epole/fAuth.vb
@@ -1,10 +1,15 @@
Public Class fAuth
Private Sub fAuth_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Runcnt = Me.ReadAuthcount
- If Runcnt > 9 Then
- Button2.Text = "사용횟수초과(테스트사용불가)"
- Button2.Enabled = False
+ If System.Diagnostics.Debugger.IsAttached = False Then
+ If RunCnt > 9 Then
+ Button2.Text = "사용횟수초과(테스트사용불가)"
+ Button2.Enabled = False
+ End If
+ Else
+ MsgBox("개발툴 연결로 인해 인증을 해제 합니다")
End If
+
Dim remain As Integer = 10 - Runcnt
Label1.Text = String.Format(Label1.Text, remain)
@@ -43,6 +48,9 @@
auth.SetAuth(dateValue.ToFileTimeUtc(), setfile)
MsgBox("프로그램을 재실행 하세요", MsgBoxStyle.Information, "확인")
DialogResult = Windows.Forms.DialogResult.Cancel
+ Else
+ MsgBox("인증키값이 일치하지 않습니다" + vbCrLf + "다시 시도하세요", MsgBoxStyle.Information, "확인")
+
End If
Catch ex As Exception
MsgBox("인증키 확인 중 오류 발생, 다시 시도하세요")
diff --git a/Epole/packages.config b/Epole/packages.config
new file mode 100644
index 0000000..3477b25
--- /dev/null
+++ b/Epole/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Epole/통합번호찰_가로등.vbproj b/Epole/통합번호찰_가로등.vbproj
index 46f5815..8967e71 100644
--- a/Epole/통합번호찰_가로등.vbproj
+++ b/Epole/통합번호찰_가로등.vbproj
@@ -51,11 +51,11 @@
fulltruefalse
- ..\..\..\..\SIMP\통합번호찰%28가로등%29\
+ ..\..\Runtime\통합번호찰프로그램%28PDF출력%29 - 가로등%282%29\42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
- x86
+ AnyCPUfalsetrueSTYLES=0
@@ -92,11 +92,16 @@
+
+ ..\packages\Microsoft.VisualStudio.Interop.17.7.37355\lib\net20\Microsoft.VisualStudio.Interop.dll
+ False..\..\DLLS\NewControlGroup.dll
-
+
+ ..\packages\stdole.17.7.37355\lib\net20\stdole.dll
+ False
@@ -367,76 +372,13 @@
Cls_SkNetworks
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/Epole_통합가로등.sln b/Epole_통합가로등.sln
index 02e08e2..81495ed 100644
--- a/Epole_통합가로등.sln
+++ b/Epole_통합가로등.sln
@@ -1,6 +1,8 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2010
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34031.279
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "통합번호찰_가로등", "Epole\통합번호찰_가로등.vbproj", "{AFB4982C-C6E3-49C6-8C8F-01154D3A4D64}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Cls_SkNetworks", "Cls_Sknetworks\Cls_SkNetworks.vbproj", "{679094DD-F99D-498A-8BC0-080714A00F46}"
@@ -27,6 +29,14 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArinNewFp13", "..\ArinNewFp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StyleEditor", "StyleEditor\StyleEditor.csproj", "{7CEBE298-8D1A-436A-901C-F10DBEEE6510}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Union", "..\Z_Epole_LimitEditor(통합)\Union\Union.vbproj", "{B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Keygen", "Keygen", "{305A5F3E-2995-4E51-BCB7-32CB865C163A}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "v2", "..\Z_Epole_LimitEditor(통합)\V2\v2.vbproj", "{042A2888-6EAC-479C-9D48-4314F0D8B760}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "v3", "..\Z_Epole_LimitEditor(통합)\V3\v3.vbproj", "{D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CD_ROM|Any CPU = CD_ROM|Any CPU
@@ -336,21 +346,114 @@ Global
{7CEBE298-8D1A-436A-901C-F10DBEEE6510}.SingleImage|Mixed Platforms.Build.0 = Release|x86
{7CEBE298-8D1A-436A-901C-F10DBEEE6510}.SingleImage|x86.ActiveCfg = Release|x86
{7CEBE298-8D1A-436A-901C-F10DBEEE6510}.SingleImage|x86.Build.0 = Release|x86
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.CD_ROM|x86.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Debug|x86.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|x86.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.DVD-5|x86.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|x86.ActiveCfg = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.Release|x86.Build.0 = Release|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|x86.ActiveCfg = Debug|Any CPU
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2}.SingleImage|x86.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.CD_ROM|x86.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Debug|x86.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|x86.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.DVD-5|x86.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|Any CPU.Build.0 = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|x86.ActiveCfg = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.Release|x86.Build.0 = Release|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|x86.ActiveCfg = Debug|Any CPU
+ {042A2888-6EAC-479C-9D48-4314F0D8B760}.SingleImage|x86.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.CD_ROM|x86.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Debug|x86.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|x86.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.DVD-5|x86.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|x86.ActiveCfg = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.Release|x86.Build.0 = Release|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|x86.ActiveCfg = Debug|Any CPU
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF}.SingleImage|x86.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {E98126B2-AF17-4783-96B9-856D6744DCA3} = {22F8F794-A64A-4284-8C18-415EA737A652}
{FC8D5F6B-9892-48A4-BD90-4FA6F427567C} = {22F8F794-A64A-4284-8C18-415EA737A652}
+ {E98126B2-AF17-4783-96B9-856D6744DCA3} = {22F8F794-A64A-4284-8C18-415EA737A652}
{A8FF605F-231E-4DC1-9CD8-FD1466FDE5CD} = {22F8F794-A64A-4284-8C18-415EA737A652}
{2BC2ED74-6A5C-4478-B897-E76F34FC1CCF} = {22F8F794-A64A-4284-8C18-415EA737A652}
{B0371B1F-8657-47A6-979E-4AEB970559D2} = {22F8F794-A64A-4284-8C18-415EA737A652}
{3611D55B-71E3-4D92-9EFC-43F7D8BB8555} = {22F8F794-A64A-4284-8C18-415EA737A652}
+ {B0CC37CF-1CE5-42B4-8E4D-863F8D45B2A2} = {305A5F3E-2995-4E51-BCB7-32CB865C163A}
+ {042A2888-6EAC-479C-9D48-4314F0D8B760} = {305A5F3E-2995-4E51-BCB7-32CB865C163A}
+ {D9C116F9-65B4-47E7-82DB-3DE4F3FDE1CF} = {305A5F3E-2995-4E51-BCB7-32CB865C163A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- Spices_ProjectFileName =
- Spices_CreateProject = -1
Spices_ObfuscateProject = -1
+ Spices_CreateProject = -1
+ Spices_ProjectFileName =
EndGlobalSection
EndGlobal
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/.signature.p7s b/packages/Microsoft.VisualStudio.Interop.17.7.37355/.signature.p7s
new file mode 100644
index 0000000..c25611e
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/.signature.p7s differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/LICENSE.txt b/packages/Microsoft.VisualStudio.Interop.17.7.37355/LICENSE.txt
new file mode 100644
index 0000000..7d34d70
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/LICENSE.txt
@@ -0,0 +1,36 @@
+MICROSOFT SOFTWARE LICENSE TERMS
+MICROSOFT VISUAL STUDIO ADD-ONs and EXTENSIONS
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. They apply to the software named above. The terms also apply to any Microsoft services or updates for the software, except to the extent those have different terms.
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW.
+1. INSTALLATION AND USE RIGHTS.
+You may install and use any number of copies of the software to use solely with
+Visual Studio Community
+Visual Studio Professional
+Visual Studio Enterprise
+Visual Studio Code
+2. THIRD PARTY COMPONENTS.� The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software.�
+3. DATA.
+a. Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the software documentation. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications and you should provide a copy of Microsoft�s privacy statement to your users. The Microsoft privacy statement is located here https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use from the software documentation and our privacy statement. Your use of the software operates as your consent to these practices.
+b. Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr.
+4. SCOPE OF LICENSE. The software is licensed, not sold. These license terms only give you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in these license terms. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. In addition, you may not
+* work around any technical limitations in the software;
+* reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software except, and only to the extent required by third party licensing terms governing the use of certain open source components that may be included in the software;
+* remove, minimize, block or modify any notices of Microsoft or its suppliers in the software;
+* use the software in any way that is against the law;
+* share, publish, rent, or lease the software; or
+* provide the software as a stand-alone offering or combine it with any of your applications for others to use, or transfer the software or this agreement to any third party.
+5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit www.microsoft.com/exporting.
+6. SUPPORT SERVICES. Because this software is �as is�, we may not provide support services for it.
+7. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+8. APPLICABLE LAW. If you acquired the software in the United States, Washington law applies to interpretation of and claims for breach of this agreement, and the laws of the state where you live apply to all other claims. If you acquired the software in any other country, its laws apply.
+9. CONSUMER RIGHTS; REGIONAL VARIATIONS. These license terms describe certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. You may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:
+a. Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.
+b. Canada. You may stop receiving updates on your device by turning off Internet access. If and when you re-connect to the Internet, the software will resume checking for and installing updates.
+c. Germany and Austria.
+(i) Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.
+(ii) Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in the case of death or personal or physical injury, Microsoft is liable according to the statutory law.
+Subject to the preceding sentence (ii), Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.
+10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED �AS-IS�. YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+11. LIMITATION ON AND EXCLUSION OF DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/Microsoft.VisualStudio.Interop.17.7.37355.nupkg b/packages/Microsoft.VisualStudio.Interop.17.7.37355/Microsoft.VisualStudio.Interop.17.7.37355.nupkg
new file mode 100644
index 0000000..b53725b
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/Microsoft.VisualStudio.Interop.17.7.37355.nupkg differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/PackageIcon.png b/packages/Microsoft.VisualStudio.Interop.17.7.37355/PackageIcon.png
new file mode 100644
index 0000000..f9ec42a
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/PackageIcon.png differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.dll b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.dll
new file mode 100644
index 0000000..fd4dcb1
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.dll differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.xml b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.xml
new file mode 100644
index 0000000..075c187
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net20/Microsoft.VisualStudio.Interop.xml
@@ -0,0 +1,1193 @@
+
+
+
+ Microsoft.VisualStudio.Interop
+
+
+
+
+ A wrapper for that no-ops when run on .NET on non-Windows platforms.
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports the progress of an operation.
+
+ The progress of the operation.
+
+ can be in the range [0.0..1.0], where 0.0 is 0%
+ complete and 1.0 is 100% complete. A value outside that range indicates
+ indeterminate progress.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ The result of an asynchronous save operation. This is the value returned from the
+ GetResult method on the asynchronous save's returned .
+
+
+
+
+ This is set to true if the save was successful but there was data loss.
+
+
+ Setting this to true is similar to returning STG_S_DATALOSS from synchronous
+ save operations.
+
+
+
+
+ This is set to true if the user canceled the save operation.
+
+
+
+
+ The name of the saved file. This can be null or empty if the name of the
+ saved file did not change.
+
+
+
+
+ Optional interface that can be implemented by docdata objects that need to
+ preserve state data at the beginning of an aync save operation.
+
+
+
+
+ Returns a state object (such as a checkpoint) for an async save operation.
+
+
+ This method is called at the beginning of an asynchronous save. A docdata can
+ implement this interface and supply a state object. It can retrieve the state
+ object in its implementation of or
+ by calling
+ IVsAsyncRunningDocumentTable.GetAsyncSaveState.
+
+
+
+
+ Saves one or more documents asynchronously.
+
+ The save options
+
+ The hierarchy that owns the document to save, or null. This
+ parameter is only used if is VSCOOKIE_NIL
+ and is not VSITEMID_SELECTION. In that case,
+ if this parameter is non-null, then the document identified by
+ is saved.
+
+
+ The item identifier for the document to save, or VSITEMID_SELECTION.
+ This parameter is only used if is VSCOOKIE_NIL.
+ In that case, if this value is VSITEMID_SELECTION then all selected documents
+ are saved. If this value is not VSITEMID_SELECTION and
+ is non-null, this value must be something other than VSITEMID_NIL.
+
+
+ The cookie for the document, or VSCOOKIE_NIL. If this parameter is not
+ VSCOOKIE_NIL, and are
+ ignored and the document identified by the cookie is saved.
+
+ The interface through which progress is reported.
+ A task representing the asynchronous operation
+
+ If is VSCOOKIE_NIL,
+ is not VSITEMID_SELECTION, and is null,
+ all dirty documents are saved.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Retrieves the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+
+ This method is called from a docdata's implementation of
+ or to fetch the state object supplied by
+ in its implementation of .
+
+
+
+
+
+
+
+
+
+
+ Updates the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+ The provider's updated state object.
+
+ A provider might want to do this if the state object changed, say, while processing the
+ OnBeforeSave or OnBeforeSaveAsync event.
+
+
+
+
+ Removes a lock from a document.
+
+ The type of lock to remove.
+ The document cookie.
+ A task representing the asynchronous operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether asynchronous saves are enabled.
+
+
+
+
+ Saves a docdata to a file asynchronously.
+
+ The save flags.
+ The file in which the docdata is to be saved.
+
+ File path to which the doc data for an as-yet unsaved document is to be saved.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a solution element asynchronously.
+
+ The save options.
+ The hierarchy.
+ The document cookie.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a hierarchy item, asynchronously.
+
+ The save flags.
+
+ The file name to be applied when is set to VSSAVE_SilentSave.
+
+ The ID of the hierarchy item to be saved.
+ The document data of the item to be saved.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads a hierarchy item, asynchronously.
+
+ The ID of the hierarchy item to be reloaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Loads the document data for a given document, asynchronously.
+
+ The moniker for the document to be loaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves the document data, asynchronously.
+
+ The save flags
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads the document data asynchronously and in the process determines whether to ignore
+ a subsequent file change.
+
+
+ Flag indicating whether to ignore the next file change when reloading the document data.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+
+ A value of true indicates that the file should be opened as read-only.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+
+ A value that indicates the format in which the file will be saved. The caller passes DEF_FORMAT_INDEX
+ if the object is to choose its default (current) format. Otherwise, the value is interpreted as the index
+ into the list of formats, as returned by a call to the
+ method. An index value of 0 indicates the first format, 1 the second format, and so on.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of flags that describe attributes about a given save.
+
+
+
+
+ Notifies event listeners that a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+
+
+ Notifies event listeners that a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+
+
+ Called right before a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Called right after a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of built in status bar animation indices.
+
+
+
+
+ This property will be set to true after any required pre-close checks have been passed (files saved),
+ but before any shutdown work has begun (like solution close)
+
+
+
+
+ This property controls whether the enhanced tooltip behavior (tooltip will show on focus) is enabled in VS.
+
+
+
+
+ This property indicates that a hierarchy and its nested items may be slow to be enumerated.
+
+
+
+
+ An instance of this interface is sent as the input argument to commands with the AsyncFromUIInvocation,
+ when they are executed by a UI gesture such as a menu command, toolbar button, or key binding.
+
+
+
+
+ Indicates whether the command should be run asynchronously
+
+
+
+
+ The original argument to the command invocation, or null if none was specified.
+
+
+
+
+ Adds to the enumeration.
+
+
+
+
+ Restricts the Font dropdown box of the Fonts and Colors property page to presenting only Fixed Pitch fonts.
+
+
+
+
+ Adds to the enumaration.
+
+
+
+
+ Avoids loading packages when opening a category.
+ This is useful when retrieving font and color info that don't require package loads.
+
+
+
+
+ Provides the ability to asynchronously open items in a project.
+
+
+
+
+ Asynchronously opens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the open operation. The result of the task is an for the opened item.
+
+
+ By implementing IVsProjectSpecificEditorMap2 interface on your project object, you can do project-specific handling of files.
+ That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item.
+ Opening an item requires launching an editor using OpenStandardEditorAsync(...) or OpenSpecificEditorAsync(...), depending on the handling you want to implement.
+ For more information, see GetSpecificEditorProperty.
+
+ NOTE: In your implementation of , do not call Show() on the window frame you return.
+
+ Compare to
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously reopens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ Similar to except that you call OpenSpecificEditorAsync (rather than the OpenStandardEditorAsync).
+
+ Implement to handle automatic reopening of files that belong to a project.
+ For example, when a user adds files to a project type that you created, closes the project and later reopens it,
+ implement to also open the files that belong to the new project type.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously opens an item using a specific editor.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the this method will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ This method is used to ask the project to open the item (document) using the specified editor information.
+ It is an extension of .
+
+ It is implemented in conjunction with OpenSpecificEditorAsync.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ This enum continues from MARKERTYPE3. See MARKERTYPE3 for earlier values.
+
+
+
+
+ This property indicates the reason that the product is shutting down. e.g. by Windows restart.
+
+
+
+
+ A service interface that provides a set of methods to asynchronously open documents.
+
+
+
+
+ Asynchronously opens a document using the specified editor.
+
+
+ Flags whose values are taken from the enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A that identifies to editor be used to open the file.
+
+
+ Name of the physical view or null.
+
+ If null, the environment calls MapLogicalView(Guid, String) on the editor factory to determine the physical view that corresponds to the logical view.
+ In this case, null does not specify the primary view, but rather indicates that you do not know which view corresponds to the logical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Opens a file using the standard editor. It will first determine whether a default editor factory for the file is
+ already configured. If a default is not already configured, then it will loop through a priority-sorted
+ list of editor factories to find the first one that supports the document.
+ An exception is thrown if the document cannot be opened.
+
+
+ Flags whose values are taken from the or enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method uses the result of to determine whether it should continue
+ looping to the next editor in the list to find a supported editor factory. Specifically, it should return one of the following:
+ 1. S_OK to indicate that it should stop looping if the editor supports the file and was successfully initialized
+ 2. "VS_E_UNSUPPORTEDFORMAT" to indicate that it should continue looping if the editor does not support the provided doc data
+ 3. Any other error code to indicate that it should stop looping.
+
+
+
+
+ Finds an appropriate project to open the document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ true if the project supports external items; otherwise, false.
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This can be called to open any project that is opened through the New Project or Open Project dialog box.
+ In addition, this method is also called to open a document in any project that is added to the solution through or .
+ One example use of this is the DataView hierarchy, which is currently in Server Explorer.
+ If a DataView hierarchy is added to the solution as a virtual project using , then this method can open items from DataView hierarchies.
+ This functionality is important as it makes debugging of stored procedures possible.
+
+
+
+
+ Finds a specified project to open this document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Unique identifier of the physical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method is used by VSPackages that are not projects that need to open a document in a specific editor, but do not care which project opens the file.
+ To call this method from your VSPackage, you need to know exactly which editor factory you want and exactly which window you want the editor factory to create (that is, the physical view).
+ The logical view specified in the parameter further allows you to specify which tab should be displayed by the editor if the editor implements .
+
+ This method calls . If no project can service the file and the Miscellaneous Files project is not already present,
+ the environment then creates the Miscellaneous Files project and tries again.
+
+
+
+
+ Used to implement Window.NewWindow functionality.
+
+
+ Pointer to the original window frame to clone.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+ The value of is a reference to a new, cloned based on .
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ Editors should handle cmdidNewWindow command by calling this method.
+
+
+
+
+ Gets the provisional viewing status for a file.
+
+
+ The name of the file.
+
+
+ The hierarchy of the item.
+
+
+ The item identifier of the item.
+
+
+ The logical view to query.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+ The physical view attributes – which declare if and how the physical view supports provisional viewing (that is, previewing) – are properties of the editor.
+ In addition to physical view attributes, editors also declare what file types they can edit (for example, *.cs, *.xml, and so on) and the relative “rank” of the editor.
+ Multiple editors can declare that they support the same file type and the environment then chooses the one with the highest rank to open the file.
+
+
+
+
+ Retrieves the provisional viewing status for an editor and logical view combination.
+
+
+ The editor to query.
+
+
+ The hierarchy of the item.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+
+
+ Represents the result of an asynchronous open document operation.
+
+
+
+
+ Gets the hierarchy associated with the .
+
+
+
+
+ Gets the ID of the selected item in the associated .
+
+
+
+
+ Gets the associated with the opened document.
+
+
+
+
+ Gets the task that represents the work of loading the .
+ The docdata and docview are fully initialized when this task successfully runs to completion.
+
+
+
+
+ Asynchronously loads the document view's after the environment has loaded the document data.
+
+
+ A task that represents the asynchronous operation of loading the document view. The result of the task is an .
+
+
+
+
+ Gets the document view that was created by the method.
+
+
+
+
+ Gets the GUID for the pane or editor factory for later use when you create the view.
+
+
+
+
+ Returns an array of strings from a multi-string entry in the settings store.
+
+ The collection path.
+ The property name.
+ The strings from a multi-string entry.
+ The HRESULT for the operation.
+
+
+
+ Gets the list of attributes for the object.
+
+ The dispid of the property to retrieve attributes
+ the number of attribute type names in
+ Attribute type names, such as System.ComponentModel.BrowsableAttribute, or System.ComponentModel.DescriptionAttribute. This can be the name of any type that derives from System.Attribute. The array is callee allocated and will be caller freed using . Strings themselves should be freed with . It can also be a static instance name such as System.ComponentModel.BrowsableAttribute.No, which will cause the initializer value to be ignored.
+ An array of variants to be used to initialize the given attributes. If the attributes have a ctor that takes a parameter, the given argument will be used to iniitalize the attribute. If the initializer is NULL, VT_EMPTY or VT_NULL, the default ctor will be called. Variants will be caller freed individually by pInvoking VariantClear. The array must be freed calling .
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+ IVsSolutionReloadBatch is freethreaded object and can be used without switching to UI thread.
+
+
+
+
+ Needed to support original solution external file changes handler behavoir. This will only apply while batch is active.
+
+
+
+
+ Check the requested files against batch state (based on aggregated changes files via TryAddChangedFiles).
+
+
+
+
+ Check the status of a projects
+
+
+
+
+ Request solution reload
+
+
+
+
+ Request specific projects reload, fForceReload applies to all specified projects. Note even if reloadAction = DRA_ReloadProject [some of] selected proejcts can still end up being forcefully reloaded (even if they support own reload)
+ if some other logic reqires that for same project[s]. If fForceRelad = DRA_ForceReloadProject, it is guarantee that they will be forcefully reloaded (unless solution is reloaded which will override any project reloads).
+
+
+
+
+ Add files changes hints (can be used by reload logic extender during compute stage).
+
+
+
+
+ Batch id - unique withing solution open session.
+
+
+
+
+ Last state change id. Each call to TryAddXXX might change the state if introduce a new reload action or new changed files hint.
+
+
+
+
+ Note if BatchStage != COMPLETED, the state can be changed at any time.
+ Only the IVsSolutionBatchUpdateManagerEvents event listeners are guaranteed to have stable data in this case
+
+
+
+
+ batch handler friendly id.
+
+
+
+
+ batch require solution reload.
+
+
+
+
+ VS task tracking batch progress.
+
+
+
+
+ VS request batch completion as soon as possible.
+
+
+
+
+ VS request batch cancellation.
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+
+
+
+ check current provider if it will allow giving up control to a different reload handler.
+
+
+
+
+ check if provider can/want take control and handle the currently opened scope.
+
+
+
+
+ check if provider is ok to join the currently opened scope and let existing handler drive it.
+
+
+
+
+ called on BG thread when a state changed, or handler instructed us (via timeout).
+
+
+
+
+ called on UI thread before commencing modal reload phase.
+
+
+
+
+ comence the actual reload, once this is called no additional changes can be included in batch scope and it will be closed (one way or another) after this method finis.
+ In theory we can support async, but all current cases do require UI thread anyway (and it is unlikely we want to change that).
+
+
+
+
+ friendly HandlerId. it is string instead of usual guid for better readibility. We dont publish any predefined values.
+ this scenario is always an arm race, so if specific provider wants details they need to discover them.
+
+
+
+
+ Project to be reload (closed and opened) if needed, Example: project file[s] change. If project can not handle external change, it will be reloaded by solution.
+
+
+
+
+ Project to be reload (closed and opened) for this batch.
+
+
+
+
+ Force solution reload, superseeds any other actions.
+
+
+
+
+ Project to be added to the solution for this batch.
+
+
+
+
+ Project to be removed from the solution for this batch.
+
+
+
+
+ Project to be renamed in the solution for this batch.
+
+
+
+
+ Project parent to be changed in the solution for this batch.
+
+
+
+
+ IVsSolutionReloadManager implementation service id.
+
+
+
+
+ Manages external changes that are resolved to project[s] reload.
+ Provides batching and ability to specialize reload logic.
+
+ IVsSolutionReloadManager is freethreaded service and can be called from any thread without switching to UI thread.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ Start a reload batch scope
+
+ pExecutor is the batch commit handler. can be null in which case we use the current or default one.
+
+
+
+ A mechniasm for propagating "unbound" reload changes, aka where changes handler, just want to be included in any currently open batch.
+ if there is no such we will create a default batch for these.
+ Changes can still can be rejected from reload manager (for example if there is no open solution). In that case we return ppHandlingBatch==null;
+
+
+
+
+ get the current reload batch (if any, can return null).
+
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The param defaults to in IDL but we can't default it here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+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
\ No newline at end of file
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.dll b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.dll
new file mode 100644
index 0000000..ab9ab77
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.dll differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.xml b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.xml
new file mode 100644
index 0000000..9805bcc
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net45/Microsoft.VisualStudio.Interop.xml
@@ -0,0 +1,1193 @@
+
+
+
+ Microsoft.VisualStudio.Interop
+
+
+
+
+ A wrapper for that no-ops when run on .NET on non-Windows platforms.
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports the progress of an operation.
+
+ The progress of the operation.
+
+ can be in the range [0.0..1.0], where 0.0 is 0%
+ complete and 1.0 is 100% complete. A value outside that range indicates
+ indeterminate progress.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ The result of an asynchronous save operation. This is the value returned from the
+ GetResult method on the asynchronous save's returned .
+
+
+
+
+ This is set to true if the save was successful but there was data loss.
+
+
+ Setting this to true is similar to returning STG_S_DATALOSS from synchronous
+ save operations.
+
+
+
+
+ This is set to true if the user canceled the save operation.
+
+
+
+
+ The name of the saved file. This can be null or empty if the name of the
+ saved file did not change.
+
+
+
+
+ Optional interface that can be implemented by docdata objects that need to
+ preserve state data at the beginning of an aync save operation.
+
+
+
+
+ Returns a state object (such as a checkpoint) for an async save operation.
+
+
+ This method is called at the beginning of an asynchronous save. A docdata can
+ implement this interface and supply a state object. It can retrieve the state
+ object in its implementation of or
+ by calling
+ IVsAsyncRunningDocumentTable.GetAsyncSaveState.
+
+
+
+
+ Saves one or more documents asynchronously.
+
+ The save options
+
+ The hierarchy that owns the document to save, or null. This
+ parameter is only used if is VSCOOKIE_NIL
+ and is not VSITEMID_SELECTION. In that case,
+ if this parameter is non-null, then the document identified by
+ is saved.
+
+
+ The item identifier for the document to save, or VSITEMID_SELECTION.
+ This parameter is only used if is VSCOOKIE_NIL.
+ In that case, if this value is VSITEMID_SELECTION then all selected documents
+ are saved. If this value is not VSITEMID_SELECTION and
+ is non-null, this value must be something other than VSITEMID_NIL.
+
+
+ The cookie for the document, or VSCOOKIE_NIL. If this parameter is not
+ VSCOOKIE_NIL, and are
+ ignored and the document identified by the cookie is saved.
+
+ The interface through which progress is reported.
+ A task representing the asynchronous operation
+
+ If is VSCOOKIE_NIL,
+ is not VSITEMID_SELECTION, and is null,
+ all dirty documents are saved.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Retrieves the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+
+ This method is called from a docdata's implementation of
+ or to fetch the state object supplied by
+ in its implementation of .
+
+
+
+
+
+
+
+
+
+
+ Updates the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+ The provider's updated state object.
+
+ A provider might want to do this if the state object changed, say, while processing the
+ OnBeforeSave or OnBeforeSaveAsync event.
+
+
+
+
+ Removes a lock from a document.
+
+ The type of lock to remove.
+ The document cookie.
+ A task representing the asynchronous operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether asynchronous saves are enabled.
+
+
+
+
+ Saves a docdata to a file asynchronously.
+
+ The save flags.
+ The file in which the docdata is to be saved.
+
+ File path to which the doc data for an as-yet unsaved document is to be saved.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a solution element asynchronously.
+
+ The save options.
+ The hierarchy.
+ The document cookie.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a hierarchy item, asynchronously.
+
+ The save flags.
+
+ The file name to be applied when is set to VSSAVE_SilentSave.
+
+ The ID of the hierarchy item to be saved.
+ The document data of the item to be saved.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads a hierarchy item, asynchronously.
+
+ The ID of the hierarchy item to be reloaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Loads the document data for a given document, asynchronously.
+
+ The moniker for the document to be loaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves the document data, asynchronously.
+
+ The save flags
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads the document data asynchronously and in the process determines whether to ignore
+ a subsequent file change.
+
+
+ Flag indicating whether to ignore the next file change when reloading the document data.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+
+ A value of true indicates that the file should be opened as read-only.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+
+ A value that indicates the format in which the file will be saved. The caller passes DEF_FORMAT_INDEX
+ if the object is to choose its default (current) format. Otherwise, the value is interpreted as the index
+ into the list of formats, as returned by a call to the
+ method. An index value of 0 indicates the first format, 1 the second format, and so on.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of flags that describe attributes about a given save.
+
+
+
+
+ Notifies event listeners that a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+
+
+ Notifies event listeners that a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+
+
+ Called right before a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Called right after a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of built in status bar animation indices.
+
+
+
+
+ This property will be set to true after any required pre-close checks have been passed (files saved),
+ but before any shutdown work has begun (like solution close)
+
+
+
+
+ This property controls whether the enhanced tooltip behavior (tooltip will show on focus) is enabled in VS.
+
+
+
+
+ This property indicates that a hierarchy and its nested items may be slow to be enumerated.
+
+
+
+
+ An instance of this interface is sent as the input argument to commands with the AsyncFromUIInvocation,
+ when they are executed by a UI gesture such as a menu command, toolbar button, or key binding.
+
+
+
+
+ Indicates whether the command should be run asynchronously
+
+
+
+
+ The original argument to the command invocation, or null if none was specified.
+
+
+
+
+ Adds to the enumeration.
+
+
+
+
+ Restricts the Font dropdown box of the Fonts and Colors property page to presenting only Fixed Pitch fonts.
+
+
+
+
+ Adds to the enumaration.
+
+
+
+
+ Avoids loading packages when opening a category.
+ This is useful when retrieving font and color info that don't require package loads.
+
+
+
+
+ Provides the ability to asynchronously open items in a project.
+
+
+
+
+ Asynchronously opens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the open operation. The result of the task is an for the opened item.
+
+
+ By implementing IVsProjectSpecificEditorMap2 interface on your project object, you can do project-specific handling of files.
+ That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item.
+ Opening an item requires launching an editor using OpenStandardEditorAsync(...) or OpenSpecificEditorAsync(...), depending on the handling you want to implement.
+ For more information, see GetSpecificEditorProperty.
+
+ NOTE: In your implementation of , do not call Show() on the window frame you return.
+
+ Compare to
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously reopens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ Similar to except that you call OpenSpecificEditorAsync (rather than the OpenStandardEditorAsync).
+
+ Implement to handle automatic reopening of files that belong to a project.
+ For example, when a user adds files to a project type that you created, closes the project and later reopens it,
+ implement to also open the files that belong to the new project type.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously opens an item using a specific editor.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the this method will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ This method is used to ask the project to open the item (document) using the specified editor information.
+ It is an extension of .
+
+ It is implemented in conjunction with OpenSpecificEditorAsync.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ This enum continues from MARKERTYPE3. See MARKERTYPE3 for earlier values.
+
+
+
+
+ This property indicates the reason that the product is shutting down. e.g. by Windows restart.
+
+
+
+
+ A service interface that provides a set of methods to asynchronously open documents.
+
+
+
+
+ Asynchronously opens a document using the specified editor.
+
+
+ Flags whose values are taken from the enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A that identifies to editor be used to open the file.
+
+
+ Name of the physical view or null.
+
+ If null, the environment calls MapLogicalView(Guid, String) on the editor factory to determine the physical view that corresponds to the logical view.
+ In this case, null does not specify the primary view, but rather indicates that you do not know which view corresponds to the logical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Opens a file using the standard editor. It will first determine whether a default editor factory for the file is
+ already configured. If a default is not already configured, then it will loop through a priority-sorted
+ list of editor factories to find the first one that supports the document.
+ An exception is thrown if the document cannot be opened.
+
+
+ Flags whose values are taken from the or enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method uses the result of to determine whether it should continue
+ looping to the next editor in the list to find a supported editor factory. Specifically, it should return one of the following:
+ 1. S_OK to indicate that it should stop looping if the editor supports the file and was successfully initialized
+ 2. "VS_E_UNSUPPORTEDFORMAT" to indicate that it should continue looping if the editor does not support the provided doc data
+ 3. Any other error code to indicate that it should stop looping.
+
+
+
+
+ Finds an appropriate project to open the document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ true if the project supports external items; otherwise, false.
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This can be called to open any project that is opened through the New Project or Open Project dialog box.
+ In addition, this method is also called to open a document in any project that is added to the solution through or .
+ One example use of this is the DataView hierarchy, which is currently in Server Explorer.
+ If a DataView hierarchy is added to the solution as a virtual project using , then this method can open items from DataView hierarchies.
+ This functionality is important as it makes debugging of stored procedures possible.
+
+
+
+
+ Finds a specified project to open this document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Unique identifier of the physical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method is used by VSPackages that are not projects that need to open a document in a specific editor, but do not care which project opens the file.
+ To call this method from your VSPackage, you need to know exactly which editor factory you want and exactly which window you want the editor factory to create (that is, the physical view).
+ The logical view specified in the parameter further allows you to specify which tab should be displayed by the editor if the editor implements .
+
+ This method calls . If no project can service the file and the Miscellaneous Files project is not already present,
+ the environment then creates the Miscellaneous Files project and tries again.
+
+
+
+
+ Used to implement Window.NewWindow functionality.
+
+
+ Pointer to the original window frame to clone.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+ The value of is a reference to a new, cloned based on .
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ Editors should handle cmdidNewWindow command by calling this method.
+
+
+
+
+ Gets the provisional viewing status for a file.
+
+
+ The name of the file.
+
+
+ The hierarchy of the item.
+
+
+ The item identifier of the item.
+
+
+ The logical view to query.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+ The physical view attributes – which declare if and how the physical view supports provisional viewing (that is, previewing) – are properties of the editor.
+ In addition to physical view attributes, editors also declare what file types they can edit (for example, *.cs, *.xml, and so on) and the relative “rank” of the editor.
+ Multiple editors can declare that they support the same file type and the environment then chooses the one with the highest rank to open the file.
+
+
+
+
+ Retrieves the provisional viewing status for an editor and logical view combination.
+
+
+ The editor to query.
+
+
+ The hierarchy of the item.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+
+
+ Represents the result of an asynchronous open document operation.
+
+
+
+
+ Gets the hierarchy associated with the .
+
+
+
+
+ Gets the ID of the selected item in the associated .
+
+
+
+
+ Gets the associated with the opened document.
+
+
+
+
+ Gets the task that represents the work of loading the .
+ The docdata and docview are fully initialized when this task successfully runs to completion.
+
+
+
+
+ Asynchronously loads the document view's after the environment has loaded the document data.
+
+
+ A task that represents the asynchronous operation of loading the document view. The result of the task is an .
+
+
+
+
+ Gets the document view that was created by the method.
+
+
+
+
+ Gets the GUID for the pane or editor factory for later use when you create the view.
+
+
+
+
+ Returns an array of strings from a multi-string entry in the settings store.
+
+ The collection path.
+ The property name.
+ The strings from a multi-string entry.
+ The HRESULT for the operation.
+
+
+
+ Gets the list of attributes for the object.
+
+ The dispid of the property to retrieve attributes
+ the number of attribute type names in
+ Attribute type names, such as System.ComponentModel.BrowsableAttribute, or System.ComponentModel.DescriptionAttribute. This can be the name of any type that derives from System.Attribute. The array is callee allocated and will be caller freed using . Strings themselves should be freed with . It can also be a static instance name such as System.ComponentModel.BrowsableAttribute.No, which will cause the initializer value to be ignored.
+ An array of variants to be used to initialize the given attributes. If the attributes have a ctor that takes a parameter, the given argument will be used to iniitalize the attribute. If the initializer is NULL, VT_EMPTY or VT_NULL, the default ctor will be called. Variants will be caller freed individually by pInvoking VariantClear. The array must be freed calling .
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+ IVsSolutionReloadBatch is freethreaded object and can be used without switching to UI thread.
+
+
+
+
+ Needed to support original solution external file changes handler behavoir. This will only apply while batch is active.
+
+
+
+
+ Check the requested files against batch state (based on aggregated changes files via TryAddChangedFiles).
+
+
+
+
+ Check the status of a projects
+
+
+
+
+ Request solution reload
+
+
+
+
+ Request specific projects reload, fForceReload applies to all specified projects. Note even if reloadAction = DRA_ReloadProject [some of] selected proejcts can still end up being forcefully reloaded (even if they support own reload)
+ if some other logic reqires that for same project[s]. If fForceRelad = DRA_ForceReloadProject, it is guarantee that they will be forcefully reloaded (unless solution is reloaded which will override any project reloads).
+
+
+
+
+ Add files changes hints (can be used by reload logic extender during compute stage).
+
+
+
+
+ Batch id - unique withing solution open session.
+
+
+
+
+ Last state change id. Each call to TryAddXXX might change the state if introduce a new reload action or new changed files hint.
+
+
+
+
+ Note if BatchStage != COMPLETED, the state can be changed at any time.
+ Only the IVsSolutionBatchUpdateManagerEvents event listeners are guaranteed to have stable data in this case
+
+
+
+
+ batch handler friendly id.
+
+
+
+
+ batch require solution reload.
+
+
+
+
+ VS task tracking batch progress.
+
+
+
+
+ VS request batch completion as soon as possible.
+
+
+
+
+ VS request batch cancellation.
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+
+
+
+ check current provider if it will allow giving up control to a different reload handler.
+
+
+
+
+ check if provider can/want take control and handle the currently opened scope.
+
+
+
+
+ check if provider is ok to join the currently opened scope and let existing handler drive it.
+
+
+
+
+ called on BG thread when a state changed, or handler instructed us (via timeout).
+
+
+
+
+ called on UI thread before commencing modal reload phase.
+
+
+
+
+ comence the actual reload, once this is called no additional changes can be included in batch scope and it will be closed (one way or another) after this method finis.
+ In theory we can support async, but all current cases do require UI thread anyway (and it is unlikely we want to change that).
+
+
+
+
+ friendly HandlerId. it is string instead of usual guid for better readibility. We dont publish any predefined values.
+ this scenario is always an arm race, so if specific provider wants details they need to discover them.
+
+
+
+
+ Project to be reload (closed and opened) if needed, Example: project file[s] change. If project can not handle external change, it will be reloaded by solution.
+
+
+
+
+ Project to be reload (closed and opened) for this batch.
+
+
+
+
+ Force solution reload, superseeds any other actions.
+
+
+
+
+ Project to be added to the solution for this batch.
+
+
+
+
+ Project to be removed from the solution for this batch.
+
+
+
+
+ Project to be renamed in the solution for this batch.
+
+
+
+
+ Project parent to be changed in the solution for this batch.
+
+
+
+
+ IVsSolutionReloadManager implementation service id.
+
+
+
+
+ Manages external changes that are resolved to project[s] reload.
+ Provides batching and ability to specialize reload logic.
+
+ IVsSolutionReloadManager is freethreaded service and can be called from any thread without switching to UI thread.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ Start a reload batch scope
+
+ pExecutor is the batch commit handler. can be null in which case we use the current or default one.
+
+
+
+ A mechniasm for propagating "unbound" reload changes, aka where changes handler, just want to be included in any currently open batch.
+ if there is no such we will create a default batch for these.
+ Changes can still can be rejected from reload manager (for example if there is no open solution). In that case we return ppHandlingBatch==null;
+
+
+
+
+ get the current reload batch (if any, can return null).
+
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The param defaults to in IDL but we can't default it here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+N52hvpuNbm7PDHlYErMvU1wuXkJxWeEGL/8QPOF4L2c=cdWnNXGQfigiJ8aNGoeWk7ZkXHzcB/KYVB9JNkUDhw+74kZMeeyiXexErZo1d0ntPt8fvqTUNY1BTgDvfBhMkPdHGv1W8G9kN0/mmt1remrrPO9+rjB1AT+WdJU4pvCD8KgKFkYwOBG2LIa17zwsSUfDWPEawtBa7G3HLQHhQ9ULUa+aCx+l4DiXxg/xKCe6SRy2R2KwsytRpT/TcFNCYhmKps7/2XGwZFg+VCPsLDRuNBVa+20z3F0dMKwaQkQhVAG8Egxc3zCNW4o1uathPlmNILO3I6uEYEVyw/ihfbQD7nwiO1PNKYT828/W/U7oGAMQpRYJK91OOY4kgSBEfw==3QiojSOiARVrryVJn+lnTiamZiMGLORuwCQ+VG3C+rbAvhATw269+qRRqNW7FKed50chWJ53KDIPBStHfIy5cNJYHsQw6+4InH9szgRVqn7/50i8MyRTT+VtNwxf9daGddq0hahpZvjuOnEY0wxQaTEQmWRnXWZUQY4r28tHiNVYEw9U7wHXwWEHvNn4ZlkJGEf5VpgCvr1v9fmzu4x2sV0zQsSyAVtOxfDwY1HMBcccn23tphweIdS+FNDn2vh1/2kREO0qmGc+fbFzNskjn72MiI56kjvNDRgWs+Q78yBvPCdPgTYTrto5eg33Ko2ELNR/zzEkCCuhO5Vw10qV8w==AQABMIIF9DCCA9ygAwIBAgITMwAAA061PHrBhG/rKwAAAAADTjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMB4XDTIzMDMxNjE4NDMyOVoXDTI0MDMxNDE4NDMyOVowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3QiojSOiARVrryVJn+lnTiamZiMGLORuwCQ+VG3C+rbAvhATw269+qRRqNW7FKed50chWJ53KDIPBStHfIy5cNJYHsQw6+4InH9szgRVqn7/50i8MyRTT+VtNwxf9daGddq0hahpZvjuOnEY0wxQaTEQmWRnXWZUQY4r28tHiNVYEw9U7wHXwWEHvNn4ZlkJGEf5VpgCvr1v9fmzu4x2sV0zQsSyAVtOxfDwY1HMBcccn23tphweIdS+FNDn2vh1/2kREO0qmGc+fbFzNskjn72MiI56kjvNDRgWs+Q78yBvPCdPgTYTrto5eg33Ko2ELNR/zzEkCCuhO5Vw10qV8wIDAQABo4IBczCCAW8wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFJzHO2Z/7pCgbAYlpMHTX7DeaXcAMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAxMis1MDA1MTYwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQA9tb/aR6C3QUjZRQI5pJseF8TmQD7FccV2w8kL9fpBg3vV6YAZ09ZV58eyQ6RTCgcAMiMHSJ5r4SvaRgWt9U8ni96e0drNC/EgATz0SRwBJODR6QV8R45uEyo3swG0qqm4LMtdGOygKcvvVKymtpBprLgErJPeT1Zub3puzpk7ONr5tASVFPiT0C4PGP7HY907Uny2GGQGicEwCIIu3Yc5+YWrS6Ow4c/uE/jKxXfui1GtlN86/e0MMw7YcfkT/f0WZ7q+Ip80kLBuQwlSDKQNZdjVhANygHGtLSNpeoUDWLGii9ZHn3Xxwqz8RK8vKJyY8hhr/WCqC7+gDjuzoSRJm0Jc/8ZLGBtjfyUjifkKmKRkxLmBWFVmop+x3uo4G+NSW6Thig3RP2/ldqv4F1IBXtoHcE6Qg7L4fEjEaKtfwTV3K+4kwFN/FYK/N4lbT2JhYWTlTNFC6f5Ck1aIqyKT9igsU+DnpDnLbfIK2J4SdekDI5jL+aOd4YzRVzsYoJEFmM1DvusOdINBQHhWvOboAggepVxJNtRRQdRXSB6Y0kH/iz/1tjlfx34Qt7kz4Cm0bV6PN02WBLnaKMmfwFbtPLIm2dzJBjiTkSxETcCpthu6KnTr+EI/GdCaxoDM4+OjRSgMZC0qROaB0GD9R7T8dZT3w+4jUmybD+i4lB1x9Q==MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzQ==MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwMzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFLh93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3sMJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTeacY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfPSRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kUBU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIBAH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biRnhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8hIr1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmmZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09Rs1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dySTclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQSB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH
\ No newline at end of file
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.dll b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.dll
new file mode 100644
index 0000000..e7d257e
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.dll differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.xml b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.xml
new file mode 100644
index 0000000..1322bb1
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net472/Microsoft.VisualStudio.Interop.xml
@@ -0,0 +1,1193 @@
+
+
+
+ Microsoft.VisualStudio.Interop
+
+
+
+
+ A wrapper for that no-ops when run on .NET on non-Windows platforms.
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports the progress of an operation.
+
+ The progress of the operation.
+
+ can be in the range [0.0..1.0], where 0.0 is 0%
+ complete and 1.0 is 100% complete. A value outside that range indicates
+ indeterminate progress.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ The result of an asynchronous save operation. This is the value returned from the
+ GetResult method on the asynchronous save's returned .
+
+
+
+
+ This is set to true if the save was successful but there was data loss.
+
+
+ Setting this to true is similar to returning STG_S_DATALOSS from synchronous
+ save operations.
+
+
+
+
+ This is set to true if the user canceled the save operation.
+
+
+
+
+ The name of the saved file. This can be null or empty if the name of the
+ saved file did not change.
+
+
+
+
+ Optional interface that can be implemented by docdata objects that need to
+ preserve state data at the beginning of an aync save operation.
+
+
+
+
+ Returns a state object (such as a checkpoint) for an async save operation.
+
+
+ This method is called at the beginning of an asynchronous save. A docdata can
+ implement this interface and supply a state object. It can retrieve the state
+ object in its implementation of or
+ by calling
+ IVsAsyncRunningDocumentTable.GetAsyncSaveState.
+
+
+
+
+ Saves one or more documents asynchronously.
+
+ The save options
+
+ The hierarchy that owns the document to save, or null. This
+ parameter is only used if is VSCOOKIE_NIL
+ and is not VSITEMID_SELECTION. In that case,
+ if this parameter is non-null, then the document identified by
+ is saved.
+
+
+ The item identifier for the document to save, or VSITEMID_SELECTION.
+ This parameter is only used if is VSCOOKIE_NIL.
+ In that case, if this value is VSITEMID_SELECTION then all selected documents
+ are saved. If this value is not VSITEMID_SELECTION and
+ is non-null, this value must be something other than VSITEMID_NIL.
+
+
+ The cookie for the document, or VSCOOKIE_NIL. If this parameter is not
+ VSCOOKIE_NIL, and are
+ ignored and the document identified by the cookie is saved.
+
+ The interface through which progress is reported.
+ A task representing the asynchronous operation
+
+ If is VSCOOKIE_NIL,
+ is not VSITEMID_SELECTION, and is null,
+ all dirty documents are saved.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Retrieves the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+
+ This method is called from a docdata's implementation of
+ or to fetch the state object supplied by
+ in its implementation of .
+
+
+
+
+
+
+
+
+
+
+ Updates the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+ The provider's updated state object.
+
+ A provider might want to do this if the state object changed, say, while processing the
+ OnBeforeSave or OnBeforeSaveAsync event.
+
+
+
+
+ Removes a lock from a document.
+
+ The type of lock to remove.
+ The document cookie.
+ A task representing the asynchronous operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether asynchronous saves are enabled.
+
+
+
+
+ Saves a docdata to a file asynchronously.
+
+ The save flags.
+ The file in which the docdata is to be saved.
+
+ File path to which the doc data for an as-yet unsaved document is to be saved.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a solution element asynchronously.
+
+ The save options.
+ The hierarchy.
+ The document cookie.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a hierarchy item, asynchronously.
+
+ The save flags.
+
+ The file name to be applied when is set to VSSAVE_SilentSave.
+
+ The ID of the hierarchy item to be saved.
+ The document data of the item to be saved.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads a hierarchy item, asynchronously.
+
+ The ID of the hierarchy item to be reloaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Loads the document data for a given document, asynchronously.
+
+ The moniker for the document to be loaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves the document data, asynchronously.
+
+ The save flags
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads the document data asynchronously and in the process determines whether to ignore
+ a subsequent file change.
+
+
+ Flag indicating whether to ignore the next file change when reloading the document data.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+
+ A value of true indicates that the file should be opened as read-only.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+
+ A value that indicates the format in which the file will be saved. The caller passes DEF_FORMAT_INDEX
+ if the object is to choose its default (current) format. Otherwise, the value is interpreted as the index
+ into the list of formats, as returned by a call to the
+ method. An index value of 0 indicates the first format, 1 the second format, and so on.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of flags that describe attributes about a given save.
+
+
+
+
+ Notifies event listeners that a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+
+
+ Notifies event listeners that a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+
+
+ Called right before a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Called right after a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of built in status bar animation indices.
+
+
+
+
+ This property will be set to true after any required pre-close checks have been passed (files saved),
+ but before any shutdown work has begun (like solution close)
+
+
+
+
+ This property controls whether the enhanced tooltip behavior (tooltip will show on focus) is enabled in VS.
+
+
+
+
+ This property indicates that a hierarchy and its nested items may be slow to be enumerated.
+
+
+
+
+ An instance of this interface is sent as the input argument to commands with the AsyncFromUIInvocation,
+ when they are executed by a UI gesture such as a menu command, toolbar button, or key binding.
+
+
+
+
+ Indicates whether the command should be run asynchronously
+
+
+
+
+ The original argument to the command invocation, or null if none was specified.
+
+
+
+
+ Adds to the enumeration.
+
+
+
+
+ Restricts the Font dropdown box of the Fonts and Colors property page to presenting only Fixed Pitch fonts.
+
+
+
+
+ Adds to the enumaration.
+
+
+
+
+ Avoids loading packages when opening a category.
+ This is useful when retrieving font and color info that don't require package loads.
+
+
+
+
+ Provides the ability to asynchronously open items in a project.
+
+
+
+
+ Asynchronously opens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the open operation. The result of the task is an for the opened item.
+
+
+ By implementing IVsProjectSpecificEditorMap2 interface on your project object, you can do project-specific handling of files.
+ That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item.
+ Opening an item requires launching an editor using OpenStandardEditorAsync(...) or OpenSpecificEditorAsync(...), depending on the handling you want to implement.
+ For more information, see GetSpecificEditorProperty.
+
+ NOTE: In your implementation of , do not call Show() on the window frame you return.
+
+ Compare to
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously reopens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ Similar to except that you call OpenSpecificEditorAsync (rather than the OpenStandardEditorAsync).
+
+ Implement to handle automatic reopening of files that belong to a project.
+ For example, when a user adds files to a project type that you created, closes the project and later reopens it,
+ implement to also open the files that belong to the new project type.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously opens an item using a specific editor.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the this method will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ This method is used to ask the project to open the item (document) using the specified editor information.
+ It is an extension of .
+
+ It is implemented in conjunction with OpenSpecificEditorAsync.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ This enum continues from MARKERTYPE3. See MARKERTYPE3 for earlier values.
+
+
+
+
+ This property indicates the reason that the product is shutting down. e.g. by Windows restart.
+
+
+
+
+ A service interface that provides a set of methods to asynchronously open documents.
+
+
+
+
+ Asynchronously opens a document using the specified editor.
+
+
+ Flags whose values are taken from the enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A that identifies to editor be used to open the file.
+
+
+ Name of the physical view or null.
+
+ If null, the environment calls MapLogicalView(Guid, String) on the editor factory to determine the physical view that corresponds to the logical view.
+ In this case, null does not specify the primary view, but rather indicates that you do not know which view corresponds to the logical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Opens a file using the standard editor. It will first determine whether a default editor factory for the file is
+ already configured. If a default is not already configured, then it will loop through a priority-sorted
+ list of editor factories to find the first one that supports the document.
+ An exception is thrown if the document cannot be opened.
+
+
+ Flags whose values are taken from the or enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method uses the result of to determine whether it should continue
+ looping to the next editor in the list to find a supported editor factory. Specifically, it should return one of the following:
+ 1. S_OK to indicate that it should stop looping if the editor supports the file and was successfully initialized
+ 2. "VS_E_UNSUPPORTEDFORMAT" to indicate that it should continue looping if the editor does not support the provided doc data
+ 3. Any other error code to indicate that it should stop looping.
+
+
+
+
+ Finds an appropriate project to open the document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ true if the project supports external items; otherwise, false.
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This can be called to open any project that is opened through the New Project or Open Project dialog box.
+ In addition, this method is also called to open a document in any project that is added to the solution through or .
+ One example use of this is the DataView hierarchy, which is currently in Server Explorer.
+ If a DataView hierarchy is added to the solution as a virtual project using , then this method can open items from DataView hierarchies.
+ This functionality is important as it makes debugging of stored procedures possible.
+
+
+
+
+ Finds a specified project to open this document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Unique identifier of the physical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method is used by VSPackages that are not projects that need to open a document in a specific editor, but do not care which project opens the file.
+ To call this method from your VSPackage, you need to know exactly which editor factory you want and exactly which window you want the editor factory to create (that is, the physical view).
+ The logical view specified in the parameter further allows you to specify which tab should be displayed by the editor if the editor implements .
+
+ This method calls . If no project can service the file and the Miscellaneous Files project is not already present,
+ the environment then creates the Miscellaneous Files project and tries again.
+
+
+
+
+ Used to implement Window.NewWindow functionality.
+
+
+ Pointer to the original window frame to clone.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+ The value of is a reference to a new, cloned based on .
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ Editors should handle cmdidNewWindow command by calling this method.
+
+
+
+
+ Gets the provisional viewing status for a file.
+
+
+ The name of the file.
+
+
+ The hierarchy of the item.
+
+
+ The item identifier of the item.
+
+
+ The logical view to query.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+ The physical view attributes – which declare if and how the physical view supports provisional viewing (that is, previewing) – are properties of the editor.
+ In addition to physical view attributes, editors also declare what file types they can edit (for example, *.cs, *.xml, and so on) and the relative “rank” of the editor.
+ Multiple editors can declare that they support the same file type and the environment then chooses the one with the highest rank to open the file.
+
+
+
+
+ Retrieves the provisional viewing status for an editor and logical view combination.
+
+
+ The editor to query.
+
+
+ The hierarchy of the item.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+
+
+ Represents the result of an asynchronous open document operation.
+
+
+
+
+ Gets the hierarchy associated with the .
+
+
+
+
+ Gets the ID of the selected item in the associated .
+
+
+
+
+ Gets the associated with the opened document.
+
+
+
+
+ Gets the task that represents the work of loading the .
+ The docdata and docview are fully initialized when this task successfully runs to completion.
+
+
+
+
+ Asynchronously loads the document view's after the environment has loaded the document data.
+
+
+ A task that represents the asynchronous operation of loading the document view. The result of the task is an .
+
+
+
+
+ Gets the document view that was created by the method.
+
+
+
+
+ Gets the GUID for the pane or editor factory for later use when you create the view.
+
+
+
+
+ Returns an array of strings from a multi-string entry in the settings store.
+
+ The collection path.
+ The property name.
+ The strings from a multi-string entry.
+ The HRESULT for the operation.
+
+
+
+ Gets the list of attributes for the object.
+
+ The dispid of the property to retrieve attributes
+ the number of attribute type names in
+ Attribute type names, such as System.ComponentModel.BrowsableAttribute, or System.ComponentModel.DescriptionAttribute. This can be the name of any type that derives from System.Attribute. The array is callee allocated and will be caller freed using . Strings themselves should be freed with . It can also be a static instance name such as System.ComponentModel.BrowsableAttribute.No, which will cause the initializer value to be ignored.
+ An array of variants to be used to initialize the given attributes. If the attributes have a ctor that takes a parameter, the given argument will be used to iniitalize the attribute. If the initializer is NULL, VT_EMPTY or VT_NULL, the default ctor will be called. Variants will be caller freed individually by pInvoking VariantClear. The array must be freed calling .
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+ IVsSolutionReloadBatch is freethreaded object and can be used without switching to UI thread.
+
+
+
+
+ Needed to support original solution external file changes handler behavoir. This will only apply while batch is active.
+
+
+
+
+ Check the requested files against batch state (based on aggregated changes files via TryAddChangedFiles).
+
+
+
+
+ Check the status of a projects
+
+
+
+
+ Request solution reload
+
+
+
+
+ Request specific projects reload, fForceReload applies to all specified projects. Note even if reloadAction = DRA_ReloadProject [some of] selected proejcts can still end up being forcefully reloaded (even if they support own reload)
+ if some other logic reqires that for same project[s]. If fForceRelad = DRA_ForceReloadProject, it is guarantee that they will be forcefully reloaded (unless solution is reloaded which will override any project reloads).
+
+
+
+
+ Add files changes hints (can be used by reload logic extender during compute stage).
+
+
+
+
+ Batch id - unique withing solution open session.
+
+
+
+
+ Last state change id. Each call to TryAddXXX might change the state if introduce a new reload action or new changed files hint.
+
+
+
+
+ Note if BatchStage != COMPLETED, the state can be changed at any time.
+ Only the IVsSolutionBatchUpdateManagerEvents event listeners are guaranteed to have stable data in this case
+
+
+
+
+ batch handler friendly id.
+
+
+
+
+ batch require solution reload.
+
+
+
+
+ VS task tracking batch progress.
+
+
+
+
+ VS request batch completion as soon as possible.
+
+
+
+
+ VS request batch cancellation.
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+
+
+
+ check current provider if it will allow giving up control to a different reload handler.
+
+
+
+
+ check if provider can/want take control and handle the currently opened scope.
+
+
+
+
+ check if provider is ok to join the currently opened scope and let existing handler drive it.
+
+
+
+
+ called on BG thread when a state changed, or handler instructed us (via timeout).
+
+
+
+
+ called on UI thread before commencing modal reload phase.
+
+
+
+
+ comence the actual reload, once this is called no additional changes can be included in batch scope and it will be closed (one way or another) after this method finis.
+ In theory we can support async, but all current cases do require UI thread anyway (and it is unlikely we want to change that).
+
+
+
+
+ friendly HandlerId. it is string instead of usual guid for better readibility. We dont publish any predefined values.
+ this scenario is always an arm race, so if specific provider wants details they need to discover them.
+
+
+
+
+ Project to be reload (closed and opened) if needed, Example: project file[s] change. If project can not handle external change, it will be reloaded by solution.
+
+
+
+
+ Project to be reload (closed and opened) for this batch.
+
+
+
+
+ Force solution reload, superseeds any other actions.
+
+
+
+
+ Project to be added to the solution for this batch.
+
+
+
+
+ Project to be removed from the solution for this batch.
+
+
+
+
+ Project to be renamed in the solution for this batch.
+
+
+
+
+ Project parent to be changed in the solution for this batch.
+
+
+
+
+ IVsSolutionReloadManager implementation service id.
+
+
+
+
+ Manages external changes that are resolved to project[s] reload.
+ Provides batching and ability to specialize reload logic.
+
+ IVsSolutionReloadManager is freethreaded service and can be called from any thread without switching to UI thread.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ Start a reload batch scope
+
+ pExecutor is the batch commit handler. can be null in which case we use the current or default one.
+
+
+
+ A mechniasm for propagating "unbound" reload changes, aka where changes handler, just want to be included in any currently open batch.
+ if there is no such we will create a default batch for these.
+ Changes can still can be rejected from reload manager (for example if there is no open solution). In that case we return ppHandlingBatch==null;
+
+
+
+
+ get the current reload batch (if any, can return null).
+
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The param defaults to in IDL but we can't default it here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+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
\ No newline at end of file
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.dll b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.dll
new file mode 100644
index 0000000..c9b7446
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.dll differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.xml b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.xml
new file mode 100644
index 0000000..af83c55
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/net6.0/Microsoft.VisualStudio.Interop.xml
@@ -0,0 +1,1193 @@
+
+
+
+ Microsoft.VisualStudio.Interop
+
+
+
+
+ A wrapper for that no-ops when run on .NET on non-Windows platforms.
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports the progress of an operation.
+
+ The progress of the operation.
+
+ can be in the range [0.0..1.0], where 0.0 is 0%
+ complete and 1.0 is 100% complete. A value outside that range indicates
+ indeterminate progress.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ The result of an asynchronous save operation. This is the value returned from the
+ GetResult method on the asynchronous save's returned .
+
+
+
+
+ This is set to true if the save was successful but there was data loss.
+
+
+ Setting this to true is similar to returning STG_S_DATALOSS from synchronous
+ save operations.
+
+
+
+
+ This is set to true if the user canceled the save operation.
+
+
+
+
+ The name of the saved file. This can be null or empty if the name of the
+ saved file did not change.
+
+
+
+
+ Optional interface that can be implemented by docdata objects that need to
+ preserve state data at the beginning of an aync save operation.
+
+
+
+
+ Returns a state object (such as a checkpoint) for an async save operation.
+
+
+ This method is called at the beginning of an asynchronous save. A docdata can
+ implement this interface and supply a state object. It can retrieve the state
+ object in its implementation of or
+ by calling
+ IVsAsyncRunningDocumentTable.GetAsyncSaveState.
+
+
+
+
+ Saves one or more documents asynchronously.
+
+ The save options
+
+ The hierarchy that owns the document to save, or null. This
+ parameter is only used if is VSCOOKIE_NIL
+ and is not VSITEMID_SELECTION. In that case,
+ if this parameter is non-null, then the document identified by
+ is saved.
+
+
+ The item identifier for the document to save, or VSITEMID_SELECTION.
+ This parameter is only used if is VSCOOKIE_NIL.
+ In that case, if this value is VSITEMID_SELECTION then all selected documents
+ are saved. If this value is not VSITEMID_SELECTION and
+ is non-null, this value must be something other than VSITEMID_NIL.
+
+
+ The cookie for the document, or VSCOOKIE_NIL. If this parameter is not
+ VSCOOKIE_NIL, and are
+ ignored and the document identified by the cookie is saved.
+
+ The interface through which progress is reported.
+ A task representing the asynchronous operation
+
+ If is VSCOOKIE_NIL,
+ is not VSITEMID_SELECTION, and is null,
+ all dirty documents are saved.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Retrieves the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+
+ This method is called from a docdata's implementation of
+ or to fetch the state object supplied by
+ in its implementation of .
+
+
+
+
+
+
+
+
+
+
+ Updates the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+ The provider's updated state object.
+
+ A provider might want to do this if the state object changed, say, while processing the
+ OnBeforeSave or OnBeforeSaveAsync event.
+
+
+
+
+ Removes a lock from a document.
+
+ The type of lock to remove.
+ The document cookie.
+ A task representing the asynchronous operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether asynchronous saves are enabled.
+
+
+
+
+ Saves a docdata to a file asynchronously.
+
+ The save flags.
+ The file in which the docdata is to be saved.
+
+ File path to which the doc data for an as-yet unsaved document is to be saved.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a solution element asynchronously.
+
+ The save options.
+ The hierarchy.
+ The document cookie.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a hierarchy item, asynchronously.
+
+ The save flags.
+
+ The file name to be applied when is set to VSSAVE_SilentSave.
+
+ The ID of the hierarchy item to be saved.
+ The document data of the item to be saved.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads a hierarchy item, asynchronously.
+
+ The ID of the hierarchy item to be reloaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Loads the document data for a given document, asynchronously.
+
+ The moniker for the document to be loaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves the document data, asynchronously.
+
+ The save flags
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads the document data asynchronously and in the process determines whether to ignore
+ a subsequent file change.
+
+
+ Flag indicating whether to ignore the next file change when reloading the document data.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+
+ A value of true indicates that the file should be opened as read-only.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+
+ A value that indicates the format in which the file will be saved. The caller passes DEF_FORMAT_INDEX
+ if the object is to choose its default (current) format. Otherwise, the value is interpreted as the index
+ into the list of formats, as returned by a call to the
+ method. An index value of 0 indicates the first format, 1 the second format, and so on.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of flags that describe attributes about a given save.
+
+
+
+
+ Notifies event listeners that a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+
+
+ Notifies event listeners that a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+
+
+ Called right before a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Called right after a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of built in status bar animation indices.
+
+
+
+
+ This property will be set to true after any required pre-close checks have been passed (files saved),
+ but before any shutdown work has begun (like solution close)
+
+
+
+
+ This property controls whether the enhanced tooltip behavior (tooltip will show on focus) is enabled in VS.
+
+
+
+
+ This property indicates that a hierarchy and its nested items may be slow to be enumerated.
+
+
+
+
+ An instance of this interface is sent as the input argument to commands with the AsyncFromUIInvocation,
+ when they are executed by a UI gesture such as a menu command, toolbar button, or key binding.
+
+
+
+
+ Indicates whether the command should be run asynchronously
+
+
+
+
+ The original argument to the command invocation, or null if none was specified.
+
+
+
+
+ Adds to the enumeration.
+
+
+
+
+ Restricts the Font dropdown box of the Fonts and Colors property page to presenting only Fixed Pitch fonts.
+
+
+
+
+ Adds to the enumaration.
+
+
+
+
+ Avoids loading packages when opening a category.
+ This is useful when retrieving font and color info that don't require package loads.
+
+
+
+
+ Provides the ability to asynchronously open items in a project.
+
+
+
+
+ Asynchronously opens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the open operation. The result of the task is an for the opened item.
+
+
+ By implementing IVsProjectSpecificEditorMap2 interface on your project object, you can do project-specific handling of files.
+ That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item.
+ Opening an item requires launching an editor using OpenStandardEditorAsync(...) or OpenSpecificEditorAsync(...), depending on the handling you want to implement.
+ For more information, see GetSpecificEditorProperty.
+
+ NOTE: In your implementation of , do not call Show() on the window frame you return.
+
+ Compare to
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously reopens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ Similar to except that you call OpenSpecificEditorAsync (rather than the OpenStandardEditorAsync).
+
+ Implement to handle automatic reopening of files that belong to a project.
+ For example, when a user adds files to a project type that you created, closes the project and later reopens it,
+ implement to also open the files that belong to the new project type.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously opens an item using a specific editor.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the this method will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ This method is used to ask the project to open the item (document) using the specified editor information.
+ It is an extension of .
+
+ It is implemented in conjunction with OpenSpecificEditorAsync.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ This enum continues from MARKERTYPE3. See MARKERTYPE3 for earlier values.
+
+
+
+
+ This property indicates the reason that the product is shutting down. e.g. by Windows restart.
+
+
+
+
+ A service interface that provides a set of methods to asynchronously open documents.
+
+
+
+
+ Asynchronously opens a document using the specified editor.
+
+
+ Flags whose values are taken from the enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A that identifies to editor be used to open the file.
+
+
+ Name of the physical view or null.
+
+ If null, the environment calls MapLogicalView(Guid, String) on the editor factory to determine the physical view that corresponds to the logical view.
+ In this case, null does not specify the primary view, but rather indicates that you do not know which view corresponds to the logical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Opens a file using the standard editor. It will first determine whether a default editor factory for the file is
+ already configured. If a default is not already configured, then it will loop through a priority-sorted
+ list of editor factories to find the first one that supports the document.
+ An exception is thrown if the document cannot be opened.
+
+
+ Flags whose values are taken from the or enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method uses the result of to determine whether it should continue
+ looping to the next editor in the list to find a supported editor factory. Specifically, it should return one of the following:
+ 1. S_OK to indicate that it should stop looping if the editor supports the file and was successfully initialized
+ 2. "VS_E_UNSUPPORTEDFORMAT" to indicate that it should continue looping if the editor does not support the provided doc data
+ 3. Any other error code to indicate that it should stop looping.
+
+
+
+
+ Finds an appropriate project to open the document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ true if the project supports external items; otherwise, false.
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This can be called to open any project that is opened through the New Project or Open Project dialog box.
+ In addition, this method is also called to open a document in any project that is added to the solution through or .
+ One example use of this is the DataView hierarchy, which is currently in Server Explorer.
+ If a DataView hierarchy is added to the solution as a virtual project using , then this method can open items from DataView hierarchies.
+ This functionality is important as it makes debugging of stored procedures possible.
+
+
+
+
+ Finds a specified project to open this document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Unique identifier of the physical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method is used by VSPackages that are not projects that need to open a document in a specific editor, but do not care which project opens the file.
+ To call this method from your VSPackage, you need to know exactly which editor factory you want and exactly which window you want the editor factory to create (that is, the physical view).
+ The logical view specified in the parameter further allows you to specify which tab should be displayed by the editor if the editor implements .
+
+ This method calls . If no project can service the file and the Miscellaneous Files project is not already present,
+ the environment then creates the Miscellaneous Files project and tries again.
+
+
+
+
+ Used to implement Window.NewWindow functionality.
+
+
+ Pointer to the original window frame to clone.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+ The value of is a reference to a new, cloned based on .
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ Editors should handle cmdidNewWindow command by calling this method.
+
+
+
+
+ Gets the provisional viewing status for a file.
+
+
+ The name of the file.
+
+
+ The hierarchy of the item.
+
+
+ The item identifier of the item.
+
+
+ The logical view to query.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+ The physical view attributes – which declare if and how the physical view supports provisional viewing (that is, previewing) – are properties of the editor.
+ In addition to physical view attributes, editors also declare what file types they can edit (for example, *.cs, *.xml, and so on) and the relative “rank” of the editor.
+ Multiple editors can declare that they support the same file type and the environment then chooses the one with the highest rank to open the file.
+
+
+
+
+ Retrieves the provisional viewing status for an editor and logical view combination.
+
+
+ The editor to query.
+
+
+ The hierarchy of the item.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+
+
+ Represents the result of an asynchronous open document operation.
+
+
+
+
+ Gets the hierarchy associated with the .
+
+
+
+
+ Gets the ID of the selected item in the associated .
+
+
+
+
+ Gets the associated with the opened document.
+
+
+
+
+ Gets the task that represents the work of loading the .
+ The docdata and docview are fully initialized when this task successfully runs to completion.
+
+
+
+
+ Asynchronously loads the document view's after the environment has loaded the document data.
+
+
+ A task that represents the asynchronous operation of loading the document view. The result of the task is an .
+
+
+
+
+ Gets the document view that was created by the method.
+
+
+
+
+ Gets the GUID for the pane or editor factory for later use when you create the view.
+
+
+
+
+ Returns an array of strings from a multi-string entry in the settings store.
+
+ The collection path.
+ The property name.
+ The strings from a multi-string entry.
+ The HRESULT for the operation.
+
+
+
+ Gets the list of attributes for the object.
+
+ The dispid of the property to retrieve attributes
+ the number of attribute type names in
+ Attribute type names, such as System.ComponentModel.BrowsableAttribute, or System.ComponentModel.DescriptionAttribute. This can be the name of any type that derives from System.Attribute. The array is callee allocated and will be caller freed using . Strings themselves should be freed with . It can also be a static instance name such as System.ComponentModel.BrowsableAttribute.No, which will cause the initializer value to be ignored.
+ An array of variants to be used to initialize the given attributes. If the attributes have a ctor that takes a parameter, the given argument will be used to iniitalize the attribute. If the initializer is NULL, VT_EMPTY or VT_NULL, the default ctor will be called. Variants will be caller freed individually by pInvoking VariantClear. The array must be freed calling .
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+ IVsSolutionReloadBatch is freethreaded object and can be used without switching to UI thread.
+
+
+
+
+ Needed to support original solution external file changes handler behavoir. This will only apply while batch is active.
+
+
+
+
+ Check the requested files against batch state (based on aggregated changes files via TryAddChangedFiles).
+
+
+
+
+ Check the status of a projects
+
+
+
+
+ Request solution reload
+
+
+
+
+ Request specific projects reload, fForceReload applies to all specified projects. Note even if reloadAction = DRA_ReloadProject [some of] selected proejcts can still end up being forcefully reloaded (even if they support own reload)
+ if some other logic reqires that for same project[s]. If fForceRelad = DRA_ForceReloadProject, it is guarantee that they will be forcefully reloaded (unless solution is reloaded which will override any project reloads).
+
+
+
+
+ Add files changes hints (can be used by reload logic extender during compute stage).
+
+
+
+
+ Batch id - unique withing solution open session.
+
+
+
+
+ Last state change id. Each call to TryAddXXX might change the state if introduce a new reload action or new changed files hint.
+
+
+
+
+ Note if BatchStage != COMPLETED, the state can be changed at any time.
+ Only the IVsSolutionBatchUpdateManagerEvents event listeners are guaranteed to have stable data in this case
+
+
+
+
+ batch handler friendly id.
+
+
+
+
+ batch require solution reload.
+
+
+
+
+ VS task tracking batch progress.
+
+
+
+
+ VS request batch completion as soon as possible.
+
+
+
+
+ VS request batch cancellation.
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+
+
+
+ check current provider if it will allow giving up control to a different reload handler.
+
+
+
+
+ check if provider can/want take control and handle the currently opened scope.
+
+
+
+
+ check if provider is ok to join the currently opened scope and let existing handler drive it.
+
+
+
+
+ called on BG thread when a state changed, or handler instructed us (via timeout).
+
+
+
+
+ called on UI thread before commencing modal reload phase.
+
+
+
+
+ comence the actual reload, once this is called no additional changes can be included in batch scope and it will be closed (one way or another) after this method finis.
+ In theory we can support async, but all current cases do require UI thread anyway (and it is unlikely we want to change that).
+
+
+
+
+ friendly HandlerId. it is string instead of usual guid for better readibility. We dont publish any predefined values.
+ this scenario is always an arm race, so if specific provider wants details they need to discover them.
+
+
+
+
+ Project to be reload (closed and opened) if needed, Example: project file[s] change. If project can not handle external change, it will be reloaded by solution.
+
+
+
+
+ Project to be reload (closed and opened) for this batch.
+
+
+
+
+ Force solution reload, superseeds any other actions.
+
+
+
+
+ Project to be added to the solution for this batch.
+
+
+
+
+ Project to be removed from the solution for this batch.
+
+
+
+
+ Project to be renamed in the solution for this batch.
+
+
+
+
+ Project parent to be changed in the solution for this batch.
+
+
+
+
+ IVsSolutionReloadManager implementation service id.
+
+
+
+
+ Manages external changes that are resolved to project[s] reload.
+ Provides batching and ability to specialize reload logic.
+
+ IVsSolutionReloadManager is freethreaded service and can be called from any thread without switching to UI thread.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ Start a reload batch scope
+
+ pExecutor is the batch commit handler. can be null in which case we use the current or default one.
+
+
+
+ A mechniasm for propagating "unbound" reload changes, aka where changes handler, just want to be included in any currently open batch.
+ if there is no such we will create a default batch for these.
+ Changes can still can be rejected from reload manager (for example if there is no open solution). In that case we return ppHandlingBatch==null;
+
+
+
+
+ get the current reload batch (if any, can return null).
+
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The param defaults to in IDL but we can't default it here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+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
\ No newline at end of file
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.dll b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.dll
new file mode 100644
index 0000000..0b673cf
Binary files /dev/null and b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.dll differ
diff --git a/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.xml b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.xml
new file mode 100644
index 0000000..a0e549c
--- /dev/null
+++ b/packages/Microsoft.VisualStudio.Interop.17.7.37355/lib/netstandard2.0/Microsoft.VisualStudio.Interop.xml
@@ -0,0 +1,1193 @@
+
+
+
+ Microsoft.VisualStudio.Interop
+
+
+
+
+ A wrapper for that no-ops when run on .NET on non-Windows platforms.
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports the progress of an operation.
+
+ The progress of the operation.
+
+ can be in the range [0.0..1.0], where 0.0 is 0%
+ complete and 1.0 is 100% complete. A value outside that range indicates
+ indeterminate progress.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ The result of an asynchronous save operation. This is the value returned from the
+ GetResult method on the asynchronous save's returned .
+
+
+
+
+ This is set to true if the save was successful but there was data loss.
+
+
+ Setting this to true is similar to returning STG_S_DATALOSS from synchronous
+ save operations.
+
+
+
+
+ This is set to true if the user canceled the save operation.
+
+
+
+
+ The name of the saved file. This can be null or empty if the name of the
+ saved file did not change.
+
+
+
+
+ Optional interface that can be implemented by docdata objects that need to
+ preserve state data at the beginning of an aync save operation.
+
+
+
+
+ Returns a state object (such as a checkpoint) for an async save operation.
+
+
+ This method is called at the beginning of an asynchronous save. A docdata can
+ implement this interface and supply a state object. It can retrieve the state
+ object in its implementation of or
+ by calling
+ IVsAsyncRunningDocumentTable.GetAsyncSaveState.
+
+
+
+
+ Saves one or more documents asynchronously.
+
+ The save options
+
+ The hierarchy that owns the document to save, or null. This
+ parameter is only used if is VSCOOKIE_NIL
+ and is not VSITEMID_SELECTION. In that case,
+ if this parameter is non-null, then the document identified by
+ is saved.
+
+
+ The item identifier for the document to save, or VSITEMID_SELECTION.
+ This parameter is only used if is VSCOOKIE_NIL.
+ In that case, if this value is VSITEMID_SELECTION then all selected documents
+ are saved. If this value is not VSITEMID_SELECTION and
+ is non-null, this value must be something other than VSITEMID_NIL.
+
+
+ The cookie for the document, or VSCOOKIE_NIL. If this parameter is not
+ VSCOOKIE_NIL, and are
+ ignored and the document identified by the cookie is saved.
+
+ The interface through which progress is reported.
+ A task representing the asynchronous operation
+
+ If is VSCOOKIE_NIL,
+ is not VSITEMID_SELECTION, and is null,
+ all dirty documents are saved.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Retrieves the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+
+ This method is called from a docdata's implementation of
+ or to fetch the state object supplied by
+ in its implementation of .
+
+
+
+
+
+
+
+
+
+
+ Updates the state object (such as a checkpoint) for an async save operation.
+
+ The provider of the state object.
+ The provider's updated state object.
+
+ A provider might want to do this if the state object changed, say, while processing the
+ OnBeforeSave or OnBeforeSaveAsync event.
+
+
+
+
+ Removes a lock from a document.
+
+ The type of lock to remove.
+ The document cookie.
+ A task representing the asynchronous operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether asynchronous saves are enabled.
+
+
+
+
+ Saves a docdata to a file asynchronously.
+
+ The save flags.
+ The file in which the docdata is to be saved.
+
+ File path to which the doc data for an as-yet unsaved document is to be saved.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a solution element asynchronously.
+
+ The save options.
+ The hierarchy.
+ The document cookie.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a hierarchy item, asynchronously.
+
+ The save flags.
+
+ The file name to be applied when is set to VSSAVE_SilentSave.
+
+ The ID of the hierarchy item to be saved.
+ The document data of the item to be saved.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads a hierarchy item, asynchronously.
+
+ The ID of the hierarchy item to be reloaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Loads the document data for a given document, asynchronously.
+
+ The moniker for the document to be loaded.
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves the document data, asynchronously.
+
+ The save flags
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be .
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Reloads the document data asynchronously and in the process determines whether to ignore
+ a subsequent file change.
+
+
+ Flag indicating whether to ignore the next file change when reloading the document data.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Opens a specified file asynchronously and initializes an object from the file contents.
+
+ The name of the file to load.
+
+ File format mode. If zero, the object uses the usual defaults as if the user had opened the file.
+
+
+ A value of true indicates that the file should be opened as read-only.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Saves a copy of the object to the specified file, asynchronously.
+
+
+ The file name. This parameter can be null, in which case the object is saved to its
+ current file. If the object is in the untitled state and is null,
+ is thrown.
+
+
+ Indicates whether is to be used as the current working file. If
+ true, becomes the current file and the object should clear
+ its dirty flag after the save. If false, this save operation is a Save a Copy As operation.
+ In this case, the current file is unchanged and the object does not clear its dirty flag.
+ If is null, is ignored.
+
+
+ A value that indicates the format in which the file will be saved. The caller passes DEF_FORMAT_INDEX
+ if the object is to choose its default (current) format. Otherwise, the value is interpreted as the index
+ into the list of formats, as returned by a call to the
+ method. An index value of 0 indicates the first format, 1 the second format, and so on.
+
+ The interface through which progress is reported.
+
+ A task representing the asynchronous operation. The result of the returned task
+ will be . The
+ property is unused.
+
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of flags that describe attributes about a given save.
+
+
+
+
+ Notifies event listeners that a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+
+
+ Notifies event listeners that a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+
+
+ Called right before a save is about to occur.
+
+ The document cookie.
+ Provides additional information about the save.
+ A task representing the save operation.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ Called right after a save has occurred.
+
+ The document cookie.
+ Provides additional information about the save.
+
+ An optional task representing async work done by the event sink. If this is non-null,
+ the RunningDocTable will await its completion before continuing the save.
+
+
+ When the RunningDocTable notifies the event sink about save events, it will first check if the event implements this
+ interface and call this method. If not, it will check if it implements
+ and call . Note that this means the RDT will not call both methods.
+
+ Implementers should be prepared for this method to be called on any thread.
+
+
+
+
+ A set of built in status bar animation indices.
+
+
+
+
+ This property will be set to true after any required pre-close checks have been passed (files saved),
+ but before any shutdown work has begun (like solution close)
+
+
+
+
+ This property controls whether the enhanced tooltip behavior (tooltip will show on focus) is enabled in VS.
+
+
+
+
+ This property indicates that a hierarchy and its nested items may be slow to be enumerated.
+
+
+
+
+ An instance of this interface is sent as the input argument to commands with the AsyncFromUIInvocation,
+ when they are executed by a UI gesture such as a menu command, toolbar button, or key binding.
+
+
+
+
+ Indicates whether the command should be run asynchronously
+
+
+
+
+ The original argument to the command invocation, or null if none was specified.
+
+
+
+
+ Adds to the enumeration.
+
+
+
+
+ Restricts the Font dropdown box of the Fonts and Colors property page to presenting only Fixed Pitch fonts.
+
+
+
+
+ Adds to the enumaration.
+
+
+
+
+ Avoids loading packages when opening a category.
+ This is useful when retrieving font and color info that don't require package loads.
+
+
+
+
+ Provides the ability to asynchronously open items in a project.
+
+
+
+
+ Asynchronously opens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the open operation. The result of the task is an for the opened item.
+
+
+ By implementing IVsProjectSpecificEditorMap2 interface on your project object, you can do project-specific handling of files.
+ That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item.
+ Opening an item requires launching an editor using OpenStandardEditorAsync(...) or OpenSpecificEditorAsync(...), depending on the handling you want to implement.
+ For more information, see GetSpecificEditorProperty.
+
+ NOTE: In your implementation of , do not call Show() on the window frame you return.
+
+ Compare to
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously reopens an item in the project.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ Similar to except that you call OpenSpecificEditorAsync (rather than the OpenStandardEditorAsync).
+
+ Implement to handle automatic reopening of files that belong to a project.
+ For example, when a user adds files to a project type that you created, closes the project and later reopens it,
+ implement to also open the files that belong to the new project type.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Asynchronously opens an item using a specific editor.
+
+
+ Identifier of the item to open.
+ Should be VSITEMID_ROOT or other valid item identifier.
+ See the VSITEMID enumeration.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Name of the physical view. If set to null, MapLogicalView will be called.
+
+
+ Unique identifier of the logical view.
+ If not GUID_NULL, indicates a specific type of view to create.
+ For more information, see the LOGVIEWID.
+
+
+ If true, then the this method will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A task representing the reopen operation. The result of the task is an for the reopened item.
+
+
+ This method is used to ask the project to open the item (document) using the specified editor information.
+ It is an extension of .
+
+ It is implemented in conjunction with OpenSpecificEditorAsync.
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ This enum continues from MARKERTYPE3. See MARKERTYPE3 for earlier values.
+
+
+
+
+ This property indicates the reason that the product is shutting down. e.g. by Windows restart.
+
+
+
+
+ A service interface that provides a set of methods to asynchronously open documents.
+
+
+
+
+ Asynchronously opens a document using the specified editor.
+
+
+ Flags whose values are taken from the enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A that identifies to editor be used to open the file.
+
+
+ Name of the physical view or null.
+
+ If null, the environment calls MapLogicalView(Guid, String) on the editor factory to determine the physical view that corresponds to the logical view.
+ In this case, null does not specify the primary view, but rather indicates that you do not know which view corresponds to the logical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+
+
+
+ Opens a file using the standard editor. It will first determine whether a default editor factory for the file is
+ already configured. If a default is not already configured, then it will loop through a priority-sorted
+ list of editor factories to find the first one that supports the document.
+ An exception is thrown if the document cannot be opened.
+
+
+ Flags whose values are taken from the or enumeration.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file.
+ In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ Initial caption defined by the document owner (that is, the project) for the document window. This is often of the form: "ProjectName – ItemName."
+
+
+ A reference to the that owns the document.
+
+
+ The UI hierarchy item identifier of the standard editor. For more information see VSConstants.VSITEMID.
+
+
+ If true, then the environment will use the doc data object obtained from the Running Document Table;
+ otherwise, the service will open the document using the doc data passed in to .
+
+
+ A reference to the document data object of the item to open or null. This value passed into this parameter is ignored
+ if is true.
+
+
+ A reference to the .
+
+
+ A task representing that the open operation has started.
+ The result of the task is a reference to an , if the document was opened within the environment; otherwise, null.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method uses the result of to determine whether it should continue
+ looping to the next editor in the list to find a supported editor factory. Specifically, it should return one of the following:
+ 1. S_OK to indicate that it should stop looping if the editor supports the file and was successfully initialized
+ 2. "VS_E_UNSUPPORTEDFORMAT" to indicate that it should continue looping if the editor does not support the provided doc data
+ 3. Any other error code to indicate that it should stop looping.
+
+
+
+
+ Finds an appropriate project to open the document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ true if the project supports external items; otherwise, false.
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This can be called to open any project that is opened through the New Project or Open Project dialog box.
+ In addition, this method is also called to open a document in any project that is added to the solution through or .
+ One example use of this is the DataView hierarchy, which is currently in Server Explorer.
+ If a DataView hierarchy is added to the solution as a virtual project using , then this method can open items from DataView hierarchies.
+ This functionality is important as it makes debugging of stored procedures possible.
+
+
+
+
+ Finds a specified project to open this document.
+
+
+ String form of the unique moniker identifier of the document in the project system, for example, the full path to the file. In non-file cases, this identifier is often in the form of a URL.
+
+
+ Flags whose values are taken from the __VSSPECIFICEDITORFLAGS enumeration.
+
+
+ Unique identifier of the editor type.
+
+
+ Unique identifier of the physical view.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ This method is used by VSPackages that are not projects that need to open a document in a specific editor, but do not care which project opens the file.
+ To call this method from your VSPackage, you need to know exactly which editor factory you want and exactly which window you want the editor factory to create (that is, the physical view).
+ The logical view specified in the parameter further allows you to specify which tab should be displayed by the editor if the editor implements .
+
+ This method calls . If no project can service the file and the Miscellaneous Files project is not already present,
+ the environment then creates the Miscellaneous Files project and tries again.
+
+
+
+
+ Used to implement Window.NewWindow functionality.
+
+
+ Pointer to the original window frame to clone.
+
+
+ A identifying the logical view. The default view is VSConstants.LOGVIEWID_Primary and every editor must support that view.
+
+ If the editor implements on the document view object, then the value passed to
+ , which determines which view is activated when the editor window is shown.
+
+ By specifying the logical view , you can request the specific view that matches the reason you are requesting the view.
+ For example, specify VSConstants.LOGVIEWID_Debugging to get the view appropriate for debugging, or VSConstants.LOGVIEWID_TextView to get the view
+ appropriate for the text editor (that is, a view that implements ).
+
+
+ A task representing the open operation.
+ The result of the task is an object.
+ The value of is a reference to a new, cloned based on .
+
+
+ The task returned by this method does not indicate that the document's view and docdata have been loaded. See for more details.
+
+ Editors should handle cmdidNewWindow command by calling this method.
+
+
+
+
+ Gets the provisional viewing status for a file.
+
+
+ The name of the file.
+
+
+ The hierarchy of the item.
+
+
+ The item identifier of the item.
+
+
+ The logical view to query.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+ The physical view attributes – which declare if and how the physical view supports provisional viewing (that is, previewing) – are properties of the editor.
+ In addition to physical view attributes, editors also declare what file types they can edit (for example, *.cs, *.xml, and so on) and the relative “rank” of the editor.
+ Multiple editors can declare that they support the same file type and the environment then chooses the one with the highest rank to open the file.
+
+
+
+
+ Retrieves the provisional viewing status for an editor and logical view combination.
+
+
+ The editor to query.
+
+
+ The hierarchy of the item.
+
+
+ A task representing the query operation.
+ The result of the task is a member of the enumeration that describes how the file can be opened in the preview tab.
+ The default provisional viewing status is PVS_Disabled, but can be modified by the editor's "CommonPhysicalViewAttributes" registry value and the values under its "PhysicalViewAttributes" registry subkey.
+
+
+
+
+ Represents the result of an asynchronous open document operation.
+
+
+
+
+ Gets the hierarchy associated with the .
+
+
+
+
+ Gets the ID of the selected item in the associated .
+
+
+
+
+ Gets the associated with the opened document.
+
+
+
+
+ Gets the task that represents the work of loading the .
+ The docdata and docview are fully initialized when this task successfully runs to completion.
+
+
+
+
+ Asynchronously loads the document view's after the environment has loaded the document data.
+
+
+ A task that represents the asynchronous operation of loading the document view. The result of the task is an .
+
+
+
+
+ Gets the document view that was created by the method.
+
+
+
+
+ Gets the GUID for the pane or editor factory for later use when you create the view.
+
+
+
+
+ Returns an array of strings from a multi-string entry in the settings store.
+
+ The collection path.
+ The property name.
+ The strings from a multi-string entry.
+ The HRESULT for the operation.
+
+
+
+ Gets the list of attributes for the object.
+
+ The dispid of the property to retrieve attributes
+ the number of attribute type names in
+ Attribute type names, such as System.ComponentModel.BrowsableAttribute, or System.ComponentModel.DescriptionAttribute. This can be the name of any type that derives from System.Attribute. The array is callee allocated and will be caller freed using . Strings themselves should be freed with . It can also be a static instance name such as System.ComponentModel.BrowsableAttribute.No, which will cause the initializer value to be ignored.
+ An array of variants to be used to initialize the given attributes. If the attributes have a ctor that takes a parameter, the given argument will be used to iniitalize the attribute. If the initializer is NULL, VT_EMPTY or VT_NULL, the default ctor will be called. Variants will be caller freed individually by pInvoking VariantClear. The array must be freed calling .
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+ IVsSolutionReloadBatch is freethreaded object and can be used without switching to UI thread.
+
+
+
+
+ Needed to support original solution external file changes handler behavoir. This will only apply while batch is active.
+
+
+
+
+ Check the requested files against batch state (based on aggregated changes files via TryAddChangedFiles).
+
+
+
+
+ Check the status of a projects
+
+
+
+
+ Request solution reload
+
+
+
+
+ Request specific projects reload, fForceReload applies to all specified projects. Note even if reloadAction = DRA_ReloadProject [some of] selected proejcts can still end up being forcefully reloaded (even if they support own reload)
+ if some other logic reqires that for same project[s]. If fForceRelad = DRA_ForceReloadProject, it is guarantee that they will be forcefully reloaded (unless solution is reloaded which will override any project reloads).
+
+
+
+
+ Add files changes hints (can be used by reload logic extender during compute stage).
+
+
+
+
+ Batch id - unique withing solution open session.
+
+
+
+
+ Last state change id. Each call to TryAddXXX might change the state if introduce a new reload action or new changed files hint.
+
+
+
+
+ Note if BatchStage != COMPLETED, the state can be changed at any time.
+ Only the IVsSolutionBatchUpdateManagerEvents event listeners are guaranteed to have stable data in this case
+
+
+
+
+ batch handler friendly id.
+
+
+
+
+ batch require solution reload.
+
+
+
+
+ VS task tracking batch progress.
+
+
+
+
+ VS request batch completion as soon as possible.
+
+
+
+
+ VS request batch cancellation.
+
+
+
+
+ State of single reload batch. Include description of relevant [externally] changed files,
+ resulting project /solution actions (such reload).
+
+
+
+
+ check current provider if it will allow giving up control to a different reload handler.
+
+
+
+
+ check if provider can/want take control and handle the currently opened scope.
+
+
+
+
+ check if provider is ok to join the currently opened scope and let existing handler drive it.
+
+
+
+
+ called on BG thread when a state changed, or handler instructed us (via timeout).
+
+
+
+
+ called on UI thread before commencing modal reload phase.
+
+
+
+
+ comence the actual reload, once this is called no additional changes can be included in batch scope and it will be closed (one way or another) after this method finis.
+ In theory we can support async, but all current cases do require UI thread anyway (and it is unlikely we want to change that).
+
+
+
+
+ friendly HandlerId. it is string instead of usual guid for better readibility. We dont publish any predefined values.
+ this scenario is always an arm race, so if specific provider wants details they need to discover them.
+
+
+
+
+ Project to be reload (closed and opened) if needed, Example: project file[s] change. If project can not handle external change, it will be reloaded by solution.
+
+
+
+
+ Project to be reload (closed and opened) for this batch.
+
+
+
+
+ Force solution reload, superseeds any other actions.
+
+
+
+
+ Project to be added to the solution for this batch.
+
+
+
+
+ Project to be removed from the solution for this batch.
+
+
+
+
+ Project to be renamed in the solution for this batch.
+
+
+
+
+ Project parent to be changed in the solution for this batch.
+
+
+
+
+ IVsSolutionReloadManager implementation service id.
+
+
+
+
+ Manages external changes that are resolved to project[s] reload.
+ Provides batching and ability to specialize reload logic.
+
+ IVsSolutionReloadManager is freethreaded service and can be called from any thread without switching to UI thread.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ The IVsSolutionReloadManagerEvents can be used to both react on reload changes as well as influence the outcome.
+
+
+
+
+ Start a reload batch scope
+
+ pExecutor is the batch commit handler. can be null in which case we use the current or default one.
+
+
+
+ A mechniasm for propagating "unbound" reload changes, aka where changes handler, just want to be included in any currently open batch.
+ if there is no such we will create a default batch for these.
+ Changes can still can be rejected from reload manager (for example if there is no open solution). In that case we return ppHandlingBatch==null;
+
+
+
+
+ get the current reload batch (if any, can return null).
+
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ Single or an array of either or objects
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+
+
+ The param defaults to in IDL but we can't default it here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The param defaults to in IDL but can't be defaulted here because can't be defaulted.
+
+
+
+
+ The defaults to in IDL but we can't default it here as the cannot be defaulted
+
+
+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
\ No newline at end of file
diff --git a/packages/stdole.17.7.37355/.signature.p7s b/packages/stdole.17.7.37355/.signature.p7s
new file mode 100644
index 0000000..12afc14
Binary files /dev/null and b/packages/stdole.17.7.37355/.signature.p7s differ
diff --git a/packages/stdole.17.7.37355/LICENSE.txt b/packages/stdole.17.7.37355/LICENSE.txt
new file mode 100644
index 0000000..7d34d70
--- /dev/null
+++ b/packages/stdole.17.7.37355/LICENSE.txt
@@ -0,0 +1,36 @@
+MICROSOFT SOFTWARE LICENSE TERMS
+MICROSOFT VISUAL STUDIO ADD-ONs and EXTENSIONS
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. They apply to the software named above. The terms also apply to any Microsoft services or updates for the software, except to the extent those have different terms.
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW.
+1. INSTALLATION AND USE RIGHTS.
+You may install and use any number of copies of the software to use solely with
+Visual Studio Community
+Visual Studio Professional
+Visual Studio Enterprise
+Visual Studio Code
+2. THIRD PARTY COMPONENTS.� The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software.�
+3. DATA.
+a. Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the software documentation. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications and you should provide a copy of Microsoft�s privacy statement to your users. The Microsoft privacy statement is located here https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use from the software documentation and our privacy statement. Your use of the software operates as your consent to these practices.
+b. Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr.
+4. SCOPE OF LICENSE. The software is licensed, not sold. These license terms only give you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in these license terms. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. In addition, you may not
+* work around any technical limitations in the software;
+* reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software except, and only to the extent required by third party licensing terms governing the use of certain open source components that may be included in the software;
+* remove, minimize, block or modify any notices of Microsoft or its suppliers in the software;
+* use the software in any way that is against the law;
+* share, publish, rent, or lease the software; or
+* provide the software as a stand-alone offering or combine it with any of your applications for others to use, or transfer the software or this agreement to any third party.
+5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit www.microsoft.com/exporting.
+6. SUPPORT SERVICES. Because this software is �as is�, we may not provide support services for it.
+7. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+8. APPLICABLE LAW. If you acquired the software in the United States, Washington law applies to interpretation of and claims for breach of this agreement, and the laws of the state where you live apply to all other claims. If you acquired the software in any other country, its laws apply.
+9. CONSUMER RIGHTS; REGIONAL VARIATIONS. These license terms describe certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. You may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:
+a. Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.
+b. Canada. You may stop receiving updates on your device by turning off Internet access. If and when you re-connect to the Internet, the software will resume checking for and installing updates.
+c. Germany and Austria.
+(i) Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.
+(ii) Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in the case of death or personal or physical injury, Microsoft is liable according to the statutory law.
+Subject to the preceding sentence (ii), Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.
+10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED �AS-IS�. YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+11. LIMITATION ON AND EXCLUSION OF DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
diff --git a/packages/stdole.17.7.37355/PackageIcon.png b/packages/stdole.17.7.37355/PackageIcon.png
new file mode 100644
index 0000000..f9ec42a
Binary files /dev/null and b/packages/stdole.17.7.37355/PackageIcon.png differ
diff --git a/packages/stdole.17.7.37355/lib/net20/stdole.dll b/packages/stdole.17.7.37355/lib/net20/stdole.dll
new file mode 100644
index 0000000..e5fe4cd
Binary files /dev/null and b/packages/stdole.17.7.37355/lib/net20/stdole.dll differ
diff --git a/packages/stdole.17.7.37355/lib/net20/stdole.xml b/packages/stdole.17.7.37355/lib/net20/stdole.xml
new file mode 100644
index 0000000..dc7aa16
--- /dev/null
+++ b/packages/stdole.17.7.37355/lib/net20/stdole.xml
@@ -0,0 +1,8 @@
+
+
+
+ stdole
+
+
+
+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
diff --git a/packages/stdole.17.7.37355/lib/net45/stdole.dll b/packages/stdole.17.7.37355/lib/net45/stdole.dll
new file mode 100644
index 0000000..81116c9
Binary files /dev/null and b/packages/stdole.17.7.37355/lib/net45/stdole.dll differ
diff --git a/packages/stdole.17.7.37355/lib/net45/stdole.xml b/packages/stdole.17.7.37355/lib/net45/stdole.xml
new file mode 100644
index 0000000..57f5dfc
--- /dev/null
+++ b/packages/stdole.17.7.37355/lib/net45/stdole.xml
@@ -0,0 +1,8 @@
+
+
+
+ stdole
+
+
+
+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
diff --git a/packages/stdole.17.7.37355/lib/net472/stdole.dll b/packages/stdole.17.7.37355/lib/net472/stdole.dll
new file mode 100644
index 0000000..989bec5
Binary files /dev/null and b/packages/stdole.17.7.37355/lib/net472/stdole.dll differ
diff --git a/packages/stdole.17.7.37355/lib/net472/stdole.xml b/packages/stdole.17.7.37355/lib/net472/stdole.xml
new file mode 100644
index 0000000..a12dafb
--- /dev/null
+++ b/packages/stdole.17.7.37355/lib/net472/stdole.xml
@@ -0,0 +1,8 @@
+
+
+
+ stdole
+
+
+
+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
diff --git a/packages/stdole.17.7.37355/lib/net6.0/stdole.dll b/packages/stdole.17.7.37355/lib/net6.0/stdole.dll
new file mode 100644
index 0000000..4e14823
Binary files /dev/null and b/packages/stdole.17.7.37355/lib/net6.0/stdole.dll differ
diff --git a/packages/stdole.17.7.37355/lib/net6.0/stdole.xml b/packages/stdole.17.7.37355/lib/net6.0/stdole.xml
new file mode 100644
index 0000000..f6ac532
--- /dev/null
+++ b/packages/stdole.17.7.37355/lib/net6.0/stdole.xml
@@ -0,0 +1,8 @@
+
+
+
+ stdole
+
+
+
+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
diff --git a/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.dll b/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.dll
new file mode 100644
index 0000000..d178c02
Binary files /dev/null and b/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.dll differ
diff --git a/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.xml b/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.xml
new file mode 100644
index 0000000..7dbd78e
--- /dev/null
+++ b/packages/stdole.17.7.37355/lib/netstandard2.0/stdole.xml
@@ -0,0 +1,8 @@
+
+
+
+ stdole
+
+
+
+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
diff --git a/packages/stdole.17.7.37355/stdole.17.7.37355.nupkg b/packages/stdole.17.7.37355/stdole.17.7.37355.nupkg
new file mode 100644
index 0000000..16a9186
Binary files /dev/null and b/packages/stdole.17.7.37355/stdole.17.7.37355.nupkg differ