ReactOS 0.4.17-dev-966-gf06eace
cdlg.h File Reference
#include "dlgs.h"
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
#include "commctrl.h"
#include "shlobj.h"
#include "shellapi.h"
Include dependency graph for cdlg.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  COMDLG32_FR_Data
 

Macros

#define COMDLG32_Atom   MAKEINTATOM(0xa000) /* MS uses this one to identify props */
 
#define FR_WINE_UNICODE   0x80000000
 
#define FR_WINE_REPLACE   0x40000000
 
#define PD32_PRINT_TITLE   7000
 
#define PD32_VALUE_UREADABLE   1104
 
#define PD32_INVALID_PAGE_RANGE   1105
 
#define PD32_FROM_NOT_ABOVE_TO   1106
 
#define PD32_MARGINS_OVERLAP   1107
 
#define PD32_NR_OF_COPIES_EMPTY   1108
 
#define PD32_TOO_LARGE_COPIES   1109
 
#define PD32_PRINT_ERROR   1110
 
#define PD32_NO_DEFAULT_PRINTER   1111
 
#define PD32_CANT_FIND_PRINTER   1112
 
#define PD32_OUT_OF_MEMORY   1113
 
#define PD32_GENERIC_ERROR   1114
 
#define PD32_DRIVER_UNKNOWN   1115
 
#define PD32_NO_DEVICES   1121
 
#define PD32_PRINTER_STATUS_READY   1536
 
#define PD32_PRINTER_STATUS_PAUSED   1537
 
#define PD32_PRINTER_STATUS_ERROR   1538
 
#define PD32_PRINTER_STATUS_PENDING_DELETION   1539
 
#define PD32_PRINTER_STATUS_PAPER_JAM   1540
 
#define PD32_PRINTER_STATUS_PAPER_OUT   1541
 
#define PD32_PRINTER_STATUS_MANUAL_FEED   1542
 
#define PD32_PRINTER_STATUS_PAPER_PROBLEM   1543
 
#define PD32_PRINTER_STATUS_OFFLINE   1544
 
#define PD32_PRINTER_STATUS_IO_ACTIVE   1545
 
#define PD32_PRINTER_STATUS_BUSY   1546
 
#define PD32_PRINTER_STATUS_PRINTING   1547
 
#define PD32_PRINTER_STATUS_OUTPUT_BIN_FULL   1548
 
#define PD32_PRINTER_STATUS_NOT_AVAILABLE   1549
 
#define PD32_PRINTER_STATUS_WAITING   1550
 
#define PD32_PRINTER_STATUS_PROCESSING   1551
 
#define PD32_PRINTER_STATUS_INITIALIZING   1552
 
#define PD32_PRINTER_STATUS_WARMING_UP   1553
 
#define PD32_PRINTER_STATUS_TONER_LOW   1554
 
#define PD32_PRINTER_STATUS_NO_TONER   1555
 
#define PD32_PRINTER_STATUS_PAGE_PUNT   1556
 
#define PD32_PRINTER_STATUS_USER_INTERVENTION   1557
 
#define PD32_PRINTER_STATUS_OUT_OF_MEMORY   1558
 
#define PD32_PRINTER_STATUS_DOOR_OPEN   1559
 
#define PD32_PRINTER_STATUS_SERVER_UNKNOWN   1560
 
#define PD32_PRINTER_STATUS_POWER_SAVE   1561
 
#define PD32_DEFAULT_PRINTER   1582
 
#define PD32_NR_OF_DOCUMENTS_IN_QUEUE   1583
 
#define PD32_MARGINS_IN_INCHES   1585
 
#define PD32_MARGINS_IN_MILLIMETERS   1586
 
#define PD32_MILLIMETERS   1587
 
#define IDS_CHARSET_ANSI   200
 
#define IDS_CHARSET_SYMBOL   201
 
#define IDS_CHARSET_JIS   202
 
#define IDS_CHARSET_HANGUL   203
 
#define IDS_CHARSET_GB2312   204
 
#define IDS_CHARSET_BIG5   205
 
#define IDS_CHARSET_GREEK   206
 
#define IDS_CHARSET_TURKISH   207
 
#define IDS_CHARSET_HEBREW   208
 
#define IDS_CHARSET_ARABIC   209
 
#define IDS_CHARSET_BALTIC   210
 
#define IDS_CHARSET_VIETNAMESE   211
 
#define IDS_CHARSET_RUSSIAN   212
 
#define IDS_CHARSET_EE   213
 
#define IDS_CHARSET_THAI   214
 
#define IDS_CHARSET_JOHAB   215
 
#define IDS_CHARSET_MAC   216
 
#define IDS_CHARSET_OEM   217
 
#define IDS_CHARSET_VISCII   218
 
#define IDS_CHARSET_TCVN   219
 
#define IDS_CHARSET_KOI8   220
 
#define IDS_CHARSET_ISO3   221
 
#define IDS_CHARSET_ISO4   222
 
#define IDS_CHARSET_ISO10   223
 
#define IDS_CHARSET_CELTIC   224
 
#define IDS_FONT_REGULAR   256
 
#define IDS_FONT_BOLD   257
 
#define IDS_FONT_ITALIC   258
 
#define IDS_FONT_BOLD_ITALIC   259
 
