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