После закрытия диалогового окна - понятно, как
А вот в функции обратного вызова, когда юзер меняет тип файла? Сам этот момент ловится без проблем, а вот какой именно тип файла выбран, узнать не получается.
- Код: Выделить всё
Public Function DialogHookFunction(ByVal hDlg As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Static DlgHwnd As Long
On Error Resume Next
Select Case wMsg
Case WM_INITDIALOG
DlgHwnd = GetParent(hDlg)
Case WM_NOTIFY
Dim tOFNs As OFNOTIFYshort
CopyMemory tOFNs, ByVal lParam, Len(tOFNs)
Select Case tOFNs.hdr.code
Case CDN_TYPECHANGE
Stop
' как в этот момент получить выбранный фильтр?
' так я пробовал:
Dim opm As OFN_TEMP
CopyMemory opm, ByVal tOFNs.lpOFN, Len(opm)
Debug.Print opm.CustomFilter
Dim b() As Byte
ReDim b(40)
CopyMemory b(0), ByVal opm.CustomFilter, 40
Dim s As String
s = b
Debug.Print s
s = StrConv(s, vbUnicode)
Debug.Print s
' Case CDN_SELCHANGE
' Case CDN_FILEOK
' Case CDN_FOLDERCHANGE
' Case CDN_HELP
End Select
Case WM_DESTROY
Case Else
End Select
End Function