#define IDS_COLOR_BLACK   1040
 
#define IDS_COLOR_MAROON   1041
 
#define IDS_COLOR_GREEN   1042
 
#define IDS_COLOR_OLIVE   1043
 
#define IDS_COLOR_NAVY   1044
 
#define IDS_COLOR_PURPLE   1045
 
#define IDS_COLOR_TEAL   1046
 
#define IDS_COLOR_GRAY   1047
 
#define IDS_COLOR_SILVER   1048
 
#define IDS_COLOR_RED   1049
 
#define IDS_COLOR_LIME   1050
 
#define IDS_COLOR_YELLOW   1051
 
#define IDS_COLOR_BLUE   1052
 
#define IDS_COLOR_FUCHSIA   1053
 
#define IDS_COLOR_AQUA   1054
 
#define IDS_COLOR_WHITE   1055
 
#define IDS_FONT_SIZE   1200
 
#define IDS_SAVE_BUTTON   1201
 
#define IDS_SAVE_IN   1202
 
#define IDS_SAVE   1203
 
#define IDS_SAVE_AS   1204
 
#define IDS_OPEN_FILE   1205
 
#define IDS_SELECT_FOLDER   1206
 
#define IDS_FONT_SIZE_INPUT   1207
 
#define IDS_FAKEDOCTEXT   1300
 
#define ONOPEN_BROWSE   1
 
#define ONOPEN_OPEN   2
 
#define ONOPEN_SEARCH   3
 

Functions

void COMDLG32_SetCommDlgExtendedError (DWORD err)
 
LPVOID COMDLG32_AllocMem (int size) __WINE_ALLOC_SIZE(1)
 
HRESULT FileOpenDialog_Constructor (IUnknown *pUnkOuter, REFIID riid, void **ppv)
 
HRESULT FileSaveDialog_Constructor (IUnknown *pUnkOuter, REFIID riid, void **ppv)
 
void COMDLG32_GetCanonicalPath (PCIDLIST_ABSOLUTE pidlAbsCurrent, LPWSTR lpstrFile, LPWSTR lpstrPathAndFile)
 
int FILEDLG95_ValidatePathAction (LPWSTR lpstrPathAndFile, IShellFolder **ppsf, HWND hwnd, DWORD flags, BOOL isSaveDlg, int defAction)
 
int COMDLG32_SplitFileNames (LPWSTR lpstrEdit, UINT nStrLen, LPWSTR *lpstrFileList, UINT *sizeUsed)
 
void FILEDLG95_OnOpenMessage (HWND hwnd, int idCaption, int idText)
 
BOOL GetFileName31A (OPENFILENAMEA *lpofn, UINT dlgType)
 
BOOL GetFileName31W (OPENFILENAMEW *lpofn, UINT dlgType)
 

Variables

HINSTANCE COMDLG32_hInstance
 
HANDLE COMDLG32_hActCtx
 

Macro Definition Documentation

◆ COMDLG32_Atom

#define COMDLG32_Atom   MAKEINTATOM(0xa000) /* MS uses this one to identify props */

Definition at line 27 of file cdlg.h.

◆ FR_WINE_REPLACE

#define FR_WINE_REPLACE   0x40000000

Definition at line 41 of file cdlg.h.

◆ FR_WINE_UNICODE

#define FR_WINE_UNICODE   0x80000000

Definition at line 40 of file cdlg.h.

◆ IDS_CHARSET_ANSI

#define IDS_CHARSET_ANSI   200

Definition at line 103 of file cdlg.h.

◆ IDS_CHARSET_ARABIC

#define IDS_CHARSET_ARABIC   209

Definition at line 112 of file cdlg.h.

◆ IDS_CHARSET_BALTIC

#define IDS_CHARSET_BALTIC   210

Definition at line 113 of file cdlg.h.

◆ IDS_CHARSET_BIG5

#define IDS_CHARSET_BIG5   205

Definition at line 108 of file cdlg.h.

◆ IDS_CHARSET_CELTIC

#define IDS_CHARSET_CELTIC   224

Definition at line 127 of file cdlg.h.

◆ IDS_CHARSET_EE

#define IDS_CHARSET_EE   213

Definition at line 116 of file cdlg.h.

◆ IDS_CHARSET_GB2312

#define IDS_CHARSET_GB2312   204

Definition at line 107 of file cdlg.h.

◆ IDS_CHARSET_GREEK

#define IDS_CHARSET_GREEK   206

Definition at line 109 of file cdlg.h.

◆ IDS_CHARSET_HANGUL

#define IDS_CHARSET_HANGUL   203

Definition at line 106 of file cdlg.h.

◆ IDS_CHARSET_HEBREW

#define IDS_CHARSET_HEBREW   208

Definition at line 111 of file cdlg.h.

◆ IDS_CHARSET_ISO10

#define IDS_CHARSET_ISO10   223

Definition at line 126 of file cdlg.h.

◆ IDS_CHARSET_ISO3

#define IDS_CHARSET_ISO3   221

Definition at line 124 of file cdlg.h.

◆ IDS_CHARSET_ISO4

#define IDS_CHARSET_ISO4   222

Definition at line 125 of file cdlg.h.

◆ IDS_CHARSET_JIS

