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 // ----------------------------------------------------------------------------
SwLabItem()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 // ----------------------------------------------------------------------------
SwLabItem(const SwLabItem & rItem)69 SwLabItem::SwLabItem(const SwLabItem& rItem) :
70 SfxPoolItem(FN_LABEL)
71 {
72 *this = rItem;
73 }
74 // ----------------------------------------------------------------------------
operator =(const SwLabItem & rItem)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
operator ==(const SfxPoolItem & rItem) const141 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 // --------------------------------------------------------------------------
Clone(SfxItemPool *) const205 SfxPoolItem* SwLabItem::Clone(SfxItemPool*) const
206 {
207 return new SwLabItem(*this);
208 }
209
210 /* -----------------------------25.09.00 16:25--------------------------------
211
212 ---------------------------------------------------------------------------*/
GetPropertyNames()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 ---------------------------------------------------------------------------*/
SwLabCfgItem(sal_Bool bLabel)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 contiuous 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 ---------------------------------------------------------------------------*/
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)422 void SwLabCfgItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
423
Commit()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 contiuous 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
497