version 2003
PA_GetResourceHandle (resfile; kind; resID) PA_Handle
Parameter | Type | Description | |
resfile | short | File reference number of the file to access | |
kind | unsigned long | Kind (4 Bytes type) of resource to load | |
resID | short | Unique resource ID | |
Function result | PA_Handle | Handle 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