<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="c:\program files (x86)\microsoft visual studio\2017\professional\team tools\static analysis tools\fxcop\Xml\CodeAnalysisReport.xsl"?>
<FxCopReport Version="15.0">
 <Targets>
  <Target Name="H:\HanaSoft\HanaSoft\bin\Debug\HanaSoft.exe">
   <Modules>
    <Module Name="hanasoft.exe">
     <Namespaces>
      <Namespace Name="HanaSoft">
       <Types>
        <Type Name="clsINI" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#FlashWindowEx(HanaSoft.clsINI+FLASHWINFO&amp;)" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'clsINI.FlashWindowEx(ByRef clsINI.FLASHWINFO)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="#FlushPrivateProfileString(System.Int32,System.Int32,System.Int32,System.String&amp;)" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'clsINI.FlushPrivateProfileString(Integer, Integer, Integer, ByRef String)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="#GetPrivateProfileInt(System.String&amp;,System.String&amp;,System.Int32,System.String&amp;)" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'clsINI.GetPrivateProfileInt(ByRef String, ByRef String, Integer, ByRef String)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="#GetPrivateProfileString(System.String&amp;,System.String&amp;,System.String&amp;,System.Text.StringBuilder,System.Int32,System.String&amp;)" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'clsINI.GetPrivateProfileString(ByRef String, ByRef String, ByRef String, StringBuilder, Integer, ByRef String)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
            <Message Id="3" TypeName="SpecifyMarshalingForPInvokeStringArguments" Category="Microsoft.Globalization" CheckId="CA2101" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="NonBreaking">
             <Issue Name="ParameterImplicitAnsi" Certainty="75" Level="Error">To reduce security risk, marshal parameter 'lpReturnedString' as Unicode, by setting DllImport.CharSet to CharSet.Unicode, or by explicitly marshaling the parameter as UnmanagedType.LPWStr. If you need to marshal this string as ANSI or system-dependent, specify MarshalAs explicitly, and set BestFitMapping=false; for added security, also set ThrowOnUnmappableChar=true.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="#WritePrivateProfileString(System.String&amp;,System.String&amp;,System.String&amp;,System.String&amp;)" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'clsINI.WritePrivateProfileString(ByRef String, ByRef String, ByRef String, ByRef String)' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="clsINI+FLASHWINFO" Kind="Struct" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#hwnd" Kind="Field" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="75" Level="CriticalError">Make 'clsINI.FLASHWINFO.hwnd' private.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="ImportProgram" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#btn_chonfile_Click(System.Object,System.EventArgs)" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="Do not dispose objects multiple times" Category="Microsoft.Usage" CheckId="CA2202" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
             <Issue Certainty="75" Level="Warning" Path="H:\HanaSoft\HanaSoft" File="ImportProgram.vb" Line="28">Object 'stream' can be disposed more than once in method 'ImportProgram.btn_chonfile_Click(Object, EventArgs)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 28</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="List_DataWork" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#List_DataWork_VisibleChanged(System.Object,System.EventArgs)" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="Do not dispose objects multiple times" Category="Microsoft.Usage" CheckId="CA2202" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
             <Issue Certainty="75" Level="Warning" Path="H:\HanaSoft\HanaSoft" File="List_DataWork.vb" Line="40">Object 'Me' can be disposed more than once in method 'List_DataWork.List_DataWork_VisibleChanged(Object, EventArgs)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 40</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Login" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#Login_Shown(System.Object,System.EventArgs)" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="Do not dispose objects multiple times" Category="Microsoft.Usage" CheckId="CA2202" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
             <Issue Certainty="75" Level="Warning" Path="H:\HanaSoft\HanaSoft" File="Login.vb" Line="88">Object 'Me' can be disposed more than once in method 'Login.Login_Shown(Object, EventArgs)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 88</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="SQLControl" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Messages>
          <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
           <Issue Name="DependsOnFix" Certainty="95" Level="CriticalError">Implement IDisposable on 'SQLControl' because it creates members of the following IDisposable types: 'SqlConnection', 'SqlCommand', 'DataTable', 'SqlDataAdapter'. If 'SQLControl' has previously shipped, adding new members that implement IDisposable to this type is considered a breaking change to existing consumers.</Issue>
          </Message>
         </Messages>
         <Members>
          <Member Name="#ExecQuery(System.String,System.Boolean)" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="Review SQL queries for security vulnerabilities" Category="Microsoft.Security" CheckId="CA2100" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
             <Issue Name="WithNonLiterals" Certainty="75" Level="Warning" Path="H:\HanaSoft\HanaSoft" File="SQLControl.vb" Line="39">The query string passed to 'SqlCommand.New(String, SqlConnection)' in 'SQLControl.ExecQuery(String, Boolean)' could contain the following variables 'Query'. If any of these variables could come from user input, consider using a stored procedure or a parameterized SQL query instead of building the query with string concatenations.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
        <Type Name="Start" Kind="Class" Accessibility="Public" ExternallyVisible="True">
         <Members>
          <Member Name="#GetTickCount()" Kind="Method" Static="True" Accessibility="Private" ExternallyVisible="False">
           <Messages>
            <Message TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="Breaking">
             <Issue Certainty="95" Level="CriticalWarning">Because it is a P/Invoke method, 'Start.GetTickCount()' should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Issue>
            </Message>
            <Message Id="return" TypeName="PInvokeDeclarationsShouldBePortable" Category="Microsoft.Portability" CheckId="CA1901" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="NonBreaking">
             <Issue Name="Return" Certainty="95" Level="Error">As it is declared in your code, the return type of P/Invoke 'Start.GetTickCount()' will be 8 bytes wide on 32-bit platforms. This is not correct, as the actual native declaration of this API indicates it should be 4 bytes wide on 32-bit platforms. Consult the MSDN Platform SDK documentation for help determining what data type should be used instead of 'Long'.</Issue>
             <Issue Name="Return" Certainty="95" Level="Error">As it is declared in your code, the return type of P/Invoke 'Start.GetTickCount()' will be 8 bytes wide on 64-bit platforms. This is not correct, as the actual native declaration of this API indicates it should be 4 bytes wide on 64-bit platforms. Consult the MSDN Platform SDK documentation for help determining what data type should be used instead of 'Long'.</Issue>
            </Message>
           </Messages>
          </Member>
          <Member Name="#SQLDatabaseExist(System.String,System.String)" Kind="Method" Static="False" Accessibility="Public" ExternallyVisible="True">
           <Messages>
            <Message TypeName="Review SQL queries for security vulnerabilities" Category="Microsoft.Security" CheckId="CA2100" Status="Active" Created="2022-07-12 08:11:50Z" FixCategory="DependsOnFix">
             <Issue Name="WithNonLiterals" Certainty="75" Level="Warning" Path="H:\HanaSoft\HanaSoft" File="Start.vb" Line="221">The query string passed to 'SqlCommand.New(String, SqlConnection)' in 'Start.SQLDatabaseExist(String, String)' could contain the following variables 'DataBaseName'. If any of these variables could come from user input, consider using a stored procedure or a parameterized SQL query instead of building the query with string concatenations.</Issue>
            </Message>
           </Messages>
          </Member>
         </Members>
        </Type>
       </Types>
      </Namespace>
     </Namespaces>
    </Module>
   </Modules>
  </Target>
 </Targets>
 <Rules>
  <Rule TypeName="Do not dispose objects multiple times" Category="Microsoft.Usage" CheckId="CA2202">
   <Name>Do not dispose objects multiple times</Name>
   <Description>A correctly implemented Dispose method can be called multiple times without throwing an exception. However, this is not guaranteed and to avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.</Description>
   <Resolution Name="Default">Object {0} can be disposed more than once in method {1}. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 88</Resolution>
   <Owner>RuleOwner</Owner>
   <Url>http://msdn.microsoft.com/library/ms182334.aspx</Url>
   <Email />
   <MessageLevel Certainty="75">Warning</MessageLevel>
   <File Name="dataflowrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="MovePInvokesToNativeMethodsClass" Category="Microsoft.Design" CheckId="CA1060">
   <Name>Move P/Invokes to NativeMethods class</Name>
   <Description>This type contains members with the DllImport attribute. Members with the DllImport attribute should be contained in classes named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Description>
   <Resolution Name="Default">Because it is a P/Invoke method, {0} should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods.</Resolution>
   <Owner />
   <Url>http://msdn.microsoft.com/library/ms182161.aspx</Url>
   <Email>[none]</Email>
   <MessageLevel Certainty="95">CriticalWarning</MessageLevel>
   <File Name="designrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="PInvokeDeclarationsShouldBePortable" Category="Microsoft.Portability" CheckId="CA1901">
   <Name>P/Invoke declarations should be portable</Name>
   <Description>.</Description>
   <Resolution Name="Return">As it is declared in your code, the return type of P/Invoke {0} will be {1} bytes wide on {2} platforms. This is not correct, as the actual native declaration of this API indicates it should be {3} bytes wide on {2} platforms. Consult the MSDN Platform SDK documentation for help determining what data type should be used instead of {4}.</Resolution>
   <Owner />
   <Url>http://msdn.microsoft.com/library/ms182284(VS.100).aspx</Url>
   <Email>[none]</Email>
   <MessageLevel Certainty="95">Error</MessageLevel>
   <File Name="portabilityrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111">
   <Name>Pointers should not be visible</Name>
   <Description>IntPtr and UIntPtr fields should be declared as private. Exposing non-private pointers can cause a security weakness.</Description>
   <Resolution Name="Default">Make {0} private.</Resolution>
   <Owner />
   <Url>http://msdn.microsoft.com/library/ms182306.aspx</Url>
   <Email>[none]</Email>
   <MessageLevel Certainty="75">CriticalError</MessageLevel>
   <File Name="securityrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="Review SQL queries for security vulnerabilities" Category="Microsoft.Security" CheckId="CA2100">
   <Name>Review SQL queries for security vulnerabilities</Name>
   <Description>A SQL command string built from user input is vulnerable to SQL injection attacks. Microsoft SQL Server and other database servers support stored procedures and parameterized SQL queries, which reduce the risk of injection attacks.</Description>
   <Resolution Name="WithNonLiterals">The query string passed to {0} in {1} could contain the following variables {2}. If any of these variables could come from user input, consider using a stored procedure or a parameterized SQL query instead of building the query with string concatenations.</Resolution>
   <Owner>RuleOwner</Owner>
   <Url>http://msdn.microsoft.com/library/ms182310.aspx</Url>
   <Email />
   <MessageLevel Certainty="75">Warning</MessageLevel>
   <File Name="dataflowrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="SpecifyMarshalingForPInvokeStringArguments" Category="Microsoft.Globalization" CheckId="CA2101">
   <Name>Specify marshaling for P/Invoke string arguments</Name>
   <Description>When marshaling strings as ANSI (or as Auto on Win9x), some characters may be changed. If best-fit mapping is on, strings that appear different in Unicode will be marshaled to identical ANSI strings, which may lead to incorrect security decisions. Turning best-fit mapping off reduces this risk, as all characters without equivalents are mapped to '?'. Also, note that CharSet.Ansi is the default setting for all string marshaling; Unicode marshaling must be specified explicitly, either as a CharSet setting of DllImport or StructLayout, or as a MarshalAs attribute with a Unicode (or system-dependent) UnmanagedType.</Description>
   <Resolution Name="ParameterImplicitAnsi">To reduce security risk, marshal parameter {0} as Unicode, by setting DllImport.CharSet to CharSet.Unicode, or by explicitly marshaling the parameter as UnmanagedType.LPWStr. If you need to marshal this string as ANSI or system-dependent, specify MarshalAs explicitly, and set BestFitMapping=false; for added security, also set ThrowOnUnmappableChar=true.</Resolution>
   <Owner />
   <Url>http://msdn.microsoft.com/library/ms182319.aspx</Url>
   <Email>[none]</Email>
   <MessageLevel Certainty="75">Error</MessageLevel>
   <File Name="globalizationrules.dll" Version="15.0.0.0" />
  </Rule>
  <Rule TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001">
   <Name>Types that own disposable fields should be disposable</Name>
   <Description>Types that declare disposable members should also implement IDisposable. If the type does not own any unmanaged resources, do not implement a finalizer on it.</Description>
   <Resolution Name="DependsOnFix">Implement IDisposable on {0} because it creates members of the following IDisposable types: {1}. If {0} has previously shipped, adding new members that implement IDisposable to this type is considered a breaking change to existing consumers.</Resolution>
   <Owner />
   <Url>http://msdn.microsoft.com/library/ms182172.aspx</Url>
   <Email>[none]</Email>
   <MessageLevel Certainty="95">CriticalError</MessageLevel>
   <File Name="designrules.dll" Version="15.0.0.0" />
  </Rule>
 </Rules>
 <Localized>
  <String Key="Category">Category</String>
  <String Key="Certainty">Certainty</String>
  <String Key="CollapseAll">Collapse All</String>
  <String Key="CheckId">Check Id</String>
  <String Key="Error">Error</String>
  <String Key="Errors">error(s)</String>
  <String Key="ExpandAll">Expand All</String>
  <String Key="Help">Help</String>
  <String Key="Line">Line</String>
  <String Key="Messages">message(s)</String>
  <String Key="LocationNotStoredInPdb">[Location not stored in Pdb]</String>
  <String Key="Project">Project</String>
  <String Key="Resolution">Resolution</String>
  <String Key="Rule">Rule</String>
  <String Key="RuleFile">Rule File</String>
  <String Key="RuleDescription">Rule Description</String>
  <String Key="Source">Source</String>
  <String Key="Status">Status</String>
  <String Key="Target">Target</String>
  <String Key="Warning">Warning</String>
  <String Key="Warnings">warning(s)</String>
  <String Key="ReportTitle">Code Analysis Report</String>
 </Localized>
</FxCopReport>
