📄 warmmcfilenodedata.cpp
字号:
#include "StdAfx.h"#include "WarMmcFileNodeData.h" // class implemented/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarMmcFileNodeData::WarMmcFileNodeData(WarMmcNodeEventBase& node, const war_regstr_t& name, const WarWin32Registry& regParent, bool canChangeName): WarMmcFuckLameMicrosoftForNotImplementingThis(&node),mPerms(DEFAULT_PERMS),mName(name),mCanChangeName(false){ mRegKey.Open(regParent.GetRootKey(), regParent.GetPath().GetPath());}WarMmcFileNodeData::~WarMmcFileNodeData(void){}//============================= OPERATORS ====================================//============================= OPERATIONS ===================================void WarMmcFileNodeData::Load() throw(WarException){ if (mName.empty()) WarThrow(WarException(WAR_ERR_INTERNAL_DATA_NOT_INITIALIZED), NULL); WarWin32Registry my_node; my_node.Open(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str())); mUrl = WarCollector<char>(my_node.GetStrValue(WAR_WINNT_SHARE_URL)).GetValue().c_str(); mPerms = my_node.GetIntValue(WAR_WINNT_REG_PERMISSIONS);}void WarMmcFileNodeData::Save() throw(WarException){ if (mName.empty()) WarThrow(WarException(WAR_ERR_INTERNAL_DATA_NOT_INITIALIZED), NULL); WarWin32Registry my_node; my_node.Create(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str())); my_node.SetValue(WAR_WINNT_SHARE_URL, WarCollector<TCHAR>(mUrl.GetUrl()).GetValue().c_str()); my_node.SetValue(WAR_WINNT_REG_PERMISSIONS, mPerms);}//============================= ACCESS ===================================//============================= INQUIRY ===================================bool WarMmcFileNodeData::HaveValidName() const{ if (mName.empty()) return false; // No name at all // Validate the path itself const TCHAR *p = mName.c_str(); if (*p != '/') return false; while(*++p) { if (*p == '/') { if ((p[-1] == '/') || (p[1] == 0)) return false; } if ((*p == '.') && (p[-1] == '/')) { const TCHAR *pp = p; while(*pp == '.') ++pp; if (!_istalnum(*pp)) return false; } } WarWin32Registry my_node; try { my_node.Open(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str())); } catch(WarException& e) { if (e.LocalError() == WAR_ERR_NAME_DONT_EXIST) return true; } return false; // Exist}/////////////////////////////// PROTECTED ////////////////////////////////////////////////////////////////// PRIVATE ///////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -