1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_sw.hxx" 26 27 28 #include <tools/stream.hxx> 29 #ifndef _RESID_HXX //autogen 30 #include <tools/resid.hxx> 31 #endif 32 #include <com/sun/star/uno/Any.hxx> 33 #include <com/sun/star/uno/Sequence.hxx> 34 #include <unotools/useroptions.hxx> 35 #include <tools/shl.hxx> 36 #include <swmodule.hxx> 37 #include "labimg.hxx" 38 #include "cmdid.h" 39 #include "swtypes.hxx" 40 #include <unomid.h> 41 42 using namespace utl; 43 using namespace rtl; 44 using namespace ::com::sun::star::uno; 45 46 47 // ---------------------------------------------------------------------------- 48 SwLabItem::SwLabItem() : 49 50 SfxPoolItem(FN_LABEL), 51 lLeft (0), 52 lUpper(0), 53 nCols (1), 54 nRows (1), 55 nCol (1), 56 nRow (1), 57 lPaperWidth(0), 58 lPaperHeight(0) 59 { 60 bAddr = bCont = bSynchron = sal_False; 61 bPage = sal_True; 62 lHDist = 63 lVDist = 64 lWidth = 65 lHeight = 5669; // 10 cm 66 } 67 68 // ---------------------------------------------------------------------------- 69 SwLabItem::SwLabItem(const SwLabItem& rItem) : 70 SfxPoolItem(FN_LABEL) 71 { 72 *this = rItem; 73 } 74 // ---------------------------------------------------------------------------- 75 SwLabItem& SwLabItem::operator =(const SwLabItem& rItem) 76 { 77 bAddr = rItem.bAddr; 78 aWriting = rItem.aWriting; 79 bCont = rItem.bCont; 80 sDBName = rItem.sDBName; 81 aLstMake = rItem.aLstMake; 82 aLstType = rItem.aLstType; 83 aMake = rItem.aMake; 84 aType = rItem.aType; 85 bPage = rItem.bPage; 86 bSynchron = rItem.bSynchron; 87 aBin = rItem.aBin; 88 nCol = rItem.nCol; 89 nRow = rItem.nRow; 90 lHDist = rItem.lHDist; 91 lVDist = rItem.lVDist; 92 lWidth = rItem.lWidth; 93 lHeight = rItem.lHeight; 94 lLeft = rItem.lLeft; 95 lUpper = rItem.lUpper; 96 nCols = rItem.nCols; 97 nRows = rItem.nRows; 98 lPaperWidth = rItem.lPaperWidth; 99 lPaperHeight = rItem.lPaperHeight; 100 aPrivFirstName = rItem.aPrivFirstName; 101 aPrivName = rItem.aPrivName; 102 aPrivShortCut = rItem.aPrivShortCut; 103 aPrivFirstName2 = rItem.aPrivFirstName2; 104 aPrivName2 = rItem.aPrivName2; 105 aPrivShortCut2 = rItem.aPrivShortCut2; 106 aPrivStreet = rItem.aPrivStreet; 107 aPrivZip = rItem.aPrivZip; 108 aPrivCity = rItem.aPrivCity; 109 aPrivCountry = rItem.aPrivCountry; 110 aPrivState = rItem.aPrivState; 111 aPrivTitle = rItem.aPrivTitle; 112 aPrivProfession = rItem.aPrivProfession; 113 aPrivPhone = rItem.aPrivPhone; 114 aPrivMobile = rItem.aPrivMobile; 115 aPrivFax = rItem.aPrivFax; 116 aPrivWWW = rItem.aPrivWWW; 117 aPrivMail = rItem.aPrivMail; 118 aCompCompany = rItem.aCompCompany; 119 aCompCompanyExt = rItem.aCompCompanyExt; 120 aCompSlogan = rItem.aCompSlogan; 121 aCompStreet = rItem.aCompStreet; 122 aCompZip = rItem.aCompZip; 123 aCompCity = rItem.aCompCity; 124 aCompCountry = rItem.aCompCountry; 125 aCompState = rItem.aCompState; 126 aCompPosition = rItem.aCompPosition; 127 aCompPhone = rItem.aCompPhone; 128 aCompMobile = rItem.aCompMobile; 129 aCompFax = rItem.aCompFax; 130 aCompWWW = rItem.aCompWWW; 131 aCompMail = rItem.aCompMail; 132 sGlossaryGroup = rItem.sGlossaryGroup; 133 sGlossaryBlockName = rItem.sGlossaryBlockName; 134 return *this; 135 } 136 137 // -------------------------------------------------------------------------- 138 139 140 141 int SwLabItem::operator ==(const SfxPoolItem& rItem) const 142 { 143 const SwLabItem& rLab = (const SwLabItem&) rItem; 144 145 return bAddr == rLab.bAddr && 146 bCont == rLab.bCont && 147 bPage == rLab.bPage && 148 bSynchron == rLab.bSynchron && 149 aBin == rLab.aBin && 150 nCol == rLab.nCol && 151 nRow == rLab.nRow && 152 lHDist == rLab.lHDist && 153 lVDist == rLab.lVDist && 154 lWidth == rLab.lWidth && 155 lHeight == rLab.lHeight && 156 lLeft == rLab.lLeft && 157 lUpper == rLab.lUpper && 158 nCols == rLab.nCols && 159 nRows == rLab.nRows && 160 lPaperWidth == rLab.lPaperWidth && 161 lPaperHeight == rLab.lPaperHeight && 162 aWriting == rLab.aWriting&& 163 aMake == rLab.aMake && 164 aType == rLab.aType && 165 aLstMake == rLab.aLstMake&& 166 aLstType == rLab.aLstType&& 167 sDBName == rLab.sDBName && 168 aPrivFirstName == rLab.aPrivFirstName&& 169 aPrivName == rLab.aPrivName&& 170 aPrivShortCut == rLab.aPrivShortCut&& 171 aPrivFirstName2 == rLab.aPrivFirstName2&& 172 aPrivName2 == rLab.aPrivName2&& 173 aPrivShortCut2 == rLab.aPrivShortCut2&& 174 aPrivStreet == rLab.aPrivStreet&& 175 aPrivZip == rLab.aPrivZip&& 176 aPrivCity == rLab.aPrivCity&& 177 aPrivCountry == rLab.aPrivCountry&& 178 aPrivState == rLab.aPrivState&& 179 aPrivTitle == rLab.aPrivTitle&& 180 aPrivProfession == rLab.aPrivProfession&& 181 aPrivPhone == rLab.aPrivPhone&& 182 aPrivMobile == rLab.aPrivMobile&& 183 aPrivFax == rLab.aPrivFax&& 184 aPrivWWW == rLab.aPrivWWW&& 185 aPrivMail == rLab.aPrivMail&& 186 aCompCompany == rLab.aCompCompany&& 187 aCompCompanyExt == rLab.aCompCompanyExt&& 188 aCompSlogan == rLab.aCompSlogan&& 189 aCompStreet == rLab.aCompStreet&& 190 aCompZip == rLab.aCompZip&& 191 aCompCity == rLab.aCompCity&& 192 aCompCountry == rLab.aCompCountry&& 193 aCompState == rLab.aCompState&& 194 aCompPosition == rLab.aCompPosition&& 195 aCompPhone == rLab.aCompPhone&& 196 aCompMobile == rLab.aCompMobile&& 197 aCompFax == rLab.aCompFax&& 198 aCompWWW == rLab.aCompWWW&& 199 aCompMail == rLab.aCompMail && 200 sGlossaryGroup == rLab.sGlossaryGroup && 201 sGlossaryBlockName == rLab.sGlossaryBlockName; 202 } 203 204 // -------------------------------------------------------------------------- 205 SfxPoolItem* SwLabItem::Clone(SfxItemPool*) const 206 { 207 return new SwLabItem(*this); 208 } 209 210 /* -----------------------------25.09.00 16:25-------------------------------- 211 212 ---------------------------------------------------------------------------*/ 213 Sequence<rtl::OUString> SwLabCfgItem::GetPropertyNames() 214 { 215 static const char* aLabelPropNames[] = 216 { 217 "Medium/Continuous", // 0 218 "Medium/Brand", // 1 219 "Medium/Type", // 2 220 "Format/Column", // 3 221 "Format/Row", // 4 222 "Format/HorizontalDistance",// 5 223 "Format/VerticalDistance", // 6 224 "Format/Width", // 7 225 "Format/Height", // 8 226 "Format/LeftMargin", // 9 227 "Format/TopMargin", //10 228 "Format/PaperWidth", //11 229 "Format/PaperHeight", //12 230 "Option/Synchronize", //13 231 "Option/Page", //14 232 "Option/Column", //15 233 "Option/Row", //16 234 "Inscription/UseAddress", //17 235 "Inscription/Address", //18 236 "Inscription/Database" //19 237 }; 238 static const char* aBusinessPropNames[] = 239 { 240 "PrivateAddress/FirstName", // 0 241 "PrivateAddress/Name", // 1 242 "PrivateAddress/ShortCut", // 2 243 "PrivateAddress/SecondFirstName", // 3 244 "PrivateAddress/SecondName", // 4 245 "PrivateAddress/SecondShortCut", // 5 246 "PrivateAddress/Street", // 6 247 "PrivateAddress/Zip", // 7 248 "PrivateAddress/City", // 8 249 "PrivateAddress/Country", // 9 250 "PrivateAddress/State", // 10 251 "PrivateAddress/Title", // 11 252 "PrivateAddress/Profession", // 12 253 "PrivateAddress/Phone", // 13 254 "PrivateAddress/Mobile", // 14 255 "PrivateAddress/Fax", // 15 256 "PrivateAddress/WebAddress", // 16 257 "PrivateAddress/Email", // 17 258 "BusinessAddress/Company", // 18 259 "BusinessAddress/CompanyExt", // 19 260 "BusinessAddress/Slogan", // 20 261 "BusinessAddress/Street", // 21 262 "BusinessAddress/Zip", // 22 263 "BusinessAddress/City", // 23 264 "BusinessAddress/Country", // 24 265 "BusinessAddress/State", // 25 266 "BusinessAddress/Position", // 26 267 "BusinessAddress/Phone", // 27 268 "BusinessAddress/Mobile", // 28 269 "BusinessAddress/Fax", // 29 270 "BusinessAddress/WebAddress", // 30 271 "BusinessAddress/Email", // 31 272 "AutoText/Group", // 32 273 "AutoText/Block" // 33 274 }; 275 const int nBusinessCount = bIsLabel ? 0 : 34; 276 const int nLabelCount = bIsLabel ? 20 : 17; 277 Sequence<OUString> aNames(nBusinessCount + nLabelCount); 278 OUString* pNames = aNames.getArray(); 279 int nIndex = 0; 280 for(int nLabel = 0; nLabel < nLabelCount; nLabel++) 281 pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]); 282 for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++) 283 pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]); 284 return aNames; 285 } 286 /* ---------------------------------------------------------------------------- 287 288 ---------------------------------------------------------------------------*/ 289 SwLabCfgItem::SwLabCfgItem(sal_Bool bLabel) : 290 ConfigItem(bLabel ? C2U("Office.Writer/Label") : C2U("Office.Writer/BusinessCard")), 291 bIsLabel(bLabel) 292 { 293 Sequence<OUString> aNames = GetPropertyNames(); 294 Sequence<Any> aValues = GetProperties(aNames); 295 EnableNotification(aNames); 296 const Any* pValues = aValues.getConstArray(); 297 DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed"); 298 sal_Bool bNoConfigValues = sal_True; 299 if(aValues.getLength() == aNames.getLength()) 300 { 301 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++) 302 { 303 304 if(pValues[nProp].hasValue()) 305 { 306 //to have a continuous switch an offset is added 307 if(nProp == 17 && !bIsLabel) 308 nProperty += 3; 309 if(nProperty >= 20) 310 bNoConfigValues = sal_False; 311 switch(nProperty) 312 { 313 case 0: aItem.bCont = *(sal_Bool*)pValues[nProp].getValue(); break;// "Medium/Continuous", 314 case 1: pValues[nProp] >>= aItem.aMake; break;// "Medium/Brand", 315 case 2: pValues[nProp] >>= aItem.aType; break;// "Medium/Type", 316 case 3: pValues[nProp] >>= aItem.nCols; break;// "Format/Column", 317 case 4: pValues[nProp] >>= aItem.nRows; break;// "Format/Row", 318 case 5: 319 pValues[nProp] >>= aItem.lHDist; 320 aItem.lHDist = MM100_TO_TWIP(aItem.lHDist); 321 break;// "Format/HorizontalDistance", 322 case 6: 323 pValues[nProp] >>= aItem.lVDist; 324 aItem.lVDist = MM100_TO_TWIP(aItem.lVDist); 325 break;// "Format/VerticalDistance", 326 case 7: 327 pValues[nProp] >>= aItem.lWidth; 328 aItem.lWidth = MM100_TO_TWIP(aItem.lWidth); 329 break;// "Format/Width", 330 case 8: 331 pValues[nProp] >>= aItem.lHeight; 332 aItem.lHeight = MM100_TO_TWIP(aItem.lHeight); 333 break;// "Format/Height", 334 case 9: 335 pValues[nProp] >>= aItem.lLeft; 336 aItem.lLeft = MM100_TO_TWIP(aItem.lLeft); 337 break;// "Format/LeftMargin", 338 case 10: 339 pValues[nProp] >>= aItem.lUpper; 340 aItem.lUpper = MM100_TO_TWIP(aItem.lUpper); 341 break;// "Format/TopMargin", 342 case 11: 343 pValues[nProp] >>= aItem.lPaperWidth; 344 aItem.lPaperWidth = MM100_TO_TWIP(aItem.lPaperWidth); 345 break;// "Format/PaperWidth", 346 case 12: 347 pValues[nProp] >>= aItem.lPaperHeight; 348 aItem.lPaperHeight = MM100_TO_TWIP(aItem.lPaperHeight); 349 break;// "Format/PaperHeight", 350 case 13: aItem.bSynchron = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Synchronize", 351 case 14: aItem.bPage = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Page", 352 case 15: pValues[nProp] >>= aItem.nCol; break;// "Option/Column", 353 case 16: pValues[nProp] >>= aItem.nRow; break;// "Option/Row" 354 case 17: aItem.bAddr = *(sal_Bool*)pValues[nProp].getValue(); break;// "Inscription/UseAddress", 355 case 18: pValues[nProp] >>= aItem.aWriting; break;// "Inscription/Address", 356 case 19: pValues[nProp] >>= aItem.sDBName; break;// "Inscription/Database" 357 case 20: pValues[nProp] >>= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName", 358 case 21: pValues[nProp] >>= aItem.aPrivName; break;// "PrivateAddress/Name", 359 case 22: pValues[nProp] >>= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut", 360 case 23: pValues[nProp] >>= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName", 361 case 24: pValues[nProp] >>= aItem.aPrivName2; break;// "PrivateAddress/SecondName", 362 case 25: pValues[nProp] >>= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut", 363 case 26: pValues[nProp] >>= aItem.aPrivStreet; break;// "PrivateAddress/Street", 364 case 27: pValues[nProp] >>= aItem.aPrivZip; break;// "PrivateAddress/Zip", 365 case 28: pValues[nProp] >>= aItem.aPrivCity; break;// "PrivateAddress/City", 366 case 29: pValues[nProp] >>= aItem.aPrivCountry; break;// "PrivateAddress/Country", 367 case 30: pValues[nProp] >>= aItem.aPrivState; break;// "PrivateAddress/State", 368 case 31: pValues[nProp] >>= aItem.aPrivTitle; break;// "PrivateAddress/Title", 369 case 32: pValues[nProp] >>= aItem.aPrivProfession; break;// "PrivateAddress/Profession", 370 case 33: pValues[nProp] >>= aItem.aPrivPhone; break;// "PrivateAddress/Phone", 371 case 34: pValues[nProp] >>= aItem.aPrivMobile; break;// "PrivateAddress/Mobile", 372 case 35: pValues[nProp] >>= aItem.aPrivFax; break;// "PrivateAddress/Fax", 373 case 36: pValues[nProp] >>= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress", 374 case 37: pValues[nProp] >>= aItem.aPrivMail; break;// "PrivateAddress/Email", 375 case 38: pValues[nProp] >>= aItem.aCompCompany; break;// "BusinessAddress/Company", 376 case 39: pValues[nProp] >>= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt", 377 case 40: pValues[nProp] >>= aItem.aCompSlogan; break;// "BusinessAddress/Slogan", 378 case 41: pValues[nProp] >>= aItem.aCompStreet; break;// "BusinessAddress/Street", 379 case 42: pValues[nProp] >>= aItem.aCompZip; break;// "BusinessAddress/Zip", 380 case 43: pValues[nProp] >>= aItem.aCompCity; break;// "BusinessAddress/City", 381 case 44: pValues[nProp] >>= aItem.aCompCountry; break;// "BusinessAddress/Country", 382 case 45: pValues[nProp] >>= aItem.aCompState; break;// "BusinessAddress/State", 383 case 46: pValues[nProp] >>= aItem.aCompPosition; break;// "BusinessAddress/Position", 384 case 47: pValues[nProp] >>= aItem.aCompPhone; break;// "BusinessAddress/Phone", 385 case 48: pValues[nProp] >>= aItem.aCompMobile; break;// "BusinessAddress/Mobile", 386 case 49: pValues[nProp] >>= aItem.aCompFax; break;// "BusinessAddress/Fax", 387 case 50: pValues[nProp] >>= aItem.aCompWWW; break;// "BusinessAddress/WebAddress", 388 case 51: pValues[nProp] >>= aItem.aCompMail; break;// "BusinessAddress/Email", 389 case 52: pValues[nProp] >>= aItem.sGlossaryGroup; break;// "AutoText/Group" 390 case 53: pValues[nProp] >>= aItem.sGlossaryBlockName; break;// "AutoText/Block" 391 } 392 } 393 } 394 } 395 if(!bIsLabel && bNoConfigValues) 396 { 397 398 SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions(); 399 aItem.aPrivFirstName = rUserOpt.GetFirstName(); 400 aItem.aPrivName = rUserOpt.GetLastName(); 401 aItem.aPrivShortCut = rUserOpt.GetID(); 402 aItem.aCompCompany = rUserOpt.GetCompany(); 403 aItem.aCompStreet = aItem.aPrivStreet = rUserOpt.GetStreet(); 404 405 aItem.aCompCountry = aItem.aPrivCountry = rUserOpt.GetCountry(); 406 aItem.aCompZip = aItem.aPrivZip= rUserOpt.GetZip(); 407 aItem.aCompCity = aItem.aPrivCity = rUserOpt.GetCity(); 408 aItem.aPrivTitle = rUserOpt.GetTitle(); 409 aItem.aCompPosition = rUserOpt.GetPosition(); 410 aItem.aPrivPhone = rUserOpt.GetTelephoneHome(); 411 aItem.aCompPhone = rUserOpt.GetTelephoneWork(); 412 aItem.aCompFax = aItem.aPrivFax = rUserOpt.GetFax(); 413 aItem.aCompMail = aItem.aPrivMail = rUserOpt.GetEmail(); 414 aItem.aCompState = aItem.aPrivState = rUserOpt.GetState(); 415 aItem.bSynchron = sal_True; 416 SetModified(); 417 } 418 } 419 /* -----------------------------25.09.00 16:26-------------------------------- 420 421 ---------------------------------------------------------------------------*/ 422 void SwLabCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} 423 424 void SwLabCfgItem::Commit() 425 { 426 Sequence<OUString> aNames = GetPropertyNames(); 427 Sequence<Any> aValues(aNames.getLength()); 428 Any* pValues = aValues.getArray(); 429 430 const Type& rType = ::getBooleanCppuType(); 431 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++) 432 { 433 //to have a continuous switch an offset is added 434 if(nProp == 17 && !bIsLabel) 435 nProperty += 3; 436 switch(nProperty) 437 { 438 case 0: pValues[nProp].setValue(&aItem.bCont, rType); break;// "Medium/Continuous", 439 case 1: pValues[nProp] <<= aItem.aMake; break;// "Medium/Brand", 440 case 2: pValues[nProp] <<= aItem.aType; break;// "Medium/Type", 441 case 3: pValues[nProp] <<= aItem.nCols; break;// "Format/Column", 442 case 4: pValues[nProp] <<= aItem.nRows; break;// "Format/Row", 443 case 5: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHDist));break;// "Format/HorizontalDistance", 444 case 6: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lVDist));break;// "Format/VerticalDistance", 445 case 7: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lWidth)); break;// "Format/Width", 446 case 8: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHeight)); break;// "Format/Height", 447 case 9: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lLeft)); break;// "Format/LeftMargin", 448 case 10: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lUpper)); break;// "Format/TopMargin", 449 case 11: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPaperWidth)); break;// "Format/PaperWidth", 450 case 12: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lPaperHeight)); break;// "Format/PaperHeight", 451 case 13: pValues[nProp].setValue(&aItem.bSynchron, rType); break;// "Option/Synchronize", 452 case 14: pValues[nProp].setValue(&aItem.bPage, rType); break;// "Option/Page", 453 case 15: pValues[nProp] <<= aItem.nCol; break;// "Option/Column", 454 case 16: pValues[nProp] <<= aItem.nRow; break;// "Option/Row" 455 case 17: pValues[nProp].setValue(&aItem.bAddr, rType); break;// "Inscription/UseAddress", 456 case 18: pValues[nProp] <<= aItem.aWriting; break;// "Inscription/Address", 457 case 19: pValues[nProp] <<= aItem.sDBName; break;// "Inscription/Database" 458 case 20: pValues[nProp] <<= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName", 459 case 21: pValues[nProp] <<= aItem.aPrivName; break;// "PrivateAddress/Name", 460 case 22: pValues[nProp] <<= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut", 461 case 23: pValues[nProp] <<= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName", 462 case 24: pValues[nProp] <<= aItem.aPrivName2; break;// "PrivateAddress/SecondName", 463 case 25: pValues[nProp] <<= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut", 464 case 26: pValues[nProp] <<= aItem.aPrivStreet; break;// "PrivateAddress/Street", 465 case 27: pValues[nProp] <<= aItem.aPrivZip; break;// "PrivateAddress/Zip", 466 case 28: pValues[nProp] <<= aItem.aPrivCity; break;// "PrivateAddress/City", 467 case 29: pValues[nProp] <<= aItem.aPrivCountry; break;// "PrivateAddress/Country", 468 case 30: pValues[nProp] <<= aItem.aPrivState; break;// "PrivateAddress/State", 469 case 31: pValues[nProp] <<= aItem.aPrivTitle; break;// "PrivateAddress/Title", 470 case 32: pValues[nProp] <<= aItem.aPrivProfession; break;// "PrivateAddress/Profession", 471 case 33: pValues[nProp] <<= aItem.aPrivPhone; break;// "PrivateAddress/Phone", 472 case 34: pValues[nProp] <<= aItem.aPrivMobile; break;// "PrivateAddress/Mobile", 473 case 35: pValues[nProp] <<= aItem.aPrivFax; break;// "PrivateAddress/Fax", 474 case 36: pValues[nProp] <<= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress", 475 case 37: pValues[nProp] <<= aItem.aPrivMail; break;// "PrivateAddress/Email", 476 case 38: pValues[nProp] <<= aItem.aCompCompany; break;// "BusinessAddress/Company", 477 case 39: pValues[nProp] <<= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt", 478 case 40: pValues[nProp] <<= aItem.aCompSlogan; break;// "BusinessAddress/Slogan", 479 case 41: pValues[nProp] <<= aItem.aCompStreet; break;// "BusinessAddress/Street", 480 case 42: pValues[nProp] <<= aItem.aCompZip; break;// "BusinessAddress/Zip", 481 case 43: pValues[nProp] <<= aItem.aCompCity; break;// "BusinessAddress/City", 482 case 44: pValues[nProp] <<= aItem.aCompCountry; break;// "BusinessAddress/Country", 483 case 45: pValues[nProp] <<= aItem.aCompState; break;// "BusinessAddress/State", 484 case 46: pValues[nProp] <<= aItem.aCompPosition; break;// "BusinessAddress/Position", 485 case 47: pValues[nProp] <<= aItem.aCompPhone; break;// "BusinessAddress/Phone", 486 case 48: pValues[nProp] <<= aItem.aCompMobile; break;// "BusinessAddress/Mobile", 487 case 49: pValues[nProp] <<= aItem.aCompFax; break;// "BusinessAddress/Fax", 488 case 50: pValues[nProp] <<= aItem.aCompWWW; break;// "BusinessAddress/WebAddress", 489 case 51: pValues[nProp] <<= aItem.aCompMail; break;// "BusinessAddress/Email", 490 case 52: pValues[nProp] <<= aItem.sGlossaryGroup; break;// "AutoText/Group" 491 case 53: pValues[nProp] <<= aItem.sGlossaryBlockName; break;// "AutoText/Block" 492 } 493 } 494 PutProperties(aNames, aValues); 495 } 496