2 * PROJECT: ReactOS Services
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/system/servman/export.c
5 * PURPOSE: Save services to a file
6 * COPYRIGHT: Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
13 GetTextFromListView(PMAIN_WND_INFO Info
,
21 ZeroMemory(&item
, sizeof(item
));
22 item
.mask
= LVIF_TEXT
;
25 item
.cchTextMax
= 500;
26 NumChars
= (INT
)SendMessage(Info
->hListView
,
36 SaveServicesToFile(PMAIN_WND_INFO Info
,
40 BOOL bSuccess
= FALSE
;
42 hFile
= CreateFile(pszFileName
,
47 FILE_ATTRIBUTE_NORMAL
,
50 if(hFile
!= INVALID_HANDLE_VALUE
)
53 TCHAR newl
= _T('\n');
55 DWORD dwTextLength
, dwWritten
;
56 INT NumListedServ
= 0;
59 NumListedServ
= ListView_GetItemCount(Info
->hListView
);
61 for (i
=0; i
< NumListedServ
; i
++)
65 dwTextLength
= GetTextFromListView(Info
,
73 sizeof(TCHAR
) * dwTextLength
,
99 VOID
ExportFile(PMAIN_WND_INFO Info
)
102 TCHAR szFileName
[MAX_PATH
] = _T("");
104 ZeroMemory(&ofn
, sizeof(ofn
));
106 ofn
.lStructSize
= sizeof(OPENFILENAME
);
107 ofn
.hwndOwner
= Info
->hMainWnd
;
108 ofn
.lpstrFilter
= _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0");
109 ofn
.lpstrFile
= szFileName
;
110 ofn
.nMaxFile
= MAX_PATH
;
111 ofn
.lpstrDefExt
= _T("txt");
112 ofn
.Flags
= OFN_EXPLORER
| OFN_PATHMUSTEXIST
| OFN_HIDEREADONLY
| OFN_OVERWRITEPROMPT
;
114 if(GetSaveFileName(&ofn
))
116 if (SaveServicesToFile(Info
, szFileName
))
120 if (CommDlgExtendedError() != CDERR_GENERALCODES
)
121 MessageBox(NULL
, _T("Export to file failed"), NULL
, 0);