pokemon-overworld-editor/clsCommonDialog.cls

148 lines
5.4 KiB
OpenEdge ABL
Raw Normal View History

2014-07-10 23:56:29 -05:00
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsCommonDialog"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private Declare Function GetOpenFileName Lib "COMDLG32.DLL" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib "COMDLG32.DLL" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private cdlg As OPENFILENAME
Private LastFileName As String
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_EXPLORER = &H80000 ' new look commdlg
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_LONGNAMES = &H200000 ' force long names for 3.x modules
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_NODEREFERENCELINKS = &H100000
Private Const OFN_NOLONGNAMES = &H40000 ' force no long names for 4.x modules
Private Const OFN_NONETWORKBUTTON = &H20000
Private Const OFN_NOREADONLYRETURN = &H8000
Private Const OFN_NOTESTFILECREATE = &H10000
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_READONLY = &H1
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_SHAREFALLTHROUGH = 2
Private Const OFN_SHARENOWARN = 1
Private Const OFN_SHAREWARN = 0
Private Const OFN_SHOWHELP = &H10
Public Enum DialogFlags
ALLOWMULTISELECT = OFN_ALLOWMULTISELECT
CREATEPROMPT = OFN_CREATEPROMPT
ENABLEHOOK = OFN_ENABLEHOOK
ENABLETEMPLATE = OFN_ENABLETEMPLATE
ENABLETEMPLATEHANDLE = OFN_ENABLETEMPLATEHANDLE
EXPLORER = OFN_EXPLORER
EXTENSIONDIFFERENT = OFN_EXTENSIONDIFFERENT
FILEMUSTEXIST = OFN_FILEMUSTEXIST
HIDEREADONLY = OFN_HIDEREADONLY
LONGNAMES = OFN_LONGNAMES
NOCHANGEDIR = OFN_NOCHANGEDIR
NODEREFERENCELINKS = OFN_NODEREFERENCELINKS
NOLONGNAMES = OFN_NOLONGNAMES
NONETWORKBUTTON = OFN_NONETWORKBUTTON
NOREADONLYRETURN = OFN_NOREADONLYRETURN
NOTESTFILECREATE = OFN_NOTESTFILECREATE
NOVALIDATE = OFN_NOVALIDATE
OVERWRITEPROMPT = OFN_OVERWRITEPROMPT
PATHMUSTEXIST = OFN_PATHMUSTEXIST
ReadOnly = OFN_READONLY
SHAREAWARE = OFN_SHAREAWARE
SHAREFALLTHROUGH = OFN_SHAREFALLTHROUGH
SHARENOWARN = OFN_SHARENOWARN
SHAREWARN = OFN_SHAREWARN
SHOWHELP = OFN_SHOWHELP
End Enum
Public Function ShowOpen(ByVal Form_hWnd As Long, ByVal Title As String, Optional ByVal InitDir As String = "", Optional ByVal Filter As String = "All Files (*.*)|*.*|", Optional Flags As DialogFlags = FILEMUSTEXIST Or PATHMUSTEXIST) As String
Dim i As Integer
Filter = Replace(Filter, "|", Chr(0))
If Right(Filter, 1) <> Chr(0) Then Filter = Filter & Chr(0)
If Len(InitDir) = 0 Then InitDir = LastFileName
cdlg.lStructSize = Len(cdlg)
cdlg.hwndOwner = Form_hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = Filter
cdlg.lpstrFile = Space(254)
cdlg.nMaxFile = 255
cdlg.lpstrFileTitle = Space(254)
cdlg.nMaxFileTitle = 255
cdlg.lpstrInitialDir = InitDir
cdlg.lpstrTitle = Title
cdlg.Flags = Flags
ShowOpen = IIf(GetOpenFileName(cdlg), Trim(cdlg.lpstrFile), "")
If Len(ShowOpen) > 0 Then LastFileName = ShowOpen
End Function
Public Function ShowSave(ByVal Form_hWnd As Long, ByVal Title As String, Optional ByVal InitDir As String = "", Optional ByVal Filter As String = "All Files (*.*)|*.*|", Optional ByVal DefExt As String = "", Optional Flags As DialogFlags = OVERWRITEPROMPT) As String
Dim i As Integer
Filter = Replace(Filter, "|", Chr(0))
If Right(Filter, 1) <> Chr(0) Then Filter = Filter & Chr(0)
If Len(InitDir) = 0 Then InitDir = LastFileName
cdlg.lStructSize = Len(cdlg)
cdlg.lpstrTitle = Title
cdlg.hwndOwner = Form_hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = Filter
cdlg.lpstrDefExt = DefExt
cdlg.lpstrFile = Space(255)
cdlg.nMaxFile = 255
cdlg.lpstrFileTitle = Space(254)
cdlg.nMaxFileTitle = 255
cdlg.lpstrInitialDir = InitDir
cdlg.Flags = Flags
ShowSave = IIf(GetSaveFileName(cdlg), Trim(cdlg.lpstrFile), "")
If Len(ShowSave) > 0 Then LastFileName = ShowSave
End Function
Public Property Let FileName(szFileName)
LastFileName = szFileName
End Property
Public Property Get FileName()
FileName = LastFileName
End Property