#ifndef _FilePane_h_ #define _FilePane_h_ #include "propwnd2.h" //UINT CALLBACK _ButtonProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); //UINT CALLBACK _CheckProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); class CFilePanePropWnd2 : public CPropertyDataWindow2 { // friend UINT CALLBACK _ButtonProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); // friend UINT CALLBACK _CheckProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); private: static UINT CALLBACK OFNHookProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); static LRESULT CALLBACK WndProc( HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam ); UINT CALLBACK _OFNHookProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); private: HWND m_hwndEdit; HWND m_hwndCheck; HWND m_hwndBrowse; UINT m_editID; UINT m_checkID; UINT m_browseID; TCHAR m_szOFNData[MAX_PATH]; LPTSTR m_lptstrFilter; LPTSTR m_lptstrDefExtension; LPTSTR m_lptstrDefFileName; OPENFILENAME m_ofn; BOOL m_fOpenDialog; public: CFilePanePropWnd2( HWND hwndParent, UINT uIDD, LPTSTR szClassName, UINT PopUpHelpMenuTextId, int iX, int iY, int iWidth, int iHeight, BOOL bScroll = FALSE ); void SetFilePane( BOOL fOpenDialog, UINT editID, UINT checkID, UINT browseID, LPTSTR lptstDesc, LPTSTR lptstrDefExtension, LPTSTR lptstrDefFileName); ~CFilePanePropWnd2(); public: void CreateOutputDir( void ); void QueryFilePath( void ); LPTSTR GetPathAndFile( LPTSTR lpstrPath ); LPTSTR GetPath( LPTSTR lpstrPath ); LPTSTR GetFile( LPTSTR lpstrFile ); void SetFileName(LPTSTR lpstrFullFileName); BOOL OptionEnabled(); void Enable( BOOL bEnable ); BOOL Validate( BOOL bMsg ); HANDLE CreateFile( DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes ); private: void _Enable( BOOL bEnable ); void _InitOFN( void ); void _CopyString( LPTSTR * szTarget, LPTSTR szSource ); void _CopyFilter( LPTSTR * szTarget, LPTSTR szDesc, LPTSTR szExt ); void _SetDefaultPath( void ); }; #endif