#define IDS_CHARSET_JIS   202

Definition at line 105 of file cdlg.h.

◆ IDS_CHARSET_JOHAB

#define IDS_CHARSET_JOHAB   215

Definition at line 118 of file cdlg.h.

◆ IDS_CHARSET_KOI8

#define IDS_CHARSET_KOI8   220

Definition at line 123 of file cdlg.h.

◆ IDS_CHARSET_MAC

#define IDS_CHARSET_MAC   216

Definition at line 119 of file cdlg.h.

◆ IDS_CHARSET_OEM

#define IDS_CHARSET_OEM   217

Definition at line 120 of file cdlg.h.

◆ IDS_CHARSET_RUSSIAN

#define IDS_CHARSET_RUSSIAN   212

Definition at line 115 of file cdlg.h.

◆ IDS_CHARSET_SYMBOL

#define IDS_CHARSET_SYMBOL   201

Definition at line 104 of file cdlg.h.

◆ IDS_CHARSET_TCVN

#define IDS_CHARSET_TCVN   219

Definition at line 122 of file cdlg.h.

◆ IDS_CHARSET_THAI

#define IDS_CHARSET_THAI   214

Definition at line 117 of file cdlg.h.

◆ IDS_CHARSET_TURKISH

#define IDS_CHARSET_TURKISH   207

Definition at line 110 of file cdlg.h.

◆ IDS_CHARSET_VIETNAMESE

#define IDS_CHARSET_VIETNAMESE   211

Definition at line 114 of file cdlg.h.

◆ IDS_CHARSET_VISCII

#define IDS_CHARSET_VISCII   218

Definition at line 121 of file cdlg.h.

◆ IDS_COLOR_AQUA

#define IDS_COLOR_AQUA   1054

Definition at line 152 of file cdlg.h.

◆ IDS_COLOR_BLACK

#define IDS_COLOR_BLACK   1040

Definition at line 138 of file cdlg.h.

◆ IDS_COLOR_BLUE

#define IDS_COLOR_BLUE   1052

Definition at line 150 of file cdlg.h.

◆ IDS_COLOR_FUCHSIA

#define IDS_COLOR_FUCHSIA   1053

Definition at line 151 of file cdlg.h.

◆ IDS_COLOR_GRAY

#define IDS_COLOR_GRAY   1047

Definition at line 145 of file cdlg.h.

◆ IDS_COLOR_GREEN

#define IDS_COLOR_GREEN   1042

Definition at line 140 of file cdlg.h.

◆ IDS_COLOR_LIME

#define IDS_COLOR_LIME   1050

Definition at line 148 of file cdlg.h.

◆ IDS_COLOR_MAROON

#define IDS_COLOR_MAROON   1041

Definition at line 139 of file cdlg.h.

◆ IDS_COLOR_NAVY

#define IDS_COLOR_NAVY   1044

Definition at line 142 of file cdlg.h.

◆ IDS_COLOR_OLIVE

#define IDS_COLOR_OLIVE   1043

Definition at line 141 of file cdlg.h.

◆ IDS_COLOR_PURPLE

#define IDS_COLOR_PURPLE   1045

Definition at line 143 of file cdlg.h.

◆ IDS_COLOR_RED

#define IDS_COLOR_RED   1049

Definition at line 147 of file cdlg.h.

◆ IDS_COLOR_SILVER

#define IDS_COLOR_SILVER   1048

Definition at line 146 of file cdlg.h.

◆ IDS_COLOR_TEAL

#define IDS_COLOR_TEAL   1046

Definition at line 144 of file cdlg.h.

◆ IDS_COLOR_WHITE

#define IDS_COLOR_WHITE   1055

Definition at line 153 of file cdlg.h.

◆ IDS_COLOR_YELLOW

#define IDS_COLOR_YELLOW   1051

Definition at line 149 of file cdlg.h.

◆ IDS_FAKEDOCTEXT

#define IDS_FAKEDOCTEXT   1300

Definition at line 164 of file cdlg.h.

◆ IDS_FONT_BOLD

#define IDS_FONT_BOLD   257

Definition at line 132 of file cdlg.h.

◆ IDS_FONT_BOLD_ITALIC

#define IDS_FONT_BOLD_ITALIC   259

Definition at line 134 of file cdlg.h.

◆ IDS_FONT_ITALIC

#define IDS_FONT_ITALIC   258

Definition at line 133 of file cdlg.h.

◆ IDS_FONT_REGULAR

#define IDS_FONT_REGULAR   256

Definition at line 131 of file cdlg.h.

◆ IDS_FONT_SIZE

#define IDS_FONT_SIZE   1200

Definition at line 155 of file cdlg.h.

◆ IDS_FONT_SIZE_INPUT

#define IDS_FONT_SIZE_INPUT   1207

Definition at line 162 of file cdlg.h.

◆ IDS_OPEN_FILE

#define IDS_OPEN_FILE   1205

Definition at line 160 of file cdlg.h.

◆ IDS_SAVE

#define IDS_SAVE   1203

Definition at line 158 of file cdlg.h.

◆ IDS_SAVE_AS

#define IDS_SAVE_AS   1204

Definition at line 159 of file cdlg.h.

◆ IDS_SAVE_BUTTON

