VXIclientUtils.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:4k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. /****************License************************************************
  2.  * Vocalocity OpenVXI
  3.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *  
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  18.  * registered trademarks of Vocalocity, Inc. 
  19.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  20.  * by Vocalocity.
  21.  ***********************************************************************/
  22. #ifndef _VXICLIENT_UTILS_H
  23. #define _VXICLIENT_UTILS_H
  24. #include "VXIheaderPrefix.h"
  25. #ifdef VXIUTIL_EXPORTS
  26. #define VXIUTIL_API SYMBOL_EXPORT_DECL
  27. #else
  28. #define VXIUTIL_API SYMBOL_IMPORT_DECL
  29. #endif
  30. #include <VXIvalue.h>          /* For the VXIlog interface */
  31. #include "VXIplatform.h"
  32. #include <stdarg.h>               /* For va_list */
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36. #define BUFSIZE (4096 + 1024) // typical maxlen is 4096, want room over that
  37. // Convert wide to narrow characters
  38. #define w2c(w) (((w) & 0xff00)?'277':((unsigned char) ((w) & 0x00ff)))
  39. /* Avoid locale dependent ctype.h macros */
  40. #define ISWSPACE(c) 
  41.   (((c == L' ') || (c == L't') || (c == L'n') || (c == L'r')) ? 1 : 0)
  42. #define ISWALPHA(c) 
  43.   ((((c >= L'a') && (c <= L'z')) || ((c >= L'A') && (c <= L'Z'))) ? 1 : 0)
  44. #define ISWDIGIT(c) 
  45.   (((c >= L'0') && (c <= L'9')) ? 1 : 0)
  46. /* Avoid locale dependent mbstowcs( ) and wcstombs( ) */
  47. VXIplatformResult
  48. char2wchar(VXIchar *wstr, const char *str, int len);
  49. VXIplatformResult 
  50. wchar2char(char *str, const VXIchar *wstr, int len);
  51. /* Convinence functions to retrieve VXIMap value */
  52. int GetVXIBool
  53. (
  54.   const VXIMap  *configArgs,
  55.   const VXIchar *paramName,
  56.   VXIbool       *paramValue
  57. );
  58. int GetVXIInt
  59. (
  60.   const VXIMap  *configArgs,
  61.   const VXIchar *paramName,
  62.   VXIint32       *paramValue
  63. );
  64. int GetVXILong
  65. (
  66.   const VXIMap  *configArgs,
  67.   const VXIchar *paramName,
  68.   VXIlong       *paramValue
  69. );
  70. int GetVXIULong
  71. (
  72.   const VXIMap  *configArgs,
  73.   const VXIchar *paramName,
  74.   VXIulong      *paramValue
  75. );
  76. int GetVXIFloat
  77. (
  78.   const VXIMap  *configArgs,
  79.   const VXIchar *paramName,
  80.   VXIflt32      *paramValue
  81. );
  82. int GetVXIDouble
  83. (
  84.   const VXIMap  *configArgs,
  85.   const VXIchar *paramName,
  86.   VXIflt64      *paramValue
  87. );
  88. int GetVXIString
  89. (
  90.   const VXIMap  *configArgs,
  91.   const VXIchar *paramName,
  92.   const VXIchar **paramValue
  93. );
  94. int GetVXIVector
  95. (
  96.   const VXIMap     *configArgs,
  97.   const VXIchar    *paramName,
  98.   const VXIVector **paramValue
  99. );
  100. int GetVXIMap
  101. (
  102.   const VXIMap     *configArgs,
  103.   const VXIchar    *paramName,
  104.   const VXIMap **paramValue
  105. );
  106. /* OS-independent vswprintf replacement */
  107. int VXIvswprintf
  108. (
  109.   wchar_t* wcs, 
  110.   size_t maxlen,
  111.   const wchar_t* format, 
  112.   va_list args
  113. );
  114. /**
  115.  * Dynamic library loading
  116.  */
  117. #ifdef WIN32
  118. #include <windows.h>
  119. typedef HINSTANCE LibraryPtr;
  120. #else
  121. typedef void *    LibraryPtr;
  122. #endif
  123. typedef struct DynLibrary {
  124.   LibraryPtr libPtr;
  125. } DynLibrary;
  126. VXIplatformResult
  127. LoadDynLibrary
  128. (
  129.   const char      *libName, 
  130.   DynLibrary      **libHandle
  131. );
  132. VXIplatformResult
  133. LoadDynSymbol
  134. (
  135.   DynLibrary  *libHandle, 
  136.   const char  *symName,
  137.   void        **symPtr
  138. );
  139. VXIplatformResult
  140. CloseDynLibrary
  141. (
  142.   DynLibrary      **libHandle
  143. );
  144. #ifdef __cplusplus
  145. }
  146. #endif
  147. #endif /* include guard */