aboutsummaryrefslogtreecommitdiff
path: root/CPP/Windows/CommonDialog.h
blob: 85b071f0ce2c68920861879f97d8879806d02c51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Windows/CommonDialog.h

#ifndef ZIP7_INC_WINDOWS_COMMON_DIALOG_H
#define ZIP7_INC_WINDOWS_COMMON_DIALOG_H

#include "../Common/MyString.h"

namespace NWindows {

struct CCommonDialogInfo
{
  /* (FilterIndex == -1) means no selected filter.
       and (-1) also is reserved for unsupported custom filter.
     if (FilterIndex >= 0), then FilterIndex is index of filter */
  int FilterIndex;    // [in / out]
  bool SaveMode;
 #ifdef UNDER_CE
  bool OpenFolderMode;
 #endif
  HWND hwndOwner;
  // LPCWSTR lpstrInitialDir;
  LPCWSTR lpstrTitle;
  UString FilePath;   // [in / out]

  CCommonDialogInfo()
  {
    FilterIndex = -1;
    SaveMode = false;
   #ifdef UNDER_CE
    OpenFolderMode = false;
   #endif
    hwndOwner = NULL;
    // lpstrInitialDir = NULL;
    lpstrTitle = NULL;
  }
  
  /* (filters) : 2 sequential vector strings (Description, Masks) represent each filter */
  bool CommonDlg_BrowseForFile(LPCWSTR lpstrInitialDir, const UStringVector &filters);
};

}

#endif