maclibrary.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:9k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: maclibrary.h,v 1.5.36.3 2004/07/09 01:47:45 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49. #pragma once
  50. #include "hxtypes.h"
  51. // the following is defined (for some reason) in <racodec:pub:codec.h>
  52. // did this here, so as not to cause undo worry about modifying a heavy
  53. // traffic area header
  54. // rlovejoy 9/11/98
  55. #ifndef _WIN_CODEC
  56. const INT16  kCodecIDStrResID = 9000;
  57. const INT16  kCodecIDStrItem = 1;
  58. #endif
  59. const INT16  kCodecBandwidthItem = 2;
  60. const OSType  kDecoderCreator = 'PNdc';
  61. const OSType  kEncoderCreator = 'PNen';
  62. const OSType kVideoDecoderCreator = 'PNrv';
  63. #ifdef __cplusplus
  64. class CHXString;
  65. #endif
  66. // begin from old macintosh.h file...
  67. #include <stdio.h>
  68. #include <stdlib.h>
  69. #include <string.h>
  70. #include <ctype.h>
  71. // 'interface' is in MSVC++ but not in codewarrior
  72. // the following would let it compile, but would not really be kosher
  73. //#define interface struct
  74. // this is what seanh said to do..
  75. #define interface 
  76. #error "Using the keyword interface is an error, it should be changed to _INTERFACE."
  77. // this is temporary until the win folks yank OutputDebugString
  78. // but for now, mac people can do 'dx off' in MacsBugs
  79. #define OutputDebugString debugstr
  80. inline void VERIFY(Boolean ok){}
  81. inline void TRACE(char * msg){}
  82. inline void TRACE0(char * msg){}
  83. #ifndef _BUILDOLDSTUFF
  84. typedef void* HINSTANCE;
  85. typedef HINSTANCE HMODULE;
  86. typedef int LRESULT;
  87. typedef Handle LPHANDLE;
  88. typedef short WPARAM;
  89. typedef void* HWND;
  90. typedef Handle HANDLE;
  91. typedef unsigned short WORD;
  92. typedef unsigned long DWORD;
  93. typedef signed long LONG;
  94. typedef void* FARPROC ;
  95. #define wsprintf sprintf /* Flawfinder: ignore */
  96. #define lstrcpy strcpy /* Flawfinder: ignore */
  97. #define lstrlen strlen /* Flawfinder: ignore */
  98. #define lstrcat strcat /* Flawfinder: ignore */
  99. #define lstrcpyn strncpy /* Flawfinder: ignore */
  100. #else
  101. typedef unsigned long HINSTANCE;
  102. typedef HINSTANCE HMODULE;
  103. typedef int LRESULT;
  104. typedef Handle LPHANDLE;
  105. typedef short WPARAM;
  106. typedef void* POSITION;
  107. typedef void* HWND;
  108. typedef Handle HANDLE;
  109. typedef unsigned int UINT;
  110. typedef unsigned short WORD;
  111. typedef unsigned char BYTE;
  112. typedef void* FARPROC ;
  113. #define wsprintf sprintf /* Flawfinder: ignore */
  114. #define lstrcpy strcpy /* Flawfinder: ignore */
  115. #define lstrlen strlen
  116. #define lstrcat strcat /* Flawfinder: ignore */
  117. #define lstrcpyn strncpy /* Flawfinder: ignore */
  118. #endif
  119. /////////////////
  120. struct LPARAM { 
  121. long DWORD1;
  122. long DWORD2;
  123. };
  124. typedef struct LPARAM LPARAM;
  125. #define afx_msg
  126. #ifndef max
  127. #define max(x, y) ((x) > (y) ? (x) : (y))
  128. #endif
  129. #ifndef min
  130. #define min(x, y)  ((x) < (y) ? (x) : (y))
  131. #endif
  132. inline int GetSafeInt(int x) { return x; }
  133. inline int MulDiv(int m1, int m2, int d1) { return (m1*m2)/d1; }
  134. ///////////////////////
  135. // video related
  136. typedef  void* HDRAWDIB;
  137. typedef void** HPALETTE;
  138. ///////////////////////
  139. #define CALLBACK
  140. // end of old macintosh.h
  141. #ifndef _MAX_PATH
  142. #define _MAX_PATH 1024
  143. #endif
  144. /* Functions to load & release Shared Libraries */
  145. #ifdef __cplusplus                                                              
  146. extern "C"                                                                      
  147. {
  148. #endif /* __cplusplus */
  149. /////////////////////////////////////////////////////////////////////////////
  150. //
  151. // Function:
  152. //
  153. // FindLibrary()
  154. //
  155. // Purpose:
  156. //
  157. // Called to get the fragment/file name of a Mac Shared Library given
  158. // the library's creator and codec ID. The Codec ID is stored in STR#9000;
  159. // item #1 of the library.
  160. //
  161. // Parameters:
  162. //
  163. // HX_MOFTAG moftCodecTag
  164. // The four character codec identifier (RV10, dnet, ...)
  165. //
  166. // OSType codecCreator
  167. // The Creator type of the codec; currently kDecoderCreator or kEncoderCreator
  168. //
  169. // char* pLibName
  170. // Allocate this before calling FindLibrary. Library file name is
  171. // returned in it. Library's fragment name should be same as file name!!
  172. //
  173. // FSSpec *fsLibSpec
  174. // FSSpec of library that was found.
  175. //
  176. // Return:
  177. //
  178. // HX_RESULT
  179. // Error code indicating the success or failure of the function.
  180. //
  181. //HX_RESULT FindLibrary(HX_MOFTAG moftCodecTag, OSType codecCreator, char* pLibName, FSSpec &fsLibSpec);
  182. /////////////////////////////////////////////////////////////////////////////
  183. //
  184. // Function:
  185. //
  186. // LoadLibrary()
  187. //
  188. // Purpose:
  189. //
  190. // Called to load a Mac Shared Library given the library's fragment name.
  191. //
  192. // Parameters:
  193. //
  194. // char* dllname
  195. // The fragment name of the library.
  196. //
  197. // Return:
  198. //
  199. // ULONG32
  200. // Returns the ConnectionID
  201. //
  202. HINSTANCE LoadLibrary(const char* dllname);
  203. /////////////////////////////////////////////////////////////////////////////
  204. //
  205. // Function:
  206. //
  207. // FreeLibrary()
  208. //
  209. // Purpose:
  210. //
  211. // Called to free a Mac Shared Library. If this is not called the library
  212. // will be freed when the application quits.
  213. //
  214. // Parameters:
  215. //
  216. // HINSTANCE lib
  217. // This is actually the ConnectionID.
  218. //
  219. // Return:
  220. //
  221. // none
  222. //
  223. void FreeLibrary(HINSTANCE lib);
  224. /////////////////////////////////////////////////////////////////////////////
  225. //
  226. // Function:
  227. //
  228. // GetProcAddress()
  229. //
  230. // Purpose:
  231. //
  232. // Called to get a function pointer in a Mac Shared Library.
  233. //
  234. // Parameters:
  235. //
  236. // HMODULE lib
  237. // This is the ConnectionID that is returned from LoadLibrary
  238. //
  239. // char* function
  240. // The function name
  241. //
  242. // Return:
  243. //
  244. // void*
  245. // The address of the function.
  246. //
  247. void* GetProcAddress(HMODULE lib, char* function);
  248. //Opens the Library's resource fork if it's creator == codecCreator
  249. //Also resolves aliases
  250. short OpenLibraryRes(FSSpec *aliasSpec, OSType codecCreator);
  251. /////////////////////////////////////////////////////////////////////////////
  252. //
  253. // Function:
  254. //
  255. // ResolveIndependentPath()
  256. //
  257. // Purpose:
  258. //
  259. //  ResolveIndependentPath checks the supplied full path to see
  260. //  if it's prefixed by a location indicator (like '茿PPL