#define IDS_SAVE_BUTTON   1201

Definition at line 156 of file cdlg.h.

◆ IDS_SAVE_IN

#define IDS_SAVE_IN   1202

Definition at line 157 of file cdlg.h.

◆ IDS_SELECT_FOLDER

#define IDS_SELECT_FOLDER   1206

Definition at line 161 of file cdlg.h.

◆ ONOPEN_BROWSE

#define ONOPEN_BROWSE   1

Definition at line 195 of file cdlg.h.

◆ ONOPEN_OPEN

#define ONOPEN_OPEN   2

Definition at line 196 of file cdlg.h.

◆ ONOPEN_SEARCH

#define ONOPEN_SEARCH   3

Definition at line 197 of file cdlg.h.

◆ PD32_CANT_FIND_PRINTER

#define PD32_CANT_FIND_PRINTER   1112

Definition at line 61 of file cdlg.h.

◆ PD32_DEFAULT_PRINTER

#define PD32_DEFAULT_PRINTER   1582

Definition at line 94 of file cdlg.h.

◆ PD32_DRIVER_UNKNOWN

#define PD32_DRIVER_UNKNOWN   1115

Definition at line 64 of file cdlg.h.

◆ PD32_FROM_NOT_ABOVE_TO

#define PD32_FROM_NOT_ABOVE_TO   1106

Definition at line 55 of file cdlg.h.

◆ PD32_GENERIC_ERROR

#define PD32_GENERIC_ERROR   1114

Definition at line 63 of file cdlg.h.

◆ PD32_INVALID_PAGE_RANGE

#define PD32_INVALID_PAGE_RANGE   1105

Definition at line 54 of file cdlg.h.

◆ PD32_MARGINS_IN_INCHES

#define PD32_MARGINS_IN_INCHES   1585

Definition at line 97 of file cdlg.h.

◆ PD32_MARGINS_IN_MILLIMETERS

#define PD32_MARGINS_IN_MILLIMETERS   1586

Definition at line 98 of file cdlg.h.

◆ PD32_MARGINS_OVERLAP

#define PD32_MARGINS_OVERLAP   1107

Definition at line 56 of file cdlg.h.

◆ PD32_MILLIMETERS

#define PD32_MILLIMETERS   1587

Definition at line 99 of file cdlg.h.

◆ PD32_NO_DEFAULT_PRINTER

#define PD32_NO_DEFAULT_PRINTER   1111

Definition at line 60 of file cdlg.h.

◆ PD32_NO_DEVICES

#define PD32_NO_DEVICES   1121

Definition at line 65 of file cdlg.h.

◆ PD32_NR_OF_COPIES_EMPTY

#define PD32_NR_OF_COPIES_EMPTY   1108

Definition at line 57 of file cdlg.h.

◆ PD32_NR_OF_DOCUMENTS_IN_QUEUE

#define PD32_NR_OF_DOCUMENTS_IN_QUEUE   1583

Definition at line 95 of file cdlg.h.

◆ PD32_OUT_OF_MEMORY

#define PD32_OUT_OF_MEMORY   1113

Definition at line 62 of file cdlg.h.

◆ PD32_PRINT_ERROR

#define PD32_PRINT_ERROR   1110

Definition at line 59 of file cdlg.h.

◆ PD32_PRINT_TITLE

#define PD32_PRINT_TITLE   7000

Definition at line 51 of file cdlg.h.

◆ PD32_PRINTER_STATUS_BUSY

#define PD32_PRINTER_STATUS_BUSY   1546

Definition at line 77 of file cdlg.h.

◆ PD32_PRINTER_STATUS_DOOR_OPEN

#define PD32_PRINTER_STATUS_DOOR_OPEN   1559

Definition at line 90 of file cdlg.h.

◆ PD32_PRINTER_STATUS_ERROR

#define PD32_PRINTER_STATUS_ERROR   1538

Definition at line 69 of file cdlg.h.

◆ PD32_PRINTER_STATUS_INITIALIZING

#define PD32_PRINTER_STATUS_INITIALIZING   1552

Definition at line 83 of file cdlg.h.

◆ PD32_PRINTER_STATUS_IO_ACTIVE

#define PD32_PRINTER_STATUS_IO_ACTIVE   1545

Definition at line 76 of file cdlg.h.

◆ PD32_PRINTER_STATUS_MANUAL_FEED

#define PD32_PRINTER_STATUS_MANUAL_FEED   1542

Definition at line 73 of file cdlg.h.

◆ PD32_PRINTER_STATUS_NO_TONER

#define PD32_PRINTER_STATUS_NO_TONER   1555

Definition at line 86 of file cdlg.h.

◆ PD32_PRINTER_STATUS_NOT_AVAILABLE

#define PD32_PRINTER_STATUS_NOT_AVAILABLE   1549

Definition at line 80 of file cdlg.h.

◆ PD32_PRINTER_STATUS_OFFLINE

#define PD32_PRINTER_STATUS_OFFLINE   1544

Definition at line 75 of file cdlg.h.

◆ PD32_PRINTER_STATUS_OUT_OF_MEMORY

#define PD32_PRINTER_STATUS_OUT_OF_MEMORY   1558

Definition at line 89 of file cdlg.h.

