LCOV - code coverage report
Current view: top level - sc/source/core/tool - callform.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 18 189 9.5 %
Date: 2012-08-25 Functions: 10 26 38.5 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 7 181 3.9 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include <vcl/svapp.hxx>
      30                 :            : #include <osl/module.hxx>
      31                 :            : #include <osl/file.hxx>
      32                 :            : #include <unotools/transliterationwrapper.hxx>
      33                 :            : 
      34                 :            : #include "callform.hxx"
      35                 :            : #include "global.hxx"
      36                 :            : #include "adiasync.hxx"
      37                 :            : 
      38                 :            : //------------------------------------------------------------------------
      39                 :            : 
      40                 :            : extern "C" {
      41                 :            : 
      42                 :            : typedef void (CALLTYPE* ExFuncPtr1)(void*);
      43                 :            : typedef void (CALLTYPE* ExFuncPtr2)(void*, void*);
      44                 :            : typedef void (CALLTYPE* ExFuncPtr3)(void*, void*, void*);
      45                 :            : typedef void (CALLTYPE* ExFuncPtr4)(void*, void*, void*, void*);
      46                 :            : typedef void (CALLTYPE* ExFuncPtr5)(void*, void*, void*, void*, void*);
      47                 :            : typedef void (CALLTYPE* ExFuncPtr6)(void*, void*, void*, void*, void*, void*);
      48                 :            : typedef void (CALLTYPE* ExFuncPtr7)(void*, void*, void*, void*, void*, void*, void*);
      49                 :            : typedef void (CALLTYPE* ExFuncPtr8)(void*, void*, void*, void*, void*, void*, void*, void*);
      50                 :            : typedef void (CALLTYPE* ExFuncPtr9)(void*, void*, void*, void*, void*, void*, void*, void*, void*);
      51                 :            : typedef void (CALLTYPE* ExFuncPtr10)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      52                 :            : typedef void (CALLTYPE* ExFuncPtr11)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      53                 :            : typedef void (CALLTYPE* ExFuncPtr12)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      54                 :            : typedef void (CALLTYPE* ExFuncPtr13)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      55                 :            : typedef void (CALLTYPE* ExFuncPtr14)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      56                 :            : typedef void (CALLTYPE* ExFuncPtr15)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      57                 :            : typedef void (CALLTYPE* ExFuncPtr16)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
      58                 :            : 
      59                 :            : typedef void (CALLTYPE* GetFuncCountPtr)(sal_uInt16& nCount);
      60                 :            : typedef void (CALLTYPE* GetFuncDataPtr)
      61                 :            :     (sal_uInt16& nNo, sal_Char* pFuncName, sal_uInt16& nParamCount, ParamType* peType, sal_Char* pInternalName);
      62                 :            : 
      63                 :            : typedef void (CALLTYPE* SetLanguagePtr)( sal_uInt16& nLanguage );
      64                 :            : typedef void (CALLTYPE* GetParamDesc)
      65                 :            :     (sal_uInt16& nNo, sal_uInt16& nParam, sal_Char* pName, sal_Char* pDesc );
      66                 :            : 
      67                 :            : typedef void (CALLTYPE* IsAsync) ( sal_uInt16&      nNo,
      68                 :            :                                    ParamType*   peType );
      69                 :            : typedef void (CALLTYPE* Advice)  ( sal_uInt16&      nNo,
      70                 :            :                                    AdvData&     pfCallback );
      71                 :            : typedef void (CALLTYPE* Unadvice)( double&      nHandle );
      72                 :            : 
      73                 :            : typedef void (CALLTYPE* FARPROC) ( void );
      74                 :            : 
      75                 :            : }
      76                 :            : 
      77                 :            : #define GETFUNCTIONCOUNT        "GetFunctionCount"
      78                 :            : #define GETFUNCTIONDATA         "GetFunctionData"
      79                 :            : #define SETLANGUAGE             "SetLanguage"
      80                 :            : #define GETPARAMDESC            "GetParameterDescription"
      81                 :            : #define ISASYNC                 "IsAsync"
      82                 :            : #define ADVICE                  "Advice"
      83                 :            : #define UNADVICE                "Unadvice"
      84                 :            : 
      85                 :            : class ModuleData
      86                 :            : {
      87                 :            : friend class ModuleCollection;
      88                 :            :     rtl::OUString aName;
      89                 :            :     osl::Module* pInstance;
      90                 :            : public:
      91                 :          0 :     ModuleData(const rtl::OUString& rStr, osl::Module* pInst) : aName(rStr), pInstance(pInst) {}
      92                 :            :     ModuleData(const ModuleData& rData) : aName(rData.aName) {pInstance = new osl::Module(aName);}
      93 [ #  # ][ #  # ]:          0 :     ~ModuleData() { delete pInstance; }
      94                 :            : 
      95                 :          0 :     const rtl::OUString& GetName() const { return aName; }
      96                 :          0 :     osl::Module*    GetInstance() const { return pInstance; }
      97                 :            :     void            FreeInstance() { delete pInstance; pInstance = 0; }
      98                 :            : };
      99                 :            : 
     100                 :            : //------------------------------------------------------------------------
     101                 :            : 
     102                 :          0 : FuncData::FuncData(const ModuleData*pModule,
     103                 :            :                    const rtl::OUString& rIName,
     104                 :            :                    const rtl::OUString& rFName,
     105                 :            :                          sal_uInt16 nNo,
     106                 :            :                     sal_uInt16  nCount,
     107                 :            :                    const ParamType* peType,
     108                 :            :                     ParamType  eType) :
     109                 :            :     pModuleData     (pModule),
     110                 :            :     aInternalName   (rIName),
     111                 :            :     aFuncName       (rFName),
     112                 :            :     nNumber         (nNo),
     113                 :            :     nParamCount     (nCount),
     114                 :          0 :     eAsyncType      (eType)
     115                 :            : {
     116         [ #  # ]:          0 :     for (sal_uInt16 i = 0; i < MAXFUNCPARAM; i++)
     117                 :          0 :         eParamType[i] = peType[i];
     118                 :          0 : }
     119                 :            : 
     120                 :            : //------------------------------------------------------------------------
     121                 :            : 
     122                 :          0 : FuncData::FuncData(const FuncData& rData) :
     123                 :            :     pModuleData     (rData.pModuleData),
     124                 :            :     aInternalName   (rData.aInternalName),
     125                 :            :     aFuncName       (rData.aFuncName),
     126                 :            :     nNumber         (rData.nNumber),
     127                 :            :     nParamCount     (rData.nParamCount),
     128                 :          0 :     eAsyncType      (rData.eAsyncType)
     129                 :            : {
     130         [ #  # ]:          0 :     for (sal_uInt16 i = 0; i < MAXFUNCPARAM; i++)
     131                 :          0 :         eParamType[i] = rData.eParamType[i];
     132                 :          0 : }
     133                 :            : 
     134                 :            : namespace {
     135                 :            : 
     136                 :         51 : class ModuleCollection
     137                 :            : {
     138                 :            :     typedef boost::ptr_map<rtl::OUString, ModuleData> MapType;
     139                 :            :     MapType maData;
     140                 :            : public:
     141                 :         51 :     ModuleCollection() {}
     142                 :            :     ModuleCollection(const ModuleCollection& r) : maData(r.maData) {}
     143                 :            : 
     144                 :            :     const ModuleData* findByName(const rtl::OUString& rName) const;
     145                 :            :     void insert(ModuleData* pNew);
     146                 :            :     void clear();
     147                 :            : };
     148                 :            : 
     149                 :          0 : const ModuleData* ModuleCollection::findByName(const rtl::OUString& rName) const
     150                 :            : {
     151         [ #  # ]:          0 :     MapType::const_iterator it = maData.find(rName);
     152 [ #  # ][ #  # ]:          0 :     return it == maData.end() ? NULL : it->second;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     153                 :            : }
     154                 :            : 
     155                 :          0 : void ModuleCollection::insert(ModuleData* pNew)
     156                 :            : {
     157         [ #  # ]:          0 :     if (!pNew)
     158                 :          0 :         return;
     159                 :            : 
     160                 :          0 :     rtl::OUString aName = pNew->GetName();
     161         [ #  # ]:          0 :     maData.insert(aName, pNew);
     162                 :            : }
     163                 :            : 
     164                 :         18 : void ModuleCollection::clear()
     165                 :            : {
     166                 :         18 :     maData.clear();
     167                 :         18 : }
     168                 :            : 
     169                 :         51 : ModuleCollection aModuleCollection;
     170                 :            : 
     171                 :            : }
     172                 :            : 
     173                 :            : //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     174                 :            : 
     175                 :          0 : bool InitExternalFunc(const rtl::OUString& rModuleName)
     176                 :            : {
     177                 :            :     // Module already loaded?
     178         [ #  # ]:          0 :     const ModuleData* pTemp = aModuleCollection.findByName(rModuleName);
     179         [ #  # ]:          0 :     if (pTemp)
     180                 :          0 :         return false;
     181                 :            : 
     182                 :          0 :     rtl::OUString aNP;
     183                 :          0 :     aNP = rModuleName;
     184                 :            : 
     185                 :          0 :     bool bRet = false;
     186 [ #  # ][ #  # ]:          0 :     osl::Module* pLib = new osl::Module( aNP );
     187         [ #  # ]:          0 :     if (pLib->is())
     188                 :            :     {
     189         [ #  # ]:          0 :         FARPROC fpGetCount = (FARPROC)pLib->getFunctionSymbol(GETFUNCTIONCOUNT);
     190         [ #  # ]:          0 :         FARPROC fpGetData = (FARPROC)pLib->getFunctionSymbol(GETFUNCTIONDATA);
     191 [ #  # ][ #  # ]:          0 :         if ((fpGetCount != NULL) && (fpGetData != NULL))
     192                 :            :         {
     193         [ #  # ]:          0 :             FARPROC fpIsAsync = (FARPROC)pLib->getFunctionSymbol(ISASYNC);
     194         [ #  # ]:          0 :             FARPROC fpAdvice = (FARPROC)pLib->getFunctionSymbol(ADVICE);
     195         [ #  # ]:          0 :             FARPROC fpSetLanguage = (FARPROC)pLib->getFunctionSymbol(SETLANGUAGE);
     196         [ #  # ]:          0 :             if ( fpSetLanguage )
     197                 :            :             {
     198 [ #  # ][ #  # ]:          0 :                 LanguageType eLanguage = Application::GetSettings().GetUILanguage();
     199                 :          0 :                 sal_uInt16 nLanguage = (sal_uInt16) eLanguage;
     200         [ #  # ]:          0 :                 (*((SetLanguagePtr)fpSetLanguage))( nLanguage );
     201                 :            :             }
     202                 :            : 
     203                 :            :             // Module in die Collection aufnehmen
     204         [ #  # ]:          0 :             ModuleData* pModuleData = new ModuleData(rModuleName, pLib);
     205         [ #  # ]:          0 :             aModuleCollection.insert(pModuleData);
     206                 :            : 
     207                 :            :             // Schnittstelle initialisieren
     208                 :          0 :             AdvData pfCallBack = &ScAddInAsyncCallBack;
     209                 :            :             FuncData* pFuncData;
     210         [ #  # ]:          0 :             FuncCollection* pFuncCol = ScGlobal::GetFuncCollection();
     211                 :            :             sal_uInt16 nCount;
     212         [ #  # ]:          0 :             (*((GetFuncCountPtr)fpGetCount))(nCount);
     213         [ #  # ]:          0 :             for (sal_uInt16 i=0; i < nCount; i++)
     214                 :            :             {
     215                 :            :                 sal_Char cFuncName[256];
     216                 :            :                 sal_Char cInternalName[256];
     217                 :            :                 sal_uInt16 nParamCount;
     218                 :            :                 ParamType eParamType[MAXFUNCPARAM];
     219                 :          0 :                 ParamType eAsyncType = NONE;
     220                 :            :                 // alles initialisieren, falls das AddIn sich schlecht verhaelt
     221                 :          0 :                 cFuncName[0] = 0;
     222                 :          0 :                 cInternalName[0] = 0;
     223                 :          0 :                 nParamCount = 0;
     224         [ #  # ]:          0 :                 for ( sal_uInt16 j=0; j<MAXFUNCPARAM; j++ )
     225                 :            :                 {
     226                 :          0 :                     eParamType[j] = NONE;
     227                 :            :                 }
     228                 :            :                 (*((GetFuncDataPtr)fpGetData))(i, cFuncName, nParamCount,
     229         [ #  # ]:          0 :                                                eParamType, cInternalName);
     230         [ #  # ]:          0 :                 if( fpIsAsync )
     231                 :            :                 {
     232         [ #  # ]:          0 :                     (*((IsAsync)fpIsAsync))(i, &eAsyncType);
     233 [ #  # ][ #  # ]:          0 :                     if ( fpAdvice && eAsyncType != NONE )
     234         [ #  # ]:          0 :                         (*((Advice)fpAdvice))( i, pfCallBack );
     235                 :            :                 }
     236 [ #  # ][ #  # ]:          0 :                 String aInternalName( cInternalName, osl_getThreadTextEncoding() );
     237 [ #  # ][ #  # ]:          0 :                 String aFuncName( cFuncName, osl_getThreadTextEncoding() );
     238                 :            :                 pFuncData = new FuncData( pModuleData,
     239                 :            :                                           aInternalName,
     240                 :            :                                           aFuncName,
     241                 :            :                                           i,
     242                 :            :                                           nParamCount,
     243                 :            :                                           eParamType,
     244 [ #  # ][ #  # ]:          0 :                                           eAsyncType );
                 [ #  # ]
     245         [ #  # ]:          0 :                 pFuncCol->insert(pFuncData);
     246 [ #  # ][ #  # ]:          0 :             }
     247                 :          0 :             bRet = sal_True;
     248                 :            :         }
     249                 :            :         else
     250 [ #  # ][ #  # ]:          0 :             delete pLib;
     251                 :            :     }
     252                 :            :     else
     253 [ #  # ][ #  # ]:          0 :         delete pLib;
     254                 :          0 :     return bRet;
     255                 :            : }
     256                 :            : 
     257                 :            : //------------------------------------------------------------------------
     258                 :            : 
     259                 :         18 : void ExitExternalFunc()
     260                 :            : {
     261                 :         18 :     aModuleCollection.clear();
     262                 :         18 : }
     263                 :            : 
     264                 :            : //------------------------------------------------------------------------
     265                 :            : 
     266                 :          0 : bool FuncData::Call(void** ppParam) const
     267                 :            : {
     268                 :          0 :     bool bRet = false;
     269                 :          0 :     osl::Module* pLib = pModuleData->GetInstance();
     270                 :          0 :     FARPROC fProc = (FARPROC)pLib->getFunctionSymbol(aFuncName);
     271         [ #  # ]:          0 :     if (fProc != NULL)
     272                 :            :     {
     273   [ #  #  #  #  :          0 :         switch (nParamCount)
          #  #  #  #  #  
          #  #  #  #  #  
                #  #  # ]
     274                 :            :         {
     275                 :            :             case 1 :
     276                 :          0 :                 (*((ExFuncPtr1)fProc))(ppParam[0]);
     277                 :          0 :                 bRet = true;
     278                 :          0 :                 break;
     279                 :            :             case 2 :
     280                 :          0 :                 (*((ExFuncPtr2)fProc))(ppParam[0], ppParam[1]);
     281                 :          0 :                 bRet = true;
     282                 :          0 :                 break;
     283                 :            :             case 3 :
     284                 :          0 :                 (*((ExFuncPtr3)fProc))(ppParam[0], ppParam[1], ppParam[2]);
     285                 :          0 :                 bRet = true;
     286                 :          0 :                 break;
     287                 :            :             case 4 :
     288                 :          0 :                 (*((ExFuncPtr4)fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3]);
     289                 :          0 :                 bRet = true;
     290                 :          0 :                 break;
     291                 :            :             case 5 :
     292                 :          0 :                 (*((ExFuncPtr5)fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4]);
     293                 :          0 :                 bRet = true;
     294                 :          0 :                 break;
     295                 :            :             case 6 :
     296                 :          0 :                 (*((ExFuncPtr6)fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5]);
     297                 :          0 :                 bRet = true;
     298                 :          0 :                 break;
     299                 :            :             case 7 :
     300                 :          0 :                 (*((ExFuncPtr7)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     301                 :          0 :                                         ppParam[6]);
     302                 :          0 :                 bRet = true;
     303                 :          0 :                 break;
     304                 :            :             case 8 :
     305                 :          0 :                 (*((ExFuncPtr8)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     306                 :          0 :                                         ppParam[6], ppParam[7]);
     307                 :          0 :                 bRet = true;
     308                 :          0 :                 break;
     309                 :            :             case 9 :
     310                 :          0 :                 (*((ExFuncPtr9)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     311                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8]);
     312                 :          0 :                 bRet = true;
     313                 :          0 :                 break;
     314                 :            :             case 10 :
     315                 :          0 :                 (*((ExFuncPtr10)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     316                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9]);
     317                 :          0 :                 bRet = true;
     318                 :          0 :                 break;
     319                 :            :             case 11 :
     320                 :          0 :                 (*((ExFuncPtr11)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     321                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10]);
     322                 :          0 :                 bRet = true;
     323                 :          0 :                 break;
     324                 :            :             case 12:
     325                 :          0 :                 (*((ExFuncPtr12)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     326                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11]);
     327                 :          0 :                 bRet = true;
     328                 :          0 :                 break;
     329                 :            :             case 13:
     330                 :          0 :                 (*((ExFuncPtr13)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     331                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
     332                 :          0 :                                         ppParam[12]);
     333                 :          0 :                 bRet = true;
     334                 :          0 :                 break;
     335                 :            :             case 14 :
     336                 :          0 :                 (*((ExFuncPtr14)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     337                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
     338                 :          0 :                                         ppParam[12], ppParam[13]);
     339                 :          0 :                 bRet = true;
     340                 :          0 :                 break;
     341                 :            :             case 15 :
     342                 :          0 :                 (*((ExFuncPtr15)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     343                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
     344                 :          0 :                                         ppParam[12], ppParam[13], ppParam[14]);
     345                 :          0 :                 bRet = true;
     346                 :          0 :                 break;
     347                 :            :             case 16 :
     348                 :          0 :                 (*((ExFuncPtr16)fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
     349                 :          0 :                                         ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
     350                 :          0 :                                         ppParam[12], ppParam[13], ppParam[14], ppParam[15]);
     351                 :          0 :                 bRet = true;
     352                 :          0 :                 break;
     353                 :          0 :             default : break;
     354                 :            :         }
     355                 :            :     }
     356                 :          0 :     return bRet;
     357                 :            : }
     358                 :            : 
     359                 :            : //------------------------------------------------------------------------
     360                 :            : 
     361                 :          0 : bool FuncData::Unadvice( double nHandle )
     362                 :            : {
     363                 :          0 :     bool bRet = false;
     364                 :          0 :     osl::Module* pLib = pModuleData->GetInstance();
     365                 :          0 :     FARPROC fProc = (FARPROC)pLib->getFunctionSymbol(UNADVICE);
     366         [ #  # ]:          0 :     if (fProc != NULL)
     367                 :            :     {
     368                 :          0 :         ((::Unadvice)fProc)(nHandle);
     369                 :          0 :         bRet = true;
     370                 :            :     }
     371                 :          0 :     return bRet;
     372                 :            : }
     373                 :            : 
     374                 :            : //------------------------------------------------------------------------
     375                 :            : 
     376                 :          0 : const rtl::OUString& FuncData::GetModuleName() const
     377                 :            : {
     378                 :          0 :     return pModuleData->GetName();
     379                 :            : }
     380                 :            : 
     381                 :          0 : bool FuncData::getParamDesc( ::rtl::OUString& aName, ::rtl::OUString& aDesc, sal_uInt16 nParam ) const
     382                 :            : {
     383                 :          0 :     bool bRet = false;
     384         [ #  # ]:          0 :     if ( nParam <= nParamCount )
     385                 :            :     {
     386                 :          0 :         osl::Module* pLib = pModuleData->GetInstance();
     387                 :          0 :         FARPROC fProc = (FARPROC) pLib->getFunctionSymbol(GETPARAMDESC);
     388         [ #  # ]:          0 :         if ( fProc != NULL )
     389                 :            :         {
     390                 :            :             sal_Char pcName[256];
     391                 :            :             sal_Char pcDesc[256];
     392                 :          0 :             *pcName = *pcDesc = 0;
     393                 :          0 :             sal_uInt16 nFuncNo = nNumber;   // nicht per Reference versauen lassen..
     394         [ #  # ]:          0 :             ((::GetParamDesc)fProc)( nFuncNo, nParam, pcName, pcDesc );
     395 [ #  # ][ #  # ]:          0 :             aName = ::rtl::OUString( pcName, 256, osl_getThreadTextEncoding() );
     396 [ #  # ][ #  # ]:          0 :             aDesc = ::rtl::OUString( pcDesc, 256, osl_getThreadTextEncoding() );
     397                 :          0 :             bRet = true;
     398                 :            :         }
     399                 :            :     }
     400         [ #  # ]:          0 :     if ( !bRet )
     401                 :            :     {
     402                 :          0 :         aName = ::rtl::OUString();
     403                 :          0 :         aDesc = ::rtl::OUString();
     404                 :            :     }
     405                 :          0 :     return bRet;
     406                 :            : }
     407                 :            : 
     408                 :         13 : FuncCollection::FuncCollection() {}
     409                 :          0 : FuncCollection::FuncCollection(const FuncCollection& r) : maData(r.maData) {}
     410                 :            : 
     411                 :          0 : const FuncData* FuncCollection::findByName(const rtl::OUString& rName) const
     412                 :            : {
     413         [ #  # ]:          0 :     MapType::const_iterator it = maData.find(rName);
     414 [ #  # ][ #  # ]:          0 :     return it == maData.end() ? NULL : it->second;
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     415                 :            : }
     416                 :            : 
     417                 :       2292 : FuncData* FuncCollection::findByName(const rtl::OUString& rName)
     418                 :            : {
     419         [ +  - ]:       2292 :     MapType::iterator it = maData.find(rName);
     420 [ +  - ][ +  - ]:       2292 :     return it == maData.end() ? NULL : it->second;
         [ +  - ][ #  # ]
         [ -  + ][ #  # ]
     421                 :            : }
     422                 :            : 
     423                 :          0 : void FuncCollection::insert(FuncData* pNew)
     424                 :            : {
     425                 :          0 :     rtl::OUString aName = pNew->GetInternalName();
     426         [ #  # ]:          0 :     maData.insert(aName, pNew);
     427                 :          0 : }
     428                 :            : 
     429                 :          5 : FuncCollection::const_iterator FuncCollection::begin() const
     430                 :            : {
     431                 :          5 :     return maData.begin();
     432                 :            : }
     433                 :            : 
     434                 :          5 : FuncCollection::const_iterator FuncCollection::end() const
     435                 :            : {
     436                 :          5 :     return maData.end();
     437 [ +  - ][ +  - ]:        153 : }
     438                 :            : 
     439                 :            : 
     440                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10