#ifndef _WIN64 #include #endif #define COMMDLGAPI DECLSPEC_IMPORT typedef UINT_PTR (CALLBACK *LPOFNHOOKPROC)(HWND, UINT, WPARAM, LPARAM); #define OFN_READONLY 0x00000001 #define OFN_OVERWRITEPROMPT 0x00000002 #define OFN_HIDEREADONLY 0x00000004 #define OFN_NOCHANGEDIR 0x00000008 #define OFN_NOVALIDATE 0x00000100 #define OFN_ALLOWMULTISELECT 0x00000200 #define OFN_EXTENSIONDIFFERENT 0x00000400 #define OFN_PATHMUSTEXIST 0x00000800 #define OFN_FILEMUSTEXIST 0x00001000 #define OFN_CREATEPROMPT 0x00002000 #define OFN_SHAREAWARE 0x00004000 #define OFN_NOREADONLYRETURN 0x00008000 #define OFN_NOTESTFILECREATE 0x00010000 typedef struct _OPENFILENAMEA { DWORD lStructSize; HWND hwndOwner; HINSTANCE hInstance; LPCSTR lpstrFilter; LPSTR lpstrCustomFilter; DWORD nMaxCustFilter; DWORD nFilterIndex; LPSTR lpstrFile; DWORD nMaxFile; LPSTR lpstrFileTitle; DWORD nMaxFileTitle; LPCSTR lpstrInitialDir; LPCSTR lpstrTitle; DWORD Flags; WORD nFileOffset; WORD nFileExtension; LPCSTR lpstrDefExt; LPARAM lCustData; LPOFNHOOKPROC lpfnHook; LPCSTR lpTemplateName; } OPENFILENAMEA; typedef struct _OPENFILENAMEW { DWORD lStructSize; HWND hwndOwner; HINSTANCE hInstance; LPCWSTR lpstrFilter; LPWSTR lpstrCustomFilter; DWORD nMaxCustFilter; DWORD nFilterIndex; LPWSTR lpstrFile; DWORD nMaxFile; LPWSTR lpstrFileTitle; DWORD nMaxFileTitle; LPCWSTR lpstrInitialDir; LPCWSTR lpstrTitle; DWORD Flags; WORD nFileOffset; WORD nFileExtension; LPCWSTR lpstrDefExt; LPARAM lCustData; LPOFNHOOKPROC lpfnHook; LPCWSTR lpTemplateName; } OPENFILENAMEW; /* Version of OPENFILENAMEA/W defined above is older NT 4 version */ /* of the struct without the new fields introduced in 2000 and later */ #define OPENFILENAME_SIZE_VERSION_400 sizeof(OPENFILENAMEW) COMMDLGAPI BOOL APIENTRY GetOpenFileNameA(OPENFILENAMEA* ofn); COMMDLGAPI BOOL APIENTRY GetOpenFileNameW(OPENFILENAMEW* ofn); COMMDLGAPI BOOL APIENTRY GetSaveFileNameA(OPENFILENAMEA* ofn); COMMDLGAPI BOOL APIENTRY GetSaveFileNameW(OPENFILENAMEW* ofn); COMMDLGAPI DWORD APIENTRY CommDlgExtendedError(VOID); #ifndef _WIN64 #include #endif