◆ PD32_PRINTER_STATUS_OUTPUT_BIN_FULL

#define PD32_PRINTER_STATUS_OUTPUT_BIN_FULL   1548

Definition at line 79 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PAGE_PUNT

#define PD32_PRINTER_STATUS_PAGE_PUNT   1556

Definition at line 87 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PAPER_JAM

#define PD32_PRINTER_STATUS_PAPER_JAM   1540

Definition at line 71 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PAPER_OUT

#define PD32_PRINTER_STATUS_PAPER_OUT   1541

Definition at line 72 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PAPER_PROBLEM

#define PD32_PRINTER_STATUS_PAPER_PROBLEM   1543

Definition at line 74 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PAUSED

#define PD32_PRINTER_STATUS_PAUSED   1537

Definition at line 68 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PENDING_DELETION

#define PD32_PRINTER_STATUS_PENDING_DELETION   1539

Definition at line 70 of file cdlg.h.

◆ PD32_PRINTER_STATUS_POWER_SAVE

#define PD32_PRINTER_STATUS_POWER_SAVE   1561

Definition at line 92 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PRINTING

#define PD32_PRINTER_STATUS_PRINTING   1547

Definition at line 78 of file cdlg.h.

◆ PD32_PRINTER_STATUS_PROCESSING

#define PD32_PRINTER_STATUS_PROCESSING   1551

Definition at line 82 of file cdlg.h.

◆ PD32_PRINTER_STATUS_READY

#define PD32_PRINTER_STATUS_READY   1536

Definition at line 67 of file cdlg.h.

◆ PD32_PRINTER_STATUS_SERVER_UNKNOWN

#define PD32_PRINTER_STATUS_SERVER_UNKNOWN   1560

Definition at line 91 of file cdlg.h.

◆ PD32_PRINTER_STATUS_TONER_LOW

#define PD32_PRINTER_STATUS_TONER_LOW   1554

Definition at line 85 of file cdlg.h.

◆ PD32_PRINTER_STATUS_USER_INTERVENTION

#define PD32_PRINTER_STATUS_USER_INTERVENTION   1557

Definition at line 88 of file cdlg.h.

◆ PD32_PRINTER_STATUS_WAITING

#define PD32_PRINTER_STATUS_WAITING   1550

Definition at line 81 of file cdlg.h.

◆ PD32_PRINTER_STATUS_WARMING_UP

#define PD32_PRINTER_STATUS_WARMING_UP   1553

Definition at line 84 of file cdlg.h.

◆ PD32_TOO_LARGE_COPIES

#define PD32_TOO_LARGE_COPIES   1109

Definition at line 58 of file cdlg.h.

◆ PD32_VALUE_UREADABLE

#define PD32_VALUE_UREADABLE   1104

Definition at line 53 of file cdlg.h.

Function Documentation

◆ COMDLG32_AllocMem()

LPVOID COMDLG32_AllocMem ( int  size)

Definition at line 105 of file cdlg32.c.

106{
107 void *ptr = heap_alloc_zero(size);
108
109 if (!ptr)
110 {
112 return NULL;
113 }
114
115 return ptr;
116}
#define CDERR_MEMALLOCFAILURE
Definition: cderr.h:14
void COMDLG32_SetCommDlgExtendedError(DWORD err)
Definition: cdlg32.c:124
#define NULL
Definition: types.h:112
GLsizeiptr size
Definition: glext.h:5919
static PVOID ptr
Definition: dispmode.c:27

Referenced by FindTextA(), FindTextW(), ReplaceTextA(), and ReplaceTextW().

◆ COMDLG32_GetCanonicalPath()

void COMDLG32_GetCanonicalPath ( PCIDLIST_ABSOLUTE  pidlAbsCurrent,
LPWSTR  lpstrFile,
LPWSTR  lpstrPathAndFile 
)

Definition at line 740 of file filedlg.c.

742{
743 WCHAR lpstrTemp[MAX_PATH];
744
745 /* Get the current directory name */
746 if (!COMDLG32_GetDisplayNameOf(pidlAbsCurrent, lpstrPathAndFile))
747 {
748 /* last fallback */
749 GetCurrentDirectoryW(MAX_PATH, lpstrPathAndFile);
750 }
751 PathAddBackslashW(lpstrPathAndFile);
752
753 TRACE("current directory=%s, file=%s\n", debugstr_w(lpstrPathAndFile), debugstr_w(lpstrFile));
754
755 /* if the user specified a fully qualified path use it */
756 if(PathIsRelativeW(lpstrFile))
757 {
758 lstrcatW(lpstrPathAndFile, lpstrFile);
759 }
760 else
761 {
762 /* does the path have a drive letter? */
763 if (PathGetDriveNumberW(lpstrFile) == -1)
764 lstrcpyW(lpstrPathAndFile+2, lpstrFile);
765 else
766 lstrcpyW(lpstrPathAndFile, lpstrFile);
767 }
768
769 /* resolve "." and ".." */
770 PathCanonicalizeW(lpstrTemp, lpstrPathAndFile );
771 lstrcpyW(lpstrPathAndFile, lpstrTemp);
772 TRACE("canon=%s\n", debugstr_w(lpstrPathAndFile));
773}
static BOOL COMDLG32_GetDisplayNameOf(LPCITEMIDLIST pidl, LPWSTR pwszPath)
Definition: filedlg.c:719
#define GetCurrentDirectoryW(x, y)
Definition: compat.h:756
#define MAX_PATH
Definition: compat.h:34
#define lstrcpyW
Definition: compat.h:749
int WINAPI PathGetDriveNumberW(const WCHAR *path)
Definition: path.c:1786
BOOL WINAPI PathIsRelativeW(const WCHAR *path)
Definition: path.c:1006
#define debugstr_w
Definition: kernel32.h:32
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define PathCanonicalizeW
Definition: pathcch.h:314
#define PathAddBackslashW
Definition: pathcch.h:302
short WCHAR
Definition: pedump.c:58
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by FILEDLG95_OnOpen().

