44#define BUFFILEALLOC 512 * sizeof(WCHAR)
56#define FD31_OFN_PROP "FILEDLG_OFN"
89 ERR(
"Error loading icons!\n");
128 TRACE(
"Call hookA %p (%p, %04x, %08Ix, %08Ix)\n",
131 TRACE(
"ret hookA %p (%p, %04x, %08Ix, %08Ix)\n",
136 TRACE(
"Call hookW %p (%p, %04x, %08Ix, %08Ix)\n",
139 TRACE(
"Ret hookW %p (%p, %04x, %08Ix, %08Ix)\n",
178 HCURSOR hCursorWait, oldCursor;
200 if (scptr) *scptr = 0;
204 if (scptr) *scptr =
';';
205 filter = (scptr) ? (scptr + 1) : 0;
343 tmpstr2[lenstr2++]=
'\\';
358 TRACE(
"file %s, file offset %d, ext offset %d\n",
424 if (tmpstr[0] ==
'[')
482 LPWSTR pBeginFileName, pstr2;
486 if (pBeginFileName ==
NULL)
492 if (pBeginFileName !=
NULL)
495 *(pBeginFileName + 1) = 0;
514 if (pBeginFileName ==
NULL || *(pBeginFileName + 1) != 0)
525 if (pBeginFileName !=
NULL)
558 memcpy( &ofnsav, ofnW, copied_size );
592 memcpy( ofnW, &ofnsav, copied_size );
695 TRACE(
"OK pressed\n");
805 ofnW->pvReserved = ofnA->pvReserved;
806 ofnW->dwReserved = ofnA->dwReserved;
807 ofnW->FlagsEx = ofnA->FlagsEx;
837 TRACE(
"destroying private allocation %p\n", lfs);
917 FD31_DATA *lfs = heap_alloc_zero(
sizeof(*lfs));
919 TRACE(
"alloc private buf %p\n", lfs);
920 if (!lfs)
return NULL;
966 if (!lfs)
return FALSE;
979 TRACE(
"lpstrCustomFilter = %p\n", pstr);
987 TRACE(
"add str=%s associated to %s\n",
1004 TRACE(
"add str=%s associated to %s\n",
1024 TRACE(
"nFilterIndex = %ld, SetText of edt1 to %s\n",
1041 if (
len > 0 && tmpstr[
len-1] !=
'\\' && tmpstr[
len-1] !=
':') {
1051 WARN(
"Couldn't read initial directory %s!\n",
debugstr_w(tmpstr));
1056 char str[4] =
"a:\\";
1058 for(
i = 0,
n = -1;
i < 26;
i++)
1107 if (lRet)
return lRet;
1185 TRACE(
"file %s, file offset %d, ext offset %d\n",
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define CDERR_LOADRESFAILURE
#define CDERR_FINDRESFAILURE
void COMDLG32_SetCommDlgExtendedError(DWORD err)
HINSTANCE COMDLG32_hInstance
struct tagOFNW * LPOPENFILENAMEW
#define OFN_ENABLETEMPLATEHANDLE
struct tagOFNA * LPOPENFILENAMEA
#define OPENFILENAME_SIZE_VERSION_400W
#define OFN_ENABLETEMPLATE
#define OFN_ALLOWMULTISELECT
#define GetCurrentDirectoryW(x, y)
#define WideCharToMultiByte
#define MultiByteToWideChar
UINT WINAPI GetDriveTypeA(IN LPCSTR lpRootPathName)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI SetCurrentDirectoryW(IN LPCWSTR lpPathName)
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
#define IS_INTRESOURCE(x)
LPSTR WINAPI PathFindExtensionA(const char *path)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
char *WINAPI PathFindFileNameA(const char *path)
_ACRTIMP size_t __cdecl strlen(const char *)
static LRESULT FD31_FileListSelect(const FD31_DATA *lfs)
static LPWSTR FD31_MapStringPairsToW(LPCSTR strA, UINT size)
static int FD31_GetFldrHeight(void)
static void FD31_StripEditControl(HWND hwnd)
static BOOL FD31_CallWindowProc(const FD31_DATA *lfs, UINT wMsg, WPARAM wParam, LPARAM lParam)
static PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
static void FD31_UpdateResult(const FD31_DATA *lfs, const WCHAR *tmpstr)
struct tagFD31_DATA FD31_DATA
static void FD31_DestroyPrivate(PFD31_DATA lfs)
BOOL GetFileName31A(OPENFILENAMEA *lpofn, UINT dlgType)
static BOOL FD31_ScanDir(const OPENFILENAMEW *ofn, HWND hWnd, LPCWSTR newPath)
static BOOL FD31_Init(void)
static LONG FD31_WMInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam)
static const int fldrWidth
static LRESULT FD31_FileTypeChange(const FD31_DATA *lfs)
static LRESULT FD31_WMCommand(HWND hWnd, LPARAM lParam, UINT notification, UINT control, const FD31_DATA *lfs)
static INT_PTR CALLBACK FD31_FileOpenDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
static void FD31_UpdateFileTitle(const FD31_DATA *lfs)
static void FD31_FreeOfnW(OPENFILENAMEW *ofnW)
static const int fldrHeight
static BOOL FD31_GetTemplate(PFD31_DATA lfs)
static LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam, int savedlg, const DRAWITEMSTRUCT *lpdis)
static void FD31_MapOfnStructA(const OPENFILENAMEA *ofnA, LPOPENFILENAMEW ofnW, BOOL open)
static LONG FD31_WMMeasureItem(LPARAM lParam)
struct tagFD31_DATA * PFD31_DATA
static LRESULT FD31_TestPath(const FD31_DATA *lfs, LPWSTR path)
static LRESULT FD31_DirListDblClick(const FD31_DATA *lfs)
static LPWSTR FD31_DupToW(LPCSTR str, DWORD size)
static LPCWSTR FD31_GetFileType(LPCWSTR cfptr, LPCWSTR fptr, const WORD index)
BOOL GetFileName31W(OPENFILENAMEW *lpofn, UINT dlgType)
static LRESULT FD31_DiskChange(const FD31_DATA *lfs)
static LRESULT FD31_Validate(const FD31_DATA *lfs, LPCWSTR path, UINT control, INT itemIndex, BOOL internalUse)
GLint GLint GLint GLint GLint x
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
DWORD WINAPI GetSysColor(_In_ int)
UINT WINAPI RegisterWindowMessageA(_In_ LPCSTR)
INT_PTR WINAPI DialogBoxIndirectParamW(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
HANDLE WINAPI GetPropA(_In_ HWND, _In_ LPCSTR)
struct tagMEASUREITEMSTRUCT * LPMEASUREITEMSTRUCT
BOOL WINAPI SetPropA(_In_ HWND, _In_ LPCSTR, _In_opt_ HANDLE)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
#define COLOR_HIGHLIGHTTEXT
INT_PTR WINAPI DialogBoxIndirectParamA(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
HANDLE WINAPI LoadImageA(_In_opt_ HINSTANCE hInst, _In_ LPCSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
int WINAPI DlgDirListW(_In_ HWND, _Inout_ LPWSTR, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
HANDLE WINAPI RemovePropA(_In_ HWND, _In_ LPCSTR)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
int WINAPI DlgDirListComboBoxW(_In_ HWND, _Inout_ LPWSTR, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
#define DRIVE_NO_ROOT_DIR
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI ExtTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)