关于API声明的有关问题

关于API声明的问题
今天,我学习API。写了一个Test程序,出了问题鸟。
代码入下:
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   Const   GENERIC_READ   =   &H80000000
Private   Const   GENERIC_WRITE   =   &H40000000
Private   Const   FILE_SHARE_READ   =   &H1
Private   Const   FILE_SHARE_WRITE   =   &H2
Private   Const   CREATE_NEW   =   1

Private   Sub   Command1_Click()
Dim   a   As   Long
  a   =   CreateFile( "c:\test.ini ",   GENERIC_WRITE,   FILE_SHARE_READ   Or   FILE_SHARE_WRITE,   0,   CREATE_NEW,   0,   0)
End   Sub

编译不能通过,说是:
User-defined   type   not   defined

好像是声明部分的问题。整个程序只有一个按钮。

------解决方案--------------------
lpSecurityAttributes As SECURITY_ATTRIBUTES
这是个Type,你需要定义这个type
------解决方案--------------------
SECURITY_ATTRIBUTES没有声明,添上:
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

或者将CreateFile的声明修改一下:
Private Declare Function CreateFile Lib "kernel32 " Alias "CreateFileA " (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
调用:
a = CreateFile( "c:\test.ini ", GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, byval 0&, CREATE_NEW, 0, 0)