#### Passing User Defined Types by Ref to DLL’s and Enable functions

' OpenFile() Structure

Type OFSTRUCT

cBytes As String * 1

fFixedDisk As String * 1

nErrCode As Integer

reserved As String * 4

szPathName As String * 128

End Type

' OpenFile() Flags4

Global Const OF_READ = &H0

Global Const OF_WRITE = &H1

Global Const OF_READWRITE = &H2

Global Const OF_SHARE_COMPAT = &H0

Global Const OF_SHARE_EXCLUSIVE = &H10

Global Const OF_SHARE_DENY_WRITE = &H20

Global Const OF_SHARE_DENY_READ = &H30

Global Const OF_SHARE_DENY_NONE = &H40

Global Const OF_PARSE = &H100

Global Const OF_DELETE = &H200

Global Const OF_VERIFY = &H400

Global Const OF_CANCEL = &H800

Global Const OF_CREATE = &H1000

Global Const OF_PROMPT = &H2000

Global Const OF_EXIST = &H4000

Global Const OF_REOPEN = &H8000

Declare Function OpenFile Lib "Kernel" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Integer) As Integer

Sub Main

Dim ofs As OFSTRUCT

' Print OF_READWRITE

ofs.szPathName = "c:\enable\openfile.bas"

print ofs.szPathName

ofs.nErrCode = 5

print ofs.nErrCode

OpenFile "t.bas", ofs

print ofs.szPathName

print ofs.nErrCode

End Sub