PA_GetResourceHandle

4D - Documentation   Français   English   German   4D Plugin API, Command Theme List   4D Plugin API, Command Alphabetical List   Back   Previous   Next

version 2003


PA_GetResourceHandle (resfile; kind; resID) PA_Handle

ParameterTypeDescription
resfileshortFile reference number of the file to access
kindunsigned longKind (4 Bytes type) of resource to load
resIDshortUnique resource ID
Function resultPA_HandleHandle to the resource data. 0 if resource not found

Description

The routine PA_GetResourceHandle returns a handle to the resource of type kind and the ID resID in the file resFile.

Pass in resFile the file reference number of the file that holds the resource.

Pass in kind the 4-Bytes type code of the resource (such as 'PICT', 'TEXT', or anything you need) and in resID its unique ID in the file.

WARNING

The handle belongs to 4th Dimension. Never modify it until you call PA_DetachResource (which makes the resource a standard PA_Handle that belongs to the plug-in).

Using PA_GetResourceHandle instead of PA_GetResource permits the plug-in to use less memory, especially for large resources and/or if the plug-in need to read-only the resource.

If the resource does not exist or if resFile is an invalid file reference number, the routine returns 0L, and PA_GetLastError returns -5 ("Resource not found").

Example

Loading and reading a preference resource.

   typedef struct
   {
      short   defaultFontSize;
      short   defaultFontFace;
      long   defaultColor;
      unsigned long   lastCount;
   } Plug_Prefs, *Plug_PrefsPtr, **Plug_PrefsHdle;

   #define kPLUGIN_PREFS   'pipf'
         #define kPREFS_ID   0;

   // To read the preference, use:
   Plug_Prefs   prefs;
   /* . . . */
   prefs =(Plug_PrefsHdle) PA_GetResourceHandle(resFile, kPLUGIN_PREFS, kPREFS_ID);
   if(prefs)
   {
   /* do something with (*prefs)->defaultXXX . . . */
   // NEVER DISPOSE THIS HANDLE UNLESS YOU CALL DETACH RESOURCE
   }

See Also

PA_DetachResource, PA_GetIndexedResource, PA_GetResource.

Error Handling

Use PA_GetLastError to see if an error occurred


4D - Documentation   Français   English   German   4D Plugin API, Command Theme List   4D Plugin API, Command Alphabetical List   Back   Previous   Next