想通过API CreateFile,ReadFile 读取文件,写了如下代码:
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
             ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, _
             ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, _
                                                 lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End TypePublic Type ACL
        AclRevision As Byte
        Sbz1 As Byte
        AclSize As Integer
        AceCount As Integer
        Sbz2 As Integer
End TypePublic Type SECURITY_DESCRIPTOR
        Revision As Byte
        Sbz1 As Byte
        Control As Long
        Owner As Long
        Group As Long
        Sacl As ACL
        Dacl As ACL
End TypePublic Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
Public Const OPEN_EXISTING = 3
Public Const Return_Fail = -1
Public Function ReadtoBuf(ByRef Buf() As Byte) As Long
Dim FPath As String
Dim Hdl As Long
Dim Sd As SECURITY_DESCRIPTOR
Dim SAttr As SECURITY_ATTRIBUTES
On Error Resume Next
FPath = "C:\aaa.TXT"SAttr.lpSecurityDescriptor = VarPtr(Sd)
SAttr.bInheritHandle = 0
SAttr.nLength = 0 ' Len(Attr)Hdl = CreateFile(FPath, GENERIC_READ, FILE_SHARE_READ, SAttr, OPEN_EXISTING, 0, 0)  'aaa  如果sattr位置参数改为0 结果不变
If Hdl = Return_Fail Then
  MsgBox "Open Err:" & Err.Description
  Exit Function
End If'.........................End Function上面代码 aaa句不成功, 总是出错:Hdl = Return_Fail 
请问这里代码哪里有问题呢 ?
本人 判断可能是Sattr问题,可应该如何设置:SAttr呢 ?