Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This function determines the location of a resource with the specified type and name in the specified module.
HRSRC FindResource( HMODULE hModule , LPCWSTR lpName , LPCWSTR lpType );
Parameters
Value | Description |
---|---|
RT_ACCELERATOR | Accelerator table |
RT_BITMAP | Bitmap resource |
RT_CURSOR | Hardware-dependent cursor resource |
RT_DIALOG | Dialog box |
RT_FONT | Font resource |
RT_FONTDIR | Font directory resource |
RT_GROUP_CURSOR | Hardware-independent cursor resource |
RT_GROUP_ICON | Hardware-independent icon resource |
RT_ICON | Hardware-dependent icon resource |
RT_MENU | Menu resource |
RT_MESSAGETABLE | Message-table entry |
RT_RCDATA | Application-defined resource (raw data) |
RT_STRING | String-table entry |
RT_VERSION | Version resource |
Return Values
A handle to the specified resource's info block indicates success. To obtain a handle to the resource, pass this handle to the LoadResourcefunction. NULL indicates failure. To get extended error information, call GetLastError.
Remarks
If the high-order word of the lpNameor lpTypeparameter is zero, the low-order word specifies the integer identifier of the name or type of the given resource. Otherwise, those parameters are long pointers to null-terminated strings. If the first character of the string is a pound sign (#), the remaining characters represent a decimal number that specifies the integer identifier of the resource's name or type. For example, the string "#258" represents the integer identifier 258.
The lpNameparameter does not support the resource ID zero—that is, FindResource(h, 0 ,t )will not work as expected.
An application should reduce the amount of memory required for the resources by referring to them by integer identifier instead of by name.
When you are finished using an accelerator table, bitmap, cursor, icon, or menu, you can release its associated memory by calling one of the functions in the following table.
Resource | Release function |
---|---|
Accelerator table | DestroyAcceleratorTable |
Bitmap | DeleteObject |
Cursor | DestroyCursor |
Icon | DestroyIcon |
Menu | DestroyMenu |
The system automatically deletes these resources when the process that created them terminates, however, calling the appropriate function saves memory and decreases the size of the process's working set.
An application can use FindResourceto find any type of resource, but this function should be used only if the application must access the binary resource data when making subsequent calls to LoadLibrary.
To use a resource immediately, an application should use one of the following resource-specific functions to find and load the resources in one call:
Function | Description |
---|---|
FormatMessage | Loads and formats a message-table entry. |
LoadAccelerators | Loads an accelerator table. |
LoadBitmap | Loads a bitmap resource. |
LoadCursor | Loads a cursor resource. |
LoadIcon | Loads an icon resource. |
LoadMenu | Loads a menu resource. |
LoadString | Loads a string-table entry. |
For example, an application can use the LoadIconfunction to load an icon for display on the screen. However, the application should use FindResourceand LoadResourceif it is loading the icon to copy its data to another application.
String resources are stored in sections of up to 16 strings per section. The strings in each section are stored as a sequence of counted (not null-terminated) Unicode strings. The LoadStringfunction will extract the string resource from its corresponding section.
Requirements
Runs on | Versions | Defined in | Include | Link to |
---|---|---|---|---|
Windows CE OS | 1.0 and later | Winbase.h | Coredll.lib, Nk.lib |
Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.
See Also
DeleteObject, DestroyAcceleratorTable, DestroyCursor, DestroyIcon, DestroyMenu, GetLastError, LoadAccelerators, LoadBitmap, LoadIcon, LoadMenu, LoadResource, LoadString