[SETUPLIB][USETUP] Make the GENERIC_LIST store the items display text in UNICODE...
[reactos.git] / base / setup / lib / utils / genlist.h
1 /*
2 * PROJECT: ReactOS Setup Library
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Generic list functions
5 * COPYRIGHT: Copyright 2008-2018 Christoph von Wittich <christoph at reactos.org>
6 */
7
8 #pragma once
9
10 typedef struct _GENERIC_LIST_ENTRY
11 {
12 LIST_ENTRY Entry;
13 struct _GENERIC_LIST* List;
14 PVOID UserData;
15 WCHAR Text[1]; // FIXME: UI stuff
16
17 } GENERIC_LIST_ENTRY, *PGENERIC_LIST_ENTRY;
18
19 typedef struct _GENERIC_LIST
20 {
21 LIST_ENTRY ListHead;
22 ULONG NumOfEntries;
23
24 PGENERIC_LIST_ENTRY CurrentEntry;
25 PGENERIC_LIST_ENTRY BackupEntry;
26
27 } GENERIC_LIST, *PGENERIC_LIST;
28
29
30 PGENERIC_LIST
31 CreateGenericList(VOID);
32
33 VOID
34 DestroyGenericList(
35 IN OUT PGENERIC_LIST List,
36 IN BOOLEAN FreeUserData);
37
38 BOOLEAN
39 AppendGenericListEntry(
40 IN OUT PGENERIC_LIST List,
41 IN PCWSTR Text,
42 IN PVOID UserData,
43 IN BOOLEAN Current);
44
45 VOID
46 SetCurrentListEntry(
47 IN PGENERIC_LIST List,
48 IN PGENERIC_LIST_ENTRY Entry);
49
50 PGENERIC_LIST_ENTRY
51 GetCurrentListEntry(
52 IN PGENERIC_LIST List);
53
54 PGENERIC_LIST_ENTRY
55 GetFirstListEntry(
56 IN PGENERIC_LIST List);
57
58 PGENERIC_LIST_ENTRY
59 GetNextListEntry(
60 IN PGENERIC_LIST_ENTRY Entry);
61
62 PVOID
63 GetListEntryUserData(
64 IN PGENERIC_LIST_ENTRY Entry);
65
66 PCWSTR
67 GetListEntryText(
68 IN PGENERIC_LIST_ENTRY Entry);
69
70 ULONG
71 GetNumberOfListEntries(
72 IN PGENERIC_LIST List);
73
74 VOID
75 SaveGenericListState(
76 IN PGENERIC_LIST List);
77
78 VOID
79 RestoreGenericListState(
80 IN PGENERIC_LIST List);
81
82 BOOLEAN
83 GenericListHasSingleEntry(
84 IN PGENERIC_LIST List);
85
86 /* EOF */