mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.7 KiB
76 lines
2.7 KiB
/************************ Module Header *************************************
|
|
* winres.h
|
|
* Structures and function prototypes required for obtaining resource
|
|
* data from windows files.
|
|
*
|
|
* HISTORY:
|
|
* 09:32 on Wed 28 Nov 1990 -by- Lindsay Harris [lindsayh]
|
|
* Created it.
|
|
*
|
|
* Copyright (C) 1990 Microsoft Corporation
|
|
*
|
|
***************************************************************************/
|
|
|
|
/*
|
|
* The main structure for manipulating the resource data. One of these
|
|
* is created when access is required to a resource, and it is destroyed
|
|
* when the resource is no longer required.
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
union
|
|
{
|
|
HANDLE hFILE; /* Handle to .drv file with data */
|
|
HANDLE hMOD; /* Module for NT DLL */
|
|
} uh;
|
|
long lNewExe; /* Base address of new header in file */
|
|
long lResTab; /* Offset in file of resource table */
|
|
long lResOffset; /* File location of resource data (shifted) */
|
|
int iShift; /* Shift factor for resource info */
|
|
int fStatus; /* Status flags */
|
|
void *pResTab; /* Resource table data address */
|
|
int cbResTab; /* Bytes of memory allocated for above */
|
|
void *paResTab; /* Start of ResTable data array */
|
|
union
|
|
{
|
|
void *pRESDATA; /* Resource data address */
|
|
HANDLE hLOAD; /* Returned from LoadResource */
|
|
} ur;
|
|
int cbResData; /* Bytes of memory allocated for above */
|
|
HANDLE hHeap; /* For access to heap */
|
|
} WINRESDATA, *PWINRESDATA;
|
|
|
|
|
|
/*
|
|
* Bit fields for use with status above.
|
|
*/
|
|
|
|
#define WRD_NOTHING 0x0000 /* Unitialised state */
|
|
#define WRD_FOPEN 0x0001 /* File is open */
|
|
#define WRD_RESTABOK 0x0002 /* Resource table allocated & read */
|
|
#define WRD_RESDATOK 0x0004 /* Resource data available ??? */
|
|
#define WRD_NT_DLL 0x0008 /* NT Dll - use NT calls */
|
|
|
|
/*
|
|
* The structure passed to, and filled in by, GetWinRes(). Contains
|
|
* information about a specific resource type & name.
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
void *pvResData; /* Address of data */
|
|
int iResLen; /* Resource size */
|
|
} RES_ELEM;
|
|
|
|
|
|
#define WINRT_STRING 6 /* Minidriver string resource ID */
|
|
|
|
/********************** Function Prototypes *******************************/
|
|
|
|
BOOL InitWinResData( WINRESDATA *, HANDLE, PWSTR );
|
|
void WinResClose( WINRESDATA * );
|
|
|
|
BOOL GetWinRes( WINRESDATA *, int, int, RES_ELEM * );
|
|
|
|
int iLoadStringW( WINRESDATA *, int, PWSTR, unsigned int );
|