[COMDLG32]

* Sync with Wine 1.7.27.
* Translators, you're up ;)
CORE-8540

svn path=/trunk/; revision=64325
This commit is contained in:
Amine Khaldi 2014-09-27 10:16:40 +00:00
parent 41e8832080
commit fb7a38a131
38 changed files with 325 additions and 64 deletions

View file

@ -1776,7 +1776,7 @@ static LRESULT FILEDLG95_ResizeControls(HWND hwnd, WPARAM wParam, LPARAM lParam)
}
else
{
/* Resize the height, if open as read only checkbox ad help button are
/* Resize the height; if opened as read-only, checkbox and help button are
* hidden and we are not using a custom template nor a customDialog
*/
if ( (fodInfos->ofnInfos->Flags & OFN_HIDEREADONLY) &&

View file

@ -94,6 +94,7 @@ typedef struct
#define IDS_INVALID_FILENAME 121
#define IDS_PATHNOTEXISTING 122
#define IDS_FILENOTEXISTING 123
#define IDS_INVALID_FOLDERNAME 124
/* File Dialog Tooltips string IDs */

View file

@ -67,7 +67,8 @@ enum ITEMDLG_CCTRL_TYPE {
IDLG_CCTRL_CHECKBUTTON,
IDLG_CCTRL_EDITBOX,
IDLG_CCTRL_SEPARATOR,
IDLG_CCTRL_TEXT
IDLG_CCTRL_TEXT,
IDLG_CCTRL_VISUALGROUP
};
typedef struct {
@ -76,6 +77,9 @@ typedef struct {
enum ITEMDLG_CCTRL_TYPE type;
CDCONTROLSTATEF cdcstate;
struct list entry;
struct list sub_cctrls;
struct list sub_cctrls_entry;
} customctrl;
typedef struct {
@ -124,9 +128,11 @@ typedef struct FileDialogImpl {
LPWSTR custom_filenamelabel;
UINT cctrl_width, cctrl_def_height, cctrls_cols;
UINT cctrl_indent;
HWND cctrls_hwnd;
struct list cctrls;
UINT_PTR cctrl_next_dlgid;
customctrl *cctrl_active_vg;
GUID client_guid;
} FileDialogImpl;
@ -198,6 +204,18 @@ static void events_OnSelectionChange(FileDialogImpl *This)
}
}
static void events_OnTypeChange(FileDialogImpl *This)
{
events_client *cursor;
TRACE("%p\n", This);
LIST_FOR_EACH_ENTRY(cursor, &This->events_clients, events_client, entry)
{
TRACE("Notifying %p\n", cursor);
IFileDialogEvents_OnTypeChange(cursor->pfde, (IFileDialog*)&This->IFileDialog2_iface);
}
}
static inline HRESULT get_cctrl_event(IFileDialogEvents *pfde, IFileDialogControlEvents **pfdce)
{
return IFileDialogEvents_QueryInterface(pfde, &IID_IFileDialogControlEvents, (void**)pfdce);
@ -348,8 +366,10 @@ static void fill_filename_from_selection(FileDialogImpl *This)
UINT attr;
hr = IShellItem_GetAttributes(psi, SFGAO_FOLDER, &attr);
if(SUCCEEDED(hr) && (attr & SFGAO_FOLDER))
continue; /* FIXME: FOS_PICKFOLDERS */
if(SUCCEEDED(hr) &&
(( (This->options & FOS_PICKFOLDERS) && !(attr & SFGAO_FOLDER)) ||
(!(This->options & FOS_PICKFOLDERS) && (attr & SFGAO_FOLDER))))
continue;
hr = IShellItem_GetDisplayName(psi, SIGDN_PARENTRELATIVEPARSING, &names[valid_count]);
if(SUCCEEDED(hr))
@ -538,21 +558,42 @@ static HRESULT on_default_action(FileDialogImpl *This)
break;
case ONOPEN_OPEN:
if(events_OnFileOk(This) != S_OK)
break;
hr = SHGetDesktopFolder(&psf_desktop);
if(SUCCEEDED(hr))
{
if(This->psia_results)
{
IShellItemArray_Release(This->psia_results);
This->psia_results = NULL;
}
hr = SHCreateShellItemArray(NULL, psf_desktop, file_count, (PCUITEMID_CHILD_ARRAY)pidla,
&This->psia_results);
if(SUCCEEDED(hr))
ret = S_OK;
IShellFolder_Release(psf_desktop);
if(FAILED(hr))
break;
if(This->options & FOS_PICKFOLDERS)
{
SFGAOF attributes;
hr = IShellItemArray_GetAttributes(This->psia_results, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attributes);
if(hr != S_OK)
{
WCHAR buf[64];
LoadStringW(COMDLG32_hInstance, IDS_INVALID_FOLDERNAME, buf, sizeof(buf)/sizeof(WCHAR));
MessageBoxW(This->dlg_hwnd, buf, This->custom_title, MB_OK | MB_ICONEXCLAMATION);
IShellItemArray_Release(This->psia_results);
This->psia_results = NULL;
break;
}
}
if(events_OnFileOk(This) == S_OK)
ret = S_OK;
}
break;
@ -575,25 +616,38 @@ static HRESULT on_default_action(FileDialogImpl *This)
*/
static inline customctrl *get_cctrl_from_dlgid(FileDialogImpl *This, DWORD dlgid)
{
customctrl *ctrl;
customctrl *ctrl, *sub_ctrl;
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
{
if(ctrl->dlgid == dlgid)
return ctrl;
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
if(sub_ctrl->dlgid == dlgid)
return sub_ctrl;
}
ERR("Failed to find control with dialog id %d\n", dlgid);
return NULL;
}
static inline customctrl *get_cctrl(FileDialogImpl *This, DWORD ctlid)
{
customctrl *ctrl;
customctrl *ctrl, *sub_ctrl;
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
{
if(ctrl->id == ctlid)
return ctrl;
ERR("Failed to find control with control id %d\n", ctlid);
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
if(sub_ctrl->id == ctlid)
return sub_ctrl;
}
TRACE("No existing control with control id %d\n", ctlid);
return NULL;
}
@ -639,9 +693,39 @@ static void ctrl_resize(HWND hctrl, UINT min_width, UINT max_width, BOOL multili
HeapFree(GetProcessHeap(), 0, text);
}
static UINT ctrl_get_height(customctrl *ctrl) {
RECT rc;
GetWindowRect(ctrl->wrapper_hwnd, &rc);
return rc.bottom - rc.top;
}
static void ctrl_free(customctrl *ctrl)
{
customctrl *sub_cur1, *sub_cur2;
TRACE("Freeing control %p\n", ctrl);
if(ctrl->type == IDLG_CCTRL_MENU)
{
TBBUTTON tbb;
SendMessageW(ctrl->hwnd, TB_GETBUTTON, 0, (LPARAM)&tbb);
DestroyMenu((HMENU)tbb.dwData);
}
LIST_FOR_EACH_ENTRY_SAFE(sub_cur1, sub_cur2, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
{
list_remove(&sub_cur1->sub_cctrls_entry);
ctrl_free(sub_cur1);
}
DestroyWindow(ctrl->hwnd);
HeapFree(GetProcessHeap(), 0, ctrl);
}
static void customctrl_resize(FileDialogImpl *This, customctrl *ctrl)
{
RECT rc;
UINT total_height;
customctrl *sub_ctrl;
switch(ctrl->type)
{
@ -652,7 +736,35 @@ static void customctrl_resize(FileDialogImpl *This, customctrl *ctrl)
ctrl_resize(ctrl->hwnd, 160, 160, TRUE);
GetWindowRect(ctrl->hwnd, &rc);
SetWindowPos(ctrl->wrapper_hwnd, NULL, 0, 0, rc.right-rc.left, rc.bottom-rc.top,
SWP_NOZORDER|SWP_NOMOVE|SWP_NOZORDER);
SWP_NOZORDER|SWP_NOMOVE);
break;
case IDLG_CCTRL_VISUALGROUP:
total_height = 0;
ctrl_resize(ctrl->hwnd, 0, This->cctrl_indent, TRUE);
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
{
customctrl_resize(This, sub_ctrl);
SetWindowPos(sub_ctrl->wrapper_hwnd, NULL, This->cctrl_indent, total_height, 0, 0,
SWP_NOZORDER|SWP_NOSIZE);
total_height += ctrl_get_height(sub_ctrl);
}
/* The label should be right adjusted */
{
UINT width, height;
GetWindowRect(ctrl->hwnd, &rc);
width = rc.right - rc.left;
height = rc.bottom - rc.top;
SetWindowPos(ctrl->hwnd, NULL, This->cctrl_indent - width, 0, width, height, SWP_NOZORDER);
}
/* Resize the wrapper window to fit all the sub controls */
SetWindowPos(ctrl->wrapper_hwnd, NULL, 0, 0, This->cctrl_width + This->cctrl_indent, total_height,
SWP_NOZORDER|SWP_NOMOVE);
break;
case IDLG_CCTRL_RADIOBUTTONLIST:
case IDLG_CCTRL_EDITBOX:
@ -757,6 +869,7 @@ static LRESULT notifysink_on_wm_notify(FileDialogImpl *This, HWND hwnd, WPARAM w
static LRESULT CALLBACK notifysink_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
FileDialogImpl *This = (FileDialogImpl*)GetWindowLongPtrW(hwnd, GWLP_USERDATA);
customctrl *ctrl;
HWND hwnd_child;
RECT rc;
@ -767,8 +880,12 @@ static LRESULT CALLBACK notifysink_proc(HWND hwnd, UINT message, WPARAM wparam,
case WM_NOTIFY: return notifysink_on_wm_notify(This, hwnd, wparam, lparam);
case WM_SIZE:
hwnd_child = GetPropW(hwnd, notifysink_childW);
ctrl = (customctrl*)GetWindowLongPtrW(hwnd_child, GWLP_USERDATA);
if(ctrl && ctrl->type != IDLG_CCTRL_VISUALGROUP)
{
GetClientRect(hwnd, &rc);
SetWindowPos(hwnd_child, NULL, 0, 0, rc.right, rc.bottom, SWP_NOMOVE|SWP_NOACTIVATE|SWP_NOZORDER);
}
return TRUE;
}
@ -779,15 +896,20 @@ static HRESULT cctrl_create_new(FileDialogImpl *This, DWORD id,
LPCWSTR text, LPCWSTR wndclass, DWORD ctrl_wsflags,
DWORD ctrl_exflags, UINT height, customctrl **ppctrl)
{
HWND ns_hwnd, control_hwnd;
HWND ns_hwnd, control_hwnd, parent_hwnd;
DWORD wsflags = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS;
customctrl *ctrl;
if(get_cctrl(This, id))
return E_UNEXPECTED; /* Duplicate id */
if(This->cctrl_active_vg)
parent_hwnd = This->cctrl_active_vg->wrapper_hwnd;
else
parent_hwnd = This->cctrls_hwnd;
ns_hwnd = CreateWindowExW(0, floatnotifysinkW, NULL, wsflags,
0, 0, This->cctrl_width, height, This->cctrls_hwnd,
0, 0, This->cctrl_width, height, parent_hwnd,
(HMENU)This->cctrl_next_dlgid, COMDLG32_hInstance, This);
control_hwnd = CreateWindowExW(ctrl_exflags, wndclass, text, wsflags | ctrl_wsflags,
0, 0, This->cctrl_width, height, ns_hwnd,
@ -813,7 +935,15 @@ static HRESULT cctrl_create_new(FileDialogImpl *This, DWORD id,
ctrl->id = id;
ctrl->dlgid = This->cctrl_next_dlgid;
ctrl->cdcstate = CDCS_ENABLED | CDCS_VISIBLE;
list_init(&ctrl->sub_cctrls);
if(This->cctrl_active_vg)
list_add_tail(&This->cctrl_active_vg->sub_cctrls, &ctrl->sub_cctrls_entry);
else
list_add_tail(&This->cctrls, &ctrl->entry);
SetWindowLongPtrW(ctrl->hwnd, GWLP_USERDATA, (LPARAM)ctrl);
if(ppctrl) *ppctrl = ctrl;
This->cctrl_next_dlgid++;
@ -832,7 +962,6 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
UINT cur_col_pos, cur_row_pos;
customctrl *ctrl;
BOOL fits_height;
static const UINT col_indent = 100; /* The first column is indented 100px */
static const UINT cspacing = 90; /* Columns are spaced with 90px */
static const UINT rspacing = 4; /* Rows are spaced with 4 px. */
@ -844,7 +973,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
TRACE("%p\n", This);
column_width = This->cctrl_width + cspacing;
nr_of_cols = (container_width - col_indent + cspacing) / column_width;
nr_of_cols = (container_width - This->cctrl_indent + cspacing) / column_width;
/* We don't need to do anything unless the number of visible columns has changed. */
if(nr_of_cols == This->cctrls_cols)
@ -864,10 +993,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
{
if(ctrl->cdcstate & CDCS_VISIBLE)
{
RECT rc;
UINT control_height;
GetWindowRect(ctrl->wrapper_hwnd, &rc);
control_height = rc.bottom - rc.top;
UINT control_height = ctrl_get_height(ctrl);
max_control_height = max(max_control_height, control_height);
total_height += control_height + rspacing;
@ -892,10 +1018,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
{
if(ctrl->cdcstate & CDCS_VISIBLE)
{
RECT rc;
UINT control_height;
GetWindowRect(ctrl->wrapper_hwnd, &rc);
control_height = rc.bottom - rc.top;
UINT control_height = ctrl_get_height(ctrl);
if(cur_row_pos + control_height > container_height)
{
@ -917,13 +1040,13 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
/* Move the controls to their final destination
*/
cur_col_pos = col_indent, cur_row_pos = 0;
cur_col_pos = 0, cur_row_pos = 0;
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
{
if(ctrl->cdcstate & CDCS_VISIBLE)
{
RECT rc;
UINT control_height;
UINT control_height, control_indent;
GetWindowRect(ctrl->wrapper_hwnd, &rc);
control_height = rc.bottom - rc.top;
@ -933,7 +1056,13 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT container_width)
cur_col_pos += This->cctrl_width + cspacing;
}
SetWindowPos(ctrl->wrapper_hwnd, NULL, cur_col_pos, cur_row_pos, 0, 0,
if(ctrl->type == IDLG_CCTRL_VISUALGROUP)
control_indent = 0;
else
control_indent = This->cctrl_indent;
SetWindowPos(ctrl->wrapper_hwnd, NULL, cur_col_pos + control_indent, cur_row_pos, 0, 0,
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER);
cur_row_pos += control_height + rspacing;
@ -953,7 +1082,7 @@ static void ctrl_container_reparent(FileDialogImpl *This, HWND parent)
if(parent)
{
customctrl *ctrl;
customctrl *ctrl, *sub_ctrl;
HFONT font;
wndstyle = GetWindowLongW(This->cctrls_hwnd, GWL_STYLE);
@ -972,6 +1101,13 @@ static void ctrl_container_reparent(FileDialogImpl *This, HWND parent)
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
{
if(font) SendMessageW(ctrl->hwnd, WM_SETFONT, (WPARAM)font, TRUE);
/* If this is a VisualGroup */
LIST_FOR_EACH_ENTRY(sub_ctrl, &ctrl->sub_cctrls, customctrl, sub_cctrls_entry)
{
if(font) SendMessageW(sub_ctrl->hwnd, WM_SETFONT, (WPARAM)font, TRUE);
}
customctrl_resize(This, ctrl);
}
}
@ -1004,18 +1140,8 @@ static LRESULT ctrl_container_on_wm_destroy(FileDialogImpl *This)
LIST_FOR_EACH_ENTRY_SAFE(cur1, cur2, &This->cctrls, customctrl, entry)
{
TRACE("Freeing control %p\n", cur1);
list_remove(&cur1->entry);
if(cur1->type == IDLG_CCTRL_MENU)
{
TBBUTTON tbb;
SendMessageW(cur1->hwnd, TB_GETBUTTON, 0, (LPARAM)&tbb);
DestroyMenu((HMENU)tbb.dwData);
}
DestroyWindow(cur1->hwnd);
HeapFree(GetProcessHeap(), 0, cur1);
ctrl_free(cur1);
}
return TRUE;
@ -1044,11 +1170,13 @@ static HRESULT init_custom_controls(FileDialogImpl *This)
InitCommonControlsEx(NULL);
This->cctrl_width = 160; /* Controls have a fixed width */
This->cctrl_indent = 100;
This->cctrl_def_height = 23;
This->cctrls_cols = 0;
This->cctrl_next_dlgid = 0x2000;
list_init(&This->cctrls);
This->cctrl_active_vg = NULL;
if( !GetClassInfoW(COMDLG32_hInstance, ctrl_container_classname, &wc) )
{
@ -1409,10 +1537,32 @@ static LRESULT on_wm_initdialog(HWND hwnd, LPARAM lParam)
hitem = GetDlgItem(This->dlg_hwnd, IDC_FILETYPE);
if(This->filterspec_count)
{
UINT i;
HDC hdc;
HFONT font;
SIZE size;
UINT i, maxwidth = 0;
hdc = GetDC(hitem);
font = (HFONT)SendMessageW(hitem, WM_GETFONT, 0, 0);
SelectObject(hdc, font);
for(i = 0; i < This->filterspec_count; i++)
{
SendMessageW(hitem, CB_ADDSTRING, 0, (LPARAM)This->filterspecs[i].pszName);
if(GetTextExtentPoint32W(hdc, This->filterspecs[i].pszName, lstrlenW(This->filterspecs[i].pszName), &size))
maxwidth = max(maxwidth, size.cx);
}
ReleaseDC(hitem, hdc);
if(maxwidth > 0)
{
maxwidth += GetSystemMetrics(SM_CXVSCROLL) + 4;
SendMessageW(hitem, CB_SETDROPPEDWIDTH, (WPARAM)maxwidth, 0);
}
else
ERR("Failed to calculate width of filetype dropdown\n");
SendMessageW(hitem, CB_SETCURSEL, This->filetypeindex, 0);
}
else
@ -1428,6 +1578,9 @@ static LRESULT on_wm_initdialog(HWND hwnd, LPARAM lParam)
update_control_text(This);
update_layout(This);
if(This->filterspec_count)
events_OnTypeChange(This);
return TRUE;
}
@ -1538,6 +1691,11 @@ static LRESULT on_command_filetype(FileDialogImpl *This, WPARAM wparam, LPARAM l
}
CoTaskMemFree(filename);
}
/* The documentation claims that OnTypeChange is called only
* when the dialog is opened, but this is obviously not the
* case. */
events_OnTypeChange(This);
}
return FALSE;
@ -1746,10 +1904,9 @@ static HRESULT WINAPI IFileDialog2_fnSetFileTypeIndex(IFileDialog2 *iface, UINT
if(!This->filterspecs)
return E_FAIL;
if(iFileType >= This->filterspec_count)
This->filetypeindex = This->filterspec_count - 1;
else
This->filetypeindex = iFileType;
iFileType = max(iFileType, 1);
iFileType = min(iFileType, This->filterspec_count);
This->filetypeindex = iFileType-1;
return S_OK;
}
@ -1762,7 +1919,10 @@ static HRESULT WINAPI IFileDialog2_fnGetFileTypeIndex(IFileDialog2 *iface, UINT
if(!piFileType)
return E_INVALIDARG;
*piFileType = This->filetypeindex;
if(This->filterspec_count == 0)
*piFileType = 0;
else
*piFileType = This->filetypeindex + 1;
return S_OK;
}
@ -1819,6 +1979,13 @@ static HRESULT WINAPI IFileDialog2_fnSetOptions(IFileDialog2 *iface, FILEOPENDIA
FileDialogImpl *This = impl_from_IFileDialog2(iface);
TRACE("%p (0x%x)\n", This, fos);
if( !(This->options & FOS_PICKFOLDERS) && (fos & FOS_PICKFOLDERS) )
{
WCHAR buf[30];
LoadStringW(COMDLG32_hInstance, IDS_SELECT_FOLDER, buf, sizeof(buf)/sizeof(WCHAR));
IFileDialog2_SetTitle(iface, buf);
}
This->options = fos;
return S_OK;
@ -2850,7 +3017,7 @@ static HRESULT WINAPI ICommDlgBrowser3_fnIncludeObject(ICommDlgBrowser3 *iface,
ULONG attr;
TRACE("%p (%p, %p)\n", This, shv, pidl);
if(!This->filterspec_count)
if(!This->filterspec_count && !(This->options & FOS_PICKFOLDERS))
return S_OK;
hr = SHGetIDListFromObject((IUnknown*)shv, &parent_pidl);
@ -2874,6 +3041,12 @@ static HRESULT WINAPI ICommDlgBrowser3_fnIncludeObject(ICommDlgBrowser3 *iface,
return S_OK;
}
if((This->options & FOS_PICKFOLDERS) && !(attr & (SFGAO_FOLDER | SFGAO_LINK)))
{
IShellItem_Release(psi);
return S_FALSE;
}
hr = S_OK;
if(SUCCEEDED(IShellItem_GetDisplayName(psi, SIGDN_PARENTRELATIVEPARSING, &filename)))
{
@ -3116,7 +3289,7 @@ static HRESULT WINAPI IFileDialogCustomize_fnAddCheckButton(IFileDialogCustomize
HRESULT hr;
TRACE("%p (%d, %p, %d)\n", This, dwIDCtl, pszLabel, bChecked);
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_BUTTONW, BS_AUTOCHECKBOX, 0,
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_BUTTONW, BS_AUTOCHECKBOX|BS_MULTILINE, 0,
This->cctrl_def_height, &ctrl);
if(SUCCEEDED(hr))
{
@ -3193,6 +3366,7 @@ static HRESULT WINAPI IFileDialogCustomize_fnSetControlLabel(IFileDialogCustomiz
case IDLG_CCTRL_PUSHBUTTON:
case IDLG_CCTRL_CHECKBUTTON:
case IDLG_CCTRL_TEXT:
case IDLG_CCTRL_VISUALGROUP:
SendMessageW(ctrl->hwnd, WM_SETTEXT, 0, (LPARAM)pszLabel);
break;
default:
@ -3510,15 +3684,32 @@ static HRESULT WINAPI IFileDialogCustomize_fnStartVisualGroup(IFileDialogCustomi
LPCWSTR pszLabel)
{
FileDialogImpl *This = impl_from_IFileDialogCustomize(iface);
FIXME("stub - %p (%d, %s)\n", This, dwIDCtl, debugstr_w(pszLabel));
return E_NOTIMPL;
customctrl *vg;
HRESULT hr;
TRACE("%p (%d, %s)\n", This, dwIDCtl, debugstr_w(pszLabel));
if(This->cctrl_active_vg)
return E_UNEXPECTED;
hr = cctrl_create_new(This, dwIDCtl, pszLabel, WC_STATICW, 0, 0,
This->cctrl_def_height, &vg);
if(SUCCEEDED(hr))
{
vg->type = IDLG_CCTRL_VISUALGROUP;
This->cctrl_active_vg = vg;
}
return hr;
}
static HRESULT WINAPI IFileDialogCustomize_fnEndVisualGroup(IFileDialogCustomize *iface)
{
FileDialogImpl *This = impl_from_IFileDialogCustomize(iface);
FIXME("stub - %p\n", This);
return E_NOTIMPL;
TRACE("%p\n", This);
This->cctrl_active_vg = NULL;
return S_OK;
}
static HRESULT WINAPI IFileDialogCustomize_fnMakeProminent(IFileDialogCustomize *iface,

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Пътят не съществува"
IDS_FILENOTEXISTING "Файлът не съществува"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Съхрани"
IDS_SAVE_AS "Съхрани като"
IDS_OPEN_FILE "Отвори файл"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ El voleu reemplaçar?"
/ : < > |"
IDS_PATHNOTEXISTING "La ruta no existeix"
IDS_FILENOTEXISTING "El fitxer no existeix"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Desa"
IDS_SAVE_AS "Anomenar i Desar"
IDS_OPEN_FILE "Obre Fitxer"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Chcete ho přepsat novým?"
/ : < > |"
IDS_PATHNOTEXISTING "Adresář neexistuje"
IDS_FILENOTEXISTING "Soubor neexistuje"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Uložit"
IDS_SAVE_AS "Ulož pod jménem"
IDS_OPEN_FILE "Otevřít soubor"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Vil du erstatte den?"
/ : < > |"
IDS_PATHNOTEXISTING "Stien eksisterer ikke."
IDS_FILENOTEXISTING "Filen eksisterer ikke."
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Gem"
IDS_SAVE_AS "Gem som"
IDS_OPEN_FILE "Åben fil"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Wollen Sie sie überschreiben?"
/ : < > |"
IDS_PATHNOTEXISTING "Der Pfad existiert nicht"
IDS_FILENOTEXISTING "Die Datei existiert nicht"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Speichern"
IDS_SAVE_AS "Speichern als"
IDS_OPEN_FILE "Öffne Datei"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Το μονοπάτι δεν υπάρχει"
IDS_FILENOTEXISTING "Το αρχείο δεν υπάρχει"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Αποθήκευση"
IDS_SAVE_AS "Αποθήκευση ως"
IDS_OPEN_FILE "Άνοιγμα Αρχείου"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Do you want to replace it?"
/ : < > |"
IDS_PATHNOTEXISTING "Path does not exist"
IDS_FILENOTEXISTING "File does not exist"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Save"
IDS_SAVE_AS "Save As"
IDS_OPEN_FILE "Open File"
IDS_SELECT_FOLDER "Select Folder"
}
/*
@ -479,7 +481,7 @@ FONT 8, "MS Shell Dlg"
EDITTEXT IDC_FILENAME, 226, 240, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP
LTEXT "Files of type:", IDC_FILETYPESTATIC, 160, 256, 60, 9, SS_RIGHT
COMBOBOX IDC_FILETYPE, 226, 256, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP |
COMBOBOX IDC_FILETYPE, 226, 256, 100, 12, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL |
CBS_HASSTRINGS | CBS_DROPDOWNLIST
DEFPUSHBUTTON "&Open", IDOK, 350, 240, 40, 14, WS_GROUP

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Vojo estas neekzistanta"
IDS_FILENOTEXISTING "Dosiero estas neekzistanta"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Konservu"
IDS_SAVE_AS "Konservu"
IDS_OPEN_FILE "Malfermu Dosieron"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "La ruta no existe"
IDS_FILENOTEXISTING "El archivo no existe"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Guardar"
IDS_SAVE_AS "&Guardar como"
IDS_OPEN_FILE "Abrir archivo"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Haluatko ylikirjoitaa sen?"
/ : < > |"
IDS_PATHNOTEXISTING "Kansiota ei ole"
IDS_FILENOTEXISTING "Tiedostoa ei ole"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Tallenna"
IDS_SAVE_AS "Tallenna nimellä"
IDS_OPEN_FILE "Avaa tiedosto"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Voulez-vous le remplacer ?"
/ : < > |"
IDS_PATHNOTEXISTING "Le chemin d'accès n'existe pas"
IDS_FILENOTEXISTING "Le fichier n'existe pas"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Enregistrer"
IDS_SAVE_AS "Enregistrer"
IDS_OPEN_FILE "Ouvrir le fichier"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "הנתיב אינו קיים"
IDS_FILENOTEXISTING "הקובץ אינו קיים"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "שמירה"
IDS_SAVE_AS "שמירה בשם"
IDS_OPEN_FILE "פתיחת קובץ"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Cseréli a fájlt?"
/ : < > |"
IDS_PATHNOTEXISTING "Útvonal nem létezik"
IDS_FILENOTEXISTING "Fájl nem létezik"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Mentés"
IDS_SAVE_AS "Mentés másként"
IDS_OPEN_FILE "Fájl megnyitása"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Sovrascriverlo?"
/ : < > |"
IDS_PATHNOTEXISTING "Il percorso specificato non esiste"
IDS_FILENOTEXISTING "Il file non esiste"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Salva"
IDS_SAVE_AS "Salva con nome"
IDS_OPEN_FILE "Apri file"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "パスが見つかりません"
IDS_FILENOTEXISTING "ファイルが見つかりません"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "保存"
IDS_SAVE_AS "名前を付けて保存"
IDS_OPEN_FILE "ファイルを開く"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "경로가 존재하지 않습니다."
IDS_FILENOTEXISTING "파일이 존재하지 않습니다"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "저장"
IDS_SAVE_AS "다른 이름으로 저장"
IDS_OPEN_FILE "파일 열기"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Ar norite jį pakeisti?"
/ : < > |"
IDS_PATHNOTEXISTING "Kelias neegzistuoja"
IDS_FILENOTEXISTING "Failas neegzistuoja"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Išsaugoti"
IDS_SAVE_AS "Išsaugoti kaip"
IDS_OPEN_FILE "Atverti failą"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Wilt u het vervangen?"
/ : < > |"
IDS_PATHNOTEXISTING "Het pad bestaat niet"
IDS_FILENOTEXISTING "Kan het bestand niet vinden"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -135,6 +136,7 @@ STRINGTABLE
IDS_SAVE "Opslaan"
IDS_SAVE_AS "&Opslaan als"
IDS_OPEN_FILE "Open bestand"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Skal den overskrives?"
/ : < > |"
IDS_PATHNOTEXISTING "Stien finnes ikke"
IDS_FILENOTEXISTING "Filen finnes ikke"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Lagre"
IDS_SAVE_AS "Lagre som"
IDS_OPEN_FILE "Åpne fil"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Czy chcesz go zastąpić?"
/ : < > |"
IDS_PATHNOTEXISTING "Katalog nie istnieje"
IDS_FILENOTEXISTING "Plik nie istnieje"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Zapisz"
IDS_SAVE_AS "Zapisz jako"
IDS_OPEN_FILE "Otwórz plik"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Gostaria de o substituir?"
/ : < > |"
IDS_PATHNOTEXISTING "A localização não existe"
IDS_FILENOTEXISTING "O ficheiro não existe"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Gravar"
IDS_SAVE_AS "Gravar Como"
IDS_OPEN_FILE "Abrir Ficheiro"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -36,6 +36,7 @@ Doriți să îl suprascrieți?"
/ : < > |"
IDS_PATHNOTEXISTING "Calea nu există"
IDS_FILENOTEXISTING "Fișierul nu există"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -138,6 +139,7 @@ STRINGTABLE
IDS_SAVE "Păstrare"
IDS_SAVE_AS "Păstrare în:"
IDS_OPEN_FILE "Deschidere fișier"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Путь не существует"
IDS_FILENOTEXISTING "Файл не существует"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Сохранить"
IDS_SAVE_AS "Сохранить как"
IDS_OPEN_FILE "Открыть файл"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Ali jo želite zamenjati?"
/ : < > |"
IDS_PATHNOTEXISTING "Pot ne obstaja"
IDS_FILENOTEXISTING "Datoteka ne obstaja"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Shrani"
IDS_SAVE_AS "Shrani kot"
IDS_OPEN_FILE "Odpri datoteko"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Do you want to replace it?"
/ : < > |"
IDS_PATHNOTEXISTING "Cesta neexistuje"
IDS_FILENOTEXISTING "Súbor neexistuje"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Uložiť"
IDS_SAVE_AS "Uložiť ako"
IDS_OPEN_FILE "Otvoriť súbor"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -38,6 +38,7 @@ Doni ta zevendesoni?"
/ : < > |"
IDS_PATHNOTEXISTING "Rruga nuk ekziston"
IDS_FILENOTEXISTING "Dokumenti nuk ekziston"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -69,6 +70,7 @@ Ju lutem fusni nje vlere mes 1 dhe %d."
PD32_GENERIC_ERROR "Nje error."
PD32_DRIVER_UNKNOWN "Driveri i printerir i panjohur."
PD32_NO_DEVICES "Para se te besh nje detyre ne lidhje me printerin si konfigurimi i faqes ose printimi i dokumentit, duhet te instaloni nje printer. Ju lutem instaloni nje dhe provoni perseri."
PD32_DEFAULT_PRINTER "Printeri i perzgjedhur; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Dokumentet %d jane ne rradhe/pritje"
PD32_MARGINS_IN_INCHES "Diferenca [inches]"
@ -139,6 +141,7 @@ STRINGTABLE
IDS_SAVE "Ruaj"
IDS_SAVE_AS "Ruaj si "
IDS_OPEN_FILE "Hap"
IDS_SELECT_FOLDER "Select Folder"
}
/*
@ -370,6 +373,7 @@ FONT 8, "MS Shell Dlg"
ICON "", ico3, 170,131, 76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "Mbledh", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,168,118,100,12
EDITTEXT edt3, 240,103, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Printo gamen", grp1, 8,92, 144,64, WS_GROUP
CONTROL "Te gjith", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "Faqet", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Putanja ne postoji"
IDS_FILENOTEXISTING "Datoteka ne postoji"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Sačuvaj"
IDS_SAVE_AS "Sačuvaj kao"
IDS_OPEN_FILE "Otvori datoteku"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Vill du ersätta den?"
/ : < > |"
IDS_PATHNOTEXISTING "Sökvägen finns inte"
IDS_FILENOTEXISTING "Filen finns inte"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -135,6 +136,7 @@ STRINGTABLE
IDS_SAVE "Spara"
IDS_SAVE_AS "Spara som"
IDS_OPEN_FILE "Öppna fil"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ Do you want to replace it?"
/ : < > |"
IDS_PATHNOTEXISTING "ไม่พบไดเรกทอรี"
IDS_FILENOTEXISTING "ไม่พบแฟ้ม"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -135,6 +136,7 @@ STRINGTABLE
IDS_SAVE "Save"
IDS_SAVE_AS "บันทืก"
IDS_OPEN_FILE "แฟ้ม"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -33,6 +33,7 @@ Onu değiştirmek ister misiniz?"
/ : < > |"
IDS_PATHNOTEXISTING "Kütük yolu yok."
IDS_FILENOTEXISTING "Kütük yok."
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -135,6 +136,7 @@ STRINGTABLE
IDS_SAVE "Sakla"
IDS_SAVE_AS "Ayrı Sakla"
IDS_OPEN_FILE "Kütük Aç"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "資料夾不存在"
IDS_FILENOTEXISTING "檔案不存在"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Save"
IDS_SAVE_AS "另存新檔"
IDS_OPEN_FILE "Open File"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "Шлях не існує"
IDS_FILENOTEXISTING "Файл не існує"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "Зберегти"
IDS_SAVE_AS "Зберегти як"
IDS_OPEN_FILE "Відкрити файл"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -34,6 +34,7 @@ STRINGTABLE
/ : < > |"
IDS_PATHNOTEXISTING "路径不存在"
IDS_FILENOTEXISTING "文件不存在"
IDS_INVALID_FOLDERNAME "The selection contains a non-folder object"
}
STRINGTABLE
@ -136,6 +137,7 @@ STRINGTABLE
IDS_SAVE "保存"
IDS_SAVE_AS "另存为"
IDS_OPEN_FILE "打开文件"
IDS_SELECT_FOLDER "Select Folder"
}
/*

View file

@ -132,5 +132,6 @@
#define IDS_SAVE 1203
#define IDS_SAVE_AS 1204
#define IDS_OPEN_FILE 1205
#define IDS_SELECT_FOLDER 1206
#define IDS_FAKEDOCTEXT 1300

View file

@ -61,7 +61,7 @@ reactos/dll/win32/cabinet # Synced to Wine-1.7.17
reactos/dll/win32/clusapi # Synced to Wine-1.7.17
reactos/dll/win32/comcat # Synced to Wine-1.7.17
reactos/dll/win32/comctl32 # Synced to Wine-1.7.27
reactos/dll/win32/comdlg32 # Synced to Wine-1.7.17
reactos/dll/win32/comdlg32 # Synced to Wine-1.7.27
reactos/dll/win32/compstui # Synced to Wine-1.7.17
reactos/dll/win32/credui # Synced to Wine-1.7.17
reactos/dll/win32/crypt32 # Synced to Wine-1.7.17