本文整理汇总了C++中CDiskObjectList::remove方法的典型用法代码示例。如果您正苦于以下问题:C++ CDiskObjectList::remove方法的具体用法?C++ CDiskObjectList::remove怎么用?C++ CDiskObjectList::remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDiskObjectList
的用法示例。
在下文中一共展示了CDiskObjectList::remove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnAddMirror
void CMainFrame::OnAddMirror(UINT /*wNotifyCode*/, int /*wID*/, HWND /*hwndCtl*/)
{
ENTER_CRITICAL_SECTION(&m_csThreadRefreshStatus);
CTreeItem itemSelected = m_view.GetSelectedItem();
if ( itemSelected.IsNull() )
{
LEAVE_CRITICAL_SECTION(&m_csThreadRefreshStatus);
return;
}
CDiskObjectList singleDisks;
CUnitDiskObjectPtr sourceDisk;
sourceDisk =
boost::dynamic_pointer_cast<CUnitDiskObject>(
m_mapObject[m_view.GetItemData(itemSelected)]
);
ATLASSERT( sourceDisk.get() != NULL );
CFindIfVisitor<FALSE> singleDiskFinder;
singleDisks = singleDiskFinder.FindIf(m_pRoot, IsWritableUnitDisk);
singleDisks.remove( sourceDisk );
if ( singleDisks.size() == 0 )
{
LEAVE_CRITICAL_SECTION(&m_csThreadRefreshStatus);
// TODO : No disk is available
WTL::CString strMsg;
strMsg.LoadString( IDS_MAINFRAME_NO_DISK_TO_MIRROR );
WTL::CString strTitle;
strTitle.LoadString(IDS_APPLICATION);
MessageBox(
strMsg,
strTitle,
MB_OK | MB_ICONWARNING
);
return;
}
DWORD UnitNo = 0;
CSelectMirDlg dlgSelDisk(IDD_ADDMIR);
dlgSelDisk.SetSingleDisks( singleDisks );
dlgSelDisk.SetSourceDisk( sourceDisk );
if ( dlgSelDisk.DoModal() == IDOK )
{
CUnitDiskObjectPtr mirDisk = dlgSelDisk.GetSelectedDisk();
// Bind & Synchronize
NDAS_CONNECTION_INFO ConnectionInfo[2];
ZeroMemory(&ConnectionInfo[0], sizeof(NDAS_CONNECTION_INFO));
ConnectionInfo[0].type = NDAS_CONNECTION_INFO_TYPE_MAC_ADDRESS;
ConnectionInfo[0].UnitNo = sourceDisk->GetLocation()->GetUnitDiskLocation()->UnitNumber;
ConnectionInfo[0].bWriteAccess = TRUE;
ConnectionInfo[0].ui64OEMCode = NULL;
ConnectionInfo[0].protocol = IPPROTO_LPXTCP;
CopyMemory(ConnectionInfo[0].MacAddress,
sourceDisk->GetLocation()->GetUnitDiskLocation()->MACAddr,
LPXADDR_NODE_LENGTH);
ZeroMemory(&ConnectionInfo[1], sizeof(NDAS_CONNECTION_INFO));
ConnectionInfo[1].type = NDAS_CONNECTION_INFO_TYPE_MAC_ADDRESS;
ConnectionInfo[1].UnitNo = mirDisk->GetLocation()->GetUnitDiskLocation()->UnitNumber;
ConnectionInfo[1].bWriteAccess = TRUE;
ConnectionInfo[1].ui64OEMCode = NULL;
ConnectionInfo[1].protocol = IPPROTO_LPXTCP;
CopyMemory(ConnectionInfo[1].MacAddress,
mirDisk->GetLocation()->GetUnitDiskLocation()->MACAddr,
LPXADDR_NODE_LENGTH);
UINT32 BindResult = NdasOpBind(
2,
ConnectionInfo,
NMT_SAFE_RAID1);
if(2 != BindResult)
{
LEAVE_CRITICAL_SECTION(&m_csThreadRefreshStatus);
WTL :: CString strMsg;
DWORD dwLastError = ::GetLastError();
switch(dwLastError)
{
case NDASCOMM_ERROR_RW_USER_EXIST:
case NDASOP_ERROR_ALREADY_USED:
case NDASOP_ERROR_DEVICE_FAIL:
case NDASOP_ERROR_NOT_SINGLE_DISK:
case NDASOP_ERROR_DEVICE_UNSUPPORTED:
strMsg.FormatMessage(IDS_BIND_FAIL_AT_SINGLE_NDAS_FMT,
(BindResult == 0) ? sourceDisk->GetTitle() : mirDisk->GetTitle());
break;
default:
strMsg.LoadString(IDS_BIND_FAIL);
break;
}
//.........这里部分代码省略.........