resdata.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:4k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * resdata.h
  3.  *
  4.  * Artbitrary resource data.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: resdata.h,v $
  30.  * Revision 1.14  1999/03/10 03:49:53  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.13  1999/03/09 08:01:49  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.12  1998/09/23 06:28:50  robertj
  37.  * Added open source copyright license.
  38.  *
  39.  * Revision 1.11  1995/03/14 12:42:26  robertj
  40.  * Updated documentation to use HTML codes.
  41.  *
  42.  * Revision 1.10  1995/01/14  06:19:31  robertj
  43.  * Documentation
  44.  *
  45.  * Revision 1.9  1994/08/23  11:32:52  robertj
  46.  * Oops
  47.  *
  48.  * Revision 1.8  1994/08/22  00:46:48  robertj
  49.  * Added pragma fro GNU C++ compiler.
  50.  *
  51.  * Revision 1.7  1994/06/25  11:55:15  robertj
  52.  * Unix version synchronisation.
  53.  *
  54.  * Revision 1.6  1994/04/20  12:17:44  robertj
  55.  * *** empty log message ***
  56.  *
  57.  * Revision 1.5  1994/01/03  04:42:23  robertj
  58.  * Mass changes to common container classes and interactors etc etc etc.
  59.  *
  60.  * Revision 1.4  1993/12/01  16:09:05  robertj
  61.  * Windows NT port.
  62.  *
  63.  * Revision 1.3  1993/08/21  01:50:33  robertj
  64.  * Made Clone() function optional, default will assert if called.
  65.  *
  66.  * Revision 1.2  1993/07/14  12:49:16  robertj
  67.  * Fixed RCS keywords.
  68.  *
  69.  */
  70. #define _PRESOURCEDATA
  71. #ifdef __GNUC__
  72. #pragma interface
  73. #endif
  74. /**A class representing user defined resource data object. This allows an
  75.    application to access resources other than the standard ones. The
  76.    interpretation of the data within the resource is up to the application.
  77.    
  78.    This class provides access to a simple memory block containing the data in
  79.    the resource. This would typically be created using the DATA keyword in a
  80.    PWRC compiled source file.
  81.  */
  82. class PResourceData : public PContainer
  83. {
  84.   PCONTAINERINFO(PResourceData, PContainer);
  85.   public:
  86.    /**Create a new resource object, loading the data from the applications
  87.        resources. Care must be made not to create resources that use a standard
  88.        resource type name eg "ICON". THis is especially reelevant to the
  89.        MacOS platform which make extensive use of resources.
  90.      */
  91.     PResourceData(
  92.       const PString & resType,    /// Resource type string of 4 characters.
  93.       PRESOURCE_ID resID      /// Unique identifier (within type) for resource.
  94.     );
  95.   /**@name Overrides from class PObject */
  96.    /**Determine if the instances are of the same resource. Note that this
  97.        checks that they are of the same resource type and identifier and not
  98.        merely having the same internal data.
  99.        
  100.        @return
  101.        #EqualTo# if reference the same resource, otherwise
  102.        #GreaterThan#.
  103.      */
  104.     virtual Comparison Compare(
  105.       const PObject & obj   /// Other resource data object to comapre against.
  106.     ) const;
  107.   /**@name New memeber functions for class */
  108.     /** Get a byte from the resource at the specified offset. */
  109.     BYTE operator[](
  110.       PINDEX offset     /// Offset into the resource data.
  111.     ) const;
  112.     /** Return a pointer to the resource data in memory. */
  113.     operator const BYTE *() const;
  114.   private:
  115.     // Overrides from class PContainer
  116.    /* Set the size of the container. As this type of container can only ever
  117.        contain one resource, this function is ignored.
  118.        
  119.        @return
  120.        TRUE always.
  121.      */
  122.     virtual BOOL SetSize(
  123.       PINDEX newSize    /// New size of container.
  124.     );
  125. #ifdef DOC_PLUS_PLUS
  126. };
  127. #endif
  128. // Class declaration continued in platform specific header file ///////////////