LCOV - code coverage report
Current view: top level - registry/source - regkey.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 119 390 30.5 %
Date: 2012-08-25 Functions: 18 46 39.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 60 328 18.3 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*
       3                 :            :  * This file is part of the LibreOffice project.
       4                 :            :  *
       5                 :            :  * This Source Code Form is subject to the terms of the Mozilla Public
       6                 :            :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7                 :            :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8                 :            :  *
       9                 :            :  * This file incorporates work covered by the following license notice:
      10                 :            :  *
      11                 :            :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12                 :            :  *   contributor license agreements. See the NOTICE file distributed
      13                 :            :  *   with this work for additional information regarding copyright
      14                 :            :  *   ownership. The ASF licenses this file to you under the Apache
      15                 :            :  *   License, Version 2.0 (the "License"); you may not use this file
      16                 :            :  *   except in compliance with the License. You may obtain a copy of
      17                 :            :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18                 :            :  */
      19                 :            : 
      20                 :            : 
      21                 :            : #include "regkey.hxx"
      22                 :            : 
      23                 :            : #include    <registry/registry.hxx>
      24                 :            : #include    <rtl/alloc.h>
      25                 :            : #include    "regimpl.hxx"
      26                 :            : #include    "keyimpl.hxx"
      27                 :            : 
      28                 :            : using rtl::OUString;
      29                 :            : 
      30                 :            : //*********************************************************************
      31                 :            : //  acquireKey
      32                 :            : //
      33                 :     846708 : void REGISTRY_CALLTYPE acquireKey(RegKeyHandle hKey)
      34                 :            : {
      35                 :     846708 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
      36         [ +  - ]:     846708 :     if (pKey != 0)
      37                 :            :     {
      38                 :     846708 :         ORegistry* pReg = pKey->getRegistry();
      39                 :     846708 :         (void) pReg->acquireKey(pKey);
      40                 :            :     }
      41                 :     846708 : }
      42                 :            : 
      43                 :            : 
      44                 :            : //*********************************************************************
      45                 :            : //  releaseKey
      46                 :            : //
      47                 :    1966831 : void REGISTRY_CALLTYPE releaseKey(RegKeyHandle hKey)
      48                 :            : {
      49                 :    1966831 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
      50         [ +  - ]:    1966831 :     if (pKey != 0)
      51                 :            :     {
      52                 :    1966831 :         ORegistry* pReg = pKey->getRegistry();
      53                 :    1966831 :         (void) pReg->releaseKey(pKey);
      54                 :            :     }
      55                 :    1966831 : }
      56                 :            : 
      57                 :            : 
      58                 :            : //*********************************************************************
      59                 :            : //  isKeyReadOnly
      60                 :            : //
      61                 :         64 : sal_Bool REGISTRY_CALLTYPE isKeyReadOnly(RegKeyHandle hKey)
      62                 :            : {
      63                 :         64 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
      64         [ +  - ]:         64 :     return (pKey != 0) ? pKey->isReadOnly() : sal_False;
      65                 :            : }
      66                 :            : 
      67                 :            : 
      68                 :            : //*********************************************************************
      69                 :            : //  getKeyName
      70                 :            : //
      71                 :     214240 : RegError REGISTRY_CALLTYPE getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName)
      72                 :            : {
      73                 :     214240 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
      74         [ +  - ]:     214240 :     if (pKey)
      75                 :            :     {
      76                 :     214240 :         rtl_uString_assign( pKeyName, pKey->getName().pData );
      77                 :     214240 :         return REG_NO_ERROR;
      78                 :            :     } else
      79                 :            :     {
      80                 :          0 :         rtl_uString_new(pKeyName);
      81                 :     214240 :         return REG_INVALID_KEY;
      82                 :            :     }
      83                 :            : }
      84                 :            : 
      85                 :            : 
      86                 :            : //*********************************************************************
      87                 :            : //  createKey
      88                 :            : //
      89                 :      32280 : RegError REGISTRY_CALLTYPE createKey(RegKeyHandle hKey,
      90                 :            :                                      rtl_uString* keyName,
      91                 :            :                                      RegKeyHandle* phNewKey)
      92                 :            : {
      93                 :      32280 :     *phNewKey = 0;
      94                 :            : 
      95                 :      32280 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
      96         [ -  + ]:      32280 :     if (!pKey)
      97                 :          0 :         return REG_INVALID_KEY;
      98                 :            : 
      99         [ -  + ]:      32280 :     if (pKey->isDeleted())
     100                 :          0 :         return REG_INVALID_KEY;
     101                 :            : 
     102         [ -  + ]:      32280 :     if (pKey->isReadOnly())
     103                 :          0 :         return REG_REGISTRY_READONLY;
     104                 :            : 
     105         [ +  - ]:      32280 :     return pKey->createKey(keyName, phNewKey);
     106                 :            : }
     107                 :            : 
     108                 :            : //*********************************************************************
     109                 :            : //  openKey
     110                 :            : //
     111                 :     888352 : RegError REGISTRY_CALLTYPE openKey(RegKeyHandle hKey,
     112                 :            :                                    rtl_uString* keyName,
     113                 :            :                                    RegKeyHandle* phOpenKey)
     114                 :            : {
     115                 :     888352 :     *phOpenKey = 0;
     116                 :            : 
     117                 :     888352 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     118         [ -  + ]:     888352 :     if (!pKey)
     119                 :          0 :         return REG_INVALID_KEY;
     120                 :            : 
     121         [ -  + ]:     888352 :     if (pKey->isDeleted())
     122                 :          0 :         return REG_INVALID_KEY;
     123                 :            : 
     124         [ +  - ]:     888352 :     return pKey->openKey(keyName, phOpenKey);
     125                 :            : }
     126                 :            : 
     127                 :            : //*********************************************************************
     128                 :            : //  openSubKeys
     129                 :            : //
     130                 :      30200 : RegError REGISTRY_CALLTYPE openSubKeys(RegKeyHandle hKey,
     131                 :            :                                        rtl_uString* keyName,
     132                 :            :                                        RegKeyHandle** pphSubKeys,
     133                 :            :                                        sal_uInt32* pnSubKeys)
     134                 :            : {
     135                 :      30200 :     *pphSubKeys = NULL;
     136                 :      30200 :     *pnSubKeys = 0;
     137                 :            : 
     138                 :      30200 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     139         [ -  + ]:      30200 :     if (!pKey)
     140                 :          0 :         return REG_INVALID_KEY;
     141                 :            : 
     142         [ -  + ]:      30200 :     if (pKey->isDeleted())
     143                 :          0 :         return REG_INVALID_KEY;
     144                 :            : 
     145         [ +  - ]:      30200 :     return pKey->openSubKeys(keyName, pphSubKeys, pnSubKeys);
     146                 :            : }
     147                 :            : 
     148                 :            : //*********************************************************************
     149                 :            : //  closeSubKeys
     150                 :            : //
     151                 :       1418 : RegError REGISTRY_CALLTYPE closeSubKeys(RegKeyHandle* phSubKeys,
     152                 :            :                                         sal_uInt32 nSubKeys)
     153                 :            : {
     154 [ +  - ][ +  + ]:       1418 :     if (phSubKeys == 0 || nSubKeys == 0)
     155                 :          2 :         return REG_INVALID_KEY;
     156                 :            : 
     157                 :       1416 :     ORegistry* pReg = ((ORegKey*)(phSubKeys[0]))->getRegistry();
     158         [ +  + ]:      31716 :     for (sal_uInt32 i = 0; i < nSubKeys; i++)
     159                 :            :     {
     160                 :      30300 :         (void) pReg->closeKey(phSubKeys[i]);
     161                 :            :     }
     162                 :       1416 :     rtl_freeMemory(phSubKeys);
     163                 :            : 
     164                 :       1418 :     return REG_NO_ERROR;
     165                 :            : }
     166                 :            : 
     167                 :            : //*********************************************************************
     168                 :            : //  deleteKey
     169                 :            : //
     170                 :          4 : RegError REGISTRY_CALLTYPE deleteKey(RegKeyHandle hKey,
     171                 :            :                                      rtl_uString* keyName)
     172                 :            : {
     173                 :          4 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     174         [ -  + ]:          4 :     if (!pKey)
     175                 :          0 :         return REG_INVALID_KEY;
     176                 :            : 
     177         [ -  + ]:          4 :     if (pKey->isDeleted())
     178                 :          0 :         return REG_INVALID_KEY;
     179                 :            : 
     180         [ -  + ]:          4 :     if (pKey->isReadOnly())
     181                 :          0 :         return REG_REGISTRY_READONLY;
     182                 :            : 
     183         [ +  - ]:          4 :     return pKey->deleteKey(keyName);
     184                 :            : }
     185                 :            : 
     186                 :            : //*********************************************************************
     187                 :            : //  closeKey
     188                 :            : //
     189                 :      94925 : RegError REGISTRY_CALLTYPE closeKey(RegKeyHandle hKey)
     190                 :            : {
     191                 :      94925 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     192         [ -  + ]:      94925 :     if (!pKey)
     193                 :          0 :         return REG_INVALID_KEY;
     194                 :            : 
     195                 :      94925 :     return pKey->closeKey(hKey);
     196                 :            : }
     197                 :            : 
     198                 :            : //*********************************************************************
     199                 :            : //  setValue
     200                 :            : //
     201                 :      31016 : RegError REGISTRY_CALLTYPE setValue(RegKeyHandle hKey,
     202                 :            :                                        rtl_uString* keyName,
     203                 :            :                                        RegValueType valueType,
     204                 :            :                                        RegValue pData,
     205                 :            :                                        sal_uInt32 valueSize)
     206                 :            : {
     207                 :      31016 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     208         [ -  + ]:      31016 :     if (!pKey)
     209                 :          0 :         return REG_INVALID_KEY;
     210                 :            : 
     211         [ -  + ]:      31016 :     if (pKey->isDeleted())
     212                 :          0 :         return REG_INVALID_KEY;
     213                 :            : 
     214         [ -  + ]:      31016 :     if (pKey->isReadOnly())
     215                 :          0 :         return REG_REGISTRY_READONLY;
     216                 :            : 
     217         [ +  - ]:      31016 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     218         [ -  + ]:      31016 :     if (keyName->length)
     219                 :            :     {
     220                 :          0 :         ORegKey* pSubKey = 0;
     221         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     222         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     223                 :          0 :             return _ret1;
     224                 :            : 
     225         [ #  # ]:          0 :         _ret1 = pSubKey->setValue(valueName, valueType, pData, valueSize);
     226         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     227                 :            :         {
     228         [ #  # ]:          0 :             RegError _ret2 = pKey->closeKey(pSubKey);
     229         [ #  # ]:          0 :             if (_ret2)
     230                 :          0 :                 return _ret2;
     231                 :            :             else
     232                 :          0 :                 return _ret1;
     233                 :            :         }
     234                 :            : 
     235         [ #  # ]:          0 :         return pKey->closeKey(pSubKey);
     236                 :            :     }
     237                 :            : 
     238         [ +  - ]:      31016 :     return pKey->setValue(valueName, valueType, pData, valueSize);
     239                 :            : }
     240                 :            : 
     241                 :            : //*********************************************************************
     242                 :            : //  setLongValueList
     243                 :            : //
     244                 :          0 : RegError REGISTRY_CALLTYPE setLongListValue(RegKeyHandle hKey,
     245                 :            :                                                   rtl_uString* keyName,
     246                 :            :                                                   sal_Int32* pValueList,
     247                 :            :                                                   sal_uInt32 len)
     248                 :            : {
     249                 :          0 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     250         [ #  # ]:          0 :     if (!pKey)
     251                 :          0 :         return REG_INVALID_KEY;
     252                 :            : 
     253         [ #  # ]:          0 :     if (pKey->isDeleted())
     254                 :          0 :         return REG_INVALID_KEY;
     255                 :            : 
     256         [ #  # ]:          0 :     if (pKey->isReadOnly())
     257                 :          0 :         return REG_REGISTRY_READONLY;
     258                 :            : 
     259         [ #  # ]:          0 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     260         [ #  # ]:          0 :     if (keyName->length)
     261                 :            :     {
     262                 :          0 :         ORegKey* pSubKey = 0;
     263         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     264         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     265                 :          0 :             return _ret1;
     266                 :            : 
     267         [ #  # ]:          0 :         _ret1 = pSubKey->setLongListValue(valueName, pValueList, len);
     268         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     269                 :            :         {
     270         [ #  # ]:          0 :             RegError _ret2 = pKey->closeKey(pSubKey);
     271         [ #  # ]:          0 :             if (_ret2 != REG_NO_ERROR)
     272                 :          0 :                 return _ret2;
     273                 :            :             else
     274                 :          0 :                 return _ret1;
     275                 :            :         }
     276                 :            : 
     277         [ #  # ]:          0 :         return pKey->closeKey(pSubKey);
     278                 :            :     }
     279                 :            : 
     280         [ #  # ]:          0 :     return pKey->setLongListValue(valueName, pValueList, len);
     281                 :            : }
     282                 :            : 
     283                 :            : //*********************************************************************
     284                 :            : //  setStringValueList
     285                 :            : //
     286                 :        126 : RegError REGISTRY_CALLTYPE setStringListValue(RegKeyHandle hKey,
     287                 :            :                                                    rtl_uString* keyName,
     288                 :            :                                                    sal_Char** pValueList,
     289                 :            :                                                    sal_uInt32 len)
     290                 :            : {
     291                 :        126 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     292         [ -  + ]:        126 :     if (!pKey)
     293                 :          0 :         return REG_INVALID_KEY;
     294                 :            : 
     295         [ -  + ]:        126 :     if (pKey->isDeleted())
     296                 :          0 :         return REG_INVALID_KEY;
     297                 :            : 
     298         [ -  + ]:        126 :     if (pKey->isReadOnly())
     299                 :          0 :         return REG_REGISTRY_READONLY;
     300                 :            : 
     301         [ +  - ]:        126 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     302         [ -  + ]:        126 :     if (keyName->length)
     303                 :            :     {
     304                 :          0 :         ORegKey* pSubKey = 0;
     305         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     306         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     307                 :          0 :             return _ret1;
     308                 :            : 
     309         [ #  # ]:          0 :         _ret1 = pSubKey->setStringListValue(valueName, pValueList, len);
     310         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     311                 :            :         {
     312         [ #  # ]:          0 :             RegError _ret2 = pKey->closeKey(pSubKey);
     313         [ #  # ]:          0 :             if (_ret2 != REG_NO_ERROR)
     314                 :          0 :                 return _ret2;
     315                 :            :             else
     316                 :          0 :                 return _ret1;
     317                 :            :         }
     318                 :            : 
     319         [ #  # ]:          0 :         return pKey->closeKey(pSubKey);
     320                 :            :     }
     321                 :            : 
     322         [ +  - ]:        126 :     return pKey->setStringListValue(valueName, pValueList, len);
     323                 :            : }
     324                 :            : 
     325                 :            : //*********************************************************************
     326                 :            : //  setUnicodeValueList
     327                 :            : //
     328                 :          0 : RegError REGISTRY_CALLTYPE setUnicodeListValue(RegKeyHandle hKey,
     329                 :            :                                                      rtl_uString* keyName,
     330                 :            :                                                      sal_Unicode** pValueList,
     331                 :            :                                                      sal_uInt32 len)
     332                 :            : {
     333                 :          0 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     334         [ #  # ]:          0 :     if (!pKey)
     335                 :          0 :         return REG_INVALID_KEY;
     336                 :            : 
     337         [ #  # ]:          0 :     if (pKey->isDeleted())
     338                 :          0 :         return REG_INVALID_KEY;
     339                 :            : 
     340         [ #  # ]:          0 :     if (pKey->isReadOnly())
     341                 :          0 :         return REG_REGISTRY_READONLY;
     342                 :            : 
     343         [ #  # ]:          0 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     344         [ #  # ]:          0 :     if (keyName->length)
     345                 :            :     {
     346                 :          0 :         ORegKey* pSubKey = 0;
     347         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     348         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     349                 :          0 :             return _ret1;
     350                 :            : 
     351         [ #  # ]:          0 :         _ret1 = pSubKey->setUnicodeListValue(valueName, pValueList, len);
     352         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     353                 :            :         {
     354         [ #  # ]:          0 :             RegError _ret2 = pKey->closeKey(pSubKey);
     355         [ #  # ]:          0 :             if (_ret2 != REG_NO_ERROR)
     356                 :          0 :                 return _ret2;
     357                 :            :             else
     358                 :          0 :                 return _ret1;
     359                 :            :         }
     360                 :            : 
     361         [ #  # ]:          0 :         return pKey->closeKey(pSubKey);
     362                 :            :     }
     363                 :            : 
     364         [ #  # ]:          0 :     return pKey->setUnicodeListValue(valueName, pValueList, len);
     365                 :            : }
     366                 :            : 
     367                 :            : //*********************************************************************
     368                 :            : //  getValueInfo
     369                 :            : //
     370                 :     257151 : RegError REGISTRY_CALLTYPE getValueInfo(RegKeyHandle hKey,
     371                 :            :                                         rtl_uString* keyName,
     372                 :            :                                         RegValueType* pValueType,
     373                 :            :                                         sal_uInt32* pValueSize)
     374                 :            : {
     375                 :     257151 :     *pValueType = RG_VALUETYPE_NOT_DEFINED;
     376                 :     257151 :     *pValueSize = 0;
     377                 :            : 
     378                 :     257151 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     379         [ -  + ]:     257151 :     if (!pKey)
     380                 :          0 :         return REG_INVALID_KEY;
     381                 :            : 
     382         [ -  + ]:     257151 :     if (pKey->isDeleted())
     383                 :          0 :         return REG_INVALID_KEY;
     384                 :            : 
     385                 :            :     RegValueType valueType;
     386                 :            :     sal_uInt32   valueSize;
     387                 :            : 
     388         [ +  - ]:     257151 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     389         [ -  + ]:     257151 :     if (keyName->length)
     390                 :            :     {
     391                 :          0 :         ORegKey* pSubKey = 0;
     392         [ #  # ]:          0 :         RegError _ret = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     393         [ #  # ]:          0 :         if (_ret != REG_NO_ERROR)
     394                 :          0 :             return _ret;
     395                 :            : 
     396 [ #  # ][ #  # ]:          0 :         if (pSubKey->getValueInfo(valueName, &valueType, &valueSize) != REG_NO_ERROR)
     397                 :            :         {
     398         [ #  # ]:          0 :             (void) pKey->releaseKey(pSubKey);
     399                 :          0 :             return REG_INVALID_VALUE;
     400                 :            :         }
     401                 :            : 
     402                 :          0 :         *pValueType = valueType;
     403                 :          0 :         *pValueSize = valueSize;
     404                 :            : 
     405         [ #  # ]:          0 :         return pKey->releaseKey(pSubKey);
     406                 :            :     }
     407                 :            : 
     408                 :            : 
     409 [ +  - ][ +  + ]:     257151 :     if (pKey->getValueInfo(valueName, &valueType, &valueSize) != REG_NO_ERROR)
     410                 :            :     {
     411                 :        892 :         return REG_INVALID_VALUE;
     412                 :            :     }
     413                 :            : 
     414                 :     256259 :     *pValueType = valueType;
     415                 :     256259 :     *pValueSize = valueSize;
     416                 :            : 
     417                 :     257151 :     return REG_NO_ERROR;
     418                 :            : }
     419                 :            : 
     420                 :            : //*********************************************************************
     421                 :            : //  getValueInfo
     422                 :            : //
     423                 :     186564 : RegError REGISTRY_CALLTYPE getValue(RegKeyHandle hKey,
     424                 :            :                                     rtl_uString* keyName,
     425                 :            :                                     RegValue pValue)
     426                 :            : {
     427                 :     186564 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     428         [ -  + ]:     186564 :     if (!pKey)
     429                 :          0 :         return REG_INVALID_KEY;
     430                 :            : 
     431         [ -  + ]:     186564 :     if (pKey->isDeleted())
     432                 :          0 :         return REG_INVALID_KEY;
     433                 :            : 
     434         [ +  - ]:     186564 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     435         [ -  + ]:     186564 :     if (keyName->length)
     436                 :            :     {
     437                 :          0 :         ORegKey* pSubKey = 0;
     438         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     439         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     440                 :          0 :             return _ret1;
     441                 :            : 
     442         [ #  # ]:          0 :         _ret1 = pSubKey->getValue(valueName, pValue);
     443         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     444                 :            :         {
     445         [ #  # ]:          0 :             (void) pKey->releaseKey(pSubKey);
     446                 :          0 :             return _ret1;
     447                 :            :         }
     448                 :            : 
     449         [ #  # ]:          0 :         return pKey->releaseKey(pSubKey);
     450                 :            :     }
     451                 :            : 
     452         [ +  - ]:     186564 :     return pKey->getValue(valueName, pValue);
     453                 :            : }
     454                 :            : 
     455                 :            : //*********************************************************************
     456                 :            : //  getLongValueList
     457                 :            : //
     458                 :          0 : RegError REGISTRY_CALLTYPE getLongListValue(RegKeyHandle hKey,
     459                 :            :                                             rtl_uString* keyName,
     460                 :            :                                             sal_Int32** pValueList,
     461                 :            :                                             sal_uInt32* pLen)
     462                 :            : {
     463                 :            :     OSL_PRECOND((pValueList != 0) && (pLen != 0), "registry::getLongListValue(): invalid parameter");
     464                 :          0 :     *pValueList = 0, *pLen = 0;
     465                 :            : 
     466                 :          0 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     467         [ #  # ]:          0 :     if (!pKey)
     468                 :          0 :         return REG_INVALID_KEY;
     469                 :            : 
     470         [ #  # ]:          0 :     if (pKey->isDeleted())
     471                 :          0 :         return REG_INVALID_KEY;
     472                 :            : 
     473         [ #  # ]:          0 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     474         [ #  # ]:          0 :     if (keyName->length)
     475                 :            :     {
     476                 :          0 :         ORegKey* pSubKey = 0;
     477         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     478         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     479                 :          0 :             return _ret1;
     480                 :            : 
     481         [ #  # ]:          0 :         _ret1 = pSubKey->getLongListValue(valueName, pValueList, pLen);
     482         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     483                 :            :         {
     484         [ #  # ]:          0 :             (void) pKey->releaseKey(pSubKey);
     485                 :          0 :             return _ret1;
     486                 :            :         }
     487                 :            : 
     488         [ #  # ]:          0 :         return pKey->releaseKey(pSubKey);
     489                 :            :     }
     490                 :            : 
     491         [ #  # ]:          0 :     return pKey->getLongListValue(valueName, pValueList, pLen);
     492                 :            : }
     493                 :            : 
     494                 :            : //*********************************************************************
     495                 :            : //  getStringValueList
     496                 :            : //
     497                 :          0 : RegError REGISTRY_CALLTYPE getStringListValue(RegKeyHandle hKey,
     498                 :            :                                               rtl_uString* keyName,
     499                 :            :                                               sal_Char*** pValueList,
     500                 :            :                                               sal_uInt32* pLen)
     501                 :            : {
     502                 :            :     OSL_PRECOND((pValueList != 0) && (pLen != 0), "registry::getStringListValue(): invalid parameter");
     503                 :          0 :     *pValueList = 0, *pLen = 0;
     504                 :            : 
     505                 :          0 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     506         [ #  # ]:          0 :     if (!pKey)
     507                 :          0 :         return REG_INVALID_KEY;
     508                 :            : 
     509         [ #  # ]:          0 :     if (pKey->isDeleted())
     510                 :          0 :         return REG_INVALID_KEY;
     511                 :            : 
     512         [ #  # ]:          0 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     513         [ #  # ]:          0 :     if (keyName->length)
     514                 :            :     {
     515                 :          0 :         ORegKey* pSubKey = 0;
     516         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     517         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     518                 :          0 :             return _ret1;
     519                 :            : 
     520         [ #  # ]:          0 :         _ret1 = pSubKey->getStringListValue(valueName, pValueList, pLen);
     521         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     522                 :            :         {
     523         [ #  # ]:          0 :             (void) pKey->releaseKey(pSubKey);
     524                 :          0 :             return _ret1;
     525                 :            :         }
     526                 :            : 
     527         [ #  # ]:          0 :         return pKey->releaseKey(pSubKey);
     528                 :            :     }
     529                 :            : 
     530         [ #  # ]:          0 :     return pKey->getStringListValue(valueName, pValueList, pLen);
     531                 :            : }
     532                 :            : 
     533                 :            : //*********************************************************************
     534                 :            : //  getUnicodeListValue
     535                 :            : //
     536                 :          0 : RegError REGISTRY_CALLTYPE getUnicodeListValue(RegKeyHandle hKey,
     537                 :            :                                                rtl_uString* keyName,
     538                 :            :                                                sal_Unicode*** pValueList,
     539                 :            :                                                sal_uInt32* pLen)
     540                 :            : {
     541                 :            :     OSL_PRECOND((pValueList != 0) && (pLen != 0), "registry::getUnicodeListValue(): invalid parameter");
     542                 :          0 :     *pValueList = 0, *pLen = 0;
     543                 :            : 
     544                 :          0 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     545         [ #  # ]:          0 :     if (!pKey)
     546                 :          0 :         return REG_INVALID_KEY;
     547                 :            : 
     548         [ #  # ]:          0 :     if (pKey->isDeleted())
     549                 :          0 :         return REG_INVALID_KEY;
     550                 :            : 
     551         [ #  # ]:          0 :     OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
     552         [ #  # ]:          0 :     if (keyName->length)
     553                 :            :     {
     554                 :          0 :         ORegKey* pSubKey = 0;
     555         [ #  # ]:          0 :         RegError _ret1 = pKey->openKey(keyName, (RegKeyHandle*)&pSubKey);
     556         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     557                 :          0 :             return _ret1;
     558                 :            : 
     559         [ #  # ]:          0 :         _ret1 = pSubKey->getUnicodeListValue(valueName, pValueList, pLen);
     560         [ #  # ]:          0 :         if (_ret1 != REG_NO_ERROR)
     561                 :            :         {
     562         [ #  # ]:          0 :             (void) pKey->releaseKey(pSubKey);
     563                 :          0 :             return _ret1;
     564                 :            :         }
     565                 :            : 
     566         [ #  # ]:          0 :         return pKey->releaseKey(pSubKey);
     567                 :            :     }
     568                 :            : 
     569         [ #  # ]:          0 :     return pKey->getUnicodeListValue(valueName, pValueList, pLen);
     570                 :            : }
     571                 :            : 
     572                 :            : //*********************************************************************
     573                 :            : //  freeValueList
     574                 :            : //
     575                 :          0 : RegError REGISTRY_CALLTYPE freeValueList(RegValueType valueType,
     576                 :            :                                               RegValue pValueList,
     577                 :            :                                               sal_uInt32 len)
     578                 :            : {
     579   [ #  #  #  # ]:          0 :     switch (valueType)
     580                 :            :     {
     581                 :            :         case 5:
     582                 :            :             {
     583                 :          0 :                 rtl_freeMemory(pValueList);
     584                 :            :             }
     585                 :          0 :             break;
     586                 :            :         case 6:
     587                 :            :             {
     588                 :          0 :                 sal_Char** pVList = (sal_Char**)pValueList;
     589         [ #  # ]:          0 :                 for (sal_uInt32 i=0; i < len; i++)
     590                 :            :                 {
     591                 :          0 :                     rtl_freeMemory(pVList[i]);
     592                 :            :                 }
     593                 :            : 
     594                 :          0 :                 rtl_freeMemory(pVList);
     595                 :            :             }
     596                 :          0 :             break;
     597                 :            :         case 7:
     598                 :            :             {
     599                 :          0 :                 sal_Unicode** pVList = (sal_Unicode**)pValueList;
     600         [ #  # ]:          0 :                 for (sal_uInt32 i=0; i < len; i++)
     601                 :            :                 {
     602                 :          0 :                     rtl_freeMemory(pVList[i]);
     603                 :            :                 }
     604                 :            : 
     605                 :          0 :                 rtl_freeMemory(pVList);
     606                 :            :             }
     607                 :          0 :             break;
     608                 :            :         default:
     609                 :          0 :             return REG_INVALID_VALUE;
     610                 :            :     }
     611                 :            : 
     612                 :          0 :     pValueList = NULL;
     613                 :          0 :     return REG_NO_ERROR;
     614                 :            : }
     615                 :            : 
     616                 :            : //*********************************************************************
     617                 :            : //  createLink
     618                 :            : //
     619                 :          0 : RegError REGISTRY_CALLTYPE createLink(
     620                 :            :     SAL_UNUSED_PARAMETER RegKeyHandle, SAL_UNUSED_PARAMETER rtl_uString*,
     621                 :            :     SAL_UNUSED_PARAMETER rtl_uString*)
     622                 :            : {
     623                 :          0 :     return REG_INVALID_LINK; // links are no longer supported
     624                 :            : }
     625                 :            : 
     626                 :            : //*********************************************************************
     627                 :            : //  deleteLink
     628                 :            : //
     629                 :          0 : RegError REGISTRY_CALLTYPE deleteLink(
     630                 :            :     SAL_UNUSED_PARAMETER RegKeyHandle, SAL_UNUSED_PARAMETER rtl_uString*)
     631                 :            : {
     632                 :          0 :     return REG_INVALID_LINK; // links are no longer supported
     633                 :            : }
     634                 :            : 
     635                 :            : //*********************************************************************
     636                 :            : //  getKeyType
     637                 :            : //
     638                 :        820 : RegError REGISTRY_CALLTYPE getKeyType(RegKeyHandle hKey,
     639                 :            :                                       rtl_uString* keyName,
     640                 :            :                                          RegKeyType* pKeyType)
     641                 :            : {
     642                 :        820 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     643         [ -  + ]:        820 :     if (!pKey)
     644                 :          0 :         return REG_INVALID_KEY;
     645                 :            : 
     646         [ -  + ]:        820 :     if (pKey->isDeleted())
     647                 :          0 :         return REG_INVALID_KEY;
     648                 :            : 
     649         [ +  - ]:        820 :     return pKey->getKeyType(keyName, pKeyType);
     650                 :            : }
     651                 :            : 
     652                 :            : //*********************************************************************
     653                 :            : //  getLinkTarget
     654                 :            : //
     655                 :          0 : RegError REGISTRY_CALLTYPE getLinkTarget(
     656                 :            :     SAL_UNUSED_PARAMETER RegKeyHandle, SAL_UNUSED_PARAMETER rtl_uString*,
     657                 :            :     SAL_UNUSED_PARAMETER rtl_uString**)
     658                 :            : {
     659                 :          0 :     return REG_INVALID_LINK; // links are no longer supported
     660                 :            : }
     661                 :            : 
     662                 :            : //*********************************************************************
     663                 :            : //  getName
     664                 :            : //
     665                 :     267565 : RegError REGISTRY_CALLTYPE getResolvedKeyName(RegKeyHandle hKey,
     666                 :            :                                               rtl_uString* keyName,
     667                 :            :                                               SAL_UNUSED_PARAMETER sal_Bool,
     668                 :            :                                                 rtl_uString** pResolvedName)
     669                 :            : {
     670                 :     267565 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     671         [ -  + ]:     267565 :     if (!pKey)
     672                 :          0 :         return REG_INVALID_KEY;
     673                 :            : 
     674         [ -  + ]:     267565 :     if (pKey->isDeleted())
     675                 :          0 :         return REG_INVALID_KEY;
     676                 :            : 
     677                 :     267565 :     OUString resolvedName;
     678         [ +  - ]:     267565 :     RegError _ret = pKey->getResolvedKeyName(keyName, resolvedName);
     679         [ +  - ]:     267565 :     if (_ret == REG_NO_ERROR)
     680                 :     267565 :         rtl_uString_assign(pResolvedName, resolvedName.pData);
     681                 :     267565 :     return _ret;
     682                 :            : }
     683                 :            : 
     684                 :            : //*********************************************************************
     685                 :            : //  getKeyNames
     686                 :            : //
     687                 :      18706 : RegError REGISTRY_CALLTYPE getKeyNames(RegKeyHandle hKey,
     688                 :            :                                        rtl_uString* keyName,
     689                 :            :                                          rtl_uString*** pSubKeyNames,
     690                 :            :                                          sal_uInt32* pnSubKeys)
     691                 :            : {
     692                 :      18706 :     ORegKey* pKey = static_cast< ORegKey* >(hKey);
     693         [ -  + ]:      18706 :     if (!pKey)
     694                 :          0 :         return REG_INVALID_KEY;
     695                 :            : 
     696         [ -  + ]:      18706 :     if (pKey->isDeleted())
     697                 :          0 :         return REG_INVALID_KEY;
     698                 :            : 
     699         [ +  - ]:      18706 :     return pKey->getKeyNames(keyName, pSubKeyNames, pnSubKeys);
     700                 :            : }
     701                 :            : 
     702                 :            : //*********************************************************************
     703                 :            : //  freeKeyNames
     704                 :            : //
     705                 :       1686 : RegError REGISTRY_CALLTYPE freeKeyNames(rtl_uString** pKeyNames,
     706                 :            :                                           sal_uInt32 nKeys)
     707                 :            : {
     708         [ +  + ]:      22458 :     for (sal_uInt32 i=0; i < nKeys; i++)
     709                 :            :     {
     710                 :      20772 :         rtl_uString_release(pKeyNames[i]);
     711                 :            :     }
     712                 :            : 
     713                 :       1686 :     rtl_freeMemory(pKeyNames);
     714                 :            : 
     715                 :       1686 :     return REG_NO_ERROR;
     716                 :            : }
     717                 :            : 
     718                 :            : //*********************************************************************
     719                 :            : //  C API
     720                 :            : //
     721                 :            : 
     722                 :            : //*********************************************************************
     723                 :            : //  reg_createKey
     724                 :            : //
     725                 :          0 : RegError REGISTRY_CALLTYPE reg_createKey(RegKeyHandle hKey,
     726                 :            :                                          rtl_uString* keyName,
     727                 :            :                                          RegKeyHandle* phNewKey)
     728                 :            : {
     729         [ #  # ]:          0 :     if (!hKey)
     730                 :          0 :          return REG_INVALID_KEY;
     731                 :            : 
     732                 :          0 :     return createKey(hKey, keyName, phNewKey);
     733                 :            : }
     734                 :            : 
     735                 :            : //*********************************************************************
     736                 :            : //  reg_openKey
     737                 :            : //
     738                 :          0 : RegError REGISTRY_CALLTYPE reg_openKey(RegKeyHandle hKey,
     739                 :            :                                        rtl_uString* keyName,
     740                 :            :                                        RegKeyHandle* phOpenKey)
     741                 :            : {
     742         [ #  # ]:          0 :     if (!hKey)
     743                 :          0 :         return REG_INVALID_KEY;
     744                 :            : 
     745                 :          0 :     return openKey(hKey, keyName, phOpenKey);
     746                 :            : }
     747                 :            : 
     748                 :            : //*********************************************************************
     749                 :            : //  reg_openSubKeys
     750                 :            : //
     751                 :          0 : RegError REGISTRY_CALLTYPE reg_openSubKeys(RegKeyHandle hKey,
     752                 :            :                                            rtl_uString* keyName,
     753                 :            :                                            RegKeyHandle** pphSubKeys,
     754                 :            :                                            sal_uInt32* pnSubKeys)
     755                 :            : {
     756         [ #  # ]:          0 :     if (!hKey)
     757                 :          0 :         return REG_INVALID_KEY;
     758                 :            : 
     759                 :          0 :     return openSubKeys(hKey, keyName, pphSubKeys, pnSubKeys);
     760                 :            : }
     761                 :            : 
     762                 :            : //*********************************************************************
     763                 :            : //  reg_closeSubKeys
     764                 :            : //
     765                 :          0 : RegError REGISTRY_CALLTYPE reg_closeSubKeys(RegKeyHandle* pphSubKeys,
     766                 :            :                                             sal_uInt32 nSubKeys)
     767                 :            : {
     768         [ #  # ]:          0 :     if (!pphSubKeys)
     769                 :          0 :         return REG_INVALID_KEY;
     770                 :            : 
     771                 :          0 :     return closeSubKeys(pphSubKeys, nSubKeys);
     772                 :            : }
     773                 :            : 
     774                 :            : //*********************************************************************
     775                 :            : //  reg_deleteKey
     776                 :            : //
     777                 :          0 : RegError REGISTRY_CALLTYPE reg_deleteKey(RegKeyHandle hKey,
     778                 :            :                                          rtl_uString* keyName)
     779                 :            : {
     780         [ #  # ]:          0 :     if (!hKey)
     781                 :          0 :         return REG_INVALID_KEY;
     782                 :            : 
     783                 :          0 :     return deleteKey(hKey, keyName);
     784                 :            : }
     785                 :            : 
     786                 :            : //*********************************************************************
     787                 :            : //  reg_closeKey
     788                 :            : //
     789                 :          0 : RegError REGISTRY_CALLTYPE reg_closeKey(RegKeyHandle hKey)
     790                 :            : {
     791         [ #  # ]:          0 :     if (!hKey)
     792                 :          0 :         return REG_INVALID_KEY;
     793                 :            : 
     794                 :          0 :     return closeKey(hKey);
     795                 :            : }
     796                 :            : 
     797                 :            : 
     798                 :            : //*********************************************************************
     799                 :            : //  reg_getKeyName
     800                 :            : //
     801                 :          0 : RegError REGISTRY_CALLTYPE reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName)
     802                 :            : {
     803         [ #  # ]:          0 :     if (hKey)
     804                 :            :     {
     805                 :          0 :         rtl_uString_assign( pKeyName, ((ORegKey*)hKey)->getName().pData );
     806                 :          0 :         return REG_NO_ERROR;
     807                 :            :     } else
     808                 :            :     {
     809                 :          0 :         rtl_uString_new( pKeyName );
     810                 :          0 :         return REG_INVALID_KEY;
     811                 :            :     }
     812                 :            : }
     813                 :            : 
     814                 :            : //*********************************************************************
     815                 :            : //  reg_setValue
     816                 :            : //
     817                 :          0 : RegError REGISTRY_CALLTYPE reg_setValue(RegKeyHandle hKey,
     818                 :            :                                         rtl_uString* keyName,
     819                 :            :                                         RegValueType valueType,
     820                 :            :                                         RegValue pData,
     821                 :            :                                         sal_uInt32 valueSize)
     822                 :            : {
     823         [ #  # ]:          0 :     if (!hKey)
     824                 :          0 :         return REG_INVALID_KEY;
     825                 :            : 
     826                 :          0 :     return setValue(hKey, keyName, valueType, pData, valueSize);
     827                 :            : }
     828                 :            : 
     829                 :            : //*********************************************************************
     830                 :            : //  reg_setLongListValue
     831                 :            : //
     832                 :          0 : RegError REGISTRY_CALLTYPE reg_setLongListValue(RegKeyHandle hKey,
     833                 :            :                                                       rtl_uString* keyName,
     834                 :            :                                                       sal_Int32* pValueList,
     835                 :            :                                                       sal_uInt32 len)
     836                 :            : {
     837         [ #  # ]:          0 :     if (!hKey)
     838                 :          0 :         return REG_INVALID_KEY;
     839                 :            : 
     840                 :          0 :     return setLongListValue(hKey, keyName, pValueList, len);
     841                 :            : }
     842                 :            : 
     843                 :            : //*********************************************************************
     844                 :            : //  reg_setStringListValue
     845                 :            : //
     846                 :          0 : RegError REGISTRY_CALLTYPE reg_setStringListValue(RegKeyHandle hKey,
     847                 :            :                                                           rtl_uString* keyName,
     848                 :            :                                                           sal_Char** pValueList,
     849                 :            :                                                           sal_uInt32 len)
     850                 :            : {
     851         [ #  # ]:          0 :     if (!hKey)
     852                 :          0 :         return REG_INVALID_KEY;
     853                 :            : 
     854                 :          0 :     return setStringListValue(hKey, keyName, pValueList, len);
     855                 :            : }
     856                 :            : 
     857                 :            : //*********************************************************************
     858                 :            : //  reg_setUnicodeListValue
     859                 :            : //
     860                 :          0 : RegError REGISTRY_CALLTYPE reg_setUnicodeListValue(RegKeyHandle hKey,
     861                 :            :                                                             rtl_uString* keyName,
     862                 :            :                                                             sal_Unicode** pValueList,
     863                 :            :                                                             sal_uInt32 len)
     864                 :            : {
     865         [ #  # ]:          0 :     if (!hKey)
     866                 :          0 :         return REG_INVALID_KEY;
     867                 :            : 
     868                 :          0 :     return setUnicodeListValue(hKey, keyName, pValueList, len);
     869                 :            : }
     870                 :            : 
     871                 :            : //*********************************************************************
     872                 :            : //  reg_getValueInfo
     873                 :            : //
     874                 :          0 : RegError REGISTRY_CALLTYPE reg_getValueInfo(RegKeyHandle hKey,
     875                 :            :                                             rtl_uString* keyName,
     876                 :            :                                             RegValueType* pValueType,
     877                 :            :                                             sal_uInt32* pValueSize)
     878                 :            : {
     879         [ #  # ]:          0 :     if (!hKey)
     880                 :          0 :         return REG_INVALID_KEY;
     881                 :            : 
     882                 :          0 :     return getValueInfo(hKey, keyName, pValueType, pValueSize);
     883                 :            : }
     884                 :            : 
     885                 :            : //*********************************************************************
     886                 :            : //  reg_getValueInfo
     887                 :            : //
     888                 :          0 : RegError REGISTRY_CALLTYPE reg_getValue(RegKeyHandle hKey,
     889                 :            :                                         rtl_uString* keyName,
     890                 :            :                                         RegValue pData)
     891                 :            : {
     892         [ #  # ]:          0 :     if (!hKey)
     893                 :          0 :         return REG_INVALID_KEY;
     894                 :            : 
     895                 :          0 :     return getValue(hKey, keyName, pData);
     896                 :            : }
     897                 :            : 
     898                 :            : //*********************************************************************
     899                 :            : //  reg_getLongListValue
     900                 :            : //
     901                 :          0 : RegError REGISTRY_CALLTYPE reg_getLongListValue(RegKeyHandle hKey,
     902                 :            :                                                       rtl_uString* keyName,
     903                 :            :                                                       sal_Int32** pValueList,
     904                 :            :                                                       sal_uInt32* pLen)
     905                 :            : {
     906         [ #  # ]:          0 :     if (!hKey)
     907                 :          0 :         return REG_INVALID_KEY;
     908                 :            : 
     909                 :          0 :     return getLongListValue(hKey, keyName, pValueList, pLen);
     910                 :            : }
     911                 :            : 
     912                 :            : //*********************************************************************
     913                 :            : //  reg_getStringListValue
     914                 :            : //
     915                 :          0 : RegError REGISTRY_CALLTYPE reg_getStringListValue(RegKeyHandle hKey,
     916                 :            :                                                        rtl_uString* keyName,
     917                 :            :                                                        sal_Char*** pValueList,
     918                 :            :                                                        sal_uInt32* pLen)
     919                 :            : {
     920         [ #  # ]:          0 :     if (!hKey)
     921                 :          0 :         return REG_INVALID_KEY;
     922                 :            : 
     923                 :          0 :     return getStringListValue(hKey, keyName, pValueList, pLen);
     924                 :            : }
     925                 :            : 
     926                 :            : //*********************************************************************
     927                 :            : //  reg_getUnicodeListValue
     928                 :            : //
     929                 :          0 : RegError REGISTRY_CALLTYPE reg_getUnicodeListValue(RegKeyHandle hKey,
     930                 :            :                                                          rtl_uString* keyName,
     931                 :            :                                                          sal_Unicode*** pValueList,
     932                 :            :                                                          sal_uInt32* pLen)
     933                 :            : {
     934         [ #  # ]:          0 :     if (!hKey)
     935                 :          0 :         return REG_INVALID_KEY;
     936                 :            : 
     937                 :          0 :     return getUnicodeListValue(hKey, keyName, pValueList, pLen);
     938                 :            : }
     939                 :            : 
     940                 :            : //*********************************************************************
     941                 :            : //  reg_freeValueList
     942                 :            : //
     943                 :          0 : RegError REGISTRY_CALLTYPE reg_freeValueList(RegValueType valueType,
     944                 :            :                                                   RegValue pValueList,
     945                 :            :                                                   sal_uInt32 len)
     946                 :            : {
     947         [ #  # ]:          0 :     if (pValueList)
     948                 :          0 :         return freeValueList(valueType, pValueList, len);
     949                 :            :     else
     950                 :          0 :         return REG_INVALID_VALUE;
     951                 :            : }
     952                 :            : 
     953                 :            : //*********************************************************************
     954                 :            : //  reg_getKeyType
     955                 :            : //
     956                 :          0 : RegError REGISTRY_CALLTYPE reg_getKeyType(RegKeyHandle hKey,
     957                 :            :                                           rtl_uString* keyName,
     958                 :            :                                              RegKeyType* pKeyType)
     959                 :            : {
     960         [ #  # ]:          0 :     if (!hKey)
     961                 :          0 :         return REG_INVALID_KEY;
     962                 :            : 
     963                 :          0 :     return getKeyType(hKey, keyName, pKeyType);
     964                 :            : }
     965                 :            : 
     966                 :            : //*********************************************************************
     967                 :            : //  reg_getResolvedKeyName
     968                 :            : //
     969                 :          0 : RegError REGISTRY_CALLTYPE reg_getResolvedKeyName(RegKeyHandle hKey,
     970                 :            :                                                     rtl_uString* keyName,
     971                 :            :                                                     sal_Bool firstLinkOnly,
     972                 :            :                                                       rtl_uString** pResolvedName)
     973                 :            : {
     974         [ #  # ]:          0 :     if (!hKey)
     975                 :          0 :         return REG_INVALID_KEY;
     976                 :            : 
     977                 :          0 :     return getResolvedKeyName(hKey, keyName, firstLinkOnly, pResolvedName);
     978                 :            : }
     979                 :            : 
     980                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10