forked from winsiderss/systeminformer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprocprp.h
More file actions
166 lines (144 loc) · 3.06 KB
/
Copy pathprocprp.h
File metadata and controls
166 lines (144 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#ifndef PH_PROCPRP_H
#define PH_PROCPRP_H
#define PH_PROCESS_PROPCONTEXT_MAXPAGES 20
typedef struct _PH_PROCESS_PROPCONTEXT
{
PPH_PROCESS_ITEM ProcessItem;
HWND WindowHandle;
PH_EVENT CreatedEvent;
PPH_STRING Title;
PROPSHEETHEADER PropSheetHeader;
HPROPSHEETPAGE *PropSheetPages;
HANDLE SelectThreadId;
} PH_PROCESS_PROPCONTEXT, *PPH_PROCESS_PROPCONTEXT;
// begin_phapppub
typedef struct _PH_PROCESS_PROPPAGECONTEXT
{
PPH_PROCESS_PROPCONTEXT PropContext;
PVOID Context;
PROPSHEETPAGE PropSheetPage;
BOOLEAN LayoutInitialized;
} PH_PROCESS_PROPPAGECONTEXT, *PPH_PROCESS_PROPPAGECONTEXT;
// end_phapppub
BOOLEAN PhProcessPropInitialization(
VOID
);
// begin_phapppub
PHAPPAPI
PPH_PROCESS_PROPCONTEXT
NTAPI
PhCreateProcessPropContext(
_In_ HWND ParentWindowHandle,
_In_ PPH_PROCESS_ITEM ProcessItem
);
// end_phapppub
VOID PhRefreshProcessPropContext(
_Inout_ PPH_PROCESS_PROPCONTEXT PropContext
);
// begin_phapppub
PHAPPAPI
VOID
NTAPI
PhSetSelectThreadIdProcessPropContext(
_Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
_In_ HANDLE ThreadId
);
PHAPPAPI
BOOLEAN
NTAPI
PhAddProcessPropPage(
_Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
_In_ _Assume_refs_(1) PPH_PROCESS_PROPPAGECONTEXT PropPageContext
);
PHAPPAPI
BOOLEAN
NTAPI
PhAddProcessPropPage2(
_Inout_ PPH_PROCESS_PROPCONTEXT PropContext,
_In_ HPROPSHEETPAGE PropSheetPageHandle
);
PHAPPAPI
PPH_PROCESS_PROPPAGECONTEXT
NTAPI
PhCreateProcessPropPageContext(
_In_ LPCWSTR Template,
_In_ DLGPROC DlgProc,
_In_opt_ PVOID Context
);
PHAPPAPI
PPH_PROCESS_PROPPAGECONTEXT
NTAPI
PhCreateProcessPropPageContextEx(
_In_opt_ PVOID InstanceHandle,
_In_ LPCWSTR Template,
_In_ DLGPROC DlgProc,
_In_opt_ PVOID Context
);
PHAPPAPI
BOOLEAN
NTAPI
PhPropPageDlgProcHeader(
_In_ HWND hwndDlg,
_In_ UINT uMsg,
_In_ LPARAM lParam,
_Out_ LPPROPSHEETPAGE *PropSheetPage,
_Out_ PPH_PROCESS_PROPPAGECONTEXT *PropPageContext,
_Out_ PPH_PROCESS_ITEM *ProcessItem
);
PHAPPAPI
VOID
NTAPI
PhPropPageDlgProcDestroy(
_In_ HWND hwndDlg
);
#define PH_PROP_PAGE_TAB_CONTROL_PARENT ((PPH_LAYOUT_ITEM)0x1)
PHAPPAPI
PPH_LAYOUT_ITEM
NTAPI
PhAddPropPageLayoutItem(
_In_ HWND hwnd,
_In_ HWND Handle,
_In_ PPH_LAYOUT_ITEM ParentItem,
_In_ ULONG Anchor
);
PHAPPAPI
VOID
NTAPI
PhDoPropPageLayout(
_In_ HWND hwnd
);
FORCEINLINE
PPH_LAYOUT_ITEM
PhBeginPropPageLayout(
_In_ HWND hwndDlg,
_In_ PPH_PROCESS_PROPPAGECONTEXT PropPageContext
)
{
if (!PropPageContext->LayoutInitialized)
{
return PhAddPropPageLayoutItem(hwndDlg, hwndDlg,
PH_PROP_PAGE_TAB_CONTROL_PARENT, PH_ANCHOR_ALL);
}
else
{
return NULL;
}
}
FORCEINLINE
VOID
PhEndPropPageLayout(
_In_ HWND hwndDlg,
_In_ PPH_PROCESS_PROPPAGECONTEXT PropPageContext
)
{
PhDoPropPageLayout(hwndDlg);
PropPageContext->LayoutInitialized = TRUE;
}
PHAPPAPI
VOID
NTAPI
PhShowProcessProperties(
_In_ PPH_PROCESS_PROPCONTEXT Context
);
// end_phapppub
#endif