CRegEntry& CRegEntry::operator=(CRegEntry& cregValue) { if (this == &cregValue) return *this; if (lpszName == NULL) { size_t nNameLen = _tcslen(cregValue.lpszName) + 1; lpszName = new _TCHAR[nNameLen]; _tcsncpy(lpszName, cregValue.lpszName, nNameLen); } switch ((iType = cregValue.iType)) { case REG_SZ: return (*this = (ForceStr(), cregValue.lpszStr)); break; case REG_MULTI_SZ: { LPTSTR lpszBuf = new _TCHAR[_MAX_REG_VALUE]; SetMulti(cregValue.GetMulti(lpszBuf), cregValue.MultiLength()); delete [] lpszBuf; return *this; } break; case REG_BINARY: { size_t n = cregValue.vBytes.size(); LPBYTE buf = new BYTE[n]; cregValue.GetBinary(buf, n); SetBinary(buf, n); delete [] buf; return *this; } break; default: return (*this = cregValue.dwDWORD); } }
sBool sDiskItem::Save(sPtr mem,sInt size) { return SetBinary(sDIA_DATA,(sU8 *)mem,size); }
void SaveWindowAttributes::SetFromNode(DataNode *parentNode) { if(parentNode == 0) return; DataNode *searchNode = parentNode->GetNode("SaveWindowAttributes"); if(searchNode == 0) return; DataNode *node; if((node = searchNode->GetNode("outputToCurrentDirectory")) != 0) SetOutputToCurrentDirectory(node->AsBool()); if((node = searchNode->GetNode("outputDirectory")) != 0) SetOutputDirectory(node->AsString()); if((node = searchNode->GetNode("fileName")) != 0) SetFileName(node->AsString()); if((node = searchNode->GetNode("family")) != 0) SetFamily(node->AsBool()); if((node = searchNode->GetNode("format")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 14) SetFormat(FileFormat(ival)); } else if(node->GetNodeType() == STRING_NODE) { FileFormat value; if(FileFormat_FromString(node->AsString(), value)) SetFormat(value); } } if((node = searchNode->GetNode("width")) != 0) SetWidth(node->AsInt()); if((node = searchNode->GetNode("height")) != 0) SetHeight(node->AsInt()); if((node = searchNode->GetNode("screenCapture")) != 0) SetScreenCapture(node->AsBool()); if((node = searchNode->GetNode("saveTiled")) != 0) SetSaveTiled(node->AsBool()); if((node = searchNode->GetNode("quality")) != 0) SetQuality(node->AsInt()); if((node = searchNode->GetNode("progressive")) != 0) SetProgressive(node->AsBool()); if((node = searchNode->GetNode("binary")) != 0) SetBinary(node->AsBool()); if((node = searchNode->GetNode("lastRealFilename")) != 0) SetLastRealFilename(node->AsString()); if((node = searchNode->GetNode("stereo")) != 0) SetStereo(node->AsBool()); if((node = searchNode->GetNode("compression")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 4) SetCompression(CompressionType(ival)); } else if(node->GetNodeType() == STRING_NODE) { CompressionType value; if(CompressionType_FromString(node->AsString(), value)) SetCompression(value); } } if((node = searchNode->GetNode("forceMerge")) != 0) SetForceMerge(node->AsBool()); if((node = searchNode->GetNode("resConstraint")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetResConstraint(ResConstraint(ival)); } else if(node->GetNodeType() == STRING_NODE) { ResConstraint value; if(ResConstraint_FromString(node->AsString(), value)) SetResConstraint(value); } } if((node = searchNode->GetNode("advancedMultiWindowSave")) != 0) SetAdvancedMultiWindowSave(node->AsBool()); if((node = searchNode->GetNode("subWindowAtts")) != 0) subWindowAtts.SetFromNode(node); }