◆ COMDLG32_SetCommDlgExtendedError()

void COMDLG32_SetCommDlgExtendedError ( DWORD  err)

Definition at line 124 of file cdlg32.c.

125{
126 TRACE("(%08lx)\n", err);
131 else
132 FIXME("No Tls Space\n");
133}
#define FIXME(fmt,...)
Definition: precomp.h:53
static DWORD COMDLG32_TlsIndex
Definition: cdlg32.c:48
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
Definition: thread.c:1334
DWORD WINAPI DECLSPEC_HOTPATCH TlsAlloc(void)
Definition: thread.c:657
#define err(...)
uint32_t DWORD_PTR
Definition: typedefs.h:65
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:529

Referenced by ChooseColorW(), ChooseFontA(), ChooseFontW(), COMDLG32_AllocMem(), COMDLG32_FR_CheckPartial(), COMDLG32_FR_DoFindReplace(), CreateTemplateDialog(), FD31_GetTemplate(), FILEDLG95_OnOpen(), GetFileName95(), GetOpenFileNameA(), GetOpenFileNameW(), GetSaveFileNameA(), GetSaveFileNameW(), init_filedlg_infoW(), pagesetup_common(), PRINTDLG_WMInitDialog(), PRINTDLG_WMInitDialogW(), PrintDlgA(), PrintDlgExA(), PrintDlgExW(), and PrintDlgW().

◆ COMDLG32_SplitFileNames()

int COMDLG32_SplitFileNames ( LPWSTR  lpstrEdit,
UINT  nStrLen,
LPWSTR *  lpstrFileList,
UINT *  sizeUsed 
)

Definition at line 780 of file filedlg.c.

781{
782 UINT nStrCharCount = 0; /* index in src buffer */
783 UINT nFileIndex = 0; /* index in dest buffer */
784 UINT nFileCount = 0; /* number of files */
785
786 /* we might get single filename without any '"',
787 * so we need nStrLen + terminating \0 + end-of-list \0 */
788 *lpstrFileList = heap_alloc((nStrLen + 2) * sizeof(WCHAR));
789 *sizeUsed = 0;
790
791 /* build delimited file list from filenames */
792 while ( nStrCharCount <= nStrLen )
793 {
794 if ( lpstrEdit[nStrCharCount]=='"' )
795 {
796 nStrCharCount++;
797 while ((nStrCharCount <= nStrLen) && (lpstrEdit[nStrCharCount]!='"'))
798 {
799 (*lpstrFileList)[nFileIndex++] = lpstrEdit[nStrCharCount];
800 nStrCharCount++;
801 }
802 (*lpstrFileList)[nFileIndex++] = 0;
803 nFileCount++;
804 }
805 nStrCharCount++;
806 }
807
808 /* single, unquoted string */
809 if ((nStrLen > 0) && (nFileIndex == 0) )
810 {
811 lstrcpyW(*lpstrFileList, lpstrEdit);
812 nFileIndex = lstrlenW(lpstrEdit) + 1;
813 nFileCount = 1;
814 }
815
816 /* trailing \0 */
817 (*lpstrFileList)[nFileIndex++] = '\0';
818
819 *sizeUsed = nFileIndex;
820 return nFileCount;
821}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
#define lstrlenW
Definition: compat.h:750
unsigned int UINT
Definition: sysinfo.c:13

Referenced by FILEDLG95_FILENAME_GetFileNames().

◆ FILEDLG95_OnOpenMessage()

void FILEDLG95_OnOpenMessage ( HWND  hwnd,
int  idCaption,
int  idText 
)

Definition at line 2846 of file filedlg.c.

2847{
2848 WCHAR strMsgTitle[MAX_PATH];
2849 WCHAR strMsgText [MAX_PATH];
2850 if (idCaption)
2851 LoadStringW(COMDLG32_hInstance, idCaption, strMsgTitle, ARRAY_SIZE(strMsgTitle));
2852 else
2853 strMsgTitle[0] = '\0';
2854 LoadStringW(COMDLG32_hInstance, idText, strMsgText, ARRAY_SIZE(strMsgText));
2855 MessageBoxW(hwnd,strMsgText, strMsgTitle, MB_OK | MB_ICONHAND);
2856}
#define ARRAY_SIZE(A)
Definition: main.h:20
HINSTANCE COMDLG32_hInstance
Definition: cdlg32.c:42
#define MB_ICONHAND
Definition: winuser.h:799
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_OK
Definition: winuser.h:801
#define LoadStringW
Definition: utils.h:64
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

