1 // PropFile.cpp : implementation file
5 #include "PropVolume.h"
13 #include "WINNT\talocale.h"
14 #include "afs_shl_ext.h"
19 BOOL CPropVolume::PropPageProc( HWND hwnd, UINT uMessage, WPARAM wParam, LPARAM lParam )
25 CPropVolume * sheetpage = (CPropVolume*) ((LPPROPSHEETPAGE) lParam)->lParam;
26 SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) sheetpage);
27 sheetpage->SetHwnd(hwnd);
28 AfxSetResourceHandle(m_hInst);
30 BOOL bFollow = (filenames.GetCount() == 1 && m_bIsMountpoint);
32 if(filenames.GetCount() >= 1) {
35 SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, filenames.GetAt(0));
36 sText = GetCellName(filenames.GetAt(0), bFollow);
37 SetDlgItemText(hwnd, IDC_PROP_CELL, sText);
38 sText = GetServer(filenames.GetAt(0), bFollow);
39 SetDlgItemText(hwnd, IDC_PROP_FILESERVER, sText);
44 if (GetVolumeInfo(filenames.GetAt(0), volInfo, bFollow)) {
45 SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, volInfo.m_strName);
47 SetDlgItemText(hwnd, IDC_PROP_VOLUME_STATUS, volInfo.m_strAvail);
49 sText.Format(_T("%u"), volInfo.m_nID);
50 SetDlgItemText(hwnd, IDC_PROP_VID, sText);
52 if (volInfo.m_nQuota == 0) {
53 SetDlgItemText(hwnd, IDC_QUOTA_MAX, _T("unlimited"));
54 SetDlgItemText(hwnd, IDC_QUOTA_PERCENT, _T("0.00%"));
56 StrFormatByteSize64(volInfo.m_nQuota*1024, buf, 100);
57 SetDlgItemText(hwnd, IDC_QUOTA_MAX, buf);
59 sText.Format(_T("%.2f%%"), ((double)volInfo.m_nUsed / (double)volInfo.m_nQuota) * 100);
60 SetDlgItemText(hwnd, IDC_QUOTA_PERCENT, sText);
63 StrFormatByteSize64(volInfo.m_nUsed*1024, buf, 100);
64 SetDlgItemText(hwnd, IDC_QUOTA_USED, buf);
66 StrFormatByteSize64(volInfo.m_nPartSize*1024, buf, 100);
67 SetDlgItemText(hwnd, IDC_PARTITION_SIZE, buf);
68 StrFormatByteSize64(volInfo.m_nPartFree*1024, buf, 100);
69 SetDlgItemText(hwnd, IDC_PARTITION_FREE, buf);
71 sText.Format(_T("%.2f%%"), ((double)volInfo.m_nPartFree / (double)volInfo.m_nPartSize) * 100);
72 SetDlgItemText(hwnd, IDC_PARTITION_PERCENT, sText);
76 SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, volInfo.m_strErrorMsg);
81 GetServers(filenames.GetAt(0), servers, bFollow);
82 int tabstops[1] = {118};
83 SendDlgItemMessage(hwnd, IDC_SERVERS, LB_SETTABSTOPS, 1, (LPARAM)&tabstops);
84 for (int i=0;i<servers.GetCount();++i){
85 SendDlgItemMessage(m_hwnd, IDC_SERVERS, LB_ADDSTRING, 0, (LPARAM)(LPCTSTR)servers.GetAt(i));
93 LPNMHDR point = (LPNMHDR)lParam;
94 int code = point->code;
100 // Return PSNRET_NOERROR to allow the sheet to close if the user clicked OK.
101 SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, PSNRET_NOERROR);
105 SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, FALSE);
110 switch (HIWORD(wParam))
113 switch (LOWORD(wParam))
116 FlushVolume(filenames);