Jump to content

DosGetResource2

From EDM2
Revision as of 10:43, 13 February 2017 by Ak120 (talk | contribs) (Ak120 moved page OS2 API:CPI:LEGACY:DosGetResource2 to DosGetResource2)

Description

This call returns the far address of the specified resource.

Syntax

 DosGetResource2

    (ModHandle, TypeID, NameID, ResAddr) 

Parameters

ModHandle (HMODULE) - input
The location of the resource.
Value        Definition 
0           The executable file of the current process. 
<> 0        A handle to a dynamic link module returned by DosLoadModule. 
TypeID (USHORT) - input
A 16 bit resource type ID (see Remarks).
NameID (USHORT) - input
A 16 bit resource name ID (see Remarks).
ResAddr (PULONG) - output
Address of the resource address.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 6 ERROR_INVALID_HANDLE

Remarks

A resource is read-only data generated by the Resource Compiler that can be accessed dynamically at run time. The access key consists of two 16-bit numbers, the first of which is a type ID and the second, a name ID. These numbers are similar in concept to the file extension and file name portions of a file name.

The advantage of a resource is that it can be bundled into an application's executable file, so a single file contains all of the code and data for an application.

Resource segments obtained through DosGetResource2 should only be freed using DosFreeResource.

Example Code

C Binding

#define INCL_DOSRESOURCES2

USHORT  rc = DosGetResource2(ModHandle, TypeID, NameID, ResAddr);

HMODULE          ModHandle;     /* Module handle to get resource from */
USHORT           TypeID;        /* 16 bit resource type ID */
USHORT           NameID;        /* 16 bit resource name ID */
PULONG           ResAddr;       /* where to return resource address */

USHORT           rc;            /* return code */

MASM Binding

EXTRN  DosGetResource2:FAR
INCL_DOSRESOURCES2  EQU 1

PUSH   WORD    ModHandle     ;Module handle to get resource from
PUSH   WORD    TypeID        ;16 bit resource type ID
PUSH   WORD    NameID        ;16 bit resource name ID
PUSH@  DWORD   ResAddr       ;Resource address (returned)
CALL   DosGetResource2

Returns WORD

Related Functions