home *** CD-ROM | disk | FTP | other *** search
- // ResourceVersionInfo.h: interface for the CResourceVersionInfo class.
- //
- //////////////////////////////////////////////////////////////////////
-
- #if !defined(AFX_RESOURCEVERSIONINFO_H__80439ADA_49DA_4623_8DA9_1663FF356E76__INCLUDED_)
- #define AFX_RESOURCEVERSIONINFO_H__80439ADA_49DA_4623_8DA9_1663FF356E76__INCLUDED_
-
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
-
- #ifdef NSIS_SUPPORT_VERSION_INFO
-
- #include <algorithm>
- using namespace std;
-
- struct version_string_list {
- int codepage;
- LANGID lang_id;
- int name;
- DefineList *pChildStrings;
- };
-
- class CVersionStrigList : public SortedStringListND<struct version_string_list>
- {
- public:
- ~CVersionStrigList()
- {
- struct version_string_list *itr = (struct version_string_list *) gr.get();
- int i = gr.getlen() / sizeof(struct version_string_list);
-
- while (i--)
- {
- delete itr[i].pChildStrings;
- }
- }
-
- int add(LANGID langid, int codepage)
- {
- char Buff[10];
- sprintf(Buff, "%04x", langid);
- int pos = SortedStringListND<struct version_string_list>::add(Buff);
- if (pos == -1) return false;
- ((struct version_string_list*)gr.get())[pos].pChildStrings = new DefineList;
- ((struct version_string_list*)gr.get())[pos].codepage = codepage;
- ((struct version_string_list*)gr.get())[pos].lang_id = langid;
- return pos;
- }
-
- LANGID get_lang(int idx)
- {
- version_string_list *data=(version_string_list *)gr.get();
- return data[idx].lang_id;
- }
-
- int get_codepage(int idx)
- {
- version_string_list *data=(version_string_list *)gr.get();
- return data[idx].codepage;
- }
-
- DefineList* get_strings(int idx)
- {
- version_string_list *data=(version_string_list *)gr.get();
- return data[idx].pChildStrings;
- }
-
- int find(LANGID lang_id, int codepage)
- {
- char Buff[10];
- sprintf(Buff, "%04x", lang_id);
- return SortedStringListND<struct version_string_list>::find(Buff);
- }
-
- int getlen()
- {
- return strings.getlen();
- }
-
- int getnum()
- {
- return gr.getlen()/sizeof(struct version_string_list);
- }
- };
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- class CResourceVersionInfo
- {
- VS_FIXEDFILEINFO m_FixedInfo;
- CVersionStrigList m_ChildStringLists;
-
- public:
- CResourceVersionInfo();
- virtual ~CResourceVersionInfo();
- int SetKeyValue(LANGID lang_id, int codepage, char* AKeyName, char* AValue);
- void SetFileFlags(int Value);
- void SetFileVersion(int HighPart, int LowPart);
- void SetProductVersion(int HighPart, int LowPart);
- void ExportToStream(GrowBuf &strm, int Index);
- int GetStringTablesCount();
- LANGID GetLangID(int Index);
- int GetCodePage(int Index);
- char *FindKey(LANGID LangID, int codepage, char *pKeyName);
- //bool IsValidCodePage(WORD codePage );
- };
-
- #endif
-
- #endif // !defined(AFX_RESOURCEVERSIONINFO_H__80439ADA_49DA_4623_8DA9_1663FF356E76__INCLUDED_)
-