From 44744d8d360b78d2eaac79b0cf58dc30c3802bf5 Mon Sep 17 00:00:00 2001 From: Boudewijn Dekker Date: Wed, 17 Nov 1999 21:21:08 +0000 Subject: [PATCH] implemented LoadResource svn path=/trunk/; revision=776 --- reactos/lib/kernel32/misc/res.c | 182 ++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 reactos/lib/kernel32/misc/res.c diff --git a/reactos/lib/kernel32/misc/res.c b/reactos/lib/kernel32/misc/res.c new file mode 100644 index 00000000000..1a740dd703e --- /dev/null +++ b/reactos/lib/kernel32/misc/res.c @@ -0,0 +1,182 @@ +#define WIN32_NO_STATUS +#define WIN32_NO_PEHDR +#include +#include +#include +#include +#include + +HRSRC +STDCALL +FindResourceA( + HINSTANCE hModule, + LPCSTR lpName, + LPCSTR lpType + ) +{ + return FindResourceExA(hModule,lpName,lpType,0); +} + +HRSRC +STDCALL +FindResourceExA( + HINSTANCE hModule, + LPCSTR lpType, + LPCSTR lpName, + WORD wLanguage + ) +{ + WCHAR ResourceNameW[MAX_PATH]; + WCHAR TypeNameW[MAX_PATH]; + + WCHAR *ResourceName = ResourceNameW; + WCHAR *TypeName = TypeNameW; + + if ( HIWORD(lpName) != 0 ) { + + if (!KERNEL32_AnsiToUnicode(ResourceNameW, + lpName, + MAX_PATH)) + { + return NULL; + } + } + else + ResourceName = (WCHAR *)lpName; + + if ( HIWORD(lpType) != 0 ) { + + if (!KERNEL32_AnsiToUnicode(TypeNameW, + lpType, + MAX_PATH)) + { + return NULL; + } + } + else + TypeName = lpType; + + return FindResourceExW(hModule,TypeName,ResourceName,wLanguage); + +} + +HRSRC +STDCALL +FindResourceW( + HINSTANCE hModule, + LPCWSTR lpName, + LPCWSTR lpType + ) +{ + return FindResourceExW(hModule,lpName,lpType,0); +} + +HRSRC +STDCALL +FindResourceExW( + HINSTANCE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + WORD wLanguage + ) +{ + + IMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry; + NTSTATUS Status; + int i,l; + ULONG nType = 0, nName = 0; + + if ( hModule == NULL ) + hModule = GetModuleHandle(NULL); + + + if ( HIWORD(lpName) != 0 ) { + if ( lpName[0] == L'#' ) { + l = lstrlenW(lpName) -1; + + for(i=0;iSize; +} + +WINBOOL +STDCALL +FreeResource ( + HGLOBAL hResData + ) +{ + HeapFree(GetProcessHeap(),0,&hResData); + return TRUE; +} + +LPVOID +STDCALL +LockResource ( + HGLOBAL hResData + ) +{ + return hResData; +} + + +