hxdllaccess.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:6k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef _HXDLLACCESS_H_
  36. #define _HXDLLACCESS_H_
  37. /****************************************************************************
  38.  *  Defines:
  39.  */
  40. /****************************************************************************
  41.  *  DLL types:
  42.  */
  43. #define HXDLLTYPE_NOT_DEFINED 0 // Arbitrary DLLs (no predefined path used)
  44. #define HXDLLTYPE_PLUGIN 1 // Plug-ins
  45. #define HXDLLTYPE_CODEC 2 // Codecs
  46. #define HXDLLTYPE_ENCSDK 3 // Encoder SDK DLLs 
  47. #define HXDLLTYPE_COMMON 4 // Common libraries       
  48. #define HXDLLTYPE_UPDATE 5 // Setup/Upgrade libraries
  49. // HXDLLTYPEs 5-10 are reserved for backward compatibility reasons
  50. /****************************************************************************
  51.  *  Service specific error codes:
  52.  */
  53. #define HXDLL_OK 0
  54. #define HXDLL_NO_LOAD 1
  55. #define HXDLL_BAD_SYMBOL 2
  56. #define HXDLL_OUT_OF_MEMORY 3
  57. /****************************************************************************
  58.  *  Dll default version key
  59.  */
  60. #define HXDLL_DFLT_VERSION 0xFFFFFFFF
  61. /****************************************************************************
  62.  * 
  63.  *  Interface:
  64.  *
  65.  * IHXDllAccess
  66.  *
  67.  *  Purpose:
  68.  *
  69.  * Interface for DLL Access
  70.  *
  71.  *  IID_IHXDllAccess
  72.  *
  73.  * {D5A71AA1-A6ED-479f-9FC6-F06B99142691}
  74.  *
  75.  */
  76. DEFINE_GUID(IID_IHXDllAccess,
  77. 0xd5a71aa1, 0xa6ed, 0x479f, 0x9f, 0xc6, 0xf0, 0x6b, 0x99, 0x14, 0x26, 0x91);
  78. #define CLSID_IHXDllAccess IID_IHXDllAccess
  79. #undef  INTERFACE
  80. #define INTERFACE   IHXDllAccess
  81. DECLARE_INTERFACE_(IHXDllAccess, IUnknown)
  82. {
  83.     /*
  84.      * IUnknown methods
  85.      */
  86.     STDMETHOD(QueryInterface) (THIS_
  87. REFIID riid,
  88. void** ppvObj) PURE;
  89.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  90.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  91.     /*
  92.      * IHXDllAccess methods
  93.      */
  94.     /************************************************************************
  95.      * Method:
  96.      *     IHXDllAccess::Open()
  97.      * Purpose:
  98.      *     Open a Dll of the specified name and type.  
  99.      */
  100.     STDMETHOD(Open) (THIS_
  101. const char* pDllName,
  102. UINT16 uLibType
  103. ) PURE;
  104.     /************************************************************************
  105.      * Method:
  106.      *     IHXDllAccess::Close()
  107.      * Purpose:
  108.      *     Close opened Dll.
  109.      */
  110.     STDMETHOD(Close) (THIS) PURE;
  111.     /************************************************************************
  112.      * Method:
  113.      *     IHXDllAccess::GetSymbol()
  114.      * Purpose:
  115.      *     Obtain pointer to symbol in opened Dll.
  116.      */
  117.     STDMETHOD_(void*, GetSymbol) (THIS_
  118. const char* pSymbolName
  119. ) PURE;
  120.     /************************************************************************
  121.      * Method:
  122.      *     IHXDllAccess::GetError()
  123.      * Purpose:
  124.      *     Get service specific error code (0 = no error).
  125.      */
  126.     STDMETHOD_(ULONG32,GetError) (THIS) PURE;
  127.     /************************************************************************
  128.      * Method:
  129.      *     IHXDllAccess::GetErrorString()
  130.      * Purpose:
  131.      *     Get last error string.
  132.      */
  133.     STDMETHOD_(const char*, GetErrorString) (THIS) PURE;
  134.     /************************************************************************
  135.      * Method:
  136.      *     IHXDllAccess::GetDllName()
  137.      * Purpose:
  138.      *     Get opened Dll name
  139.      */
  140.     STDMETHOD_(const char*, GetDllName) (THIS) PURE;
  141.     /************************************************************************
  142.      * Method:
  143.      *     IHXDllAccess::GetDllVersion()
  144.      * Purpose:
  145.      *     Get opened Dll vesion
  146.      */
  147.     STDMETHOD_(const char*, GetDllVersion) (THIS) PURE;
  148.     
  149.     /************************************************************************
  150.      * Method:
  151.      *     IHXDllAccess::IsOpen()
  152.      * Purpose:
  153.      *     Tells if Dll is opened:
  154.      * TRUE  = dll is opened
  155.      * FALSE = dll is not opened
  156.      */
  157.     STDMETHOD_(BOOL,IsOpen) (THIS) PURE;
  158. };
  159. #endif  // _HXDLLACCESS_H_