ReactOS
0.4.16-dev-927-g467dec4
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
_
c
d
e
f
g
h
i
l
m
n
o
p
s
t
u
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
_
a
b
c
d
f
i
l
m
o
p
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
v
x
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
ntobjshex.cpp
Go to the documentation of this file.
1
/*
2
* PROJECT: NT Object Namespace shell extension
3
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4
* PURPOSE: Shell extension entry point and exports
5
* COPYRIGHT: Copyright 2015-2017 David Quintana <gigaherz@gmail.com>
6
*/
7
8
#include "
precomp.h
"
9
10
#include <atlwin.h>
11
12
BEGIN_OBJECT_MAP
(ObjectMap)
13
OBJECT_ENTRY
(
CLSID_NtObjectFolder
,
CNtObjectFolder
)
14
OBJECT_ENTRY
(
CLSID_RegistryFolder
,
CRegistryFolder
)
15
END_OBJECT_MAP
()
16
17
HINSTANCE
g_hInstance
;
18
CComModule
g_Module
;
19
20
STDAPI_
(
BOOL
)
21
DllMain
(
HINSTANCE
hinstDLL,
DWORD
fdwReason
,
LPVOID
fImpLoad
)
22
{
23
if
(
fdwReason
==
DLL_PROCESS_ATTACH
)
24
{
25
g_hInstance
= hinstDLL;
26
DisableThreadLibraryCalls
(
g_hInstance
);
27
28
g_Module
.Init(ObjectMap,
g_hInstance
,
NULL
);
29
}
30
else
if
(
fdwReason
==
DLL_PROCESS_DETACH
)
31
{
32
g_hInstance
=
NULL
;
33
g_Module
.Term();
34
}
35
return
TRUE
;
36
}
37
38
STDAPI
39
DllRegisterServer
(
void
)
40
{
41
return
g_Module
.DllRegisterServer(
FALSE
);
42
}
43
44
STDAPI
45
DllUnregisterServer
(
void
)
46
{
47
return
g_Module
.DllUnregisterServer(
FALSE
);
48
}
49
50
STDAPI
51
DllGetClassObject
(
REFCLSID
rclsid,
REFIID
riid
,
LPVOID
*
ppv
)
52
{
53
return
g_Module
.DllGetClassObject(rclsid,
riid
,
ppv
);
54
}
55
56
STDAPI
57
DllCanUnloadNow
(
void
)
58
{
59
return
g_Module
.DllCanUnloadNow();
60
}
fdwReason
static DWORD const fdwReason
Definition:
appcrt_dllmain.cpp:57
fImpLoad
DWORD LPVOID fImpLoad
Definition:
misc.cpp:136
STDAPI_
#define STDAPI_(t)
Definition:
basetyps.h:42
STDAPI
#define STDAPI
Definition:
basetyps.h:41
CNtObjectFolder
Definition:
ntobjfolder.h:52
CRegistryFolder
Definition:
regfolder.h:52
NULL
#define NULL
Definition:
types.h:112
TRUE
#define TRUE
Definition:
types.h:120
FALSE
#define FALSE
Definition:
types.h:117
DLL_PROCESS_ATTACH
#define DLL_PROCESS_ATTACH
Definition:
compat.h:131
DLL_PROCESS_DETACH
#define DLL_PROCESS_DETACH
Definition:
compat.h:130
DisableThreadLibraryCalls
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition:
loader.c:85
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
DWORD
unsigned long DWORD
Definition:
ntddk_ex.h:95
CLSID_NtObjectFolder
const GUID CLSID_NtObjectFolder
Definition:
ntobjfolder.cpp:13
riid
REFIID riid
Definition:
atlbase.h:39
ppv
REFIID LPVOID * ppv
Definition:
atlbase.h:39
void
Definition:
nsiface.idl:2307
END_OBJECT_MAP
#define END_OBJECT_MAP()
Definition:
atlcom.h:691
OBJECT_ENTRY
#define OBJECT_ENTRY(clsid, class)
Definition:
atlcom.h:693
BEGIN_OBJECT_MAP
#define BEGIN_OBJECT_MAP(x)
Definition:
atlcom.h:689
DllRegisterServer
STDAPI DllRegisterServer(void)
Definition:
ntobjshex.cpp:39
DllMain
DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
Definition:
ntobjshex.cpp:21
DllUnregisterServer
STDAPI DllUnregisterServer(void)
Definition:
ntobjshex.cpp:45
DllGetClassObject
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
Definition:
ntobjshex.cpp:51
g_Module
CComModule g_Module
Definition:
ntobjshex.cpp:18
g_hInstance
HINSTANCE g_hInstance
Definition:
ntobjshex.cpp:17
DllCanUnloadNow
STDAPI DllCanUnloadNow(void)
Definition:
ntobjshex.cpp:57
REFIID
#define REFIID
Definition:
guiddef.h:118
REFCLSID
#define REFCLSID
Definition:
guiddef.h:117
CLSID_RegistryFolder
const GUID CLSID_RegistryFolder
Definition:
regfolder.cpp:11
precomp.h
dll
shellext
ntobjshex
ntobjshex.cpp
Generated on Sun Mar 30 2025 06:03:32 for ReactOS by
1.9.6