update dev300-m58
[ooovba.git] / sw / source / ui / envelp / labimg.cxx
blob2fe0e20539f545cb15483eac12f42075ca1c7eda
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: labimg.cxx,v $
10 * $Revision: 1.11 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sw.hxx"
35 #include <tools/stream.hxx>
36 #ifndef _RESID_HXX //autogen
37 #include <tools/resid.hxx>
38 #endif
39 #include <com/sun/star/uno/Any.hxx>
40 #include <com/sun/star/uno/Sequence.hxx>
41 #include <svtools/useroptions.hxx>
42 #include <tools/shl.hxx>
43 #include <swmodule.hxx>
44 #include "labimg.hxx"
45 #include "cmdid.h"
46 #include "swtypes.hxx"
47 #include <unomid.h>
49 using namespace utl;
50 using namespace rtl;
51 using namespace ::com::sun::star::uno;
54 // ----------------------------------------------------------------------------
55 SwLabItem::SwLabItem() :
57 SfxPoolItem(FN_LABEL),
58 lLeft (0),
59 lUpper(0),
60 nCols (1),
61 nRows (1),
62 nCol (1),
63 nRow (1)
65 bAddr = bCont = bSynchron = FALSE;
66 bPage = TRUE;
67 lHDist =
68 lVDist =
69 lWidth =
70 lHeight = 5669; // 10 cm
73 // ----------------------------------------------------------------------------
74 SwLabItem::SwLabItem(const SwLabItem& rItem) :
75 SfxPoolItem(FN_LABEL)
77 *this = rItem;
79 // ----------------------------------------------------------------------------
80 SwLabItem& SwLabItem::operator =(const SwLabItem& rItem)
82 bAddr = rItem.bAddr;
83 aWriting = rItem.aWriting;
84 bCont = rItem.bCont;
85 sDBName = rItem.sDBName;
86 aLstMake = rItem.aLstMake;
87 aLstType = rItem.aLstType;
88 aMake = rItem.aMake;
89 aType = rItem.aType;
90 bPage = rItem.bPage;
91 bSynchron = rItem.bSynchron;
92 aBin = rItem.aBin;
93 nCol = rItem.nCol;
94 nRow = rItem.nRow;
95 lHDist = rItem.lHDist;
96 lVDist = rItem.lVDist;
97 lWidth = rItem.lWidth;
98 lHeight = rItem.lHeight;
99 lLeft = rItem.lLeft;
100 lUpper = rItem.lUpper;
101 nCols = rItem.nCols;
102 nRows = rItem.nRows;
103 aPrivFirstName = rItem.aPrivFirstName;
104 aPrivName = rItem.aPrivName;
105 aPrivShortCut = rItem.aPrivShortCut;
106 aPrivFirstName2 = rItem.aPrivFirstName2;
107 aPrivName2 = rItem.aPrivName2;
108 aPrivShortCut2 = rItem.aPrivShortCut2;
109 aPrivStreet = rItem.aPrivStreet;
110 aPrivZip = rItem.aPrivZip;
111 aPrivCity = rItem.aPrivCity;
112 aPrivCountry = rItem.aPrivCountry;
113 aPrivState = rItem.aPrivState;
114 aPrivTitle = rItem.aPrivTitle;
115 aPrivProfession = rItem.aPrivProfession;
116 aPrivPhone = rItem.aPrivPhone;
117 aPrivMobile = rItem.aPrivMobile;
118 aPrivFax = rItem.aPrivFax;
119 aPrivWWW = rItem.aPrivWWW;
120 aPrivMail = rItem.aPrivMail;
121 aCompCompany = rItem.aCompCompany;
122 aCompCompanyExt = rItem.aCompCompanyExt;
123 aCompSlogan = rItem.aCompSlogan;
124 aCompStreet = rItem.aCompStreet;
125 aCompZip = rItem.aCompZip;
126 aCompCity = rItem.aCompCity;
127 aCompCountry = rItem.aCompCountry;
128 aCompState = rItem.aCompState;
129 aCompPosition = rItem.aCompPosition;
130 aCompPhone = rItem.aCompPhone;
131 aCompMobile = rItem.aCompMobile;
132 aCompFax = rItem.aCompFax;
133 aCompWWW = rItem.aCompWWW;
134 aCompMail = rItem.aCompMail;
135 sGlossaryGroup = rItem.sGlossaryGroup;
136 sGlossaryBlockName = rItem.sGlossaryBlockName;
137 return *this;
140 // --------------------------------------------------------------------------
144 int SwLabItem::operator ==(const SfxPoolItem& rItem) const
146 const SwLabItem& rLab = (const SwLabItem&) rItem;
148 return bAddr == rLab.bAddr &&
149 bCont == rLab.bCont &&
150 bPage == rLab.bPage &&
151 bSynchron == rLab.bSynchron &&
152 aBin == rLab.aBin &&
153 nCol == rLab.nCol &&
154 nRow == rLab.nRow &&
155 lHDist == rLab.lHDist &&
156 lVDist == rLab.lVDist &&
157 lWidth == rLab.lWidth &&
158 lHeight == rLab.lHeight &&
159 lLeft == rLab.lLeft &&
160 lUpper == rLab.lUpper &&
161 nCols == rLab.nCols &&
162 nRows == rLab.nRows &&
163 aWriting == rLab.aWriting&&
164 aMake == rLab.aMake &&
165 aType == rLab.aType &&
166 aLstMake == rLab.aLstMake&&
167 aLstType == rLab.aLstType&&
168 sDBName == rLab.sDBName &&
169 aPrivFirstName == rLab.aPrivFirstName&&
170 aPrivName == rLab.aPrivName&&
171 aPrivShortCut == rLab.aPrivShortCut&&
172 aPrivFirstName2 == rLab.aPrivFirstName2&&
173 aPrivName2 == rLab.aPrivName2&&
174 aPrivShortCut2 == rLab.aPrivShortCut2&&
175 aPrivStreet == rLab.aPrivStreet&&
176 aPrivZip == rLab.aPrivZip&&
177 aPrivCity == rLab.aPrivCity&&
178 aPrivCountry == rLab.aPrivCountry&&
179 aPrivState == rLab.aPrivState&&
180 aPrivTitle == rLab.aPrivTitle&&
181 aPrivProfession == rLab.aPrivProfession&&
182 aPrivPhone == rLab.aPrivPhone&&
183 aPrivMobile == rLab.aPrivMobile&&
184 aPrivFax == rLab.aPrivFax&&
185 aPrivWWW == rLab.aPrivWWW&&
186 aPrivMail == rLab.aPrivMail&&
187 aCompCompany == rLab.aCompCompany&&
188 aCompCompanyExt == rLab.aCompCompanyExt&&
189 aCompSlogan == rLab.aCompSlogan&&
190 aCompStreet == rLab.aCompStreet&&
191 aCompZip == rLab.aCompZip&&
192 aCompCity == rLab.aCompCity&&
193 aCompCountry == rLab.aCompCountry&&
194 aCompState == rLab.aCompState&&
195 aCompPosition == rLab.aCompPosition&&
196 aCompPhone == rLab.aCompPhone&&
197 aCompMobile == rLab.aCompMobile&&
198 aCompFax == rLab.aCompFax&&
199 aCompWWW == rLab.aCompWWW&&
200 aCompMail == rLab.aCompMail &&
201 sGlossaryGroup == rLab.sGlossaryGroup &&
202 sGlossaryBlockName == rLab.sGlossaryBlockName;
205 // --------------------------------------------------------------------------
206 SfxPoolItem* SwLabItem::Clone(SfxItemPool*) const
208 return new SwLabItem(*this);
211 /* -----------------------------25.09.00 16:25--------------------------------
213 ---------------------------------------------------------------------------*/
214 Sequence<rtl::OUString> SwLabCfgItem::GetPropertyNames()
216 static const char* aLabelPropNames[] =
218 "Medium/Continous", // 0
219 "Medium/Brand", // 1
220 "Medium/Type", // 2
221 "Format/Column", // 3
222 "Format/Row", // 4
223 "Format/HorizontalDistance",// 5
224 "Format/VerticalDistance", // 6
225 "Format/Width", // 7
226 "Format/Height", // 8
227 "Format/LeftMargin", // 9
228 "Format/TopMargin", //10
229 "Option/Synchronize", //11
230 "Option/Page", //12
231 "Option/Column", //13
232 "Option/Row", //14
233 "Inscription/UseAddress", //15
234 "Inscription/Address", //16
235 "Inscription/Database" //17
237 static const char* aBusinessPropNames[] =
239 "PrivateAddress/FirstName", // 0
240 "PrivateAddress/Name", // 1
241 "PrivateAddress/ShortCut", // 2
242 "PrivateAddress/SecondFirstName", // 3
243 "PrivateAddress/SecondName", // 4
244 "PrivateAddress/SecondShortCut", // 5
245 "PrivateAddress/Street", // 6
246 "PrivateAddress/Zip", // 7
247 "PrivateAddress/City", // 8
248 "PrivateAddress/Country", // 9
249 "PrivateAddress/State", // 10
250 "PrivateAddress/Title", // 11
251 "PrivateAddress/Profession", // 12
252 "PrivateAddress/Phone", // 13
253 "PrivateAddress/Mobile", // 14
254 "PrivateAddress/Fax", // 15
255 "PrivateAddress/WebAddress", // 16
256 "PrivateAddress/Email", // 17
257 "BusinessAddress/Company", // 18
258 "BusinessAddress/CompanyExt", // 19
259 "BusinessAddress/Slogan", // 20
260 "BusinessAddress/Street", // 21
261 "BusinessAddress/Zip", // 22
262 "BusinessAddress/City", // 23
263 "BusinessAddress/Country", // 24
264 "BusinessAddress/State", // 25
265 "BusinessAddress/Position", // 26
266 "BusinessAddress/Phone", // 27
267 "BusinessAddress/Mobile", // 28
268 "BusinessAddress/Fax", // 29
269 "BusinessAddress/WebAddress", // 30
270 "BusinessAddress/Email", // 31
271 "AutoText/Group", // 32
272 "AutoText/Block" // 33
274 const int nBusinessCount = bIsLabel ? 0 : 34;
275 const int nLabelCount = bIsLabel ? 18 : 15;
276 Sequence<OUString> aNames(nBusinessCount + nLabelCount);
277 OUString* pNames = aNames.getArray();
278 int nIndex = 0;
279 for(int nLabel = 0; nLabel < nLabelCount; nLabel++)
280 pNames[nIndex++] = OUString::createFromAscii(aLabelPropNames[nLabel]);
281 for(int nBusiness = 0; nBusiness < nBusinessCount; nBusiness++)
282 pNames[nIndex++] = OUString::createFromAscii(aBusinessPropNames[nBusiness]);
283 return aNames;
285 /* ----------------------------------------------------------------------------
287 ---------------------------------------------------------------------------*/
288 SwLabCfgItem::SwLabCfgItem(sal_Bool bLabel) :
289 ConfigItem(bLabel ? C2U("Office.Writer/Label") : C2U("Office.Writer/BusinessCard")),
290 bIsLabel(bLabel)
292 Sequence<OUString> aNames = GetPropertyNames();
293 Sequence<Any> aValues = GetProperties(aNames);
294 EnableNotification(aNames);
295 const Any* pValues = aValues.getConstArray();
296 DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
297 sal_Bool bNoConfigValues = sal_True;
298 if(aValues.getLength() == aNames.getLength())
300 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
303 if(pValues[nProp].hasValue())
305 //to have a contiuous switch an offset is added
306 if(nProp == 15 && !bIsLabel)
307 nProperty += 3;
308 if(nProperty >= 18)
309 bNoConfigValues = sal_False;
310 switch(nProperty)
312 case 0: aItem.bCont = *(sal_Bool*)pValues[nProp].getValue(); break;// "Medium/Continous",
313 case 1: pValues[nProp] >>= aItem.aMake; break;// "Medium/Brand",
314 case 2: pValues[nProp] >>= aItem.aType; break;// "Medium/Type",
315 case 3: pValues[nProp] >>= aItem.nCols; break;// "Format/Column",
316 case 4: pValues[nProp] >>= aItem.nRows; break;// "Format/Row",
317 case 5:
318 pValues[nProp] >>= aItem.lHDist;
319 aItem.lHDist = MM100_TO_TWIP(aItem.lHDist);
320 break;// "Format/HorizontalDistance",
321 case 6:
322 pValues[nProp] >>= aItem.lVDist;
323 aItem.lVDist = MM100_TO_TWIP(aItem.lVDist);
324 break;// "Format/VerticalDistance",
325 case 7:
326 pValues[nProp] >>= aItem.lWidth;
327 aItem.lWidth = MM100_TO_TWIP(aItem.lWidth);
328 break;// "Format/Width",
329 case 8:
330 pValues[nProp] >>= aItem.lHeight;
331 aItem.lHeight = MM100_TO_TWIP(aItem.lHeight);
332 break;// "Format/Height",
333 case 9:
334 pValues[nProp] >>= aItem.lLeft;
335 aItem.lLeft = MM100_TO_TWIP(aItem.lLeft);
336 break;// "Format/LeftMargin",
337 case 10:
338 pValues[nProp] >>= aItem.lUpper;
339 aItem.lUpper = MM100_TO_TWIP(aItem.lUpper);
340 break;// "Format/TopMargin",
341 case 11: aItem.bSynchron = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Synchronize",
342 case 12: aItem.bPage = *(sal_Bool*)pValues[nProp].getValue(); break;// "Option/Page",
343 case 13: pValues[nProp] >>= aItem.nCol; break;// "Option/Column",
344 case 14: pValues[nProp] >>= aItem.nRow; break;// "Option/Row"
345 case 15: aItem.bAddr = *(sal_Bool*)pValues[nProp].getValue(); break;// "Inscription/UseAddress",
346 case 16: pValues[nProp] >>= aItem.aWriting; break;// "Inscription/Address",
347 case 17: pValues[nProp] >>= aItem.sDBName; break;// "Inscription/Database"
348 case 18: pValues[nProp] >>= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName",
349 case 19: pValues[nProp] >>= aItem.aPrivName; break;// "PrivateAddress/Name",
350 case 20: pValues[nProp] >>= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut",
351 case 21: pValues[nProp] >>= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
352 case 22: pValues[nProp] >>= aItem.aPrivName2; break;// "PrivateAddress/SecondName",
353 case 23: pValues[nProp] >>= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
354 case 24: pValues[nProp] >>= aItem.aPrivStreet; break;// "PrivateAddress/Street",
355 case 25: pValues[nProp] >>= aItem.aPrivZip; break;// "PrivateAddress/Zip",
356 case 26: pValues[nProp] >>= aItem.aPrivCity; break;// "PrivateAddress/City",
357 case 27: pValues[nProp] >>= aItem.aPrivCountry; break;// "PrivateAddress/Country",
358 case 28: pValues[nProp] >>= aItem.aPrivState; break;// "PrivateAddress/State",
359 case 29: pValues[nProp] >>= aItem.aPrivTitle; break;// "PrivateAddress/Title",
360 case 30: pValues[nProp] >>= aItem.aPrivProfession; break;// "PrivateAddress/Profession",
361 case 31: pValues[nProp] >>= aItem.aPrivPhone; break;// "PrivateAddress/Phone",
362 case 32: pValues[nProp] >>= aItem.aPrivMobile; break;// "PrivateAddress/Mobile",
363 case 33: pValues[nProp] >>= aItem.aPrivFax; break;// "PrivateAddress/Fax",
364 case 34: pValues[nProp] >>= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress",
365 case 35: pValues[nProp] >>= aItem.aPrivMail; break;// "PrivateAddress/Email",
366 case 36: pValues[nProp] >>= aItem.aCompCompany; break;// "BusinessAddress/Company",
367 case 37: pValues[nProp] >>= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
368 case 38: pValues[nProp] >>= aItem.aCompSlogan; break;// "BusinessAddress/Slogan",
369 case 39: pValues[nProp] >>= aItem.aCompStreet; break;// "BusinessAddress/Street",
370 case 40: pValues[nProp] >>= aItem.aCompZip; break;// "BusinessAddress/Zip",
371 case 41: pValues[nProp] >>= aItem.aCompCity; break;// "BusinessAddress/City",
372 case 42: pValues[nProp] >>= aItem.aCompCountry; break;// "BusinessAddress/Country",
373 case 43: pValues[nProp] >>= aItem.aCompState; break;// "BusinessAddress/State",
374 case 44: pValues[nProp] >>= aItem.aCompPosition; break;// "BusinessAddress/Position",
375 case 45: pValues[nProp] >>= aItem.aCompPhone; break;// "BusinessAddress/Phone",
376 case 46: pValues[nProp] >>= aItem.aCompMobile; break;// "BusinessAddress/Mobile",
377 case 47: pValues[nProp] >>= aItem.aCompFax; break;// "BusinessAddress/Fax",
378 case 48: pValues[nProp] >>= aItem.aCompWWW; break;// "BusinessAddress/WebAddress",
379 case 49: pValues[nProp] >>= aItem.aCompMail; break;// "BusinessAddress/Email",
380 case 50: pValues[nProp] >>= aItem.sGlossaryGroup; break;// "AutoText/Group"
381 case 51: pValues[nProp] >>= aItem.sGlossaryBlockName; break;// "AutoText/Block"
386 if(!bIsLabel && bNoConfigValues)
389 SvtUserOptions& rUserOpt = SW_MOD()->GetUserOptions();
390 aItem.aPrivFirstName = rUserOpt.GetFirstName();
391 aItem.aPrivName = rUserOpt.GetLastName();
392 aItem.aPrivShortCut = rUserOpt.GetID();
393 aItem.aCompCompany = rUserOpt.GetCompany();
394 aItem.aCompStreet = aItem.aPrivStreet = rUserOpt.GetStreet();
396 aItem.aCompCountry = aItem.aPrivCountry = rUserOpt.GetCountry();
397 aItem.aCompZip = aItem.aPrivZip= rUserOpt.GetZip();
398 aItem.aCompCity = aItem.aPrivCity = rUserOpt.GetCity();
399 aItem.aPrivTitle = rUserOpt.GetTitle();
400 aItem.aCompPosition = rUserOpt.GetPosition();
401 aItem.aPrivPhone = rUserOpt.GetTelephoneHome();
402 aItem.aCompPhone = rUserOpt.GetTelephoneWork();
403 aItem.aCompFax = aItem.aPrivFax = rUserOpt.GetFax();
404 aItem.aCompMail = aItem.aPrivMail = rUserOpt.GetEmail();
405 aItem.aCompState = aItem.aPrivState = rUserOpt.GetState();
406 aItem.bSynchron = TRUE;
407 SetModified();
410 /* -----------------------------25.09.00 16:26--------------------------------
412 ---------------------------------------------------------------------------*/
413 void SwLabCfgItem::Commit()
415 Sequence<OUString> aNames = GetPropertyNames();
416 Sequence<Any> aValues(aNames.getLength());
417 Any* pValues = aValues.getArray();
419 const Type& rType = ::getBooleanCppuType();
420 for(int nProp = 0, nProperty = 0; nProp < aNames.getLength(); nProp++, nProperty++)
422 //to have a contiuous switch an offset is added
423 if(nProp == 15 && !bIsLabel)
424 nProperty += 3;
425 switch(nProperty)
427 case 0: pValues[nProp].setValue(&aItem.bCont, rType); break;// "Medium/Continous",
428 case 1: pValues[nProp] <<= aItem.aMake; break;// "Medium/Brand",
429 case 2: pValues[nProp] <<= aItem.aType; break;// "Medium/Type",
430 case 3: pValues[nProp] <<= aItem.nCols; break;// "Format/Column",
431 case 4: pValues[nProp] <<= aItem.nRows; break;// "Format/Row",
432 case 5: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHDist));break;// "Format/HorizontalDistance",
433 case 6: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lVDist));break;// "Format/VerticalDistance",
434 case 7: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lWidth)); break;// "Format/Width",
435 case 8: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lHeight)); break;// "Format/Height",
436 case 9: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lLeft)); break;// "Format/LeftMargin",
437 case 10: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(aItem.lUpper)); break;// "Format/TopMargin",
438 case 11: pValues[nProp].setValue(&aItem.bSynchron, rType); break;// "Option/Synchronize",
439 case 12: pValues[nProp].setValue(&aItem.bPage, rType); break;// "Option/Page",
440 case 13: pValues[nProp] <<= aItem.nCol; break;// "Option/Column",
441 case 14: pValues[nProp] <<= aItem.nRow; break;// "Option/Row"
442 case 15: pValues[nProp].setValue(&aItem.bAddr, rType); break;// "Inscription/UseAddress",
443 case 16: pValues[nProp] <<= aItem.aWriting; break;// "Inscription/Address",
444 case 17: pValues[nProp] <<= aItem.sDBName; break;// "Inscription/Database"
445 case 18: pValues[nProp] <<= aItem.aPrivFirstName; break;// "PrivateAddress/FirstName",
446 case 19: pValues[nProp] <<= aItem.aPrivName; break;// "PrivateAddress/Name",
447 case 20: pValues[nProp] <<= aItem.aPrivShortCut; break;// "PrivateAddress/ShortCut",
448 case 21: pValues[nProp] <<= aItem.aPrivFirstName2; break;// "PrivateAddress/SecondFirstName",
449 case 22: pValues[nProp] <<= aItem.aPrivName2; break;// "PrivateAddress/SecondName",
450 case 23: pValues[nProp] <<= aItem.aPrivShortCut2; break;// "PrivateAddress/SecondShortCut",
451 case 24: pValues[nProp] <<= aItem.aPrivStreet; break;// "PrivateAddress/Street",
452 case 25: pValues[nProp] <<= aItem.aPrivZip; break;// "PrivateAddress/Zip",
453 case 26: pValues[nProp] <<= aItem.aPrivCity; break;// "PrivateAddress/City",
454 case 27: pValues[nProp] <<= aItem.aPrivCountry; break;// "PrivateAddress/Country",
455 case 28: pValues[nProp] <<= aItem.aPrivState; break;// "PrivateAddress/State",
456 case 29: pValues[nProp] <<= aItem.aPrivTitle; break;// "PrivateAddress/Title",
457 case 30: pValues[nProp] <<= aItem.aPrivProfession; break;// "PrivateAddress/Profession",
458 case 31: pValues[nProp] <<= aItem.aPrivPhone; break;// "PrivateAddress/Phone",
459 case 32: pValues[nProp] <<= aItem.aPrivMobile; break;// "PrivateAddress/Mobile",
460 case 33: pValues[nProp] <<= aItem.aPrivFax; break;// "PrivateAddress/Fax",
461 case 34: pValues[nProp] <<= aItem.aPrivWWW; break;// "PrivateAddress/WebAddress",
462 case 35: pValues[nProp] <<= aItem.aPrivMail; break;// "PrivateAddress/Email",
463 case 36: pValues[nProp] <<= aItem.aCompCompany; break;// "BusinessAddress/Company",
464 case 37: pValues[nProp] <<= aItem.aCompCompanyExt; break;// "BusinessAddress/CompanyExt",
465 case 38: pValues[nProp] <<= aItem.aCompSlogan; break;// "BusinessAddress/Slogan",
466 case 39: pValues[nProp] <<= aItem.aCompStreet; break;// "BusinessAddress/Street",
467 case 40: pValues[nProp] <<= aItem.aCompZip; break;// "BusinessAddress/Zip",
468 case 41: pValues[nProp] <<= aItem.aCompCity; break;// "BusinessAddress/City",
469 case 42: pValues[nProp] <<= aItem.aCompCountry; break;// "BusinessAddress/Country",
470 case 43: pValues[nProp] <<= aItem.aCompState; break;// "BusinessAddress/State",
471 case 44: pValues[nProp] <<= aItem.aCompPosition; break;// "BusinessAddress/Position",
472 case 45: pValues[nProp] <<= aItem.aCompPhone; break;// "BusinessAddress/Phone",
473 case 46: pValues[nProp] <<= aItem.aCompMobile; break;// "BusinessAddress/Mobile",
474 case 47: pValues[nProp] <<= aItem.aCompFax; break;// "BusinessAddress/Fax",
475 case 48: pValues[nProp] <<= aItem.aCompWWW; break;// "BusinessAddress/WebAddress",
476 case 49: pValues[nProp] <<= aItem.aCompMail; break;// "BusinessAddress/Email",
477 case 50: pValues[nProp] <<= aItem.sGlossaryGroup; break;// "AutoText/Group"
478 case 51: pValues[nProp] <<= aItem.sGlossaryBlockName; break;// "AutoText/Block"
481 PutProperties(aNames, aValues);