[SHELL32] Remove 2 redundant initializations
[reactos.git] / sdk / include / reactos / browseui_undoc.h
1 /*
2 * ReactOS shlwapi
3 *
4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #ifndef __BROWSEUI_UNDOC_H
22 #define __BROWSEUI_UNDOC_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
27
28 // Name is IETHREADPARAM according to symbols / mangled function names
29 #ifdef _WIN64
30 typedef struct IEThreadParamBlock
31 {
32 long offset0; // 0x00
33 UCHAR gap4[4];
34 DWORD dwFlags; // 0x08
35 long offset8; // 0x0c
36 IUnknown* offsetC; // 0x10
37 long offset10; // 0x18
38 char padding1[4]; // 0x1c
39 IUnknown* offset14; // 0x20
40 LPITEMIDLIST directoryPIDL; // 0x28
41 WCHAR awsz_30[21]; // 0x30
42 WCHAR awszEventName[21]; // 0x5A
43 char padding2[4]; // 0x84
44 IUnknown* offset70; // 0x88
45 long offset74; // 0x90 unknown contents
46 char padding3[4]; // 0x94
47 IUnknown* offset78; // 0x98
48 LPITEMIDLIST offset7C; // 0xa0
49 LPITEMIDLIST offset80; // 0xa8
50 LONG offset84; // 0xb0
51 LONG offset88; // 0xb4
52 LONG offset8C; // 0xb8
53 LONG offset90; // 0xbc
54 LONG offset94; // 0xc0
55 LONG offset98; // 0xc4
56 LONG offset9C; // 0xc8
57 LONG offsetA0; // 0xcc
58 char field_B4[52];
59 LONG offsetD8; // 0x104
60 UCHAR gap108[24];
61 DWORD dword120;
62 DWORD dword124;
63 IUnknown* offsetF8; // 0x128 instance explorer
64 UCHAR byteflags_130;
65 } IE_THREAD_PARAM_BLOCK, * PIE_THREAD_PARAM_BLOCK;
66 #else
67 typedef struct IEThreadParamBlock
68 {
69 long offset0;
70 DWORD dwFlags;
71 long offset8;
72 IUnknown * offsetC;
73 long offset10;
74 IUnknown * offset14;
75 LPITEMIDLIST directoryPIDL; // 0x18
76 char offset1C[0x70-0x1C]; // unknown contents -- 0x1C..0x6c
77 IUnknown * offset70;
78 long offset74; // unknown contents
79 IUnknown * offset78;
80 LPITEMIDLIST offset7C;
81 LPITEMIDLIST offset80;
82 LONG offset84;
83 LONG offset88;
84 LONG offset8C;
85 LONG offset90;
86 LONG offset94;
87 LONG offset98;
88 LONG offset9C;
89 LONG offsetA0;
90 char offsetA4[0xD8-0xA4]; // unknown contents -- 0xA4..0xD8
91 LONG offsetD8;
92 char offsetDC[0xF8-0xDC]; // unknown contents -- 0xDC..0xF8
93 IUnknown * offsetF8; // instance explorer
94 LONG offsetFC; // unknown contents
95 } IE_THREAD_PARAM_BLOCK, *PIE_THREAD_PARAM_BLOCK;
96 #endif
97
98 typedef struct ExplorerCommandLineParseResults
99 {
100 LPWSTR strPath;
101 LPITEMIDLIST pidlPath;
102 DWORD dwFlags;
103 int nCmdShow;
104 DWORD offset10;
105 DWORD offset14;
106 DWORD offset18;
107 DWORD offset1C;
108 LPITEMIDLIST pidlRoot;
109 DWORD offset24;
110 DWORD offset28;
111 DWORD offset2C;
112 DWORD offset30;
113 GUID guidInproc;
114 } EXPLORER_CMDLINE_PARSE_RESULTS, *PEXPLORER_CMDLINE_PARSE_RESULTS;
115
116 #define SH_EXPLORER_CMDLINE_FLAG_ONE 0x00000001
117 #define SH_EXPLORER_CMDLINE_FLAG_S 0x00000002
118 // unknown/unused 0x00000004
119 #define SH_EXPLORER_CMDLINE_FLAG_E 0x00000008
120 // unknown/unused 0x00000010
121 // unknown/unused 0x00000020
122 #define SH_EXPLORER_CMDLINE_FLAG_SELECT 0x00000040
123 #define SH_EXPLORER_CMDLINE_FLAG_EMBED 0x00000080
124 // unknown/unused 0x00000100
125 #define SH_EXPLORER_CMDLINE_FLAG_IDLIST 0x00000200
126 #define SH_EXPLORER_CMDLINE_FLAG_INPROC 0x00000400
127 // unknown/unused 0x00000800
128 #define SH_EXPLORER_CMDLINE_FLAG_NOUI 0x00001000
129 // unknown/unused 0x00002000
130 #define SH_EXPLORER_CMDLINE_FLAG_N 0x00004000
131 // unknown/unused 0x00008000
132 // unknown/unused 0x00010000
133 #define SH_EXPLORER_CMDLINE_FLAG_SEPARATE 0x00020000
134 // unknown/unused 0x00040000
135 // unknown/unused 0x00080000
136 // unknown/unused 0x00100000
137 // unknown/unused 0x00200000
138 // unknown/unused 0x00400000
139 // unknown/unused 0x00800000
140 // unknown/unused 0x01000000
141 #define SH_EXPLORER_CMDLINE_FLAG_STRING 0x02000000
142
143 #define WM_EXPLORER_OPEN_NEW_WINDOW (WM_USER+11)
144 #define WM_EXPLORER_1037 (WM_USER+13)
145
146 void WINAPI InitOCHostClass(long param8);
147 long WINAPI SHOpenFolderWindow(PIE_THREAD_PARAM_BLOCK parameters);
148 void WINAPI SHCreateSavedWindows(void);
149 BOOL WINAPI SHCreateFromDesktop(PEXPLORER_CMDLINE_PARSE_RESULTS parseResults);
150 UINT_PTR WINAPI SHExplorerParseCmdLine(PEXPLORER_CMDLINE_PARSE_RESULTS pParseResults);
151 void WINAPI UEMRegisterNotify(long param8, long paramC);
152 HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10);
153 HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14);
154 long WINAPI IDataObject_GetDeskBandState(long param8);
155 PIE_THREAD_PARAM_BLOCK WINAPI SHCreateIETHREADPARAM(long param8, long paramC, IUnknown *param10, IUnknown *param14);
156 PIE_THREAD_PARAM_BLOCK WINAPI SHCloneIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
157 long WINAPI SHParseIECommandLine(long param8, long paramC);
158 void WINAPI SHDestroyIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
159 BOOL WINAPI SHOnCWMCommandLine(HANDLE hSharedInfo);
160 LPITEMIDLIST WINAPI Channel_GetFolderPidl(void);
161 IUnknown *WINAPI ChannelBand_Create(LPITEMIDLIST pidl);
162 HRESULT WINAPI Channels_SetBandInfoSFB(IUnknown *param8);
163 HRESULT WINAPI IUnknown_SetBandInfoSFB(IUnknown *param8, long paramC);
164 HRESULT WINAPI Channel_QuickLaunch(void);
165 HRESULT WINAPI SHGetNavigateTarget(long param8, long paramC, long param10, long param14);
166 HRESULT WINAPI GetInfoTip(IUnknown *param8, long paramC, LPTSTR *param10, long cchMax);
167 HRESULT WINAPI SHEnumClassesOfCategories(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired, IEnumGUID **out);
168 HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20);
169 BOOL WINAPI SHIsExplorerBrowser(void);
170 HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, DWORD dwFlags);
171
172
173 #define INTERFACE IACLCustomMRU
174 DECLARE_INTERFACE_IID_(IACLCustomMRU, IUnknown, "F729FC5E-8769-4F3E-BDB2-D7B50FD2275B")
175 {
176 // *** IUnknown methods ***
177 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
178 STDMETHOD_(ULONG, AddRef) (THIS)PURE;
179 STDMETHOD_(ULONG, Release) (THIS)PURE;
180
181 // *** IACLCustomMRU specific methods ***
182 STDMETHOD(Initialize) (THIS_ LPCWSTR pwszMRURegKey, DWORD dwMax) PURE;
183 STDMETHOD(AddMRUString) (THIS_ LPCWSTR pwszEntry) PURE;
184 };
185 #undef INTERFACE
186
187 #ifdef __cplusplus
188 } /* extern "C" */
189 #endif /* defined(__cplusplus) */
190
191 #endif /* __BROWSEUI_UNDOC_H */