Referenced by FILEDLG95_ValidatePathAction().

◆ FILEDLG95_ValidatePathAction()

int FILEDLG95_ValidatePathAction ( LPWSTR  lpstrPathAndFile,
IShellFolder **  ppsf,
HWND  hwnd,
DWORD  flags,
BOOL  isSaveDlg,
int  defAction 
)

Definition at line 2947 of file filedlg.c.

2950{
2951 int nOpenAction = defAction;
2952 LPWSTR lpszTemp, lpszTemp1;
2953 LPITEMIDLIST pidl = NULL;
2954
2955 /* check for invalid chars */
2956 if((wcspbrk(lpstrPathAndFile+3, L"/:<>|") != NULL) && !(flags & OFN_NOVALIDATE))
2957 {
2959 return FALSE;
2960 }
2961
2962 if (FAILED (SHGetDesktopFolder(ppsf))) return FALSE;
2963
2964 lpszTemp1 = lpszTemp = lpstrPathAndFile;
2965 while (lpszTemp1)
2966 {
2967 LPSHELLFOLDER lpsfChild;
2968 WCHAR lpwstrTemp[MAX_PATH];
2969 DWORD dwEaten, dwAttributes;
2970 LPWSTR p;
2971
2972 lstrcpyW(lpwstrTemp, lpszTemp);
2973 if (lpszTemp == lpstrPathAndFile && (p = PathSkipRootW(lpwstrTemp)))
2974 {
2975 *p = 0;
2976 }
2977 else
2978 {
2979 p = PathFindNextComponentW(lpwstrTemp);
2980 if (!p) break; /* end of path */
2981 *p = 0;
2982 }
2983 lpszTemp = lpszTemp + lstrlenW(lpwstrTemp);
2984
2985 /* There are no wildcards when OFN_NOVALIDATE is set */
2986 if(*lpszTemp==0 && !(flags & OFN_NOVALIDATE))
2987 {
2988 /* if the last element is a wildcard do a search */
2989 if(wcspbrk(lpszTemp1, L"*?") != NULL)
2990 {
2991 nOpenAction = ONOPEN_SEARCH;
2992 break;
2993 }
2994 }
2995 lpszTemp1 = lpszTemp;
2996
2997 TRACE("parse now=%s next=%s sf=%p\n",debugstr_w(lpwstrTemp), debugstr_w(lpszTemp), *ppsf);
2998
2999 /* append a backslash to drive letters */
3000 if(lstrlenW(lpwstrTemp)==2 && lpwstrTemp[1] == ':' &&
3001 ((lpwstrTemp[0] >= 'a' && lpwstrTemp[0] <= 'z') ||
3002 (lpwstrTemp[0] >= 'A' && lpwstrTemp[0] <= 'Z')))
3003 {
3004 PathAddBackslashW(lpwstrTemp);
3005 }
3006
3007#ifdef __REACTOS__
3008 dwAttributes = SFGAO_FOLDER | SFGAO_FILESYSANCESTOR;
3009#else
3010 dwAttributes = SFGAO_FOLDER;
3011#endif
3012 if(SUCCEEDED(IShellFolder_ParseDisplayName(*ppsf, hwnd, NULL, lpwstrTemp, &dwEaten, &pidl, &dwAttributes)))
3013 {
3014 /* the path component is valid, we have a pidl of the next path component */
3015 TRACE("parse OK attr=0x%08lx pidl=%p\n", dwAttributes, pidl);
3016#ifdef __REACTOS__
3017 if((dwAttributes & (SFGAO_FOLDER | SFGAO_FILESYSANCESTOR)) == (SFGAO_FOLDER | SFGAO_FILESYSANCESTOR))
3018#else
3019 if(dwAttributes & SFGAO_FOLDER)
3020#endif
3021 {
3022 if(FAILED(IShellFolder_BindToObject(*ppsf, pidl, 0, &IID_IShellFolder, (LPVOID*)&lpsfChild)))
3023 {
3024 ERR("bind to failed\n"); /* should not fail */
3025 break;
3026 }
3027 IShellFolder_Release(*ppsf);
3028 *ppsf = lpsfChild;
3029 lpsfChild = NULL;
3030 }
3031 else
3032 {
3033 TRACE("value\n");
3034
3035 /* end dialog, return value */
3036 nOpenAction = ONOPEN_OPEN;
3037 break;
3038 }
3039 ILFree(pidl);
3040 pidl = NULL;
3041 }
3042 else if (!(flags & OFN_NOVALIDATE))
3043 {
3044 if(*lpszTemp || /* points to trailing null for last path element */
3045 (lpwstrTemp[lstrlenW(lpwstrTemp)-1] == '\\')) /* or if last element ends in '\' */
3046 {
3048 {
3050 break;
3051 }
3052 }
3053 else
3054 {
3055 if( (flags & OFN_FILEMUSTEXIST) && !isSaveDlg )
3056 {
3057#ifdef __REACTOS__
3058 FILEDLG95_AddDotExtIfNeeded(fodInfos, lpstrPathAndFile);
3059 if (!PathFileExistsW(lpstrPathAndFile))
3060 {
3062 break;
3063 }
3064#else
3066 break;
3067#endif
3068 }
3069 }
3070 /* change to the current folder */
3071 nOpenAction = ONOPEN_OPEN;
3072 break;
3073 }
3074 else
3075 {
3076 nOpenAction = ONOPEN_OPEN;
3077 break;
3078 }
3079 }
3080 ILFree(pidl);
3081
3082 return nOpenAction;
3083}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define ERR(fmt,...)
Definition: precomp.h:57
#define ONOPEN_OPEN
Definition: cdlg.h:196
#define ONOPEN_SEARCH
Definition: cdlg.h:197
#define OFN_NOVALIDATE
Definition: commdlg.h:115
#define OFN_FILEMUSTEXIST
Definition: commdlg.h:106
#define OFN_PATHMUSTEXIST
Definition: commdlg.h:117
#define FALSE
Definition: types.h:117
void FILEDLG95_OnOpenMessage(HWND hwnd, int idCaption, int idText)
Definition: filedlg.c:2846
WCHAR *WINAPI PathSkipRootW(const WCHAR *path)
Definition: path.c:2269
BOOL WINAPI PathFileExistsW(const WCHAR *path)
Definition: path.c:2583
WCHAR *WINAPI PathFindNextComponentW(const WCHAR *path)
Definition: path.c:2224
_ACRTIMP wchar_t *__cdecl wcspbrk(const wchar_t *, const wchar_t *)
Definition: wcs.c:2021
#define IShellFolder_ParseDisplayName
Definition: utils.cpp:14
#define L(x)
Definition: resources.c:13
#define IDS_INVALID_FILENAME_TITLE
#define IDS_PATHNOTEXISTING
#define IDS_FILENOTEXISTING
#define IDS_INVALID_FILENAME
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
GLfloat GLfloat p
Definition: glext.h:8902
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:1051
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
uint16_t * LPWSTR
Definition: typedefs.h:56
DWORD dwAttributes
Definition: vdmdbg.h:34

