1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _GLOBALS_HXX 25*b1cdbd2cSJim Jagielski #define _GLOBALS_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #ifdef IDL_COMPILER 28*b1cdbd2cSJim Jagielski #include <hash.hxx> 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski #ifdef ICC 31*b1cdbd2cSJim Jagielski #undef _Export 32*b1cdbd2cSJim Jagielski #endif 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski class SvIdlWorkingBase; 35*b1cdbd2cSJim Jagielski class SvClassManager; 36*b1cdbd2cSJim Jagielski struct SvGlobalHashNames 37*b1cdbd2cSJim Jagielski { 38*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Name; 39*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_module; 40*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_interface; 41*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_in; 42*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_out; 43*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_inout; 44*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_String; 45*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_UCHAR; 46*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_USHORT; 47*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_uuid; 48*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_HelpContext; 49*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_HelpText; 50*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_void; 51*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_shell; 52*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Get; 53*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Set; 54*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SlotId; 55*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_HasCoreId; 56*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Cachable; 57*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Volatile; 58*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Toggle; 59*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_AutoUpdate; 60*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Synchron; 61*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Asynchron; 62*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_RecordPerSet; 63*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_RecordPerItem; 64*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_RecordManual; 65*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_NoRecord; 66*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_RecordAbsolute; 67*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_enum; 68*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_UINT16; 69*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_INT16; 70*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_UINT32; 71*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_INT32; 72*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_int; 73*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_BOOL; 74*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_char; 75*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_BYTE; 76*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_float; 77*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_double; 78*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_item; 79*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_PseudoSlots; 80*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_map; 81*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Default; 82*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_HelpFile; 83*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Version; 84*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_import; 85*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SlotIdFile; 86*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SvName; 87*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SbxName; 88*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ItemName; 89*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_OdlName; 90*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_include; 91*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ExecMethod; 92*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_StateMethod; 93*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_GroupId; 94*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_HasDialog; 95*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_TypeLibFile; 96*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Export; 97*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Automation; 98*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_PseudoPrefix; 99*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_define; 100*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_MenuConfig; 101*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ToolBoxConfig; 102*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_StatusBarConfig; 103*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_AccelConfig; 104*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_AllConfig; 105*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_FastCall; 106*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SbxObject; 107*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Container; 108*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ImageRotation; 109*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ImageReflection; 110*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_IsCollection; 111*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ReadOnlyDoc; 112*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ConfigName; 113*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_union; 114*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_struct; 115*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_typedef; 116*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Readonly; 117*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_SlotType; 118*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_ModulePrefix; 119*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_DisableFlags; 120*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Hidden; 121*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_Description; 122*b1cdbd2cSJim Jagielski SvStringHashEntryRef MM_UnoName; 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski SvGlobalHashNames(); 125*b1cdbd2cSJim Jagielski }; 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski class IdlDll 128*b1cdbd2cSJim Jagielski { 129*b1cdbd2cSJim Jagielski public: 130*b1cdbd2cSJim Jagielski SvStringHashTable * pHashTable; 131*b1cdbd2cSJim Jagielski SvClassManager * pClassMgr; 132*b1cdbd2cSJim Jagielski SvGlobalHashNames * pGlobalNames; 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski IdlDll(); 135*b1cdbd2cSJim Jagielski ~IdlDll(); 136*b1cdbd2cSJim Jagielski }; 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski IdlDll * GetIdlApp(); 139*b1cdbd2cSJim Jagielski #define IDLAPP GetIdlApp() 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski #define SV_GLOBAL_HASH_ACCESS( Name ) \ 142*b1cdbd2cSJim Jagielski if( !IDLAPP->pGlobalNames ) \ 143*b1cdbd2cSJim Jagielski IDLAPP->pGlobalNames = new SvGlobalHashNames(); \ 144*b1cdbd2cSJim Jagielski return IDLAPP->pGlobalNames->MM_##Name; 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski #define HASH_INLINE( Name ) \ 147*b1cdbd2cSJim Jagielski inline SvStringHashEntry * SvHash_##Name() { SV_GLOBAL_HASH_ACCESS( Name ) } 148*b1cdbd2cSJim Jagielski 149*b1cdbd2cSJim Jagielski HASH_INLINE(Name) 150*b1cdbd2cSJim Jagielski HASH_INLINE(module) 151*b1cdbd2cSJim Jagielski HASH_INLINE(interface) 152*b1cdbd2cSJim Jagielski HASH_INLINE(in) 153*b1cdbd2cSJim Jagielski HASH_INLINE(out) 154*b1cdbd2cSJim Jagielski HASH_INLINE(inout) 155*b1cdbd2cSJim Jagielski HASH_INLINE(String) 156*b1cdbd2cSJim Jagielski HASH_INLINE(UCHAR) 157*b1cdbd2cSJim Jagielski HASH_INLINE(USHORT) 158*b1cdbd2cSJim Jagielski HASH_INLINE(uuid) 159*b1cdbd2cSJim Jagielski HASH_INLINE(HelpContext) 160*b1cdbd2cSJim Jagielski HASH_INLINE(HelpText) 161*b1cdbd2cSJim Jagielski HASH_INLINE(void) 162*b1cdbd2cSJim Jagielski HASH_INLINE(shell) 163*b1cdbd2cSJim Jagielski HASH_INLINE(Get) 164*b1cdbd2cSJim Jagielski HASH_INLINE(Set) 165*b1cdbd2cSJim Jagielski HASH_INLINE(SlotId) 166*b1cdbd2cSJim Jagielski HASH_INLINE(HasCoreId) 167*b1cdbd2cSJim Jagielski HASH_INLINE(Cachable) 168*b1cdbd2cSJim Jagielski HASH_INLINE(Volatile) 169*b1cdbd2cSJim Jagielski HASH_INLINE(Toggle) 170*b1cdbd2cSJim Jagielski HASH_INLINE(AutoUpdate) 171*b1cdbd2cSJim Jagielski HASH_INLINE(Synchron) 172*b1cdbd2cSJim Jagielski HASH_INLINE(Asynchron) 173*b1cdbd2cSJim Jagielski HASH_INLINE(RecordPerItem) 174*b1cdbd2cSJim Jagielski HASH_INLINE(RecordPerSet) 175*b1cdbd2cSJim Jagielski HASH_INLINE(RecordManual) 176*b1cdbd2cSJim Jagielski HASH_INLINE(NoRecord) 177*b1cdbd2cSJim Jagielski HASH_INLINE(RecordAbsolute) 178*b1cdbd2cSJim Jagielski HASH_INLINE(enum) 179*b1cdbd2cSJim Jagielski HASH_INLINE(UINT16) 180*b1cdbd2cSJim Jagielski HASH_INLINE(INT16) 181*b1cdbd2cSJim Jagielski HASH_INLINE(UINT32) 182*b1cdbd2cSJim Jagielski HASH_INLINE(INT32) 183*b1cdbd2cSJim Jagielski HASH_INLINE(int) 184*b1cdbd2cSJim Jagielski HASH_INLINE(BOOL) 185*b1cdbd2cSJim Jagielski HASH_INLINE(char) 186*b1cdbd2cSJim Jagielski HASH_INLINE(BYTE) 187*b1cdbd2cSJim Jagielski HASH_INLINE(item) 188*b1cdbd2cSJim Jagielski HASH_INLINE(PseudoSlots) 189*b1cdbd2cSJim Jagielski HASH_INLINE(map) 190*b1cdbd2cSJim Jagielski HASH_INLINE(Default) 191*b1cdbd2cSJim Jagielski HASH_INLINE(HelpFile) 192*b1cdbd2cSJim Jagielski HASH_INLINE(Version) 193*b1cdbd2cSJim Jagielski HASH_INLINE(import) 194*b1cdbd2cSJim Jagielski HASH_INLINE(SlotIdFile) 195*b1cdbd2cSJim Jagielski HASH_INLINE(SvName) 196*b1cdbd2cSJim Jagielski HASH_INLINE(SbxName) 197*b1cdbd2cSJim Jagielski HASH_INLINE(ItemName) 198*b1cdbd2cSJim Jagielski HASH_INLINE(OdlName) 199*b1cdbd2cSJim Jagielski HASH_INLINE(include) 200*b1cdbd2cSJim Jagielski HASH_INLINE(ExecMethod) 201*b1cdbd2cSJim Jagielski HASH_INLINE(StateMethod) 202*b1cdbd2cSJim Jagielski HASH_INLINE(GroupId) 203*b1cdbd2cSJim Jagielski HASH_INLINE(float) 204*b1cdbd2cSJim Jagielski HASH_INLINE(double) 205*b1cdbd2cSJim Jagielski HASH_INLINE(HasDialog) 206*b1cdbd2cSJim Jagielski HASH_INLINE(TypeLibFile) 207*b1cdbd2cSJim Jagielski HASH_INLINE(Export) 208*b1cdbd2cSJim Jagielski HASH_INLINE(Automation) 209*b1cdbd2cSJim Jagielski HASH_INLINE(PseudoPrefix) 210*b1cdbd2cSJim Jagielski HASH_INLINE(define) 211*b1cdbd2cSJim Jagielski HASH_INLINE(MenuConfig) 212*b1cdbd2cSJim Jagielski HASH_INLINE(ToolBoxConfig) 213*b1cdbd2cSJim Jagielski HASH_INLINE(StatusBarConfig) 214*b1cdbd2cSJim Jagielski HASH_INLINE(AccelConfig) 215*b1cdbd2cSJim Jagielski HASH_INLINE(AllConfig) 216*b1cdbd2cSJim Jagielski HASH_INLINE(FastCall) 217*b1cdbd2cSJim Jagielski HASH_INLINE(SbxObject) 218*b1cdbd2cSJim Jagielski HASH_INLINE(Container) 219*b1cdbd2cSJim Jagielski HASH_INLINE(ImageRotation) 220*b1cdbd2cSJim Jagielski HASH_INLINE(ImageReflection) 221*b1cdbd2cSJim Jagielski HASH_INLINE(IsCollection) 222*b1cdbd2cSJim Jagielski HASH_INLINE(ReadOnlyDoc) 223*b1cdbd2cSJim Jagielski HASH_INLINE(ConfigName) 224*b1cdbd2cSJim Jagielski HASH_INLINE(union) 225*b1cdbd2cSJim Jagielski HASH_INLINE(struct) 226*b1cdbd2cSJim Jagielski HASH_INLINE(typedef) 227*b1cdbd2cSJim Jagielski HASH_INLINE(Readonly) 228*b1cdbd2cSJim Jagielski HASH_INLINE(SlotType) 229*b1cdbd2cSJim Jagielski HASH_INLINE(ModulePrefix) 230*b1cdbd2cSJim Jagielski HASH_INLINE(DisableFlags) 231*b1cdbd2cSJim Jagielski HASH_INLINE(Hidden) 232*b1cdbd2cSJim Jagielski HASH_INLINE(Description) 233*b1cdbd2cSJim Jagielski HASH_INLINE(UnoName) 234*b1cdbd2cSJim Jagielski 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski #endif // IDL_COMPILER 237*b1cdbd2cSJim Jagielski #endif // _GLOBALS_HXX 238*b1cdbd2cSJim Jagielski 239