aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/language.h
blob: 43d1d39fba3166b86794803df0bf6ac83b561776 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef NULLSOFT_WINAMP_LANGUAGE_H
#define NULLSOFT_WINAMP_LANGUAGE_H

#include "../Agave/Language/api_language.h"

class Language : public api_language
{
public:
	static const char *getServiceName() { return "Language API"; }
	static const GUID getServiceGuid() { return languageApiGUID; }	
public:
	char *GetString(HINSTANCE hinst, HINSTANCE owner, UINT uID, char *str=NULL, size_t maxlen=0);
	wchar_t *GetStringW(HINSTANCE hinst, HINSTANCE owner, UINT uID, wchar_t *str=NULL, size_t maxlen=0);
	char *GetStringFromGUID(const GUID guid, HINSTANCE owner, UINT uID, char *str=NULL, size_t maxlen=0);
	wchar_t *GetStringFromGUIDW(const GUID guid, HINSTANCE owner, UINT uID, wchar_t *str=NULL, size_t maxlen=0);

	HINSTANCE FindDllHandleByGUID(const GUID guid);
	HINSTANCE FindDllHandleByString(const char* str);
	HINSTANCE FindDllHandleByStringW(const wchar_t* str);
	HINSTANCE StartLanguageSupport(HINSTANCE hinstance, const GUID guid);

	const wchar_t *GetLanguageFolder();

	const wchar_t *GetLanguageIdentifier(int mode);

	HWND CreateLDialogParam(HINSTANCE localised, HINSTANCE original, UINT id, HWND parent, DLGPROC proc, LPARAM param);
	HWND CreateLDialogParamW(HINSTANCE localised, HINSTANCE original, UINT id, HWND parent, DLGPROC proc, LPARAM param);

	INT_PTR LDialogBoxParam(HINSTANCE localised, HINSTANCE original, UINT id, HWND parent, DLGPROC proc, LPARAM param);
	INT_PTR LDialogBoxParamW(HINSTANCE localised, HINSTANCE original, UINT id, HWND parent, DLGPROC proc, LPARAM param);
	
	HMENU LoadLMenu(HINSTANCE localised, HINSTANCE original, UINT id);
	HMENU LoadLMenuW(HINSTANCE localised, HINSTANCE original, UINT id);

	HACCEL LoadAcceleratorsA(HINSTANCE hinst, HINSTANCE owner, LPCSTR lpTableName);
	HACCEL LoadAcceleratorsW(HINSTANCE hinst, HINSTANCE owner, LPCWSTR lpTableName);

	void* LoadResourceFromFile(HINSTANCE hinst, HINSTANCE owner, LPCTSTR lpType, LPCTSTR lpName, DWORD* size);
	void* LoadResourceFromFileW(HINSTANCE hinst, HINSTANCE owner, LPCWSTR lpType, LPCWSTR lpName, DWORD* size);

	BOOL UseUserNumericLocale();
	_locale_t Get_C_NumericLocale();

	wchar_t* FormattedSizeString(wchar_t *out, int cchLen, __int64 size);

protected:
	RECVS_DISPATCH;
};

extern Language *langManager;

#define LANG_STATIC_BUFFER_SIZE 1024

#endif