ReactOS  0.4.15-dev-5608-gafb953a
ntobjenum.h
Go to the documentation of this file.
1 /*
2  * PROJECT: NT Object Namespace shell extension
3  * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4  * PURPOSE: NT Object Namespace enumeration header
5  * COPYRIGHT: Copyright 2004 Martin Fuchs <martin-fuchs@gmx.net>
6  */
7 
8 #pragma once
9 
10 
11 // All the possible values are defined here because I want the type field to be
12 // "persistable" and not change if more types are added in the future.
20 
22 };
23 extern const LPCWSTR ObjectTypeNames[];
24 
25 #define NT_OBJECT_PIDL_MAGIC (USHORT)0x9A03
26 #define REGISTRY_PIDL_MAGIC (USHORT)0x5364
27 
28 #include <pshpack1.h>
29 
30 // NT OBJECT browser
32 {
34  USHORT magic; // 0x9A03 ~~~ "NTOB"
35 
36  // If this is -1, there will be a NtPidlTypeData following this, and before any other extensions
38 
41 };
42 
44 {
47 };
48 
49 // REGISTRY browser
51 {
56  // any more?
57 };
58 extern const LPCWSTR RegistryTypeNames [];
59 
61 {
63  USHORT magic; // 0x5364 ~~~ "REGK"
64 
66 
68 
69  union {
70  struct {
71  // For Value entries, this contains the value contents, if it's reasonably small.
72  // For Key entries, this contains the custom class name
75  };
76 
78  };
79 
81 
82 };
83 
84 
85 #include <poppack.h>
86 
87 HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID * valueData, PDWORD valueLength);
88 
92 
const uint16_t * PCWSTR
Definition: typedefs.h:57
USHORT cb
Definition: ntobjenum.h:33
USHORT entryNameLength
Definition: ntobjenum.h:39
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
REG_ENTRY_TYPE entryType
Definition: ntobjenum.h:65
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:40
REG_ENTRY_TYPE
Definition: ntobjenum.h:50
WCHAR typeName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:46
const LPCWSTR ObjectTypeNames[]
Definition: ntobjenum.cpp:25
_Inout_ PUNICODE_STRING LinkTarget
Definition: zwfuncs.h:292
OBJECT_TYPE objectType
Definition: ntobjenum.h:37
DWORD contentType
Definition: ntobjenum.h:73
HRESULT GetEnumNTDirectory(LPCWSTR path, IEnumIDList **ppil)
Definition: ntobjenum.cpp:737
HRESULT GetEnumRegistryKey(LPCWSTR path, HKEY root, IEnumIDList **ppil)
Definition: ntobjenum.cpp:732
OBJECT_TYPE
Definition: ntobjenum.h:13
USHORT typeNameLength
Definition: ntobjenum.h:45
USHORT cb
Definition: ntobjenum.h:62
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:79
USHORT entryNameLength
Definition: ntobjenum.h:67
unsigned long DWORD
Definition: ntddk_ex.h:95
USHORT magic
Definition: ntobjenum.h:63
USHORT contentsLength
Definition: ntobjenum.h:74
const LPCWSTR RegistryTypeNames[]
Definition: ntobjenum.cpp:35
HRESULT GetNTObjectSymbolicLinkTarget(LPCWSTR path, LPCWSTR entryName, PUNICODE_STRING LinkTarget)
Definition: ntobjenum.cpp:151
HKEY rootKey
Definition: ntobjenum.h:77
unsigned short USHORT
Definition: pedump.c:61
DWORD * PDWORD
Definition: pedump.c:68
USHORT magic
Definition: ntobjenum.h:34
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:80
HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID *valueData, PDWORD valueLength)
Definition: ntobjenum.cpp:98
HRESULT GetEnumRegistryRoot(IEnumIDList **ppil)
Definition: ntobjenum.cpp:727