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