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_ONLINEMEDIA_PLUGIN_CONFIG_HEADER
#define NULLSOFT_ONLINEMEDIA_PLUGIN_CONFIG_HEADER
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#include <wtypes.h>
#define C_CONFIG_WIN32NATIVE
class C_Config
{
public:
C_Config(char *ini);
~C_Config();
void Flush(void);
void WriteInt(char *name, int value);
char *WriteString(char *name, char *string);
int ReadInt(char *name, int defvalue);
char *ReadString(char *name, char *defvalue);
const char* GetPath() { return m_inifile; }
private:
#ifndef C_CONFIG_WIN32NATIVE
typedef struct
{
char name[16];
char *value;
} strType;
strType *m_strs;
int m_dirty;
int m_num_strs, m_num_strs_alloc;
#else
char m_strbuf[8192];
#endif
char *m_inifile;
};
// set lpSectionName = NULL to write to default section;
DWORD Config_ReadStr(LPCSTR lpSectionName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize);
UINT Config_ReadInt(LPCSTR lpSectionName, LPCSTR lpKeyName, INT nDefault);
HRESULT Config_WriteStr(LPCSTR lpSectionName, LPCSTR lpKeyName, LPCSTR lpString);
HRESULT Config_WriteInt(LPCSTR lpSectionName, LPCSTR lpKeyName, INT nValue);
HRESULT Config_WriteSection(LPCSTR lpSectionName, LPCSTR lpData);
typedef BOOL (CALLBACK *ReadServiceIdCallback)(UINT /*serviceId*/, void* /*data*/);
HRESULT Config_ReadServiceIdList(LPCSTR lpSectionName, LPCSTR lpKeyName, CHAR separator, ReadServiceIdCallback callback, void *data);
#endif //NULLSOFT_ONLINEMEDIA_PLUGIN_CONFIG_HEADER
|