| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef _GLOBALS_HXX |
| #define _GLOBALS_HXX |
| |
| #ifdef IDL_COMPILER |
| #include <hash.hxx> |
| |
| #ifdef ICC |
| #undef _Export |
| #endif |
| |
| class SvIdlWorkingBase; |
| class SvClassManager; |
| struct SvGlobalHashNames |
| { |
| SvStringHashEntryRef MM_Name; |
| SvStringHashEntryRef MM_module; |
| SvStringHashEntryRef MM_interface; |
| SvStringHashEntryRef MM_in; |
| SvStringHashEntryRef MM_out; |
| SvStringHashEntryRef MM_inout; |
| SvStringHashEntryRef MM_String; |
| SvStringHashEntryRef MM_UCHAR; |
| SvStringHashEntryRef MM_USHORT; |
| SvStringHashEntryRef MM_uuid; |
| SvStringHashEntryRef MM_HelpContext; |
| SvStringHashEntryRef MM_HelpText; |
| SvStringHashEntryRef MM_void; |
| SvStringHashEntryRef MM_shell; |
| SvStringHashEntryRef MM_Get; |
| SvStringHashEntryRef MM_Set; |
| SvStringHashEntryRef MM_SlotId; |
| SvStringHashEntryRef MM_HasCoreId; |
| SvStringHashEntryRef MM_Cachable; |
| SvStringHashEntryRef MM_Volatile; |
| SvStringHashEntryRef MM_Toggle; |
| SvStringHashEntryRef MM_AutoUpdate; |
| SvStringHashEntryRef MM_Synchron; |
| SvStringHashEntryRef MM_Asynchron; |
| SvStringHashEntryRef MM_RecordPerSet; |
| SvStringHashEntryRef MM_RecordPerItem; |
| SvStringHashEntryRef MM_RecordManual; |
| SvStringHashEntryRef MM_NoRecord; |
| SvStringHashEntryRef MM_RecordAbsolute; |
| SvStringHashEntryRef MM_enum; |
| SvStringHashEntryRef MM_UINT16; |
| SvStringHashEntryRef MM_INT16; |
| SvStringHashEntryRef MM_UINT32; |
| SvStringHashEntryRef MM_INT32; |
| SvStringHashEntryRef MM_int; |
| SvStringHashEntryRef MM_BOOL; |
| SvStringHashEntryRef MM_char; |
| SvStringHashEntryRef MM_BYTE; |
| SvStringHashEntryRef MM_float; |
| SvStringHashEntryRef MM_double; |
| SvStringHashEntryRef MM_item; |
| SvStringHashEntryRef MM_PseudoSlots; |
| SvStringHashEntryRef MM_map; |
| SvStringHashEntryRef MM_Default; |
| SvStringHashEntryRef MM_HelpFile; |
| SvStringHashEntryRef MM_Version; |
| SvStringHashEntryRef MM_import; |
| SvStringHashEntryRef MM_SlotIdFile; |
| SvStringHashEntryRef MM_SvName; |
| SvStringHashEntryRef MM_SbxName; |
| SvStringHashEntryRef MM_ItemName; |
| SvStringHashEntryRef MM_OdlName; |
| SvStringHashEntryRef MM_include; |
| SvStringHashEntryRef MM_ExecMethod; |
| SvStringHashEntryRef MM_StateMethod; |
| SvStringHashEntryRef MM_GroupId; |
| SvStringHashEntryRef MM_HasDialog; |
| SvStringHashEntryRef MM_TypeLibFile; |
| SvStringHashEntryRef MM_Export; |
| SvStringHashEntryRef MM_Automation; |
| SvStringHashEntryRef MM_PseudoPrefix; |
| SvStringHashEntryRef MM_define; |
| SvStringHashEntryRef MM_MenuConfig; |
| SvStringHashEntryRef MM_ToolBoxConfig; |
| SvStringHashEntryRef MM_StatusBarConfig; |
| SvStringHashEntryRef MM_AccelConfig; |
| SvStringHashEntryRef MM_AllConfig; |
| SvStringHashEntryRef MM_FastCall; |
| SvStringHashEntryRef MM_SbxObject; |
| SvStringHashEntryRef MM_Container; |
| SvStringHashEntryRef MM_ImageRotation; |
| SvStringHashEntryRef MM_ImageReflection; |
| SvStringHashEntryRef MM_IsCollection; |
| SvStringHashEntryRef MM_ReadOnlyDoc; |
| SvStringHashEntryRef MM_ConfigName; |
| SvStringHashEntryRef MM_union; |
| SvStringHashEntryRef MM_struct; |
| SvStringHashEntryRef MM_typedef; |
| SvStringHashEntryRef MM_Readonly; |
| SvStringHashEntryRef MM_SlotType; |
| SvStringHashEntryRef MM_ModulePrefix; |
| SvStringHashEntryRef MM_DisableFlags; |
| SvStringHashEntryRef MM_Hidden; |
| SvStringHashEntryRef MM_Description; |
| SvStringHashEntryRef MM_UnoName; |
| |
| SvGlobalHashNames(); |
| }; |
| |
| class IdlDll |
| { |
| public: |
| SvStringHashTable * pHashTable; |
| SvClassManager * pClassMgr; |
| SvGlobalHashNames * pGlobalNames; |
| |
| IdlDll(); |
| ~IdlDll(); |
| }; |
| |
| IdlDll * GetIdlApp(); |
| #define IDLAPP GetIdlApp() |
| |
| #define SV_GLOBAL_HASH_ACCESS( Name ) \ |
| if( !IDLAPP->pGlobalNames ) \ |
| IDLAPP->pGlobalNames = new SvGlobalHashNames(); \ |
| return IDLAPP->pGlobalNames->MM_##Name; |
| |
| #define HASH_INLINE( Name ) \ |
| inline SvStringHashEntry * SvHash_##Name() { SV_GLOBAL_HASH_ACCESS( Name ) } |
| |
| HASH_INLINE(Name) |
| HASH_INLINE(module) |
| HASH_INLINE(interface) |
| HASH_INLINE(in) |
| HASH_INLINE(out) |
| HASH_INLINE(inout) |
| HASH_INLINE(String) |
| HASH_INLINE(UCHAR) |
| HASH_INLINE(USHORT) |
| HASH_INLINE(uuid) |
| HASH_INLINE(HelpContext) |
| HASH_INLINE(HelpText) |
| HASH_INLINE(void) |
| HASH_INLINE(shell) |
| HASH_INLINE(Get) |
| HASH_INLINE(Set) |
| HASH_INLINE(SlotId) |
| HASH_INLINE(HasCoreId) |
| HASH_INLINE(Cachable) |
| HASH_INLINE(Volatile) |
| HASH_INLINE(Toggle) |
| HASH_INLINE(AutoUpdate) |
| HASH_INLINE(Synchron) |
| HASH_INLINE(Asynchron) |
| HASH_INLINE(RecordPerItem) |
| HASH_INLINE(RecordPerSet) |
| HASH_INLINE(RecordManual) |
| HASH_INLINE(NoRecord) |
| HASH_INLINE(RecordAbsolute) |
| HASH_INLINE(enum) |
| HASH_INLINE(UINT16) |
| HASH_INLINE(INT16) |
| HASH_INLINE(UINT32) |
| HASH_INLINE(INT32) |
| HASH_INLINE(int) |
| HASH_INLINE(BOOL) |
| HASH_INLINE(char) |
| HASH_INLINE(BYTE) |
| HASH_INLINE(item) |
| HASH_INLINE(PseudoSlots) |
| HASH_INLINE(map) |
| HASH_INLINE(Default) |
| HASH_INLINE(HelpFile) |
| HASH_INLINE(Version) |
| HASH_INLINE(import) |
| HASH_INLINE(SlotIdFile) |
| HASH_INLINE(SvName) |
| HASH_INLINE(SbxName) |
| HASH_INLINE(ItemName) |
| HASH_INLINE(OdlName) |
| HASH_INLINE(include) |
| HASH_INLINE(ExecMethod) |
| HASH_INLINE(StateMethod) |
| HASH_INLINE(GroupId) |
| HASH_INLINE(float) |
| HASH_INLINE(double) |
| HASH_INLINE(HasDialog) |
| HASH_INLINE(TypeLibFile) |
| HASH_INLINE(Export) |
| HASH_INLINE(Automation) |
| HASH_INLINE(PseudoPrefix) |
| HASH_INLINE(define) |
| HASH_INLINE(MenuConfig) |
| HASH_INLINE(ToolBoxConfig) |
| HASH_INLINE(StatusBarConfig) |
| HASH_INLINE(AccelConfig) |
| HASH_INLINE(AllConfig) |
| HASH_INLINE(FastCall) |
| HASH_INLINE(SbxObject) |
| HASH_INLINE(Container) |
| HASH_INLINE(ImageRotation) |
| HASH_INLINE(ImageReflection) |
| HASH_INLINE(IsCollection) |
| HASH_INLINE(ReadOnlyDoc) |
| HASH_INLINE(ConfigName) |
| HASH_INLINE(union) |
| HASH_INLINE(struct) |
| HASH_INLINE(typedef) |
| HASH_INLINE(Readonly) |
| HASH_INLINE(SlotType) |
| HASH_INLINE(ModulePrefix) |
| HASH_INLINE(DisableFlags) |
| HASH_INLINE(Hidden) |
| HASH_INLINE(Description) |
| HASH_INLINE(UnoName) |
| |
| |
| #endif // IDL_COMPILER |
| #endif // _GLOBALS_HXX |
| |