title: Attempted to read or write protected memory. This is often an indication that other memory is corrupt
body: <p>I am using the following code </p>
  
  <p>This error occurs :</p>
  
  <p>Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
  Attempted to read or write protected memory. This is often an indication that other memory is corrupt.</p>
  
  <pre><code>Public Class FormRegEnumValue
  
  Private Const ERROR_SUCCESS = 0&amp;
  Private Const ERROR_NO_MORE_ITEMS = 259&amp;
  Private Const HKEY_CURRENT_USER = &amp;H80000001
  
  Private Const REG_BINARY = 3
  Private Const REG_DWORD = 4
  Private Const REG_EXPAND_SZ = 2
  Private Const REG_SZ = 1
  
  Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, ByVal lpcbValueName As Long, ByVal lpReserved As Long, ByVal lpType As Long, ByVal lpData As Object, ByVal lpcbData As Long) As Long
  Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal phkResult As Long) As Long
  
  
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim hKey As Long, num As Long, strName As String
      Dim strData As String, Retval As Long, RetvalData As Long
  
      Const Buffer As Long = 255
      num = 0
      strName = Space(Buffer)
      strData = Space(Buffer)
      Retval = Buffer
      RetvalData = Buffer
      If RegOpenKey(HKEY_CURRENT_USER, "Control Panel\Desktop", hKey) = 0 Then 'error
          While RegEnumValue(hKey, num, strName, Retval, 0, 0&amp;, strData, RetvalData) &lt;&gt; ERROR_NO_MORE_ITEMS
              If RetvalData &gt; 0 Then
                  ListBox1.Items.Add(strName + Retval + "  =  " + strData + RetvalData - 1)
              End If
              num = num + 1
              strName = Space(Buffer)
              strData = Space(Buffer)
              Retval = Buffer
              RetvalData = Buffer
          End While
          RegCloseKey(hKey)
      Else
          ListBox1.Items.Add("Error")
      End If
  End Sub
  End Class
  </code></pre>
  
  <p>Please show me the right way</p>