ReactOS 0.4.16-dev-319-g6cf4263
opensave.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS VGA Font Editor
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Functions for opening and saving files
5 * COPYRIGHT: Copyright 2008 Colin Finck (colin@reactos.org)
6 */
7
8#include "precomp.h"
9
11
12VOID
14{
15 ZeroMemory( &ofn, sizeof(ofn) );
16 ofn.lStructSize = sizeof(ofn);
19 ofn.lpstrDefExt = L"bin";
20}
21
22static __inline VOID
24{
25 // RC strings can't be double-null terminated, so we use | instead to separate the entries.
26 // Convert them back to null characters here.
27 do
28 {
29 if(*pszFilter == '|')
30 *pszFilter = 0;
31 }
32 while(*++pszFilter);
33}
34
35BOOL
37{
38 BOOL bRet;
39 PWSTR pszFilter;
40
41 if( AllocAndLoadString(&pszFilter, IDS_OPENFILTER) )
42 {
43 PrepareFilter(pszFilter);
44 ofn.lpstrFilter = pszFilter;
47
48 bRet = GetOpenFileNameW(&ofn);
49 HeapFree(hProcessHeap, 0, pszFilter);
50
51 return bRet;
52 }
53
54 return FALSE;
55}
56
57BOOL
59{
60 BOOL bRet;
61 PWSTR pszFilter;
62
63 if( AllocAndLoadString(&pszFilter, IDS_SAVEFILTER) )
64 {
65 PrepareFilter(pszFilter);
66 ofn.lpstrFilter = pszFilter;
68
69 bRet = GetSaveFileNameW(&ofn);
70 HeapFree(hProcessHeap, 0, pszFilter);
71
72 return bRet;
73 }
74
75 return FALSE;
76}
BOOL DoSaveFile(IN OUT PWSTR pszFileName)
Definition: opensave.c:58
BOOL DoOpenFile(OUT PWSTR pszFileName)
Definition: opensave.c:36
static __inline VOID PrepareFilter(IN PWSTR pszFilter)
Definition: opensave.c:23
VOID FileInitialize(IN HWND hwnd)
Definition: opensave.c:13
static OPENFILENAMEW ofn
Definition: opensave.c:10
INT AllocAndLoadString(OUT LPTSTR *lpTarget, IN HINSTANCE hInst, IN UINT uID)
Definition: misc.c:59
#define OFN_EXPLORER
Definition: commdlg.h:104
#define OFN_FILEMUSTEXIST
Definition: commdlg.h:106
#define FALSE
Definition: types.h:117
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
Definition: filedlg.c:4736
BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn)
Definition: filedlg.c:4801
#define MAX_PATH
Definition: compat.h:34
#define HeapFree(x, y, z)
Definition: compat.h:735
unsigned int BOOL
Definition: ntddk_ex.h:94
HANDLE hProcessHeap
Definition: kbswitch.c:37
#define IDS_SAVEFILTER
Definition: resource.h:60
#define IDS_OPENFILTER
Definition: resource.h:59
#define L(x)
Definition: ntvdm.h:50
HWND hwndOwner
Definition: commdlg.h:361
DWORD Flags
Definition: commdlg.h:373
LPWSTR lpstrFile
Definition: commdlg.h:367
LPCWSTR lpstrDefExt
Definition: commdlg.h:376
DWORD lStructSize
Definition: commdlg.h:360
DWORD nMaxFile
Definition: commdlg.h:368
LPCWSTR lpstrFilter
Definition: commdlg.h:363
uint16_t * PWSTR
Definition: typedefs.h:56
#define IN
Definition: typedefs.h:39
#define OUT
Definition: typedefs.h:40
WORD WORD PSZ PSZ pszFileName
Definition: vdmdbg.h:44
#define ZeroMemory
Definition: winbase.h:1737
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023