xref: /trunk/main/scp2/inc/macros.inc (revision 707d5dc6)
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#ifndef MACROS_INC
23#define MACROS_INC
24/* =====================================================
25 * global helper macros
26 * =====================================================*/
27
28#define DOSTRING( x )                           #x
29#define STRING( x )                             DOSTRING( x )
30#define DOCONCAT2( x, y )                       x##y
31#define CONCAT2( x, y)                          DOCONCAT2(x,y)
32#define DOCONCAT3( x, y, z )                    x##y##z
33#define CONCAT3( x, y, z )                      DOCONCAT3(x,y,z)
34#define DOCONCAT4( x, y, z, a )                 x##y##z##a
35#define CONCAT4( x, y, z, a )                   DOCONCAT4(x,y,z,a)
36#define DOCONCAT5( x, y, z, a, b )              x##y##z##a##b
37#define CONCAT5( x, y, z, a, b )                DOCONCAT5(x,y,z,a,b)
38#define DOCONCAT6( x, y, z, a, b, c )           x##y##z##a##b##c
39#define CONCAT6( x, y, z, a, b, c )             DOCONCAT6(x,y,z,a,b,c)
40#define DOCONCAT7( x, y, z, a, b, c, u)         x##y##z##a##b##c##u
41#define CONCAT7( x, y, z, a, b, c, u)           DOCONCAT7(x,y,z,a,b,c,u)
42#define DOCONCAT8( x, y, z, a, b, c, u, v)      x##y##z##a##b##c##u##v
43#define CONCAT8( x, y, z, a, b, c, u, v)        DOCONCAT8(x,y,z,a,b,c,u,v)
44#define DOCONCAT9( x, y, z, a, b, c, u, v, w)   x##y##z##a##b##c##u##v##w
45#define CONCAT9( x, y, z, a, b, c, u, v, w)     DOCONCAT9(x,y,z,a,b,c,u,v,w)
46
47#define MOD_NAME_DESC(id) \
48        ALL_LANG(Name,STR_NAME_##id); \
49        ALL_LANG(Description,STR_DESC_##id)
50
51#define MOD_NAME_DESC_ON_DESELECT(id) \
52        MOD_NAME_DESC(id); \
53        ALL_LANG(OnDeselect,STR_DESELECT_##id)
54
55#define REG_VALUE_LNG(id) \
56        ALL_LANG(Value,STR_REG_VAL_##id);
57
58#define FOLDERITEM_NAME_LNG(id) \
59        ALL_LANG(Name,STR_FI_NAME_##id);
60
61#define ALL_LANG_STR_KEY(ident) \
62        ALL_LANG(Key,ident)
63
64#define ALL_LANG_STR_KEY_LNG(ident) \
65        ALL_LANG(Key,STR_KEY_##ident)
66
67#define ALL_LANG_STR_VALUE_LNG(ident) \
68        ALL_LANG(Value,STR_VALUE_##ident)
69
70#define ALL_LANG_VALUE(vident) \
71        ALL_LANG(Value,vident)
72
73#define ALL_LANG_KEY(vident) \
74        ALL_LANG(Key,vident)
75
76
77#ifdef UNX
78    #ifdef MACOSX
79        #define UNXSUFFIX .dylib
80    #else
81        #define UNXSUFFIX .so
82    #endif
83#endif
84
85#ifdef UNX
86    #define LIBNAME(name)                     STRING(CONCAT4(lib,name,DLLPOSTFIX,UNXSUFFIX))
87    #define FILTER_LIBNAME(name)              LIBNAME(name)
88    #define EXENAME(name)                     STRING(name)
89    #define PROFILENAME(name)                 STRING(CONCAT2(name,rc))
90    #define SPECIAL_NAME(name)                STRING(CONCAT3(lib,name,UNXSUFFIX))
91    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,UNXSUFFIX))
92#else
93    #define LIBNAME(name)                     STRING(CONCAT3(name,DLLPOSTFIX,.dll))
94    #define FILTER_LIBNAME(name)              LIBNAME(name)
95    #define EXENAME(name)                     STRING(CONCAT2(name,.exe))
96    #define PROFILENAME(name)                 STRING(CONCAT2(name,.ini))
97    #define SPECIAL_NAME(name)                STRING(CONCAT2(name,.dll))
98    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,.dll))
99#endif
100
101#define RESFILENAME(name,lang)                STRING(CONCAT3(name,lang,.res))
102#define SHORTRESFILENAME(name,lang)           STRING(CONCAT3(name,lang,.res))
103#define READMETXTFILENAME(name,lang,ext)      STRING(CONCAT4(name,lang,.,ext))
104#define READMEFILENAME(name,lang)             STRING(CONCAT2(name,lang))
105#define HELPFILENAME(name,endung)             STRING(CONCAT3(name,.,endung))
106#define EXTRAFILENAME(name,lang)              STRING(CONCAT3(name,lang,.zip))
107#define CONFIGLANGFILENAME(name,lang,ext)     STRING(CONCAT4(name,lang,.,ext))
108
109#if defined WNT
110#define SCP2_OOO_BIN_DIR gid_Brand_Dir_Program
111#else
112#define SCP2_OOO_BIN_DIR gid_Dir_Program
113#endif
114
115#define BIN_FILE_BODY \
116        UnixRights   = 555
117
118#define TXT_FILE_BODY \
119        UnixRights   = 444
120
121#define USER_FILE_BODY \
122        UnixRights   = 644
123
124#define PACKED_TXT_FILE_BODY \
125        TXT_FILE_BODY; \
126        Styles = (PACKED)
127
128#define PACKED_TXT_FILE_BODY_PATCH \
129        TXT_FILE_BODY; \
130        Styles = (PACKED,PATCH)
131
132#define ARCHIVE_TXT_FILE_BODY \
133        TXT_FILE_BODY; \
134        Styles = (ARCHIVE)
135
136#define ARCHIVE_TXT_FILE_BODY_PATCH \
137        TXT_FILE_BODY; \
138        Styles = (ARCHIVE,PATCH)
139
140#define ARCHIVE_SUBST_FILE_BODY \
141        TXT_FILE_BODY; \
142        Styles = (ARCHIVE,SUBSTITUTE)
143
144#define ARCHIVE_SUBST_FILE_BODY_PATCH \
145        TXT_FILE_BODY; \
146        Styles = (ARCHIVE,SUBSTITUTE,PATCH)
147
148#define PACKED_LIB_FILE_BODY \
149        TXT_FILE_BODY; \
150        Styles = (PACKED); \
151        Dir    = SCP2_OOO_BIN_DIR
152
153#define PACKED_LIB_FILE_BODY_PATCH \
154        TXT_FILE_BODY; \
155        Styles = (PACKED,PATCH); \
156        Dir    = SCP2_OOO_BIN_DIR
157
158#define PACKED_FILTER_FILE_BODY \
159        TXT_FILE_BODY; \
160        Styles = (PACKED); \
161        Dir    = gid_Dir_Filter
162
163#define PACKED_FILTER_FILE_BODY_PATCH \
164        TXT_FILE_BODY; \
165        Styles = (PACKED,PATCH); \
166        Dir    = gid_Dir_Filter
167
168#define STD_LIB_FILE(id,name) \
169    File id \
170        Name   = LIBNAME(name); \
171        PACKED_LIB_FILE_BODY; \
172    End
173
174#define STD_LIB_FILE_PATCH(id,name) \
175    File id \
176        Name   = LIBNAME(name); \
177        PACKED_LIB_FILE_BODY_PATCH; \
178    End
179
180#define SPECIAL_LIB_FILE(id,name) \
181    File id \
182        Name    = SPECIAL_NAME(name); \
183        PACKED_LIB_FILE_BODY; \
184    End
185
186#define SPECIAL_LIB_FILE_PATCH(id,name) \
187    File id \
188        Name    = SPECIAL_NAME(name); \
189        PACKED_LIB_FILE_BODY_PATCH; \
190    End
191
192#define STD_RES_FILE(id,name) \
193    File id \
194        TXT_FILE_BODY; \
195        RESFILE_ALL_LANG(name); \
196        Dir     = gid_Dir_Resource; \
197        Styles  = (PACKED); \
198    End
199
200#define BRAND_RES_FILE(id,name) \
201    File id \
202        TXT_FILE_BODY; \
203        RESFILE_ALL_LANG(name); \
204        Dir     = gid_Brand_Dir_Resource; \
205        Styles  = (PACKED); \
206    End
207
208#define STD_RES_FILE_PATCH(id,name) \
209    File id \
210        TXT_FILE_BODY; \
211        RESFILE_ALL_LANG(name); \
212        Dir     = gid_Dir_Resource; \
213        Styles  = (PACKED,PATCH); \
214    End
215
216#define STD_RES_FILE_ONLY_PATCH(id,name) \
217    File id \
218        TXT_FILE_BODY; \
219        RESFILE_ALL_LANG(name); \
220        Dir     = gid_Dir_Resource; \
221        Styles  = (PACKED,PATCH,PATCH_ONLY); \
222    End
223
224#define STD_FILTER_FILE(id,name) \
225    File id \
226        PACKED_LIB_FILE_BODY; \
227        Name = FILTER_LIBNAME(name); \
228    End
229
230#define STD_FILTER_FILE_PATCH(id,name) \
231    File id \
232        PACKED_LIB_FILE_BODY_PATCH; \
233        Name = FILTER_LIBNAME(name); \
234    End
235
236#define STD_FONTUNX_FILE(id,name,fontname) \
237    File id \
238        TXT_FILE_BODY; \
239        Dir       = gid_Dir_Fonts_Truetype; \
240        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
241        Name      = STRING(name) ; \
242    End
243
244#define STD_FONTWIN_FILE(id,name,fontname) \
245    File id \
246        TXT_FILE_BODY; \
247        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
248        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
249        Name     = STRING(name) ; \
250        FontName = STRING(fontname) ; \
251        NetDir   = gid_Dir_Winfonts; \
252    End
253
254#ifdef UNX
255#define STD_FONT_FILE(id,name,fontname) \
256    File id \
257        TXT_FILE_BODY; \
258        Dir       = gid_Dir_Fonts_Truetype; \
259        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
260        Name      = STRING(name) ; \
261    End
262#endif
263
264#ifdef UNX
265#define STD_FONT_FILE_DUO(id,name,unxfontname,winfontname) \
266    File id \
267        TXT_FILE_BODY; \
268        Dir       = gid_Dir_Fonts_Truetype; \
269        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
270        Name      = STRING(name) ; \
271    End
272#endif
273
274#ifdef WNT
275#define STD_FONT_FILE(id,name,fontname) \
276    File id \
277        TXT_FILE_BODY; \
278        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
279        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
280        Name     = STRING(name) ; \
281        FontName = STRING(fontname) ; \
282        NetDir   = gid_Dir_Winfonts; \
283    End
284#endif
285
286#ifdef WNT
287#define STD_FONT_FILE_DUO(id,name,unxfontname,winfontname) \
288    File id \
289        TXT_FILE_BODY; \
290        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
291        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
292        Name     = STRING(name) ; \
293        FontName = STRING(winfontname) ; \
294        NetDir   = gid_Dir_Winfonts; \
295    End
296#endif
297
298#define STD_JAR_FILE(id,name) \
299    File id \
300        TXT_FILE_BODY; \
301        Name     = STRING(CONCAT2(name,.jar)); \
302        Dir      = gid_Dir_Classes; \
303        Styles   = (PACKED,DONT_OVERWRITE); \
304    End
305
306#define STD_JAR_FILE_PATCH(id,name) \
307    File id \
308        TXT_FILE_BODY; \
309        Name     = STRING(CONCAT2(name,.jar)); \
310        Dir      = gid_Dir_Classes; \
311        Styles   = (PACKED,DONT_OVERWRITE,PATCH); \
312    End
313
314#define JARFILENAME(name) STRING(CONCAT2(name,.jar))
315
316#define PACKED_SHELLNEW_FILE_BODY \
317        TXT_FILE_BODY; \
318        Styles = (PACKED,WORKSTATION, OVERWRITE); \
319        Dir    = PREDEFINED_OSSHELLNEWDIR; \
320        NetDir = gid_Dir_Shellnew
321
322#define STD_SHELLNEW_FILE(id,name) \
323    File id \
324        PACKED_SHELLNEW_FILE_BODY; \
325        Name      = STRING(name) ; \
326    End
327
328#define SPECIAL_COMPONENT_LIB_FILE(id,name) \
329    File id \
330        Name     = SPECIAL_COMPONENT_LIB_NAME(name); \
331        PACKED_LIB_FILE_BODY; \
332    End
333
334#define SPECIAL_COMPONENT_LIB_FILE_PATCH(id,name) \
335    File id \
336        Name     = SPECIAL_COMPONENT_LIB_NAME(name); \
337        PACKED_LIB_FILE_BODY_PATCH; \
338    End
339
340#define WINW4WFILTERFILENAME(name) STRING(CONCAT2(name,f32w.dll))
341
342#define STD_WIN_W4WFILTER_FILE(id,name) \
343    File id \
344        PACKED_FILTER_FILE_BODY; \
345        Name            = WINW4WFILTERFILENAME(name);  \
346    End
347
348#define SOLSW4WFILTERFILENAME(name) STRING(CONCAT2(w4w, name))
349
350#define STD_SOLS_W4WFILTER_FILE(id,name) \
351    File id \
352        BIN_FILE_BODY; \
353        Styles = (PACKED); \
354        Dir = gid_Dir_Filter; \
355        Name = SOLSW4WFILTERFILENAME(name); \
356    End
357
358#define SPECIAL_NO_WARNING_IF_NOT_EXISTS_FILE(id,name) \
359    File id \
360        TXT_FILE_BODY; \
361        Name = LIBNAME(name); \
362        Dir = SCP2_OOO_BIN_DIR; \
363        Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \
364    End
365
366// ---------------------------------------
367#define CONDITIONAL_MODULE_ENTRY(name,modid) \
368    Module gid_Module_Root_Reg_##name \
369	ParentID = modid; \
370	Name = STRING(CONCAT2(gid_Module_Root_,name)); \
371	Description = STRING(CONCAT2(gid_Module_Root_,name)); \
372	Default = YES; \
373	Styles = (HIDDEN_ROOT); \
374End
375
376#define REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
377    RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \
378        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
379        ModuleID = modid; \
380        Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \
381        Name = STRING(CONCAT2(OpenOffice.org.,name)); \
382        Value = " "; \
383    End
384
385#define REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
386    RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \
387        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
388        ModuleID = modid; \
389        Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \
390        Name = STRING(CONCAT2(OpenOffice.org.,name)); \
391        Value = " "; \
392    End
393
394#define CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
395    RegistryItem gid_Regitem__##name \
396        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
397        ModuleID = gid_Module_Root_Reg_##name; \
398        Subkey = STRING(CONCAT2(.,key)); \
399        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
400        ComponentCondition = STRING(CONCAT3(REGISTER_,cond,=1)); \
401    End
402
403#define REGISTRY_ENTRY_DOC(name,modid,disp_name) \
404    RegistryItem CONCAT2(gid_Regitem_Openoffice_,name) \
405        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
406        ModuleID = modid; \
407        Subkey = STRING(CONCAT2(OpenOffice.org.,name)); \
408        REG_VALUE_LNG(disp_name) \
409    End
410
411#define REGISTRY_ENTRY_ICON(name,modid,icon_id) \
412    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Defaulticon) \
413        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
414        ModuleID = modid; \
415        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\DefaultIcon)); \
416        Value = "<progpath>\program\soffice.exe," STRING(icon_id); \
417    End
418
419#define REGISTRY_ENTRY_SHELL(name,default,modid) \
420    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell) \
421        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
422        ModuleID = modid; \
423        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell)); \
424        Value = STRING(default); \
425    End
426
427#define REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
428    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_New) \
429        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
430        ModuleID = modid; \
431        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\new)); \
432        REG_VALUE_LNG(NEW) \
433    End \
434    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_New_Command) \
435        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
436        ModuleID = modid; \
437        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\new\command)); \
438        Value = "\"<progpath>\program\\" STRING(app) "\" -n \"%1\""; \
439    End
440
441#define REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
442    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Open_Command) \
443        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
444        ModuleID = modid; \
445        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\open\command)); \
446        Value = "\"<progpath>\program\\" STRING(app) "\" -o \"%1\""; \
447    End
448
449#define REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
450    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Print_Command) \
451        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
452        ModuleID = modid; \
453        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\print\command)); \
454        Value = "\"<progpath>\program\\" STRING(app) "\" -p \"%1\""; \
455    End
456
457#define REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
458    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Printto_Command) \
459        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
460        ModuleID = modid; \
461        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\printto\command)); \
462        Value = "\"<progpath>\program\\" STRING(app) "\" -pt \"%2\" \"%1\""; \
463    End
464
465#define REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
466    RegistryItem CONCAT2(gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_,name) \
467        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
468        ModuleID = modid; \
469        Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
470        Name = STRING(CONCAT2(.,key)); \
471        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
472        Styles = (); \
473    End
474
475#define REGISTRY_ENTRY_TEMPLATE_CAPABILITIES(name,modid,key,doc_type) \
476    RegistryItem CONCAT2(gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_,name) \
477        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
478        ModuleID = modid; \
479        Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
480        Name = STRING(CONCAT2(.,key)); \
481        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
482        Styles = (); \
483    End
484
485#define CONDITIONAL_REGISTER_DOC_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
486    CONDITIONAL_MODULE_ENTRY(name,modid) \
487    REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
488    CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
489    REGISTRY_ENTRY_DOC(name,modid,disp_name) \
490    REGISTRY_ENTRY_ICON(name,modid,icon_id) \
491    REGISTRY_ENTRY_SHELL(name,default,modid) \
492    REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
493    REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
494    REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
495    REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
496    REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
497
498#define CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
499    CONDITIONAL_MODULE_ENTRY(name,modid) \
500    REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
501    CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
502    REGISTRY_ENTRY_DOC(name,modid,disp_name) \
503    REGISTRY_ENTRY_ICON(name,modid,icon_id) \
504    REGISTRY_ENTRY_SHELL(name,default,modid) \
505    REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
506    REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
507    REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
508    REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
509    REGISTRY_ENTRY_TEMPLATE_CAPABILITIES(name,modid,key,doc_type) \
510
511// ---------------------------------------
512
513#define REGISTER_PROPERTY_HANDLER_FOR_EXTENSION(extension) \
514    RegistryItem CONCAT2(gid_Regitem_Software_Microsoft_Windows_CurrentVersion_PropertySystem_PropertyHandlers_,extension) \
515        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
516        ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; \
517        ComponentCondition = "VersionNT >= 600"; \
518        Styles = (X64); \
519        Subkey = STRING(CONCAT2(SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.,extension)); \
520        Value = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \
521        Val64 = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \
522    End
523
524// ---------------------------------------
525
526#if defined WNT
527#define SCP2_URE_DL_DIR gid_Dir_Ure_Bin
528#define SCP2_URE_DL_NORMAL(n) n ".dll"
529#define SCP2_URE_DL_BARE(n) n ".dll"
530#define SCP2_URE_DL_VER(n, v) n v ".dll"
531#define SCP2_URE_DL_COMID_VER(n, v) n v STRING(COMID) ".dll"
532#define SCP2_URE_DL_UNO_VER(n, v) n v ".dll"
533#define SCP2_URE_DL_UNO_COMID_VER(n, v) n v STRING(COMID) ".dll"
534#define SCP2_URE_SHARE_DIR gid_Dir_Common_Ure
535#if defined _STLP_DEBUG
536#define SCP2_STDLP_DEBUG "d"
537#else
538#define SCP2_STDLP_DEBUG ""
539#endif
540#else
541#define SCP2_URE_DL_DIR gid_Dir_Ure_Lib
542#define SCP2_URE_DL_NORMAL(n) "lib" n STRING(UNXSUFFIX)
543#define SCP2_URE_DL_BARE(n) n STRING(UNXSUFFIX)
544#define SCP2_URE_DL_VER(n, v) "lib" n STRING(UNXSUFFIX) "." v
545#define SCP2_URE_DL_COMID_VER(n, v) \
546    "lib" n STRING(COMID) STRING(UNXSUFFIX) "." v
547#define SCP2_URE_DL_UNO_VER(n, v) "libuno_" n STRING(UNXSUFFIX) "." v
548#define SCP2_URE_DL_UNO_NORMAL(n) "libuno_" n STRING(UNXSUFFIX)
549#define SCP2_URE_DL_UNO_COMID_VER(n, v)	\
550    "libuno_" n STRING(COMID) STRING(UNXSUFFIX) "." v
551#define SCP2_URE_DL_UNO_COMID_NORMAL(n)	\
552    "libuno_" n STRING(COMID) STRING(UNXSUFFIX)
553#define SCP2_URE_SHARE_DIR gid_Dir_Ure_Share
554#endif
555#if defined MACOSX
556#define SCP2_URE_JDL_NORMAL(n) "lib" n ".jnilib"
557#else
558#define SCP2_URE_JDL_NORMAL(n) SCP2_URE_DL_NORMAL(n)
559#endif
560
561#include <langmacros.inc>
562
563
564#endif // MACROS_INC
565
566