51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
|
////////////////////////////////////////////////////////////////
|
||
|
// MSDN -- August 2000
|
||
|
// If this code works, it was written by Paul DiLascia.
|
||
|
// If not, I don't know who wrote it.
|
||
|
// Compiles with Visual C++ 6.0, runs on Windows 98 and probably NT too.
|
||
|
//
|
||
|
#pragma once
|
||
|
|
||
|
// Windows 2000 version of OPENFILENAME.
|
||
|
// The new version has three extra members.
|
||
|
// This is copied from commdlg.h
|
||
|
//
|
||
|
struct OPENFILENAMEEX : public OPENFILENAME {
|
||
|
void * pvReserved;
|
||
|
DWORD dwReserved;
|
||
|
DWORD FlagsEx;
|
||
|
};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CFileDialogEx: Encapsulate Windows-2000 style open dialog.
|
||
|
//
|
||
|
class CFileDialogEx : public CFileDialog {
|
||
|
DECLARE_DYNAMIC(CFileDialogEx)
|
||
|
public:
|
||
|
CFileDialogEx(BOOL bOpenFileDialog, // TRUE for open, FALSE for FileSaveAs
|
||
|
LPCTSTR lpszDefExt = NULL,
|
||
|
LPCTSTR lpszFileName = NULL,
|
||
|
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
|
||
|
LPCTSTR lpszFilter = NULL,
|
||
|
CWnd* pParentWnd = NULL);
|
||
|
|
||
|
// override
|
||
|
virtual INT_PTR DoModal();
|
||
|
|
||
|
protected:
|
||
|
OPENFILENAMEEX m_ofnEx; // new Windows 2000 version of OPENFILENAME
|
||
|
|
||
|
virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
|
||
|
|
||
|
// virtual fns that handle various notifications
|
||
|
virtual BOOL OnFileNameOK();
|
||
|
virtual void OnInitDone();
|
||
|
virtual void OnFileNameChange();
|
||
|
virtual void OnFolderChange();
|
||
|
virtual void OnTypeChange();
|
||
|
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
//{{AFX_MSG(CFileDialogEx)
|
||
|
//}}AFX_MSG
|
||
|
};
|