DosGetResource2

From EDM2
Jump to: navigation, search

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.
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.

Bindings

C

#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

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