CStringW CTime::Format(LPCWSTR pFormat) const { CStringW str; struct tm Time; if (localtime_s(&Time,&m_time)) return szEmpty; wcsftime(str.GetBuffer(1000),1000,pFormat,&Time); str.FreeExtra(); return str; }
BOOL CListCtrl::GetItemText(CStringW& str,int nItem, int nSubItem) const { LV_ITEMW li; li.mask=LVIF_TEXT; li.iItem=nItem; li.iSubItem=nSubItem; li.pszText=str.GetBuffer(1000); li.cchTextMax=1000; int nRet=(int)::SendMessage(m_hWnd,LVM_GETITEMTEXTW,nItem,(LPARAM)&li); if (nRet>0) str.FreeExtra(nRet); else str.Empty(); return nRet>0; }
BOOL CRegKey::EnumValue(DWORD iValue,CStringW& strName,LPDWORD lpdwType,LPBYTE lpbData,LPDWORD lpcbData) const { if (IsUnicodeSystem()) { DWORD cb=2048; LONG ret=::RegEnumValueW(m_hKey,iValue,strName.GetBuffer(2048/2),&cb,0,lpdwType,lpbData,lpcbData); strName.FreeExtra(); return ret==ERROR_SUCCESS; } else { DWORD cb=2048; char name[2048]; LONG ret=::RegEnumValueA(m_hKey,iValue,name,&cb,0,lpdwType,lpbData,lpcbData); strName=name; return ret==ERROR_SUCCESS; } }