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

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. /****************************************************************************
  36.  * 
  37.  *
  38.  *  Persistent Preferences Interfaces
  39.  *
  40.  *  Here are the preference entries set by the client core and renderers:
  41.  *     KEY DEFAULT VALUES
  42.  * =================     ====================
  43.  * AttemptMulticast     1
  44.  * AttemptTCP     1
  45.  * AttemptUDP     1
  46.  * AudioQuality     0
  47.  * AutoTransport     1
  48.  * Bandwidth     28800
  49.  * BitsPerSample     16
  50.  * BroadcastPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;type}{ ... }
  51.  * ClientLicenseKey     7FF7FF00
  52.  * EndScan     10000
  53.  * FactoryPluginInfo     
  54.  * FileFormatPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2;extension1|extension2}{ ... }
  55.  * FileSystemPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;protocol;shortname}{ ... }
  56.  * GeneralPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple}{ ... }
  57.  * PNAProxyHost
  58.  * PNAProxyPort     1090
  59.  * RTSPProxyHost
  60.  * RTSPProxyPort     554
  61.  * HTTPProxyHost
  62.  * HTTPProxyPort     1092
  63.  * HurledURL     0
  64.  * InfoandVolume     1
  65.  * LastURL     
  66.  * MaxClipCount     4
  67.  * MetaFormatPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2;extension1|extension2}{ ... }
  68.  * MiscPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple}{ ... }
  69.  * MulticastTimeout     2000
  70.  * NotProxy     
  71.  * OnTop     0
  72.  * PerfectPlayMode     0
  73.  * PerfectPlayTime     60
  74.  * PerfPlayEntireClip     1
  75.  * PluginDirectory
  76.  * Presets#
  77.  * ProxySupport     0
  78.  * RendererPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;mimetype1|mimetype2}{ ... }
  79.  * SamplingRate     8000
  80.  * SeekPage     40
  81.  * SendStatistics     1
  82.  * ServerTimeOut     90
  83.  * ShowPresets     0
  84.  * StatusBar     1
  85.  * StreamDescriptionPluginInfo     {dllpath;description;copyright;moreinfo;loadmultiple;mimetype}{ ... }
  86.  * SyncMultimedia     1
  87.  * UDPPort     7070
  88.  * UDPTimeout     10000
  89.  * UpgradeAvailable     0
  90.  * UseUDPPort     0
  91.  * Volume     50
  92.  * x:Pref_windowPositionX
  93.  * y:Pref_WindowPositionY
  94.  */
  95. #ifndef _HXPREFS_H_
  96. #define _HXPREFS_H_
  97. #define HXREGISTRY_PREFPROPNAME     "ApplicationData"
  98. /*
  99.  * Forward declarations of some interfaces defined or used here-in.
  100.  */
  101. typedef _INTERFACE IHXBuffer IHXBuffer;
  102. // CLSID for creating a preferences objects via a CCF
  103. // {EC5C2B01-D105-11d4-951F-00902790299C}
  104. #define CLSID_HXPreferences IID_IHXPreferences
  105. /****************************************************************************
  106.  * 
  107.  *  Interface:
  108.  * 
  109.  * IHXPreferences
  110.  * 
  111.  *  Purpose:
  112.  * 
  113.  * This interface allows you to store persistant preferences in the
  114.  * server or player's config / registry.
  115.  * 
  116.  *  IID_IHXPreferences:
  117.  * 
  118.  * {00000500-0901-11d1-8B06-00A024406D59}
  119.  * 
  120.  */
  121. DEFINE_GUID(IID_IHXPreferences, 0x00000500, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  122. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  123. #undef  INTERFACE
  124. #define INTERFACE   IHXPreferences
  125. DECLARE_INTERFACE_(IHXPreferences, IUnknown)
  126. {
  127.     /*
  128.      * IUnknown methods
  129.      */
  130.     STDMETHOD(QueryInterface) (THIS_
  131. REFIID riid,
  132. void** ppvObj) PURE;
  133.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  134.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  135.     /*
  136.      * IHXPreferences methods
  137.      */
  138.     /************************************************************************
  139.      * Method:
  140.      * IHXPreferences::ReadPref
  141.      * Purpose:
  142.      * Read a preference from the registry or configuration.
  143.      */
  144.     STDMETHOD(ReadPref) (THIS_
  145. const char* pPrekKey, REF(IHXBuffer*) pBuffer) PURE;
  146.     /************************************************************************
  147.      * Method:
  148.      * IHXPreferences::WritePref
  149.      * Purpose:
  150.      * TBD
  151.      */
  152.     STDMETHOD(WritePref) (THIS_
  153. const char* pPrekKey, IHXBuffer* pBuffer) PURE;
  154. };
  155. /****************************************************************************
  156.  * 
  157.  *  Interface:
  158.  * 
  159.  * IHXPreferenceEnumerator
  160.  * 
  161.  *  Purpose:
  162.  * 
  163.  * Allows preference Enumeration
  164.  *
  165.  * 
  166.  *  IHXPreferenceEnumerator:
  167.  * 
  168.  * {00000504-0901-11d1-8B06-00A024406D59}
  169.  * 
  170.  */
  171. DEFINE_GUID(IID_IHXPreferenceEnumerator, 0x00000504, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  172. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  173. #undef  INTERFACE
  174. #define INTERFACE   IHXPreferenceEnumerator
  175. DECLARE_INTERFACE_(IHXPreferenceEnumerator, IUnknown)
  176. {
  177.     /*
  178.      * IUnknown methods
  179.      */
  180.     STDMETHOD(QueryInterface) (THIS_
  181. REFIID riid,
  182. void** ppvObj) PURE;
  183.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  184.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  185.     /*
  186.      * IHXPreferenceEnumerator methods
  187.      */
  188.     /************************************************************************
  189.      * Method:
  190.      * IHXPreferenceEnumerator::EndSubPref
  191.      * Purpose:
  192.      * TBD
  193.      */
  194.     STDMETHOD(BeginSubPref) (THIS_ const char* szSubPref) PURE;
  195.     /************************************************************************
  196.      * Method:
  197.      * IHXPreferenceEnumerator::EndSubPref
  198.      * Purpose:
  199.      * TBD
  200.      */
  201.    STDMETHOD(EndSubPref) (THIS) PURE;
  202.     /************************************************************************
  203.      * Method:
  204.      * IHXPreferenceEnumerator::GetPrefKey
  205.      * Purpose:
  206.      * TBD
  207.      */
  208.    STDMETHOD(GetPrefKey) (THIS_ UINT32 nIndex, REF(IHXBuffer*) pBuffer) PURE;
  209.     /************************************************************************
  210.      * Method:
  211.      * IHXPreferenceEnumerator::ReadPref
  212.      * Purpose:
  213.      * TBD
  214.      */
  215.     STDMETHOD(ReadPref) (THIS_
  216.     const char* pPrefKey, IHXBuffer*& pBuffer) PURE;
  217. };
  218. /****************************************************************************
  219.  * 
  220.  *  Interface:
  221.  * 
  222.  * IHXPreferences2
  223.  * 
  224.  *  Purpose:
  225.  * 
  226.  * New interface which gives sub-preference options abilities.
  227.  *
  228.  * 
  229.  *  IID_IHXPreferences2:
  230.  * 
  231.  * {00000503-0901-11d1-8B06-00A024406D59}
  232.  * 
  233.  */
  234. DEFINE_GUID(IID_IHXPreferences2, 0x00000503, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  235. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  236. #undef  INTERFACE
  237. #define INTERFACE   IHXPreferences2
  238. DECLARE_INTERFACE_(IHXPreferences2, IUnknown)
  239. {
  240.     /*
  241.      * IUnknown methods
  242.      */
  243.     STDMETHOD(QueryInterface) (THIS_
  244. REFIID riid,
  245. void** ppvObj) PURE;
  246.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  247.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  248.     /*
  249.      * IHXPreferences2 methods
  250.      */
  251.     /************************************************************************
  252.      * Method:
  253.      * IHXPreferences2::GetPreferenceEnumerator
  254.      * Purpose:
  255.      * Read a preference from the registry or configuration.
  256.      */
  257.     STDMETHOD(GetPreferenceEnumerator)(THIS_ REF(IHXPreferenceEnumerator*) /*OUT*/ pEnum) PURE;
  258.     /************************************************************************
  259.      * Method:
  260.      * IHXPreferences2::ResetRoot
  261.      * Purpose:
  262.      * Reset the root of the preferences
  263.      */
  264.     STDMETHOD(ResetRoot)(THIS_ const char* pCompanyName, const char* pProductName, 
  265. int nProdMajorVer, int nProdMinorVer) PURE;
  266. };
  267. // $Private:
  268. /****************************************************************************
  269.  * 
  270.  *  Interface:
  271.  * 
  272.  * IHXPreferences3
  273.  * 
  274.  *  Purpose:
  275.  * 
  276.  * New interface for deleting preferences, and whatever we might think of next!
  277.  *
  278.  * 
  279.  *  IID_IHXPreferences3:
  280.  * 
  281.  * {00000505-0901-11d1-8B06-00A024406D59}
  282.  * 
  283.  */
  284. DEFINE_GUID(IID_IHXPreferences3, 0x00000505, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  285. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  286. #undef  INTERFACE
  287. #define INTERFACE   IHXPreferences3
  288. DECLARE_INTERFACE_(IHXPreferences3, IUnknown)
  289. {
  290.     /************************************************************************
  291.      * Method:
  292.      * IHXPreferences3::Open
  293.      * Purpose:
  294.      * Open a specified collection of preferences
  295.      */
  296.     STDMETHOD( Open )(THIS_ const char* pCompanyName, const char* pProductName, 
  297.     ULONG32 nProdMajorVer, ULONG32 nProdMinorVer) PURE;
  298.     /************************************************************************
  299.      * Method:
  300.      * IHXPreferences3::OpenShared
  301.      * Purpose:
  302.      * Have this preference object read/write from the company wide 
  303.      *    shared location for all products
  304.      */
  305.     STDMETHOD( OpenShared )( THIS_ const char* pCompanyName) PURE;
  306.     /************************************************************************
  307.      * Method:
  308.      * IHXPreferences3::DeletePref
  309.      * Purpose:
  310.      * Delete a preference
  311.      */
  312.     STDMETHOD(DeletePref)( THIS_ const char* pPrekKey ) PURE;
  313. };
  314. // $EndPrivate.
  315. #endif /* _HXPREFS_H_ */