Referenced by FILEDLG95_OnOpen().

◆ FileOpenDialog_Constructor()

HRESULT FileOpenDialog_Constructor ( IUnknown *  pUnkOuter,
REFIID  riid,
void **  ppv 
)

Referenced by DllGetClassObject().

◆ FileSaveDialog_Constructor()

HRESULT FileSaveDialog_Constructor ( IUnknown *  pUnkOuter,
REFIID  riid,
void **  ppv 
)

Referenced by DllGetClassObject().

◆ GetFileName31A()

BOOL GetFileName31A ( OPENFILENAMEA *  lpofn,
UINT  dlgType 
)

Definition at line 1145 of file filedlg31.c.

1146{
1147 BOOL bRet = FALSE;
1148 PFD31_DATA lfs;
1149
1150 if (!lpofn || !FD31_Init()) return FALSE;
1151
1152 TRACE("ofn flags %08lx\n", lpofn->Flags);
1153 lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, FALSE);
1154 if (lfs)
1155 {
1159 }
1160
1161 TRACE("return lpstrFile='%s' !\n", lpofn->lpstrFile);
1162 return bRet;
1163}
static PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
Definition: filedlg31.c:915
static void FD31_DestroyPrivate(PFD31_DATA lfs)
Definition: filedlg31.c:832
static BOOL FD31_Init(void)
Definition: filedlg31.c:75
static INT_PTR CALLBACK FD31_FileOpenDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
Definition: filedlg31.c:1097
unsigned int BOOL
Definition: ntddk_ex.h:94
LONG_PTR LPARAM
Definition: minwindef.h:175
INT_PTR WINAPI DialogBoxIndirectParamA(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
LPCVOID template
Definition: filedlg31.c:65
HWND hwndOwner
Definition: commdlg.h:330
LPSTR lpstrFile
Definition: commdlg.h:336
DWORD Flags
Definition: commdlg.h:342

Referenced by GetOpenFileNameA(), and GetSaveFileNameA().

◆ GetFileName31W()

BOOL GetFileName31W ( OPENFILENAMEW *  lpofn,
UINT  dlgType 
)

Definition at line 1170 of file filedlg31.c.

1171{
1172 BOOL bRet = FALSE;
1173 PFD31_DATA lfs;
1174
1175 if (!lpofn || !FD31_Init()) return FALSE;
1176
1177 lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, TRUE);
1178 if (lfs)
1179 {
1183 }
1184
1185 TRACE("file %s, file offset %d, ext offset %d\n",
1186 debugstr_w(lpofn->lpstrFile), lpofn->nFileOffset, lpofn->nFileExtension);
1187 return bRet;
1188}
#define TRUE
Definition: types.h:120
INT_PTR WINAPI DialogBoxIndirectParamW(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
HWND hwndOwner
Definition: commdlg.h:361
WORD nFileExtension
Definition: commdlg.h:375
LPWSTR lpstrFile
Definition: commdlg.h:367
WORD nFileOffset
Definition: commdlg.h:374

Referenced by GetOpenFileNameW(), and GetSaveFileNameW().

Variable Documentation

◆ COMDLG32_hActCtx

HANDLE COMDLG32_hActCtx
extern

Definition at line 46 of file cdlg32.c.

Referenced by DllMain().

◆ COMDLG32_hInstance