Reactos
at listview 78 lines 1.4 kB view raw
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 10typedef struct _GENERIC_LIST_ENTRY 11{ 12 LIST_ENTRY Entry; 13 struct _GENERIC_LIST* List; 14 PVOID Data; 15 ULONG_PTR UiData; // Cache variable for any UI list that displays these items 16} GENERIC_LIST_ENTRY, *PGENERIC_LIST_ENTRY; 17 18typedef struct _GENERIC_LIST 19{ 20 LIST_ENTRY ListHead; 21 ULONG NumOfEntries; 22 PGENERIC_LIST_ENTRY CurrentEntry; 23} GENERIC_LIST, *PGENERIC_LIST; 24 25 26PGENERIC_LIST 27NTAPI 28CreateGenericList(VOID); 29 30VOID 31NTAPI 32DestroyGenericList( 33 IN OUT PGENERIC_LIST List, 34 IN BOOLEAN FreeData); 35 36BOOLEAN 37NTAPI 38AppendGenericListEntry( 39 IN OUT PGENERIC_LIST List, 40 IN PVOID Data, 41 IN BOOLEAN Current); 42 43VOID 44NTAPI 45SetCurrentListEntry( 46 IN PGENERIC_LIST List, 47 IN PGENERIC_LIST_ENTRY Entry); 48 49PGENERIC_LIST_ENTRY 50NTAPI 51GetCurrentListEntry( 52 IN PGENERIC_LIST List); 53 54PGENERIC_LIST_ENTRY 55NTAPI 56GetFirstListEntry( 57 IN PGENERIC_LIST List); 58 59PGENERIC_LIST_ENTRY 60NTAPI 61GetNextListEntry( 62 IN PGENERIC_LIST_ENTRY Entry); 63 64PVOID 65NTAPI 66GetListEntryData( 67 IN PGENERIC_LIST_ENTRY Entry); 68 69ULONG_PTR 70GetListEntryUiData( 71 IN PGENERIC_LIST_ENTRY Entry); 72 73ULONG 74NTAPI 75GetNumberOfListEntries( 76 IN PGENERIC_LIST List); 77 78/* EOF */