ReactOS  0.4.13-dev-52-g0efcfec
ntobjenum.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004 Martin Fuchs
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 #pragma once
19 
20 
21 // All the possible values are defined here because I want the type field to be
22 // "persistable" and not change if more types are added in the future.
30 
32 };
33 extern const LPCWSTR ObjectTypeNames[];
34 
35 #define NT_OBJECT_PIDL_MAGIC (USHORT)0x9A03
36 #define REGISTRY_PIDL_MAGIC (USHORT)0x5364
37 
38 #include <pshpack1.h>
39 
40 // NT OBJECT browser
42 {
44  USHORT magic; // 0x9A03 ~~~ "NTOB"
45 
46  // If this is -1, there will be a NtPidlTypeData following this, and before any other extensions
48 
51 };
52 
54 {
57 };
58 
59 // REGISTRY browser
61 {
66  // any more?
67 };
68 extern const LPCWSTR RegistryTypeNames [];
69 
71 {
73  USHORT magic; // 0x5364 ~~~ "REGK"
74 
76 
78 
79  union {
80  struct {
81  // For Value entries, this contains the value contents, if it's reasonably small.
82  // For Key entries, this contains the custom class name
85  };
86 
88  };
89 
91 
92 };
93 
94 
95 #include <poppack.h>
96 
97 HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID * valueData, PDWORD valueLength);
98 
102 
const uint16_t * PCWSTR
Definition: typedefs.h:55
USHORT cb
Definition: ntobjenum.h:43
USHORT entryNameLength
Definition: ntobjenum.h:49
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define ANYSIZE_ARRAY
Definition: typedefs.h:45
REG_ENTRY_TYPE entryType
Definition: ntobjenum.h:75
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:50
REG_ENTRY_TYPE
Definition: ntobjenum.h:60
WCHAR typeName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:56
const LPCWSTR ObjectTypeNames[]
Definition: ntobjenum.cpp:36
_Inout_ PUNICODE_STRING LinkTarget
Definition: zwfuncs.h:292
OBJECT_TYPE objectType
Definition: ntobjenum.h:47
DWORD contentType
Definition: ntobjenum.h:83
HRESULT GetEnumNTDirectory(LPCWSTR path, IEnumIDList **ppil)
Definition: ntobjenum.cpp:748
HRESULT GetEnumRegistryKey(LPCWSTR path, HKEY root, IEnumIDList **ppil)
Definition: ntobjenum.cpp:743
OBJECT_TYPE
Definition: ntobjenum.h:23
USHORT typeNameLength
Definition: ntobjenum.h:55
USHORT cb
Definition: ntobjenum.h:72
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
USHORT entryNameLength
Definition: ntobjenum.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
USHORT magic
Definition: ntobjenum.h:73
USHORT contentsLength
Definition: ntobjenum.h:84
const LPCWSTR RegistryTypeNames[]
Definition: ntobjenum.cpp:46
HRESULT GetNTObjectSymbolicLinkTarget(LPCWSTR path, LPCWSTR entryName, PUNICODE_STRING LinkTarget)
Definition: ntobjenum.cpp:162
HKEY rootKey
Definition: ntobjenum.h:87
unsigned short USHORT
Definition: pedump.c:61
Definition: services.c:325
DWORD * PDWORD
Definition: pedump.c:68
USHORT magic
Definition: ntobjenum.h:44
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:90
HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID *valueData, PDWORD valueLength)
Definition: ntobjenum.cpp:109
HRESULT GetEnumRegistryRoot(IEnumIDList **ppil)
Definition: ntobjenum.cpp:738